/* 
 * Fun�oes para mascara dos campos.
 * 
 */


function FormataCpf(campo)
{

    var vr = new String(campo.value);
    vr = vr.replace(".", "");
    vr = vr.replace("/", "");
    vr = vr.replace("-", "");
    tam = vr.length + 1;
        if (tam == 4)
            campo.value = vr.substr(0, 3) + '.';
        if (tam == 7)
            campo.value = vr.substr(0, 3) + '.' + vr.substr(3, 6) + '.';
        if (tam == 11)
            campo.value = vr.substr(0, 3) + '.' + vr.substr(3, 3) + '.' + vr.substr(7, 3) + '-' + vr.substr(11, 2);

}



// fun?ao q retorna a tecla pressionada
function MMS_GetKeyEvent(evt){
    var KeyPressed;
    if ("NETSCAPE" != window.navigator.appName.toUpperCase()){
        KeyPressed = event.keyCode;
    }
    else{
        KeyPressed = evt.which;
    }
    //alert(KeyPressed);
    return KeyPressed;

}


function MMS_DestroyEvent(){

    event.keycode = 0;
    event.keycode = ''
    event.keycode = false;

    event.returnValue = 0;
    event.returnValue = '';
    event.returnValue = false;

    event.which = 0;
    event.which = '';
    event.which = false;

}

// exemplo
//  Mascara('data', MMS_GetKeyEvent(event), 'pesquisa');
// formata o campo com a mascara de acordo com os parametros
function Mascara (formato, keypress, objeto){
    //pega o componente
    campo = document.getElementById(objeto);

    if (formato=='data')
    {
        mascaraHellas(campo.value, campo.id, '##/##/####', keypress);
    }
    if (formato=='hora')
    {
        mascaraHellas(campo.value, campo.id, '##:##', keypress);
    }
    if (formato=='tefefone')
    {
        mascaraHellas(campo.value, campo.id, '(##)####-####', keypress);
    }
    
    
    
    


}

