//PARA USAR ESSA FUNÇÃO DEVE-SE COLOCAR COMO NO EXEMPLO:
//<input type="text" name="NOME" <%=TRAVADATA%>>
function valida_data(field){
var checkstr = "0123456789";
var DateField = field;
var Datevalue = "";
var DateTemp = "";
var seperator = "/";
var day;
var month;
var year;
var leap = 0;
var err = 0;
var i;
   err = 0;
   DateValue = DateField.value;
   dv=DateValue.split("/");
   if(dv.length==3)
   {
   if (dv[0].length<2)
   	 dv[0] = "0"+dv[0];
   if (dv[1].length<2)
   	 dv[1] = "0"+dv[1];
   if (dv[2].length<4)
   	 dv[2] = "20"+dv[2];
	 DateValue = dv[0]+"/"+dv[1]+"/"+dv[2];	 	 
   for (i = 0; i < DateValue.length; i++) {
	  if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
	     DateTemp = DateTemp + DateValue.substr(i,1);
	  }
   }
   DateValue = DateTemp;
   if (DateValue.length == 6) {
      DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); }
   if (DateValue.length != 8) {
      err = 19;}
   year = DateValue.substr(4,4);
   if (year == 0) {
      err = 20;
   }
   month = DateValue.substr(2,2);
   if ((month < 1) || (month > 12)) {
      err = 21;
   }
   day = DateValue.substr(0,2);
   if (day < 1) {
     err = 22;
   }
   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
      leap = 1;
   }
   if ((month == 2) && (leap == 1) && (day > 29)) {
      err = 23;
   }
   if ((month == 2) && (leap != 1) && (day > 28)) {
      err = 24;
   }
   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
      err = 25;
   }
   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
      err = 26;
   }
   if ((day == 0) && (month == 0) && (year == 00)) {
      err = 0; day = ""; month = ""; year = ""; seperator = "";
   }
   if (err == 0) {
      DateField.value = day + seperator + month + seperator + year;
   }
   else {
      alert("Data inválida! - "+err+" - "+DateValue);
      DateField.select();
	  DateField.value = "";
	  DateField.focus();
   }
   }else{DateField.value="";
	DateValue = "";
   }
}

function Travadata(val)
{
testt = event.keyCode;
//n = val.value.indexOf("/")
bbbaaa = val.value.split("/");
//alert(testt)
//alert (n)
if (bbbaaa.length >= 3)
{
mmn = bbbaaa[2];
if (mmn.length == 4)
event.keyCode = 0;
}
if (bbbaaa.length == 2)
{
mmn = bbbaaa[1];
if (mmn>12)
{
alert("Mês deve ser menor ou igual que 12");
val.value = bbbaaa[0]+"/";
event.keyCode = 0;
}else
if (mmn.length == 2)
event.keyCode = 47;
}
if (bbbaaa.length == 1)
{
mmn = bbbaaa[0];
if (mmn>31)
{
alert("Dia deve ser menor ou igual que 31");
val.value = "";
event.keyCode = 0;
}else
if (mmn.length == 2)
event.keyCode = 47;
}
if ((bbbaaa.length >= 3)&&(testt==47))
{
event.keyCode = 0;
}
	if (!(testt>=48 && testt<=57)&&(testt!=47)) //in[48,49,50,51,52,53,54,55,56,57,46])
		{
		 event.keyCode = 0;
		}
}
// <script src='../js/data.js'>
//  onKeyPress="Travadata(this)" onChange="valida_data(this)"