function isEmailAddress(theElement, theElementName)
{
  var s = theElement.value;

  //E-mail address format - localpart@domain
  //The localpart should not contain the following characters - <>()[]\,;:@"<blank space character> and if the localpart includes 
  // a period, it should be followed by any character other than those mentioned above. However, special characters are allowed provided 
  // the entire local part is enclosed by double quotes e.g. "()[]"@domain
  var localPartfilter1 = /^[^<>()\[\]\x5C.,;:@" ]+(\.[^<>()\[\]\x5C.,;:@" ]+)*@$/;
  var localPartfilter2 = /^"[^\r\n]+"@$/;

  //The domain should start and end with an alphanumeric character and any period should be enclosed by an alphanumeric character.
  //Characters allowed in the domain are a-z A-Z 0-9 and -(hyphen)
  var domainfilter = /^([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]|[a-zA-Z0-9])(\.([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]|[a-zA-Z0-9]))*$/;
  var sepPos = 0;
  var localPart;
  var domain;
  var localPartOk = false;
  var domainOk    = false;
  sepPos = s.lastIndexOf("@");
  localPart = s.substring(0,sepPos+1);
  domain    = s.substring(sepPos+1,s.length);

  if  (localPartfilter1.test(localPart))
      localPartOk = true;
  else if (localPartfilter2.test(localPart))
      localPartOk = true;
  else
      localPartOk = false;

  if (domainfilter.test(domain))
      domainOk = true;
  else
      domainOk = false;

  if ( (localPartOk==true && domainOk==true)||(s=="") )
      return true;
  else
      alert(" Please input a valid email address!" );
  theElement.focus(); 
  theElement.select(); 
  return false;
}