function mascaraHellas(valor, id, mascara, evento)
{

    //inicializa a variavel que vai conter o valor final
    var valorFinal = "";

    //verifica o que foi digitada para que seja verificado se ? somente n?meros ou n?o
    var tecla = evento;

    if ( ((tecla >= 48) && (tecla <= 57)) || ((tecla >= 97) && (tecla <= 122)) || ((tecla >= 65) && (tecla <= 90)) || (tecla == 45) || (tecla == 46) || (tecla == 47) || (tecla == 92) || (tecla == 124) || (tecla == 40) || (tecla == 41) || (tecla == 58) || (tecla == 32) || (tecla == 44))
    {

        //manetem o tamanho original do campo sem retirar a m?scara
        var valorOriginal = valor;

        //inicializa um array com todos os caracteres que ser?o retirado
        var arrNaoPermitidos = new Array("-", ".", "/", "\\", "|", "(", ")", ":", " ", ",");

        //retira qualquer m?scatra que j? tenho sido colocada
        for(i1=0;i1<valor.length;i1++)
        {
            for(i2=0;i2<arrNaoPermitidos.length;i2++)
            {
                if(valor.charAt(i1) == arrNaoPermitidos[i2])
                {
                    valor = valor.toString().replace( arrNaoPermitidos[i2], "" );
                }
            }
        }


        //verifica se foi precionado o backspae
        if(tecla != 8)
        {
            //verifica se j? n?o ultrapassou o tamanha m?ximo da m?scara
            if(mascara.length >= valorOriginal.length)
            {
                //loop em cima do valor do campo sem a m?scara
                jaTemMascara = false;
                for(i=0;i<valor.length;i++)
                {
                    //verifica se a string j? recebeu alguma m?scara ou n?o
                    if(jaTemMascara == false)
                    {
                        //verifica se o tipo da entrada de dados tem que ser n?merica
                        if(mascara.charAt(i) == "#")
                        {
                            //verifica se foi digitado somente n?meros
                            if ( ((tecla >= 48) && (tecla <= 57)) || ((tecla >= 96) && (tecla <= 105)) )
                            {
                                //0 = 96 ou 48
                                //1 = 97 ou 49
                                //2 = 98 ou 50
                                //3 = 99 ou 51
                                //4 = 100 ou 52
                                //5 = 101 ou 53
                                //6 = 102 ou 54
                                //7 = 103 ou 55
                                //8 = 104 ou 56
                                //9 = 105 ou 57
                                //tecla == 9 = tab
                                valorFinal = valorFinal  + valor.charAt(i);
                            }
                            else//se n?o foi digitado um n?mero ? retirado o caracter da string
                            {
                                valorFinal = valorOriginal.substring(0, valorOriginal.length -1);
                            }
                        }
                        else if(mascara.charAt(i) == "@")//verifica se o tipo da entrada ? qualquer caracter
                        {
                            valorFinal = valorFinal  + valor.charAt(i);
                        }
                        else//se n?o for quelaquer caracter ? algum elemento da m?scara
                        {
                            //verifica se o pr?xima depois da m?scara ? n?merica
                            if(mascara.charAt(i + 1) == "#")
                            {
                                //verifica se foi digitado somente n?meros
                                if ( ((tecla >= 48) && (tecla <= 57)) || ((tecla >= 96) && (tecla <= 105)) )
                                {
                                    //0 = 96 ou 48
                                    //1 = 97 ou 49
                                    //2 = 98 ou 50
                                    //3 = 99 ou 51
                                    //4 = 100 ou 52
                                    //5 = 101 ou 53
                                    //6 = 102 ou 54
                                    //7 = 103 ou 55
                                    //8 = 104 ou 56
                                    //9 = 105 ou 57
                                    //tecla == 9 = tab
                                    valorFinal = valorFinal + mascara.charAt(i + jaTemMascara)  + valor.charAt(i);
                                    jaTemMascara = jaTemMascara + 1;
                                }
                                else//se n?o foi digitado um n?mero ? retirado o caracter da string
                                {
                                    valorFinal = valorOriginal.substring(0, valorOriginal.length -1);
                                }
                            }
                            else// se n?o ? n?merico ent?o pode ser qualuqer caracter
                            {
                                valorFinal = valorFinal + mascara.charAt(i + jaTemMascara)  + valor.charAt(i);
                                jaTemMascara = jaTemMascara + 1;
                            }
                        }
                    }
                    else//else da verifica??o da m?scara
                    {
                        //verifica se foi digitado somente n?meros
                        if(mascara.charAt(i + jaTemMascara) == "#")
                        {
                            //verifica se foi digitado somente n?meros
                            if ( ((tecla >= 48) && (tecla <= 57)) || ((tecla >= 96) && (tecla <= 105)) )
                            {
                                //0 = 96 ou 48
                                //1 = 97 ou 49
                                //2 = 98 ou 50
                                //3 = 99 ou 51
                                //4 = 100 ou 52
                                //5 = 101 ou 53
                                //6 = 102 ou 54
                                //7 = 103 ou 55
                                //8 = 104 ou 56
                                //9 = 105 ou 57
                                //tecla == 9 = tab
                                valorFinal = valorFinal  + valor.charAt(i);
                            }
                            else//se n?o foi digitado um n?mero ? retirado o caracter da string
                            {
                                valorFinal = valorOriginal.substring(0, valorOriginal.length -1);
                            }
                        }
                        else if(mascara.charAt(i + jaTemMascara) == "@")//verifica se o tipo da entrada ? qualquer caracter
                        {
                            valorFinal = valorFinal  + valor.charAt(i);
                        }
                        else
                        {
                            //verifica se foi digitado somente n?meros
                            if(mascara.charAt(i + jaTemMascara +1) == "#")
                            {
                                //verifica se foi digitado somente n?meros
                                if ( ((tecla >= 48) && (tecla <= 57)) || ((tecla >= 96) && (tecla <= 105)) )
                                {
                                    //0 = 96 ou 48
                                    //1 = 97 ou 49
                                    //2 = 98 ou 50
                                    //3 = 99 ou 51
                                    //4 = 100 ou 52
                                    //5 = 101 ou 53
                                    //6 = 102 ou 54
                                    //7 = 103 ou 55
                                    //8 = 104 ou 56
                                    //9 = 105 ou 57
                                    //tecla == 9 = tab
                                    valorFinal = valorFinal + mascara.charAt(i + jaTemMascara)  + valor.charAt(i);
                                    jaTemMascara = jaTemMascara + 1;
                                }
                                else//se n?o foi digitado um n?mero ? retirado o caracter da string
                                {
                                    valorFinal = valorOriginal.substring(0, valorOriginal.length -1);
                                }
                            }
                            else// se n?o ? n?merico ent?o pode ser qualuqer caracter
                            {
                                valorFinal = valorFinal + mascara.charAt(i + jaTemMascara)  + valor.charAt(i);
                                jaTemMascara = jaTemMascara + 1;
                            }
                        }
                    }//fim da verifica??o da m?scara
                }
            }
            else
            {
                valorFinal = valorOriginal.substring(0, mascara.length);
            }//final da verifica??o do tamanha m?ximo da string
        }
        else
        {
            //valorFinal = valorOriginal.substring(0, valorOriginal.length -1)
            valorFinal = valorOriginal.substring(0, valorOriginal.length);
        }//final da verifica??o do backspace

        document.getElementById(id).value = valorFinal;

    }
}


