function trim(string)
		{
			var str;
			str=string;
			str=str.replace(new RegExp(/^\s+/),"");
			str=str.replace(new RegExp(/\s+$/),"");
			return(str);
		}


function frm_validate_feed() {
	if(trim(document.frmfeedPass.fname.value)=='')
	{
		alert('Please enter your first name.');
		document.frmfeedPass.fname.focus();
		return false;
	}
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	var emailaddress = document.frmfeedPass.email.value;
	if(reg.test(emailaddress) == false) 
	{
		alert('Please enter a valid email address');
		 document.frmfeedPass.email.focus();
		return false;
	}
	if(trim(document.frmfeedPass.reemail.value)=='')
	{
		alert('Please Re-enter your email address.');
		document.frmfeedPass.reemail.focus();
		return false;
	}
	if(trim(document.frmfeedPass.email.value) != trim(document.frmfeedPass.reemail.value))
	{
		alert("The email address and the confirmation email address don't match.");
		document.frmfeedPass.reemail.focus();
		return false;
	}
	if(trim(document.frmfeedPass.subject.value)=='')
	{
		alert('Please enter your subject name.');
		document.frmfeedPass.subject.focus();
		return false;
	}

	if(trim(document.frmfeedPass.comments.value)=='')
	{
		alert('Please enter your Comments.');
		document.frmfeedPass.comments.focus();
		return false;
	}

return true;
}

function frm_validate() {
	if(trim(document.frmOrderPass.fname.value)=='')
	{
		alert('Please enter your first name.');
		document.frmOrderPass.fname.focus();
		return false;
	}
	if(trim(document.frmOrderPass.lname.value)=='')
	{
		alert('Please enter your last name.');
		document.frmOrderPass.lname.focus();
		return false;
	}
	if(trim(document.frmOrderPass.dobirth.value)=='')
	{
		alert('Please enter your date of birth.');
		document.frmOrderPass.dobirth.focus();
		return false;
	}
	if (!validateUSDate(document.frmOrderPass.dobirth.value))
	{
		alert('Please enter valid date of birth.');
		document.frmOrderPass.dobirth.focus();
		return false;
	}
	if(trim(document.frmOrderPass.address.value)=='')
	{
		alert('Please enter mailing address.');
		document.frmOrderPass.address.focus();
		return false;
	}
	if(trim(document.frmOrderPass.city.value)=='')
	{
		alert('Please enter a city.');
		document.frmOrderPass.city.focus();
		return false;
	}
	if(trim(document.frmOrderPass.state.value)=='')
	{
		alert('Please enter a state.');
		document.frmOrderPass.state.focus();
		return false;
	}
	if(trim(document.frmOrderPass.zip.value)=='')
	{
		alert('Please enter a ZIP code.');
		document.frmOrderPass.zip.focus();
		return false;
	}
	if ( document.frmOrderPass.Country.selectedIndex == 0 )
	{
		alert ( "Please select a Country." );
		document.frmOrderPass.Country.focus();
		return false;
	}
	if(trim(document.frmOrderPass.phone.value)=='')
	{
		alert('Please enter a valid phone number.');
		document.frmOrderPass.phone.focus();
		return false;
	}
	if(trim(document.frmOrderPass.email.value)=='')
	{
		alert('Please enter an email address.');
		document.frmOrderPass.email.focus();
		return false;
	}
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	var emailaddress = document.frmOrderPass.email.value;
	if(reg.test(emailaddress) == false) 
	{
		alert('Please enter a valid email address');
		 document.frmOrderPass.email.focus();
		return false;
	}
	if(trim(document.frmOrderPass.reemail.value)=='')
	{
		alert('Please Re-enter your email address.');
		document.frmOrderPass.reemail.focus();
		return false;
	}
	if(trim(document.frmOrderPass.email.value) != trim(document.frmOrderPass.reemail.value))
	{
		alert("The email address and the confirmation email address don't match.");
		document.frmOrderPass.reemail.focus();
		return false;
	}
	if(trim(document.frmOrderPass.grade_level.value)=='')
	{
		alert('Please enter your current grade level.');
		document.frmOrderPass.grade_level.focus();
		return false;
	}
	if(trim(document.frmOrderPass.grade_applying.value)=='')
	{
		alert('Please enter a grade applying for.');
		document.frmOrderPass.grade_applying.focus();
		return false;
	}
	if(trim(document.frmOrderPass.pfname.value)=='')
	{
		alert('Please enter your Parent / Guardian first name.');
		document.frmOrderPass.pfname.focus();
		return false;
	}
	if(trim(document.frmOrderPass.plname.value)=='')
	{
		alert('Please enter your Parent / Guardian last name.');
		document.frmOrderPass.plname.focus();
		return false;
	}
	if(trim(document.frmOrderPass.presently_attending.value)=='')
	{
		alert('Please enter name of school presently attending.');
		document.frmOrderPass.presently_attending.focus();
		return false;
	}
	if(trim(document.frmOrderPass.scity.value)=='')
	{
		alert('Please enter a city.');
		document.frmOrderPass.scity.focus();
		return false;
	}
	if ( document.frmOrderPass.scountry.selectedIndex == 0 )
	{
		alert ( "Please select a Country." );
		document.frmOrderPass.scountry.focus();
		return false;
	}
	if(trim(document.frmOrderPass.word.value)=='')
	{
		alert('Please enter the word.');
		document.frmOrderPass.word.focus();
		return false;
	}
	return true;
}

