function fMascara(vFormato, vEvento, obj_nome){
	// exemplo de chama da função: onvCaracter="fMascara('numero', event, this)"
 	campo = eval(obj_nome);
 
 	if (vFormato == 'numero')   vConteudo = '1234567890';
 	else if (vFormato == 'letra')  vConteudo = 'abcdefghijklmnopqrstuvwyxzABCDEFGHIJKLMNOPQRSTUVXWYZ ';
 	else if (vFormato == 'texto')  vConteudo = 'abcdefghijklmnopqrstuvwyxzABCDEFGHIJKLMNOPQRSTUVXWYZ1234567890_-.,@/ ';
 	else if (vFormato == 'email')  vConteudo = 'abcdefghijklmnopqrstuvwyxz1234567890_.@';
 	else if (vFormato == 'perc')  vConteudo = '1234567890,';
 	else if (vFormato == 'data')  vConteudo = '1234567890/';
 	else if (vFormato == 'telefone') vConteudo = '1234567890() ';
	else if (vFormato == 'cep') vConteudo = "1234567890/";
 
 	vKey = window.event ? vEvento.keyCode : vEvento.which;
 
 	vOK = 0;
 	for (i=0; i < vConteudo.length; i++){
  		if (vKey == vConteudo.charCodeAt(i)){
   			vOK = 1;
   			break;
  		}
 	}
 
 	if ((vKey == 8) || (vKey == 0)) vOK = 1; // backspace and delete key
 
 	if (vOK == 0){
  		if (navigator.appVersion.indexOf("MSIE")!=-1) vEvento.returnValue=false;
  			else vEvento.preventDefault();
 	}
 
    if (vKey == 8 || vKey == 9 || vKey == 13 || vKey == 46) {
		return true;// verifica se foi pressionada enter(13), delete(46), backspace(8), tab(9)
	}
	if ((vFormato == 'data') && (vOK == 1)){ 
  		if (obj_nome.value.length == 2 || obj_nome.value.length == 5) {
   			obj_nome.value = obj_nome.value + "/";
  		}
 	}
	if ((vFormato == 'cep') && (vOK == 1)){ 
  		if (obj_nome.value.length == 5) {
   			obj_nome.value = obj_nome.value + "-";
  		}
 	}
 
 	if ((vFormato == 'telefone') && (vOK == 1) && (vKey != 8) && (vKey != 0)){
  		if ((obj_nome.value.length == 0) && (vKey != vConteudo.charCodeAt(10)))
   			obj_nome.value = '('+obj_nome.value;
  		if ((obj_nome.value.length == 3) && (vKey != vConteudo.charCodeAt(11)))
   			obj_nome.value = obj_nome.value+') ';
 	}
}

