function AddEvent(aForm,eDate) {
	var nFrm = eval("document." + aForm);
	nFrm.EventDate.value = eDate;
	nFrm.submit();
}

function EditEvent(aForm,eID,calID) {
	var nFrm = eval("document." + aForm);
	nFrm.EventID.value = eID;
	nFrm.CalendarDate_ID.value = calID;
	nFrm.submit();
}

function EventDetail(aForm,edate,eID,calID,edID) {
	var nFrm = eval("document." + aForm);
	nFrm.eventdate.value = edate;
	nFrm.EventID.value = eID;
	nFrm.CalendarDate_ID.value = calID;
	nFrm.eventDetailID.value = edID;
	nFrm.submit();
}


function OpenEventDetail(edID) {
	var winOp = window.open('calendareventdetailuser.asp?eventdetailID=' + edID,'EventDetail','top=200,left=300,width=500,height=400, scrollbars=1')
	winOp.focus();
}

function OpenEventDetailAd(edID) {
	var winOp = window.open('/calendareventdetailuser.asp?eventdetailID=' + edID,'EventDetail','top=200,left=300,width=500,height=400, scrollbars=1')
	winOp.focus();
}

function checkRadioControl(strFieldName){
     bolSelected = false;
     for (i=0;i<strFieldName.length;i++){
     if(strFieldName[i].checked){
          bolSelected = true;
     break;
     }
}     
     if(!bolSelected){
          return false;
          }
     return true;
}

function isNumber( strValue ) {
  var objRegExp  = /(^-?\d\d*$)/;

  return objRegExp.test(strValue);
}

function ValidateDonation(fObj) {
	var strErr = "";

  if(!checkRadioControl(fObj["donateamount"])) {
     strErr += "- Please select an amount.\n";
  } 
  
  else {
       
       if (fObj["donateamount"][5].checked) {
       
	       if (fObj["donateamountother"].value == "") {
		   strErr += "- Please specify an amount for Other.\n";
	       }

	       else {
			
		   if ((fObj["donateamountother"].value < 1) || (isNaN(fObj["donateamountother"].value))) {
			strErr += "- Please specify a valid amount for Other.\n";
		   }
		   
		   if (!isNumber(fObj["donateamountother"].value)) {
			strErr += "- Please specify an exact dollar amount (no decimals).\n";
		   }

	       }
	       
	       if (strErr.length == 0) {
	       		fObj["donateamount"][5].value = fObj["donateamountother"].value;
	       }
	}
  }
  
  if(strErr != ""){
      alert("The following errors occurred:\n\n"+ strErr);
           return false;
  }
     
return true;

}

function validateDonationProcess(fObj) {
	var msg, upperLine, lowerLine;
	
	msg = "The form was not submited due to the following error(s).\n";
	
	upperLine = "\n_________________________________________________________\n\n";
	lowerLine = "_________________________________________________________\n";
	
	if (empty_fields) {
		msg += upperLine;
		msg += "The following field(s) must be filled in:\n";
		msg += lowerLine;
		msg += empty_fields;
	}

}

