// -------- MISC ------------ //

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

// -------- VALIDATE EMPTY ------------ //

function isRequired(fld, msg) {
  if (fld.value == '') {
    alert (msg);
	fld.focus(); return false;
  }
}

// -------- VALIDATE EMAIL ------------ //

function validateEmail(email) {
  var result = isRequired(email, 'Please enter a valid email');
  if (result==false) {return false;}
  var tfld = trim(email.value);  // value of field with whitespace trimmed off
  var emailRE = /^[^@]+@[^@.]+\.[^@]*\w\w$/  ;
  if (!emailRE.test(tfld)) {
    alert ('Please enter a valid email address');
	email.focus(); return false;
  }
}

function validateFeedForm(form) {
  
  if (!document) {return false;}
  
  var result = validateEmail(form.youremail);
  if (result==false) {return false;}
 
  var result = validateEmail(form.email);
  if (result==false) {return false;}
  
  return true;
}

// -------- VALIDATE EXTRANET ENQUIRY ------------ //

function validateEventForm(form) {
  if (!document) {return false;}
  
  var result = isRequired(form.eventname, 'Please enter the event name');
  if (result==false) {return false;}
  
  var result = isRequired(form.eventbudget, 'Please enter the event budget');
  if (result==false) {return false;}
  
  var result = isRequired(form.eventtype, 'Please select the event type');
  if (result==false) {return false;}
  

  
  var result = isRequired(form.clientref, 'Please enter your client reference');
  if (result==false) {return false;}
  
  var result = isRequired(form.attendance, 'Please enter the estimated attendance');
  if (result==false) {return false;}
 
  
  var meth = form.method;
  if (!meth[0].checked && !meth[1].checked && !meth[2].checked) { 
    alert ('Please select your prefered method of contact');
    return false;
  }
  
  return true;
}

// -------- VALIDATE ENQUIRY ------------ //

function validateEnquiryForm(form) {

  if (!document) {return false;}

  var result = isRequired(form.company, 'Please enter your company name');
  if (result==false) {return false;}
  
  var result = isRequired(form.contactname, 'Please enter your contact name');
  if (result==false) {return false;}
  
  var result = validateEmail(form.email);
  if (result==false) {return false;}
  
  
  var result = isRequired(form.phone, 'Please enter your telephone number');
  if (result==false) {return false;}
  
  /*
  
  var result = validateTelnr(form.phone, 'telephone');
  if (result==false) {return false;}
  
    var result = validateTelnr(form.fax, 'fax');
  if (result==false) {return false;}
  
  */
  
  var result = isRequired(form.streetnumber, 'Please enter your address');
  if (result==false) {return false;}
  
    var result = isRequired(form.streetname, 'Please enter your address');
  if (result==false) {return false;}
  
    var result = isRequired(form.town, 'Please enter a town or city');
  if (result==false) {return false;}
  
    var result = isRequired(form.postcode, 'Please enter a postcode');
  if (result==false) {return false;}
  
  
  var result = isRequired(form.eventname, 'Please enter the event name');
  if (result==false) {return false;}
  
  var result = isRequired(form.eventbudget, 'Please enter the event budget');
  if (result==false) {return false;}
  
  var result = isRequired(form.eventtype, 'Please select the event type');
  if (result==false) {return false;}
  
  var result = isRequired(form.attendance, 'Please enter the estimated attendance');
  if (result==false) {return false;}
 
  
  var meth = form.method;
  if (!meth[0].checked && !meth[1].checked && !meth[2].checked) { 
    alert ('Please select your prefered method of contact');
    return false;
  }
  
  return true;
}

// -------- VALIDATE ENQUIRY ------------ //

function validateNotregForm(form) {
  if (!document) {return false;}

  var result = isRequired(form.firstname, 'Please enter your first name');
  if (result==false) {return false;}
  
  var result = isRequired(form.surname, 'Please enter your surname');
  if (result==false) {return false;}
  
  var result = isRequired(form.company, 'Please enter your company');
  if (result==false) {return false;}
  
  var result = validateEmail(form.email);
  if (result==false) {return false;}
  
  
  var result = isRequired(form.phone, 'Please enter your telephone number');
  if (result==false) {return false;}
  
  /*
  
  var result = validateTelnr(form.phone, 'telephone');
  if (result==false) {return false;}
  
  */
  
  return true;
}

