function Highlight(elm1){
  elm1.focus();
  elm1.select();
}

function checkemail(elm){

 try {
    elm = elm.getElement();
  } catch(e) {}

var email = elm.value;
var blanks = ''*100;
var naughty = new Array("arse","bastard","cunt","fuck","shit","wanker","piss","twat");
var sneaky = email.toLowerCase();
var illegal = "Email address is wrong";
var wrongaddr = "Entered email address is wrong! Please check it.";

//mail check
if (email <= blanks){
  alert("Please enter an email address.");
  Highlight(elm);return false;
  }
else if (email.charAt(0) == " "){
   alert(wrongaddr);
   Highlight(elm);return false;
   }
else if (email.charAt(email.length-1) == " "){
   alert(wrongaddr);
   Highlight(elm);return false;
   }
else if (email.indexOf(" ") !=-1){
   alert(wrongaddr);
   Highlight(elm);return false;
   }

//CHECK FOR ILLEGAL CHARACTERS 1
for (i=0; i < email.length; i++){
var caps = "a".toUpperCase();
var E = email.substring(i, i + 1);
if ((E < "0" || "9" < E ) && E != "@"  && E !="." && E !="-"  && E !="_"  &&  E < caps || "z" < E){
 alert(illegal);
 Highlight(elm);return false;
 }
}
//CHECK FOR ILLEGAL CHARACTERS 2
if ((email.indexOf('`',0) != -1) || (email.indexOf(String.fromCharCode(94)) != -1) || (email.indexOf(String.fromCharCode(92)) != -1) || (email.indexOf('[',0) != -1) || (email.indexOf(']',0) != -1)){
 alert(illegal);
 Highlight(elm);return false;
}
//CHECK FOR SWEARING
for (i=0; i < email.length; i){
 if (sneaky.indexOf(naughty[i]) != -1){
 alert('Please remove the swear word - '+naughty[i].toUpperCase());
 Highlight(elm);return false;
 }
i++;
}
//GENERAL FORMATING
if (email.charAt(0) =="."){
 alert(wrongaddr);
 Highlight(elm);return false;
}
else if (email.split('@').length > 2){
 alert(wrongaddr);
 Highlight(elm);return false;
}
else if (email.indexOf ('@',0) == -1){
 alert(wrongaddr);
 Highlight(elm);return false;
}
else if (email.indexOf("@") < 2){
 alert(wrongaddr);
 Highlight(elm);return false;
}
else if (email.charAt(email.length-1) == "@"){
 alert(wrongaddr);
 Highlight(elm);return false;
}
else if (email.indexOf ('.') == -1){
 alert(wrongaddr);
 Highlight(elm);return false;
}
else if (email.indexOf('.',email.indexOf('@')) == -1){
 alert(wrongaddr);
 Highlight(elm);return false;
}
else if (email.charAt(email.length-1) =="."){
 alert(wrongaddr);
 Highlight(elm);return false;
}

return true;
}
