// RN 23/07/2007: validação de novo cliente.
function validaFormulario() {
   var ret = false;
   var f = document.frmCliente;
   var regexFone = /[0-9]{4}(-|\.| )[0-9]{4}/;
   var regexCep = /[0-9]{5}-[0-9]{3}/;
   var regexNomeSobrenome = /[a-z]+ [a-z]+/i;
   var cliente = f.revenda.value == "N";
   
   if (f.nome.value.length < 3 || f.cidade.value.length < 3 || f.endereco.value.length < 4 || f.numero.value == "" || f.email.value == "" || f.bairro.value == "" || f.estado.selectedIndex == 0 || f.senhaWebsite.value.length < 4 || f.senhaWebsiteConfirmacao.value.length < 4 || f.senhaWebsite.value != f.senhaWebsiteConfirmacao.value) {
      if (f.senhaWebsite.value.toLowerCase() != f.senhaWebsiteConfirmacao.value.toLowerCase()) {
         alert("*** ATENÇÃO ***\n\nA confirmação da senha não confere. Por favor verifique...");
      } else {
         alert("*** ATENÇÃO ***\n\nOs campos seguidos de asterisco são obrigatórios.");
      }
   } else {
      if ((cliente && f.telefoneRes.value == "") && f.telefoneCom.value == "" && f.telefoneCel.value == "") {
         ret = false;
         alert("Informe pelo menos um dos telefones de contato.");
      } else {
         if ((cliente && (f.telefoneRes.value == "" && f.telefoneResCodigo.value != "" || f.telefoneRes.value != "" && f.telefoneResCodigo.value == "")) ||
             (f.telefoneCom.value == "" && f.telefoneComCodigo.value != "" || f.telefoneCom.value != "" && f.telefoneComCodigo.value == "") ||
   		    (f.telefoneCel.value == "" && f.telefoneCelCodigo.value != "" || f.telefoneCel.value != "" && f.telefoneCelCodigo.value == "")) {
            ret = false;
            alert("Informe o número de telefone e código de área.");
         } else {
            if ((cliente && f.telefoneRes.value != "" && !regexFone.test(f.telefoneRes.value)) || (f.telefoneCom.value != "" && !regexFone.test(f.telefoneCom.value)) || (f.telefoneCel.value != "" && !regexFone.test(f.telefoneCel.value))) {
               ret = false;
               alert("Telefones devem ser informados no formato 9999-9999");
            } else if (!regexNomeSobrenome.test(f.nome.value)) {
               ret = false;
               alert("Informe o seu nome completo (nome seguido de sobrenome).");
            } else if (f.cep.value != "" && !regexCep.test(f.cep.value)) {
               ret = false;
               alert("Informe o CEP no formato 99999-999");
            } else if ((cliente && f.telefoneResCodigo.value != "" && (isNaN(f.telefoneResCodigo.value) || f.telefoneResCodigo.value < 11)) || (f.telefoneComCodigo.value != "" && (isNaN(f.telefoneComCodigo.value) || f.telefoneComCodigo.value < 11)) || (f.telefoneCelCodigo.value != "" && (isNaN(f.telefoneCelCodigo.value) || f.telefoneCelCodigo.value < 11))) {
               ret = false;
               alert("Código de área dos telefones deve ser informado no formato 99 e a partir de 11.");
            } else {
               if (f.email.value.toLowerCase() != f.emailConfirmacao.value.toLowerCase()) {
                  ret = false;
                  alert("*** ATENÇÃO ***\n\nA confirmação do e-mail não confere. Por favor verifique...");
               } else {
                  if (confirm("*** ATENÇÃO ***\n\nConfirma o cadastro? Por favor verifique se o endereço do e-mail está cadastrado corretamente:\n\n" + f.email.value)) {
                     ret = true;
                  }
               }
            }
         }
      }
   }
   
   return ret;
}

