function getForm() { return document.SearchResultsForm; } function trim(value){ return value.replace(/^\s+|\s+$/,''); } function populatePuDate(dropList) { var form = getForm(); //if month selected is a month gone, select next year as the year. if(dropList != null && dropList == 'puMonth') { var date = new Date(); if(form.puMonth.value < date.getMonth()+1) { form.puYear.value = Number(date.getFullYear())+1; dropList = 'puYear'; } populateDaysOfMonth(form.puDay, getForm().puMonth.value - 1, getForm().puYear.value); } if(isPuAfterDo(form)) { fixDoDate(form, dropList); } // getForm().doDay.selectedIndex=getForm().puDay.selectedIndex; // getForm().doMonth.selectedIndex=getForm().puMonth.selectedIndex; // getForm().doYear.selectedIndex=getForm().puYear.selectedIndex; } function populateDoDate(dropList) { var form = getForm(); if(dropList != null && dropList != 'doDay') { //if month selected is a month gone, select next year as the year. if(dropList == 'doMonth') { var date = new Date(); if(form.doMonth.value < date.getMonth()+1) { form.doYear.value = Number(date.getFullYear())+1; dropList = 'doYear'; } populateDaysOfMonth(form.doDay, form.doMonth.value - 1, form.doYear.value); } if(isPuAfterDo(form)) { fixPuDate(form, dropList); } } } function populateDaysOfMonth(dayNode, monthInt, yearInt) { var selectedDay = dayNode.value; var newDate = new Date(yearInt, monthInt, 1, 1, 1, 1, 0); var newOptionNode; var nextDate = new Date(yearInt, monthInt + 1, 1, 1, 1, 1, 0); nextDate.setTime(nextDate.getTime() - 86400000); var lastDay = nextDate.getDate(); var daySelected = false; //remove all children (options) of the dayNode while(dayNode.hasChildNodes()) { dayNode.removeChild(dayNode.lastChild); } //add days for selected month while(newDate.getMonth() == monthInt) { var dayString = newDate.getDate(); if(newDate.getDate() < 10) { dayString = "0"+dayString; } optionNode = document.createElement("option"); optionNode.setAttribute("value", newDate.getDate()); var inHtml = document.createTextNode(dayString); optionNode.appendChild(inHtml); if((newDate.getDate() == selectedDay || newDate.getDate() == lastDay) && ! daySelected) { optionNode.setAttribute("selected", "selected"); daySelected = true; } dayNode.appendChild(optionNode); newDate.setTime(newDate.getTime() + 86400000); } dayNode.parentNode.normalize(); } function isPuAfterDo(searchForm) { var puDate = new Date(searchForm.puYear.value, searchForm.puMonth.value-1, searchForm.puDay.value, 12, 0); var doDate = new Date(searchForm.doYear.value, searchForm.doMonth.value-1, searchForm.doDay.value, 12, 0); return puDate.valueOf() > doDate.valueOf(); } function setPuMultipleValues(y,m,d) { getForm().puDay.value=d; getForm().puMonth.value=m; getForm().puYear.value=LZ(y); } function setDoMultipleValues(y,m,d) { getForm().doDay.value=d; getForm().doMonth.value=m; getForm().doYear.value=LZ(y); } function validateSearchResultsForm(searchForm){ /* searchForm.action=searchForm.action+"?puDay="+searchForm.puDay.value+"&location="+searchForm.location.value+"&dropLocation="+searchForm.dropLocation.value+"&driversAge="+searchForm.driversAge.value+"&puMonth="+searchForm.puMonth.value+"&puYear="+searchForm.puYear.value+"&doDay="+searchForm.doDay.value+"&doMonth="+searchForm.doMonth.value+"&doYear="+searchForm.doYear.value+"&puHour="+searchForm.puHour.value+"&puMinute="+searchForm.puMinute.value+"&doHour="+searchForm.doHour.value+"&doMinute="+searchForm.doMinute.value; */ var errors = ""; errors = validateDriversAge(searchForm.driversAge, "Driver's Age", errors); errors = validateMandatoryDroplist(searchForm.country, "Pickup Country", errors); errors = validateMandatoryDroplist(searchForm.city, "Pickup City", errors); errors = validateMandatoryDroplist(searchForm.location, "Pickup Location", errors); errors = validateMandatoryDroplist(searchForm.dropCountry, "Dropoff Country", errors); errors = validateMandatoryDroplist(searchForm.dropCity, "Dropoff City", errors); errors = validateMandatoryDroplist(searchForm.dropLocation, "Dropoff Location", errors); errors = validateDate(searchForm.puYear.value, searchForm.puMonth.value-1, searchForm.puDay.value, "Pickup Date", errors); errors = validateDate(searchForm.doYear.value, searchForm.doMonth.value-1, searchForm.doDay.value, "Dropoff Date", errors); errors = validateDates(searchForm, searchForm.puYear.value, searchForm.puMonth.value-1, searchForm.puDay.value, searchForm.puHour.value, searchForm.puMinute.value, "Pickup Date", searchForm.doYear.value, searchForm.doMonth.value-1, searchForm.doDay.value, searchForm.doHour.value, searchForm.doMinute.value, "Dropoff Date", errors); errors = validateCutOffDate(searchForm.puYear.value, searchForm.puMonth.value-1, searchForm.puDay.value, "Pickup Date", errors); if(errors==""){ return true; } else { alert(errors); return false; } } function validateMandatoryDroplist(droplist, name, errors){ if(droplist.value=="" || droplist.value==0){ errors = errors + name + " must be specified\n"; } return errors; } function validateDates(searchForm, yearFrom, monthFrom, dayFrom, hourFrom, minuteFrom, nameFrom, yearTo, monthTo, dayTo, hourTo, minuteTo, nameTo, errors){ var date = new Date(); var dateFrom = new Date(yearFrom, monthFrom, dayFrom, hourFrom, minuteFrom, 0); var dateTo = new Date(yearTo, monthTo, dayTo, hourTo, minuteTo, 0); var nowDate = new Date(); var doDateBeforePuDate = dateFrom.valueOf() > dateTo.valueOf(); date.setTime(date.getTime() + (86400000 * 2)); var defaultPuDate = new Date(); defaultPuDate.setTime(defaultPuDate.getTime() + (86400000 * 2)); if(dateFrom.valueOf() < nowDate.valueOf()){ errors = errors + nameFrom + " is before today's date\n"; //searchForm.puYear.options[(defaultPuDate.getFullYear() - nowDate.getFullYear())].selected = true; //searchForm.puMonth.options[defaultPuDate.getMonth()].selected = true; //searchForm.puDay.options[defaultPuDate.getDate() - 1].selected = true; //dateFrom = defaultPuDate; } else if((dateFrom.getTime() - nowDate.getTime()) < 3600000) { errors = errors + " ???en_in.mobile.home.validate.text.minimumLeadTime???\n"; } if(doDateBeforePuDate){ errors = errors + nameFrom + " must be before " + nameTo + "\n"; //var defaultDoDate = dateFrom; //var time = defaultDoDate.getTime() + 0; //time = time + (86400000 * 3); //defaultDoDate.setTime(time); //searchForm.doYear.options[(defaultDoDate.getFullYear() - date.getFullYear())].selected = true; //searchForm.doMonth.options[defaultDoDate.getMonth()].selected = true; //searchForm.doDay.options[defaultDoDate.getDate() - 1].selected = true; } else if((dateTo - dateFrom) < 3600000) { errors = errors + " There must be at least one hour between pick up and drop off\n"; } return errors; } function validateDate(year, month, day, name, errors){ if(!isValidDate(year, month, day)){ errors = errors + name + " is not a valid date\n"; } return errors; } function validateCutOffDate(year, month, day, name, errors){ var cutOffDate = new Date(2005, 11, 28); var newDate = new Date(year, month, day); if(cutOffDate.valueOf()>newDate.valueOf()){ errors = errors + "Pickup date must be after 27th December 2005\n"; } return errors; } function isValidDate(year, month, day){ var tempDate = new Date(year, month, day); var tempYear = tempDate.getYear()<2000?tempDate.getYear()+1900:tempDate.getYear(); return (tempYear==year && tempDate.getMonth()==month && tempDate.getDate()==day); } function isNumeric(sText){ var validChars = "0123456789"; var returnValue = true; var currentChar; for (var i = 0; i < sText.length && returnValue == true; i++) { currentChar = sText.charAt(i); if (validChars.indexOf(currentChar) == -1) { returnValue = false; } } return returnValue; } function validateDriversAge(driversAge, name, errors){ var minDriversAge = 21; var maxDriversAge = 75; if(driversAge.value==""){ errors = errors + name + " must be specified\n"; } /* else if(!isNumeric(driversAge.value)) { errors = errors + name + " must be a number\n"; } else if(driversAge.value < minDriversAge) { errors = errors + name + " must be at least " + minDriversAge + "\n"; } else if(driversAge.value > maxDriversAge) { errors = errors + name + " must be no more than " + maxDriversAge + "\n"; }*/ return errors; } function headingClick(checkbox, options, index){ var element = document.getElementById(options); if(checkbox.checked==true){ element.style.display='none'; var i=0; while(true){ var subelem = document.getElementById("optionCB" + index + ":" + i++); if(subelem==null || i>100) break; subelem.checked = false; } } else { element.style.display=''; } } function disableSearchResultsForm(isDisabled){ if(isDisabled){ getForm().country.disabled=isDisabled; getForm().city.disabled=isDisabled; getForm().location.disabled=isDisabled; getForm().dropCountry.disabled=isDisabled; getForm().dropCity.disabled=isDisabled; getForm().dropLocation.disabled=isDisabled; } getForm().puDay.disabled=isDisabled; getForm().puMonth.disabled=isDisabled; getForm().puYear.disabled=isDisabled; getForm().puHour.disabled=isDisabled; getForm().puMinute.disabled=isDisabled; getForm().doDay.disabled=isDisabled; getForm().doMonth.disabled=isDisabled; getForm().doYear.disabled=isDisabled; getForm().doHour.disabled=isDisabled; getForm().doMinute.disabled=isDisabled; } function ptSetup() { var e; e = document.getElementsByName('promoCity$4730'); for(var i=0; i < e.length; i++) { e[i].disabled = !((!((1*false+1)))||((!(true&&true))||(!(!true)))); } e = document.getElementsByName('promoAge$1777'); for(var i=0; i < e.length; i++) { e[i].disabled = !((!((true&&false)||(false||false)))&&(!(!(true&&true)))); } e = document.getElementsByName('promoCountry$5707'); for(var i=0; i < e.length; i++) { e[i].disabled = !(!(((true||false)||(false||false))&&((true&&true)||(true&&false)))); } e = document.getElementsByName('promoLoc$2409'); for(var i=0; i < e.length; i++) { e[i].disabled = !(!(((0+(1<<1))- (1*false+1)))); } } function makeUrl(start, parameters) { var url = start; for(var i=0; i < parameters.length; i++) { if(i==0){ url += "?"; }else{ url += "&"; } url += parameters[i][0] + "=" + parameters[i][1]; } return url; } function makeDynaDroplistUrl(dropList, serverUrl) { var debug=""; if(debug!=""){ disableSearchResultsForm(true); } var dynaParams = new Array(); dynaParams[dynaParams.length] = new Array("formName", ""); dynaParams[dynaParams.length] = new Array("currentForm", ""); dynaParams[dynaParams.length] = new Array("country", getForm().country.value); if(dropList!="country"){ dynaParams[dynaParams.length] = new Array("city", getForm().city.value); if(dropList!="city"){ dynaParams[dynaParams.length] = new Array("location", getForm().location.value); if(dropList!="location"){ dynaParams[dynaParams.length] = new Array("dropCountry", getForm().dropCountry.value); if(dropList!="dropCountry"){ dynaParams[dynaParams.length] = new Array("dropCity", getForm().dropCity.value); if(dropList!="dropCity"){ dynaParams[dynaParams.length] = new Array("dropLocation", getForm().dropLocation.value); if(dropList!="puYear"){ dynaParams[dynaParams.length] = new Array("puYear", getForm().puYear.value); if(dropList!="puMonth"){ dynaParams[dynaParams.length] = new Array("puMonth", getForm().puMonth.value); if(dropList!="puDay"){ dynaParams[dynaParams.length] = new Array("puDay", getForm().puDay.value); if(dropList!="puHour"){ dynaParams[dynaParams.length] = new Array("puHour", getForm().puHour.value); } } } } } } } } } /* Add debug parameter */ if(debug!=""){ dynaParams[dynaParams.length] = new Array("debug", "true"); } /* Get IE Version number */ var ua = navigator.userAgent; var MSIEOffset = ua.indexOf("MSIE "); var IEVerNum=6; if (MSIEOffset != -1){ IEVerNum=parseFloat(ua.substring(MSIEOffset + 5, ua.indexOf(";", MSIEOffset))); } if (IEVerNum<5.5) { /* Encode each parameter */ for(var i=0; i < dynaParams.length; i++) { dynaParams[i][1] = escape(dynaParams[i][1]); } } var serverPart = ""; if(serverUrl!=null){ serverPart = serverUrl; } var dynaURL = makeUrl(serverPart+"/DynaDroplist.do", dynaParams); if(IEVerNum >= 5.5) { /* encode whole url */ dynaURL = encodeURI(dynaURL); } /* Show url to debug */ if(debug!=""){ alert(dynaURL); } return dynaURL; } function populateDroplists(dropList, serverUrl) { var dynaURL = makeDynaDroplistUrl(dropList, serverUrl); document.getElementById("dynaFrame").src = dynaURL; } function populateSecureDroplists(dropList, serverUrl) { var dynaURL = makeDynaDroplistUrl(dropList, serverUrl); var response=makeRequest(dynaURL); eval(response); } function makeRequest(url) { var req=false; var returnValue = ""; if(window.XMLHttpRequest) { try { req = new XMLHttpRequest(); } catch(e) { req = false; } } else if(window.ActiveXObject) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { req = false; } } } if(req){ req.open("GET", url, false); req.send(null); if (req.readyState==4) { returnValue = req.responseText; } } return returnValue; } function addOption(droplist, name, value){ droplist.options[droplist.options.length] = new Option(name, value); } function fixDoDate(form, dropList) { var nowDate = new Date(); if(dropList != null) { if(dropList == 'puYear') { form.doYear.options[form.puYear.value -nowDate.getFullYear()].selected = true; dropList = 'puMonth'; } if(dropList == 'puMonth' && isPuAfterDo(form)) { form.doMonth.options[form.puMonth.value - 1].selected = true; dropList = 'puDay'; } if(dropList == 'puDay' && isPuAfterDo(form)) { var newDate = new Date(form.puYear.value, form.puMonth.value-1, form.puDay.value, form.puHour.value, form.puMinute.value); newDate.setTime(newDate.getTime() + (86400000 * 3)); if(newDate.getFullYear() > (nowDate.getFullYear() + 1)) { newDate.setTime(newDate.getTime() - (86400000 * 3)); } form.doDay.options[newDate.getDate() - 1].selected = true; form.doMonth.options[newDate.getMonth()].selected = true; form.doYear.options[newDate.getFullYear() - nowDate.getFullYear()].selected = true; } populateDaysOfMonth(form.doDay, form.doMonth.value - 1, form.doYear.value); } } function fixPuDate(form, dropList) { var nowDate = new Date(); if(dropList != null) { if(dropList == 'doYear') { form.puYear.options[form.doYear.value - nowDate.getFullYear()].selected = true; dropList = 'doMonth'; } if(dropList == 'doMonth' && isPuAfterDo(form)) { form.puMonth.options[form.doMonth.value - 1].selected = true; dropList = 'doDay'; } if(dropList == 'doDay' && isPuAfterDo(form)) { var newDate = new Date(form.doYear.value, form.doMonth.value-1, form.doDay.value, form.doHour.value, form.doMinute.value); newDate.setTime(newDate.getTime() - (86400000 * 3)); if(newDate.getFullYear() < nowDate.getFullYear()) { newDate.setTime(newDate.getTime() + (86400000 * 3)); } form.puDay.options[newDate.getDate() - 1].selected = true; form.puMonth.options[newDate.getMonth()].selected = true; form.puYear.options[newDate.getFullYear() - nowDate.getFullYear()].selected = true; } populateDaysOfMonth(form.puDay, form.puMonth.value - 1, form.puYear.value); } }