function specialCase(e, form) {
	if ((e.name == "CardName")||(e.name == "CardNumber")||(e.name == "CardExpiryMonth")||(e.name == "CardExpiryYear")) {
		if (((form.CardName.value.length <= 0)||(form.CardNumber.value.length <= 0)||(form.CardExpiryMonth.value.length <= 0)||(form.CardExpiryYear.value.length <= 0))
		 && ((form.CardName.value.length > 0)||(form.CardNumber.value.length > 0)||(form.CardExpiryMonth.value.length > 0)||(form.CardExpiryYear.value.length > 0))) {
			return "Please enter all Credit Card Information.";
		}
		if ((form.CardName.value.length > 0)&&(form.CardNumber.value.length > 0)&&(form.CardExpiryMonth.value.length > 0)&&(form.CardExpiryYear.value.length > 0)) {
			if (!isCardDateValid(form.CardExpiryYear.value, form.CardExpiryMonth.value)) {
				return "The Credit Card has Expired.";
			}
			if (isCardNumValid(form.CardNumber.value)) {
				return "The Credit Card Number is an invalid format.";
			}
		}
	}
	if ((e.name == "CheckNumber")||(e.name == "BankName")||(e.name == "RoutingNumber")||(e.name == "CheckingAccountNumber")) {
		if (((form.CheckNumber.value.length <= 0)||(form.BankName.value.length <= 0)||(form.RoutingNumber.value.length <= 0)||(form.CheckingAccountNumber.value.length <= 0))
		 && ((form.CheckNumber.value.length > 0)||(form.BankName.value.length > 0)||(form.RoutingNumber.value.length > 0)||(form.CheckingAccountNumber.value.length > 0))) {
			return "Please enter all eCheck Information.";
		}		
	}
	if ((e.name == "POName")||(e.name == "PONumber")) {
		
		if (((form.POName.value.length <= 0)||(form.PONumber.value.length <= 0))
		 && ((form.POName.value.length > 0)||(form.PONumber.value.length > 0))) {
			return "Please enter all Purchase Order Information.";
		}
	}
	if ((form.CardName.value.length <= 0)&&(form.CardNumber.value.length <= 0)&&(form.CardExpiryMonth.value.length <= 0)&&(form.CardExpiryYear.value.length <= 0)
	 && (form.CheckNumber.value.length <= 0)&&(form.BankName.value.length <= 0)&&(form.RoutingNumber.value.length <= 0)&&(form.CheckingAccountNumber.value.length <= 0)
	 && (form.POName.value.length <= 0)&&(form.PONumber.value.length <= 0)) {
		return "Please enter payment method Information.";	
	}
	return "";
}
function stripChar(sValue, sChar) {
	var i, tempChar, buildString;
	buildString = ""
	for (var i=0; i<sValue.length; i++) {
		tempChar = sValue.charAt(i);
		if (tempChar != sChar) {
			buildString = buildString + tempChar;
		}
	}
	return buildString;
}

function isCardDateValid(year, month) {
	var dateCheck, now;
	if (year.length == 2) {
		if (parseInt(year) < 50) {
			year = "20" + year;
		}
	}
	now = new Date();
	dateCheck = new Date(year, month);
	if (now > dateCheck) {
		return false;
	}
	else {
		return true;
	}
}

function isCardNumValid(num) {
	var num1, num2, tempNum;
	if (!isNumber(num)) {
		return true;
	}
	num1 = ""
	if (!(num.length%2==0)) {
		for(var j=0; j < num.length; j++) {
			if ((j+1)%2==0){
				tempNum = 2 * num.charAt(j);
			}
			else {
				tempNum = 1 * num.charAt(j);
			}
			num1 = num1 + tempNum.toString();
		}
	}
	else{
		for(var j=0; j < num.length; j++){
			if ((j+1)%2==0){
				tempNum = 1 * num.charAt(j);
			}
			else{
				tempNum = 2 * num.charAt(j);
			}
			num1 = num1 + tempNum.toString();
		}
	}
	num2 = 0;
	for (var j = 0; j < num1.length; j++) {
		num2 = num2 + parseInt(num1.charAt(j));
	}
	if (num2%10==0) {
		return false;
	}
	else {
		return true;
	}
}

function ValidateCC(ccType, ccNumber){
  var num1, num2, tempNum;
	if (!isNumber(ccNumber)) {
		return true;
	}
	num1 = ""
	if (!(ccNumber.length%2==0)) {
		for(var j=0; j < ccNumber.length; j++) {
			if ((j+1)%2==0){
				tempNum = 2 * ccNumber.charAt(j);
			}
			else {
				tempNum = 1 * ccNumber.charAt(j);
			}
			num1 = num1 + tempNum.toString();
		}
	}
	else{
		for(var j=0; j < ccNumber.length; j++){
			if ((j+1)%2==0){
				tempNum = 1 * ccNumber.charAt(j);
			}
			else{
				tempNum = 2 * ccNumber.charAt(j);
			}
			num1 = num1 + tempNum.toString();
		}
	}
	num2 = 0;
	for (var j = 0; j < num1.length; j++) {
		num2 = num2 + parseInt(num1.charAt(j));
	}
	if (num2%10==0) {
		return false;
	}
	else {
		return true;
	}
  // once we know the number is good, loop the card types
  switch(ccType.toLowerCase) {
	case "mastercard":
  		if (Number(ccNumber.length) == 16 && ccNumber.substring(0,2)>="51" && ccNumber.substring(0,2)<="55") return false;
  	case "visa":
		if (Number(ccNumber.length) == 16 && ccNumber.substring(0,1)=="4") return false;
  		if (Number(ccNumber.length) == 13 && (ccNumber.substring(0,1)=="4")) return false;
  	case "discover":
  		if (Number(ccNumber.length) == 16 && ccNumber.substring(0,4)=="6011") return false;
  	case "american express":
  		if (Number(ccNumber.length) == 15 && (ccNumber.substring(0,2)=="34" || ccNumber.substring(0,2)=="37")) return false;
  	case "dinersclub":
  		if (Number(ccNumber.length) == 14 && (ccNumber.substring(0,2)=="36" || ccNumber.substring(0,2)=="30" || ccNumber.substring(0,2)=="38")) return false;
  }
  return true; // unknown credit card type -- Invalid Card
}


