// JavaScript Document
function validate()
{
	document.getElementById("errDegreeLocation").innerHTML="";
	document.getElementById("errDegreeType").innerHTML="";
	document.getElementById("errDegreeYear").innerHTML="";
	document.getElementById("errAdditionalDegreeLocation").innerHTML="";
	document.getElementById("errAdditionalDegreeYear").innerHTML="";
	document.getElementById("errAdditionalDegreeType").innerHTML="";
	document.getElementById("errLocationPreferance").innerHTML="";
	document.getElementById("errEntranceType").innerHTML="";
	document.getElementById("errName").innerHTML="";
	document.getElementById("errEmail").innerHTML="";
	document.getElementById("errPhone").innerHTML="";
	document.getElementById("errAddress").innerHTML="";
	
	if(document.frmContact.degree_earned_location.value=="")
	{
		document.getElementById("errDegreeLocation").innerHTML="enter location";
		document.frmContact.degree_earned_location.focus();
		return false;
	}
	else if(document.frmContact.degree_type.value=="")
	{
		document.getElementById("errDegreeType").innerHTML="enter degree type";
		document.frmContact.degree_type.focus();
		return false;
	}
    else if(document.frmContact.degree_year.value=="")
	{
		document.getElementById("errDegreeYear").innerHTML="enter degree completed year";
		document.frmContact.degree_year.focus();
		return false;
	}
	if(isValidYear(document.frmContact.degree_year.value)!=true)
	{
		document.getElementById("errDegreeYear").innerHTML="enter valid 4 digit year";
		document.frmContact.degree_year.focus();
		return false;
	}
	if(document.frmContact.additional_degree_location.value=="" && document.frmContact.chk_additional_degree.checked==true)
	{
		document.getElementById("errAdditionalDegreeLocation").innerHTML="enter additional degree location";
		document.frmContact.additional_degree_location.focus();
		return false;
	}
	else if(document.frmContact.additional_degree_type.value=="" && document.frmContact.chk_additional_degree.checked==true)
	{
		document.getElementById("errAdditionalDegreeType").innerHTML="enter additional degree type";
		document.frmContact.additional_degree_type.focus();
		return false;
	}
	else if(document.frmContact.additional_degree_year.value=="" && document.frmContact.chk_additional_degree.checked==true)
	{
		document.getElementById("errAdditionalDegreeYear").innerHTML="enter additional degree year";
		document.frmContact.additional_degree_year.focus();
		return false;
	}
	if(isValidYear(document.frmContact.additional_degree_year.value)!=true  && document.frmContact.chk_additional_degree.checked==true)
	{
		document.getElementById("errAdditionalDegreeYear").innerHTML="enter valid 4 digit year";
		document.frmContact.additional_degree_year.focus();
		return false;
	}
	else if(document.frmContact.entrance_type.value=="")
	{
		document.getElementById("errEntranceType").innerHTML="enter term/semester";
		document.frmContact.entrance_type.focus();
		return false;
	}
	else if(document.frmContact.location_preferance.value=="")
	{
		document.getElementById("errLocationPreferance").innerHTML="select location";
		document.frmContact.location_preferance.focus();
		return false;
	}
	else if(document.frmContact.name.value=="")
	{
		document.getElementById("errName").innerHTML="enter name";
		document.frmContact.name.focus();
		return false;
	}
	else if(document.frmContact.email_address.value=="")
	{
		document.getElementById("errEmail").innerHTML="enter email address";
		document.frmContact.email_address.focus();
		return false;
	}
	if(isValidEmail(document.frmContact.email_address.value)!=true)
	{
		document.getElementById("errEmail").innerHTML="enter valid email address";
		document.frmContact.email_address.focus();
		return false;
	}
	else if(document.frmContact.phone.value=="")
	{
		document.getElementById("errPhone").innerHTML="enter phone number";
		document.frmContact.phone.focus();
		return false;
	}
	if(document.frmContact.phone.value!="")
	{
		if(allValidPhoneChars(document.frmContact.phone.value)!=true)
	    {
			document.getElementById("errPhone").innerHTML="enter valid phone number"
			document.frmContact.phone.focus();
			return false;
		}	
	}
	if(document.frmContact.address.value=="")
	{
		document.getElementById("errAddress").innerHTML="enter address";
		document.frmContact.address.focus();
		return false;
	}
}



