function emailCheck(emailStr)
{
    var emailPat=/^(.+)@(.+)$/
    var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
    var validChars="[a-zA-Z0-9\-_]" // nj'autorise pas les lettres accentuees
   
    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
    var atom=validChars + '+'
    var word= atom
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
    var matchArray=emailStr.match(emailPat)

    var resultat= false;

    if (matchArray==null)
    {
      return resultat;
    }

    var user=matchArray[1]
    var domain=matchArray[2]

    // See if "user" is valid
    if (user.match(userPat)==null)
    {
        // user is not valid
      return resultat;
    }

    var IPArray=domain.match(ipDomainPat)
    if (IPArray!=null)
    {
        // this is an IP address
        for (var i=1;i<=4;i++)
        {
            if (IPArray[i]>255)
            {
              return resultat;
            }
        }
      return true;
    }

    // Domain is symbolic name
    var domainArray=domain.match(domainPat)
    if (domainArray==null)
    {
      return resultat;
    }

    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>4)
    {
         // the address must end in a two letter, a three letter or a four letter word.
//           alert("Le courriel doit se terminer soit par trois ou quatre lettres de domaine (.info,.com,.net,.org,...), soit par les deux lettres du pays (.fr,.de.,us,...).")
      return resultat;
    }

    // Make sure there's a host name preceding the domain.
    if (len<2)
    {
//          var errStr="Le nom de domaine du courriel n'est pas précisé."
      return resultat;
    }

    // If we've gotten this far, everything's valid!
     return true;
}           

