function valida_CPF_CNPJ(s) {
  /*if(document.form1.cnpj.value == "") {
    window.alert("Por favor, informe o CPF [Pessoa Física] ou CNPJ [Pessoa Jurídica].");
    document.form1.cnpj.focus();
    return (false);
  }*/

  //var s=0;
  //s = document.form1.cnpj.value;
  var s2 = new String(limpa(s,"0123456789"));

  if (s2.length == 0) {
    return false;
  }

  if ( (s2.length != 11) && (s2.length != 14) ) {
    return false;
  }

  if ( (s2 == "11111111111") || (s2 == "22222222222") ||
       (s2 == "33333333333") || (s2 == "44444444444") ||
       (s2 == "55555555555") || (s2 == "66666666666") ||
       (s2 == "77777777777") || (s2 == "88888888888") || (s2 == "99999999999") ) {
    return (false);
  }

  if (s2.length == 14) {
    var resultado = true;
    analise1 = s2.substr(0,s2.length-2);
    analise2 = s2.substr(0,s2.length-1);
    dv1 = s2.charAt(s2.length-2,1);
    dv2 = s2.charAt(s2.length-1,1);
    if (modulo11(analise1) != dv1) {
      resultado = false;
    }
    if (modulo11(analise2) != dv2) {
      resultado = false;
    }
    if (!resultado) {
      return (false);
    }
  } else {

   var soma = 0;
   var inicio = 2;
   var final_ = 10;
   var digito = 0;
   resultado1 = true;
   resultado2 = true;
   analise =  new String(s2.substr(0,s2.length-2));
   dv1 =s2.substr(s2.length - 2,1);
   dv2 =s2.substr(s2.length-1,1);
   for (j = 1;j <= 2; j++) {
    soma = 0;
    for (i = inicio;i <= final_; i++) {
      soma = soma +  (analise.charAt(i-j-1)*(final_ + 1 + j - i));
    }
    if (j == 2) {
      soma = soma + (2 * digito);
    }
    digito = (soma * 10)%11;
    if (digito == 10) {
      digito = 0;
    }
    if (j == 1) {
      resultado1 = (digito == dv1);
    } else {
      resultado2 = (digito == dv2);
    }
    inicio = 3;
    final_ = 11;

    if (s2.length == 0) {
     resultado1 = false;
    }
    if (!(resultado1 && resultado2)) {
      return (false);
    }
  }
 }

 return true;
}

function modulo11(s) {
 s2 = new String(limpa(s,"0123456789"));
 var multiplicador = 2;
 var produto = 0;
 var digito = 0;
 for (i=s2.length - 1;i >= 0;i--) {
   produto = produto + s2.charAt(i) * multiplicador;
   if (multiplicador==9) {
     multiplicador =2;
   } else {
     multiplicador++;
   }
 }
 digito = 11 - (produto % 11);
 if (digito == 10 || digito==11) {
   digito = 0;
 }
 return digito;
}


function limpa(s,caracteresvalidos) {
 var s2 = new String(s);
 var validos = new String(caracteresvalidos);
 var ok = false;
 var resultado = new String("");
 for (i=0; i<=s2.length-1; i++) {
   ok = false
   for (j=0; j<=validos.length-1; j++) {
     if (s2.charAt(i) == validos.charAt(j)) {
       ok = true;
     }
   }
   if (ok) {
     resultado = resultado + s2.charAt(i);
   }
 }
 return resultado;
}