//Author: Jesse Kyzar - 2004 
//Purpose: user input validation

function validate_user_input(formObj) { 
    //initialize variables
	var errors = 0;
    var messages = "";
	
	//validate comments; must be between 1 and 1600 characters inclusive
	if(formObj.form_comments.value.length < 1) {
		errors++;
		messages = "\nPlease include questions or comments." + messages;
		lastField = formObj.form_comments;
	}
	else if(formObj.form_comments.value.length > 1600) {
		errors++;
		messages = "\nPlease restrict your questions or comments to 1600 characters or less." + messages;	
		 lastField = formObj.form_comments;
	}	
	
	//validate email; must be included and in a proper format
	if(formObj.form_email.value.length == 0) {
		errors++;
		messages = "\nPlease include your email address." + messages;
		lastField = formObj.form_email;
	}
	else if(!check_email_format(formObj.form_email.value)) {
     	errors++;
		messages = "\nYour email address does not appear to be in a proper format." + messages;
		lastField = formObj.form_email;
	}
	
	//validate lastname; must be included
	if(formObj.form_lastname.value.length == 0) {
		errors++;
		messages = "\nPlease include your lastname." + messages;
		lastField = formObj.form_lastname;
	}	
	
	//validate firstname; must be included
	if(formObj.form_firstname.value.length == 0) {
		errors++;
		messages = "\nPlease include your firstname." + messages;
		lastField = formObj.form_firstname;
	}
	
	if(errors == 1) {
	    var message = errors + " error found in your request." + messages;
		alert(message);
		lastField.focus();
		return false;
	}
	else if(errors > 1) {
	    var message = errors + " errors were found in your request." + messages;
		alert(message);
		lastField.focus();
		return false;
	}	
	else {
		return true;
	}
}

function check_email_format(thisEmail) {
	var patternEmail = /[a-z0-9\.]+@[-a-z0-9\.]+\.[a-z]+/i;
	var patternMatch = thisEmail.match(patternEmail);
	if(patternMatch == null) {
		return false;
	}
	else {
		return true;
	}
}

