/*
Form checking module - checks the values of forms on the client side before submission.

Functions List:
	checkContactForm(fm:string)
	checkDemoForm(fm:string)
	trimAll(sString:string)

*/

function checkContactForm(fm){
/*
	Description:
	Checks the values entered into the Contact Form, if the values check out it returns
	a true value which allows the data to be submitted.
	
	Versions:
	16/10/06 - Initial Version
	
*/
	// Clean up the form values
	fm.name.value 			= trimAll(fm.name.value);
	fm.companyname.value 	= trimAll(fm.companyname.value);
	fm.address.value 		= trimAll(fm.address.value);	
	fm.postcode.value 		= trimAll(fm.postcode.value);
	fm.phone.value 			= trimAll(fm.phone.value);
	fm.fax.value 			= trimAll(fm.fax.value);
	fm.webaddress.value 	= trimAll(fm.webaddress.value);
	fm.email.value 			= trimAll(fm.email.value);

	var err = '';
	// Patterns for the postcode and email comparisons
	rpostcode = /^([A-Za-z]{1,2}[0-9]{1,2}[A-Za-z]?)(\s{1})([0-9][A-Za-z]{2})+$/;	
	remail = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	
	// Detect incorrect entries, and add them to the err string
	if (fm.departmentcontact.value == 0 ) err += 'Please enter the department you wish to contact.\n';
	if (fm.name.value.length == 0 ) err += 'Please enter your name\n'
	if (fm.companyname.value.length == 0 ) err += 'Please enter the name of your company\n'
	if (fm.address.value.length == 0 ) err += 'Please enter an address\n';	
	if (rpostcode.test(fm.postcode.value) == false)	err += 'Please enter a valid Post Code.\n';
	if (fm.phone.value.length == 0 ) err += 'Please enter a phone number\n'
	if (remail.test(fm.email.value) == false)	err += 'Please enter a valid email address.\n';

	// If the length of err is greater than 0, produce an alert window and return a false value
	if (err.length > 0) 
	{
		alert( err);
		return false;
	}
	// If no previous return has been triggered, return true
	return true;
}

function checkDemoForm(fm) {
/*
	Description:
	Checks the values entered into the Demo Form, if the values check out it returns
	a true value which allows the data to be submitted.
	
	Versions:
	16/10/06 - Initial Version
	
*/
	fm.name.value 			= trimAll(fm.name.value);
	fm.companyname.value 	= trimAll(fm.companyname.value);
	fm.address.value 		= trimAll(fm.address.value);	
	fm.postcode.value 		= trimAll(fm.postcode.value);
	fm.phone.value 			= trimAll(fm.phone.value);
	fm.fax.value 			= trimAll(fm.fax.value);
	fm.webaddress.value 	= trimAll(fm.webaddress.value);
	fm.email.value 			= trimAll(fm.email.value);

	var err = '';
	rpostcode = /^([A-Za-z]{1,2}[0-9]{1,2}[A-Za-z]?)(\s{1})([0-9][A-Za-z]{2})+$/;	
	remail = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	
	if (fm.name.value.length == 0 ) err += 'Please enter your name\n'
	if (fm.companyname.value.length == 0 ) err += 'Please enter the name of your company\n'
	if (fm.address.value.length == 0 ) err += 'Please enter an address\n';	
	if (rpostcode.test(fm.postcode.value) == false)	err += 'Please enter a valid Post Code.\n';
	if (fm.phone.value.length == 0 ) err += 'Please enter a phone number\n'
	if (remail.test(fm.email.value) == false)	err += 'Please enter a valid email address.\n';
	if (fm.packagename.value == 0) err += 'Please choose a value for unique visitors.\n';
	if (fm.wheredidyouhear.value == 0) err += 'Please indicate where you heard about us from.\n';

	if (err.length > 0) 
	{
		alert( err);
		return false;
	}
	return true;
}

function trimAll(sString){
/*
	Description:
	Removes excess characters, such as spaces from the given string and returns the 'clean' version.
	
	Versions:
	16/10/06 - Initial Version
	
*/
	while (sString.substring(0,1) == ' ')
	{
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ')
	{
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}
