function validaFormContato(f,l){ 
    messErr="";
    if (f.nome.value == ""){
	if (l == 'pt'){
		messErr+="O campo Nome precisa ser preenchido.\n\n";
	}else{
		messErr+="Field Name must be filled in.\n\n";
	}
    }
    if (f.email.value == ""){
        if (l == 'pt'){
		messErr+="O campo E-mail precisa ser preenchido.\n\n";
	}else{
		messErr+="Field e-mail must be filled in.\n\n";
	}
    }else{
	// checagem do email v?lido
	var temp = emailCheck(f.email.value,l);
	if (temp != '') { 	
		messErr += temp+"\n";
	}
    }
    if (f.empresa.value == ""){
        if (l == 'pt'){
		messErr+="O campo Empresa precisa ser preenchido.\n\n";
	}else{
		messErr+="Field Company must be filled in.\n\n";
	}
    }
    if (f.endereco.value == ""){
        if (l == 'pt'){
		messErr+="O campo Endereço precisa ser preenchido.\n\n";
	}else{
		messErr+="Field Address must be filled in.\n\n";
	}
    }
    if (f.cidade.value == ""){
        if (l == 'pt'){
		messErr+="O campo Cidade precisa ser preenchido.\n\n";
	}else{
		messErr+="Field City must be filled in.\n\n";
	}
    }
    if (f.estado.value == ""){
        if (l == 'pt'){
		messErr+="O campo Estado precisa ser preenchido.\n\n";
	}else{
		messErr+="Field State/province must be filled in.\n\n";
	}
    }
    if (f.ddd.value == ""){
        if (l == 'pt'){
		messErr+="O campo DDD precisa ser preenchido.\n\n";
	}else{
		messErr+="Field Phone (prefix) must be filled in.\n\n";
	}
    }
    if (f.telefone.value == ""){
        if (l == 'pt'){
		messErr+="O campo Telefone precisa ser preenchido.\n\n";
	}else{
		messErr+="Field Phone must be filled in.\n\n";
	}
    }
    if (f.mensagem.value == ""){
        if (l == 'pt'){
		messErr+="O campo Mensagem precisa ser preenchido.\n\n";
	}else{
		messErr+="Field Message must be filled in.\n\n";
	}
    }
    if(messErr!=""){
        alert(messErr)
    }else{
        //Ajax
        f.submit();
    }
}

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,l){
    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) {
	if (l == 'pt') {
        	returnMsg="Endereço de e-mail incorreto (verifique @ e '.').\n";
	} else {
		returnMsg="Incorrect e-mail address (please verify the @ and '.').\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
	if (l == 'pt') {        
		returnMsg="Nome de usuário de e-mail inválido.\n";
	} else {
		returnMsg="The e-mail address username is not valid.\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) {
                if (l == 'pt') {
			returnMsg="IP de destino inválido.\n";
		} else {
			returnMsg="The destination IP is not valid.\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) {
	if (l == 'pt') {
	        returnMsg="Nome de domínio inválido. O endereço de e-mail deve conter um domínio de no mínimo três letras.\n";
	} else {
		returnMsg="The domain name is not valid. The e-mail address must contain a domain name with at least three alphabetic characters.\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) {
        if (l == 'pt') {
		returnMsg="O endereço de e-mail deve terminar em um domínio de três letras ou um código de país de duas letras.\n";
	} else {
		returnMsg="The e-mail address must end with .xxx or .xx, where x represents an alphabetic character.\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) {
        if (l == 'pt') {
		returnMsg="Endereço sem um 'hostname'.\n";
	} else {
		returnMsg="The address given has no '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 "";
}

