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 validacaoreal(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 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 true;
		} 
	return false;
	}