function sfCheck(form) {
	var e, title, empty_fields, char_check, invalid_card, month, year, invalid_date, eMail, invalid_eMail;
	var iQuantity, quantity_check, checkSpecial, tempError, special_Error, msg, upperLine, lowerLine;
	var num, invalid_phoneNumber, passwd_mismatch, invalid_proposedDate, invalid_currentGrade, invalid_Zip, mcheck, mserrStr;
	var invalid_Age, invalid_SSN, invalid_birthDate, strReturn, invalid_fullGradeComp;
	var invalid_EduDate, invalid_PsycDate, invalid_PsycTherDate;
	
	msg = "";
	empty_fields = "";
	char_check = "";
	special_Error = "";
	tempError = "";
	strReturn = true;
	num = form.length

	for (var i = 0; i < form.length; i++) {
		e = form.elements[i]
		
		if ((e.title == null)||(e.title == "")) {
			title = e.name;
		}
		else {
			title = e.title;
		}
		if (((e.type == "text") || (e.type == "textarea")||(e.type == "password")) && !e.special && !e.disabled) {
			if (e.value.length <= 0 && !e.optional ) {
				if (e.title != "Company" && e.title != "MiddleInitial" && e.title!="Street Address 2" && e.title!="Feedback" && e.title!="Donation Dedication" && e.title!="Fax Number") {
				empty_fields += "\n            " + title;
				}
				continue;
			}
			else if (e.value.length > 0) {
				if (e.name == "email" || e.name == "femail" || e.name == "memail") {
					if (e.value.length > 0) {
						eMail = e.value;
						if ((eMail.indexOf("@") != -1) && (eMail.indexOf(".") != -1)) {
							invalid_eMail = false;
						}
						else {
						  
							invalid_eMail = true;
						}
					}
				}
				
				
				if (e.name == "fbusphone" || e.name == "mbusphone") {
					num = e.value;
					num = stripChar(num, " ");
					num = stripChar(num, "-");
					num = stripChar(num, "+");
					if (num.length < 10) {
						invalid_phoneNumber = true;
					}	
	
				}
		
				if ( e.name.substring(0,e.name.length-1) == "schphone") {
					num = e.value;
					num = stripChar(num, " ");
					num = stripChar(num, "-");
					num = stripChar(num, "+");
						if (num.length < 10) {
							invalid_phoneNumber = true;
						}	
	
				}
				
				if ( e.name.substring(0,e.name.length-1) == "schgradecomp") {
					num = e.value;
					num = stripChar(num, " ");
					num = stripChar(num, "-");
					num = stripChar(num, "+");
					
					if (!isNumber(num)) {
						invalid_fullGradeComp = true;
					}

				}
		
				if ( e.name.substring(0,e.name.length-1) == "schzip") {
					num = e.value;
					num = stripChar(num, " ");
					num = stripChar(num, "-");
					num = stripChar(num, "+");
					
					if (!isNumber(num)) {
						invalid_Zip = true;
					}

				}
				
				if (e.name == "dateeval") {
					if (!isDate(e.value)) {
						invalid_EduDate = true;
					}
				}

				if (e.name == "psyevaldate") {
					if (!isDate(e.value)) {
						invalid_PsycDate = true;
					}
				}
				
				if (e.name == "psytherdate") {
					if (!isDate(e.value)) {
						invalid_PsycTherDate = true;
					}
				}
				
			}
			
			if (e.name == "creditcardnumber") {
				e.value = stripChar(e.value, " "); 
				e.value = stripChar(e.value, "-"); 
				invalid_card = ValidateCC(form.cardtype.value,e.value);
			}
            
            if (e.name == "Email") {
				eMail = e.value;
				if ((eMail.indexOf("@") != -1) && (eMail.indexOf(".") != -1)) {
					invalid_eMail = false;
				}
				else {
				  
					invalid_eMail = true;
				}
			}	
			if (e.name == "Phone" || e.name == "fphone" || e.name == "mphone") {
				num = e.value;
				num = stripChar(num, " ");
				num = stripChar(num, "-");
				num = stripChar(num, "+");
				if (num.length < 10) {
					invalid_phoneNumber = true;
				}	
			}
			if (e.name == "Zip" || e.name == "zip" || e.name == "fzip" || e.name == "mzip") {
				num = e.value;
				num = stripChar(num, " ");
				num = stripChar(num, "-");
				if (!isNumber(num)) {
					invalid_Zip = true;
				}
				
				if (num.length < 5) {
					invalid_Zip = true;
				}	
			}
		
			if (e.name == "proposedDate") {
				num = e.value;
				num = stripChar(num, " ");
				num = stripChar(num, "-");
				if (!isNumber(num)) {
					invalid_proposedDate = true;
				}
			}
			
			if (e.name == "currentgrade") {
				num = e.value;
				num = stripChar(num, " ");
				num = stripChar(num, "-");
				if (!isNumber(num)) {
					invalid_currentGrade = true;
				}
			}
			
			if (e.name == "age") {
				num = e.value;
				num = stripChar(num, " ");
				num = stripChar(num, "-");
				if (!isNumber(num)) {
					invalid_Age = true;
				}
			}
			
			if (e.name == "socnumber") {
				num = e.value;
				num = stripChar(num, " ");
				num = stripChar(num, "-");
				if (!isNumber(num)) {
					invalid_SSN = true;
				}
				
				if (num.length < 8) {
						invalid_SSN = true;
					}	
			}
			
			if (e.name == "birthdate") {
				if (!isDate(e.value)) {
					invalid_birthDate = true;
				}
				
			}
			
		}
		
		if (e.type == "select-one" && !e.optional) {
			if (e.value == "") {
				empty_fields += "\n            " + title;
				continue;
			}
			
			if ((e.name == "EMonth")||(e.name == "EYear")) {
				month = form.EMonth.value;
				year = form.EYear.value;

				if(!isCardDateValid(year, month)) {
					invalid_date = true;
				}	
			}
		}
		
		if (e.name == "martialstatus") {
			var inMS = true;
			if (e.checked) {
				mcheck = true;
			}
			else {
				mserrStr = title;
			}
		}
		
	}
	
	if (inMS) {
		if(!mcheck) 
			empty_fields += "\n            " + mserrStr;
	}
	
	msg = "The form was not submited due to the following error(s).\n";
	
	upperLine = "\n_________________________________________________________\n\n";
	lowerLine = "_________________________________________________________\n";
	
	if (empty_fields) {
		msg += upperLine;
		msg += "The following field(s) must be filled in:\n";
		msg += lowerLine;
		msg += empty_fields;
		strReturn = false;
	}
	if (char_check) {
		msg += upperLine;
		msg += "The following field(s) need a numeric value:\n";
		msg += lowerLine;
		msg += char_check;
		strReturn = false;
	}
	if (quantity_check) {
		msg += upperLine;
		msg += "Please Enter a Positive Integer.\n"
		msg += lowerLine;
		strReturn = false;
	}
	if (invalid_card) {
		msg += upperLine;
		msg += "The Credit Card Number is an invalid format.\n";
		msg += lowerLine;
		strReturn = false;
	}
	if (invalid_date) {
		msg += upperLine;
		msg += "The Credit Card has Expired.\n";
		msg += lowerLine;
		strReturn = false;
	}
	if (invalid_birthDate) {
		msg += upperLine;
		msg += "The Birthdate entered is invalid.\n";
		msg += lowerLine;
		strReturn = false;
	}
	if (invalid_fullGradeComp) {
		msg += upperLine;
		msg += "The Full Grade Complete entered is invalid.\n";
		msg += lowerLine;
		strReturn = false;
	}
	if (invalid_eMail) {
		msg += upperLine;
		msg += "Please make sure all E-mail address entered is/are valid.\n";
		msg += lowerLine;
		strReturn = false;
	}
	if (invalid_EduDate) {
		msg += upperLine;
		msg += "The Educational Evaluation Date is invalid.\n";
		msg += lowerLine;
		strReturn = false;
	}
	if (invalid_PsycDate) {
		msg += upperLine;
		msg += "The Psychologist Evaluation Date is invalid.\n";
		msg += lowerLine;
		strReturn = false;
	}
	if (invalid_PsycTherDate) {
		msg += upperLine;
		msg += "The PsychoTherapy Date is invalid.\n";
		msg += lowerLine;
		strReturn = false;
	}
	if (invalid_Age) {
		msg += upperLine;
		msg += "The Age entered is in invalid.\n";
		msg += lowerLine;
		strReturn = false;
	}
	if (invalid_currentGrade) {
		msg += upperLine;
		msg += "The Current Grade entered is in invalid.\n";
		msg += lowerLine;
		strReturn = false;
	}
	if (invalid_proposedDate) {
		msg += upperLine;
		msg += "The Proposed Year entered is in invalid.\n";
		msg += lowerLine;
		strReturn = false;
	}
	if (invalid_phoneNumber) {
		msg += upperLine;
		msg += "Please enter a valid Phone Number with area code.\n";
		msg += lowerLine;
		strReturn = false;
	}
	if (invalid_Zip) {
		msg += upperLine;
		msg += "Please enter a valid Zip or Postal code.\n";
		msg += lowerLine;
		strReturn = false;
	}
	if (invalid_SSN) {
		msg += upperLine;
		msg += "Please enter a valid Social Security Number.\n";
		msg += lowerLine;
		strReturn = false;
	}
	if (special_Error) {
		msg += upperLine;
		msg += special_Error + "\n";
		msg += lowerLine;
		strReturn = false;
	}
	if (passwd_mismatch) {
		msg += upperLine;
		msg += "Your passwords did not match. Please enter them again.\n";
		msg += lowerLine;
		strReturn = false;
	}		
	if (!strReturn) 
		alert(msg);

	return strReturn;
}	

