        ///////////////////////////////////////////
                //                   //
        // Programa para validacao de CPF e CNPJ //
        // Desenvolvido por Paulo David.         //
        //                   //
        ///////////////////////////////////////////

function checa_cpf() {

    if (document.frm.cpfcnpj.value == '') {
        alert('O campo CPF/CNPJ não pode ser vazio');
        document.frm.cpfcnpj.focus();
        return false;
    }

    //if (document.frm.cep.value.length > 5 ||
    //    document.frm.cep.value.length < 5) {
    //  alert('Informe seu CEP com 5 posições');
    //  document.frm.cep.focus();
    //  return false;
    //} 

    if (document.frm.cpfcnpj.value == 11111111111 ||
        document.frm.cpfcnpj.value == 22222222222 ||
        document.frm.cpfcnpj.value == 33333333333 ||
        document.frm.cpfcnpj.value == 44444444444 ||
        document.frm.cpfcnpj.value == 55555555555 ||
        document.frm.cpfcnpj.value == 66666666666 ||
        document.frm.cpfcnpj.value == 77777777777 ||
        document.frm.cpfcnpj.value == 88888888888 ||
        document.frm.cpfcnpj.value == 99999999999 ||
        document.frm.cpfcnpj.value == 12345678912345) {
		
        alert('Este tipo de código não existe');
        document.frm.cpfcnpj.value = ''; 
        document.frm.cpfcnpj.focus();
        return false;
    }

    // Verifica se e CPF ou CNPJ        
    if (document.frm.cpfcnpj.value.length <= 11) {
        documento = 'cpf'
    }

    else {
        documento = 'cnpj'
    }

    // Validacao do CPF 

    if (documento == 'cpf') {
    val_cpf = document.frm.cpfcnpj.value;
    
       if (document.frm.cpfcnpj.value.length == 10) {
            val_cpf = '0' + val_cpf;

        }       

        if (val_cpf.length < 11) {
            alert('CPF deve ter 11 digitos');
            document.frm.cpfcnpj.focus();
            return false;   

        }   

        if (Math.abs(val_cpf) == 0) {
            alert('CPF deve ser diferente de 0');
            document.frm.cpfcnpj.focus();
            return false;   
        }       

        if (isNaN(val_cpf)) {
            alert('CPF deve ser numerico');
            document.frm.cpfcnpj.focus();
            return false;

        }   

            
        MyArray = new Array(11);
        calccpf = 0;
        Multp = val_cpf.length - 1;
            
        for(y = 0; y < val_cpf.length; y++) {
            MyArray[y] = calccpf + val_cpf.charAt(y);

            //alert(MyArray[y]); //o
        }
                                    
        for(i = 0; i < val_cpf.length - 2; i++) {
            calccpf = calccpf + val_cpf.charAt(i) * Multp;
            Multp = Multp - 1;
        }

        P = parseInt(calccpf/11);
        calccpf = calccpf - (11 * P);
            
        if (calccpf == 0 || calccpf == 1) {
            Resposta = 0;
        }

        else {

            Resposta = 11 - calccpf;
        }

            //alert(Resposta); //ok


        if (Resposta == MyArray[9]) {
            calccpf = MyArray[0] * 11 + MyArray[1] * 10 + MyArray[2] * 9 + MyArray[3] * 8 + 
                  MyArray[4] * 7  + MyArray[5] * 6  + MyArray[6] * 5 + MyArray[7] * 4 + 
                  MyArray[8] * 3  + MyArray[9] * 2;

            P = parseInt(calccpf/11);
            calccpf = calccpf - (11 * P);
        }
            
        if (calccpf == 0 || calccpf == 1) {
            Resposta1 = 0;
        }

        else {

            Resposta1 = 11 - calccpf;
        }
            //alert(Resposta1);  //ok
                
        if (Resposta1 == MyArray[10]) {
            
        }

        else {
            alert('CPF inválido');
            document.frm.cpfcnpj.focus();
            return false;
        }
              
    }



    // Validacao do CNPJ    

    else {





    val_cnpj = document.frm.cpfcnpj.value;

    

        if (document.frm.cpfcnpj.value.length == 13) {

            val_cnpj = '0' + val_cnpj;

        }





        if (val_cnpj.length < 14) {

            alert('CNPJ deve ter 14 digitos');

            document.frm.cpfcnpj.focus();

            return false;   

        }   



        if (Math.abs(val_cnpj) == 0) {

            alert('CNPJ deve ser diferente de 0');

            document.frm.cpfcnpj.focus();

            return false;   

        }       

    

        if (isNaN(val_cnpj)) {

            alert('CNPJ deve ser numerico');

            document.frm.cpfcnpj.focus();

            return false;

        }   

            

            

        MyArray = new Array(14);

        calccnpj = 0;

                        

        for(y = 0; y < val_cnpj.length; y++) {

            MyArray[y] = calccnpj + val_cnpj.charAt(y);

            //alert('array = ' + MyArray[y]); //OK

        }

            

        calccnpj = MyArray[0]  * 5 + MyArray[1]  * 4 + MyArray[2] * 3 + MyArray[3] * 2 + MyArray[4] * 9 + 

               MyArray[5]  * 8 + MyArray[6]  * 7 + MyArray[7] * 6 + MyArray[8] * 5 + MyArray[9] * 4 + 

               MyArray[10] * 3 + MyArray[11] * 2;

            

        P = parseInt(calccnpj/11);

        calccnpj = calccnpj - (11 * P);

                

        if (calccnpj == 0 || calccnpj == 1) {

            Resposta1 = 0;

        }   

        else {

            Resposta1 = 11 - calccnpj;

        }   

                

            //alert('resposta1 = ' + resposta1); //ok

            

        if (Resposta1 == MyArray[12]) {

            calccnpj = MyArray[0]  * 6 + MyArray[1] * 5 + MyArray[2]  * 4 + MyArray[3]  * 3 + 

                   MyArray[4]  * 2 + MyArray[5] * 9 + MyArray[6]  * 8 + MyArray[7]  * 7 + 

                   MyArray[8]  * 6 + MyArray[9] * 5 + MyArray[10] * 4 + MyArray[11] * 3 + 

                   MyArray[12] * 2;

            P = parseInt(calccnpj/11);

                

            //alert('P = ' + parseInt(calccnpj/11)); //ok

                

            calccnpj = calccnpj - (11 * P);

        }

            //alert('calccnpj = ' + calccnpj); //ok

                

        if (calccnpj == 0 || calccnpj == 1) {

            Resposta2 = 0;

        }   

        else {

            Resposta2 = 11 - calccnpj;

        }   

                

            //alert('resposta2 = ' + resposta2); //ok

            

        if (Resposta2 == MyArray[13]) {

                

        }

        else {

            alert('CNPJ inválido');

            document.frm.cpfcnpj.focus();

            return false;

        }



    }



    if (document.frm.senha.value == '') {

        alert('O campo Senha não pode ser vazio');

        document.frm.senha.focus();

        return false;

    }



    if (document.frm.senha.value.length < 4) {

        alert('O campo Senha deve possuir 4 digitos');

        document.frm.senha.focus();

        return false;

    }

    

    if (isNaN(document.frm.senha.value)) {

        alert('O campo Senha deve ser numerico');

        document.frm.senha.focus();

        return false;

    }



}
