/* ConverterMaiuscula   - Converte os caracteres digitados para seu equivalente maiúsculo. Usar onKeyPress="ConverterMaiuscula(this, event)"                                    */
/* ConverterMinuscula   - Converte os caracteres digitados para seu equivalente minúsculo. Usar onKeyPress="ConverterMinuscula(this, event)"                                    */
/* CPFCNPJMascarar      - Mascara o texto digitado no formato CPF ou CNPJ. Usar onKeyPress="return CPFCNPJMascarar(this, event)"                                                */
/* CPFMascarar          - Mascara o texto digitado no formato CPF. Usar onKeyPress="return CPFMascarar(this, event)"                                                            */
/* CNPJMascarar         - Mascara o texto digitado no formato CNPJ. Usar onKeyPress="return CNPJMascarar(this, event)"                                                          */
/* CEPMascarar          - Mascara o texto digitado no formato CEP. Usar onKeyPress="return CEPMascarar(this, event)"                                                            */ 
/* Mascarar             - Mascara o texto digitado no formato desejado, conforme máscara. Usar onKeyPress="return Mascarar(this, event, máscara)"                               */
/*                        Utilizar '9' para somente números ou 'A' para letras.                                                                                                 */
/* CPFValidar           - Valida o CPF. Usar no custom validator CPFValidar.                                                                                                    */
/* CNPJValidar          - Valida o CNPJ. Usar no custom validator CNPJValidar.                                                                                                  */
/* CPFCNPJValidar       - Valida o CPF/CNPJ. Usar no custom validator CPFCNPJValidar.                                                                                           */
/* CEPValidar           - Valida o CEP. Usar no custom validator CEPValidar.                                                                                                    */          
/* FoneValidar          - Valida o Fone. Usar no custom validator FoneValidar.                                                                                                  */          
/* MoedaMascarar        - Mascara o texto digitado no formato R$999.999.999,99. Usar onKeyPress="return MoedaMascarar(this,event)" e onkeyup="VerificarBackSpace(this,event)"   */  

function ConverterMaiuscula(DsParm, CdTecla)
{ 
    if (CdTecla.keyCode) 
    {
         var tecla = String.fromCharCode(CdTecla.keyCode).toUpperCase();
         CdTecla.keyCode = tecla.charCodeAt(0);
    }
    else if (CdTecla.which)
    {
        var tecla = String.fromCharCode(CdTecla.which).toUpperCase();
        CdTecla.which = tecla.charCodeAt(0);
    }
    else 
    {
        var tecla = String.fromCharCode(CdTecla.charCode).toUpperCase();
        CdTecla.which = tecla.charCodeAt(0);
    }    
}

function ConverterMinuscula(DsParm, CdTecla)
{ 
    if (CdTecla.keyCode) 
    {
        var tecla = String.fromCharCode(CdTecla.keyCode).toLowerCase();
        CdTecla.keyCode = tecla.charCodeAt(0);        
    }
    else if (CdTecla.which)
    {
        var tecla = String.fromCharCode(CdTecla.which).toLowerCase();
        CdTecla.which = tecla.charCodeAt(0);
    }
    else 
    {
        var tecla = String.fromCharCode(CdTecla.charCode).toLowerCase();
        CdTecla.which = tecla.charCodeAt(0);
    }    
}

function CPFCNPJMascarar(DsParm, CdTecla)
{
    if (CdTecla.keyCode){var tecla = CdTecla.keyCode;}
    else if (CdTecla.which){var tecla = CdTecla.which;}
    else {var tecla = CdTecla.charCode;}
    
    if ( tecla != 9 && tecla != 8 ){if (tecla < 48 || tecla > 57){return false;}}
    
    var cpjcnpj = '';
    cpfcnpj = DsParm.value.replace('.','').replace('.','').replace('-','').replace('/','')
    
    if(cpfcnpj.length <= 11)
    {
        CPFMascarar(DsParm, CdTecla);
    }
    else if (cpfcnpj.length < 14)
    {
        CNPJMascarar(DsParm, CdTecla);  
    }
    else {return false}
    
    return true;
}  

