/************************
	Form Validation
*************************/

function validateFormOnSubmit(theForm)
{
	var reason = "";

	reason += validateEmpty(theForm.name);
	reason += validateEmail(theForm.email);
	reason += validatePhone(theForm.phone);
	reason += validateEmpty(theForm.comment);
	
	if (reason != "")
	{
		alert("Some fields need correction:\n" + reason);
	return false;
	}

	return true;
}

// Check that no fields marked as required are empty.

function validateEmpty(fld)
{
	var error = "";
	
	if (fld.value.length == 0)
	{
		fld.style.background = '#F2FD65'; 
		error = "The required field has not been filled in.\n"
	}
	else
	{
		fld.style.background = 'White';
	}
	return error;
}

// Validate the email by testing for illegal characters and a complete address.

function trim(s)
{
	return s.replace(/^\s+|\s+$/, '');
}

function validateEmail(fld) {
	var error="";
	var tfld = trim(fld.value);
	var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
	var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
	
	if (fld.value == "")
	{
		fld.style.background = '#F2FD65';
		error = "You didn't enter an email address.\n";
	}
	else if (!emailFilter.test(tfld))
	{
		fld.style.background = '#F2FD65';
		error = "Please enter a valid email address.\n";
	}
	else if (fld.value.match(illegalChars))
	{
		fld.style.background = '#F2FD65';
		error = "The email address contains illegal characters.\n";
	}
	else
	{
		fld.style.background = 'White';
	}
    return error;
}

// Check to see that the phone number is valid and has an area code.

function validatePhone(fld)
{
	var error = "";
	var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');    

	if (fld.value == "")
	{
		error = "You didn't enter a phone number.\n";
		fld.style.background = '#F2FD65';
	}
	else if (isNaN(parseInt(stripped)))
	{
		error = "The phone number contains illegal characters.\n";
		fld.style.background = '#F2FD65';
	}
	return error;
}