/* function for showing and hiding additional degree options */
function showhide_additional()
{ 
	var browserName=navigator.appName;
	if (browserName=="Microsoft Internet Explorer")
	{
		var id1 = 'additional_1';
		var obj1 = '';
		obj1 = (document.getElementById) ? document.getElementById(id1) : ((document.all) ? document.all[id1] : ((document.layers) ? document.layers[id1] : false));
		if(document.frmContact.chk_additional_degree.checked==true)
			obj1.style.display = 'inline'; // or 'table-cell' or a TD element.
		else
			obj1.style.display = 'none';
			
		var id2 = 'additional_2';
		var obj2 = '';
		obj2 = (document.getElementById) ? document.getElementById(id2) : ((document.all) ? document.all[id2] : ((document.layers) ? document.layers[id2] : false));
		if(document.frmContact.chk_additional_degree.checked==true)
			obj2.style.display = 'inline'; // or 'table-cell' or a TD element.
		else
			obj2.style.display = 'none';
			
		var id3 = 'additional_3';
		var obj3 = '';
		obj3 = (document.getElementById) ? document.getElementById(id3) : ((document.all) ? document.all[id3] : ((document.layers) ? document.layers[id3] : false));
		if(document.frmContact.chk_additional_degree.checked==true)
			obj3.style.display = 'inline'; // or 'table-cell' or a TD element.
		else
			obj3.style.display = 'none';
	}
	else
	{
		var id1 = 'additional_1';
		var obj1 = '';
		obj1 = (document.getElementById) ? document.getElementById(id1) : ((document.all) ? document.all[id1] : ((document.layers) ? document.layers[id1] : false));
		if(document.frmContact.chk_additional_degree.checked==true)
			obj1.style.display = 'table-row'; // or 'table-cell' or a TD element.
		else
			obj1.style.display = 'none';
			
		var id2 = 'additional_2';
		var obj2 = '';
		obj2 = (document.getElementById) ? document.getElementById(id2) : ((document.all) ? document.all[id2] : ((document.layers) ? document.layers[id2] : false));
		if(document.frmContact.chk_additional_degree.checked==true)
			obj2.style.display = 'table-row'; // or 'table-cell' or a TD element.
		else
			obj2.style.display = 'none';
			
		var id3 = 'additional_3';
		var obj3 = '';
		obj3 = (document.getElementById) ? document.getElementById(id3) : ((document.all) ? document.all[id3] : ((document.layers) ? document.layers[id3] : false));
		if(document.frmContact.chk_additional_degree.checked==true)
			obj3.style.display = 'table-row'; // or 'table-cell' or a TD element.
		else
			obj3.style.display = 'none';
	}
}


/* function for checking valid phone numbers */
function allValidPhoneChars(phonenumber) 
{
var parsed = true;
  var validchars = "0123456789)(-/";
  	for (var i=0; i < phonenumber.length; i++) 
  	{
	  var letter = phonenumber.charAt(i);
	  if (validchars.indexOf(letter) != -1)
	  continue;
	  parsed = false;
	  break;
	}
return parsed;
}


/* function for checking valid email address */

function isValidEmail(email, required) 
	{	
		if (required==undefined)    // if not specified, assume it's required
    {
        required=true;
    }
    if (email==null)
    {
      if (required) 
      {
            return false;
      }
      return true;
    }
    if (email.length==0) 
    {  
	    if (required) 
        {
            return false;
        }
        return true;
    }
    if (! allValidChars(email))  // check to make sure all characters are valid
    {
        return false;
    }
    if (email.indexOf("@") < 1)  //  must contain @, and it must not be the first character
    {
        return false;
    } 

    else if (email.lastIndexOf(".") <= email.indexOf("@"))  // last dot must be after the @
   {
       return false;
    }
	//addition
    else if (email.indexOf(".") <= email.indexOf("0")+1)  // next character must not be dot after //the @
    {
      return false;
    }	
   //end
    else if (email.indexOf(".") == email.length) // . must not be the last character
    { 	
       return false;
    }
    else if (email.indexOf("@") == email.length) // @ must not be the last character
    { 
        return false;
    }   
    else if (email.indexOf("..") >=0) // two periods in a row is not valid
    { 
        return false;
    }   
    return true;
}

	function allValidChars(email) 
	{
	  var parsed = true;
	  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
		for (var i=0; i < email.length; i++) 
		{
		  var letter = email.charAt(i).toLowerCase();
		  if (validchars.indexOf(letter) != -1)
		  continue;
		  parsed = false;
		  break;
		}
	
		return parsed;
	}

/* function for checking valid phone numbers */
function isValidYear(year) 
{
var parsed = true;
  var validnumber = "0123456789";
  if(year.length<4)
  {
	 parsed = false;
  }
  else
  {
  	for (var i=0; i < year.length; i++) 
  	{
	  var num = year.charAt(i);
	  if (validnumber.indexOf(num) != -1)
	  continue;
	  parsed = false;
	  break;
	}
  }
return parsed;
}