/*
function validarCPF(s) {
var d,i,c;
        s = s.replace(/\D/mg,'');
        if ((s != '00000000000') && (s != '99999999999')) {
        for (i = 9; i < 11; i++) {
            for (d = 0, c = 0; c < i; c++) {
                d += s[c] * ((i + 1) - c);
            }
            d = ((10 * d) % 11) % 10;
            if (s[c] != d)
                return false;
        }
        return true;
    }
        return false;
}
*/

/*
*
*    Funções de validação CPF e CNPJ
*    Data da Criação: 13/09/2009
*    Fernando Oléa , baseado na função do Jonathan Moratelli de Carvalho e outra do Celso Goya
*    Versão: 0.1
*
*/



function validarCPF(cpf,pType){
   
   var cpf_filtrado = "", valor_1 = " ", valor_2 = " ", ch = "";
   var valido = false;
        
   for (i = 0; i < cpf.length; i++){
      ch = cpf.substring(i, i + 1);
      if (ch >= "0" && ch <= "9"){
         cpf_filtrado = cpf_filtrado.toString() + ch.toString()
         valor_1 = valor_2;
         valor_2 = ch;
      }
      if ((valor_1 != " ") && (!valido)) valido = !(valor_1 == valor_2);
   }
   if (!valido) cpf_filtrado = "12345678912";

   if (cpf_filtrado.length < 11){
      for (i = 1; i <= (11 - cpf_filtrado.length); i++){cpf_filtrado = "0" + cpf_filtrado;}
   }

    if(pType <= 1){
        if ( ( cpf_filtrado.substring(9,11) == checkCPF( cpf_filtrado.substring(0,9) ) ) && ( cpf_filtrado.substring(11,12)=="") ){return true;}
    }

    if((pType == 2) || (pType == 0)){
        if (cpf_filtrado.length >= 14){
            if ( cpf_filtrado.substring(12,14) == checkCNPJ( cpf_filtrado.substring(0,12) ) ){ return true;}
        }
    }
    
    return false;
}

function checkCNPJ(vCNPJ){
   var mControle = "";
   var aTabCNPJ = new Array(5,4,3,2,9,8,7,6,5,4,3,2);
   for (i = 1 ; i <= 2 ; i++){
      mSoma = 0;
      for (j = 0 ; j < vCNPJ.length ; j++)
         mSoma = mSoma + (vCNPJ.substring(j,j+1) * aTabCNPJ[j]);
      if (i == 2 ) mSoma = mSoma + ( 2 * mDigito );
      mDigito = ( mSoma * 10 ) % 11;
      if (mDigito == 10 ) mDigito = 0;
      mControle1 = mControle ;
      mControle = mDigito;
      aTabCNPJ = new Array(6,5,4,3,2,9,8,7,6,5,4,3);
   }
   return( (mControle1 * 10) + mControle );
}

function checkCPF(vCPF){
   var mControle = ""
   var mContIni = 2, mContFim = 10, mDigito = 0;
   for (j = 1 ; j <= 2 ; j++){
      mSoma = 0;
      for (i = mContIni ; i <= mContFim ; i++)
         mSoma = mSoma + (vCPF.substring((i-j-1),(i-j)) * (mContFim + 1 + j - i));
      if (j == 2 ) mSoma = mSoma + ( 2 * mDigito );
      mDigito = ( mSoma * 10 ) % 11;
      if (mDigito == 10) mDigito = 0;
      mControle1 = mControle;
      mControle = mDigito;
      mContIni = 3;
      mContFim = 11;
   }
   return( (mControle1 * 10) + mControle );
}

