
Mascaras = function()
{

	/**  
	 * Method  getClassName 
	 * @param  String str
	 * @return String strEncode
	 * @desc: Uso:
			  onkeypress="return MaskCPF(this, event)"
			  onkeypress="return MaskTelefone(this, event)"
			  Testado no IE 5.5+ e Firefox 1.0+
	 */	
	this.Mascara = function(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;
	}
	
	
	this.MaskCEP = function(objeto, evt) {
		return this.Mascara(objeto, evt, '##.###-###');
	}
	
	this.MaskTel = function(objeto, evt) {
		return this.Mascara(objeto, evt, '(##) ####-####');
	}
	
	this.MaskCPF = function(objeto, evt) {
		return this.Mascara(objeto, evt, '###.###.###-##');
	}
	
	this.MaskCNPJ = function(objeto, evt) {
		return this.Mascara(objeto, evt, '##.###.###/####-##');
	}
	
	this.MaskPlacaCarro = function(objeto, evt) {
		return this.Mascara(objeto, evt, 'AAA-####');
	}
	
	this.MaskValorReal = function(objeto, evt) {
		return this.Mascara(objeto, evt, '###.###,##');
	}
	
	this.MaskData = function(objeto, evt) {
		return this.Mascara(objeto, evt, '##/##/####');
	}
	
	this.defineCpfCnpj = function(objeto, evt)
	{
		var tamanho = objeto.value.length;
		
		if(tamanho <= 14)
			return this.Mascara(objeto, evt, '###.###.###-##');
		else if(tamanho > 14)
			return this.Mascara(objeto, evt, '##.###.###/####-##');
	}
	
	
	
	
	
	
	<!-- Autor: Francisco C Paulino - Tofinha (fcptofinha@globo.com) -->
	<!-- Data: 08/11/2002 - 11:55hs -->
	<!-- Script que formata Valores em reais ao digitar -->
	
	<!-- Início da Função FormataReais -->
	this.FormataReais = function(fld, milSep, decSep, e) 
	{
		var sep = 0;
		var key = '';
		var i = j = 0;
		var len = len2 = 0;
		var strCheck = '0123456789';
		var aux = aux2 = '';
		
		var whichCode = (window.Event) ? e.which : e.keyCode;
		
		if (whichCode == 13) return true;
		key = String.fromCharCode(whichCode);// Valor para o código da Chave
		if (strCheck.indexOf(key) == -1) return false; // Chave inválida
		len = fld.value.length;
		for(i = 0; i < len; i++)
		if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
		aux = '';
		for(; i < len; i++)
		if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
		aux += key;
		
		len = aux.length;
		if (len == 0) fld.value = '';
		if (len == 1) fld.value = '0'+ decSep + '0' + aux;
		if (len == 2) fld.value = '0'+ decSep + aux;
		if (len > 2) {
		aux2 = '';
		
		for (j = 0, i = len - 3; i >= 0; i--) {
		if (j == 3) {
		aux2 += milSep;
		j = 0;
		}
		aux2 += aux.charAt(i);
		j++;
		}
		
		fld.value = '';
		len2 = aux2.length;
		for (i = len2 - 1; i >= 0; i--)
		fld.value += aux2.charAt(i);
		fld.value += decSep + aux.substr(len - 2, len);
		}
		
		return false;
	}

};	