function getVal() {
	if (document.frmOrderPass.same_as_app.checked == true)
	{
		document.frmOrderPass.paddress.value = document.frmOrderPass.address.value;
		document.frmOrderPass.pcity.value = document.frmOrderPass.city.value;
		document.frmOrderPass.pstate.value = document.frmOrderPass.state.value;
		document.frmOrderPass.pzip.value = document.frmOrderPass.zip.value;
		document.frmOrderPass.pcountry.selectedIndex = document.frmOrderPass.Country.selectedIndex;
		document.frmOrderPass.pphone.value = document.frmOrderPass.phone.value;
		document.frmOrderPass.pfax.value = document.frmOrderPass.fax.value;
		document.frmOrderPass.pemail.value = document.frmOrderPass.email.value;
	} else {
		document.frmOrderPass.paddress.value = "";
		document.frmOrderPass.pcity.value = "";
		document.frmOrderPass.pstate.value = "";
		document.frmOrderPass.pzip.value = "";
		document.frmOrderPass.pcountry.selectedIndex = 0;
		document.frmOrderPass.pphone.value = "";
		document.frmOrderPass.pfax.value = "";
		document.frmOrderPass.pemail.value = "";
	}
}

function new_freecap()
{
	// loads new freeCap image
	if(document.getElementById)
	{
		// extract image name from image source (i.e. cut off ?randomness)
		thesrc = document.getElementById("freecap").src;
		thesrc = thesrc.substring(0,thesrc.lastIndexOf(".")+4);
		// add ?(random) to prevent browser/isp caching
		document.getElementById("freecap").src = thesrc+"?"+Math.round(Math.random()*100000);
	} else {
		alert("Sorry, cannot autoreload freeCap image\nSubmit the form and a new freeCap will be loaded");
	}
}

