function coloca_mascara(objCampo, mascara) {
	switch(mascara) {
		//000.000.000-00
		case 'cpf':
			objCampo.value = somente_numero(objCampo.value);
			pri = objCampo.value.substring(0,3);
			seg = objCampo.value.substring(3,6);
			ter = objCampo.value.substring(6,9);
			qua = objCampo.value.substring(9,11);
						
			objCampo.value = pri+
			((seg!='') ? '.'+seg : '')+
			((ter!='') ? '.'+ter : '')+
			((qua!='') ? '-'+qua : '');
		break;

		//00.000.000/0000-00
		case 'cnpj':
			objCampo.value = somente_numero(objCampo.value);
			pri = objCampo.value.substring(0,2);
			seg = objCampo.value.substring(2,5);
			ter = objCampo.value.substring(5,8);
			qua = objCampo.value.substring(8,12);
			qui = objCampo.value.substring(12,14);
			
			objCampo.value = pri+
			((seg!='') ? '.'+seg : '')+
			((ter!='') ? '.'+ter : '')+
			((qua!='') ? '/'+qua : '')+
			((qui!='') ? '-'+qui : '');
		break;
		
		//00-0000.0000
		case 'telefone':
			objCampo.value = somente_numero(objCampo.value);
				
			pri = objCampo.value.substring(0,2);
			seg = objCampo.value.substring(2,6);
			ter = objCampo.value.substring(6,10);
			
			objCampo.value = pri+((pri.length!=2) ? '' : '-')+
			((seg!='') ? seg : '')+
			((ter!='') ? '.'+ter : '');
		break;

		//00000-000
		case 'cep':
			objCampo.value = somente_numero(objCampo.value);
			
			pri = objCampo.value.substring(0,5);
			seg = objCampo.value.substring(5,8);
						
			objCampo.value = pri+
			((seg!='') ? '-'+seg : '');
		break;

		//000/0000000
		case 'ie':
			objCampo.value = somente_numero(objCampo.value);
			
			pri = objCampo.value.substring(0,3);
			seg = objCampo.value.substring(3,10);
						
			objCampo.value = pri+
			((seg!='') ? '/'+seg : '');
		break;

		//00/00/0000
		case 'data':
			objCampo.value = somente_numero(objCampo.value);
			
			pri = objCampo.value.substring(0,2);
			seg = objCampo.value.substring(2,4);
			ter = objCampo.value.substring(4,8);
			
			objCampo.value = pri+
			((seg!='') ? '/'+seg : '')+
			((ter!='') ? '/'+ter : '');
		break;
		
		//00/0000
		case 'venc_cartao':
			objCampo.value = somente_numero(objCampo.value);
			
			pri = objCampo.value.substring(0,2);
			seg = objCampo.value.substring(2,6);
			
			objCampo.value = pri+
			((seg!='') ? '/'+seg : '')
		break;

		//0000 0000 0000 0000
		case 'cartao':
			objCampo.value = somente_numero(objCampo.value);
			
			pri = objCampo.value.substring(0,4);
			seg = objCampo.value.substring(4,8);
			ter = objCampo.value.substring(8,12);
			qua = objCampo.value.substring(12,16);
			
			objCampo.value = pri+
			((seg!='') ? '-'+seg : '')+
			((ter!='') ? '-'+ter : '')+
			((qua!='') ? '-'+qua : '');
		break;

		case 'numero':
			objCampo.value = somente_numero(objCampo.value);		
		break;
		
		case 'letra':
			objCampo.value = somente_letras(objCampo.value);
		break;

		//1.000.000.000.000,00
		case 'moeda':
			len = 20
			cur = objCampo
			n   = '0123456789';
			d   = objCampo.value;
			l   = d.length;
			r   = '';
			
			if (l > 0) {
				z = d.substr(0,l);
				s = '';
				a = 0;
				
				for (i=0; i < l; i++) {
					c = d.charAt(i);
					if (n.indexOf(c) > a) {
						a  = -1;
						s += c;
					};
				};
				l = s.length;
				t = len - 1;
				if (l > t) {
					l = t;
					s = s.substr(0,t);
				}
				if (l > 2) {
					r = s.substr(0,l-2)+','+s.substr(l-2,2);
				} else {
					if (l == 2) {
						r='0,'+s;
					} else {
						if (l == 1) {
							r = '0,0'+s;
						}
					}
				}
				if (r == '') {
					r = '0,00';
				} else {
					l=r.length;
					if (l > 6) {
						j  = l%3;
						w  = r.substr(0,j);
						wa = r.substr(j,l-j-6);
						wb = r.substr(l-6,6);
						if (j > 0) {
							w+='.';
						};
						k = (l-j)/3-2;
						for (i=0; i < k; i++) {
							w += wa.substr(i*3,3)+'.';
						};
						r = w + wb;
					}
				}
			}
			if (cur.value.length == len || cur.value.length > len) {
				cur.value = cur.value.substring(0 ,len);
				return false;
			} else {
				if (r.length <= len) {
					cur.value = r;
				} else {
					cur.value = z;
				};
			}
		break;
	}
}


function valida_tecla(evento) {
	var BACKSPACE = 8; 
	var DEL = 46; 
	var FRENTE = 39; 
	var TRAS = 37; 
	var tecla = (evento.keyCode ? evento.keyCode: evento.which ? evento.which : evento.charCode);
	
	if((tecla == BACKSPACE ) || (tecla == DEL) || (tecla == FRENTE) || (tecla == TRAS))
		return false; 
	if(tecla == 13)
		return false; 
	if((tecla < 48) || (tecla > 57))
		return false;
		
	return true;
}

function somente_numero(numero) {
	var validos = "0123456789";
	var numero_ok = '';
	
	for(i = 0; i < numero.length; i++) {
		if(validos.indexOf(numero.substr(i,1)) != -1) {
			numero_ok += numero.substr(i,1);
		}
	}
	return numero_ok;
}

function somente_letras(letra) {
	var validos  = "_abcdefghijklmnopkrstuvxzywçáéíóúãõçABCDEFGHIJKLMNOPQRSTUVXZWYÁÉÍÓÚÃÕÇ ";
	var letra_ok = '';
	
	for(i = 0; i < letra.length; i++) {
		if(validos.indexOf(letra.substr(i,1)) != -1) {
			letra_ok += letra.substr(i,1);
		}
	}
	return letra_ok;
}


function FormatarCampo(objCampo, strMascara, e) {
	try {
	var intDigito = null;
	if (navigator.appName.indexOf('Microsoft') != -1){
		intDigito = window.event.keyCode;
	} else {
		intDigito = e.which;
	}
	
	if((intDigito < 48) | (intDigito > 57)) {
        if (navigator.appName.indexOf('Microsoft') != -1){
			window.event.keyCode = 0;
		} else {
			objCampo.keydown = 0;
		}
    }
	
	

	// Expressão regular para validação de caractere dígitado.
	// São aceitos apenas números entre "0-9", são feitos dois testes pois existem "dois teclados numéricos" e seus caracteres ASCII são diferentes.
	var objER = /^(4[8-9]|5[0-7]|9[6-9]|10[0-5])$/;

	if(objER.test(intDigito)) {
		var intTamanho   = objCampo.value.length;
		var strCaractere = strMascara.charAt(0);
		var strMascara   = strMascara.substring(intTamanho)

		if (strMascara.charAt(0) != strCaractere)
			objCampo.value += strMascara.charAt(0);
	}
	} catch(e) {
		alert(e);
	}
}


function sem_letras() {
    if((window.event.keyCode < 48) | (window.event.keyCode > 57)) {
        window.event.keyCode = 0;
    }
}