function CPFMascarar(DsParm, CdTecla)
{   
    if (CdTecla.keyCode){var tecla = CdTecla.keyCode;}
    else if (CdTecla.which){var tecla = CdTecla.which;}
    else {var tecla = CdTecla.charCode;}
    
    if ( tecla != 9 && tecla != 8 ){if (tecla < 48 || tecla > 57){return false;}}
    
    var cpf = '';
    var tamanho = 0;
    cpf = DsParm.value.replace('.','').replace('.','').replace('-','').replace('/','')
    tamanho = cpf.length + 1;

    if(cpf.length < 11)
    {
        if ( CdTecla != 9 && CdTecla != 8 ) 
        {
            if ( tamanho >= 4 && tamanho <= 6 ) {DsParm.value = cpf.substr(0,3) + '.' + cpf.substr(3,3);}
            else if ( tamanho >= 7 && tamanho < 10 ) {DsParm.value = cpf.substr(0,3) + '.' + cpf.substr(3,3) + '.' + cpf.substr(6,3);}
            else if ( tamanho >= 10 && tamanho < 14 ) {DsParm.value = cpf.substr(0,3) + '.' + cpf.substr(3,3) + '.' + cpf.substr(6,3) + '-' + cpf.substr(9,2);}
        }   
    }
    else {return false;}    
}  

function CNPJMascarar(DsParm, CdTecla)
{   
    if (CdTecla.keyCode){var tecla = CdTecla.keyCode;}
    else if (CdTecla.which){var tecla = CdTecla.which;}
    else {var tecla = CdTecla.charCode;}
    
    if ( tecla != 9 && tecla != 8 ){if (tecla < 48 || tecla > 57){return false;}}
    var cnpj = '';
    var tamanho = 0;
    cnpj = DsParm.value.replace('.','').replace('.','').replace('-','').replace('/','')
    tamanho = cnpj.length + 1;
    
    if(cnpj.length < 14)
    {
        if ( CdTecla != 9 && CdTecla != 8 ) 
        {
            if ( tamanho > 2 && tamanho < 6 ) {DsParm.value = cnpj.substr(0,2) + '.' + cnpj.substr(2,3);}
            else if ( tamanho >= 6 && tamanho < 9 ) {DsParm.value = cnpj.substr(0,2) + '.' + cnpj.substr(2,3) + '.' + cnpj.substr(5,3);}
            else if ( tamanho >= 9 && tamanho < 13 ) {DsParm.value = cnpj.substr(0,2) + '.' + cnpj.substr(2,3) + '.' + cnpj.substr(5,3) + '/' + cnpj.substr(8,4);}
            else if ( tamanho >= 13 && tamanho < 15 ) {DsParm.value = cnpj.substr(0,2) + '.' + cnpj.substr(2,3) + '.' + cnpj.substr(5,3) + '/' + cnpj.substr(8,4)+ '-' + cnpj.substr(12,2);}
        }
    }
    else {return false;}        
}   

function CEPMascarar(DsParm, CdTecla)
{   
    if (CdTecla.keyCode){var tecla = CdTecla.keyCode;}
    else if (CdTecla.which){var tecla = CdTecla.which;}
    else {var tecla = CdTecla.charCode;}
    
    if ( tecla != 9 && tecla != 8 ){if (tecla < 48 || tecla > 57){return false;}}
    
    var cep = '';
    var tamanho = 0;
    cep = DsParm.value.replace('.','').replace('.','').replace('-','').replace('/','')
    tamanho = cep.length + 1;

    if(cep.length < 8)
    {
        if ( CdTecla != 9 && CdTecla != 8 ) 
        {
            if ( tamanho > 2 && tamanho <= 5 ) {DsParm.value = cep.substr(0,2) + '.' + cep.substr(2,3);}
            else if ( tamanho >= 6 && tamanho <= 8 ) {DsParm.value = cep.substr(0,2) + '.' + cep.substr(2,3) + '-' + cep.substr(5,3);}
        }   
    }
    else {return false;}    
}  
 