function validateUSDate( strValue ) {
/************************************************
DESCRIPTION: Validates that a string contains only
    valid dates with 2 digit month, 2 digit day,
    4 digit year. Date separator can be ., -, or /.
    Uses combination of regular expressions and
    string parsing to validate date.
    Ex. mm/dd/yyyy or mm-dd-yyyy or mm.dd.yyyy

PARAMETERS:
   strValue - String to be tested for validity

RETURNS:
   True if valid, otherwise false.

REMARKS:
   Avoids some of the limitations of the Date.parse()
   method such as the date separator character.
*************************************************/
  var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
 
  //check to see if in correct format
  if(!objRegExp.test(strValue))
    return false; //doesn't match pattern, bad date
  else{
    var strSeparator = strValue.substring(2,3) 
    var arrayDate = strValue.split(strSeparator); 
    //create a lookup for months not equal to Feb.
    var arrayLookup = { '01' : 31,'03' : 31, 
                        '04' : 30,'05' : 31,
                        '06' : 30,'07' : 31,
                        '08' : 31,'09' : 30,
                        '10' : 31,'11' : 30,'12' : 31}
    var intDay = parseInt(arrayDate[1],10); 

    //check if month value and day value agree
    if(arrayLookup[arrayDate[0]] != null) {
      if(intDay <= arrayLookup[arrayDate[0]] && intDay != 0)
        return true; //found in lookup table, good date
    }
    
    //check for February (bugfix 20050322)
    //bugfix  for parseInt kevin
    //bugfix  biss year  O.Jp Voutat
    var intMonth = parseInt(arrayDate[0],10);
    if (intMonth == 2) { 
       var intYear = parseInt(arrayDate[2]);
       if (intDay > 0 && intDay < 29) {
           return true;
       }
       else if (intDay == 29) {
         if ((intYear % 4 == 0) && (intYear % 100 != 0) || 
             (intYear % 400 == 0)) {
              // year div by 4 and ((not div by 100) or div by 400) ->ok
             return true;
         }   
       }
    }

  }  
  return false; //any other values, bad date
}

