
function mascaraTelefone(obj, evento) 
{
     var BACKSPACE   = 8;
     var DEL         = 46;
     var FRENTE      = 39;
     var TRAS        = 37;
     var TAB         = 9;
     var SHIFT       = 16;

     var tecla       = (evento.keyCode ? evento.keyCode: evento.which ? evento.which : evento.charCode);

     if (tecla == BACKSPACE || tecla == DEL || tecla == FRENTE || tecla == TRAS || tecla == TAB || tecla == SHIFT)
         return true;

     if ((tecla < 48 || tecla > 57) && (tecla < 96 || tecla > 105)){
         obj.value = obj.value.substring(0, obj.value.length - 1);
         evento.returnValue = false;
         return false;
     }

     // sem nada
     var sn = '';
     sn = obj.value.replace('(','');
     sn = sn.replace(')','');
     sn = sn.replace('-','');

     if(sn.length >= 1 && sn.length <= 2)
             obj.value = '(' + sn;
     if(sn.length >= 3 && sn.length <= 6)
             obj.value = '(' + sn.substring(0,2) + ')' + sn.substring(2,sn.length);
     if(sn.length >= 7 && sn.length <= 10)
             obj.value = '(' + sn.substring(0,2) + ')' + sn.substring(2,6) + '-' + sn.substring(6,sn.length);
     if(sn.length >10)
             obj.value = '(' + sn.substring(0,2) + ')' + sn.substring(2,6) + '-' + sn.substring(6,10);
}

function mascaraHora(obj, evento) 
{
    var BACKSPACE   = 8;
    var DEL         = 46;
    var FRENTE      = 39;
    var TRAS        = 37;
    var TAB         = 9;
    var SHIFT       = 16;

    var tecla       = (evento.keyCode ? evento.keyCode: evento.which ? evento.which : evento.charCode);

    if(tecla == BACKSPACE || tecla == DEL || tecla == FRENTE || tecla == TRAS || tecla == TAB || tecla == SHIFT)
        return true;

    if ((tecla < 48 || tecla > 57) && (tecla < 96 || tecla > 105))
    {
        obj.value = '';
        return false;
    }

    if (obj.value.length == 2)
    {
    	if ( obj.value <= 24 )
    	{
    		obj.value = obj.value + ":";
    	}
    	else
    	{
    		erro('A hora não pode ser superior a 24 !', obj);
    	}
    }

    if (obj.value.substring(3,4) > 5)
    {
   		erro('Os minutos não podem ser superior a 59 !', obj);
    }
}

function mascaraCep(obj, evento) 
{
     var BACKSPACE   = 8;
     var DEL         = 46;
     var FRENTE      = 39;
     var TRAS        = 37;
     var TAB         = 9;
     var SHIFT       = 16;

     var tecla       = (evento.keyCode ? evento.keyCode: evento.which ? evento.which : evento.charCode);

     if (tecla == BACKSPACE || tecla == DEL || tecla == FRENTE || tecla == TRAS || tecla == TAB || tecla == SHIFT)
         return true;

     if ((tecla < 48 || tecla > 57) && (tecla < 96 || tecla > 105)){
         obj.value = obj.value.substring(0, obj.value.length - 1);
         evento.returnValue = false;
         return false;
     }

     if(obj.value.length == 5)
         obj.value = obj.value + '-';
}

