function verificaCPF(obj) { 
  var CPF = obj.value; // Recebe o valor digitado no campo
  
  // Verifica se o campo é nulo
  if (CPF == '') {
    alert('CPF do motorista não pode ser nulo!');
    return false;
  }
  
  // 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('function: CPF inválido');
    obj.value = '';
    return false;
  } 
  return true;
}

function validaCPFCGC(obj){
  valor = obj.value;
  if (valor = ''){
    alert('Campo não pode ser NULO!');
    return false;
  }
  if (obj.value.length == 14) {
    valor = obj.value;
    if (eNumeroStr(valor)){
      m2 = 2
      soma1 = 0
      soma2 = 0
      for (i=11;i>=0;i--){
        valor = eval(obj.value.charAt(i));
        m1 = m2
        if (m2<9){ 
          m2 = m2+1
        }
        else{
          m2 = 2
        }
        soma1 = soma1 + (valor * m1)
        soma2 = soma2 + (valor * m2)
      }  // fim do for de soma
      soma1 = soma1 % 11
      if (soma1 < 2){
        d1 = 0
      }
      else{
        d1 = 11- soma1
      }
      soma2 = (soma2 + (2 * d1)) % 11
      if (soma2 < 2){ 
        d2 = 0
      }
      else{
        d2 = 11- soma2
      }
      if ((d1==obj.value.charAt(12)) && (d2==obj.value.charAt(13))){ 
        return true;
      }
      else{
        alert("CNPJ inválido!");
        obj.value = '';
        return false;
      }
      alert('entrou4');
    }
    else{
      alert('Valor digitado não é número!');
      return false;
    }
  }
  if (obj.value.length == 11){
    return verificaCPF(obj);
  }
  alert('Valor inválido!');
  obj.value = '';
  return false;
}


function eNumeroStr(valor) {
  var numeros = "0123456789";
  if (valor == "")
    return false;
  for(var i=0;i<=valor.length-1;i++){
    if (valor.substr(i,1) != numeros.substr(numeros.indexOf(valor.substr(i,1)),1)){
      return false;
    }
  }
  return true;
}

function eLetraStr(valor) {
  var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  if (valor == "")
    return false;
  for(var i=0;i<=valor.length-1;i++){
    if (valor.substr(i,1) != chars.substr(chars.indexOf(valor.substr(i,1)),1)){
      return false;
    }
  }
  return true;
}

function eData(valor) {
  s_dia = valor.substr(0,2);
  s_mes = valor.substr(2,2);
  s_ano = valor.substr(4,4);
  
  meses = new Array(12);
  meses[0] = 31;
  meses[1] = 28;
  meses[2] = 31;
  meses[3] = 30;
  meses[4] = 31;
  meses[5] = 30;
  meses[6] = 31;
  meses[7] = 31;
  meses[8] = 30;
  meses[9] = 31;
  meses[10] = 30;
  meses[11] = 31;
  if (!(valor.length == 8))
    return false;
  if (!eNumeroStr(s_dia) || !eNumeroStr(s_mes) || !eNumeroStr(s_ano))
    return false;
  else {
    dia = parseInt(s_dia,10);    
    mes = parseInt(s_mes,10);    
    ano = parseInt(s_ano,10);    
    if (ano % 4 == 0)   
      meses[1] = 29;

    if ((mes > 12 || dia <= 0 || mes <= 0 || ano < 0) || (dia > meses[mes-1]))
      return false;
    else 
      return true;
  }
}

function eAno(valor) {
  if (valor == "" || valor.length != 4)
    return false;
  return eNumeroStr(valor);
}

function validaAno(obj) {
  mudaNumeros(obj);
  return eAno(obj.value);  
}

function validaDataMens(obj) {
  mudaNumeros(obj);
  if (!eData(obj.value)) {
    alert("Data Inválida!"+'\n'+"A data deve estar no formato ddmmyyyy");
    return false;
  } 
  else {
      formataData(obj);
      return true;
  } 
}

function validaData(obj) {
  mudaNumeros(obj);
  return eData(obj.value); 
}


