﻿// Valida varios formatos
function validarFormato(tipo, campo) 
{   
    valor = campo.value;
    var isData    = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{4}$/;
    var isNumero  = /^\d+$/;
    var isDecimal = /^[+-]?((\d+|\d{1,3}(\.\d{3})+)(\,\d*)?|\,\d+)$/;
    var isMoeda   = /^\d{1,3}(\.\d{3})*\,\d{2}$/;
    var isPlaca   = /^[\w-]{3}-\d{4}$/
    var isEmail   = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
    var isHora    = /^([0-1]\d|2[0-3]):[0-5]\d$/;
    switch(tipo)
    {
        case "hora" :
        {
            if(!isHora.test(valor) && (valor != ""))
            {
              alert("horario inválido");
              return false;
            }
            break;
        }
        case "data" :
	          if(!isData.test(valor) && (valor != ""))
	          {
	            alert('Data Inválida');
	            return false;
	          }
            break;
        case "numero" :
	          if(!isNumero.test(valor)){return false;}
            break;
        case "decimal" :
	          if(!isDecimal.test(valor)){return false;}
            break;
        case "moeda" :
	          if(!isMoeda.test(valor)){return false;}
            break;
        case "email" :
	          if(!isEmail.test(valor)){return false;}
            break;
        case "placa" :
            if(!isPlaca.test(valor) && (valor != ""))
            {
              alert('Placa Inválida')
              return false;
            }
            break;
        case "cpf" :
            if(!validaCpf(valor))
            {
              return false;
            }
            break;
        case "cnpj" :
            if(!validaCNPJ(valor))
            {
              return false;
            }
            break;
    }
    return true;
}

// valida CNPJ
function validaCNPJ(cnpj) 
{
    CNPJ = cnpj;
    erro = new String();
    if (CNPJ.length < 14)
    {
        erro += "CNPJ Inválido"; 
    }
    //substituir os caracteres que não são números
    if(document.layers && parseInt(navigator.appVersion) == 4 && CNPJ.length > 14 )
    {
        x = CNPJ.substring(0,2);
        x += CNPJ. substring (3,6);
        x += CNPJ. substring (7,10);
        x += CNPJ. substring (11,15);
        x += CNPJ. substring (16,18);
        CNPJ = x; 
    }
    else if(CNPJ.length > 14)
    {
            CNPJ = CNPJ. replace (".","");
            CNPJ = CNPJ. replace (".","");
            CNPJ = CNPJ. replace ("-","");
            CNPJ = CNPJ. replace ("/","");
    }
    var a = [];
    var b = new Number;
    var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
    for (i=0; i<12; i++)
    {
            a[i] = CNPJ.charAt(i);
            b += a[i] * c[i+1];
    }
    if ((x = b % 11) < 2)
    {
        a[12] = 0 
    } 
    else 
    { 
        a[12] = 11-x 
    }
    b = 0;
    for (y=0; y<13; y++) 
    {
        b += (a[y] * c[y]); 
    }
    if ((x = b % 11) < 2) 
    { 
        a[13] = 0; 
    } 
    else 
    { 
        a[13] = 11-x; 
    }
    if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13]))
    {
        erro = "Cnpj Inválido";
    }
    if (erro != "")
    {
        alert(erro);
        return false;
    } 
    return true;
}

// valida CPF
function validaCpf(cpf) 
{

    if(cpf.length > 11)
    {
        cpfSplit = cpf.split(".");
        cpf = cpfSplit[0] + cpfSplit[1] ;
        cpfSplit = cpfSplit[2].split("-");
        cpf += cpfSplit[0] + cpfSplit[1];
    }

    var CPF = cpf;

    // Aqui começa a checagem do CPF
    var POSICAO, I, SOMA, DV, DV_INFORMADO;
    var DIGITO = new Array(10);
    DV_INFORMADO = CPF.substr(9, 2); // Retira os dois últimos dígitos do número informado

    // Desemembra o número do CPF na array DIGITO
    for (I=0; I<=8; I++) 
    {
      DIGITO[I] = CPF.substr( I, 1);
    }

    // Calcula o valor do 10º dígito da verificação
    POSICAO = 10;
    SOMA = 0;
       for (I=0; I<=8; I++) 
       {
          SOMA = SOMA + DIGITO[I] * POSICAO;
          POSICAO = POSICAO - 1;
       }
    DIGITO[9] = SOMA % 11;
       if (DIGITO[9] < 2) 
       {
            DIGITO[9] = 0;
       }
       else
       {
           DIGITO[9] = 11 - DIGITO[9];
       }

    // Calcula o valor do 11º dígito da verificação
    POSICAO = 11;
    SOMA = 0;
       for (I=0; I<=9; I++) 
       {
          SOMA = SOMA + DIGITO[I] * POSICAO;
          POSICAO = POSICAO - 1;
       }
    DIGITO[10] = SOMA % 11;
       if (DIGITO[10] < 2) 
       {
            DIGITO[10] = 0;
       }
       else 
       {
            DIGITO[10] = 11 - DIGITO[10];
       }
    // Verifica se os valores dos dígitos verificadores conferem
    DV = DIGITO[9] * 10 + DIGITO[10];
       if (DV != DV_INFORMADO) 
       {
          alert('CPF inválido');
          return false;
       }
       else
       {
          return true;
       }
}