function frm_validate_tvap() {
	
	if(trim(document.frmtvapPass.application.value)=='')
	{
		alert('Please select the application.');
		document.frmtvapPass.application.focus();
		return false;
	}
	
	if(trim(document.frmtvapPass.fname.value)=='')
	{
		alert('Please enter your first name.');
		document.frmtvapPass.fname.focus();
		return false;
	}
	if(trim(document.frmtvapPass.lname.value)=='')
	{
		alert('Please enter your last name.');
		document.frmtvapPass.lname.focus();
		return false;
	}

	if(trim(document.frmtvapPass.subject.value)=='')
	{
		alert('Please enter your Subject.');
		document.frmtvapPass.subject.focus();
		return false;
	}

	if(trim(document.frmtvapPass.dobirth.value)=='')
	{
		alert('Please enter your date of birth.');
		document.frmtvapPass.dobirth.focus();
		return false;
	}
	if (!validateUSDate(document.frmtvapPass.dobirth.value))
	{
		alert('Please enter valid date of birth.');
		document.frmtvapPass.dobirth.focus();
		return false;
	}
	if(trim(document.frmtvapPass.address.value)=='')
	{
		alert('Please enter mailing address.');
		document.frmtvapPass.address.focus();
		return false;
	}
	if(trim(document.frmtvapPass.city.value)=='')
	{
		alert('Please enter a city.');
		document.frmtvapPass.city.focus();
		return false;
	}
	if(trim(document.frmtvapPass.state.value)=='')
	{
		alert('Please enter a state.');
		document.frmtvapPass.state.focus();
		return false;
	}
	if(trim(document.frmtvapPass.zip.value)=='')
	{
		alert('Please enter a ZIP code.');
		document.frmtvapPass.zip.focus();
		return false;
	}
	if ( document.frmtvapPass.Country.selectedIndex == 0 )
	{
		alert ( "Please select a Country." );
		document.frmtvapPass.Country.focus();
		return false;
	}
	if(trim(document.frmtvapPass.phone.value)=='')
	{
		alert('Please enter a valid phone number.');
		document.frmtvapPass.phone.focus();
		return false;
	}
	if(trim(document.frmtvapPass.email.value)=='')
	{
		alert('Please enter an email address.');
		document.frmtvapPass.email.focus();
		return false;
	}
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	var emailaddress = document.frmtvapPass.email.value;
	if(reg.test(emailaddress) == false) 
	{
		alert('Please enter a valid email address');
		 document.frmtvapPass.email.focus();
		return false;
	}
	if(trim(document.frmtvapPass.reemail.value)=='')
	{
		alert('Please Re-enter your email address.');
		document.frmtvapPass.reemail.focus();
		return false;
	}
	if(trim(document.frmtvapPass.email.value) != trim(document.frmtvapPass.reemail.value))
	{
		alert("The email address and the confirmation email address don't match.");
		document.frmtvapPass.reemail.focus();
		return false;
	}

	
		if(trim(document.frmtvapPass.spouse.value)=='')
	{
		alert('Please enter your spouse name or enter No.');
		document.frmtvapPass.spouse.focus();
		return false;
	}

	if(trim(document.frmtvapPass.qualifications.value)=='')
	{
		alert('Please enter your qualification or enter No.');
		document.frmtvapPass.qualifications.focus();
		return false;
	}
	
		if(trim(document.frmtvapPass.school.value)=='')
	{
		alert('Please enter your school name');
		document.frmtvapPass.school.focus();
		return false;
	}
	
		if(trim(document.frmtvapPass.spop.value)=='')
	{
		alert('Please enter your school population');
		document.frmtvapPass.spop.focus();
		return false;
	}

	if ( document.frmtvapPass.ddlMonth2.selectedIndex == 0 )
	{
		alert ( "Please select month of joining." );
		document.frmtvapPass.ddlMonth2.focus();
		return false;
	}

	if ( document.frmtvapPass.ddlYear2.selectedIndex == 0 )
	{
		alert ( "Please select year of joining." );
		document.frmtvapPass.ddlYear2.focus();
		return false;
	}


		if ( document.frmtvapPass.ddlMonth1.selectedIndex == 0 )
	{
		alert ( "Please select month of leaving." );
		document.frmtvapPass.ddlMonth1.focus();
		return false;
	}

	if ( document.frmtvapPass.ddlYear1.selectedIndex == 0 )
	{
		alert ( "Please select year of leaving." );
		document.frmtvapPass.ddlYear1.focus();
		return false;
	}

	if(trim(document.frmtvapPass.subjects.value)=='')
	{
		alert('Please enter your Subject');
		document.frmtvapPass.subjects.focus();
		return false;
	}

	if(trim(document.frmtvapPass.telresp.value)=='')
	{
		alert('Please enter your teaching responsibility');
		document.frmtvapPass.telresp.focus();
		return false;
	}

	if(trim(document.frmtvapPass.ylevel.value)=='')
	{
		alert('Please enter your year levels');
		document.frmtvapPass.ylevel.focus();
		return false;
	}

	if(trim(document.frmtvapPass.aqualification.value)=='')
	{
		alert('Please enter your academic qualification');
		document.frmtvapPass.aqualification.focus();
		return false;
	}
	
	if(trim(document.frmtvapPass.ddlexp1.value)=='')
	{
		alert('Please enter your Pre-school experience or enter 0');
		document.frmtvapPass.ddlexp1.focus();
		return false;
	}
	
		if(trim(document.frmtvapPass.ddlexp2.value)=='')
	{
		alert('Please enter your Primary School Grades experience or enter 0');
		document.frmtvapPass.ddlexp2.focus();
		return false;
	}

		if(trim(document.frmtvapPass.ddlexp3.value)=='')
	{
		alert('Please enter your Secondary Grades experience or enter 0');
		document.frmtvapPass.ddlexp3.focus();
		return false;
	}

		if(trim(document.frmtvapPass.ddlexp4.value)=='')
	{
		alert('Please enter your Post Secondary/University experience or enter 0');
		document.frmtvapPass.ddlexp4.focus();
		return false;
	}

	if(trim(document.frmtvapPass.tPlease.value)=='')
	{
		alert('Please indicate when you are available to take up an appointment');
		document.frmtvapPass.tPlease.focus();
		return false;
	}
	if(trim(document.frmtvapPass.tPlease.value)=='')
	{
		alert('Please indicate when you are available to take up an appointment');
		document.frmtvapPass.tPlease.focus();
		return false;
	}



	return true;
}

