<!--// JavaScript Document - validation functions
///////////////////////////////////////////BASIC VALIDATION CODE///////////////////////////////////////////
var msg = [['Please enter your title.', 'Please enter your surname.', 'Please enter your email address.', 'Please enter your company name.', 'Please enter your local area.', 'Please give your enquiry a subject.', 'Please enter your comments, query or company service details.'], ['Illegal character in email address: ', 'Email address must contain '], ['Illegal character sequence in ', 'Illegal character in ']];
var space = ' ';  var sQuote = "'";  var message = '';

function isEmail(address)//Checks that email field is filled without any illegal characters and that it has a . and an @.
{ 
 var illegalChars = '`¬¦!£$€%^&*()=+[]{};:#~\|,<>/?""';
 var legal1 = false;  var legal2 = false;
 for (var i = 0; i < address.length; i++)
     {for (var j=0; j <illegalChars.length; j++)
	      {if (address.charAt(i) == illegalChars.charAt(j)) {message = msg[1][0] + address.charAt(i);}
		   if (address.charAt(i) == sQuote) {message = msg[1][0] + sQuote;}
	       if (address.charAt(i) == space) {message = msg[1][0] + 'space';}
	       if (address.charAt(i) == '@') {legal1 = true;}
	       if (address.charAt(i) == '.') {legal2 = true;}
	      }
	  }
 if (legal2 == false) {message = msg[1][1] + 'at least one "."';}
 if (legal1 == false) {message = msg[1][1] + 'an "@"';}
}

function noSQL(line, field)//Checks that text line field has no obvious SQL code or spam characters.
{
 var illegalChars = '$€%*=;+[]{}^`¬¦#\|¼½¾'
 for (var i = 0; i < line.length; i++)
     {for (var j=0; j <illegalChars.length; j++)
          {if (line.charAt(i) == illegalChars.charAt(j)) {message = msg[2][1] + field + ': ' + line.charAt(i);}
	       if ((line.charAt(i) == sQuote)&&(line.charAt(i+1) == sQuote)){message = msg[2][0] + field + ': ' + sQuote + ' followed by ' + sQuote;}
	       if ((line.charAt(i) == sQuote)&&(line.charAt(i+1) == space)){message = msg[2][0] + field + ': ' + "'" + ' followed by space';}
		   if (line.charAt(line.length-1) == sQuote){message = msg[2][1] + field + ': ' + sQuote + ' at end of entry.';}
	      }
	 }
}
///////////////////////////////////////////FORM VALIDATION CODE///////////////////////////////////////////
function validField(theField, fieldName)//Validates single field for search forms.
{
 if (!theField.value) {alert('Please enter a ' + fieldName + '.');  return false;}
 else {noSQL(theField.value, fieldName);  if (message != '') {alert(message);  message = '';  return false;} else {if (fieldName == 'keyword') {document.getElementById('results').style.visibility='visible'; document.getElementById('results').style.display='block';}}} 
 
}

function validSiteSearch(form)//Validates single field for search forms.
{
 if (!form.keywords.value) {alert('Please enter your keyword(s)!');  return false;}
 else {noSQL(form.keywords.value, 'keyword(s)');  if (message != '') {alert(message);  message = '';  return false;}} 
}

function validSend(form)//Validates contact type forms for sending info to us.
{
 var title = form.title.value;  var surname = form.surname.value;  var email = form.email.value;
 var companyName = form.companyName.value;  var localArea = form.localArea.value;  var otherArea = form.otherArea.value;
 var mailSubject = form.mailSubject.value;  var details = form.details.value;
 if (!title) {alert(msg[0][0]);  return false;}
 else if (!surname) {alert(msg[0][1]);  return false;}
 else if (!email) {alert(msg[0][2]);  return false;}
 else if (!companyName) {alert(msg[0][3]);  return false;}
 else if (!localArea) {alert(msg[0][4]);  return false;}
 else if (localArea == 'other' && (!otherArea || otherArea == ' please state if other')) {alert(msg[0][4]);  return false;}
 else if (!mailSubject) {alert(msg[0][5]);  return false;}
 else if (!details) {alert(msg[0][6]);  return false;}
 else {isEmail(email);  if (message != '') {alert(message);  message = '';  return false;}}
 if (form.yesMag.checked == true) {form.yesMag.value = 'Yes'} else {form.yesMag.value = 'No'}
 if (form.yesGroup.checked == true) {form.yesGroup.value = 'Yes'} else {form.yesGroup.value = 'No'}
 for (var i = 0; i < form.length; i++) 
     {form[i].value = form[i].value.replace(/‘|’|'/g, "''").replace(/“|”|"/g, '"').replace(/£/g, '&pound;').replace(/€/g, '&euro;'); if (form[i].value != email) {noSQL(form[i].value, form[i].name);}  if (message != '') {alert(message);  message = '';  return false;}}
 getContents('sendForm','incs/enquiry2.asp','displayDiv');
}
-->