function mudaCaracteres(obj) {

  if (obj.value != "") {
  
    cnp = new Array("Á","Ã","Â","À","Ó","Õ","Ô","Ò","É","Ê","È","Í","Î","Ì","Ú","Û","Ù");
    cnp["Á"] = "A";
    cnp["Ã"] = "A";
    cnp["Â"] = "A";
    cnp["À"] = "A";
    cnp["Ó"] = "O";
    cnp["Õ"] = "O";
    cnp["Ò"] = "O";
    cnp["Ô"] = "O";
    cnp["É"] = "E";
    cnp["Ê"] = "E";
    cnp["È"] = "E";
    cnp["Í"] = "I";
    cnp["Î"] = "I";
    cnp["Ì"] = "I";
    cnp["Ú"] = "U";
    cnp["Û"] = "U";
    cnp["Ù"] = "U";

    valor = obj.value;
    
    chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789";
    s_chars = "ÁÃÂÀÓÕÔÒÉÊÈÍÎÌÚÛÙ";

    valor = valor.toUpperCase();

    for (k = 0;k<valor.length;k++) 
      if (chars.indexOf(valor.substr(k,1))<0 && s_chars.indexOf(valor.substr(k,1))<0) 
        valor = valor.substr(0,k)+""+valor.substr(k+1,valor.length-k-1);
  
    obj.value = valor;

    for (k = 0 ; k<valor.length ; k++) 
      if (chars.indexOf(valor.substr(k,1))<0 && s_chars.indexOf(valor.substr(k,1))<0) {
        mudaCaracteres(obj);
        break;
      }

    for (k = 0;k<valor.length;k++) 
      if (chars.indexOf(valor.substr(k,1))<0) 
        valor = valor.substr(0,k)+cnp[valor.substr(k,1)]+valor.substr(k+1,valor.length-k-1);
  
    obj.value = valor;

    for (k = 0 ; k<valor.length ; k++) 
      if (chars.indexOf(valor.substr(k,1))<0) {
        mudaCaracteres(obj);
        break;
      }
  }
}

function mudaNumeros(obj) {
  
  valor = obj.value;

  chars = "0123456789";

  valor = valor.toUpperCase();
  for (k = 0;k<valor.length;k++) 
    if (chars.indexOf(valor.substr(k,1))<0) 
      valor = valor.substr(0,k)+valor.substr(k+1,valor.length-k-1);
  
  obj.value = valor;

  for (k = 0 ; k<valor.length ; k++) 
    if (chars.indexOf(valor.substr(k,1))<0) {
      mudaNumeros(obj);
      break;
    }
}

function mudaNumerosTESTE(obj) {
  
  valor = obj.value;

  chars = "0123456789";

  valor = valor.toUpperCase();
  for (k = 0;k<valor.length;k++) 
    alert(valor);
    if (chars.indexOf(valor.substr(k,1))<0) 
      valor = valor.substr(0,k)+valor.substr(k+1,valor.length-k-1);
  alert(valor);
  obj.value = valor;
  
  for (k = 0 ; k<valor.length ; k++) 
    if (chars.indexOf(valor.substr(k,1))<0) {
      mudaNumeros(obj);
      break;
    }
}

function validaNumero(obj) {
  mudaNumeros(obj);
  if (obj.value == "")    
    return false;
}

function checaCEP(valor){
  if (valor.length<8){ 
   return false;
  }
  if (valor.length==8)  {
    if (eNumeroStr(valor))
     return true;    
    else return false;
  }
  if (valor.length>8) return false;
}

function formataCEP(valor){  
  var str = valor.substr(0,2) + "."+valor.substr(2,3)+"-"+valor.substr(5,7);  
  return str;
}

function validaCEP(obj){
var temp  = obj.value;
  mudaNumeros(obj);
  if (checaCEP(obj.value)){
    obj.value = formataCEP(obj.value);
  } 
  else {
    alert("CEP inválido "+obj.value);
    obj.value = temp;  
  }
}


function tiraFormatoCEP(valor){
  var str = valor.substr(0,2) + valor.substr(3,3)+valor.substr(7,7);   
  return str;
}


function formataData(obj){  
  var valor = obj.value;
  if (!eData(valor)) {   
    alert("Data Inválida.");
    obj.value = valor;
  }
  else{ 
    var str = valor.substr(0,2)+"/"+valor.substr(2,2)+"/"+valor.substr(4,4);
    obj.value = str;
  }
}

function tiraFormatoData(obj){
  var valor = obj.value;
  var str = valor.substr(0,2) + valor.substr(3,2)+valor.substr(6,4);   
  obj.value = str;
}

function complemento(){
 if (vform.DS_COMPLEMENTO_COM.value.length == "") {
    alert("O complemento do endereco não pode ser nulo!");
    return false;
  }
}


