

/*********************************************************************************************
 	RADIO BUTTON VALIDATION BELOW
**********************************************************************************************/
	// copyright Stephen Chapman, 15th Nov 2004,14th Sep 2005
	// you may copy this function but please keep the copyright notice with it
	function valButton(btn, alerttxt) {
		var cnt = -1;

		for (var i=btn.length-1; i > -1; i--) {
			if (btn[i].checked) {cnt = i;}
		}
		if (cnt > -1) return true;
		else {alert(alerttxt); return false;}
	}
/*********************************************************************************************/



/*********************************************************************************************
 	CHECK BOX VALIDATION BELOW
**********************************************************************************************/
	function valCheckboxes(chkName, alerttxt) {
		var count = 0;

		for(var i=1; i <=100; i++){				
			if(document.getElementById(chkName+i)){
				curChk = document.getElementById(chkName+i);
				if(curChk.checked){
					count=count+1;	
				}
			}else{
				break;	
			}
		}
		if(count>0){
			return true;	
		}else{
			alert(alerttxt); return false;
		}
	}
/*********************************************************************************************/



/*********************************************************************************************
 	POSTAL CODE VALIDATION BELOW
**********************************************************************************************/
	//FORMATS the postal code and then checks it.
	function postalCheck(pcode){
		var postalPattern = /^[A-Z][0-9][A-Z]\s[0-9][A-Z][0-9]$/;
		var postalRegExp = new RegExp(postalPattern);
		pcode.value= pcode.value.toUpperCase();
		
		if(pcode.value.substring(3,4)!=" "){
			pcode.value=pcode.value.substring(0,3)+" "+pcode.value.substring(3,6);	
		}
		if (pcode.value ==""){
			alert("Please enter your Postal Code.");
			return false;
		}
		if (postalRegExp.test(pcode.value) == false ){
			alert( "This Postal Code is invalid, please enter a valid Postal Code.");
			return false;
		}else{
			return true;	
		}
	}

/*********************************************************************************************/

/*********************************************************************************************
 	EMAIL VALIDATION BELOW
**********************************************************************************************/
		
	function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		
		if (str.indexOf(at)==-1){
		   alert("Please use a valid email address.");
		   return false;
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Please use a valid email address.");
		   return false;
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
			alert("Please use a valid email address.");
		   return false;
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Please use a valid email address.");
		   return false;
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Please use a valid email address.");
		   return false;
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Please use a valid email address.");
		   return false;
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Please use a valid email address.");
		   return false;
		 }

 		 return true					
	}

/*********************************************************************************************/


/*********************************************************************************************
 	DATE VALIDATION BELOW
**********************************************************************************************/
	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 must be : mm/dd/yyyy")
			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 (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 (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
			alert("Please enter a valid date")
			return false
		}
	return true
	}

/*********************************************************************************************/


/*********************************************************************************************
 	DATE COMPARISON BELOW
**********************************************************************************************/
var serializedDate = function (dateObject) {
    if (dateObject.constructor == Date) return (Date.parse(new Date(dateObject.getFullYear(), dateObject.getMonth(), dateObject.getDate())));
	return false;
}

function compareDates(firstdate, seconddate){
	//start date must be BEFORE end date
	var days = 0;
	
	var difference = 0;
		
	tmpfdate = new Date(firstdate);	
	tmpsdate = new Date(seconddate);

	tmpfdate=serializedDate(tmpfdate);
	tmpsdate=serializedDate(tmpsdate);
	
	difference = tmpsdate - tmpfdate;
	//alert(difference);
	days = Math.round(difference/(1000*60*60*24));

	if(days>0){ //good
		return true;
	}else{
		return false;	
	}
}


/*********************************************************************************************/


/*********************************************************************************************
 	AGE VALIDATION BELOW
**********************************************************************************************/
function checkAge(dateString,dateType) {
/*
   function getAge
   parameters: dateString dateType
   returns: boolean

   dateString is a date passed as a string in the following
   formats:

   type 1 : 19970529
   type 2 : 970529
   type 3 : 29/05/1997
   type 4 : 29/05/97

   dateType is a numeric integer from 1 to 4, representing
   the type of dateString passed, as defined above.

   Returns string containing the age in years, months and days
   in the format yyy years mm months dd days.
   Returns empty string if dateType is not one of the expected
   values.
*/

    var now = new Date();
    var today = new Date(now.getYear(),now.getMonth(),now.getDate());

    var yearNow = now.getYear();
    var monthNow = now.getMonth();
    var dateNow = now.getDate();

    if (dateType == 1)
        var dob = new Date(dateString.substring(0,4),
                            dateString.substring(4,6)-1,
                            dateString.substring(6,8));
    else if (dateType == 2)
        var dob = new Date(dateString.substring(0,2),
                            dateString.substring(2,4)-1,
                            dateString.substring(4,6));
    else if (dateType == 3)
        var dob = new Date(dateString.substring(6,10),
                            dateString.substring(3,5)-1,
                            dateString.substring(0,2));
    else if (dateType == 4)
        var dob = new Date(dateString.substring(6,8),
                            dateString.substring(3,5)-1,
                            dateString.substring(0,2));
    else
        return '';

    var yearDob = dob.getYear();
    var monthDob = dob.getMonth();
    var dateDob = dob.getDate();

    yearAge = yearNow - yearDob;

    if (monthNow >= monthDob)
        var monthAge = monthNow - monthDob;
    else {
        yearAge--;
        var monthAge = 12 + monthNow -monthDob;
    }

    if (dateNow >= dateDob)
        var dateAge = dateNow - dateDob;
    else {
        monthAge--;
        var dateAge = 31 + dateNow - dateDob;

        if (monthAge < 0) {
            monthAge = 11;
            yearAge--; 
        }
    }

    //return yearAge + ' years ' + monthAge + ' months ' + dateAge + ' days';
	if(yearAge<12 || yearAge>80){
		alert('You must be between 12 and 80 years of age to volunteer. Please call us for futher assistance.');
		return false;
	}else{
		return true;
	}
}