function isDate(sDate) {
	var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
	
	return re.test(sDate) ;
}

function WeeklyReportOptional(fObj) {

	fObj.numberassigned.optional = true;
	fObj.numbercompleted.optional = true;
	fObj.numberincompleted.optional = true;
	fObj.quizscore1.optional = true;
	fObj.quizscore2.optional = true;
	fObj.quizscore3.optional = true;
	fObj.quizscore4.optional = true;
	fObj.quizscore5.optional = true;
	fObj.testscore1.optional = true;
	fObj.testscore2.optional = true;
	fObj.testscore3.optional = true;
	fObj.testscore4.optional = true;
	fObj.testscore5.optional = true;
	fObj.teachercomment.optional = true;
}

function StudentInfoOptional(fObj) {
	fObj.address2.optional = true;
	fObj.email.optional = true;
	fObj.schooldistrict.optional = true;
}

function FamilyDatumInfoOptional(fObj, sibNum, ONum) {
	sibNum = sibNum * 1;
	
	fObj.faddress2.optional = true;
	fObj.foccupation.optional = true;
	fObj.fempname.optional = true;
	fObj.fbusaddress.optional = true;
	fObj.fbusphone.optional = true;
	fObj.femail.optional = true;
	fObj.maddress2.optional = true;
	fObj.moccupation.optional = true;
	fObj.mempname.optional = true;
	fObj.mbusaddress.optional = true;
	fObj.mbusphone.optional = true;
	fObj.memail.optional = true;
	fObj.martialstatusother.optional = true;
	fObj.childcustody.optional = true;
	fObj.cfname.optional = true;
	fObj.clname.optional = true;
	fObj.caddress1.optional = true;
	fObj.caddress2.optional = true;
	fObj.ccity.optional = true;
	fObj.cstate.optional = true;
	fObj.czip.optional = true;
	
	//------ -||---Check For Optional Sibling---||- ---
	for (var i=1;i<=sibNum;i++) {
		document.getElementById("sibcurrschool" + i).optional = true;
		document.getElementById("sibcurrgrade" + i).optional = true;
		document.getElementById("siboccup" + i).optional = true;
	}
}

