<!--
// Declaring valid date character, minimum year and maximum year for date validation
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strMonth=dtStr.substring(0,pos1)
	var strDay=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		//alert("The date format should be : mm/dd/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		//alert("Please enter a valid month")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//alert("Please enter a valid day")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		//alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		//alert("Please enter a valid date")
		return false
	}
return true
}

function formCheckForm(formobj){
	// Enter name of mandatory fields
	var fieldRequired = Array("FName", "LName", "Institution", "Address", "City", "State", "ZipCode", "Phone", "Email", "BehalfOf", "ProgramName", "LearningOutcomes", "ProgramLength", "MinNumber", "MaxNumber", "AmountRequested", "FundsUsed", "Replicated", "HaveSponsorship", "AnticipatedContributions");
	// Enter field description to appear in the dialog box
	var fieldDescription = Array("First name", "Last name", "Institution", "Address", "City", "State", "Zip Code", "Phone", "Email", "Submitted on Behalf Of", "Program Name", "Description of learning outcomes", "Length of program", "Minimum registrants", "Maximum registrants", "Amount of funds requested", "How will funds be used", "Is this program able to be replicated", "Do you already have sponsorship", "Anticipated contributions from others");
	// dialog message
	var alertMsg = "Please complete the following required fields:\n\n";
	
	var l_Msg = alertMsg.length;
	
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			switch(obj.type){
			case "select-one":
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "text":
			case "textarea":
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			default:
			}
			if (obj.type == undefined){
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
			}
		}
	}

	//date validation (mm/dd/yyyy)
	if (isDate(formobj.ProgramDate.value)==false){
		alertMsg += " - Date of program must be a valid date (mm/dd/yyyy)\n";
	}

	//check the description of programs length
	var numWords = formobj.ProgramDescription.value.length;
	if (numWords < 500){
		alertMsg += " - Description of program has not reached the 100 word minimum\n";
	}
	if (numWords > 2100){
		alertMsg += " - Description of program has exceeded the 400 word maximum\n";
	}

	//if Presented Elsewhere is yes then a description needs to be provided
	for (var i=0; i < formobj.PresentedBefore.length; i++){
		if (formobj.PresentedBefore[i].checked){
		var txtPresent = formobj.PresentedBefore[i].value;
			if (txtPresent == "YES"){
				var numWords = length;
				if (formobj.PresentedBeforeDescribe.value == ""){
					alertMsg += " - When and where program presented before\n";
				}
			}
		}
	}

	//if have sponsorship what is name
	for (var i=0; i < formobj.HaveSponsorship.length; i++){
		if (formobj.HaveSponsorship[i].checked){
		var txtPresent = formobj.HaveSponsorship[i].value;
			if (txtPresent == "YES"){
				var numWords = length;
				if (formobj.SponsorName.value == ""){
					alertMsg += " - Sponsor Name\n";
				}
			}
		}
	}
	
	//display any errors
	if (alertMsg.length == l_Msg){
		return true;
	}else{
		alert(alertMsg);
		return false;
	}
}

function formCheckReportForm(formobj){
	// Enter name of mandatory fields
	var fieldRequired = Array("FName", "LName", "Institution", "Address", "City", "State", "ZipCode", "Phone", "Email", "BehalfOf", "ProgramName", "Topic", "Attendees", "ProgramFundsUsed", "ProgramDescription", "ProgramVaried", "ProgramSuccesses", "UseSpkr", "ProgramOtherFunding", "FormatUsed", "AdditionalInfo");
	// Enter field description to appear in the dialog box
	var fieldDescription = Array("First name", "Last name", "Institution", "Address", "City", "State", "Zip Code", "Phone", "Email", "Submitted on Behalf Of", "Program Name", "Program Topic", "Number of Attendees", "Specify how CEGP funds were used", "Describe the activities that occurred", "How and why your project changed", "Please list program successes", "Would you recommend this speaker", "List other funding sources received", "Format used to make program available", "Share any other comments and feedback");
	// dialog message
	var alertMsg = "Please complete the following required fields:\n\n";
	
	var l_Msg = alertMsg.length;
	
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			switch(obj.type){
			case "select-one":
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "text":
			case "textarea":
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			default:
			}
			if (obj.type == undefined){
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
			}
		}
	}
	
	//date validation (mm/dd/yyyy)
	if (isDate(formobj.ProgramDate.value)==false){
		alertMsg += " - Program Date must be a valid date (mm/dd/yyyy)\n";
	}

	//display any errors
	if (alertMsg.length == l_Msg){
		return true;
	}else{
		alert(alertMsg);
		return false;
	}
}
//-->