function checkField(field) {	

//handle other validation types

	//don't check message  box
	if(field.id == "message")
		return true;
	
	var val = field.value;
	var is_valid = false;
	//handle email
	if(field.id == "email") {
		var re = /^\w+@\w+\.\w{2,}$/;	
		if(!val.match(re))
			is_valid = false;
		else
			is_valid = true;
	}
	//handle all other fields, empty is bad
	else {
		if(val == "") {
			is_valid = false;
		}
		else
			is_valid = true;		
	}
	
	return is_valid;
}

function checkThis() {
	checkField(this);
}

function finalizeForm() {
	var fields = this.elements;
	var errors = 0;
	var first_err = "";
	for(var i = 0; i < fields.length; i++) {
		var field = fields[i];
		if(checkField(field) == false || (field.id == "message" && field.value == "")) {
			errors++;
			if(first_err == "")
				first_err = field;
		}
	}	
	if(errors > 0) {
		alert("Please fix the indicated field");
		first_err.focus();
		first_err.select();
		return false;
	}
	else
		return true;
}

function setupFormVal(){
	var form = document.getElementById("contactform");
		var fields = form.elements;
		for(var i = 0; i < fields.length; i++) {
			var field = fields[i];
			field.onchange = checkThis;
		}
		form.onsubmit = finalizeForm;
}

function addLoader(loader) {
	var oldload = window.onload;
	if(typeof(oldload) == "function") 
		window.onload = function() {
			oldload();
			loader();
		}
	else
		window.onload = function() {
			loader();
		}
}

addLoader(setupFormVal);