function validateDates(msg, form) { var startDay = form.startDateDay.value; var endDay = form.endDateDay.value; var startMY = form.startDateMonthYear.value; var endMY = form.endDateMonthYear.value; var startMonth = ""; var startYear = ""; var endMonth = ""; var endYear = ""; var badDate = false; // Check that the dates have been selected if (startMY == "" || startDay < 1) { msg = msg + "\n" + "Please enter a valid move-in date"; badDate = true; } if (endMY == "" || endDay < 1) { msg = msg + "\n" + "Please enter a valid move-out date"; badDate = true; } // Check that the dates are valid dates if (!badDate) { var startH = startMY.indexOf("_"); var endH = endMY.indexOf("_"); startMonth = startMY.substring(0, startH) - 0.0 + 1; startYear = startMY.substring(startH + 1, startMY.length); endMonth = endMY.substring(0, endH) - 0.0 + 1; endYear = endMY.substring(endH + 1, endMY.length); if (!isValidDate(startDay, startMonth, startYear)) { msg = msg + "\n" + "Please enter a valid move-in date"; badDate = true; } if (!isValidDate(endDay, endMonth, endYear)) { msg = msg + "\n" + "Please enter a valid move-out date"; badDate = true; } if (!badDate) { // Check that the start date is not in the past var today = new Date(); if(!isValidDateRange(today.getDate(), today.getMonth() + 1, today.getFullYear(), startDay, startMonth, startYear)) { msg = msg + "\n" + "The Move-In Date cannot be in the past"; } // Check that the start date is before the end date else if (!isValidDateRange(startDay, startMonth, startYear, endDay, endMonth, endYear)) { msg = msg + "\n" + "The Move-In Date cannot be after the Move-Out Date"; } } } return msg; } function updateEndDate(form) { var startDay = form.startDateDay.value; var startMY = form.startDateMonthYear.value; var startH = startMY.indexOf("_"); if (startH > 0) { var startMonth = startMY.substring(0, startH) - 0.0 + 1; var startYear = startMY.substring(startH + 1, startMY.length); var nextMonth = oneMonthFromNow(startDay, startMonth, startYear); if (nextMonth != null) { var endMonthYear = nextMonth.getMonth() + "_" + nextMonth.getFullYear(); if (isValueInGroup(form.startDateMonthYear, endMonthYear)) { form.endDateDay.value = nextMonth.getDate(); form.endDateMonthYear.value = endMonthYear; } else { // last month was chosen... form.endDateDay.value = form.startDateDay.value; form.endDateMonthYear.value = form.startDateMonthYear.value; } } } // Also need to update the number of days for the end date, in case it's changed updateEndDaysForMonth(form); } function updateDayOptions(dayElement, length, selectedValue) { // Set to lenght + 1 to leave in default value dayElement.length=length + 1; selectedValue = selectedValue - 0; if (selectedValue > length) selectedValue = length; for (i=1; i 0) { startMonth = startMY.substring(0, startH) - 0.0 + 1; startYear = startMY.substring(startH + 1, startMY.length) - 0.0; var lastDay = getLastDayThisMonth(startMonth, startYear); updateDayOptions(form.startDateDay, lastDay, startDay); } } function updateEndDaysForMonth(form) { var endDay = form.endDateDay.value; var endMY = form.endDateMonthYear.value; var endMonth = ""; var endYear = ""; var endH = endMY.indexOf("_"); if (endH > 0) { endMonth = endMY.substring(0, endH) - 0.0 + 1; endYear = endMY.substring(endH + 1, endMY.length) - 0.0; var lastDay = getLastDayThisMonth(endMonth, endYear); updateDayOptions(form.endDateDay, lastDay, endDay); } }