/*
Scripts needed for form validation

David Elliott  08 December 2010 16:27

*/

var Input_Rej_Border = "#188b9b 1px solid";
var Input_Rej_Background = "#e5eeef";

function checkForm() {
	var Msg = "" ;

	Msg += validateEmail($('Email_Address'), 'Email Address');
	Msg += validateName($('Message'), 10, 'Message');

	if (Msg != "") {
		//reportError(Msg);
		alert("Some fields need correction:\n" + Msg);
		return false;
	}
	else {
/*
		var url = '/contactform/MailMe.asp';
		var pars = 'Contact_Name=' + encodeURIComponent($('Contact_Name').value) +
					'&Contact_Number=' + encodeURIComponent($('Contact_Number').value) +
					'&Email_Address=' + encodeURIComponent($('Email_Address').value) +
					'&Nature_of_Enquiry=' + encodeURIComponent($('Nature_of_Enquiry').value) +
					'&Message=' + encodeURIComponent($('Message').value) +
					'&FormId=4C6FFDFD-1933-4CC7-AC1B-05C1EE423702' +
					'&TsVer=' + Stamp.getTime();

		var ajax = new Ajax.Updater(
			{ success: 'ChkRst' }
			, url
			, { method: 'post', parameters: pars, onFailure: reportError, evalScripts: true, onComplete: showResponse }
			);
		return false;
*/
		return true;
	}
}

function validateName(fld,Chklen,dispName) {
	var error = "";
	
	if (fld.value == "") 
	{
		error = "You didn't enter a " + dispName + ".\n";
		//fld.style.border = Input_Rej_Border;
		//fld.style.background = Input_Rej_Background;
		fld.setAttribute("class", 'invalid'); //For Most Browsers
		//fld.setAttribute("className", 'invalid'); //For IE; harmless to other browsers.
	}
	else if (fld.value.length < (0 + Chklen)) 
	{
		error = "The " + dispName + " is too short.\n";
		//fld.style.border = Input_Rej_Border;
		//fld.style.background = Input_Rej_Background;
		fld.setAttribute("class", 'invalid'); //For Most Browsers
	}
	else 
	{
		//fld.style.border = Input_OK;
		fld.setAttribute("class", 'valid'); //For Most Browsers
	} 
	return error;
}

function validateNumber(fld, length, dispName) {
	var error = "";
	var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');

	if (fld.value == "") 
	{
		error = "You didn't enter a " + dispName + ".\n";
		//fld.style.border = Input_Rej_Border;
		//fld.style.background = Input_Rej_Background;
		fld.setAttribute("class", 'invalid'); //For Most Browsers
	}
	else if (isNaN(parseInt(stripped))) 
	{
		error = "The " + dispName + " contains illegal characters.\n";
		//fld.style.border = Input_Rej_Border;
		//fld.style.background = Input_Rej_Background;
		fld.setAttribute("class", 'invalid'); //For Most Browsers
	}
	else if (stripped.length < 11) 
	{
		error = "The " + dispName + " is too short.\n";
		//fld.style.border = Input_Rej_Border;
		//fld.style.background = Input_Rej_Background;
		fld.setAttribute("class", 'invalid'); //For Most Browsers
	}
	else 
	{
		//fld.style.border = Input_OK;
		fld.setAttribute("class", 'valid'); //For Most Browsers
	}
	return error;
}

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

function validateEmail(fld,dispName) 
{
	var error="";
	var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
	var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
	var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;

	if (fld.value == "") 
	{
		error = "You didn't enter an " + dispName + ".\n";
		//fld.style.border = Input_Rej_Border;
		//fld.style.background = Input_Rej_Background;
		fld.setAttribute("class", 'invalid'); //For Most Browsers
	}
	else if (!emailFilter.test(tfld))               //test email for illegal characters
	{
		error = "Please enter a valid " + dispName + ".\n";
		//fld.style.border = Input_Rej_Border;
		//fld.style.background = Input_Rej_Background;
		fld.setAttribute("class", 'invalid'); //For Most Browsers
	}
	else if (fld.value.match(illegalChars)) 
	{
		error = "The " + dispName + " contains illegal characters.\n";
		//fld.style.border = Input_Rej_Border;
		//fld.style.background = Input_Rej_Background;
		fld.setAttribute("class", 'invalid'); //For Most Browsers
	}
	else 
	{
		//fld.style.border = Input_OK;
		fld.setAttribute("class", 'valid'); //For Most Browsers
	}
	return error;
}

function reportError(originalRequest) {
	$('FormFeedBack').innerHTML = originalRequest;//.responseText;
}

function showResponse(originalRequest) {
	$('FormOK').innerHTML = originalRequest.responseText;
}
