//**************************************************************************************************
// FUNÇÃO PRINCIPAL
//**************************************************************************************************
function mascara (formato, keypress, objeto)	{
	campo = eval (objeto);
	// Formato CEP

// Formato MOEDA
	if (formato=='MOEDA') 
		{
			Formatasalario(objeto,8,event);			
		}
	
	if (formato=='CEP') {
		caracteres = '01234567890';
		separacoes = 2;
		separacao1 = '-';
		if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (9)) {
			if (campo.value.length == 5) 
			   campo.value = campo.value + separacao1;
		} else {
			event.returnValue = false;
		}
	}
	// Formato Hora
	if (formato=='HORA') {
		caracteres = '01234567890';
		separacoes = 1;
		separacao1 = ':';
		if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (9)) {
			if (campo.value.length == 2) 
			   campo.value = campo.value + separacao1;
		} else {
			event.returnValue = false;
		}
	}	

	// Formato Data
	if (formato=='DATA') {
		caracteres = '01234567890';
		separacoes = 2;
		separacao1 = '/';
		if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (10)) {
			if (campo.value.length == 2) 
			   campo.value = campo.value + separacao1;
			if (campo.value.length == 5) 
			   campo.value = campo.value + separacao1;
		} else {
			event.returnValue = false;
		}
	}	

	// Formato TEL	
	if (formato=='TEL')	{
		caracteres = '01234567890';
		separacoes = 2;
		separacao1 = '(';
		separacao2 = ')';
		separacao3 = ' ';
		separacao4 = '-';
		if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (14)) {
			if (campo.value.length == 0) 
			campo.value = campo.value + separacao1;
			if (campo.value.length == 3) 
			campo.value = campo.value + separacao2;
			if (campo.value.length == 4) 
			campo.value = campo.value + separacao3;
			if (campo.value.length == 9) 
			campo.value = campo.value + separacao4;
		} else {
			event.returnValue = false;
		}
	}
	// Formato TEL Comum	
	if (formato=='TELCOMUM')	{
		caracteres = '01234567890';
		separacoes = 2;
		separacao1 = '(';
		separacao2 = ')';
		separacao3 = ' ';
		separacao4 = '-';
		if (campo.value.length == (6)){
			if ((caracteres.search(String.fromCharCode (keypress))!=-1) && (campo.value.charAt(5) == "1" || campo.value.charAt(5) == "2" || campo.value.charAt(5) == "3" || campo.value.charAt(5) == "4" || campo.value.charAt(5) == "5" || campo.value.charAt(5) == "6" || campo.value.charAt(5) == "7" || campo.value.charAt(5) == "0") && campo.value.length < (14)) {
				if (campo.value.length == 0) 
				campo.value = campo.value + separacao1;
				if (campo.value.length == 3) 
				campo.value = campo.value + separacao2;
				if (campo.value.length == 4) 
				campo.value = campo.value + separacao3;
				if (campo.value.length == 9) 
				campo.value = campo.value + separacao4;
			} else {
				alert("Favor informar um número de telefone que não seja celular.");
				event.returnValue = false;
			}
		} else {
			if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (14)) {
				if (campo.value.length == 0) 
				campo.value = campo.value + separacao1;
				if (campo.value.length == 3) 
				campo.value = campo.value + separacao2;
				if (campo.value.length == 4) 
				campo.value = campo.value + separacao3;
				if (campo.value.length == 9) 
				campo.value = campo.value + separacao4;
			} else {
				event.returnValue = false;
			}
		}
	}
	// Formato CEL	
	if (formato=='CEL')	{
		caracteres = '01234567890';
		separacoes = 2;
		separacao1 = '(';
		separacao2 = ')';
		separacao3 = ' ';
		separacao4 = '-';
		if (campo.value.length == (6)){
			if ((caracteres.search(String.fromCharCode (keypress))!=-1) && (campo.value.charAt(5) == "9" || campo.value.charAt(5) == "8") && campo.value.length < (14)) {
				if (campo.value.length == 0) 
				campo.value = campo.value + separacao1;
				if (campo.value.length == 3) 
				campo.value = campo.value + separacao2;
				if (campo.value.length == 4) 
				campo.value = campo.value + separacao3;
				if (campo.value.length == 9) 
				campo.value = campo.value + separacao4;
			} else {
				alert("Favor informar um número válido de celular.");
				event.returnValue = false;
			}
		} else {
			if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (14)) {
				if (campo.value.length == 0) 
				campo.value = campo.value + separacao1;
				if (campo.value.length == 3) 
				campo.value = campo.value + separacao2;
				if (campo.value.length == 4) 
				campo.value = campo.value + separacao3;
				if (campo.value.length == 9) 
				campo.value = campo.value + separacao4;
			} else {
				event.returnValue = false;
			}
		}
	}
	// Formato TL8 (telefone sem prefixo)	
	if (formato=='TL8')	{
		caracteres = '01234567890';
		separacao = '-';
		if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (9)) {
			if (campo.value.length == 4) 
			campo.value = campo.value + separacao;
		} else {
			event.returnValue = false;
		}
	}
	// Formato NUM
	if (formato=='NUM') {
		caracteres = '01234567890';
		if (!(caracteres.search(String.fromCharCode (keypress))!=-1)) {
			event.returnValue = false;
		}
	}
	// Formato CPF
	if (formato=='CPF')	{
		caracteres = '01234567890';
		separacoes = 3;
		separacao1 = '.';
		separacao2 = '-';
		if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (14)) {
			if (campo.value.length == 3) 
			campo.value = campo.value + separacao1;
		    if (campo.value.length == 7)
			campo.value = campo.value + separacao1;
		    if (campo.value.length == 11)
			campo.value = campo.value + separacao2;
			
		} else {
			event.returnValue = false;
		}
	}
	// Formato CNPJ
	//091.088.328/0006-71
	if (formato=='CNPJ')	{
		caracteres = '01234567890';
		separacoes = 4;
		separacao1 = '.';
		separacao2 = '/';
		separacao3 = '-';
		if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (19)) {
			if (campo.value.length == 3) 
			campo.value = campo.value + separacao1;
		    if (campo.value.length == 7)
			campo.value = campo.value + separacao1;
		    if (campo.value.length == 11)
			campo.value = campo.value + separacao2;
		    if (campo.value.length == 16)
			campo.value = campo.value + separacao3;			
			
		} else {
			event.returnValue = false;
		}
	}	
	// Formato IDENTIDADE
	if (formato=='RGI')	{
		caracteres = '01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ';
		separacoes = 3;
		separacao1 = '.';
		separacao2 = '-';
		if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (12)) {
			if (campo.value.length == 1) 
			campo.value = campo.value + separacao1;
		    if (campo.value.length == 5)
			campo.value = campo.value + separacao1;
		    if (campo.value.length == 9)
			campo.value = campo.value + separacao2;
		} else {
			event.returnValue = false;
		}
	}
}