function Mascarar(DsParm, CdTecla, DsMascara) 
{              
    if (CdTecla.keyCode){var tecla = CdTecla.keyCode;}
    else if (CdTecla.which){var tecla = CdTecla.which;}
    else {var tecla = CdTecla.charCode;}      

    var campo = DsParm.value;

    campo = campo.toString().replace('-','').replace('-','').replace('-','').replace('-', '' );
    campo = campo.toString().replace('.','').replace('.','').replace('.','').replace('.', '' );
    campo = campo.toString().replace('/','').replace('/','').replace('/','').replace('/', '' );
    campo = campo.toString().replace('(','').replace('(','').replace('(','').replace('(', '' );
    campo = campo.toString().replace(')','').replace(')','').replace(')','').replace(')', '' );
    campo = campo.toString().replace(' ','').replace(' ','').replace(' ','').replace(' ', '' );
    campo = campo.toString().replace(':','').replace(':','').replace(':','').replace(':', '' );
    campo = campo.toString().replace(',','').replace(',','').replace(',','').replace(',', '' );
    campo = campo.toString().replace('$','').replace('$','').replace('$','').replace('$', '' );
    campo = campo.toString().replace('R','').replace('R','').replace('R','').replace('R', '' )
    
    var tamanhocampo = campo.length;
    var tamanhomascara = DsMascara.length;
    var mascaracheck = '-./() :,$R';
    var mascarasaida = '';
    var icampo = 0;
    var imascara = 0;
    
    while (imascara <= tamanhomascara)
    {
        if(mascaracheck.indexOf(DsMascara.charAt(imascara)) == -1)
        {
            mascarasaida += campo.charAt(icampo);
            icampo++;
        }
        else {mascarasaida += DsMascara.charAt(imascara);}
        
        imascara++;
        
        if (icampo > tamanhocampo){break;}
    }
    
    if (tecla != 8)  // backspace
    {
        if(mascarasaida.length == tamanhomascara){return false;}
    
        if (DsMascara.charAt(imascara-1) == "9")  
        {
            if (tecla > 47 && tecla < 58)
            {
                DsParm.value = mascarasaida;
                return true;
            }
            else {return false;}         
        }
        else if(DsMascara.charAt(imascara-1) == "A") 
        {
            if (tecla >= 65 && tecla <= 90)
            {
                DsParm.value = mascarasaida;
                return true;
            } 
            else {return false;}                                                       
        } 
        else {return true;}
    }         
} 

function CPFValidar(DsSCR, DsParm)
{
    var DsCPF = DsParm.Value;
    
    DsCPF = DsCPF.toString().replace('-','').replace('-','').replace('-','').replace('-', '' );
    DsCPF = DsCPF.toString().replace('.','').replace('.','').replace('.','').replace('.', '' ); 
    DsCPF = DsCPF.toString().replace('/','').replace('/','').replace('/','').replace('/', '' );    

    if (DsCPF.length != 11) 
    {
        DsParm.IsValid = false;
        return;
    }

    if (!(DsCPF.match(/^[0-9]{3,3}[.]{0,1}[0-9]{3,3}[.]{0,1}[0-9]{3,3}[-]{0,1}[0-9]{2,2}$/)))
    {
        DsParm.IsValid = false;
        return;
    }
            
    var i = 0;
    var soma1 = 0;
    var soma2 = 0;

    for (i = 0; i < 10; i++)
    {
        if (i < 9) {soma1 += (DsCPF.charAt(i)) * (10 - i);}
        soma2 += (DsCPF.charAt(i)) * (11 - i);
    }

    if ((soma1 % 11) < 2) 
    { 
        if (DsCPF.charAt(9) != 0) 
        {
            DsParm.IsValid = false;
            return;
        }
    }
    else 
    { 
        if ((11 - (soma1 % 11)) != (DsCPF.charAt(9)))
        {
            DsParm.IsValid = false;
            return;
        }
    } 
    
    
    if ((soma2 % 11) < 2) 
    { 
        if (DsCPF.charAt(10) != 0)
        {
            DsParm.IsValid = false;
            return;
        }
    }
    else 
    {   
        if ((11 - (soma2 % 11)) != (DsCPF.charAt(10))) 
        {
            DsParm.IsValid = false;
            return;
        } 
    }
    DsParm.IsValid = true;
}