/*********************************************************************************************/



/*********************************************************************************************/



/*********************************************************************************************
 	FORM VALIDATION BELOW
**********************************************************************************************/
	function validate_required(field, alerttxt)
	{
		with(field)
		{
			if (value==null||value=="")
			  {alert(alerttxt);return false;}
			else {return true}
		}
	}
	
	//+ Jonas Raoni Soares Silva
	//@ http://jsfromhell.com/string/capitalize [v1.0]
	//usage: [string].capitalize()
	String.prototype.capitalize = function(){
		return this.replace(/\w+/g, function(a){
			return a.charAt(0).toUpperCase() + a.slice(1).toLowerCase();
		});
	};

	
	function validate_form1(thisform)
	{
		
		with (thisform)
		{
			if(valCheckboxes("socialIssues","Please select at least (1) social issue.")==false)
			  {return false;}
  		    
			if(valCheckboxes("skills","Please select at least (1) skill.")==false)
			  {return false;}
		}
		
		document.forms['frmVolunteer1'].action="joinVolunteer.asp?p=2";
		document.forms['frmVolunteer1'].submit();
	}
	
	
	function validate_form2(thisform){
		nearToNeedy = document.getElementsByName("nearToNeedy");
		groupHelp = document.getElementsByName("groupHelp");
		timeToVolunteer = document.getElementsByName("timeToVolunteer");
		whoToHelp = document.getElementsByName("whoToHelp");
		animals = document.getElementsByName("animals");
		cpr = document.getElementsByName("cpr");
		car = document.getElementsByName("car");	
		sportsTeams = document.getElementsByName("sportsTeams");
		OtherSportsText = document.getElementsByName("OtherSportsText");
		availability = document.getElementsByName("availability");
		
		with (thisform)
		{
			if(valButton(nearToNeedy,"Please answer question 1.")==false)
			  {return false;}
			if(valButton(groupHelp,"Please answer question 2.")==false)
			  {return false;}
			if(valButton(timeToVolunteer,"Please answer question 3.")==false)
			  {return false;}
			if(valButton(availability,"Please answer question 4.")==false)
			  {return false;}
			if(valButton(whoToHelp,"Please answer question 5.")==false)
			  {return false;}
			if(valButton(animals,"Please answer question 6.")==false)
			  {return false;}
			if(valButton(cpr,"Please answer question 7.")==false)
			  {return false;}
			if(valButton(car,"Please answer question 8.")==false)
			  {return false;}
		}
		
		document.forms['frmVolunteer2'].action="joinVolunteer.asp?p=3";
		document.forms['frmVolunteer2'].submit();
	}
	
	function validate_form3(thisform)
	{
		fname = document.getElementById("fName");
		lname = document.getElementById("lName");
		snum = document.getElementById("streetNumber");
		sname = document.getElementById("streetName");
		city = document.getElementById("city");
		pcode = document.getElementById("pcode");
		email = document.getElementById("yourEmail");
		gender = document.getElementsByName("gender");
		male = document.getElementsByName("male");
		female = document.getElementsByName("female");
	    ageRange = document.getElementById("ageRange");
		marketing = document.getElementsByName("marketing");	
		marketingOther = document.getElementById("marketingOther");		
		grade = document.getElementById("grade")
		
		with (thisform)
		{
			if(validate_required(fname,"First Name must be filled out!")==false)
			  {fname.focus();return false;}
			fname.value = fname.value.capitalize();
			
			if(validate_required(lname,"Last Name must be filled out!")==false)
			  {lname.focus();return false;}
			lname.value = lname.value.capitalize();
			
			if(validate_required(snum,"Street Number must be filled out!")==false)
			  {snum.focus();return false;}
			if(isInteger(snum.value)==false)
				{snum.focus();alert("Street Number must only contain numbers 0-9!");return false;}
				
			if(validate_required(sname,"Street Name must be filled out!")==false)
			  {sname.focus();return false;}
			sname.value = sname.value.capitalize();
			
			if(validate_required(city,"City must be filled out!")==false)
			  {city.focus();return false;} 
			city.value = city.value.capitalize();
			
			if(!postalCheck(pcode))
			  {pcode.focus();return false;} 
			  
			if(!echeck(email.value)){
				email.focus();return false;}
	
			if(valButton(gender,"Please select a gender!")==false)
			  {return false;}
			  
			if(gender[0].checked){
				document.getElementById("genderChoice").value='female';	
			}
			
			if(gender[1].checked){
				document.getElementById("genderChoice").value='male';	
			}			 
			
			if(ageRange.options[ageRange.selectedIndex].text=="")
			  {ageRange.focus();return false;}
			/*if(!isDate(dob.value))
				{dob.focus; return false;} 
			if(!checkAge(dob.value,3))
				{dob.focus; return false;}*/
				
			if(valButton(marketing,"Please tell us how you heard about us.")==false)
			  {return false;}	
						
			if(marketing[0].checked){document.getElementById('marketingChoice').value=marketing[0].value}
			if(marketing[1].checked){document.getElementById('marketingChoice').value=marketing[1].value}
			if(marketing[2].checked){document.getElementById('marketingChoice').value=marketing[2].value}
			if(marketing[3].checked){document.getElementById('marketingChoice').value=marketing[3].value}
			if(marketing[4].checked){
				document.getElementById('marketingChoice').value=marketing[4].value
				if(validate_required(marketingOther,"Please tell us how you heard about us.")==false)
			 	 {marketingOther.focus();return false;}
			}
			
			if(grade.value!=''){
				if(isInteger(grade.value)==false)
				{grade.focus();alert("Grade must only contain numbers 0-9!");return false;}
			}
		
			document.forms['frmVolunteer3'].action="joinVolunteer.asp?p=4";
			document.forms['frmVolunteer3'].submit();
		}
	}
	
	function validate_formFull(thisform){
		fname = document.getElementById("fName");
		lname = document.getElementById("lName");
		snum = document.getElementById("streetNumber");
		sname = document.getElementById("streetName");
		city = document.getElementById("city");
		pcode = document.getElementById("pcode");
	    ageRange = document.getElementById("ageRange");
		volphone = document.getElementById("volPhone");
		marketing = document.getElementsByName("marketing");	
		marketingOther = document.getElementById("marketingOther");	
		
		with (thisform)
		{
			if(validate_required(fname,"First Name must be filled out!")==false)
			  {fname.focus();return false;}
			fname.value = fname.value.capitalize();
			
			if(validate_required(lname,"Last Name must be filled out!")==false)
			  {lname.focus();return false;}
			lname.value = lname.value.capitalize();
			
			if(validate_required(snum,"Street Number must be filled out!")==false)
			  {snum.focus();return false;}
			if(isInteger(snum.value)==false)
				{snum.focus();alert("Street Number must only contain numbers 0-9!");return false;}
				
			if(validate_required(sname,"Street Name must be filled out!")==false)
			  {sname.focus();return false;}			
			sname.value = sname.value.capitalize();
			
			if(validate_required(city,"City must be filled out!")==false)
			  {city.focus();return false;} 			
			city.value = city.value.capitalize();
			
			if(!postalCheck(pcode))
			  {pcode.focus();return false;} 
			  
			if(validate_required(volphone,"Your phone number be filled out!")==false)
			  {volphone.focus();return false;}
			if(isInteger(volphone.value)==false)
				{volphone.focus();alert("Phone Number must only contain numbers 0-9!");return false;}			  
			if(volphone.value.length<10)
				{volphone.focus();alert("Phone Number must be 10 characters long. Please include your area code.");return false;}
				
			if(ageRange.options[ageRange.selectedIndex].text=="")
			  {ageRange.focus();return false;}
			/*if(!isDate(dob.value))
				{dob.focus; return false;} 
			if(!checkAge(dob.value,3))
				{dob.focus; return false;}*/
				
			if(valCheckboxes("socialIssues","Please select at least (1) social issue.")==false)
			  {return false;}
  		    
			if(valCheckboxes("skills","Please select at least (1) skill.")==false)
			  {return false;}
			  
			if(marketing[0].checked){document.getElementById('marketingChoice').value=marketing[0].value}
			if(marketing[1].checked){document.getElementById('marketingChoice').value=marketing[1].value}
			if(marketing[2].checked){document.getElementById('marketingChoice').value=marketing[2].value}
			if(marketing[3].checked){document.getElementById('marketingChoice').value=marketing[3].value}
			if(marketing[4].checked){				
				if(validate_required(marketingOther,"Please tell us how you heard about us.")==false)
			 	 {marketingOther.focus();return false;}
				 document.getElementById('marketingChoice').value=marketingOther.value
			}
			
  			document.forms['frmVolunteerFull'].action = "submitVolunteer.asp";
			document.forms['frmVolunteerFull'].submit();

		}
	}
	
	
	
	function validate_formOrg(thisform){
		yourName = document.getElementById("yourName");
		yourEmail = document.getElementById("yourEmail");
	    organization = document.getElementById("organization");
		orgPhone = document.getElementById("orgPhone");
		snum = document.getElementById("streetNumber");
		sname = document.getElementById("streetName");
		city = document.getElementById("city");
		pcode = document.getElementById("pcode");
		sdate = document.getElementById("startDate");
		edate = document.getElementById("endDate");
		
		with (thisform)
		{
			if(validate_required(yourName,"Your name must be filled out!")==false)
			  {yourName.focus();return false;}
			  
			if(validate_required(yourEmail,"Your email must be filled out!")==false)
			  {yourEmail.focus();return false;}
			
			if(validate_required(organization,"Your organization's name must be filled out!")==false)
			  {organization.focus();return false;}
			  
			if(validate_required(orgPhone,"Your phone number be filled out!")==false)
			  {orgPhone.focus();return false;}
			if(isInteger(orgPhone.value)==false)
				{orgPhone.focus();alert("Phone Number must only contain numbers 0-9!");return false;}			  
			if(orgPhone.value.length<10)
				{orgPhone.focus();alert("Phone Number must be 10 characters long. Please include your area code.");return false;}
			
			if(validate_required(snum,"Street Number must be filled out!")==false)
			  {snum.focus();return false;}
			if(isInteger(snum.value)==false)
				{snum.focus();alert("Street Number must only contain numbers 0-9!");return false;}
				
			if(validate_required(sname,"Street Name must be filled out!")==false)
			  {sname.focus();return false;}
			sname.value = sname.value.capitalize();
			
			if(validate_required(city,"City must be filled out!")==false)
			  {city.focus();return false;} 
			city.value = city.value.capitalize();
			
			if(!postalCheck(pcode))
			  {pcode.focus();return false;} 

  			document.forms['frmOrgRegistration'].submit();

		}
	}
	
	function validate_formOrgAddOpp(thisform)
	{
	    organization = document.getElementById("organization");			
		sdate = document.getElementById("startDate");
		edate = document.getElementById("endDate");
		frequency = document.getElementsByName("frequency");
				
		with (thisform)
		{			
			if(validate_required(organization,"The organization's name must be selected!") == false)
			{
				organization.focus();
				return false;
			}

			if (sdate.value != "" && edate.value != "")
			{
				if (!compareDates(sdate.value, edate.value))	
				{
					sdate.focus();
					alert ("End Date must come after Start Date!");
					return false;
				}
			}
			else
			{
				if (!compareDates(Date(), sdate.value))
			  	{
					alert("Start Date must come after today!");
					return false;
				}
			}
			
			if(valButton(frequency,"You must choose a frequency.")==false)
			  {return false;}	
			
  			document.getElementById('saveOpp').value = 'y';
			document.forms['frmOrgAddOpp'].submit();

		}
	}
	
	function validate_formOppEdit(thisform)
	{
		numReq = document.getElementById("numReq");
		frequency = document.getElementsByName("frequency");
		sdate = document.getElementById("startDate");
		edate = document.getElementById("endDate");	
		
		if(validate_required(numReq,"Number of volunteers requested must be filled out!")==false)
		  {numReq.focus();return false;}
		if(isInteger(numReq.value)==false)
			{numReq.focus();alert("Number of volunteers requested must only contain numbers 0-9!");return false;}
		
		if(valButton(frequency,"You must choose a frequency.")==false)
			  {return false;}
		
		if(!isDate(sdate.value))
			{alert("Start Date must be a correctly formatted date! mm/dd/yyyy"); return false;}
		var strSdate = sdate.value;
		var strEdate = edate.value;
	
		if(frequency[1].checked){ //if temporary check
			if(!isDate(edate.value))
				{alert("End Date must be a correctly formatted date! mm/dd/yyyy"); return false;}	

		  	if(!compareDates(strSdate, strEdate))	
				{alert("End Date must come after Start Date!"); return false;}		
		}
		
		document.getElementById("chgOppIndic").value="y";
		document.forms['chgOpp'].submit();
			  
	}
	
	function validate_formOppAdd(thisform){
		org = document.getElementById("ddOrganization");
		numReq = document.getElementById("numReq");
		frequency = document.getElementsByName("frequency");
		sdate = document.getElementById("startDate");
		edate = document.getElementById("endDate");	
		
		if(validate_required(org,"Organization must be selected!")==false)
		  {org.focus();return false;}
		  
		if(validate_required(numReq,"Number of volunteers requested must be filled out!")==false)
		  {numReq.focus();return false;}
		if(isInteger(numReq.value)==false)
			{numReq.focus();alert("Number of volunteers requested must only contain numbers 0-9!");return false;}
		
		if(valButton(frequency,"You must choose a frequency.")==false)
			  {return false;}
		
		if(!isDate(sdate.value))
			{alert("Start Date must be a correctly formatted date! mm/dd/yyyy"); return false;}
		var strSdate = sdate.value;
		var strEdate = edate.value;
		if(!compareDates(Date(), strSdate))	
			{alert("Start Date must come after today!"); return false;}
	
		if(frequency[1].checked){ //if temporary check
			if(!isDate(edate.value))
				{alert("End Date must be a correctly formatted date! mm/dd/yyyy"); return false;}	
		
		  	if(!compareDates(strSdate, strEdate))	
				{alert("End Date must come after Start Date!"); return false;}		
		}
		
		document.getElementById("chgOppIndic").value="add";
		document.forms['chgOpp'].submit();
			  
	}
	
	function validate_formOrgEdit(thisform){			
	    org = document.getElementById("orgName");		
		snum = document.getElementById("sNum");
		sname = document.getElementById("sName");
		city = document.getElementById("city");
		pcode = document.getElementById("postal");
		contactName = document.getElementById("contactName");
		contactEmail = document.getElementById("contactEmail");
		contactPhone = document.getElementById("contactPhone");
		
		with (thisform)
		{
						
			if(validate_required(org,"Organization's name must be filled out!")==false)
			  {org.focus();return false;}	  
			
			if(validate_required(snum,"Street Number must be filled out!")==false)
			  {snum.focus();return false;}
			if(isInteger(snum.value)==false)
				{snum.focus();alert("Street Number must only contain numbers 0-9!");return false;}
				
			if(validate_required(sname,"Street Name must be filled out!")==false)
			  {sname.focus();return false;}
			sname.value = sname.value.capitalize();
			
			if(validate_required(city,"City must be filled out!")==false)
			  {city.focus();return false;} 
			city.value = city.value.capitalize();
			
			if(!postalCheck(pcode))
			  {pcode.focus();return false;} 
	
			if(validate_required(contactName,"Contact name must be filled out!")==false)
			  {contactName.focus();return false;}
			  			  
			if(validate_required(contactEmail,"Contact email must be filled out!")==false)
			  {contactEmail.focus();return false;}
			  
			if(validate_required(contactPhone,"Contact phone number be filled out!")==false)
			  {contactPhone.focus();return false;}
			if(isInteger(contactPhone.value)==false)
				{contactPhone.focus();alert("Phone Number must only contain numbers 0-9!");return false;}			  
			if(contactPhone.value.length<10)
				{contactPhone.focus();alert("Phone Number must be 10 characters long. Please include your area code.");return false;}	
			  	
			document.getElementById("chgOppIndic").value="y";
			document.forms['frmOrgEdit'].submit;

		}
	}
	
	
	function validate_formVolEdit(thisform){
		fname = document.getElementById("fName");
		lname = document.getElementById("lName");
		snum = document.getElementById("streetNumber");
		sname = document.getElementById("streetName");
		city = document.getElementById("city");
		pcode = document.getElementById("pcode");
	    ageRange = document.getElementById("ageRange");
		volphone = document.getElementById("volPhone");
		marketing = document.getElementsByName("marketing");	
		marketingOther = document.getElementById("marketingOther");	
		
		with (thisform)
		{
			if(validate_required(fname,"First Name must be filled out!")==false)
			  {fname.focus();return false;}
			fname.value = fname.value.capitalize();
			
			if(validate_required(lname,"Last Name must be filled out!")==false)
			  {lname.focus();return false;}
			lname.value = lname.value.capitalize();
			
			if(validate_required(snum,"Street Number must be filled out!")==false)
			  {snum.focus();return false;}
			if(isInteger(snum.value)==false)
				{snum.focus();alert("Street Number must only contain numbers 0-9!");return false;}
				
			if(validate_required(sname,"Street Name must be filled out!")==false)
			  {sname.focus();return false;}			
			sname.value = sname.value.capitalize();
			
			if(validate_required(city,"City must be filled out!")==false)
			  {city.focus();return false;} 			
			city.value = city.value.capitalize();
			
			if(!postalCheck(pcode))
			  {pcode.focus();return false;} 
			  
			if(validate_required(volphone,"Your phone number be filled out!")==false)
			  {volphone.focus();return false;}
			if(isInteger(volphone.value)==false)
				{volphone.focus();alert("Phone Number must only contain numbers 0-9!");return false;}			  
			if(volphone.value.length<10)
				{volphone.focus();alert("Phone Number must be 10 characters long. Please include your area code.");return false;}
				
			if(ageRange.options[ageRange.selectedIndex].text=="")
			  {ageRange.focus();return false;}
			/*if(!isDate(dob.value))
				{dob.focus; return false;} 
			if(!checkAge(dob.value,3))
				{dob.focus; return false;}*/
				
			if(valCheckboxes("socialIssues","Please select at least (1) social issue.")==false)
			  {return false;}
  		    
			if(valCheckboxes("skills","Please select at least (1) skill.")==false)
			  {return false;}
			  
			
			
			document.getElementById("chgVolIndic").value="y";
			document.forms['chgVol'].submit();

		}
	}
	
	
	function validate_snowVol(thisform){
		fname = document.getElementById("fName");
		lname = document.getElementById("lName");
		snum = document.getElementById("streetNumber");
		sname = document.getElementById("streetName");
		city = document.getElementById("city");
		pcode = document.getElementById("pcode");
		volphone = document.getElementById("volPhone");
		schoolYesNo = document.getElementsByName("schoolYesNo");
		schoolName = document.getElementById("school");
		license = document.getElementsByName("license");
		car = document.getElementsByName("car");
		
		with (thisform)
		{
			if(validate_required(fname,"First Name must be filled out!")==false)
			  {fname.focus();return false;}
			fname.value = fname.value.capitalize();
			
			if(validate_required(lname,"Last Name must be filled out!")==false)
			  {lname.focus();return false;}
			lname.value = lname.value.capitalize();
			
			if(validate_required(snum,"Street Number must be filled out!")==false)
			  {snum.focus();return false;}
			if(isInteger(snum.value)==false)
				{snum.focus();alert("Street Number must only contain numbers 0-9!");return false;}
				
			if(validate_required(sname,"Street Name must be filled out!")==false)
			  {sname.focus();return false;}			
			sname.value = sname.value.capitalize();
			
			if(validate_required(city,"City must be filled out!")==false)
			  {city.focus();return false;} 			
			city.value = city.value.capitalize();
						  
			if(!postalCheck(pcode))
			  {pcode.focus();return false;} 
			  
			if(validate_required(volphone,"Your phone number be filled out!")==false)
			  {volphone.focus();return false;}
			if(isInteger(volphone.value)==false)
				{volphone.focus();alert("Phone Number must only contain numbers 0-9!");return false;}			  
			if(volphone.value.length<10)
				{volphone.focus();alert("Phone Number must be 10 characters long. Please include your area code.");return false;}
				
			if(valButton(schoolYesNo,"Please answer question 1.")==false)
			  {return false;}	
			if(schoolYesNo[0].checked){
				if(validate_required(schoolName,"School Name must be filled out!")==false)
			  	{schoolName.focus();return false;}
			}
			
			if(valButton(license,"Please answer question 2.")==false)
			  {return false;}
			  
			if(valButton(car,"Please answer question 3.")==false)
			  {return false;} 
  			document.forms['frmSnowVolunteer'].action = "submitSnowVolunteer.asp";
			document.forms['frmSnowVolunteer'].submit();

		}
	}
	
	
	function validate_snowApp(thisform){
		fname = document.getElementById("fName");
		lname = document.getElementById("lName");
		snum = document.getElementById("streetNumber");
		sname = document.getElementById("streetName");
		city = document.getElementById("city");
		pcode = document.getElementById("pcode");
		volphone = document.getElementById("volPhone");
		qualification = document.getElementsByName("qualification");

		
		with (thisform)
		{
			if(valButton(qualification,"Please indicate why you qualify to be a participant.")==false)
			  {return false;}	
			  
			if(validate_required(fname,"First Name must be filled out!")==false)
			  {fname.focus();return false;}
			fname.value = fname.value.capitalize();
			
			if(validate_required(lname,"Last Name must be filled out!")==false)
			  {lname.focus();return false;}
			lname.value = lname.value.capitalize();
			
			if(validate_required(snum,"Street Number must be filled out!")==false)
			  {snum.focus();return false;}
			if(isInteger(snum.value)==false)
				{snum.focus();alert("Street Number must only contain numbers 0-9!");return false;}
				
			if(validate_required(sname,"Street Name must be filled out!")==false)
			  {sname.focus();return false;}			
			sname.value = sname.value.capitalize();
			
			if(validate_required(city,"City must be filled out!")==false)
			  {city.focus();return false;} 			
			city.value = city.value.capitalize();
			
			if(!postalCheck(pcode))
			  {pcode.focus();return false;} 
			  
			if(validate_required(volphone,"Your phone number be filled out!")==false)
			  {volphone.focus();return false;}
			if(isInteger(volphone.value)==false)
				{volphone.focus();alert("Phone Number must only contain numbers 0-9!");return false;}			  
			if(volphone.value.length<10)
				{volphone.focus();alert("Phone Number must be 10 characters long. Please include your area code.");return false;}
				
			
			
  			document.forms['frmSnowApplicant'].action = "submitSnowApplicant.asp";
			document.forms['frmSnowApplicant'].submit();

		}
	}
	
	
	function validate_studentForm(thisform){
		fname = document.getElementById("fName");
		lname = document.getElementById("lName");
		snum = document.getElementById("streetNumber");
		sname = document.getElementById("streetName");
		city = document.getElementById("city");
		pcode = document.getElementById("pcode");
		contactEmail = document.getElementById("contactEmail");
		contactEmail2 = document.getElementById("contactEmail2");
		school = document.getElementById("school")
		grade = document.getElementById("grade")
		ageRange = document.getElementById("ageRange");
		marketing = document.getElementsByName("marketing");	
		marketingOther = document.getElementById("marketingOther");
		marketingReferral = document.getElementById("marketingReferral");
		
		with (thisform)
		{
			if(validate_required(fname,"First Name must be filled out!")==false)
			  {fname.focus();return false;}
			fname.value = fname.value.capitalize();
			
			if(validate_required(lname,"Last Name must be filled out!")==false)
			  {lname.focus();return false;}
			lname.value = lname.value.capitalize();
			
			if(validate_required(snum,"Street Number must be filled out!")==false)
			  {snum.focus();return false;}
			if(isInteger(snum.value)==false)
				{snum.focus();alert("Street Number must only contain numbers 0-9!");return false;}
				
			if(validate_required(sname,"Street Name must be filled out!")==false)
			  {sname.focus();return false;}			
			sname.value = sname.value.capitalize();
			
			if(validate_required(city,"City must be filled out!")==false)
			  {city.focus();return false;} 			
			city.value = city.value.capitalize();
			
			if(!postalCheck(pcode))
			  {pcode.focus();return false;} 
			  
			if(!echeck(contactEmail.value)){
				contactEmail.focus();return false;
			}
			
			if(contactEmail.value!=contactEmail2.value)
			{contactEmail2.focus();alert("Email and confirmation must match!");return false;}
				
			if(validate_required(school,"School must be filled out!")==false)
			  {school.focus();return false;}
			school.value = school.value.capitalize();
			
			if(validate_required(grade,"Grade must be filled out!")==false)
			  {grade.focus();return false;}
			  
			if(isInteger(grade.value)==false)
			{grade.focus();alert("Grade must only contain numbers!");return false;}
			 
			if(ageRange.options[ageRange.selectedIndex].text=="")
			{ageRange.focus();return false;}
			
			if(marketing[4].checked){
				if(validate_required(marketingReferral,"Please enter your friend's name.")==false)
			 	 {marketingReferral.focus();return false;}
			}
			if(marketing[5].checked){			
				if(validate_required(marketingOther,"Please tell us how you heard about us.")==false)
			 	 {marketingOther.focus();return false;}
			}
			
			document.forms['frmStudentVol'].submit();

		}
	}
	function checkMiniProfileForm(){
		var mailForm=document.forms['frmMiniProfile'];
		var errMsg='';
			
		if(validate_required(mailForm.elements['volFName'],"First Name must be filled out!")==false)
		  {mailForm.elements['volFName'].focus();return false;}
		  
		if(validate_required(mailForm.elements['volLName'],"Last Name must be filled out!")==false)
		  {mailForm.elements['volLName'].focus();return false;}
		
		if(validate_required(mailForm.elements['snum'],"Street Number must be filled out!")==false)
		  {mailForm.elements['snum'].focus();return false;}
		if(isInteger(mailForm.elements['snum'].value)==false)
			{mailForm.elements['snum'].focus();alert("Street Number must only contain numbers 0-9!");return false;}
			
		if(validate_required(mailForm.elements['sname'],"Street Name must be filled out!")==false)
		  {mailForm.elements['sname'].focus();return false;}			
		mailForm.elements['sname'].value = mailForm.elements['sname'].value.capitalize();
		
		if(validate_required(mailForm.elements['city'],"City must be filled out!")==false)
		  {mailForm.elements['city'].focus();return false;} 			
		mailForm.elements['city'].value = mailForm.elements['city'].value.capitalize();
		
		if(!postalCheck(mailForm.elements['pcode']))
		  {mailForm.elements['pcode'].focus();return false;} 
		  
		if(mailForm.elements['volPhone'].value==''){
			errMsg += 'Phone Number, ';
		}
		
		if(mailForm.elements['emailAdd'].value==''){
			errMsg += 'Email Address, ';
		}else if(!checkMail(mailForm.elements['emailAdd'].value)){
			errMsg += 'Valid Email Address, ';	
		}
		if(mailForm.elements['emailAdd'].value!=mailForm.elements['emailAdd2'].value)
		{mailForm.elements['emailAdd2'].focus();alert("Email and confirmation must match!");return false;}
		
		if(mailForm.elements['ageRange'].options[mailForm.elements['ageRange'].selectedIndex].text=="")
		{mailForm.elements['ageRange'].focus();return false;}
		
	 	if(mailForm.elements['ageRange'].options[mailForm.elements['ageRange'].selectedIndex].text=="12-17"){
			if(validate_required(mailForm.elements['school'],"School must be filled out!")==false)
			  {mailForm.elements['school'].focus();return false;}
			mailForm.elements['school'].value = mailForm.elements['school'].value.capitalize();
			
			if(validate_required(mailForm.elements['grade'],"Grade must be filled out!")==false)
			  {mailForm.elements['grade'].focus();return false;}
			  
			if(isInteger(mailForm.elements['grade'].value)==false)
			{mailForm.elements['grade'].focus();alert("Grade must only contain numbers!");return false;}
		}

		
		if(mailForm.elements['marketing'][4].checked){
			if(validate_required(mailForm.elements['marketingReferral'],"Please enter your friend's name.")==false)
			 {mailForm.elements['marketingReferral'].focus();return false;}
		}
		if(mailForm.elements['marketing'][5].checked){			
			if(validate_required(mailForm.elements['marketingOther'],"Please tell us how you heard about us.")==false)
			 {mailForm.elements['marketingOther'].focus();return false;}
		}
	
		document.getElementById('formCheckSuccess').value = '1';
		mailForm.submit();
		return true;
		
		
	}
	function validate_basicVolForm(thisform){
		fname = document.getElementById("fName");
		lname = document.getElementById("lName");
		snum = document.getElementById("streetNumber");
		sname = document.getElementById("streetName");
		city = document.getElementById("city");
		pcode = document.getElementById("pcode");
		contactEmail = document.getElementById("contactEmail");
		contactEmail2 = document.getElementById("contactEmail2");
		school = document.getElementById("school")
		grade = document.getElementById("grade")
		ageRange = document.getElementById("ageRange");
		marketing = document.getElementsByName("marketing");	
		marketingOther = document.getElementById("marketingOther");
		marketingReferral = document.getElementById("marketingReferral");
		student = document.getElementById("ddStudent");
		with (thisform)
		{
			if(validate_required(fname,"First Name must be filled out!")==false)
			  {fname.focus();return false;}
			fname.value = fname.value.capitalize();
			
			if(validate_required(lname,"Last Name must be filled out!")==false)
			  {lname.focus();return false;}
			lname.value = lname.value.capitalize();
			
			if(validate_required(snum,"Street Number must be filled out!")==false)
			  {snum.focus();return false;}
			if(isInteger(snum.value)==false)
				{snum.focus();alert("Street Number must only contain numbers 0-9!");return false;}
				
			if(validate_required(sname,"Street Name must be filled out!")==false)
			  {sname.focus();return false;}			
			sname.value = sname.value.capitalize();
			
			if(validate_required(city,"City must be filled out!")==false)
			  {city.focus();return false;} 			
			city.value = city.value.capitalize();
			
			if(!postalCheck(pcode))
			  {pcode.focus();return false;} 
			  
			if(!echeck(contactEmail.value)){
				contactEmail.focus();return false;
			}
			
			if(contactEmail.value!=contactEmail2.value)
			{contactEmail2.focus();alert("Email and confirmation must match!");return false;}
			
			if(ageRange.options[ageRange.selectedIndex].text=="")
			{ageRange.focus();alert("Age Range is mandatory!");return false;}
			
			if(student.value=="")
			{student.focus(); alert("Please tell us if you are a student or not!");return false;}
			
			if(ageRange.value=="12-17"){
				if(validate_required(school,"School must be filled out!")==false)
				  {school.focus();return false;}
				school.value = school.value.capitalize();
				
				if(validate_required(grade,"Grade must be filled out!")==false)
				  {grade.focus();return false;}
				  
				if(isInteger(grade.value)==false)
				{grade.focus();alert("Grade must only contain numbers!");return false;}
			}
			
			if(marketing[4].checked){
				if(validate_required(marketingReferral,"Please enter your friend's name.")==false)
			 	 {marketingReferral.focus();return false;}
			}
			if(marketing[5].checked){			
				if(validate_required(marketingOther,"Please tell us how you heard about us.")==false)
			 	 {marketingOther.focus();return false;}
			}
			
			document.forms['frmStudentVol'].submit();

		}
	}
	
	function checkCommentForm(){
		var commentForm=document.forms['frmComment'];
		var errMsg='';
	
		if(commentForm.elements['txtName'].value==''){
			errMsg += 'Name, ';
		}
		
		if(commentForm.elements['txtEmail'].value==''){
			errMsg += 'Email Address, ';
		}else if(!echeck(commentForm.elements['txtEmail'].value)){
			errMsg += 'Valid Email Address, ';	
		}
		
		if(commentForm.elements['txtComments'].value==''){
			errMsg += 'Comments, ';
		}
		
		if(errMsg==''){
			document.getElementById('formCheckSuccess').value = '1';
			commentForm.submit();
			return true;
		}else{
			errMsg = errMsg.substring(0, errMsg.length-2);
			errMsg = 'The following mandatory fields are not complete:\n' + errMsg;
			alert(errMsg);
			return false;
		}
		
	}
	
/*********************************************************************************************/


function evalWordCount(objThis, strIdDisplay, intMaxWords)
{
	var arrWords = objThis.value.split(' ');
	var strValue = '';
	var intWords = 0;
	if (arrWords.length > intMaxWords)
	{
		for (intI = 0; intI < intMaxWords; intI++)
		{
			strValue += arrWords[intI] + ' ';
			intWords++;
		}
		objThis.value = strValue;
	}
	else
	{
		intWords = arrWords.length;
	}
	intWords = (intMaxWords - intWords);
	if (intWords == 1)
	{
		document.getElementById(strIdDisplay).innerHTML = intWords + ' word remaining.';
	}
	else
	{
		document.getElementById(strIdDisplay).innerHTML = intWords + ' words remaining.';
	}
}
