function Mascara(objeto, evt, mask) 
	{
	var LetrasU = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
	var LetrasL = 'abcdefghijklmnopqrstuvwxyz';
	var Letras  = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
	var Numeros = '0123456789';
	var Fixos  = '().-:/ '; 
	var Charset = " !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_/`abcdefghijklmnopqrstuvwxyz{|}~";

	evt = (evt) ? evt : (window.event) ? window.event : "";
	var value = objeto.value;
	if (evt) 
		{
		var ntecla = (evt.which) ? evt.which : evt.keyCode;
		tecla = Charset.substr(ntecla - 32, 1);
		if (ntecla < 32) 
		 	return true;

		var tamanho = value.length;
		if (tamanho >= mask.length) 
			return false;

		var pos = mask.substr(tamanho,1); 
 		while (Fixos.indexOf(pos) != -1) 
			{
			value += pos;
			tamanho = value.length;
			if (tamanho >= mask.length) 
				return false;
			pos = mask.substr(tamanho,1);
			}

		 switch (pos) 
		 	{
		   	case '#' : if (Numeros.indexOf(tecla) == -1) return false; break;
		   	case 'A' : if (LetrasU.indexOf(tecla) == -1) return false; break;
		   	case 'a' : if (LetrasL.indexOf(tecla) == -1) return false; break;
		   	case 'Z' : if (Letras.indexOf(tecla) == -1) return false; break;
		   	case '*' : objeto.value = value; return true; break;
		   	default : return false; break;
		 	}
		}
	objeto.value = value; 
	return true;
	}

/*
"#" - Numeros
"A" - Letras UpperCase
"a" - Letras LowerCase
"Z" - Letras
"*" - Qualquer Caracter
"/", ".", "-", " ", ":" - Caracteres Fixos
onkeypress="return MaskCPF(this, event)" 
onkeypress="return MaskTelefone(this, event)" 
*/

function MascaraCEP(objeto, evt) 
	{ 
	return Mascara(objeto, evt, '##.###-###');
	}

function MascaraTelefone(objeto, evt) 
	{ 
	return Mascara(objeto, evt, '(##) ####-####');
	}

function MascaraCPF(objeto, evt) 
	{ 
	return Mascara(objeto, evt, '###.###.###-##');
	}

function MascaraCNPJ(objeto, evt) 
	{ 
	return Mascara(objeto, evt, '##.###.###/####-##');
	}

function MascaraInsEst(objeto, evt) 
	{ 
	return Mascara(objeto, evt, '###.###.###.###');
	}

function MascaraData(objeto, evt) 
	{ 
	return Mascara(objeto, evt, '##/##/####');
	}

function MascaraHora(objeto, evt) 
	{ 
	return Mascara(objeto, evt, '##:##');
	}

function MascaraValidadeCartao(objeto, evt) 
	{ 
	return Mascara(objeto, evt, '##/####');
	}
	
function ValidarMoeda(e)
	{
	if (document.all)
		var tecla = event.keyCode;
	else 
	if(document.layers)
		var tecla = e.which;
	if ((tecla > 47 && tecla < 58)||(tecla==44))
		return true;
	else
		{
		if (tecla != 8)
			event.keyCode = 0;
		else
			return true;
		}
	}

function ValidarNumeros(e)
	{
	if (document.all)
		var tecla = event.keyCode;
	else 
	if(document.layers)
		var tecla = e.which;
	if ((tecla > 47 && tecla < 58))
		return true;
	else
		{
		if (tecla != 8)
			event.keyCode = 0;
		else
			return true;
		}
	}

function ValidarCNPJ(CNPJ) 
	{
	erro = new String;
	if (CNPJ.length < 18) erro += "E' necessarios preencher corretamente o numero do CNPJ! \n\n";
	if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-"))
		{
		if (erro.length == 0) 
			erro += "E' necessarios preencher corretamente o numero do CNPJ! \n\n";
		}
	if(document.layers && parseInt(navigator.appVersion) == 4)
		{
		x = CNPJ.substring(0,2);
		x += CNPJ.substring(3,6);
		x += CNPJ.substring(7,10);
		x += CNPJ.substring(11,15);
		x += CNPJ.substring(16,18);
		CNPJ = x;	
		} 
	else 
		{
		CNPJ = CNPJ.replace(".","");
		CNPJ = CNPJ.replace(".","");
		CNPJ = CNPJ.replace("-","");
		CNPJ = CNPJ.replace("/","");
		}
	var nonNumbers = /\D/;
	if (nonNumbers.test(CNPJ)) 
		erro += "A verificacao de CNPJ suporta apenas numeros! \n\n";	
	var a = [];
	var b = new Number;
	var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
	for (i=0; i<12; i++)
		{
		a[i] = CNPJ.charAt(i);
		b += a[i] * c[i+1];
		}
	if ((x = b % 11) < 2) 
		{ 
		a[12] = 0 
		} 
	else 
		{ 
		a[12] = 11-x 
		}
	b = 0;
	for (y=0; y<13; y++) 
		{
		b += (a[y] * c[y]); 
		}
	if ((x = b % 11) < 2) 
		{ 
		a[13] = 0; 
		} 
	else 
		{ 
		a[13] = 11-x; 
		}
	if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13]))
		{
		erro +="Digito verificador com problema!";
		}
	if (erro.length > 0)
		{
		//alert(erro);
		return false;
		} 
	return true;
	}
	
function ValidarCPF(cpf)
	{
	var i;
	
	cpf = cpf.replace(".", ""); 
	cpf = cpf.replace(".", ""); 
	cpf = cpf.replace("/", ""); 
	cpf = cpf.replace("-", ""); 
	
	var c = cpf.substr(0,9); 
	var dv = cpf.substr(9,2);
	 
	if ((cpf == "00000000000")||(cpf == "11111111111")||(cpf == "22222222222")||(cpf == "33333333333")||(cpf == "44444444444")||(cpf == "55555555555")||(cpf == "66666666666")||(cpf == "77777777777")||(cpf == "88888888888")||(cpf == "99999999999"))
		return false;
	  
	var d1 = 0; 
	for (i = 0; i < 9; i++) 
	{ 
	d1 += c.charAt(i)*(10-i); 
	} 
	d1 = 11 - (d1 % 11); 
	if (d1 > 9) d1 = 0; d2 = d1 * 2; 
	   for (i = 0; i < 9; i++) 
		 { 
		 d2 += c.charAt(i)*(11-i); 
		 } d2 = 11 - (d2 % 11); 
	if (d2 > 9) d2 = 0; 
		if (dv.charAt(0) != d1 || dv.charAt(1) != d2) 
		  { 
		  return false; 
		  } 
	return true; 
	}
