//requires initialisation of the following variables: //datesFrm (form with dates controls) //curDay, curMonth (0-11), curYear //initialise travel dates var curDay = 5 var curMonth = 6 var curYear = 2008 //bookPeriod (number of days allowed to book in advance) var monthArray = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec") var wkdArray = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat") var objCookie //instantialise and initialise cookie object function initCookie() { objCookie = new cookieVal("", "", "", "", "") var nocookie = true var cookieArray = URLDecode(document.cookie).split("|") for (var i=0; i= out date function resetInDate() { if (datesFrm.inDate.selectedIndex > datesFrm.outDate.selectedIndex) datesFrm.inDate.selectedIndex = datesFrm.outDate.selectedIndex //set weekdays and length of stay setWkd() } //cookie values object constructor function cookieVal(country, city, suburb, inDate, outDate) { this.country = country this.city = city this.suburb = suburb this.inDate = inDate this.outDate = outDate } //save selected dates and location to cookie function setSelCookie(country, city, suburb, inDate, outDate) { document.cookie = escape("|SearchEng|") + "=" + escape("|" + country + "|" + city + "|" + suburb + "|" + inDate + "|" + outDate + "|") + ";path=/" } //reload page with new in/out dates function changeDates() { //save new dates in the cookie setSelCookie(objCookie.country, objCookie.city, objCookie.suburb, getVal(datesFrm.inDate), getVal(datesFrm.outDate)) //get new querystring var qString = location.search.substr(1) qString = setQStringName(qString, "inDate", new Array(getVal(datesFrm.inDate))) qString = setQStringName(qString, "outDate", new Array(getVal(datesFrm.outDate))) //do some extra work if dates are changed on the search results page if (datesFrm.ShowAll) { //set page to 1 qString = setQStringName(qString, "page", new Array("1")) //set currencly selected search option for (var i = 0; 1 < datesFrm.ShowAll.length; i++) { if (datesFrm.ShowAll[i].checked) { var showAll = datesFrm.ShowAll[i].value break } } qString = setQStringName(qString, "ShowAll", new Array(showAll)) } location = location.pathname + "?" + qString } //replace or add a name/value pairs in url-encoded querystring function setQStringName(qString, name, arrVal) { var i var qStringNew = "" if (qString != "") { var curName var arrNameVal = qString.split("&") for (i in arrNameVal) { curName = arrNameVal[i].split("=")[0] curName = URLDecode(curName) if (curName != name) qStringNew += "&" + arrNameVal[i] } } for (i in arrVal) { qStringNew += "&" + escape(name) + "=" + escape(arrVal[i]) } return qStringNew.substr(1) } //extract value from querystring for the passed name function GetQSVal(qsName) { var qsPair var qsVal = "" var qString = location.search.substr(1) var arrNameVal = qString.split("&") for (var i in arrNameVal) { qsPair = arrNameVal[i].split("=") if (URLDecode(qsPair[0]) == qsName) { qsVal = URLDecode(qsPair[1]) break } } return qsVal } //unencode url-encoded string function URLDecode(urlStr) { return unescape(urlStr.replace(/\+/g, " ")) } //info button redirection function Info(htlID) { location = "/Hotel.asp?HotelID=" + htlID + "&inDate=" + GetQSVal("inDate") + "&outDate=" + GetQSVal("outDate") } //book button redirection function Book(rtID) { location = "/Selections.asp?RoomTypeID=" + rtID + "&inDate=" + GetQSVal("inDate") + "&outDate=" + GetQSVal("outDate") } //reload search results page with the new querystring name-value pair function Reload(name, val) { var qString = location.search.substr(1) qString = setQStringName(qString, "page", new Array("1")) //always resert page to 1 qString = setQStringName(qString, name, new Array(val.toString())) location = location.pathname + "?" + qString }