// JavaScript Document
// JScript File


function validate(){	
    var ALL_ZEROES_ZIPCODE  = "00000";
    var ALL_ONES_ZIPCODE    = "11111";
    var ALL_THREES_ZIPCODE  = "33333";
    var ALL_SIXES_ZIPCODE   = "66666";
    var ALL_SEVENS_ZIPCODE  = "77777";
    var ALL_EIGHTS_ZIPCODE  = "88888";
    var ALL_NINES_ZIPCODE   = "99999";
    var INVALID_ZIPCODE_00011	= "00011";
    var INVALID_ZIPCODE_00001	= "00001";  
    
    if (document.forms.application.Name.value == "") {					
		alert("Please enter your Name.");
		document.forms.application.Name.focus();
		return false;
	}							
	if (document.forms.application.Zip.value.length < 5) {					
			alert("Please enter a valid U.S. ZIP Code.");
			document.forms.application.Zip.focus();
			return false;
		}	
	if (document.forms.application.Zip.value == ALL_ZEROES_ZIPCODE) {					
		alert("Please enter a valid U.S. ZIP Code.");
		document.forms.application.Zip.focus();
		return false;
	}
	if (document.forms.application.Zip.value == ALL_ONES_ZIPCODE) {					
		alert("Please enter a valid U.S. ZIP Code.");
		document.forms.application.Zip.focus();
		return false;
	}
	if (document.forms.application.Zip.value == ALL_THREES_ZIPCODE) {					
		alert("Please enter a valid U.S. ZIP Code.");
		document.forms.application.Zip.focus();
		return false;
	}
	if (document.forms.application.Zip.value == ALL_SIXES_ZIPCODE) {					
		alert("Please enter a valid U.S. ZIP Code.");
		document.forms.application.Zip.focus();
		return false;
	}
	if (document.forms.application.Zip.value == ALL_SEVENS_ZIPCODE) {					
		alert("Please enter a valid U.S. ZIP Code.");		
		document.forms.application.Zip.focus();
		return false;
	}
	if (document.forms.application.Zip.value == ALL_EIGHTS_ZIPCODE) {					
		alert("Please enter a valid U.S. ZIP Code.");
		document.forms.application.Zip.focus();
		return false;
	}
	if (document.forms.application.Zip.value == ALL_NINES_ZIPCODE) {					
		alert("Please enter a valid U.S. ZIP Code.");
		document.forms.application.Zip.focus();
		return false;
	}
	if (document.forms.application.Zip.value == INVALID_ZIPCODE_00001) {					
		alert("Please enter a valid U.S. ZIP Code.");
		document.forms.application.Zip.focus();
		return false;
	}
	if (document.forms.application.Zip.value == INVALID_ZIPCODE_00011) {					
		alert("Please enter a valid U.S. ZIP Code.");
		document.forms.application.Zip.focus();
		return false;
	}	
	
	if ((document.forms.application.Phone.value==null)||(document.forms.application.Phone.value=="")){
		alert("Please Enter your Phone Number")
		document.forms.application.Phone.focus()
		return false
	}
	
	if (checkInternationalPhone(document.forms.application.Phone.value)==false){
		alert("Please Enter a Valid Phone Number")
		document.forms.application.Phone.value=""
		document.forms.application.Phone.focus()
		return false
	}

	if (document.forms.application.email.value == "") {					
		alert("Please enter the email address.");
		document.forms.application.email.focus();
		return false;
	}			
	if (echeck(document.forms.application.email.value)==false){
		document.forms.application.email.focus();
		return false;
	}
	
	if (checkDomain(document.forms.application.email.value)==false){		
		document.forms.application.email.focus();
		return false;
	}

	if (document.forms.application.howhear.value == "") {					
		alert("Please let us know how you heard about us.");
		document.forms.application.howhear.focus();
		return false;
	}
	
	return true;
}

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("You must enter a valid Email Address.  Please update your entry.")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("You must enter a valid Email Address.  Please update your entry.")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("You must enter a valid Email Address.  Please update your entry.")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("You must enter a valid Email Address.  Please update your entry.")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("You must enter a valid Email Address.  Please update your entry.")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("You must enter a valid Email Address.  Please update your entry.")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("You must enter a valid Email Address.  Please update your entry.")
		    return false
		 }

 		 return true					
	}
function alpha(e) {
var k;
document.all ? k = e.keyCode : k = e.which;
return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8);
}
function checkDomain(nname)
{
var arr = 
new Array(".aero",".coop",".jobs",".net",".asia",".edu",".mil",".org",".biz",".gov",".mobi",".pro",".cat",".info",".museum",".tel",".com",".int",".name",".travel",".tv");

var mai = nname;
var val = true;

var dot = mai.lastIndexOf(".");
var dname = mai.substring(0,dot);
var ext = mai.substring(dot,mai.length);
//alert(ext);
	
if(dot>2 && dot<57)
{
	for(var i=0; i<arr.length; i++)
	{
	  if(ext == arr[i])
	  {
	 	val = true;
		break;
	  }	
	  else
	  {
	 	val = false;
	  }
	}
	if(val == false)
	{
	  	 alert("Please enter a valid email address");
		 return false;
	}
	else
	{
		for(var j=0; j<dname.length; j++)
		{
		  var dh = dname.charAt(j);
		  var hh = dh.charCodeAt(0);
		  if((hh > 47 && hh<59) || (hh > 64 && hh<91) || (hh > 96 && hh<123) || hh==45 || hh==46)
		  {
			 if((j==0 || j==dname.length-1) && hh == 45)	
		  	 {
		 	  	 alert("Please enter a valid email address");
			      return false;
		 	 }
		 	 
		  }

		}
	}
}
else
{
 alert("Please enter a valid email address");
 return false;
}	
return true;
}
/**
 * DHTML phone number validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

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 trim(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}
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++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
var bracket=3
strPhone=trim(strPhone)
if(strPhone.indexOf("+")>1) return false
if(strPhone.indexOf("-")!=-1)bracket=bracket+1
if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
var brchr=strPhone.indexOf("(")
if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}
