/* load form submit detector */
window.onload = function () {
	document.getElementById("form_contact").onsubmit = function () {
		return validateContact();
	}
}


/* validate contact form */
function validateContact() {

	/* Validate personal details */
	if (document.getElementById("form_contact").forenames.value == "") {
		document.getElementById("contact_error").innerHTML = "Please enter your Forename(s).";
		document.getElementById("form_contact").forenames.focus();
		document.getElementById("form_contact").forenames.style.border = "1px solid #E00";
		return false;
	}
	document.getElementById("form_contact").forenames.style.border = "1px solid #090";
	
	if (document.getElementById("form_contact").surname.value == "") {
		document.getElementById("contact_error").innerHTML = "Please enter your Surname.";
		document.getElementById("form_contact").surname.focus();
		document.getElementById("form_contact").surname.style.border = "1px solid #E00";
		return false;
	}
	document.getElementById("form_contact").surname.style.border = "1px solid #090";
	
	if (document.getElementById("form_contact").company.value == "") {
		document.getElementById("contact_error").innerHTML = "Please enter your Company.";
		document.getElementById("form_contact").company.focus();
		document.getElementById("form_contact").company.style.border = "1px solid #E00";
		return false;
	}
	document.getElementById("form_contact").company.style.border = "1px solid #090";
	
	if (document.getElementById("form_contact").email.value == "") {
		document.getElementById("contact_error").innerHTML = "Please enter your email address.";
		document.getElementById("form_contact").email.focus();
		document.getElementById("form_contact").email.style.border = "1px solid #E00";
		return false;
	}
	document.getElementById("form_contact").email.style.border = "1px solid #090";
	
	if (!valid_email(document.getElementById("form_contact").email.value)) {
		document.getElementById("contact_error").innerHTML = "Please enter a valid email address.";
		document.getElementById("form_contact").email.focus();
		document.getElementById("form_contact").email.style.border = "1px solid #E00";
		return false;
	}
	document.getElementById("form_contact").email.style.border = "1px solid #090";
	
	if (document.getElementById("form_contact").telephone.value != '' && !valid_num(document.getElementById("form_contact").telephone.value)) {
		document.getElementById("contact_error").innerHTML = "Please enter your Telephone number.";
		document.getElementById("form_contact").telephone.focus();
		document.getElementById("form_contact").telephone.style.border = "1px solid #E00";
		return false;
	}
	document.getElementById("form_contact").telephone.style.border = "1px solid #090";
	
	if (document.getElementById("form_contact").message.value == '') {
		document.getElementById("contact_error").innerHTML = "Please enter your Message/24 Hour Enquiry.";
		document.getElementById("form_contact").message.focus();
		document.getElementById("form_contact").message.style.border = "1px solid #E00";
		return false;
	}
	document.getElementById("form_contact").message.style.border = "1px solid #090";
	
	document.getElementById("contact_error").innerHTML = "";
}

function valid_email(email) {

// Description: Checks to see if the specified email address is valid.
// Parameters:
//    email: The address to test.

   at = email.indexOf("@");
   dot = email.lastIndexOf(".");

   if((at >= 3) && (dot > at))
      return(true);
   else
      return(false);
}

function valid_num(num, len, min, max) {

// Description: Returns 1 or 0 depending on if the given string is a valid number.
// Parameters:
//    num: The string to be checked.
//    len: The maximum length the string can be.
//    min: The minimum value the number can be.
//    max: The maximum value the number can be

   var valid = 1;

   temp = num;
      
   for(x = 0; x < temp.length; x++) {
      c = temp.charCodeAt(x);
      if((c != 44) && (c != 46) && (c != 32) && ( (c < 48) || c > 57 ))
         valid = 0;
   }
      
   if (isNaN(parseInt(num)))
      valid = 0;
   if (num.length > len)
      valid = 0;
   if (num < min)
      valid = 0;
   if (num > max)
      valid = 0;

   return(valid);
}

