
mDate = new Date();
CurMonth 	= mDate.getMonth() + 1;
CurDay 		= mDate.getDate();
CurYear 	= mDate.getYear();
var thisdate = CurMonth + "/" + CurDay + "/" + CurYear;

function isValidDate(theField) {
if (theField.value != "") {
	var dateForm 	= theField.form.name
	var dateField 	= theField.name
	var dateValue 	= theField.value;
	var datePat 	= /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
	TDate 		= new Date();
	CurMonth 	= TDate.getMonth();
	CurDay 		= TDate.getDate();
	CurYear 	= TDate.getYear();

	var matchArray = dateValue.match(datePat); // is the format ok?
	if (matchArray == null) {
	alert("Date is not in a valid format. Please use MM/DD/YYYY")
	theField.value = "";
	theField.focus();
	return false;
	}
	formMonth = matchArray[1]; // parse date into variables
	formDay = matchArray[3];
	formYear = matchArray[4];
	if (formMonth < 1 || formMonth > 12) { // check month range
	alert("Month must be between 1 and 12.");
	theField.value = "";
	theField.focus();
	return false;
	}
	if (formDay < 1 || formDay > 31) {
	alert("Day must be between 1 and 31.");
	theField.value = "";
	theField.focus();
	return false;
	}
	if ((formMonth==4 || formMonth==6 || formMonth==9 || formMonth==11) && formDay==31) {
	alert("Month "+formMonth+" doesn't have 31 days!");
	theField.value = "";
	theField.focus();
	return false;
	}
	if (formMonth == 2) { // check for february 29th
	var isleap = (formYear % 4 == 0 && (formYear % 100 != 0 || formYear % 400 == 0));
	if (formDay>29 || (formDay==29 && !isleap)) {
	alert("February " + formYear + " doesn't have " + formDay + " days!");
	theField.value = "";
	theField.focus();
	return false;
	   }
	}
	return true;  // date is valid
	}
}
