function validaFormIncNL(f){    
    messErr="";
    if (f.nome.value == "nome"){
        messErr+="O campo Nome precisa ser preenchido.\n\n";
    }
    if (f.email.value == "e-mail"){
        messErr+="O campo Email precisa ser preenchido.\n\n";
    }
    // checagem do email v?lido
    var temp = emailCheck(f.email.value);
messErr += temp;
    //
    if(messErr!=""){
        alert(messErr)
    }else{
        //Ajax
        f.submit();
    }
}

function emailCheck(emailStr){
    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 returnMsg = new Object();
    //
    var matchArray=emailStr.match(emailPat)
    if (matchArray==null) {
        returnMsg="Endereço de email incorreto (verifique @ e '.').\n"
        //returnMsg['pt'] = "Endereço de email incorreto (verifique @ e '.').";
        //returnMsg.en = "Incorrect email address (verify @ and '.').";
        return returnMsg;
    }
    //
    var user=matchArray[1]
    var domain=matchArray[2]
    //
    // See if "user" is valid 
    //
    if (user.match(userPat)==null) {
        // user is not valid
        returnMsg="Nome de usuário de email inválido.\n";
        //returnMsg['pt'] = "Nome de usuário de email inválido.";
        //returnMsg.en = "Invalid email username.";
        return returnMsg;
    }
    //
    var IPArray=domain.match(ipDomainPat);
    if (IPArray!=null) {
    // this is an IP address
        for (var i=1;i<=4;i++) {
            if (IPArray[i]>255) {
                returnMsg="IP de destino inválido.\n";
                //returnMsg['pt'] = "IP de destino inválido.";
                //returnMsg.en = "Invalid IP.";
                return returnMsg;
            }
        }
    return true
    }
    // Domain is symbolic name
    var domainArray=domain.match(domainPat);
    if (domainArray==null) {
        returnMsg="Nome de domínio inválido.\n";
        //returnMsg['pt'] = "Nome de domínio inválido.";
        //returnMsg.en = "Invalid domain name.";
        return returnMsg;
    }
    //
    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) {
        returnMsg="O endereço de email deve terminar em um domínio de três letras ou um código de país de duas letras.\n";
        // the address must end in a two letter or three letter word.
        //returnMsg['pt'] = "O endereço de email deve terminar em um domínio de três letras ou um código de país de duas letras.";
        //returnMsg.en = "The email address must end in a three-letter domain or a two-letter country code.";
        return returnMsg;
    }
    // Make sure there's a host name preceding the domain.
    if (len<2) {
        returnMsg="Endereço sem um 'hostname'.\n";
        //returnMsg['pt'] = "Endereço sem um 'hostname'!";
        //returnMsg.en = "Address without a hostname.";
        return returnMsg;
    }
    // If we've gotten this far, everything's valid!
    //return true;
    return "";
}