// JavaScript Document addCalendar("search_start", "Begin", "START_DATE", "searchEvent"); addCalendar("search_end", "End", "END_DATE", "searchEvent"); function validate(thisform){ var searchEvent = thisform; var startDate=trim(eval("document."+searchEvent+".START_DATE").value); if (startDate.length >0 && !isValidDate(startDate)){ document.searchEvent.START_DATE.focus(); return false; } var endDate=trim(eval("document."+searchEvent+".END_DATE").value); if (endDate.toLowerCase() == "end date"){ endDate=""; } if (endDate.length >0 &&!isValidDate(endDate)){ eval("document."+searchEvent+".END_DATE").focus(); return false; } if (startDate.length >0 && endDate.length >0 &&!dateDiff("searchEvent", startDate, endDate)){ return false; } return true; } function trim(str) { var re = /^\s+(.*?)\s+$/; return str.replace(re,"$1"); } function isValidDate(dateStr) { var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year var matchArray = dateStr.match(datePat); // is the format ok? if (matchArray == null) { alert(dateStr + " is not in a valid format. Enter date in mm/dd/yyyy format") 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."); return false; } if (day < 1 || day > 31) { alert("Day must be between 1 and 31."); return false; } if ((month==4 || month==6 || month==9 || month==11) && day==31) { alert("Month "+month+" doesn't have 31 days!") 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!"); return false; } } return true; } function dateDiff(dateform, strDate1, strDate2) { date1 = new Date(); date2 = new Date(); diff = new Date(); var time="12:00:00AM"; date1temp = new Date(strDate1 + " " + time); date1.setTime(date1temp.getTime()); date2temp = new Date(strDate2 + " " + time); date2.setTime(date2temp.getTime()); // sets difference date to difference of first date and second date diff.setTime(date1.getTime() - date2.getTime()); timediff = diff.getTime(); days = Math.floor(timediff / (1000 * 60 * 60 * 24)); timediff -= days * (1000 * 60 * 60 * 24); //alert("days difference: " + days); if (days > 0) { alert("End date should be later than Start date. Please enter the date again."); return false; } return true; }