//Biblioteca que roda no Cliente

function DataPadrao(DataForm){
// Descrição: Formata e verifica a string entrada para o formato de data padrão e chama  
//            a função ValidaData() para validar a data.
// Sintaxe  : DataPadrao(nome_do_controle)
//            Aonde nome_do_controle - é nome do campo de entrada da data
// Exemplo  : <input type=text name="Data" onBlur="DataPadrao(this)" value="">

   Data       = DataForm.value;
   Comprimento= Data.length;
   Count      = 0;
  
   if(Data=='') return;
 
   //Verifica se as barras foram digitadas corretamente
   for(var i=0; i < Comprimento; i++)
      (Data.substr(i,1) == "/") ? Count++ : Count;
 
   if (Count != 2){
      alert("A data deve estar no formato\n ''dd/mm/aaaa''");
      DataForm.select();
      return(false);
   };
 
   //Verifica se o ano é composto de 2 ou 4 digitos
   tamanho = Data.substring(Data.lastIndexOf("/")+1,Comprimento).length
   if(tamanho<2 || tamanho>4 || tamanho == 3){
     alert('Data Inválida!');
     DataForm.select();
     return false;
   };
 
   // Separa o dia, mes e ano
   idxBarI = Data.indexOf("/");
   idxBarII= Data.lastIndexOf("/");
   strDia  = Data.substring(0,idxBarI);
   strMes  = Data.substring(idxBarI+1,idxBarII);
   strAno  = Data.substring(idxBarII+1,Comprimento);
 
   strDia = (strDia.length < 2 ? '0'+strDia : strDia);
   strMes = (strMes.length < 2 ? '0'+strMes : strMes);   
   if(strAno.length == 2)
      strAno = (strAno > 50  ? '19'+strAno : '20'+strAno);
 
   DataForm.value = strDia+'/'+strMes+'/'+strAno;
   ok = ValidaData(strDia, strMes, strAno);
   if(ok==false){ 
      alert("Data Inválida!");
      DataForm.select();
      return false;
   };
return(true);
}
 
function ValidaData(Dia, Mes, Ano){
// Descrição: Valida a data passada e retorna falso(false) ou verdadeiro(true)
// Sintaxe  : ValidaData(Dia, Mes, Ano)
// Exemplo  : ok = ValidaData('11','10','2003')
  Meses  = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
  Bisexto= false;
 
  if((Ano % 4 == 0) && ((Ano % 100 != 0) || (Ano %400 == 0)))
     Bisexto = true;
  if((Dia < 1) || (Dia > 31) || (Mes < 1) || (Mes > 12) || (Ano < 0))
     return(false);
  if((Dia > Meses[Mes-1]) && !((Mes == 2) && (Dia > 28)))
     return(false);
  if(!(Bisexto) && (Mes == 2) && (Dia > 28))
     return(false);    
  if((Bisexto)  && (Mes == 2) && (Dia > 29))
     return(false); 
  return(true);
}

//Checa se o campo digitado é numérico
 function numericVal(obj){
  var tam = obj.value.length;
  for(var i=0;i<tam;i++)
  {
   caracter = obj.value.charCodeAt(i);
   // só aceita se for número ou vírgula
   if (!( (caracter >= 48 && caracter <= 57) ||(caracter == 44)))
	
   {
      alert("Valor digitado deve ser numérico!");
	  obj.value= "";
      obj.focus();
	  return (false);		
     }
  }
 }

  function testKey(e, strValidos){

    chars= strValidos;
    if(chars.indexOf(String.fromCharCode(e.keyCode))==-1) window.event.keyCode=0;
    return;

  }
function ValidaCPF(CPF) {
  var dv1 = 0;
  var dv2;
  for (var i=0;i<9;i++) dv1+=(parseInt(CPF.charAt(i))*(10-i));
  dv2 = 11 - (dv1 % 11);
  if (dv2 > 9) dv2 = 0;
  if (dv2 != parseInt(CPF.charAt(9))) return(false);
  dv1 = 0;
  for (i=0;i<10;i++) dv1 += (parseInt(CPF.charAt(i))*(11-i));
  dv2 = 11 - (dv1 % 11);
  if (dv2 > 9) dv2 = 0;
  return(dv2==parseInt(CPF.charAt(10)));}
//---------------------------------------------
function ValidaCNPJ(CNPJ) {
var soma = 0; var j = 5;
for (i=0;i<12;i++) {soma+=parseInt(CNPJ.charAt(i))*j;if(j>2)j--;else j=9;}
soma = 11-(soma%11);
if (soma>9) soma=0;
if (CNPJ.charAt(12)!=soma.valueOf()) return false;
soma=0; j=6;
for (i=0;i<13;i++) {soma += parseInt(CNPJ.charAt(i))*j;if (j>2) j--; else j=9;}
soma = 11-(soma%11);
if (soma>9) soma=0;
return (CNPJ.charAt(13)=soma.valueOf());}
//---------------------------------------------
function ValidaCGF(CGF) {
var soma = 0;
for (j=0;j<8;j++) {soma+=parseInt(CGF.charAt(j))*(9-j);}
soma = 11-(soma%11);
if (soma>9) soma=0;
return (CGF.charAt(8)==soma.valueOf());}