function OtherInformationSourcesInfoOptional(fObj) {
	fObj.dateeval.optional = true;
	fObj.edufname.optional = true;
	fObj.edulname.optional = true;
	fObj.eduaddress1.optional = true;
	fObj.eduaddress2.optional = true;
	fObj.educity.optional = true;
	fObj.edustate.optional = true;
	fObj.eduzip.optional = true;
	fObj.eduphone.optional = true;
	fObj.psyevaldate.optional = true;
	fObj.psyfname.optional = true;
	fObj.psylname.optional = true;
	fObj.psyaddress1.optional = true;
	fObj.psyaddress2.optional = true;
	fObj.psycity.optional = true;
	fObj.psystate.optional = true;
	fObj.psyzip.optional = true;
	fObj.psyphone.optional = true;
	fObj.psytherdate.optional = true;
	fObj.psytherfname.optional = true;
	fObj.psytherlname.optional = true;
	fObj.psytheraddress1.optional = true;
	fObj.psytheraddress2.optional = true;
	fObj.psythercity.optional = true;
	fObj.psytherstate.optional = true;
	fObj.psytherzip.optional = true;
	fObj.psytherphone.optional = true;
	fObj.schaddress2.optional = true;
	fObj.schphone.optional = true;
	fObj.rfname.optional = true;
	fObj.rlname.optional = true;
	fObj.raddress1.optional = true;
	fObj.raddress2.optional = true;
	fObj.rcity.optional = true;
	fObj.rstate.optional = true;
	fObj.rzip.optional = true;
	fObj.rphone.optional = true;

}