function mascaraData(obj, evento) 
{
    var BACKSPACE   = 8;
    var DEL         = 46;
    var FRENTE      = 39;
    var TRAS        = 37;
    var TAB         = 9;
    var SHIFT       = 16;

    var tecla       = (evento.keyCode ? evento.keyCode: evento.which ? evento.which : evento.charCode);

    if(tecla == BACKSPACE || tecla == DEL || tecla == FRENTE || tecla == TRAS || tecla == TAB || tecla == SHIFT)
        return true;

    if ((tecla < 48 || tecla > 57) && (tecla < 96 || tecla > 105))
    {
        obj.value = '';
        return false;
    }

    if(obj.value.length == 2)
        obj.value = obj.value + "/";
    if(obj.value.length == 5)
        obj.value = obj.value + "/";
    if(obj.value.length == 10)
    {
        var dia = parseInt(obj.value.substring(0,2),10);
        var mes = parseInt(obj.value.substring(3,5),10);
        var ano = parseInt(obj.value.substring(6,10),10);

        if(dia <= 31 && mes <=12 && ano >= 1000)
        {
            if(obj.value.substring(0,1) == "0" && obj.value.substring(1,2) != "0" || obj.value.substring(0,1) != "0")
            {
                if(obj.value.substring(2,3) == "/")
                {
                    if(obj.value.substring(3,4) == "0" && obj.value.substring(4,5) != "0" || obj.value.substring(3,4) != "0")
                    {
                        if(obj.value.substring(5,6) == "/")
                        {
                            if(obj.value.substring(6,7) == "0" || obj.value.substring(6,7) == "" && obj.value.substring(7,8) != "0")
                            {
					        	erro('O ano que você digitou não existe!', obj);
                            }
                            else
                            {
                                if(mes == 2)
                                {
                                    if((dia > 0 ) && (dia <= 29))
                                    {
                                         if(dia == 29)
                                         {
                                             if((ano % 4) == 0)
                                             {
                                                 return true;
                                             }
                                             else
                                             {
									        	erro('Este dia não existe, certifique-se de que digitou corretamente!', obj);
                                             }
                                         }
                                    }
                                    else
                                    {
							        	erro('Este dia não existe, certifique-se de que digitou corretamente!', obj);
                                    }
                                }
                                if((mes == 4) || (mes == 6) || (mes == 9) || (mes == 11))
                                {
                                    if((dia > 0 ) && (dia <= 30))
                                    {
                                         return true;
                                    }
                                    else
                                    {
							        	erro('Este dia não existe, certifique-se de que digitou corretamente!', obj);
                                    }
                                }
                                if((mes == 1) || (mes == 3) || (mes == 5) || (mes == 7) || (mes == 8) || (mes == 10) || (mes == 12))
                                {
                                    if((dia > 0) && (dia <= 31))
                                    {
                                         return true;
                                    }
                                    else
                                    {
							        	erro('Este dia não existe, certifique-se de que digitou corretamente!', obj);
                                    }
                                }
                            }
                        }
                        else
                        {
				        	erro('A data foi digitada fora do padrão(dd/mm/aaaa)!', obj);
                        }
                    }
                    else
                    {
			        	erro('Você digitou um mês que não existe!', obj);
                    }
                }
                else
                {
		        	erro('A data foi digitada fora do padrão(dd/mm/aaaa)!', obj);
                }
            }
            else
            {
	        	erro('Você digitou um dia que não existe!', obj);
            }
        }
        else
        {
        	erro('O dia e/ou o mês que você digitou não existe, ou você digitou\nfora do padrão (dd/mm/aaaa)!', obj);
        }

        return true;
    }
}

function mascaraNumero(obj, tamanho, evento) 
{
     var BACKSPACE   = 8;
     var DEL         = 46;
     var FRENTE      = 39;
     var TRAS        = 37;
     var TAB         = 9;
     var SHIFT       = 16;

     var tecla       = (evento.keyCode ? evento.keyCode: evento.which ? evento.which : evento.charCode);

     if (tecla == BACKSPACE || tecla == DEL || tecla == FRENTE || tecla == TRAS || tecla == TAB || tecla == SHIFT)
         return true;

     if ((tecla < 48 || tecla > 57) && (tecla < 96 || tecla > 105)){
         obj.value = obj.value.substring(0, obj.value.length - 1);
         evento.returnValue = false;
         return false;
     }

     vr = obj.value;
     vr = vr.replace('/', '');
     vr = vr.replace(',', '');
     vr = vr.replace('.', '');
     tam = vr.length;

     if (tam < tamanho && tecla != 8){ tam = vr.length + 1 ; }
     if (tecla == 8 ){ tam = tam - 1 ; }
     if ( (tecla == 8) || (tecla >= 48 && tecla <= 57) || (tecla >= 96 && tecla <= 105) ){
     if ( tam <= 2 ){ obj.value = vr ; }
     if ( (tam > 2) && (tam <= 5) ){obj.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ; }
     if ( (tam >= 6) && (tam <= 8) ){obj.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
     if ( (tam >= 9) && (tam <= 11) ){obj.value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
     if ( (tam >= 12) && (tam <= 14) ){obj.value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
     if ( (tam >= 15) && (tam <= 17) ){obj.value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' +
     vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;}
     }
}
