function vDate(wDATA,wBlank,wFmsg,wMsg,wVis) {
  var Mesi = new Array(13);
  Mesi[1] = 31;
  Mesi[2] = 28;
  Mesi[3] = 31;
  Mesi[4] = 30;
  Mesi[5] = 31;
  Mesi[6] = 30;
  Mesi[7] = 31;
  Mesi[8] = 31;
  Mesi[9] = 30;
  Mesi[10] = 31;
  Mesi[11] = 30;
  Mesi[12] = 31;

  gg = new String();
  mm = new String();
  aaaa = new String();

  if (!wMsg) {
    wMsg="Data non valida!";
  }

  if (!wDATA.value && wBlank) {
      return true;
  }

  var reg=/^(0[1-9]|[1-2][0-9]|3[0-1])[\/.\\\- ]?(0[1-9]|1[0-2])[\/.\\\- ]?(\d{2}|19\d\d|20\d\d)$/;

 if(wDATA.value.length<=10) {
        arrA=wDATA.value.match(reg);
        wTM="";
 }
 else {
        datetm=wDATA.value.split(" ");
        arrA=datetm[0].match(reg);
        wTM=datetm[1];
 }

if (!arrA) {
     if(wFmsg)
        window.alert(wMsg);
    wDATA.focus();
    return false;
 }
 gg.value=arrA[1];
 mm.value=arrA[2];
 aaaa.value=arrA[3];

 if (aaaa.value.length == 2) {
    if (aaaa.value < 70) {
        aaaa.value = "20" + aaaa.value;
    }
    else {
       aaaa.value= "19" + aaaa.value;
    }
 }


 igg=parseInt(gg.value,10);
 imm=parseInt(mm.value, 10);
 iaaaa=parseInt(aaaa.value, 10);

 if (AaBis(iaaaa)) {
   Mesi[2]=Mesi[2]+1;
 }
 if (igg < 1 || igg > Mesi[imm]) {
   if (wFmsg)
     window.alert(wMsg);
   wDATA.focus();

   return false;
 }
 if (wVis) {
    if(wTM) {
      wDATA.value=gg.value+"/"+mm.value+"/"+aaaa.value+" "+wTM;
    }
    else {
      wDATA.value=gg.value+"/"+mm.value+"/"+aaaa.value;
    }
    return wDATA.value;
 }
 return true;
}
function AaBis(intYear) {
  if (intYear % 100 == 0) {
    if (intYear % 400 == 0) {
      return 1;
    }
  }
  else {
    if ((intYear % 4) == 0) {
      return 1;
    }
  }
  return 0;
}