function CNPJValidar(DsSCR, DsParm)
{
    var DsCNPJ = DsParm.Value;
    
    DsCNPJ  = DsCNPJ .toString().replace('-','').replace('-','').replace('-','').replace('-', '' );
    DsCNPJ  = DsCNPJ .toString().replace('.','').replace('.','').replace('.','').replace('.', '' ); 
    DsCNPJ = DsCNPJ.toString().replace('/','').replace('/','').replace('/','').replace('/', '' );    

    if (DsCNPJ.length != 14) 
    {
        DsParm.IsValid = false;
        return;
    }

    if (!(DsCNPJ.match(/^[0-9]{2,2}[.]{0,1}[0-9]{3,3}[.]{0,1}[0-9]{3,3}[/]{0,1}[0-9]{4,4}[-]{0,1}[0-9]{2,2}$/))) 
    {
        DsParm.IsValid = false;
        return;
    }
            
    var i = 0;
    var soma1 = 0;
    var soma2 = 0;

    for (i = 0; i < 13; i++)
    {
        if (i < 4) {soma1 += (DsCNPJ.charAt(i)) * (5 - i);}
        else if (i < 12) {soma1 += (DsCNPJ.charAt(i)) * (13 - i);}

        if (i < 5) {soma2 += (DsCNPJ.charAt(i)) * (6 - i);}
        else if (i < 13) {soma2 += (DsCNPJ.charAt(i)) * (14 - i);} 
    }


    if ((soma1 % 11) < 2) 
    { 
        if (DsCNPJ.charAt(12) != 0) 
        {
            DsParm.IsValid = false;
            return;
        }
    }
    else 
    { 
        if ((11 - (soma1 % 11)) != (DsCNPJ.charAt(12)))
        {
            DsParm.IsValid = false;
            return;
        }
    } 
    
    
    if ((soma2 % 11) < 2) 
    { 
        if (DsCNPJ.charAt(13) != 0)
        {
            DsParm.IsValid = false;
            return;
        }
    }
    else 
    {   
        if ((11 - (soma2 % 11)) != (DsCNPJ.charAt(13))) 
        {
            DsParm.IsValid = false;
            return;
        } 
    }
    DsParm.IsValid = true;
}


function CPFCNPJValidar(DsSCR, DsParm)
{
    var DsCPFCNPJ = DsParm.Value;
    
    DsCPFCNPJ = DsCPFCNPJ .toString().replace('-','').replace('-','').replace('-','').replace('-', '' );
    DsCPFCNPJ = DsCPFCNPJ .toString().replace('.','').replace('.','').replace('.','').replace('.', '' ); 
    DsCPFCNPJ = DsCPFCNPJ.toString().replace('/','').replace('/','').replace('/','').replace('/', '' );    

    if (DsCPFCNPJ.length == 11) 
    { 
        CPFValidar(DsSCR, DsParm);
        return;
    }
    else if (DsCPFCNPJ.length == 14) 
    { 
        CNPJValidar(DsSCR, DsParm);
        return;    
    }
    else
    {
        DsParm.IsValid = false;
        return;
    }    
}

