var myRestoringDate;

// ******************************************************************
// This function accepts a string variable and verifies if it is a
// proper date or not. It validates format matching either
// mm-dd-yyyy or mm/dd/yyyy. Then it checks to make sure the month
// has the proper number of days, based on which month it is.

// The function returns true if a valid date, false if not.
// ******************************************************************

function isDate(dateStr) {

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?

if (matchArray == null) {
alert("Please enter date as either mm/dd/yyyy or mm-dd-yyyy.");
return false;
}

month = matchArray[1]; // p@rse date into variables
day = matchArray[3];
year = matchArray[5];

if (month < 1 || month > 12) { // check month range
return false;
}

if (day < 1 || day > 31) {
return false;
}

if ((month==4 || month==6 || month==9 || month==11) && day==31) {
return false;
}

if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day==29 && !isleap)) {
return false;
}
}
return true; // date is valid
}

function CorrectTimeEntry()
{
  if (isDate(document.DataSelect.MyDate.value))
  {
    if (document.DataSelect.MyDate.value != myRestoringDate)
    {
      var tempTime = Date.parse(document.DataSelect.MyDate.value);
      tempTime = parseInt(parseInt(tempTime / 1000) / 86400);
      document.DataSelect.day.value = tempTime;
      document.DataSelect.submit();
    }
  }
  else
  {
    RestoreValue();
  }
}

function RestoreValue()
{
  document.DataSelect.MyDate.value = myRestoringDate;
}

function SetRestoreDate(thisDate)
{
  myRestoringDate = thisDate;
}