//WireIE - Validating Contact Form //

// function to to check for a valid email address

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){
		   return false;
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false;
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		   return false;
		}

		if (str.indexOf(at,(lat+1))!=-1){
		    return false;
		}

		if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false;
		}

		if (str.indexOf(dot,(lat+2))==-1){
		    return false;
		}

		if (str.indexOf(" ")!=-1){
		    return false;
		}

 		return true;
}

//function to verify that field contains alphanumeric data or a limited character set

function isAlpha(entry){
	validChar='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ&-_().," "';// characters allowed
	strlen=entry.length;
	entry=entry.toUpperCase();   //Shift to upper case
	// Now scan string for illegal characters
	for (i=0;i<strlen;i++){
		if(validChar.indexOf(entry.charAt(i))<0){
		   return false;
		}
	} // end scanning loop
		return true;
}

//function to verify that field contains numeric data, dash, dot or underscore

function isNumeric(entry){
	validChar='0123456789-_().';// characters allowed
	strlen=entry.length;
	entry=entry.toUpperCase();   //Shift to upper case
	// Now scan string for illegal characters
	for (i=0;i<strlen;i++){
		if(validChar.indexOf(entry.charAt(i))<0){
		   return false;
		}
	} // end scanning loop
	return true;
}

function validate() {

	var strMissing='';
	var emailFilter=/^.+@.+\..{2,3,4,6}$/;
	var name_indicator = 0;
	var email_indicator = 0;
	var phone_indicator = 0;
	var company_indicator = 0;
	var message_indicator = 0;

	//Validate Name
	if (document.contact_wireie.name.value == '') {
		name_indicator=1;
	}
	if (isAlpha(document.contact_wireie.name.value)==false) {
		name_indicator=1;
	}
	if (name_indicator == 1) {
		strMissing += "\n Name";
	}
		
	//Validate Company
	if (isAlpha(document.contact_wireie.company.value)==false) {
		company_indicator=1;
	}
	if (document.contact_wireie.company.value == '') {
		company_indicator=0;	
	}
	if (company_indicator == 1) {
		strMissing += "\n Company";	
	}
	
	//Validate Email
	if (document.contact_wireie.email.value == '') {
		email_indicator=1;
	}
	if (echeck(document.contact_wireie.email.value)==false) {
		email_indicator=1;
	}
	if (emailFilter.test(document.contact_wireie.email.value)) {
       email_indicator=1;
	}
	if (email_indicator == 1) {
		 strMissing += "\n Email";
	}	 
	//Validate Phone Number	and Extension
	
	if (isNumeric(document.contact_wireie.phone.value)==false) {
		phone_indicator=1;
	}
	if (document.contact_wireie.phone.value == '') {
		phone_indicator=0;	
	}
	if (phone_indicator == 1) {
		strMissing += "\n Phone #";
	}	
			
	//Validate Message
	if (document.contact_wireie.message.value == '') {
		message_indicator=1;
	}
	if (isAlpha(document.contact_wireie.message.value)==false) {
		message_indicator=1;
	}
	if (message_indicator == 1) {
		strMissing += "\n Message";	
	}
		
	//Display Error Message
	
	if (strMissing != '') {
		alert ("Please make sure that the following are correctly filled in:" +  strMissing);
	}else {
		frm = document.getElementById('contact_wireie');
		frm.action="contact_message.php";
		frm.submit();
	}
}

