var color = '#EEDDDD';

function verifyRequired() {
	var contactform = document.getElementById('contactform');
	var result = true;
	result = validateName(contactform.uname) && result;
	result = validateSubject(contactform.usubject) && result;
	result = validateEmail(contactform.uemail) && result;
	result = validateMessage(contactform.umessage) && result;
	result = validateCaptcha(contactform.captcha_code) && result;
	//alert(result);
	return result;
}

function validateName(fld) {
	var valid = true;
	document.getElementById("uname_empty").style.display = "none";
	document.getElementById("uname_long").style.display = "none";
	document.getElementById("uname_badchar").style.display = "none";
	var legalChars = /^[A-Za-z-',. ]*$/;
 
	if (fld.value == "") {
		document.getElementById("uname_empty").style.display = "list-item";
		valid = false;
	} else {
		if (fld.value.length > 100) {
			document.getElementById("uname_long").style.display = "list-item";
			valid = false;
		}
		if (!legalChars.test(fld.value)) {
			document.getElementById("uname_badchar").style.display = "list-item";
			valid = false;
		}
	}
	fld.style.background = valid ? 'none' : color;
	return valid;
}

function validatePhone(fld) {
	var valid = true;
	document.getElementById("uphone_empty").style.display = "none";
	document.getElementById("uphone_size").style.display = "none";
	var stripped = fld.value.replace(/[^0-9]/g, '');

	if (fld.value == "") {
		document.getElementById("uphone_empty").style.display = "list-item";
		valid = false;
	} else {
		if (stripped.length != 10) {
			document.getElementById("uphone_size").style.display = "list-item";
			valid = false;
		}
	}
	fld.style.background = valid ? 'none' : color;
	return valid;
}

function validateSubject(fld) {
	var valid = true;
	document.getElementById("usubject_empty").style.display = "none";
	document.getElementById("usubject_long").style.display = "none";
	document.getElementById("usubject_badchar").style.display = "none";
	var illegalChars = /\0\f\n\r\t\v/;

	if (fld.value == "") {
		document.getElementById("usubject_empty").style.display = "list-item";
		valid = false;
	} else {
		if (fld.value.length > 100) {
			document.getElementById("usubject_long").style.display = "list-item";
			valid = false;
		}
		if (illegalChars.test(fld.value)) {
			document.getElementById("usubject_badchar").style.display = "list-item";
			valid = false;
		}
	}
	fld.style.background = valid ? 'none' : color;
	return valid;
}

function validateEmail(fld) {
	var valid = true;
	document.getElementById("uemail_empty").style.display = "none";
	document.getElementById("uemail_badchar").style.display = "none";
	var tfld = trim(fld.value);
	var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
	var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;

	if (tfld == "") {
		document.getElementById("uemail_empty").style.display = "list-item";
		valid = false;
	} else {
		if (!emailFilter.test(tfld) || illegalChars.test(tfld)) {
			document.getElementById("uemail_badchar").style.display = "list-item";
			valid = false;
		}
	}
	fld.style.background = valid ? 'none' : color;
	return valid;
}

function validateMessage(fld) {
	var valid = true;
	document.getElementById("umessage_empty").style.display = "none";
	document.getElementById("umessage_long").style.display = "none";

	if (fld.value == "") {
		document.getElementById("umessage_empty").style.display = "list-item";
		valid = false;
	} else {
		if (fld.value.length > 1024) {
			document.getElementById("umessage_long").style.display = "list-item";
			valid = false;
		}
	}
	fld.style.background = valid ? 'none' : color;
	return valid;
}

function validateCaptcha(fld) {
	var valid = true;
	document.getElementById("captcha_code_empty").style.display = "none";
	document.getElementById("captcha_code_wrong").style.display = "none";

	if (fld.value == "") {
		document.getElementById("captcha_code_empty").style.display = "list-item";
		valid = false;
	}
	fld.style.background = valid ? 'none' : color;
	return valid;
}

function trim(s)
{
	return s.replace(/^\s+|\s+$/g, '');
}

