var hiddendivDisplayVariable;


function validateFormOnSubmit(theForm) {
var reason = "";

if(hiddendivDisplayVariable!=false){
  reason += validateEmptyCheckBox();
  reason += validateDropDownList(theForm.COUNTRY);
  reason += validateAlphaNum(theForm.FIRST_NAME);
  reason += validateAlphaNum(theForm.LAST_NAME);
  reason += validateEmail(theForm.PRIMARY_EMAIL_ADDR);
  reason += validatePhone(theForm.PHONE_1);
  // Sets State Value to INTL for Out of USA when field not displayedvalidateDropDownList
  theForm.STATE_1.value = "INTL";
}else{   
  reason += validateEmptyCheckBox();
  reason += validateDropDownList(theForm.COUNTRY);
  reason += validateAlphaNum(theForm.FIRST_NAME);
  reason += validateAlphaNum(theForm.LAST_NAME);
  reason += validateEmail(theForm.PRIMARY_EMAIL_ADDR);
  reason += validatePhone(theForm.PHONE_1);
  reason += validateDropDownList(theForm.STATE_1);
  reason += validateZIP(theForm.ZIP_CODE);
}

  if (reason != "") {
    alert("Some fields need correction:\n" + reason);
    return false;
  }

 // alert("All fields are filled correctly");
  return true;
}
function validateEmptyCheckBox(){
	if(document.getElementById('iK_8').checked==false&&document.getElementById('i9_12').checked==false){
	var error = "";
        error = "Please check at least one grade level that interests you.\n"
	return error;
}   

 
return "";

}
function validateDropDownList(fld){
	    var error = "";
	var x=fld.selectedIndex;
		if(document.getElementsByTagName("option")[x].value==""){
			
		 
			        error = "The required drop down list " + fld.id +  " has not been filled in.\n"
		}    return error;
}
function validateZIP(fld) {
    var error = "";
    var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');    

   if (fld.value == "") {
        error = "The required field " + fld.id +  " has not been filled in.\n"
 
    } else if (isNaN(parseInt(stripped))) {
        error = "The ZIP code contains illegal characters.\n";
 
    } else if (!(stripped.length == 5)) {
        error = "The ZIP code is too short.\n";
 
    }
    return error;
}
function validateEmpty(fld) {
    var error = "";
 
    if (fld.value.length == 0) {
 
        error = "The required field " + fld.id +  " has not been filled in.\n"
    } else {
        fld.style.background = 'White';
    }
    return error;  
}
function validateAlphaNum(fld) {
    var error = "";
    var illegalChars = /\W/; // allow letters, numbers, and underscores
 
    if (fld.value == "") {
 
        error = "The required field " + fld.id +  " has not been filled in.\n"
	}
    return error;
}
function validatePassword(fld) {
    var error = "";
    var illegalChars = /[\W_]/; // allow only letters and numbers 
 
    if (fld.value == "") {
 
        error = "You didn't enter a password.\n";
    } else if ((fld.value.length < 7) || (fld.value.length > 15)) {
        error = "The password is the wrong length. \n";
 
    } else if (illegalChars.test(fld.value)) {
        error = "The password contains illegal characters.\n";
 
    } else if (!((fld.value.search(/(a-z)+/)) && (fld.value.search(/(0-9)+/)))) {
        error = "The password must contain at least one numeral.\n";
 
    } else {
        fld.style.background = 'White';
    }
   return error;
}  
function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
}
function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
   
    if (fld.value == "") {
 
        error = "The required field " + fld.id +  " has not been filled in.\n"
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
 
        error = "Please enter a valid email address.\n";
 
        error = "Please enter a valid email address.\n";
    } else {
        fld.style.background = 'White';
    }
    return error;
}
function validatePhone(fld) {
    var error = "";
    var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');    
    fld.value = stripped;

   if (fld.value == "") {
        error = "The required field " + fld.id +  " has not been filled in.\n"
 
    /*} else if (isNaN(parseInt(stripped))) {*/
    } else if (isNaN(stripped)) {
        error = "The phone number contains illegal characters.\n";
    } 
    return error;
}
function checkCookie()
{
		var what=document.getElementById('country').selectedIndex;
	 		var SelectedCountry=document.getElementsByTagName("option")[what].value; 
	if((SelectedCountry=='United States') || (SelectedCountry=='')){
		 
		document.getElementById('divDisplayVariable').style.display="block";	
			hiddendivDisplayVariable=false;
		}else{	 
			document.getElementById('divDisplayVariable').style.display="none";
			hiddendivDisplayVariable=true;
		} 
}
function countryDisplayVariable(){
	var what=document.getElementById('country').selectedIndex;
	 		var SelectedCountry=document.getElementsByTagName("option")[what].value; 
 
		if((SelectedCountry=='United States') || (SelectedCountry=='')){
			
		document.getElementById('divDisplayVariable').style.display="block";	
			hiddendivDisplayVariable=false;
		}else{
			document.getElementById('divDisplayVariable').style.display="none";
			hiddendivDisplayVariable=true;
		} 
} 
var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^" + specialChars + "\]";
var quotedString="(\"[^\"]*\")";
var ipDomainPat=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedString + ")";
var atomPat=new RegExp("^" + atom + "$");
var localPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
var complexPat=/^(.+)<(.+)>$/;
var commentPat=/(.*)\((.*)\)(.*)$/;
function simpleEmailCheck (emailStr) {
	if(emailStr == "") return false;
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) return false;
	var user=matchArray[1];
	var domain=matchArray[2];
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) return false;
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) return false;
	}
	if( !checkUser(user)) return false;
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) return false;
		}
		return true;
	}
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if( !checkDomain(domArr[i]) ) return false;
	}
	return true;
}
function checkDomain(domain){
	var validDomain = true;
	var domainArray = domain.match(commentPat);
	if( domainArray == null ) {
		if( domain.match(atomPat)==-1) validDomain = false;
	}
	else {
		for(var i=1; i<domainArray.length; i++){
			if( domainArray[i] != "" && !checkDomain(domainArray[i]) ) validDomain = false;
		}
	}
	return validDomain;
}
function checkUser(user){
	var validUser = true;
	var userArray = user.match(commentPat);
	if( userArray == null ){
		if (user.match(localPat)==null)  validUser = false;
	}
	else {
		for(var i=1; i<userArray.length; i++) {
			if( userArray[i] != "" && !checkUser(userArray[i]) ) validUser = false;
		}
	}
	return validUser;
}
function isEmail(field, strBodyHeader){
	emailStr = field.value;
	if(emailStr.length == 0) return true;
	if(!complexEmailCheck(emailStr)) {
		var strMsg = "Error: Invalid email address. Please type a valid email address for field \"%%\".";
		var strArr = strMsg.split("%%");
		if(strArr.length > 1)
		strMsg = strArr[0] + strBodyHeader + strArr[1];
		alert(strMsg);
		field.focus();
		return false;
	}
	return true;
}
function complexEmailCheck(emailStr){
	if(emailStr == "") return false;
	if(emailStr.indexOf("@")==-1) return false;
	if(emailStr.indexOf(" ")!=-1) return false;
	if(emailStr.indexOf(",")!=-1) return false;
	var matchArray=emailStr.match(complexPat);
	if (matchArray==null) {
		if( simpleEmailCheck(emailStr) ) return true;
		else return false;
	}
	var phrase=matchArray[1];
	var routeAddr=matchArray[2];
	if( !simpleEmailCheck(routeAddr) ) return false;
	else return true;
}
function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1; 
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    } 
  }
return "";
}function setCookie(c_name,value)
{ 
document.cookie=c_name+ "=" +escape(value) 
}


