
function emailCheck(emailStr, desc, lang)
{
  var emailPat = /^(.+)@(.+)$/
  var specialChars = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
  var validChars = "\[^\\s" + specialChars + "\]"
  var quotedUser = "(\"[^\"]*\")"
  var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
  var atom = validChars + '+'
  var word = "(" + atom + "|" + quotedUser + ")"
  var userPat = new RegExp("^" + word + "(\\." + word + ")*$")
  var domainPat = new RegExp("^" + atom + "(\\." + atom +")*$")
  var matchArray = emailStr.match(emailPat)
  if (matchArray==null)
  {
        if (lang!="fr") alert(desc)
        else alert(desc+" L'adresse semble incorrecte.");
        return false;
  }
  var user = matchArray[1]
  var domain = matchArray[2]

  if (user.match(userPat)==null)
  {
      if (lang!="fr") alert(desc)
      else alert(desc+" Le nom d'utilisateur ne semble pas correct.");
      return false;
  }

  var IPArray = domain.match(ipDomainPat)
  if (IPArray!=null)
  {
        for (var i=1;i<=4;i++)
        {
          if (IPArray[i]>255)
          {
              if (lang!="fr") alert(desc)
              else alert(desc+" Adresse IP de destination incorrecte.");
              return false;
          }
        }
        return true;
  }
  var domainArray = domain.match(domainPat)
  if (domainArray==null)
  {
     if (lang!="fr") alert(desc)
     else alert(desc+" Le nom de domaine est incorrect.");
     return false;
  }
  var atomPat = new RegExp(atom,"g");
  var domArr = domain.match(atomPat);
  var len = domArr.length;
  if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3)
  {
    if (lang!="fr") alert(desc)
    else alert(desc+" L'adresse doit finir par deux lettres identifiant le pays ou par trois lettres de domaine.");
    return false;
  }
  if (len<2)
  {
    if (lang!="fr") alert(desc)
    else alert(desc+" Nom de l'hôte manquant.");
    return false;
  }
  return true;
}

