function isCPFCNPJ(campo,pType){
    if( isEmpty( campo ) ){return false;}

    var campo_filtrado = "", valor_1 = " ", valor_2 = " ", ch = "";
    var valido = false;

    for (i = 0; i < campo.length; i++){
       ch = campo.substring(i, i + 1);
       if (ch >= "0" && ch <= "9"){
          campo_filtrado = campo_filtrado.toString() + ch.toString()
          valor_1 = valor_2;
          valor_2 = ch;
       }
       if ((valor_1 != " ") && (!valido)) valido = !(valor_1 == valor_2);
    }
    if (!valido) campo_filtrado = "12345678912";

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

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

    if((pType == 2) || (pType == 0)){
       if (campo_filtrado.length >= 14){
          if ( campo_filtrado.substring(12,14) == checkCNPJ( campo_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 );
 }

 function isEmpty(pStrText){
    var   len = pStrText.length;
    var pos;
    var vStrnewtext = "";

    for (pos=0; pos<len; pos++){
       if (pStrText.substring(pos, (pos+1)) != " "){
          vStrnewtext = vStrnewtext + pStrText.substring(pos, (pos+1));
       }
    }

    if (vStrnewtext.length > 0)
       return false;
    else
       return true;
 }
