function checkValidity() { var form = document.forms[0]; var now = new Date(); var today = new Date(now.getYear(),now.getMonth(),now.getDate()); var dateString = form.AvailableDate1.value; if (dateString=='') return; if (isValidDate(dateString,'/')) ; else { alert ('Please enter a valid Availability date (dd/mm/yyyy) ! (' + reason + ')'); form.AvailableDate1.focus(); } } function isValidDate (myDate,sep) { // checks if date passed is in valid dd/mm/yyyy format if (myDate.length == 10) { if (myDate.substring(2,3) == sep && myDate.substring(5,6) == sep) { var date = myDate.substring(0,2); var month = myDate.substring(3,5); var year = myDate.substring(6,10); var test = new Date(year,month-1,date); if (year == y2k(test.getYear()) && (month-1 == test.getMonth()) && (date == test.getDate())) { reason = ''; return true; } else { reason = 'valid format but an invalid date'; return false; } } else { reason = 'invalid separators, must be ' && sep; return false; } } else { reason = 'invalid format'; return false; } } function y2k(number) { return (number < 1000) ? number + 1900 : number; }