// -------- VALIDATE ENQUIRY ------------ //

function validateFeedForm(form) {
  if (!document) {return false;}

  var result = isRequired(form.company, 'Please enter your company name');
  if (result==false) {return false;}
  
  var result = isRequired(form.eventname, 'Please enter your the event name');
  if (result==false) {return false;}
  
  return true;
}

function startTime() {
	setTimeout ( "gotoHome()", 10000 );
}

function gotoHome() {
	//alert('works!');
	window.location="../";
}

// -------- VALIDATE TELEPHONE ------------ //

function checkUKTelephone (telephoneNumber) {

  // Convert into a string and check that we were provided with something
  var telnum = telephoneNumber + " ";
  if (telnum.length == 1)  {
     //telNumberErrorNo = 1;
     return true;
  }
  telnum.length = telnum.length - 1;
  
  // Don't allow country codes to be included (assumes a leading "+")
  var exp = /^(\+)[\s]*(.*)$/;
  if (exp.test(telnum) == true) {
     telNumberErrorNo = 2;
     return false;
  }
  
  // Remove spaces from the telephone number to help validation
  while (telnum.indexOf(" ")!= -1)  {
    telnum = telnum.slice (0,telnum.indexOf(" ")) + telnum.slice (telnum.indexOf(" ")+1)
  }
  
  // Remove hyphens from the telephone number to help validation
  while (telnum.indexOf("-")!= -1)  {
    telnum = telnum.slice (0,telnum.indexOf("-")) + telnum.slice (telnum.indexOf("-")+1)
  }  
  
  // Now check that all the characters are digits
  exp = /^[0-9]{10,11}$/
  if (exp.test(telnum) != true) {
     telNumberErrorNo = 3;
     return false;
  }
  
  // Now check that the first digit is 0
  exp = /^0[0-9]{9,10}$/
  if (exp.test(telnum) != true) {
     telNumberErrorNo = 4;
     return false;
  }
  
  // Finally check that the telephone number is appropriate.
  exp = /^(01|02|03|05|070|077|07624|078|079|0870)[0-9]+$/;
  if (exp.test(telnum) != true) {
     telNumberErrorNo = 5;
     return false;
  }
  
  // Telephone number seems to be valid - return the stripped telehone number  
  return telnum;
}


  var telNumberErrorNo = 0;
  var telNumberErrors = new Array ();
  telNumberErrors[0] = "Valid UK telephone number";
  telNumberErrors[1] = "Telephone number not provided";
  telNumberErrors[2] = "UK telephone number without the country code, please";
  telNumberErrors[3] = "UK telephone numbers should contain 10 or 11 digits";
  telNumberErrors[4] = "The telephone number should start with a 0";
  telNumberErrors[5] = "The telephone number is either invalid or inappropriate";


function validateTelnr  (myTelNo) {
  if (!checkUKTelephone (myTelNo.value)) {
     alert (telNumberErrors[telNumberErrorNo]);
     myTelNo.focus(); return false;
  }
}

function validateUser  (valfield) {
  exp = /^[a-zA-Z0-9][\w]*[a-zA-Z0-9]$/
  if (exp.test(valfield.value) != true) {
     alert ('The username must contain at least 2 character. The first and last characters must be alpha-numberic.');
     valfield.focus(); return false;
  }
}

function validatePass  (valfield) {
  var strlen = valfield.value.length;
  if (strlen <= 0) { return; }
  exp = /^(?=.*\d)(?=.*[a-zA-Z])(?!.*[\W_\x7B-\xFF]).{6,15}$/
  if (exp.test(valfield.value) != true) {
     alert ('The password must be between 6-20 characters long including at least 1 upper or lower alpha, and 1 digit.');
     valfield.focus(); return false;
  }
}