// Begin Form Validation

function submitThis( form ) { // if entries are filled and valid, submit; otherwise return false
			var testForm = false;
			detSubmit = determineSubmit( form );
			if( detSubmit ) {
				alert( detSubmit );
				if( testForm ) testValues( form );
				return false;
			} else {
				if( testForm ) {
					testValues( form );
					return false;
				} else {
					return true;
				}
			}
		}
		
function determineSubmit( form ) { // driver
	var isFilled = allFilled( form );
	if( isFilled != "" ) return isFilled;
	else {
		var isLegal = giveWarning( form );
		return isLegal;
	}
}
		
function allFilled( form ) { // when necessary fields are empty, return an error message to alert user
	var error = "";
	if( form.firstn.value == "" )		error = "Please enter your first name";
	else if( form.lastn.value == "" )	error = "Please enter your last name";
	else if( form.company.value == "" )	error = "Please enter your company name";
	else if( form.phone.value == "" )	error = "Please enter contact phone number";
	else if( form.email.value == "" )	error = "Please enter contact email";
	return error;
}

function giveWarning( form ) { // determines if the applicant is eligible
	var result = "";

	// error messages
	var notEmail = "Your email address should follow this format: someone@somewhere.[com,org,mil,net,biz,tv,etc.]";

	if( !isValidEmail( form.visitormail.value ) ) { result = notEmail; }

	return result;
}
				
function testValues( form ) { // show values of the form at the time the function is called
	var results = ""
	results += "firstn: " +  form.firstn.value + "\n";
	results += "lastn: " +  form.lastn.value + "\n";
	results += "company: " +  form.company.value + "\n";
	results += "phone: " +  form.phone.value + "\n";
	results += "email: " +  form.email.value + "\n";
	alert( results );
}

function isValidEmail(str) { // determines if the email address is valid
	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;
}
		