function CEPValidar(DsSCR, DsParm)
{
    var DsCEP = DsParm.Value;
    
    DsCEP = DsCEP.toString().replace('-','').replace('-','').replace('-','').replace('-', '' );
    DsCEP = DsCEP.toString().replace('.','').replace('.','').replace('.','').replace('.', '' ); 
    DsCEP = DsCEP.toString().replace('/','').replace('/','').replace('/','').replace('/', '' );    

    if (DsCEP.length != 8) 
    {
        DsParm.IsValid = false;
        return;
    }

    if (!(DsCEP.match(/^[0-9]{2,2}[.]{0,1}[0-9]{3,3}[-]{0,1}[0-9]{3,3}$/)))
    {
        DsParm.IsValid = false;
        return;
    }
    DsParm.IsValid = true;
}

function FoneValidar(DsSCR, DsParm)
{
    var DsFone = DsParm.Value;
    
    DsFone = DsFone.toString().replace('-','').replace('-','').replace('-','').replace('-', '' );
    DsFone = DsFone.toString().replace('.','').replace('.','').replace('.','').replace('.', '' ); 
    DsFone = DsFone.toString().replace('/','').replace('/','').replace('/','').replace('/', '' );    

    if (DsFone.length < 9) 
    {
        DsParm.IsValid = false;
        return;
    }

    if (!(DsFone.match(/^[(]{0,1}[0-9]{2,2}[)]{0,1}[0-9]{4,4}[.]{0,1}[0-9]{6,6}$/)))
    {
        DsParm.IsValid = false;
        return;
    }
    DsParm.IsValid = true;
}

function MoedaMascarar(DsParm, CdTecla)
{
    if (CdTecla.keyCode)
    { 
        if (CdTecla.keyCode == 13) {return true;}
        var tecla = CdTecla.keyCode;
    }
    else if (CdTecla.which)
    {   
        if (CdTecla.which == 13) {return true;}
        var tecla = CdTecla.which;
    }
    else 
    {
        if (CdTecla.charCode == 13) {return true;}
        var tecla = CdTecla.charCode;
    }      

    if ( tecla != 9 && tecla != 8 ){if (tecla < 48 || tecla > 57){return false;}}
    
    var campo = DsParm.value;

    var i = j = 0;
    var aux = aux0 = '';
    var strcheck = '1234567890'
    var tamcampo = campo.length;
    var tamaux = tamaux0 = 0;
    
    for(i = 0; i < tamcampo; i++)
    {
        if ((campo.charAt(i) != '0') && (campo.charAt(i) != ',')) {break;}
    }

    for(; i < tamcampo; i++)
    {
        if (strcheck.indexOf(campo.charAt(i))!=-1) aux += campo.charAt(i);
    }
    
    if (tecla >= 48 && tecla <= 57)
    {
        aux += String.fromCharCode(tecla);
    }
     
    tamaux = aux.length;
        
    if (tamaux == 0) {campo = '';}
    else if (tamaux == 1) {campo = '0,0' + aux;}
    else if (tamaux == 2) {campo = '0,' +  aux;}
    else 
    {
        for (j = 0, i = tamaux - 3; i >= 0; i--) 
        {
            if (j == 3)
            {
                aux0 += '.';
                j = 0;
            }
            aux0 += aux.charAt(i);
            j++;
        } 
        campo = '';
        tamaux0 = aux0.length;
        
        for (i = tamaux0 - 1; i >= 0; i--)
        {
            campo += aux0.charAt(i);
        }                    
        campo += "," + aux.substr(tamaux - 2, tamaux);
    }
    DsParm.value = campo;
    return false;
}

function MoedaMascararCasas(DsParm, CdTecla, DsCasas)

