<!-- Original:  Sandeep V. Tamhankar (stamhankar@hotmail.com) -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

function isValidDate(obj)
  {
    // Checks for the following valid date formats:
    // MM/DD/YYYY MM-DD-YYYY
    // Also separates date into month, day, and year variables

    var dateStr=obj.value;

    if (dateStr == "") return true;
    
    var datePat = /^(\d{2})(\/|-)(\d{2})\2(\d{4})$/;

    var matchArray = dateStr.match(datePat); // is the format ok?
    if (matchArray == null) {
    alert("Date is not in a valid format.")
    obj.focus();
    obj.select();
    return false;
    }
    month = matchArray[1]; // parse date into variables
    day = matchArray[3];
    year = matchArray[4];
    if (month < 1 || month > 12) { // check month range
    alert("Month must be between 1 and 12.");
    obj.focus();
    obj.select();    
    return false;
    }
    if (day < 1 || day > 31) {
    alert("Day must be between 1 and 31.");
    obj.focus();
    obj.select();
    return false;
    }
    if ((month==4 || month==6 || month==9 || month==11) && day==31) {
    alert("Month "+month+" doesn't have 31 days!")
    obj.focus();
    obj.select();
    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)) {
    alert("February " + year + " doesn't have " + day + " days!");
    obj.focus();
    obj.select();
    return false;
       }
    }
    return true;  // date is valid
  }