function getVal() {
	if (document.frmtvapPass.same_as_app.checked == true)
	{
		document.frmtvapPass.paddress.value = document.frmtvapPass.address.value;
		document.frmtvapPass.pcity.value = document.frmtvapPass.city.value;
		document.frmtvapPass.pstate.value = document.frmtvapPass.state.value;
		document.frmtvapPass.pzip.value = document.frmtvapPass.zip.value;
		document.frmtvapPass.pcountry.selectedIndex = document.frmtvapPass.Country.selectedIndex;
		document.frmtvapPass.pphone.value = document.frmtvapPass.phone.value;
		document.frmtvapPass.pfax.value = document.frmtvapPass.fax.value;
		document.frmtvapPass.pemail.value = document.frmtvapPass.email.value;
	} else {
		document.frmtvapPass.paddress.value = "";
		document.frmtvapPass.pcity.value = "";
		document.frmtvapPass.pstate.value = "";
		document.frmtvapPass.pzip.value = "";
		document.frmtvapPass.pcountry.selectedIndex = 0;
		document.frmtvapPass.pphone.value = "";
		document.frmtvapPass.pfax.value = "";
		document.frmtvapPass.pemail.value = "";
	}
}

function new_freecap()
{
	// loads new freeCap image
	if(document.getElementById)
	{
		// extract image name from image source (i.e. cut off ?randomness)
		thesrc = document.getElementById("freecap").src;
		thesrc = thesrc.substring(0,thesrc.lastIndexOf(".")+4);
		// add ?(random) to prevent browser/isp caching
		document.getElementById("freecap").src = thesrc+"?"+Math.round(Math.random()*100000);
	} else {
		alert("Sorry, cannot autoreload freeCap image\nSubmit the form and a new freeCap will be loaded");
	}
}

function validateUSDate( strValue ) {
/************************************************
DESCRIPTION: Validates that a string contains only
    valid dates with 2 digit month, 2 digit day,
    4 digit year. Date separator can be ., -, or /.
    Uses combination of regular expressions and
    string parsing to validate date.
    Ex. mm/dd/yyyy or mm-dd-yyyy or mm.dd.yyyy

PARAMETERS:
   strValue - String to be tested for validity

RETURNS:
   True if valid, otherwise false.

REMARKS:
   Avoids some of the limitations of the Date.parse()
   method such as the date separator character.
*************************************************/
  var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
 
  //check to see if in correct format
  if(!objRegExp.test(strValue))
    return false; //doesn't match pattern, bad date
  else{
    var strSeparator = strValue.substring(2,3) 
    var arrayDate = strValue.split(strSeparator); 
    //create a lookup for months not equal to Feb.
    var arrayLookup = { '01' : 31,'03' : 31, 
                        '04' : 30,'05' : 31,
                        '06' : 30,'07' : 31,
                        '08' : 31,'09' : 30,
                        '10' : 31,'11' : 30,'12' : 31}
    var intDay = parseInt(arrayDate[1],10); 

    //check if month value and day value agree
    if(arrayLookup[arrayDate[0]] != null) {
      if(intDay <= arrayLookup[arrayDate[0]] && intDay != 0)
        return true; //found in lookup table, good date
    }
    
    //check for February (bugfix 20050322)
    //bugfix  for parseInt kevin
    //bugfix  biss year  O.Jp Voutat
    var intMonth = parseInt(arrayDate[0],10);
    if (intMonth == 2) { 
       var intYear = parseInt(arrayDate[2]);
       if (intDay > 0 && intDay < 29) {
           return true;
       }
       else if (intDay == 29) {
         if ((intYear % 4 == 0) && (intYear % 100 != 0) || 
             (intYear % 400 == 0)) {
              // year div by 4 and ((not div by 100) or div by 400) ->ok
             return true;
         }   
       }
    }

  }  
  return false; //any other values, bad date
}
