
	//VALIDAÇÃO/FORMATAÇÃO DE DATA
	function validaData(data){
		valor = data.value;
		if (valor.length == 0) return true;
		var ardt=new Array;
		var ExpReg=new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}");
		ardt=valor.split("/");
		erro=false;
		if (valor.search(ExpReg)==-1){
			erro = true;
		} else if (((ardt[1]==4)||(ardt[1]==6)||(ardt[1]==9)||(ardt[1]==11))&&(ardt[0]>30)) {
			erro = true;
		} else if ( ardt[1]==2) {
			if ((ardt[0]>28)&&((ardt[2]%4)!=0))
				erro = true;
			if ((ardt[0]>29)&&((ardt[2]%4)==0))
				erro = true;
		}
		if (erro) {
			alert("\"" + valor + "\" não é uma data válida!!!");
			data.focus();
			data.value = "";
			return false;
		}
		return true;
		
	}
	
	function validaDataOld(data){				
		valorData = data.value;
		var formatoValido = '/^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/';
		var valido = false;
		if (valorData.length > 0){
			if (1 == 1){
				alert(valorData);
				if(!formatoValido.test(data.value)){
				  alert("A data está no formato errado. Por favor corrija.");
				  alert('sdfs');
				}
			}else{
			  var dia = data.value.split("/")[0];
			  var mes = data.value.split("/")[1];
			  var ano = data.value.split("/")[2];
			  var MyData = new Date(ano, mes - 1, dia);
			  if((MyData.getMonth() + 1 != mes)||
				 (MyData.getDate() != dia)||
				 (MyData.getFullYear() != ano)){
				alert("Valores inválidos para o dia, mês ou ano. Por favor corrija.");
			  } else {
				valido = true;
			  }
			}
			if(valido == false){
			  data.focus();
			  //data.click();
			  data.select();
			}
		}
		if (valido.length > 10) valido='';
		return valido;
  }

	//onKeyup="formataData(this.value,this.name,this.form.name)" onblur="validaData(this)"
	function formataData(data,e) {
		value = data.value;		
		tecla = e.keyCode;
		var vl='';
		
		//Retira as barras do valor atual
		valorAtual = value.replace('/','');
		valorAtual = valorAtual.replace('/','');
		valorAtual = valorAtual.replace('/','');
		tam = valorAtual.length;
		if (tecla == 32){
			//O USUÁRIO PRESSIONOU BARRA DE ESPAÇO. IGNORAR
		} else if (tecla != 8 && tecla != 37 && tecla != 39){
			if (tam > 2 && tam <= 10){
				arrChar = valorAtual.split('');
				for(i=1;i<=tam;i++){
					char = arrChar[i-1];
					//alert(char);
					vl += char;
					if (i > 1 && i <=4 && i%2 == 0) {
						//alert(vl);
						vl += '/'; 
					}
				}
				data.value = vl;
			}
		} else {
			//O USUÁRIO PRESSIOU A TECLA BACKSPACE	
		}
		/*
		tecla = e.keyCode;
		//alert(tecla);
		vr_atual = "";
		tam_atual = 0;
		tam_antigo = 0;
		value = data.value;

		//Retira as barras do valor atual
		valorAtual = value.replace('/','');
		valorAtual = valorAtual.replace('/','');
		valorAtual = valorAtual.replace('/','');

		//alert(valorAtual);
		tam = valorAtual.length;
		var vl='';
		if (tecla != 8 && tecla != 37 && tecla != 39){
			if (tam > 2){
				for(i=1;i<=tam;i++){
					char = valorAtual[i-1];
					vl += char;
					if (i > 1 && i <=4 && i%2 == 0) {
						//alert(vl);
						vl += '/'; 
					}
				}
				data.value = vl;
			}
		} else {
			//O USUÁRIO PRESSIOU A TECLA BACKSPACE	
		}
		*/
		
		
		/*
		//var tecla = window.event.keyCode;
		//tecla = String.fromCharCode(tecla);
		//alert(tecla);
		vr_atual = data.value;
		tecla = vr_atual.substring(vr_atual.length-1,vr_atual.length);
		//alert(tecla);
		if (!isNaN(parseInt(tecla))){				
			tam_atual = vr_atual.length;		
			tam_antigo = vr_antigo.length;
			if ((tam_atual == 2 || tam_atual == 5) && tam_antigo < tam_atual) {
				data.value = vr_atual + '/';
			}
		} else {
			//Não aceita valores diferentes de número
			vr_atual = vr_atual.substring(0,vr_atual.length-1);
			if (isNaN(parseInt(vr_atual))) vr_atual = '';
			data.value = vr_atual;
		}		
		vr_antigo = vr_atual;
		*/
	}	
	
	function vld_data(valor,campo,form) {
		vr_atual = "";
		erro = "";
		tam = 0;
		vr = eval("document."+form+"."+campo+".value");
		tam = eval("document."+form+"."+campo+".value.length");		
		if (tam != 10 && tam != 0) {
			alert("Atenção!\nA data deve estar no formato dd/mm/aaaa.");
			eval("document."+form+"."+campo+".focus()");
			eval("document."+form+"."+campo+".select()");
		} else if (tam == 10 && tam != 0){
			dia = vr.substring(0,2);
			mes = vr.substring(3,5);
			ano = vr.substring(7,10)
			ano_ref = new Date();
			if (isNaN(dia)) erro += "\nO dia deve ser um número."
			if (isNaN(mes)) erro += "\nO mês deve ser um número de 01 a 12."
			if (isNaN(ano)) erro += "\nO ano deve ser um número válido de quatro dígitos."
			mes = (mes * 10) /10
			//alert(mes)
			if (!isNaN(mes) && (parseInt(mes) > 0 && parseInt(mes) <= 12)) {
				verifica_mes(mes,ano);
				if (parseInt(ultimo_dia) == 0 || parseInt(dia) > ultimo_dia) {
					erro += "\nO dia do mês deve ser um valor válido para o mês atual.";
				}
			} else {
				//alert(parseInt(mes))
				erro += "\nO mês deve estar dentro de um intervalo válido (01 a 12)."		
			}
		}
		if (erro != "") {
			alert("Atenção!!" + erro);
			eval("document."+form+"."+campo+".focus()");
			eval("document."+form+"."+campo+".select()");			
		}
	}		
	
	function verifica_mes(mes,ano){
		ultimo_dia = 0;
		switch (parseInt(mes)) {
			case 1 :
			case 3 :
			case 5 :
			case 7 :
			case 8 :
			case 10 :
			case 12 :			
				ultimo_dia = 31;
				break;
			case 4 :
			case 6 :
			case 9 :
			case 11 :									
				ultimo_dia = 30;
				break;
			case 2 :
				ultimo_dia = 28;
				
				if (ano % 4 == 0) {
					ultimo_dia = 29;
				} else {
					ultimo_dia = 28;
				}
				if ((ano % 100 == 0) && (ano % 400 != 0)) {
					ultimo_dia = 28;
				}				
				break;
			default :
				ultimo_dia = 0;
				break;
		}
	}