// RequiredFieldsValidator
function validarFormatoComExpressao(nro, campo) 
{   
    valor = campo.value;
    var isNro = /^\d{3}/;

    if(!isNro.test(valor)){return false;}
    
    return true;
}

// Comunicação de Sinistro 
function SeguradoIgual(elemento)
{
    if(elemento.checked)
    {
        document.getElementById("nomeCondutor").value = "false";
        document.getElementById("dddCondutor").value = "false";
        document.getElementById("prefixoCondutor").value = "false";
        document.getElementById("sufixoCondutor").value = "false";
        document.getElementById("CPFCondutor").value = "false";
        document.getElementById("nascCondutor").value = "false";
        document.getElementById("tblCondutorSegurado").style.display = "none";
    }
    else
    {
        document.getElementById("CPFCondutor").value = "true";
        document.getElementById("nascCondutor").value = "true";
        document.getElementById("nomeCondutor").value = "true";
        document.getElementById("dddCondutor").value = "true";
        document.getElementById("prefixoCondutor").value = "true";
        document.getElementById("sufixoCondutor").value = "true";
        document.getElementById("tblCondutorSegurado").style.display = "";
    }
}

// Comunicação de Sinistro 
function radTpComunicante(tipoComunicante)
{
    if(tipoComunicante == "segurado")
    {
    }
    else
    {
    }
}

function BloqSeguradoIgual(nome)
{
    if(nome == "juridica")
    {
      document.getElementById("tblChkSeguradoIgual").style.display = "none";
    }
    else
    {
      document.getElementById("tblChkSeguradoIgual").style.display = "";
    }
}

// Comunicação de Sinistro 
function Testemunha(elemento,nro)
{
    if(elemento.checked)
    {
        document.getElementById("nomeTestemunha" + nro).value = "true";
        document.getElementById("DDDtestemunha" + nro).value = "true";
        document.getElementById("prefixoTestemunha" + nro).value = "true";
        document.getElementById("sufixoTestemunha" + nro).value = "true";
        document.getElementById("logradouroTestemunha" + nro).value = "true";
        document.getElementById("bairroTestemunha" + nro).value = "true";
        document.getElementById("cepTestemunha" + nro).value = "true";
        document.getElementById("numeroLogradTestemunha" + nro).value = "true";
        document.getElementById("pnlTestemunha" + nro).style.display = "";
    }
    else
    {
        document.getElementById("nomeTestemunha" + nro).value = "false";
        document.getElementById("DDDtestemunha" + nro).value = "false";
        document.getElementById("prefixoTestemunha" + nro).value = "false";
        document.getElementById("sufixoTestemunha" + nro).value = "false";
        document.getElementById("logradouroTestemunha" + nro).value = "false";
        document.getElementById("bairroTestemunha" + nro).value = "false";
        document.getElementById("cepTestemunha" + nro).value = "false";
        document.getElementById("numeroLogradTestemunha" + nro).value = "false";
        document.getElementById("pnlTestemunha" + nro).style.display = "none";
    }
}

