//-----> somente números:
function v_NR(tecla){
	if(typeof(tecla) == 'undefined'){
		tecla = window.event;
	}
	// permite 8=backspace, 46=del, 9=tab e setas: 37 a 40
	var codigo = (tecla.which ? tecla.which : tecla.keyCode ? tecla.keyCode : tecla.charCode);
	if (codigo == 8 || codigo == 46 || codigo == 9 || codigo == 13 || (codigo >= 37 && codigo <= 40) || (codigo >= 48 && codigo <= 57) || (codigo >= 96 && codigo <= 105)){
		return true;
	} else {
		return false;
	}
}

//-----> máscara cpf: 000.000.000-00
function m_CPF(campo) {
	var vr = campo.value;
	vr = vr.replace( "-", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	var tam = vr.length;
	if (tam > 2 && tam < 6) {
		vr = vr.substr( 0, 3 ) + '.' + vr.substr(3);
	} else if(tam >= 6 && tam < 9){
		vr = vr.substr( 0, 3 ) + '.' + vr.substr( 3, 3) + '.' + vr.substr(6);
	} else if(tam >= 9 && tam <= 11){
		vr = vr.substr( 0, 3 ) + '.' + vr.substr( 3, 3) + '.' + vr.substr(6,3) + '-' + vr.substr(9);
	}
	campo.value = vr;
}

//-----> máscara cnpj: 000.000.000/0000-00
function m_CNPJ(campo) {
	var vr = campo.value;
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( "-", "" );
	var tam = vr.length;
	if (tam > 1 && tam < 5) {
		vr = vr.substr( 0, 2 ) + '.' + vr.substr(2);
	} else if(tam >= 5 && tam < 8){
		vr = vr.substr( 0, 2 ) + '.' + vr.substr( 2, 3) + '.' + vr.substr(5);
	} else if(tam >= 8 && tam < 12){
		vr = vr.substr( 0, 2 ) + '.' + vr.substr( 2, 3) + '.' + vr.substr(5,3) + '/' + vr.substr(8);
	} else if(tam >= 12){
		vr = vr.substr( 0, 2 ) + '.' + vr.substr( 2, 3) + '.' + vr.substr(5,3) + '/' + vr.substr(8,4) + '-' + vr.substr(12,2);
	}
	campo.value = vr;
}

//-----> máscara cep: 00000-000
function m_CEP(campo) {
	var vr = campo.value;
	vr = vr.replace( "-", "" );
	var tam = vr.length;
	if(tam > 4) {
		vr = vr.substr( 0, 5) + '-' + vr.substr(5);
	}
	campo.value = vr;
}

//-----> máscara telefone: (00)000-0000 e (00)0000-0000
function m_TEL(campo) {
	var vr = campo.value;
	vr = vr.replace( "-", "" );
	vr = vr.replace( "(", "" );
	vr = vr.replace( ")", "" );
	var tam = vr.length;
	if(tam < 2){
		vr = '(' + vr;
	} else if(tam >= 2 && tam < 5){
		vr = '(' + vr.substr(0, 2) + ')' + vr.substr(2);
	} else if(tam >= 5 && tam < 9){
		vr = '(' + vr.substr(0, 2) + ')' + vr.substr(2,3) + '-' + vr.substr(5);
	} else if(tam >= 9){
		vr = '(' + vr.substr(0, 2) + ')' + vr.substr(2,4) + '-' + vr.substr(6);
	}
	campo.value = vr;
}

//-----> máscara data: 00/00/0000
function m_DATA(campo,tipo,tecla) {
	if(typeof(tecla) == 'undefined'){
		tecla = window.event;
	}
	var codigo = (tecla.which ? tecla.which : tecla.keyCode ? tecla.keyCode : tecla.charCode);
	if(codigo != 8){
		var limites = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
		var bis = new Array(1900,1904,1908,1912,1916,1920,1924,1928,1932,1936,1940,1944,1948,1952,1956,1960,1964,1968,1972,1976,1980,1984,1988,1992,1996,2000,2004,2008,2012,2016,2020,2024,2028,2032,2046,2050);
		var vr = campo.value;
		vr = vr.replace( "/", "" );
		vr = vr.replace( "/", "" );
		var tam = vr.length;
		if (tam > 1) {
			if(tam < 4 || tipo == 1){
				var parte1 = "";
				var parte2 = vr.substr(0, 2);
				var parte3 = vr.substr(2);
			} else {
				var parte1 = vr.substr(0, 2);
				var parte2 = vr.substr(2, 2);
				var parte3 = vr.substr(4);
			}
			if(parte3.length == 4){
				if(Number(parte3) > 2050){
					parte3 = "2050";
				} else if(Number(parte3) < 1901){
					parte3 = "1901";
				}
			}
			if(parte2.length == 2 && tam > 4){
				if(Number(parte2) > 12){
					parte2 = "12";
				} else if(Number(parte2) < 1){
					parte2 = "01";
				}
			}
			if(tipo != 1 && parte1.length == 2){
				var aux = limites[Number(parte2)-1];
				if(Number(parte1) > aux){
					if(Number(parte2) != 2){
						parte1 = aux;
					} else if(parte3.length == 4){
						for(var i = 0; i < bis.length; i++){
							if(bis[i] == parte3){
								parte1 = '29';
								break;
							} else if(i == bis.length-1){
								parte1 = '28';
							}
						}					
					}
				} else if(Number(parte1) < 1){
					parte1 = "01";
				}
			}
			vr = parte2 + '/' + parte3;
			if(tipo != 1 && tam >= 4){
				vr = parte1 + '/' + vr;
			}
		}
		campo.value = vr;
	}
}

/**
 *
 * Implementa uma mascara no formato xx:xx:xx nos campo de hora
 * @param obj o campo propriamente dito
 * @param evt o evento disparado pelas teclas pressionadas 
 * Uso: onkeyup="return mascaraHora(this,event);"
 *
 */

function mascaraHora(obj,evt){
	if((evt.keyCode > 95 && evt.keyCode < 106) || (evt.keyCode > 47 && evt.keyCode < 59)){
		if(obj.value.length == 2){ obj.value = obj.value+':'; }
		if(obj.value.length == 5){ obj.value = obj.value+':'; }
	}
}
