var corOk = "#9CB5DE";
var corErro = "#f00";
var imgOk = "imagens/ok.gif";
var imgErro = "imagens/atencao.gif";
var mascCpf = /^\d{1,3}\.\d{1,3}\.\d{1,3}\-\d{1,2}$/;
var mascData = /^\d{1,2}\/\d{1,2}\/\d{1,4}$/;
var mascTel = /^\d{1,2}\-\d{1,4}\-\d{1,4}$/;
var mascCep = /^\d{1,5}\-\d{1,3}$/;
var classes = new Array("cpf", "data", "telefone", "cep");
var str = new Array(mascCpf, mascData, mascTel, mascCep);
var mascaras = new Array("###.###.###-##", "##/##/####", "##-####-####", "#####-###");
function gT(tag) {
	return document.getElementsByTagName(tag);
}
function gE(id) {
	return document.getElementById(id);
}
function mascara(idCampo, mascara) {
	var i = gE(idCampo).value.length;
	var saida = mascara.substring(0, 1);
	var texto = mascara.substring(i);
	texto.substring(0, 1) != saida ? gE(idCampo).value += texto.substring(0, 1) : "";	
}
function aplicaMascara(idCampo) {
	for (var i = 0; i < classes.length; i++) {
		if (gE(idCampo).className == classes[i]) {
			mascara(idCampo, mascaras[i]);
		} 
	}		
}
function sinalizaCampo(idCampo, borda, imagem, visivel) {
	var img = gE(idCampo).parentNode.getElementsByTagName("img")[0];
	var sp = gE(idCampo).parentNode.getElementsByTagName("span")[0];
	gE(idCampo).style.borderColor = borda;
	img ? img.src = imagem : "";
	sp ? sp.style.display = visivel : "";
}
function verificaVazio(idCampo) {
	gE(idCampo).value == "" ? sinalizaCampo(idCampo, corErro, imgErro, "block") : sinalizaCampo(idCampo, corOk, imgOk, "none");	
}
function verificaMascara(idCampo) {
	for (var i = 0; i < classes.length; i++) {
		if (gE(idCampo).className == classes[i]) {
			!str[i].test(gE(idCampo).value) ? sinalizaCampo(idCampo, corErro, imgErro, "block") : sinalizaCampo(idCampo, corOk, imgOk, "none");
		}
	}	
}
function validaCampo(idCampo) {
	!gE(idCampo).className ? verificaVazio(idCampo) : verificaMascara(idCampo);	
}
function tratarCampos(tag) {
	t = gT(tag);
	for (var i = 0; i < t.length; i++) {
		t[i].onblur = function() {
			if (this.parentNode.getElementsByTagName("span")[0]) {
				validaCampo(this.id);
			}
															
		}
		t[i].onkeyup = function() {
			aplicaMascara(this.id);
		}
	}
}
function validarDeficiencia() {
	gE("descricaoDeficiencia").onblur = function() {
		if (gE("deficiencia").value == "Sim" && this.value == "") {
			sinalizaCampo(this.id, corErro, imgErro, "block");			
		} else {
			sinalizaCampo(this.id, corOk, "imagens/vazio.gif", "none")
		}
	}
}
function mascaraDataLivre() {
	dataLivre = new Array("ultimaEntrada", "ultimaSaida", "penultimaEntrada", "penultimaSaida", "antepenultimaEntrada", "antepenultimaSaida");
	for (var i = 0; i < dataLivre.length; i++) {		
		gE(dataLivre[i]).onkeyup = function() {
			mascara(this.id, "##/##/####");
		}
	}
}
window.onload = function() {	
	tratarCampos("input");
	tratarCampos("select");	
	mascaraDataLivre();	
}