// Comunicação de Sinistro 
function Oficina(elemento)
{
    if(elemento.checked)
    {
        document.getElementById("dddOficina").value = "true";
        document.getElementById("prefixoOficina").value = "true";
        document.getElementById("sufixoOficina").value = "true";
        document.getElementById("logradouroOficina").value = "true";
        document.getElementById("bairroOficina").value = "true";
        document.getElementById("cepOficina").value = "true";
        document.getElementById("numeroLogradOficina").value = "true";
        document.getElementById("DDDContato").value = "false";
        document.getElementById("PrefixoContato").value = "false";
        document.getElementById("SufixoContato").value = "false";
        document.getElementById("nomeContato").value = "false";
        document.getElementById("pnlVistoriaVisivel").style.display = "";
    }
    else
    {
        document.getElementById("dddOficina").value = "false";
        document.getElementById("prefixoOficina").value = "false";
        document.getElementById("sufixoOficina").value = "false";
        document.getElementById("logradouroOficina").value = "false";
        document.getElementById("bairroOficina").value = "false";
        document.getElementById("cepOficina").value = "false";
        document.getElementById("numeroLogradOficina").value = "false";
        document.getElementById("DDDContato").value = "true";
        document.getElementById("PrefixoContato").value = "true";
        document.getElementById("SufixoContato").value = "true";
        document.getElementById("nomeContato").value = "true";
        document.getElementById("pnlVistoriaVisivel").style.display = "none";
    }
}

// Altera a escolha do tipo de pessoa
function FisicaChecked(pnlFisica,pnlJuridica)
{
    document.getElementById("validaNomePessoaDadosPrincipais").value = "true";
    document.getElementById("validaDtNascPessoaDadosPrincipais").value = "true";
    document.getElementById("validaCpfPessoaDadosPrincipais").value = "true";

    document.getElementById("validaRazaoSocialPessoaDadosPrincipais").value = "false";
    document.getElementById("validaCnpjPessoaDadosPrincipais").value = "false";
    document.getElementById(pnlFisica).style.display = "";
    document.getElementById(pnlJuridica).style.display = "none";
}

// Altera a escolha do tipo de pessoa
function JuridicaChecked(pnlFisica,pnlJuridica)
{
        
        document.getElementById("validaNomePessoaDadosPrincipais").value = "false";
        document.getElementById("validaDtNascPessoaDadosPrincipais").value = "false";
        document.getElementById("validaCpfPessoaDadosPrincipais").value = "false";
        
        document.getElementById("validaRazaoSocialPessoaDadosPrincipais").value = "true";
        document.getElementById("validaCnpjPessoaDadosPrincipais").value = "true";
        document.getElementById(pnlFisica).style.display = "none";
        document.getElementById(pnlJuridica).style.display = "";
}

// Altera a escolha do tipo de pessoa
function radTpPessoaChange(tipoPessoa)
{
  if(tipoPessoa == "fisica")
  {
    document.getElementById("validaCPF").value = "true";
    document.getElementById("validaCNPJ").value = "false";
    document.getElementById("linhaPessoaFisica").style.display = '';
    document.getElementById("linhaPessoaJuridica").style.display = 'none';
  }
  else
  {
    document.getElementById("validaCPF").value = "false";
    document.getElementById("validaCNPJ").value = "true";
    document.getElementById("linhaPessoaFisica").style.display = 'none';
    document.getElementById("linhaPessoaJuridica").style.display = '';  
  }
}

// Altera a escolha do tipo de pessoa
function Hospital(elemento,elemento2)
{
    if(elemento.checked)
    {
        document.getElementById(elemento2).checked = false;
        document.getElementById("nomeHospital").value = "true";
        document.getElementById("dddHospital").value = "true";
        document.getElementById("prefixoHospital").value = "true";
        document.getElementById("sufixoHospital").value = "true";
        document.getElementById("logradouroHospital").value = "true";
        document.getElementById("bairroHospital").value = "true";
        document.getElementById("cepHospital").value = "true";
        document.getElementById("numeroLogradHospital").value = "true";
        document.getElementById("nomeMedico").value = "true";
    }
    else
    {
      if(document.getElementById(elemento2).checked)
      {
      }
      else
      {
          document.getElementById("nomeHospital").value = "false";
          document.getElementById("dddHospital").value = "false";
          document.getElementById("prefixoHospital").value = "false";
          document.getElementById("sufixoHospital").value = "false";
          document.getElementById("logradouroHospital").value = "false";
          document.getElementById("bairroHospital").value = "false";
          document.getElementById("cepHospital").value = "false";
          document.getElementById("numeroLogradHospital").value = "false";
          document.getElementById("nomeMedico").value = "false";
      }
    }
}