// RN 23/07/2007: validação de alteração de cliente.
function validaFormularioAlteracao() {
   var ret = false;
   var f = document.frmCliente;
   var regexFone = /[0-9]{4}-[0-9]{4}/;
   var regexCep = /[0-9]{5}-[0-9]{3}/;
   var regexNomeSobrenome = /[a-z]+ [a-z]+/i;
   var cliente = f.revenda.value == "N";
   
   if (f.nome.value.length < 3 || f.cidade.value.length < 3 || f.endereco.value.length < 4 || f.numero.value == "" || f.email.value == "" || f.bairro.value == "") {
      alert("*** ATENÇÃO ***\n\nOs campos seguidos de asterisco são obrigatórios.");
   } else {
      if ((cliente && f.telefoneRes.value == "") && f.telefoneCom.value == "" && f.telefoneCel.value == "") {
         ret = false;
   	     alert("Informe pelo menos um dos telefones de contato.");
      } else {
         if ((cliente && (f.telefoneRes.value == "" && f.telefoneResCodigo.value != "" || f.telefoneRes.value != "" && f.telefoneResCodigo.value == "")) ||
   		     (f.telefoneCom.value == "" && f.telefoneComCodigo.value != "" || f.telefoneCom.value != "" && f.telefoneComCodigo.value == "") ||
   		     (f.telefoneCel.value == "" && f.telefoneCelCodigo.value != "" || f.telefoneCel.value != "" && f.telefoneCelCodigo.value == "")) {
            ret = false;
            alert("Informe o número de telefone e código de área.");
         } else {
            if ((cliente && f.telefoneRes.value != "" && !regexFone.test(f.telefoneRes.value)) || (f.telefoneCom.value != "" && !regexFone.test(f.telefoneCom.value)) || (f.telefoneCel.value != "" && !regexFone.test(f.telefoneCel.value))) {
               alert("Telefones devem ser informados no formato 9999-9999");
               return false;
            } else if (!regexNomeSobrenome.test(f.nome.value)) {
               alert("Informe o seu nome completo (nome seguido de sobrenome).");
               return false;
            } else if (f.cep.value != "" && !regexCep.test(f.cep.value)) {
               alert("Informe o CEP no formato 99999-999");
               return false;
            } else if ((cliente && f.telefoneResCodigo.value != "" && (isNaN(f.telefoneResCodigo.value) || f.telefoneResCodigo.value < 11)) || (f.telefoneComCodigo.value != "" && (isNaN(f.telefoneComCodigo.value) || f.telefoneComCodigo.value < 11)) || (f.telefoneCelCodigo.value != "" && (isNaN(f.telefoneCelCodigo.value) || f.telefoneCelCodigo.value < 11))) {
               alert("Código de área dos telefones deve ser informado no formato 99 e a partir de 11.");
               return false;
            }
            
            var senhaAtual = document.getElementById("senhaWebsiteAtual").value.toLowerCase();
            var senhaNova = document.getElementById("senhaWebsiteNova").value.toLowerCase();
            var senhaNovaConfirmacao = document.getElementById("senhaWebsiteNovaConfirmacao").value.toLowerCase();
            
            ret = true;
            
            if (senhaAtual.length > 0) {
               if (senhaNova.length < 4 || senhaNova.length > 20) {
                  alert("*** ATENÇÃO ***\n\nUtilize uma senha com pelo menos 4 caracteres (letras ou números), e no máximo 20 caracteres.");
                  ret = false;
               } else {
                  if (senhaNova != senhaNovaConfirmacao) {
                     alert("*** ATENÇÃO ***\n\nA nova senha e a confirmação da nova senha não conferem... Por favor verifique.");
                     ret = false;
                  } else {
                     ret = true;
                  }
               }
            }
            
            if (ret) {
               if (validaEmail(f.email.value)) {
                  if (confirm("*** ATENÇÃO ***\n\nConfirma o cadastro? Por favor confira se o endereço do e-mail está cadastrado corretamente:\n\n" + f.email.value)) {
                     ret = true;
                  } else {
                     ret = false;
                  }
               } else {
                  alert("*** ATENÇÃO ***\n\nEndereço de e-mail inválido.\n\nPor favor verifique...");
                  ret = false;
               }
            }
         }
      }
   }
   
   return ret;
}

// RN 08/08/2007: validação do endereço de e-mail.
function validaEmail(email) {
   var regex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
   
   if (!regex.test(email)) {
      return false;
   } else {
      regex = /gmail.com.br|hotmail.com.br|hotmail.br/;
      
      if (regex.test(email)) {
         alert("*** ATENÇÃO ***\n\nDetectado endereço de e-mail com domínio inválido, por exemplo:\n\n@hotmail.com.br, @hotmail.br, @gmail.com.br, etc...");
         return false;
      } else {
         return true;
      }
   }
}

// RS 21/10/2009: validação do formulário inicial de cadastro de novo cliente.
function validaFormularioInicio() {
   var f = document.frmCadastro;
   var ret = true;
   
   if (!validaEmail(f.email.value)) {
      alert("*** ATENÇÃO ***\n\nO e-mail informado é inválido. Por favor verifique...");
      f.email.focus();
      f.email.select();
      ret = false;
   }
   
   return ret;
}

// RS 04/03/2008: formatação automática do traço "-" do telefone.
function formataFone(c) {
   var n = c.value;
   var idAux = c.id;
   
   if (n.length == 8) {
      document.getElementById(idAux).value = n.substr(0, 4) + "-" + n.substr(4, 4);
   }
}

// RS 12/04/2010: formatação de apoio automática do campo de CEP, com o traço "-".
function formataCep(c) {
   var cep = c.value;
   
   if (cep.length == 8) {
      c.value = cep.substr(0, 5) + "-" + cep.substr(5, 3);
   }
}

// RS 13/05/2010: validação do CNPJ/CPF, no cadastro de revendas.
function cnpjCpf_onChange(num) {
   if (isNaN(num)) {
      alert("*** ATENÇÃO ***\n\nInforme apenas números no CNPJ/CPF.");
   }
}