var xmlHttpRequest = getXMLHttpRequest(); var loadingImageHotelsURI = "/images/routes/ajax-loader-white.gif"; var poiSearchItemCount=0; function populateHotelsBarGaz() { if ($("#dbEurope").is(':checked') || $("#dbIreland").is(':checked')) { // No hotels lookup for Europe/Ireland $("#nearbyHotels").html(""); $("#nearbyHotelsPanel2").html(""); return; } var selectTo = document.getElementById("confirmTo"); var gazLocString = escape(selectTo.value); // Display EBC ad for specific destinations if (!checkPortLocation(gazLocString)) { populateHotelsBarByDestination('','',"overlayMapMessage",gazLocString); } } function populateHotelsBarByDestination(lat,lon,poiMsgID,gazLocString) { //poiType 102 and poiType 104=bandb var maxHotelsToDisplay=6; var baseRequest = '/aaservlet/poi-search'; var baseParameters = 'poitype=123&lat=' + lat + '&long=' + lon + '&maxresults=' + maxHotelsToDisplay; if(lat==''&&lon==''&&gazLocString!='') { baseParameters = 'poitype=123&gazLocation=' + gazLocString + '&maxresults=' + maxHotelsToDisplay; } var bolMarkersOnMap=true; if(gazLocString!='') { //initial route request bolMarkersOnMap=false; } $.ajax({ url:baseRequest, type: "get", data: baseParameters, dataType: "json", error: function(xhr, desc, exceptionobj) { //error getting hotels $('#nearbyHotels').html(""); $('#nearbyHotelsPanel2').html(""); }, success:function(json) { populateHotelsBarFromJson(json,bolMarkersOnMap,poiMsgID,gazLocString); //markers already on map } //end success }); //end ajax }//end function function populateHotelsBarFromJson(json,bolMarkersOnMap,poiMsgID,gazLocString) { var $nearbyHotels = $('#nearbyHotels'); var $nearbyHotelsPanel2 = $('#nearbyHotelsPanel2'); var padding = 14; var margin = 20; var maxHotelsToDisplay = 6; var strHTMLOutput='
' if (bolMarkersOnMap) { strHTMLOutput+='

AA Hotels & B&Bs nearby

'; } else { strHTMLOutput+='

AA Hotels & B&Bs near your destination

'; } strHTMLOutput+='
' +'
'; var hotelCount=0; //now we have an array of hotels $.each(json.summaries, function(i,poiItem) { var strName=poiItem.name; var strlongitude=poiItem.longitude; var strSummary=poiItem.summary; var isRedStars=poiItem.isRedStars; var imageUrl=isEmpty(poiItem.imageUrl); var poiTypeID=poiItem.poiType; var strpercent=isEmpty(poiItem.percent); var strcategory=isEmpty(poiItem.category); var strlatitude=poiItem.latitude; var strqualityRating=isEmpty(poiItem.qualityRating); var strpriceFrom=isEmpty(poiItem.priceFrom); var bolaaRated=isEmpty(poiItem.aaRated); var appointmentCurrent=isEmpty(poiItem.appointmentCurrent); var strShortName=strName; if (strShortName.length>20) { strShortName=strShortName.substring(0,19) + '...'; } var strPOIid=poiItem.id; var starImage="star_" + strqualityRating + ".gif"; if (poiTypeID==102) { if(isRedStars) { starImage="redstar_" + strqualityRating + ".gif"; } } if (poiTypeID==104) { if(isRedStars) { starImage="yellow-star-" + strqualityRating + ".gif"; } } var tmpStrPOIType=getPOITypeFromID(poiTypeID); strHTMLOutput+='
'; strHTMLOutput+='
'; //no images if(imageUrl=='') { imageUrl="/images/routes/hotelbar-no-image-48x40.gif"; } strHTMLOutput+='' + strName + ''; strHTMLOutput+='
'; strHTMLOutput+='
'; strHTMLOutput+='

' + strShortName + '

'; strHTMLOutput+='

'; if(bolaaRated && (poiTypeID==102 || poiTypeID==103 ||poiTypeID==104)) { strHTMLOutput+='AA logo'; if(appointmentCurrent=='U') { //no star ratings if unclassified strHTMLOutput+='Unconfirmed grading'; } else { if(strqualityRating!='' && !isNaN(strqualityRating)) { if(appointmentCurrent=='A') { strHTMLOutput+='AA Associate'; } strHTMLOutput+= '' + strqualityRating + ' star'; } } //strHTMLOutput+='' + strqualityRating + ' star'; } //end bolaaRated if(parseInt(strpriceFrom,10)>0) { strHTMLOutput+=" from £" + strpriceFrom; } strHTMLOutput+='
' + strcategory + '

'; strHTMLOutput+='
'; strHTMLOutput+='
'; hotelCount++; if(i==maxHotelsToDisplay-1) { return false; } hotelCount++; }); //end each strHTMLOutput+='
'; var placeName=''; if(!bolMarkersOnMap&&gazLocString!='') { var arrGazString=gazLocString.split("%7C"); var placeArr=arrGazString[1].split("%2C"); placeName=unescape(placeArr[0]); var tmpEastings=arrGazString[3]; var tmpNorthings=arrGazString[4]; //Allow click though to hotel results strHTMLOutput+='

'; } //clear loading hidePOIMsg("#overlayMapMessage") //update page if(hotelCount>0) { $nearbyHotels.html(strHTMLOutput).show(); $nearbyHotelsPanel2.html(strHTMLOutput).show(); } else if (placeName!=''){ //no hotels, so show default var strDefaultHotelsAd="
" + "
" + "" + " " + "Looking for somewhere to stay near '" + placeName + "'?
Try the AA hotel and B&B search
" + "" + "" + "" + "" + "
" + "
"; $nearbyHotels.html('
Find a place to stay along your route
').show(); $nearbyHotelsPanel2.html(strDefaultHotelsAd).show(); } } function checkPortLocation(gazLocString) { //check is a port var arrPorts = new Array('dover','portsmouth','harwich','folkestone','hull','new haven','poole','plymouth','fishguard','hollyhead','liverpool','stranraer'); if (gazLocString != '') { var tmpLoc = gazLocString.toLowerCase(); for (i=0; i < arrPorts.length; i++) { if ( (tmpLoc.indexOf('%7c'+arrPorts[i]) > -1) || (tmpLoc.indexOf('%20'+arrPorts[i]) > -1) ) { //is a port so show EBC ad and hide default ad showEBCAd(); return true; } } } return false; } function stripDoubleQuote(str) { charToRemove = '"'; regExp = new RegExp("["+charToRemove+"]","g"); return str.replace(regExp,""); }