//validateForm.js
//handles the validation for contactus.shtml
//
//Author Rachel Oh 
//Last Modified: 28th Feb 2004

var validName = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ _-";
var validEmail = "abcdefghijklmnopqrstuvwxyz@1234567890._-";
var validPhone = "0123456789 ()";
var formDOMObj;

function validateContact() {
	var max_length;
	var extn = new Array(4);
	
	extn = ['jpg', 'jpeg', 'gif'];
	max_length = 50;
	formDOMObj = document.contactus;


	//Check for valid name:
	else if ( formDOMObj.First_Name.value == "" )
	{
		alert("Please enter your name.");
		formDOMObj.entry_name.focus();
		return false;
	}
	else if( checkChars(validName, formDOMObj.entry_name.value) )
	{
		alert("Sorry your name contains invalid characters. Please try again.");
		formDOMObj.entry_name.focus();
		return false;
	}
	else if ( formDOMObj.Surname.value == "" )
	{
		alert("Please enter your surname.");
		formDOMObj.Surname.focus();
		return false;
	}
	else if( checkChars(validName, formDOMObj.Surname.value) )
	{
		alert("Sorry your surname contains invalid characters. Please try again.");
		formDOMObj.entry_name.focus();
		return false;
	}	

	//Check for Company name
	else if ( formDOMObj.Company.value == "" )
	{
		alert("Please enter your company name.");
		formDOMObj.company.focus();
		return false;
	}


	//Check for valid address
	else if ( formDOMObj.Address_street.value == "" )
	{
		alert("Please enter your postal address.");
		formDOMObj.Address_street.focus();
		return false;
	}	
	else if ( formDOMObj.Address_city.value == "" )
	{
		alert("Please enter your city.");
		formDOMObj.Address_city.focus();
		return false;
	}	
	else if ( formDOMObj.Country.value == "" )
	{
		alert("Please enter your country.");
		formDOMObj.country.focus();
		return false;
	}
	
	//Check valid email
	else if ( formDOMObj.email.value == "" )
	{
		alert("Your email address is required.");
		formDOMObj.email.focus();
		return false;	
	} 
	else if( checkChars(validEmail, formDOMObj.email.value) ){
		window.alert("Sorry your email address contains invalid characters. Please try again.");
		formDOMObj.email.focus();
		return false;
	}
	
	//email is valid characters, check if valid format
	else if (!isEmailAddr(formDOMObj.email.value))
	{
		alert("Sorry you have not entered a valid email address. Please try again.");
		formDOMObj.email.focus();
		return false;
	}	

	else if (formDOMObj.company_type.value == "other"){
		if (formDOMObj.company_other.value == ""){
			window.alert("Please enter your company type");
			formDOMObj.company_other.focus();
			return false;
		}
	}
	
	//Check valid phone number
	else if (formDOMObj.Phone_number.value != ""){
		if( checkChars(validPhone, formDOMObj.Phone_number.value) ){
			window.alert("Sorry your phone number contains invalid characters. Please try again.");
			formDOMObj.Phone_number.focus();
			return false;
		} else if( formDOMObj.Phone_number.value.length < 8){
			window.alert("Sorry your phone number is too short. Please check it before trying again.");
			formDOMObj.Phone_number.focus();
			return false;
		} else if (formDOMObj.Phone_number.value.length > 10){
			window.alert("Sorry your phone number has too many characters in it. Please check it before trying again.");
			formDOMObj.Phone_number.focus();
			return false;
		}
		
	} else{
		return true;
	}
}

//=========== Auxilliary functions: ====================

function isEmailAddr(email){
	var result = false;
	var theStr = new String(email);
	var index = theStr.indexOf("@");

	if (index > 0)  {
		var pindex = theStr.indexOf(".",index);
		if ((pindex > index+1) && (theStr.length > pindex+1)){
			result = true;
		}
	}
	return result;
}


//Checks for valid characters in a selected string
//Adapted from the webbot function in frontpage
//returns true if fieldVal contains any characters not in validSet 
//ie if it is invalid.
function checkChars(validSet, fieldVal){
	for (i=0; i< fieldVal.length; i++) {
		var ch = fieldVal.charAt(i);

		for(j=0; j<validSet.length; j++){
			if (ch == validSet.charAt(j))
				break
		} 
		if (j == validSet.length){
			return true;
			break;
		}
	}
	return false;
}


function checkLength(checkString, mlength) {
	var sfileName = checkString.split("\\");
	
	if (sfileName.length == 1){
		sfileName = checkString.split('/');
	}
	
	if (sfileName[sfileName.length-1].length >= mlength){
		return true;
	}
	
	return false;
}