{

    if (CdTecla.keyCode)

    { 

        if (CdTecla.keyCode == 13) {return true;}

        var tecla = CdTecla.keyCode;

    }

    else if (CdTecla.which)

    {   

        if (CdTecla.which == 13) {return true;}

        var tecla = CdTecla.which;

    }

    else 

    {

        if (CdTecla.charCode == 13) {return true;}

        var tecla = CdTecla.charCode;

    }      

 

    if ( tecla != 9 && tecla != 8 ){if (tecla < 48 || tecla > 57){return false;}}

    

    var campo = DsParm.value;

 

    var i = j = 0;

    var aux = aux0 = '';

    var strcheck = '1234567890'

    var tamcampo = campo.length;

    var tamaux = tamaux0 = 0;

    

    for(i = 0; i < tamcampo; i++)

    {

        if ((campo.charAt(i) != '0') && (campo.charAt(i) != ',')) {break;}

    }

 

    for(; i < tamcampo; i++)

    {

        if (strcheck.indexOf(campo.charAt(i))!=-1) aux += campo.charAt(i);

    }

    

    if (tecla >= 48 && tecla <= 57)

    {

        aux += String.fromCharCode(tecla);

    }

     

    tamaux = aux.length;

       

    if (tamaux == 0) {campo = '';}

    else if (tamaux <= DsCasas) {campo = '0,' + '0000000000'.substr(1,DsCasas-tamaux) + aux;}

    else 

    {

        for (j = 0, i = tamaux - DsCasas-1; i >= 0; i--) 

        {

            if (j == 3)

            {

                aux0 += '.';

                j = 0;

            }

            aux0 += aux.charAt(i);

            j++;

        } 

        campo = '';

        tamaux0 = aux0.length;

        

        for (i = tamaux0 - 1; i >= 0; i--)

        {

            campo += aux0.charAt(i);

        }                    

        campo += "," + aux.substr(tamaux - DsCasas, tamaux);

    }

    DsParm.value = campo;

    return false;

}


function VerificarBackSpaceCasas(DsParm, CdTecla, DsCasas)

{

    if (CdTecla.keyCode)

    { 

        if (CdTecla.keyCode == 13) {return true;}

        var tecla = CdTecla.keyCode;

    }

    else if (CdTecla.which)

    {   

        if (CdTecla.which == 13) {return true;}

        var tecla = CdTecla.which;

    }

    else 

    {

        if (CdTecla.charCode == 13) {return true;}

        var tecla = CdTecla.charCode;

    }      

 

    if ( tecla == 8 ) {MoedaMascararCasas(DsParm, CdTecla, DsCasas);}

    

}

function VerificarBackSpace(DsParm, CdTecla)
{
    if (CdTecla.keyCode)
    { 
        if (CdTecla.keyCode == 13) {return true;}
        var tecla = CdTecla.keyCode;
    }
    else if (CdTecla.which)
    {   
        if (CdTecla.which == 13) {return true;}
        var tecla = CdTecla.which;
    }
    else 
    {
        if (CdTecla.charCode == 13) {return true;}
        var tecla = CdTecla.charCode;
    }      

    if ( tecla == 8 ) {MoedaMascarar(DsParm, CdTecla);}    
}

function Moeda(DsParm)
{
   
    var campo = DsParm;

   

    var i = j = 0;
    var aux = aux0 = '';
    var strcheck = '1234567890'
    var tamcampo = campo.length;
    var tamaux = tamaux0 = 0;
   
    for(i = 0; i < tamcampo; i++)
    {
        if ((campo.charAt(i) != '0') && (campo.charAt(i) != ',')) {break;}
    }

    for(; i < tamcampo; i++)
    {
        if (strcheck.indexOf(campo.charAt(i))!=-1) aux += campo.charAt(i);
    }
     
    tamaux = aux.length;
        
    if (tamaux == 0) {campo = '';}
    else if (tamaux == 1) {campo = '0,0' + aux;}
    else if (tamaux == 2) {campo = '0,' +  aux;}
    else 
    {
        for (j = 0, i = tamaux - 3; i >= 0; i--) 
        {
            if (j == 3)
            {
                aux0 += '.';
                j = 0;
            }
            aux0 += aux.charAt(i);
            j++;
        } 
        campo = '';
        tamaux0 = aux0.length;
        
        for (i = tamaux0 - 1; i >= 0; i--)
        {
            campo += aux0.charAt(i);
        }                    
        campo += "," + aux.substr(tamaux - 2, tamaux);
    }
    
    return campo;
    
}