function SchoolHistoryOptional(fObj, SH) {
	SH = SH * 1;
		
	//------ -||---Check For Optional Sibling---||- ---
	for (var i=1;i<=SH;i++) {
		document.getElementById("schaddress2" + i).optional = true;
		document.getElementById("schphone" + i).optional = true;
		document.getElementById("schenter" + i).optional = true;
		document.getElementById("schleft" + i).optional = true;
		document.getElementById("schgradecomp" + i).optional = true;
		document.getElementById("schtransfer" + i).optional = true;

	}
}

function SignatureCheck(fObj) {
	if (fObj.fatherinitial.value == "" && fObj.motherinitial.value == "" && fObj.guardianinitial.value == "" && fObj.other1initial.value == "" && fObj.other2initial.value == "") {
		alert("Please Initialize");
		return false;
	}
	else {
		if (fObj.fathersigndate.value == "" && fObj.mothersigndate.value == "" && fObj.guardiansigndate.value == "" && fObj.other1signdate.value == "" && fObj.other2signdate.value == "") {
			alert("Please date the form");
			return false;
		}
		else {
			if (fObj.fathersigndate.value != "" && !isDate(fObj.fathersigndate.value)) {
				alert("Invalid Date");
				return false;
			}
			if (fObj.mothersigndate.value != "" && !isDate(fObj.mothersigndate.value)) {
				alert("Invalid Date");
				return false;
			}
			if (fObj.guardiansigndate.value != "" && !isDate(fObj.mothersigndate.value)) {
				alert("Invalid Date");
				return false;
			}
			if (fObj.other1signdate.value != "" && !isDate(fObj.mothersigndate.value)) {
				alert("Invalid Date");
				return false;
			}
			if (fObj.other2signdate.value != "" && !isDate(fObj.mothersigndate.value)) {
				alert("Invalid Date");
				return false;
			}
		}
	}
}

function cancelApp(aForm) {
	var nFrm = eval("document." + aForm);
	nFrm.submit();
}
