
<!-- Form Check by Kurt Grigg - http://website.lineone.net/~kurt.grigg/javascript

//EXTERNAL RESET ALL FUNCTION
function clearform(){
var fields=document.entry.elements;
for(i=0; i < fields.length; i++)
fields[i].value="";
}

//HIGHLIGHT DUD BOXES!
function showerror(thisbox){
thisbox.focus();
thisbox.select();
}


function subcheck(){
/********************************************************************************** 
If your form is going to be inside a div/layer, Netscape4 requires the full path. 
Example: var e = (document.layers)?document.LayerName.document.entry:document.entry;
***********************************************************************************/

var e=document.entry;

/*****************************************************************
The form box names. Make sure they're in the same order as your form.
*****************************************************************/

boxes=new Array();
boxes[0]=e.Name;
boxes[1]=e.Address;
boxes[2]=e.Phone;
boxes[3]=e.Email;


//CHECK FOR SWEARING FIRST ############################################################
var swear = new Array("anus","arse","bastard","bitch","bollocks","clit","cock","crap","cunt","fuck","spunk","minge","fanny","shit","wanker","piss","twat");
for (i=0; i < boxes.length; i++){
var sneaky = boxes[i].value.toLowerCase();
 for (j=0; j < swear.length; j++){  
  if (sneaky.indexOf(swear[j]) != -1){
  alert(boxes[i].name+' Box:\nPlease remove the swear word - '+swear[j].toUpperCase());
  showerror(boxes[i]);
  return false;
  }
 }
}
//#####################################################################################


//EMPTY BOX CHECK AND ALERT FORMAT###############################################
var blanks="";//Stop entry being just 0's or spaces!
var count=0;
var naughtyboxes=new Array();
var dum="";
var senddata=1;
var lnbrk=null;
for (i=0; i < boxes.length; i++){
 if ((boxes[i].value == "") || (boxes[i].value <= blanks*boxes[i].value.length)){
 naughtyboxes[i]=boxes[i].name;
 senddata=0;
 }
 if (naughtyboxes[i] == null){
 naughtyboxes[i]="";
 lnbrk="";
 } 
 else lnbrk="\n";
if (naughtyboxes[i] == "")count++;
disp = dum += naughtyboxes[i]+lnbrk;
}

//Get correct grammer if only one box is empty!
if (senddata==0){
grmr1=(count == boxes.length-1)?"This":"These";
grmr2=(count == boxes.length-1)?"box":"boxes";
alert(grmr1+" "+grmr2+" must be completed:\n\n"+disp);
return false;
}
//###############################################################################


//NAME CHECK####################################################################
//Stop entering all same letter.
temparray=boxes[0].value.split(boxes[0].value.charAt(0));
if (boxes[0].value.length > 2 && boxes[0].value.length+1 == temparray.length){
 alert(boxes[0].name+' Box:\nYou have entered just '+boxes[0].value.charAt(0)+'\'s');
 showerror(boxes[0]);
 return false;
 }

//Similar to above.
for (i=1; i < boxes[0].value.length; i++){
if (boxes[0].value.charAt(i) != ' '    && boxes[0].value.charAt(i) == boxes[0].value.charAt(i-1) && boxes[0].value.charAt(i) == boxes[0].value.charAt(i+1)){
 alert(boxes[0].name+' Box:\nNever heard of a name with 3 or more consecutive '+boxes[0].value.charAt(i)+'\'s.');
 showerror(boxes[0]);
 return false;
 }
}
//###############################################################################


//PHONE CHECK####################################################################
//Allow numbers only! This can be applied to any text boxes that require numbers only!
for (i=0; i < boxes[2].value.length; i++){     
var pval = boxes[2].value.substring(i, i + 1);      
 if ((pval < "0" || "9" < pval) && pval != " "){
 alert(boxes[2].name+' Box:\nNumbers only');
 showerror(boxes[2]);
 return false;
 } 
}
//Check length! This can be applied to all text boxes/areas!
if (boxes[2].value.length < 7){
 alert(boxes[2].name+' Box:\nPlease enter full number');
 showerror(boxes[2]);
 return false;
}
//###############################################################################


//MAIL CHECK####################################################################
var temp1=boxes[3].value.split('');
var temp2="";
var spaces=0;
var dud = boxes[3].name+" Box:\nYou have entered illegal characters.\nOnly characters listed here allowed.\n\nLetters of Alphabet [lower and upper case]\nNumbers\nOne @ symbol only\nFull stops\nHyphens [Minus sign]\nUnderscores\n\n";

//Remove white space from e-mail!
for (i=0; i < temp1.length; i){
if (temp1[i]==" ") 
  {
  spaces=1;
  temp1[i]="";
  }
var nospace=temp2+=temp1[i];
++i;
}

//Format before submission!
if (spaces==1){
alert(boxes[3].name+" Box:\nRemoving spaces from "+boxes[3].name+" field. These can\ncause problems with some cgi auto mail scripts");
boxes[3].value=nospace;
}

//Check for illegal characters 1!
for (i=0; i < boxes[3].value.length; i++){
var caps = "a".toUpperCase();
var E = boxes[3].value.substring(i, i + 1);
if ((E < "0" || "9" < E ) && E != "@" && E !="." && E !="-" && E !="_" &&  E < caps || "z" < E){
 alert(dud);
 showerror(boxes[3]);
 return false;
 }
}

//Check for illegal characters 2!
if ((boxes[3].value.indexOf('`',0) != -1) || 
(boxes[3].value.indexOf(String.fromCharCode(94)) != -1) || 
(boxes[3].value.indexOf(String.fromCharCode(92)) != -1) || 
(boxes[3].value.indexOf('[',0) != -1) || 
(boxes[3].value.indexOf(']',0) != -1)){
 alert(dud);
 showerror(boxes[3]);
 return false;
}

//Check general formating!
if (boxes[3].value.length > 62){
 alert(boxes[3].name+' Box:\nMax e-mail length is 63 characters');
 showerror(boxes[3]);
 return false;
}
else if (boxes[3].value.charAt(0) =="."){
 alert(boxes[3].name+' Box:\nAn e-mail address cannot start with a full stop');
 showerror(boxes[3]);
 return false;
}
else if (boxes[3].value.split('@').length > 2){
 alert(boxes[3].name+' Box:\nOnly 1 @ allowed in e-mail address');
 showerror(boxes[3]);
 return false;
}



else if (boxes[3].value.indexOf ('@',0) == -1){
 alert(boxes[3].name+' Box:\nThe @ symbol is missing');
 showerror(boxes[3]);
 return false;
}
else if (boxes[3].value.indexOf("@") < 2){
 alert(boxes[3].name+' Box:\nThere must be at least 2 characters before @ symbol.');
 showerror(boxes[3]);
 return false;
}
else if (boxes[3].value.charAt(boxes[3].value.length-1) == "@"){
 alert(boxes[3].name+' Box:\nAn e-mail address cannot finish with an @');
 showerror(boxes[3]);
 return false;
}
else if (boxes[3].value.indexOf ('.') == -1){
 alert(boxes[3].name+" Box:\nAn e-mail address must contain at least 1 full stop");
 showerror(boxes[3]);
 return false;
}
else if (boxes[3].value.indexOf('.',boxes[3].value.indexOf('@')) == -1){
 alert(boxes[3].name+' Box:\nThe full stop after the @ is missing');
 showerror(boxes[3]);
 return false;
}

else if (boxes[3].value.substring(boxes[3].value.indexOf('@'),boxes[3].value.length).lastIndexOf(".") < 4){
 alert(boxes[3].name+' Box:\nThere must be at least 3 characters between @ and last full stop');  
 showerror(boxes[3]);
 return false;
}

else if (boxes[3].value.lastIndexOf(".")+2 == boxes[3].value.length){
 alert(boxes[3].name+' Box:\nThere must be at least 2 characters after last full stop');
 showerror(boxes[3]);
 return false;
}
else if (boxes[3].value.substring(boxes[3].value.lastIndexOf("."),boxes[3].value.length).length > 4){
 alert(boxes[3].name+' Box:\nOnly 3 characters allowed after last full stop');
 showerror(boxes[3]);
 return false;
}
else if (boxes[3].value.charAt(boxes[3].value.length-1) =="."){
 alert(boxes[3].name+' Box:\nAn e-mail address cannot finish with a full stop');
 showerror(e.Email);
 return false;
}
else if ((boxes[3].value.indexOf('@') != -1) && boxes[3].value.indexOf('.') != -1){
var dom = boxes[3].value.substring(boxes[3].value.lastIndexOf(".")+1,boxes[3].value.length);
for (i=0; i < dom.length; i){ 
var checkdom = dom.substring(i, i+1);      
  if (checkdom < 'a' || 'z' < checkdom)
  {
  alert(boxes[3].name+' Box:\nPlease enter a valid domain "com, net or co.uk etc"\nDomains must be lowercase letters of Alphabet only');
  showerror(boxes[3]);
  return false;
  }
i++; 
}
}

//LAST CHECK WITH USER BEFORE SUBMISSION#########################################
if (confirm('Thank you '+boxes[0].value+'.\n\nThe information entered is suitable for submission. If\nyou wish to alter click cancel else click ok to submit'))
return true;
else return false;
}
//-->