//**************************************************************************************************
// FUNÇÕES ADICIONAIS
//**************************************************************************************************


		function BlockKeybord()
		{
			if((event.keyCode < 48) || (event.keyCode > 57))
			{
				event.returnValue = false;
			}
		}

		function troca(str,strsai,strentra)
		{
			while(str.indexOf(strsai)>-1)
			{
				str = str.replace(strsai,strentra);
			}
			return str;
		}
		
		function Formatasalario(campo,tammax,teclapres,caracter)
		{
			if(teclapres == null || teclapres == "undefined")
			{
				var tecla = -1;
			}
			else
			{
				var tecla = teclapres.keyCode;
			}

    		if(caracter == null || caracter == "undefined")
    		{
				caracter = ".";
    		}

    		vr = campo.value;
    		if(caracter != "")
    		{
				vr = troca(vr,caracter,"");
    		}
    		vr = troca(vr,"/","");
    		vr = troca(vr,",","");
    		vr = troca(vr,".","");

    		tam = vr.length;
    		if(tecla > 0)
    		{
				if(tam < tammax && tecla != 8)
				{
					tam = vr.length + 1;
				}
	    		
    			if(tecla == 8)
    			{
    				tam = tam - 1;
    			}
    		}
    		if(tecla == -1 || tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105)
    		{
    			if(tam <= 2)
    			{ 
					campo.value = vr;
				}
    	 		if((tam > 2) && (tam <= 5))
    	 		{
					campo.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam);
				}
    	 		if((tam >= 6) && (tam <= 8))
    	 		{
					campo.value = vr.substr(0, tam - 5) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
				}
    	 		if((tam >= 9) && (tam <= 11))
    	 		{
					campo.value = vr.substr(0, tam - 8) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
				}
    	 		if((tam >= 12) && (tam <= 14))
    	 		{
					campo.value = vr.substr(0, tam - 11) + caracter + vr.substr(tam - 11, 3) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
				}
    	 		if((tam >= 15) && (tam <= 17))
    	 		{
					campo.value = vr.substr(0, tam - 14) + caracter + vr.substr(tam - 14, 3) + caracter + vr.substr(tam - 11, 3) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
				}
    		}
		}
