//syncronise forms function syncForms(frm) { //get the target form var targetForm targetForm = document.travelDates0 //update the target form targetForm.inDay.selectedIndex = frm.inDay.selectedIndex targetForm.inMonth.selectedIndex = frm.inMonth.selectedIndex targetForm.inYear.selectedIndex = frm.inYear.selectedIndex targetForm.outDay.selectedIndex = frm.outDay.selectedIndex targetForm.outMonth.selectedIndex = frm.outMonth.selectedIndex targetForm.outYear.selectedIndex = frm.outYear.selectedIndex } //submit the date form function submitForm(frm) { if (validateDates(frm)) frm.submit() } //reset dates function dateChange(frm, isInCtl) { if (isInCtl) { resetDate(frm, "in") } else { resetDate(frm, "out") } //syncForms(frm) } //set current date var curDay = 10 var curMonth = 8 var curYear = 2006 //requires initialisation of the following variables: //curDay, curMonth (0-11), curYear //date validation function validDate(date, ctlDay) { return date.getDate() == getVal(ctlDay) } //clear options of select control function clearSelect(ctl, preservedOpt) { for (var i=ctl.options.length-1; i>preservedOpt; i--) ctl.options[i] = null } //populate and set select boxes function populateDates(frm, startBlank) { var preservedOpt if (startBlank) preservedOpt = 0 else preservedOpt = -1 populateDay(frm.inDay, preservedOpt) populateMonth(frm.inMonth, preservedOpt) populateYear(frm.inYear, preservedOpt) populateDay(frm.outDay, preservedOpt) populateMonth(frm.outMonth, preservedOpt) populateYear(frm.outYear, preservedOpt) setDefDates(frm, startBlank) } //populate day select box function populateDay(ctl, preservedOpt) { clearSelect(ctl, preservedOpt) var newText for (var i=1+preservedOpt; i<32+preservedOpt; i++) { newText = i-preservedOpt if (newText < 10) newText = "0" + newText ctl[i] = new Option(newText, i-preservedOpt) } } //populate month select box function populateMonth(ctl, preservedOpt) { var monthArray = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec") clearSelect(ctl, preservedOpt) for (var i=1+preservedOpt; i<13+preservedOpt; i++) ctl[i] = new Option(monthArray[i-1-preservedOpt], i-preservedOpt) } //populate year select box function populateYear(ctl, preservedOpt) { clearSelect(ctl, preservedOpt) for (var i=1+preservedOpt; i<4+preservedOpt; i++) ctl[i] = new Option(i+curYear-1-preservedOpt, i+curYear-1-preservedOpt) } //set default dates function setDefDates(frm, startBlank) { var defInDay, defInMonth, defInYear, defOutDay, defOutMonth, defOutYear var noCookie = true //extract dates from cookie var cookieArray = document.cookie.split("|") for (var i=0; i= checkoutDate) { //var newDate = new Date(checkDate.getFullYear(), checkDate.getMonth(), checkDate.getDate() + incremet) //frm.SetDate(newDate.getFullYear(), newDate.getMonth() + 1, newDate.getDate(), InOut, false) if (InOut == "in") { setVal(frm.outDay, checkDate.getDate() + incremet) setVal(frm.outMonth, checkDate.getMonth()) setVal(frm.outYear, checkDate.getFullYear()) } else { setVal(frm.inDay, checkDate.getDate() + incremet) setVal(frm.inMonth, checkDate.getMonth()) setVal(frm.inYear, checkDate.getFullYear()) } } } //validate dates and save them to cookie function validateDates(frm) { var checkinDate = new Date(getVal(frm.inYear), getVal(frm.inMonth) - 1, getVal(frm.inDay)) var checkoutDate = new Date(getVal(frm.outYear), getVal(frm.outMonth) - 1, getVal(frm.outDay)) //validate checkin date if (!validDate(checkinDate, frm.inDay)) { alert("Please enter a valid Checkin Date.") frm.inDay.focus() return false } var curDate = new Date(curYear, curMonth, curDay) if (checkinDate - curDate < 0) { alert("The Checkin Date you have entered is in the past.") frm.inDay.focus() return false } //validate checkout date if (!validDate(checkoutDate, frm.outDay)) { alert("Please enter a valid Checkout Date.") frm.outDay.focus() return false } //validate checkin - checkout difference if (checkoutDate - checkinDate > 2160000000) { //25 days in milliseconds alert("Your period of stay should be not longer than 25 nights.\n\nIf you wish to book for more than 25 nights,\nplease send us an e-mail with your request.") frm.outDay.focus() return false } if (checkoutDate - checkinDate <= 0) { alert("The Checkout Date should be greater than the Checkin Date.") frm.outDay.focus() return false } //save dates to cookie //setDatesCookie(getVal(frm.inDay), getVal(frm.inMonth), getVal(frm.inYear), getVal(frm.outDay), getVal(frm.outMonth), getVal(frm.outYear)) return true } //save dates to cookie function setDatesCookie(inDay, inMonth, inYear, outDay, outMonth, outYear) { var arrCookie = document.cookie.split("|") var i var defCountry = "" var defCity = "" var defSuburb = "" for (i=0; i