﻿function testaData(formData){
  var i;  
  valorData = formData.value;
  
  if ((barra1 = valorData.indexOf('/')) < 1){
	alert("Informe uma data válida.\n A data deve obedecer ao formato dd/mm/aaaa.");
	formData.focus();
	return false;
  }
  if ((barra2 = valorData.substring(barra1+1, valorData.length).indexOf('/')) < 1) {
	alert("Informe uma data válida.");
	formData.focus();
	return false;
  }
  if (barra2+barra1+1 != valorData.lastIndexOf('/')) {
	alert("Informe uma data válida.");
	formData.focus();
	return false;
  }
  dia = valorData.substring(0,barra1);
  mes = valorData.substring(barra1+1, barra2+barra1+1);
  ano = valorData.substring(barra2+barra1+2, valorData.length);
  var data = dia + mes + ano;
  for (i = 0; i < data.length; i++) {   
        var ch = data.charAt(i);
        if ((ch < "0" || ch > "9")) {
			alert("Informe uma data válida.");
			formData.focus();
  			return false;
  		}
  }
  if ((mes == 2) && (dia > diasFevereiro(ano))){
	alert("Informe uma data válida.");
	formData.focus();
  	return false;
  }
  if ((dia > diasMes[parseFloat(mes)]) || (dia<1) || (mes<1) || (mes>12) || (ano<1900) || (ano>2078)){
	alert("Informe uma data válida.");
	formData.focus();
  	return false;
  }
  return true;
}

var diasMes = new Array(12);
diasMes[1] = 31;
diasMes[2] = 29;
diasMes[3] = 31;
diasMes[4] = 30;
diasMes[5] = 31;
diasMes[6] = 30;
diasMes[7] = 31;
diasMes[8] = 31;
diasMes[9] = 30;
diasMes[10] = 31;
diasMes[11] = 30;
diasMes[12] = 31;

function diasFevereiro (ano) {  
    return ( ((ano % 4 == 0) && ( (!(ano % 100 == 0)) || (ano % 400 == 0) ) ) ? 29 : 28 );
}

function digitaData(Campo,teclapres) {

	// var tecla = window.event ? window.event.keyCode : e.which ;
	var tecla = teclapres.keyCode;
	var codigo = teclapres.keyChar;
	
	// if(tecla<48 && !window.event) return true;
	if(codigo < 48 || codigo == 8 || codigo == 9) return true;
	
	vr = Campo.value;
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	tam = vr.length + 1;
	
	if ( tecla != 9 && tecla != 8 )
	{
		if ( tam > 2 && tam < 5 )		
			Campo.value = vr.substr( 0, tam - 2  ) + '/' + vr.substr( tam - 2, tam );		
		if ( tam >= 5 && tam <=10  )
			Campo.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ); 
	}
	if(Campo.value.length > 9 && tecla != 9 && tecla != 8)
	    event.keyCode = 0;
}

function validDate(data) 
{
	var blnOk = false;
	try 
	{
	    var dia = data.substr(0, 2);
	    var mes = data.substr(3, 2);
	    var ano = data.substr(6, 4);
	    var dt = new Date(ano,mes,dia,0,0,0);
	    blnOk = true;
    }
    catch (e)
    {
    }
    return blnOk;
}
