function limpa_string(S){
        // Deixa so' os digitos no numero
        var Digitos = "0123456789";
        var temp = "";
        var digito = "";

        for (var i=0; i<S.length; i++)        {
                digito = S.charAt(i);
                if (Digitos.indexOf(digito)>=0)        {
                        temp=temp+digito        }
        } //for

        return temp
}

function valida_CPF(s)
{
        var i;
        s = limpa_string(s);
        var c = s.substr(0,9);
        var dv = s.substr(9,2);
        var d1 = 0;
        for (i = 0; i < 9; i++)
        {
                d1 += c.charAt(i)*(10-i);
        }
        if (d1 == 0) return false;
        d1 = 11 - (d1 % 11);
        if (d1 > 9) d1 = 0;
        if (dv.charAt(0) != d1)
        {
                return false;
        }

        d1 *= 2;
        for (i = 0; i < 9; i++)
        {
                d1 += c.charAt(i)*(11-i);
        }
        d1 = 11 - (d1 % 11);
        if (d1 > 9) d1 = 0;
        if (dv.charAt(1) != d1)
        {
                return false;
        }
        return true;
}

function valida_CNPJ(s)
{
        var i;
        s = limpa_string(s);
        var c = s.substr(0,12);
        var dv = s.substr(12,2);
        var d1 = 0;
        for (i = 0; i < 12; i++)
        {
                d1 += c.charAt(11-i)*(2+(i % 8));
        }
        if (d1 == 0) return false;
        d1 = 11 - (d1 % 11);
        if (d1 > 9) d1 = 0;
        if (dv.charAt(0) != d1)
        {
                return false;
        }

        d1 *= 2;
        for (i = 0; i < 12; i++)
        {
                d1 += c.charAt(11-i)*(2+((i+1) % 8));
        }
        d1 = 11 - (d1 % 11);
        if (d1 > 9) d1 = 0;
        if (dv.charAt(1) != d1)
        {
                return false;
        }
        return true;
}

function FormataCPF()
{
    vr = formulario.edtCpfCnpj.value;
    tam = vr.length;

    if ( vr.indexOf(".") == -1 )
    {
        if ( tam <= 3 )
            formulario.edtCpfCnpj.value = vr;

        if ( (tam > 3) && (tam <= 7) )
            formulario.edtCpfCnpj.value = vr.substr( 0, 3 ) + '.' + vr.substr( 4, tam );

        if ( (tam >= 8) && (tam <= 11) )
            formulario.edtCpfCnpj.value = vr.substr( 0, 3 ) + '.' + vr.substr( 3, 3 ) + '.' + vr.substr( 5, 3 ) + '-';

        if ( (tam >= 11) && (tam <= 18) )
            formulario.edtCpfCnpj.value = vr.substr( 0, 3 ) + '.' + vr.substr( 3, 3 ) + '.' + vr.substr( 6, 3 ) + '-' + vr.substr( 9, 2 );
    }

    return true;

}

function FormataCNPJ()
{
         vr = formulario.edtCpfCnpj.value;
         tam = vr.length;


      if ( vr.indexOf(".") == -1 )
      {
      if ( tam <= 2 )
              formulario.edtCpfCnpj.value = vr;
      if ( (tam > 2) && (tam <= 6) )
              formulario.edtCpfCnpj.value = vr.substr( 0, 2 ) + '.' + vr.substr( 2, tam );
      if ( (tam >= 7) && (tam <= 10) )
              formulario.edtCpfCnpj.value = vr.substr( 0, 2 ) + '.' + vr.substr( 2, 3 ) + '.' + vr.substr( 5, 3 ) + '/';
      if ( (tam >= 11) && (tam <= 18) )
             formulario.edtCpfCnpj.value = vr.substr( 0, 2 ) + '.' + vr.substr( 2, 3 ) + '.' + vr.substr( 5, 3 ) + '/' + vr.substr( 8, 4 ) + '-' + vr.substr( 12, 2 ) ;
      }
      return true;
}
   function verifica_cpf_cnpj()
   {
      if (formulario.edtCpfCnpj.value != '')
      {
         s = limpa_string(formulario.edtCpfCnpj.value);

         // checa se é cpf
         if (s.length == 11)
         {
            if (valida_CPF(formulario.edtCpfCnpj.value) == false )
            {
                    alert("O CPF não é válido !");
                    formulario.edtCpfCnpj.value = '';
                    formulario.edtCpfCnpj.focus();
                    return false;
            }
            else
               FormataCPF();
         }

           // checa se é CNPJ
         else if (s.length == 14)
         {
             if (valida_CNPJ(formulario.edtCpfCnpj.value) == false )
             {
                alert("O CNPJ não é válido !");
                formulario.edtCpfCnpj.focus();
                formulario.edtCpfCnpj.value = '';
                return false;
             }
             else
                FormataCNPJ();
         }
         else
         {
            alert("O CPF/CNPJ não é válido !");
            formulario.edtCpfCnpj.focus();
            formulario.edtCpfCnpj.value = '';
            return false;
         }
      }
   }