PageSourceSearch

https://www.visitnewquay.org/JsHandlerMin/engine/javascript/Extern…/DataCaptureProductList_v63920480218.js

js visitnewquay.org collected 2026-10-02 11:22:02 UTC 70,474 bytes, 8 lines download raw bytes

1(function(){if(window.externalLinks)window.externalLinks();}());
2NewMind.registerNameSpace('NewMind.DataCapture').Core=(function(){"use strict";if(!NewMind.env||!NewMind.env.platform||!NewMind.DataCapture.Data||!NewMind.DataCapture.Data.host||!NewMind.DataCapture.Data.serverTimestampUtc){throw new Error("Unable to initialise data capture functionality.");}window.document.body.addEventListener("click",function(e){if(!e.target){return;}var $target=$(e.target);sendPollingBookingReferralOutIfApplicable($target);sendBookingWebsiteReferralIfApplicable($target);});var strServerTimestampUtc=NewMind.DataCapture.Data.serverTimestampUtc,bUserHasConsented=false,bIsKnownToBeNewSession=false,arrObjectsToPost=[],queueFlushTimeoutId,bQueueFlushIsPending,dataPersister;dataPersister={setItem:function(strName,strValue){window.localStorage.setItem(strName,strValue);},getItem:function(strName){return window.localStorage.getItem(strName);},removeItem:function(strName){window.localStorage.removeItem(strName);}};var hexChars=['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'];function getNewGUID(){if(window.crypto&&window.crypto.getRandomValues&&window.Uint8Array){var guidBytes=new Uint8Array(16);crypto.getRandomValues(guidBytes);guidBytes[6]=(guidBytes[6]&0x0F)|0x40;guidBytes[8]=(guidBytes[8]&0x3F)|0x80;var guid='';for(var i=0;i<16;i++){if(i==4||i==6||i==8||i==10){guid+='-';}guid+=hexChars[(guidBytes[i]>>4)&0xF];guid+=hexChars[guidBytes[i]&0xF];}return guid;}return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,function(c){var r=Math.random()*16|0,v=(c==='x')?r:(r&0x3|0x8);return v.toString(16);});}var SessionStorageKey="SVInsights-Session";var SessionExpiryMsec=20*60*1000;var UserStorageKey="SVInsights-User";var UserExpiryMsec=180*24*60*60*1000;function getUserSession(){var storedUser=JSON.parse(dataPersister.getItem(UserStorageKey));var storedSession=JSON.parse(dataPersister.getItem(SessionStorageKey));var currentTimestamp=Date.now();var isNewSession=false;if(storedUser===null||currentTimestamp>(storedUser.lastUsedTimestamp+UserExpiryMsec)){storedUser={id:getNewGUID()};}storedUser.lastUsedTimestamp=currentTimestamp;if(storedSession===null||currentTimestamp>(storedSession.lastUsedTimestamp+SessionExpiryMsec)){storedSession={id:storedUser.id+"-"+getNewGUID()};isNewSession=true;}storedSession.lastUsedTimestamp=currentTimestamp;dataPersister.setItem(UserStorageKey,JSON.stringify(storedUser));dataPersister.setItem(SessionStorageKey,JSON.stringify(storedSession));return{userId:storedUser.id,sessionId:storedSession.id,isNewSession:isNewSession};}function generateNewEventId(){return getNewGUID();}function etwpPrintTrace(message){if(NewMind.ETWP&&NewMind.ETWP.Trace&&NewMind.ETWP.Trace.PrintTrace){NewMind.ETWP.Trace.PrintTrace(message);}}function etwpPrintTraceWarning(message){if(NewMind.ETWP&&NewMind.ETWP.Trace&&NewMind.ETWP.Trace.PrintTraceWarning){NewMind.ETWP.Trace.PrintTraceWarning(message);}}function record(objEvent,bFlushImmediately){if(!objEvent){throw new Error("Called record without an event");}var userSession=getUserSession();if(userSession.isNewSession){bIsKnownToBeNewSession=true;var objSessionStartEvent={type:"sessionStart",id:userSession.sessionId};setGenericEventProperties(objSessionStartEvent,userSession.sessionId,userSession.userId);arrObjectsToPost.push(objSessionStartEvent);}setGenericEventProperties(objEvent,userSession.sessionId,userSession.userId);arrObjectsToPost.push(objEvent);registerNewEventPushedToQueue(bFlushImmediately);}function registerNewEventPushedToQueue(bFlushImmediately){var flushQueue=function(synchronous){if(bUserHasConsented&&arrObjectsToPost.length>0){var json=JSON.stringify(arrObjectsToPost);var beaconSent=false;try{beaconSent=(navigator.sendBeacon&&navigator.sendBeacon(NewMind.DataCapture.Data.host,json));}catch(e){}if(!beaconSent){var request=new XMLHttpRequest();request.open("POST",NewMind.DataCapture.Data.host,!synchronous);request.send(json);}etwpPrintTrace("Simpleview Insights: Event sent: "+json);arrObjectsToPost=[];}bQueueFlushIsPending=false;};if(bFlushImmediately){if(queueFlushTimeoutId){clearTimeout(queueFlushTimeoutId);}flushQueue(true);}else if(!bQueueFlushIsPending){bQueueFlushIsPending=true;queueFlushTimeoutId=setTimeout(function(){flushQueue(false)},400);}}function setGenericEventProperties(objEvent,strSessionId,strUserId){objEvent.sessionId=strSessionId;objEvent.userId=strUserId;objEvent.serverTimestamp=strServerTimestampUtc;objEvent.clientTimestamp=new Date().toJSON();objEvent.timeElapsed=(function(){if((typeof(window.performance)==="undefined")||(typeof(window.performance.now)!=="function" )){return -1;}return window.performance.now();}());if(NewMind.env&&NewMind.env.platform&&NewMind.env.platform.dmsName){objEvent.dms=NewMind.env.platform.dmsName;}if(NewMind.env&&NewMind.env.page&&NewMind.env.page.channelId){objEvent.websiteChannelId=NewMind.env.page.channelId;}if(window.navigator&&window.navigator.userAgent){objEvent.userAgent=window.navigator.userAgent;}if(!objEvent.causalId){if(NewMind.DataCapture.PageView&&NewMind.DataCapture.PageView.PageViewEventId){objEvent.causalId=NewMind.DataCapture.PageView.PageViewEventId;}else if(bIsKnownToBeNewSession){objEvent.causalId=strSessionId;}}}var strTrackedNavigationsKey="Navigations",iTrackingNavigationExpirationInMs=60000;function registerImminentNavigation(strAbsoluteUrl,strEventID){var objNavigations=JSON.parse(dataPersister.getItem(strTrackedNavigationsKey));if(objNavigations){pruneExpiredEntries(objNavigations);}else{objNavigations={};}objNavigations[strAbsoluteUrl]={id:strEventID,from:new Date()};dataPersister.setItem(strTrackedNavigationsKey,JSON.stringify(objNavigations));}function getCausalIdIfTrackedNavigation(strAbsoluteUrl){var objNavigations=JSON.parse(dataPersister.getItem(strTrackedNavigationsKey));if(!objNavigations){return null;}pruneExpiredEntries(objNavigations);var objEntry=objNavigations[strAbsoluteUrl];var strID;if(objEntry){strID=objEntry.id;delete(objNavigations[strAbsoluteUrl]);}else{strID=null;}dataPersister.setItem(strTrackedNavigationsKey,JSON.stringify(objNavigations));return strID;}function pruneExpiredEntries(objNavigations){var now=new Date();for(var strName in objNavigations){if(!objNavigations.hasOwnProperty(strName)){continue;}var objEntry=objNavigations[strName];if((now-new Date(objEntry.from))>=iTrackingNavigationExpirationInMs){delete(objNavigations[strName]);}}}window.addEventListener("unload",function(){var objNavigations=JSON.parse(dataPersister.getItem(strTrackedNavigationsKey));var iMaxAcceptableAgeOfNavigationTrackingEntriesInMs=5000;var strTrackingNavigationCausalIdIfFound=null;var now=new Date();if(objNavigations){var iMaxAgeOfDataToConsiderInMs;for(var strName in objNavigations){if(!objNavigations.hasOwnProperty(strName)){continue;}var objEntry=objNavigations[strName];if((now-new Date(objEntry.from))<=iMaxAcceptableAgeOfNavigationTrackingEntriesInMs){strTrackingNavigationCausalIdIfFound=objNavigations[strName].id;break;}}}var objPageUnload={type:"pageUnload",pageViewId:NewMind.DataCapture.PageView?NewMind.DataCapture.PageView.PageViewEventId:null};if(strTrackingNavigationCausalIdIfFound){objPageUnload.causalId=strTrackingNavigationCausalIdIfFound;}NewMind.DataCapture.Core.record(objPageUnload,true);},false);function retryWhileFalse(func,attempts,interval,onSuccess,onFailure){function work(){attempts--;var success=(func()!==false);
2if(success){if(onSuccess){onSuccess();}}else if(attempts>0){setTimeout(work,interval);}else{if(onFailure){onFailure();}}}work();}function integrateWithTCFAPI(){if(typeof(window.__tcfapi)!=="function" )return false;window.__tcfapi('addEventListener',2,function(tcData,success){if(!success){return;}if(tcData.eventStatus!=='tcloaded'&&tcData.eventStatus!=='useractioncomplete'){return;}var eventPrefix="Simpleview Insights: CMP API v2 Event '"+tcData.eventStatus+"': ";if(tcData.gdprApplies===false){etwpPrintTrace(eventPrefix+"gdprApplies is false; events will be sent");bUserHasConsented=true;registerNewEventPushedToQueue(false);return;}if(tcData.gdprApplies!==true){etwpPrintTrace(eventPrefix+"gdprApplies is neither true or false; events will not be sent");bUserHasConsented=false;registerNewEventPushedToQueue(false);return;}function isStandardPurposeConsented(purposeId){return(tcData.purpose.consents[purposeId]||tcData.purpose.legitimateInterests[purposeId]||tcData.publisher.consents[purposeId]||tcData.publisher.legitimateInterests[purposeId]);}if(isStandardPurposeConsented(1)&&isStandardPurposeConsented(8)&&isStandardPurposeConsented(9)&&isStandardPurposeConsented(10)){etwpPrintTrace(eventPrefix+"GDPR applies and the required Standard Purposes have been accepted; events will be sent");bUserHasConsented=true;registerNewEventPushedToQueue(false);return;}etwpPrintTrace(eventPrefix+"GDPR applies but the required Standard Purposes have not been accepted; events will not be sent");bUserHasConsented=false;registerNewEventPushedToQueue(false);});}var integrateWithTCFAPIWithRetries=retryWhileFalse.bind(null,integrateWithTCFAPI,5,2000,null,function(){etwpPrintTraceWarning('Simpleview Insights: Unable to gain user consent because window.__tcfapi was not present after 10 seconds; events will not be sent');});if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',integrateWithTCFAPIWithRetries);}else{integrateWithTCFAPIWithRetries();}function sendBookingWebsiteReferralIfApplicable($target){var $possibleLinkWrapper=$target.closest("a.ProvClickCustom");if($possibleLinkWrapper.length===0){return;}var name=$possibleLinkWrapper.attr("name");if(!name){return;}var nameSegments=name.split("|");if((nameSegments.length!==3)||(nameSegments[0]!=="PROBWEBREF")){return;}var iProductKey=parseInt(nameSegments[2],10);if(isNaN(iProductKey)){return;}record({type:"providerBookingWebsiteReferralOut",productKey:iProductKey,url:$possibleLinkWrapper.attr("href"),pageViewId:getPageViewEventIdIfAny()},true);}function sendPollingBookingReferralOutIfApplicable($target){if(!$target.hasClass("btnBookStay")){return;}var $form=$target.closest("form.FrmUnitOptions");if($form.length===0){return;}var iProductKey=parseInt($form.find("input[name=product]").val(),10);var strProviderId=$form.find("input[name=SupplierId]").val();if(isNaN(iProductKey)||!strProviderId){return;}record({type:"pollingBookingReferralOut",productKey:iProductKey,supplierId:strProviderId,pageViewId:getPageViewEventIdIfAny()},true);}function getPageViewEventIdIfAny(){return NewMind.DataCapture.PageView?NewMind.DataCapture.PageView.PageViewEventId:null;}return{record:record,registerImminentNavigation:registerImminentNavigation,getCausalIdIfTrackedNavigation:getCausalIdIfTrackedNavigation,generateNewEventId:generateNewEventId,formatDate:function(dValue){dValue=new Date(dValue);if(isNaN(dValue)){throw new Error("formatDate called with a value that is not (and is not parseable as) a Date");}var padToTwoDigits=function(iValue){return(iValue<10)?("0"+iValue):(""+iValue);};return dValue.getFullYear()+"-"+padToTwoDigits(dValue.getMonth()+1)+"-"+padToTwoDigits(dValue.getDate());},getPageViewEventIdIfAny:getPageViewEventIdIfAny};}());
3NewMind.registerNameSpace('NewMind.DataCapture').PageView=(function(){"use strict";var strPageViewEventId=null;var pageView={type:"pageView",id:NewMind.DataCapture.Core.generateNewEventId(),url:window.location.href,navigationType:window.performance.navigation.type};if(NewMind.env&&NewMind.env.page&&NewMind.env.page.pagekey){pageView.pageKey=NewMind.env.page.pagekey;}
3if(NewMind.env.lang&&NewMind.env.lang.languagecode){pageView.languageCode=NewMind.env.lang.languagecode;}var strCausalIdIfAny=NewMind.DataCapture.Core.getCausalIdIfTrackedNavigation(window.location);if(strCausalIdIfAny){pageView.causalId=strCausalIdIfAny;}NewMind.DataCapture.Core.record(pageView);strPageViewEventId=pageView.id;return{PageViewEventId:strPageViewEventId,CausalIdIfKnown:strCausalIdIfAny};}());
4NewMind.registerNameSpace('NewMind.DataCapture').Links=(function(){"use strict";document.body.addEventListener("click",function(e){var optionalTextOverride;if(!e.target){return;}var eleLink;if(e.target.tagName==="A"){eleLink=e.target;}else{var $parentLink=$(e.target).closest("a");if($parentLink.length===0){return;}eleLink=$parentLink[0];if(e.target.tagName==="IMG"){optionalTextOverride=e.target.alt;}}var strHrefAttributeValue=eleLink.getAttribute("href");if(!strHrefAttributeValue||(strHrefAttributeValue==="#")){return;}recordLink(eleLink,optionalTextOverride);});var arrLinkClickSpecialisationHandlers=[];function registerToAugmentLinkClickEvents(fncHandler){arrLinkClickSpecialisationHandlers.push(fncHandler);}function recordLink(anchor,optionalTextOverride){var strAbsoluteUrl=extractAddressFromReferrerWhereApplicable(anchor.href);var strID=NewMind.DataCapture.Core.generateNewEventId();var bIsDifferentHost=(tryToGetHostFromAbsoluteURL(strAbsoluteUrl)!==window.location.host);var objEvent={type:"linkClicked",id:strID,url:strAbsoluteUrl,isDifferentHost:bIsDifferentHost,text:optionalTextOverride||$.trim($(anchor).text()),pageViewId:NewMind.DataCapture.PageView?NewMind.DataCapture.PageView.PageViewEventId:null};var iControlKey=NewMind.ETWP.GetControlKey(anchor,true);if(iControlKey){objEvent.controlKey=iControlKey;}for(var i=0;i<arrLinkClickSpecialisationHandlers.length;i++){var handler=arrLinkClickSpecialisationHandlers[i];if(handler(objEvent,anchor)){break;}}if(!objEvent.linkType){objEvent.linkType="Content";}var strCausalIdFromLinkIfAvailable=tryToGetCausalIdFromLink(anchor);if(strCausalIdFromLinkIfAvailable){objEvent.causalId=strCausalIdFromLinkIfAvailable;}NewMind.DataCapture.Core.record(objEvent,true);if(!bIsDifferentHost){NewMind.DataCapture.Core.registerImminentNavigation(strAbsoluteUrl,strID);}}var strLinkCausalIdDataAttributeName="datacapture-causalid";function attachCausalIdToLink(anchor,strEventId){$(anchor).data(strLinkCausalIdDataAttributeName,strEventId);}function tryToGetCausalIdFromLink(anchor){return $(anchor).data(strLinkCausalIdDataAttributeName);}function extractAddressFromReferrerWhereApplicable(strUrl){if(strUrl.indexOf("/engine/referrer.asp?")===-1){return strUrl;}return NewMind.ETWP.GetQuerystringData(strUrl,true).get("web")||strUrl;}function tryToGetHostFromAbsoluteURL(strUrl){var arrProtocolAndEverythingElse=(""+strUrl).split("//",2);if(arrProtocolAndEverythingElse.length<2){return null;}return arrProtocolAndEverythingElse[1].split('/')[0];}return{recordLink:recordLink,attachCausalIdToLink:attachCausalIdToLink,registerToAugmentLinkClickEvents:registerToAugmentLinkClickEvents};}());
5$(function(){NewMind.ajax.itinUpdated.subscribe(function(action,params){if(action!=="itinUpdated"||params[0]!=="add"){return;}var productListKeyIfAny=NewMind.ETWP.GetControlKey($(params[2]).closest(".sys_control"));NewMind.DataCapture.Core.record({type:"addedToItinerary",productKey:params[1],pageViewId:NewMind.DataCapture.PageView?NewMind.DataCapture.PageView.PageViewEventId:null,productDetailsId:NewMind.DataCapture.ProductDetail?NewMind.DataCapture.ProductDetail.ProductDetailViewedEventId:null,productListId:productListKeyIfAny&&NewMind.DataCapture.ProductList[productListKeyIfAny]?NewMind.DataCapture.ProductList[productListKeyIfAny]:null,id:NewMind.DataCapture.Core.generateNewEventId()});});});
6(function(){NewMind.registerNameSpace("NewMind.env.lang.dynamicmapping");NewMind.registerNameSpace("NewMind.mapping").MapInit=new(function(){$(document).ready(function(){if(!NewMind.ETWP||!NewMind.ETWP.GetResource){NewMind.mapping.DebugOutput("NewMind.ETWP.GetResource not defined");return;}InitializeDynamicMappingControls();InitializeItineraryPanToLinks();DisplaySearchResultsMap();});function toggleSearchResultsMap(strId){if(NewMind.env.install.mapping.configurations[strId].showlistmaplink!==true){$('body').toggleClass('mapShow');}NewMind.mapping.loadGenericSearchResultsMap(strId);}this.InitDynamicMappingControls=function(){InitializeDynamicMappingControls();};
6this.DisplaySearchResultsMap=function(){DisplaySearchResultsMap();};function InitializeDynamicMappingControls(){$("dd.showResultsOnMap, div.showResultsOnMap").each(function(index){var objEle=$(this)[0];var strTagName=objEle.tagName;var strClass=objEle.className;var strTitle=objEle.title;var strInnerContent="<input type=\"checkbox\" name=\"autoshowmap\" id=\"showonmap_"+index+"\" value=\"-1\" class=\"checkbox\" />"+"<label for=\"showonmap_"+index+"\">"+strTitle+"</label>";strOut="<"+strTagName+" class=\""+strClass+"\">"+strInnerContent+"</"+strTagName+">";$(this).replaceWith(strOut);});$('input.checkbox[name=autoshowmap]').each(function(){if(window.location.search.indexOf('autoshowmap')>-1){this.checked=true;}});$('#SearchByMap').hide(0);}function InitializeItineraryPanToLinks(){$("div.ctl_ItineraryDetail td.item a.point").removeClass("hidden");}function DisplaySearchResultsMap(){var jqMapContainer=$('div.dynMapContainer');if(jqMapContainer.length===0){return;}var strMapId=jqMapContainer[0].id;var objMapConfig=NewMind.env.install.mapping.configurations[strMapId];if(objMapConfig.api==="microsoftv7"){jqMapContainer.css({position:"relative",overflow:"hidden"});}if((objMapConfig.showalways!==true)||(objMapConfig.showlistmaplink===true)){if((objMapConfig.showmaplink===true)&&(objMapConfig.showlistmaplink!==true)){if($('#mapShowHideLink').length===0){jqMapContainer.after('<a href="" id="mapShowHideLink">'+NewMind.ETWP.GetResource('NewMind.env.lang.resources.searchresults["dynamicmapping"]["showhidemaplink"]','Show / Hide Map')+'</a>');$('#mapShowHideLink').click(function(e){e.preventDefault();toggleSearchResultsMap(strMapId);});}}}var bDisplayMapNow;if(window.location.search.indexOf('autoshowmap')>-1){NewMind.mapping.DebugOutput("Display map immediately (QueryString)");bDisplayMapNow=true;}else if(objMapConfig.showalways){bDisplayMapNow=((objMapConfig.showlistmaplink!==true)||objMapConfig.showlistmaplinkbutshowmapfirst);if(bDisplayMapNow){NewMind.mapping.DebugOutput("Display map immediately (Control Configuration)");}}else{bDisplayMapNow=false;}if(bDisplayMapNow){var isIE10=$.browser.msie&&(parseInt($.browser.version,10)>=10);var isIE11Plus=!!navigator.userAgent.match(/Trident.*rv/)&&!$.browser.msie;if((objMapConfig.api==="googlev3")&&(isIE10||isIE11Plus)){setTimeout(function(){NewMind.mapping.DebugOutput("Applying workaround for IE10+ with Google where delayed initialisation is required");toggleSearchResultsMap(strMapId);},2000);}else{toggleSearchResultsMap(strMapId);}}var jqListMapContainer=$('div.listMapLinkContainer');if(jqListMapContainer.length>0&&jqMapContainer.length>0){var strMapId=jqMapContainer[0].id;var intCtrlKey=NewMind.ETWP.GetControlKey(jqMapContainer[0],true);if(objMapConfig.showlistmaplink===true){$('div.dynMapContainer').hide();$('div#mapProductList').hide();var mapText=NewMind.ETWP.GetResource('NewMind.env.lang.resources.searchresults["dynamicmapping"]["showasmap"]','Show as Map');var listText=NewMind.ETWP.GetResource('NewMind.env.lang.resources.searchresults["dynamicmapping"]["showaslist"]','Show as List');var mapListHTML='<ul class="listMapLinks"><li class="showListLink showList"><a href="">'+listText+'</a></li><li class="showMapLink"><a href="">'+mapText+'</a></li></ul>';jqListMapContainer.html(mapListHTML);$('.showListLink').click(function(e){e.preventDefault();$('.showListLink').addClass('showList');$('.showMapLink').removeClass('showMap');$('body').removeClass('mapShow');$("div.dynMapContainer").hide();$("div#mapProductList").hide();$("div.c"+intCtrlKey+" div.ProductListMain").show();if(objMapConfig.showfilters){$('div.ctl_SearchRefineSummary').show();}});$('.showMapLink').click(function(e){e.preventDefault();$('.showListLink').removeClass('showList');$('.showMapLink').addClass('showMap');$('body').addClass('mapShow');$("div.dynMapContainer").show();$("div#mapProductList").show();$("div.c"+intCtrlKey+" div.ProductListMain").hide();if(objMapConfig.showfilters){$('div.ctl_SearchRefineSummary').hide();}});$('.showMapLink').one('click',function(e){e.preventDefault();toggleSearchResultsMap(strMapId);});
6if(bDisplayMapNow){$('.showMapLink').trigger('click');}}}}NewMind.mapping.DebugOutput=function(strOut){if(!isDebugEnabled()){return;}var strId="DebugOutput";var objEleOut=document.getElementById(strId);if(!objEleOut){objEleOut=document.createElement("div");objEleOut.style.position="fixed";objEleOut.style.zIndex="5000";objEleOut.style.top=0;objEleOut.style.left=0;objEleOut.style.width="30%";if(jQuery.support.opacity){objEleOut.style.backgroundColor="rgba(0, 0, 255, 0.5)";}else{objEleOut.style.background="transparent";objEleOut.style.filter="progid:DXImageTransform.Microsoft.gradient(startColorstr=#7f0000ff,endColorstr=#7f0000ff)";}objEleOut.style.color="white";objEleOut.style.padding="1em";objEleOut.style.fontSize="10pt";objEleOut.id=strId;var objCont=document.body;if(objCont.childNodes.length===0){objCont.appendChild(objEleOut);}else{objCont.insertBefore(objEleOut,objCont.childNodes[0]);}}objEleOut.innerHTML+="["+formatTime(new Date())+"] "+strOut.replace(/\n/g,"<br/>")+"<br/>";function isDebugEnabled(){var objQuerystring=NewMind.ETWP.GetQuerystringData();var strDebugFlag=objQuerystring.get("MapDebug");if(strDebugFlag===null){return false;}strDebugFlag=String(strDebugFlag).toLowerCase();return((strDebugFlag==="1")||(strDebugFlag==="true"));}function formatTime(dtIn){var dtNow=new Date();return adjLen(dtNow.getHours(),2)+":"+adjLen(dtNow.getMinutes(),2)+":"+adjLen(dtNow.getSeconds(),2)+"."+adjLen(dtNow.getMilliseconds(),3);function adjLen(varIn,intLen){var strIn=String(varIn);while(strIn.length<intLen){strIn="0"+strIn;}return strIn;}}};});})();
7(function(){var MARKERTYPE_Dynamic="DynamicProduct";var MARKERTYPE_Itinerary="ItineraryProduct";var MARKERTYPE_Proximity="ProximityCentre";var MARKERTYPE_Static="StaticProduct";var MARKERTYPE_WayFinder="WayFinder";var MARKERTYPE_WhatsNearby="WhatsNearby";var ATTR_IsDynamicProductFullyPopulated="IsDynamicProductFullyPopulated";var ATTR_IsInfoBubbleOpen="IsInfoBubbleOpen";var ATTR_IsHidden="IsHidden";var ATTR_MarkerType="MarkerType";var ATTR_Product="Product";var FILTER_TYPE_CATEGORY="category";var FILTER_TYPE_CATEGORY_GROUP="categorygroup";var FILTER_TYPE_PRICE="price";var FILTER_TYPE_GRADING="grading";var FILTER_TYPE_BOOKABILITY="bookable";var FILTER_TYPE_FACILITY="facility";var FILTER_TYPE_TRIPADVISORRATING="tripadvisorrating";var HISTORY_overlay="mapoverlay";NewMind.registerNameSpace("NewMind.mapping").initialiseMapWidgets=function(mapstraction,config,objVisibleItemUpdater,objMarkerFilter,objItineraryItemRetriever,objIconRetriever,objCustomOverlay){if(!NewMind.mapping.DebugOutput){return;}if(!config.controlkey){NewMind.mapping.DebugOutput("initialiseMapWidgets: config.controlkey does not have a value");return;}if(!config.enableMapFilterProductTypesToggle){config.enableMapFilterProductTypesToggle=false;}if(!NewMind.ETWP||!NewMind.ETWP.ControlData||!NewMind.ETWP.ControlData[""+config.controlkey]||!NewMind.ETWP.ControlData[""+config.controlkey].ProductTypes){NewMind.mapping.DebugOutput("initialiseMapWidgets: NewMind.ETWP.ControlData["+config.controlkey+"].ProductTypes not defined");return;}if(!NewMind.ETWP||!NewMind.ETWP.GetResource){NewMind.mapping.DebugOutput("NewMind.ETWP.GetResource not defined");return;}var bEnableFilters=!!config.showfilters;var bEnableVisibleProductsList=!!config.showvisibleproductslist;if(!bEnableFilters&&!bEnableVisibleProductsList){NewMind.mapping.DebugOutput("initialiseMapWidgets: Neither bEnableFilters nor bEnableVisibleProductsList are enabled - no work to do");return;}var searchFilters=getUpdateableSearchFilters(mapstraction,config.api,NewMind.ETWP.ControlData[""+config.controlkey].ProductTypes,bEnableFilters,config.facilityIdsForFiltering,bEnableVisibleProductsList,config.orderproductsonmapsummaryalphabetically,objItineraryItemRetriever,objIconRetriever,config.enableMapFilterProductTypesToggle,config.enableTripAdvisorRefine);objMarkerFilter.RegisterFilter(function(objProduct,strMarkerType){return searchFilters.ShouldMarkerBeDisplayed(objProduct,strMarkerType);});objVisibleItemUpdater.SubscribeToDataLoads(function(intResultCount,arrDynamicData){var arrNonNullDynamicDataArray=intResultCount<=0?[]:arrDynamicData;searchFilters.Update(arrNonNullDynamicDataArray);});searchFilters.RegisterForFilterChanges(function(){objMarkerFilter.ReapplyFilters();});if(config.deselectAll){initaliseDeselectAll(config.controlkey,searchFilters);}if(objCustomOverlay){initaliseCustomOverlay(config.controlkey,objCustomOverlay);}};function initaliseCustomOverlay(controlkey,objCustomOverlay){var $mapFilters=$(".c"+controlkey).find(".mapFilters");objCustomOverlay.render($mapFilters);var strLocationHashIfAny=window.location.hash;var hashParameters=NewMind.ETWP.GetQuerystringData(strLocationHashIfAny?"?"+window.location.hash.substring(1):"",true);var strMapOverlaysFromUrlIfAny=hashParameters.get(HISTORY_overlay);if(!strMapOverlaysFromUrlIfAny){return;}var overlayIds=decodeURIComponent(strMapOverlaysFromUrlIfAny).split(",");for(var overlayIdsIndex=0;overlayIdsIndex<overlayIds.length;overlayIdsIndex++){var overlayIdSelector="#"+overlayIds[overlayIdsIndex];if(!$mapFilters.find(overlayIdSelector)){return;}$mapFilters.find(overlayIdSelector).attr("data-forcecheck","enabled").trigger("click");}}function initaliseDeselectAll(controlkey,searchFilters){var mapFilters=$(".c"+controlkey).find(".mapFilters");var deselectAllLabel=NewMind.ETWP.GetResource("NewMind.env.lang.resources.searchresults.dynamicmapping.deselectall","Deselect All");var $aDeselectAll=$("<a>");$aDeselectAll.attr("href","#").text(deselectAllLabel).click(function(e){e.preventDefault();
7var $inputs=mapFilters.find("input[type=checkbox]");$inputs.each(function(){$(this).attr("checked",false);});setTimeout(function(){resetHistory();searchFilters.ExecuteFilterChangeCallbacks();},10);});var $divWrapper=$("<div>");$divWrapper.addClass("deselectAll");$divWrapper.append($aDeselectAll);$divWrapper.insertAfter(mapFilters.find(">h3"));function resetHistory(){var original=NewMind.ETWP.GetQuerystringData(window.location.hash?("?"+window.location.hash.substring(1)):"",false).toString();if(!original||original.indexOf("?")===-1||original.indexOf("=")===-1){return;}history.replaceState(null,null,(original.split("=")[0]+"=").replace("?","#"));}}function getUpdateableSearchFilters(mapstraction,strApi,strProductTypesList,bEnableFilters,arrFacilityIdsForFiltering,bEnableVisibleProductsList,bOrderProductsOnMapSummaryAlphabetically,objItineraryItemRetriever,objIconRetriever,bEnableMapFilterProductTypesToggle,bEnableTripAdvisorRefine){var arrFilterChangeCallbacks=[];var arrProductsOnMapPrevious=[];var objWidgetData=initialiseAndReturnSearchFilterContainer(mapstraction,strApi,bEnableFilters,bEnableVisibleProductsList);objWidgetData.$searchFilterContainer.hide();objWidgetData.$productsOnMapContainer.hide();var categoryLabel=NewMind.ETWP.GetResource("NewMind.env.lang.resources.searchresults[\"dynamicmapping\"][\"categorylabel\"]","category");var priceLabel=NewMind.ETWP.GetResource("NewMind.env.lang.resources.searchresults[\"dynamicmapping\"][\"pricelabel\"]","price");var bookableLabel=NewMind.ETWP.GetResource("NewMind.env.lang.resources.searchresults[\"dynamicmapping\"][\"bookablelabel\"]","bookable");var gradingLabel=NewMind.ETWP.GetResource("NewMind.env.lang.resources.searchresults[\"dynamicmapping\"][\"gradinglabel\"]","grading");var facilityLabel=NewMind.ETWP.GetResource("NewMind.env.lang.resources.searchresults[\"dynamicmapping\"][\"facilitylabel\"]","facilities");var tripAdvisorLabel="<img src=\"/engine/shared_gfx/tripadvisor/detaillogo.png\" title=\"Tripadvisor\" alt=\"Tripadvisor\" />";var arrFilterGroupGroups=[{Name:categoryLabel,FilterGroups:getCategoryFilterGroups(categoryLabel,bEnableMapFilterProductTypesToggle),ClassName:"category"}];if(strProductTypesList==="ACCO"){arrFilterGroupGroups=arrFilterGroupGroups.concat([{Name:priceLabel,FilterGroups:getPriceFilterGroups(),ClassName:"price"},{Name:bookableLabel,FilterGroups:getBookableFilterGroups(),ClassName:"bookable"},{Name:gradingLabel,FilterGroups:getGradingFilterGroups(),ClassName:"gradings"}]);}arrFilterGroupGroups.push({Name:facilityLabel,FilterGroups:getFacilityFilterGroups(arrFacilityIdsForFiltering),ClassName:"facility"});if(bEnableTripAdvisorRefine)arrFilterGroupGroups.push({Name:tripAdvisorLabel,FilterGroups:getTripAdvisorFilterGroups(),ClassName:"tripadvisorrating"});var objPreSelectionHandler=getPreSelectionHandler();var arrUpdateableRenderedFilters=[];for(var intIndexParentGroup=0;intIndexParentGroup<arrFilterGroupGroups.length;intIndexParentGroup++){var objFilterParentGroup=arrFilterGroupGroups[intIndexParentGroup];var $groupWrapper=$("<fieldset/>");$groupWrapper.addClass(objFilterParentGroup.ClassName+(objFilterParentGroup.ClassName==="category"&&bEnableMapFilterProductTypesToggle?" sortByProductType":""));var $groupWrapperLegend=$("<legend/>");$groupWrapperLegend.html(objFilterParentGroup.Name);$groupWrapper.append($groupWrapperLegend);objWidgetData.$searchFilterContainer.append($groupWrapper);for(var intIndexGroup=0;intIndexGroup<objFilterParentGroup.FilterGroups.length;intIndexGroup++){var objFilterGroup=objFilterParentGroup.FilterGroups[intIndexGroup];var $list=$("<ul></ul>");for(var intIndexFilter=0;intIndexFilter<objFilterGroup.Filters.length;intIndexFilter++){var objFilter=objFilterGroup.Filters[intIndexFilter];var objUpdateableRenderedFilter=getUpdateableRenderedFilter(objFilter,"chk-"+intIndexParentGroup+"-"+intIndexGroup+"-"+intIndexFilter,objPreSelectionHandler);arrUpdateableRenderedFilters.push(objUpdateableRenderedFilter);$list.append(objUpdateableRenderedFilter.$ListItem);}var $fieldset;if(objFilterParentGroup.FilterGroups.length===1){$fieldset=$groupWrapper;}else{$fieldset=$("<fieldset style=\"display: block;\" />");$fieldset.addClass(objFilterGroup.ClassName);var $legend=$("<legend />");$legend.html((objFilterParentGroup.FilterGroups.length===1)?objFilterParentGroup.Name:objFilterGroup.Name);$fieldset.append($legend);$groupWrapper.append($fieldset);}$fieldset.append($list);}}if(objWidgetData.$searchFilterContainer.find(".category.sortByProductType").length===1){$categoriesWrapper=objWidgetData.$searchFilterContainer.find(".category.sortByProductType");$categoriesWrapper.find("> fieldset").each(function(){var $productTypeFieldset=$(this);$productTypeFieldset.addClass("open");var arrUncheckedInputs=[];
7$productTypeFieldset.find("> legend").click(function(){$productTypeFieldset.toggleClass("open");var arrInputsInLegend=[];var arrFilterGroupNamesInLegend=[];for(var i=0;i<arrUpdateableRenderedFilters.length;i++){var objUpdateableRenderedFilter=arrUpdateableRenderedFilters[i];var $checkbox=arrUpdateableRenderedFilters[i].$ListItem.find("input[type=checkbox]");if($checkbox.length===0){continue;}var $legendForCurrentFilter=arrUpdateableRenderedFilters[i].$ListItem.closest("fieldset").children("legend");if(($legendForCurrentFilter.length===0)||($legendForCurrentFilter[0]!==this)){continue;}if($.inArray(objUpdateableRenderedFilter.Filter.Type,arrFilterGroupNamesInLegend)===-1){arrFilterGroupNamesInLegend.push(objUpdateableRenderedFilter.Filter.Type);}NewMind.mapping.DebugOutput(i+"."+objUpdateableRenderedFilter.Filter.Type);arrInputsInLegend.push($checkbox[0]);}var bSectionIsNowDisplayed=$productTypeFieldset.hasClass("open");if(bSectionIsNowDisplayed){$(arrInputsInLegend).each(function(){var bUncheckedInputFound=false;for(var inputIndex=0;inputIndex<arrUncheckedInputs.length;inputIndex++){var $input=arrUncheckedInputs[inputIndex];if($(this).attr("id")===$input.attr("id")){$(this).attr('checked',false);bUncheckedInputFound=true;}}if(!bUncheckedInputFound){$(this).attr('checked',true);}if(!$(this).parent().hasClass("hasResults")){$(this).parent().css('display','none');}});arrUncheckedInputs=[];}else{$(arrInputsInLegend).each(function(){if(!$(this).attr('checked')){arrUncheckedInputs.push($(this));}$(this).attr('checked',false);if(!$(this).parent().hasClass("hasResults")){$(this).parent().css('display','none');}});}setTimeout(function(){for(var i=0;i<arrFilterGroupNamesInLegend.length;i++){objPreSelectionHandler.recordSelectionState(arrFilterGroupNamesInLegend[i]);}executeFilterChangeCallbacks();},10);});});}function getPreSelectionHandler(){var objAllRegisteredOptionIdsAndCheckedStateRetrievers={};var objSelections={};var strLocationHashIfAny=window.location.hash;if(strLocationHashIfAny){var hashParameters=NewMind.ETWP.GetQuerystringData("?"+strLocationHashIfAny.substring(1),true);var keys=hashParameters.getAllKeys();var bGotSomeMapRefineSelections=false;for(var i=0;i<keys.length;i++){var strKey=keys[i];if(strKey.substring(0,4)!=="map-"){continue;}var strValues=hashParameters.get(strKey);if(typeof(strValues)==="undefined"){continue;}var strGroupName=strKey.substring(4);objSelections[strGroupName]=objSelections[strGroupName]||[];if(strValues){var arrValues=strValues.split(',');for(var j=0;j<arrValues.length;j++){objSelections[strGroupName].push(arrValues[j]);}}bGotSomeMapRefineSelections=true;}}return{getPreSelectionStateIfKnown:function(strGroupName,strId){if(!bGotSomeMapRefineSelections){return null;}var arrOptionsForGroup=objSelections[strGroupName];if(typeof(arrOptionsForGroup)==="undefined"){return null;}for(var i=0;i<arrOptionsForGroup.length;i++){if(arrOptionsForGroup[i]===strId){return true;}}return false;},registerFilter:function(strGroupName,strId,fncGetCheckedState){objAllRegisteredOptionIdsAndCheckedStateRetrievers[strGroupName]=objAllRegisteredOptionIdsAndCheckedStateRetrievers[strGroupName]||[];objAllRegisteredOptionIdsAndCheckedStateRetrievers[strGroupName].push({Id:strId,GetCheckedState:fncGetCheckedState});},recordSelectionState:function(strGroupName){var arrAllOptionsForGroup=objAllRegisteredOptionIdsAndCheckedStateRetrievers[strGroupName];var arrSelectedIdsForGroup=[];if(arrAllOptionsForGroup){for(var i=0;i<arrAllOptionsForGroup.length;i++){if(arrAllOptionsForGroup[i].GetCheckedState()){arrSelectedIdsForGroup.push(arrAllOptionsForGroup[i].Id);}}}objSelections[strGroupName]=arrSelectedIdsForGroup;var arrUrlEncodedValues=[];for(var i=0;i<objSelections[strGroupName].length;i++){arrUrlEncodedValues.push(encodeURIComponent(objSelections[strGroupName][i]));}var hashParameters=NewMind.ETWP.GetQuerystringData(window.location.hash?("?"+window.location.hash.substring(1)):"",false);hashParameters.set("map-"+encodeURIComponent(strGroupName),arrUrlEncodedValues.join(","));var newHash=hashParameters.toString().replace("?","#");history.replaceState(null,null,newHash);}};}function executeFilterChangeCallbacks(){for(var intIndex=0;intIndex<arrFilterChangeCallbacks.length;intIndex++){arrFilterChangeCallbacks[intIndex]();}updateProductsOnMapDisplay();}function shouldMarkerBeDisplayed(objProduct,strMarkerType){if(strMarkerType==MARKERTYPE_Itinerary){return true;}if((strMarkerType===MARKERTYPE_Dynamic)||(strMarkerType==MARKERTYPE_Static)){var filtersByGroup={};for(var iFilterType=0;iFilterType<arrUpdateableRenderedFilters.length;iFilterType++){var filter=arrUpdateableRenderedFilters[iFilterType];var filterType=filter.Filter.Type;if(!filtersByGroup[filterType]){filtersByGroup[filterType]=[];}filtersByGroup[filterType].push(filter);}var filterTypes=Object.keys(filtersByGroup);for(var iFilterType=0;iFilterType<filterTypes.length;iFilterType++){var filterType=filterTypes[iFilterType];if(filtersByGroup[filterType].length===0){continue;}var isUnionFilter=false;var isApplicableForAnyUnionFilters=false;for(var iFilter=0;iFilter<filtersByGroup[filterType].length;iFilter++){var filter=filtersByGroup[filterType][iFilter];var bFilterIsEnabled=(filter.$ListItem.find("input:checked").length>0);isUnionFilter=!filter.Filter.SelectionsFilterDown;if(!bFilterIsEnabled){continue;}if(filter.Filter.SelectionsFilterDown){if(!filter.Filter.IsProductApplicable(objProduct)){return false;}}else{if(filter.Filter.IsProductApplicable(objProduct)){isApplicableForAnyUnionFilters=true;}}}if(isUnionFilter&&!isApplicableForAnyUnionFilters){return false;}}var arrItineraryItems=objItineraryItemRetriever.Get();var arrItineraryKeys=getKeysFromProductArray(arrItineraryItems);if(isInKeyArray(arrItineraryKeys,objProduct.product_key)){return false;}}return true;}function updateProductsOnMapDisplay(){if(objWidgetData.$productsOnMapContainer.length===0){return;}var arrVisibleProducts=[];var ptCentre=mapstraction.getCenter();for(var intIndex=mapstraction.markers.length-1;intIndex>=0;intIndex--){var marker=mapstraction.markers[intIndex];var strMarkerType=marker.getAttribute(ATTR_MarkerType);if(strMarkerType===MARKERTYPE_Dynamic){var bIncludeInList=!marker.getAttribute(ATTR_IsHidden
7);if(!bIncludeInList){for(var intIndexItin=0;intIndexItin<mapstraction.markers.length;intIndexItin++){var markerItin=mapstraction.markers[intIndexItin];if((markerItin.getAttribute(ATTR_MarkerType)===MARKERTYPE_Itinerary)&&!markerItin.getAttribute(ATTR_IsHidden)&&(markerItin.getAttribute(ATTR_Product).product_key===marker.getAttribute(ATTR_Product).product_key)){bIncludeInList=true;break;}}}if(bIncludeInList){arrVisibleProducts.push({DistanceFromCentre:ptCentre.distance(marker.location),MarkerType:strMarkerType,Product:marker.getAttribute(ATTR_Product)});}}}arrVisibleProducts.sort(function(a,b){var comparisonValueA=bOrderProductsOnMapSummaryAlphabetically?a.Product.product_name.toLowerCase():a.DistanceFromCentre;var comparisonValueB=bOrderProductsOnMapSummaryAlphabetically?b.Product.product_name.toLowerCase():b.DistanceFromCentre;if(comparisonValueA<comparisonValueB){return -1;}if(comparisonValueA>comparisonValueB){return 1;}return 0;});var bMatchPreviousList;if(arrVisibleProducts.length!==arrProductsOnMapPrevious.length){bMatchPreviousList=false;}else{bMatchPreviousList=true;for(var intIndex=0;intIndex<arrProductsOnMapPrevious.length;intIndex++){var objOld=arrProductsOnMapPrevious[intIndex];var objNew=arrVisibleProducts[intIndex];if((objOld.Product.product_key!==objNew.Product.product_key)||(objOld.MarkerType!==objNew.MarkerType)){bMatchPreviousList=false;break;}}}if(bMatchPreviousList){return;}objWidgetData.$productsOnMapContainer.find("ul").css({position:"absolute"}).fadeOut(function(){$(this).remove();});if(arrVisibleProducts.length===0){objWidgetData.$productsOnMapContainer.fadeOut();}else{objWidgetData.$productsOnMapContainer.fadeIn();var arrNewListContent=["<ul>"];for(var intIndex=0;intIndex<arrVisibleProducts.length;intIndex++){var objEntry=arrVisibleProducts[intIndex];arrNewListContent=arrNewListContent.concat("<li><a class=\"pk_",objEntry.Product.product_key,"\" href=\"#\"><img src=\"",encodeURI(objIconRetriever.Get(objEntry.MarkerType,objEntry.Product.prodtype_id,objEntry.Product.topcategory_id)),"\" /></a><a class=\"pk_",objEntry.Product.product_key,"\" href=\"#\">",objEntry.Product.product_name,"</a>",objEntry.Product.address4?", ":"",objEntry.Product.address4?objEntry.Product.address4:"","</li>");}arrNewListContent.push("</ul>");var $newList=$(arrNewListContent.join(""));$newList.find("a").click(productsOnMapLinkClick);$newList.hide();objWidgetData.$productsOnMapContainer.append($newList);$newList.fadeIn();}arrProductsOnMapPrevious=arrVisibleProducts;}function productsOnMapLinkClick(){var strClassName=(""+this.className);if(!strClassName.substring(0,3)==="pk_"){NewMind.mapping.DebugOutput("Invalid ProductsOnMap list item class: "+strClassName);return false;}var intProductKey=parseInt(this.className.split("_")[1],10);if(isNaN(intProductKey)){NewMind.mapping.DebugOutput("Invalid ProductsOnMap list item class: "+strClassName);return false;}var $map=$(mapstraction.currentElement);if(!isElementCompletelyInVerticalView($map)){$("html, body").animate({scrollTop:$map.offset().top-16},500);}for(var intIndex=mapstraction.markers.length-1;intIndex>=0;intIndex--){var marker=mapstraction.markers[intIndex];var strMarkerType=marker.getAttribute(ATTR_MarkerType);if((strMarkerType===MARKERTYPE_Dynamic)||(strMarkerType===MARKERTYPE_Itinerary)||(strMarkerType===MARKERTYPE_Static)){if(!marker.getAttribute(ATTR_IsHidden)&&(marker.getAttribute(ATTR_Product).product_key===intProductKey)){marker.openBubble();return false;}}};NewMind.mapping.DebugOutput("ProductsOnMap link, unable to find marker for "+intProductKey);return false;function isElementCompletelyInVerticalView($ele){var intDocTop=(document.documentElement.scrollTop||document.body.scrollTop);var intEleTop=$ele.offset().top;if(intEleTop<intDocTop){return false;}var intViewHeight=(window.innerHeight&&window.innerHeight<$(window).height())?window.innerHeight:$(window).height();return($ele.height()+intEleTop)<(intDocTop+intViewHeight);}}return{ShouldMarkerBeDisplayed:shouldMarkerBeDisplayed,RegisterForFilterChanges:function(fncCallback){arrFilterChangeCallbacks.push(fncCallback);},Update:function(arrDynamicData){if(arrDynamicData.length===0){objWidgetData.$searchFilterContainer.fadeOut();objWidgetData.$productsOnMapContainer.hide();return;}objWidgetData.$searchFilterContainer.fadeIn();objWidgetData.$productsOnMapContainer.show();for(var intIndex=0;intIndex<arrUpdateableRenderedFilters.length;intIndex++){var objUpdateableRenderedFilter=arrUpdateableRenderedFilters[intIndex];objUpdateableRenderedFilter.Update(arrDynamicData);}objWidgetData.$searchFilterContainer.find("fieldset").each(function(){var $this=$(this);if($this.find("li.hasResults").length===0){$this.fadeOut();}else{$this.fadeIn();}});updateProductsOnMapDisplay();},ExecuteFilterChangeCallbacks:executeFilterChangeCallbacks};function getUpdateableRenderedFilter(objFilter,strId,objPreSelectionHandler){var $input;if(objFilter.Type==="tripadvisorrating"){$input=$("<input type=\"radio\" name=\""+objFilter.Type+"\" />");}
7else $input=$("<input type=\"checkbox\" />");$input.attr("id",strId);$input.click(function(){setTimeout(function(){objPreSelectionHandler.recordSelectionState(objFilter.Type);executeFilterChangeCallbacks();},10);});var bChecked;var bPreSelectionStateIfKnown=objPreSelectionHandler.getPreSelectionStateIfKnown(objFilter.Type,objFilter.Id);if(bPreSelectionStateIfKnown===true){bChecked=true;}else if(bPreSelectionStateIfKnown===false){bChecked=false;}else{if(objFilter.SelectionsFilterDown){bChecked=false;}else{bChecked=true;}}if(objFilter.Type==="tripadvisorrating"&&objFilter.Id==="donotfilter"&&!bPreSelectionStateIfKnown){bChecked=true;for(var tripAdvisorRatingIndex=5;tripAdvisorRatingIndex>0;tripAdvisorRatingIndex--){if(objPreSelectionHandler.getPreSelectionStateIfKnown(objFilter.Type,""+tripAdvisorRatingIndex)){bChecked=false;break;}}}$input.attr("checked",bChecked);objPreSelectionHandler.registerFilter(objFilter.Type,objFilter.Id,function(){return $input.attr("checked");});var $label=$(["<label>","<span class=\"filterValue\" />","<span class=\"numOfProds\" />","</label>"].join(""));$label.attr("for" ,strId);function setLabelText(name){$label.find(".filterValue").html(name);}setLabelText(objFilter.Name);var $listItem=$("<li style=\"display: block;\" />");$listItem.hide();$listItem.append($input);$listItem.append($label);return{Filter:objFilter,$ListItem:$listItem,Update:function(arrDynamicData){var intCount=0;for(var intIndex=0;intIndex<arrDynamicData.length;intIndex++){if(objFilter.IsProductApplicable(arrDynamicData[intIndex])){intCount++;}}$label.find(".numOfProds").html("("+intCount+")");if(intCount===0){$listItem.fadeOut().removeClass("hasResults");}else{$listItem.fadeIn().addClass("hasResults");if($listItem.parent().parent().parent().hasClass("sortByProductType")){setTimeout(function(){if($listItem.parent().find("li.hasResults").length>1)$listItem.parent().parent().removeClass("hide");else $listItem.parent().parent().addClass("hide");},10);}}setLabelText(objFilter.Name);}};}function initialiseAndReturnSearchFilterContainer(mapstraction,strApi,bEnableFilters,bEnableVisibleProductsList){var $mapContainer=$(mapstraction.currentElement);$mapContainer.addClass("mapView");var strNewContent="";if(bEnableFilters){var strSearchFilters=NewMind.ETWP.GetResource("NewMind.env.lang.resources.searchresults[\"dynamicmapping\"][\"searchfilters\"]","Search Filters");var strContainerClass=(strApi==="microsoftv7"?"dynMapContainer2 mapView":"dynMapContainer mapView googleView");strNewContent+=["<div class=\"",strContainerClass,"\">","<div id=\"mapFilters\" class=\"mapFilters\">","<h3>",strSearchFilters,"</h3>","</div>","</div>"].join("");}if(bEnableVisibleProductsList){var strProductsOnMap=NewMind.ETWP.GetResource("NewMind.env.lang.resources.searchresults[\"dynamicmapping\"][\"productsonmap\"]","Products on Map");strNewContent+=["<div id=\"mapProductList\">","<div class=\"mapProductListContent\" style=\"position: relative;\">","<h3>",strProductsOnMap,"</h3>","<div></div>","</div>","</div>"].join("");}var $overallWidgetContainer=$(strNewContent);$mapContainer.after($overallWidgetContainer);return{$productsOnMapContainer:$overallWidgetContainer.parent().find(".mapProductListContent").children("div"),$searchFilterContainer:$overallWidgetContainer.find(".mapFilters")};}function getSingleProductTypeCategoryGroups(categoryGroups,categories){var singleProductTypeCategoryGroups=[];for(var categoryGroupIndex=0;categoryGroupIndex<categoryGroups.length;categoryGroupIndex++){var currentCategoryGroup=categoryGroups[categoryGroupIndex];var categoryGroupKeys=currentCategoryGroup.catkeys.split(",");for(var innerCategoryKeyIndex=0;innerCategoryKeyIndex<categoryGroupKeys.length;innerCategoryKeyIndex++){var currentCategory=null;for(var i=0;i<categories.length;i++){if(categories[i].category_key===parseInt(categoryGroupKeys[innerCategoryKeyIndex],10)){currentCategory=categories[i];break;}}if(!currentCategory){NewMind.ETWP.Trace.PrintTraceWarning("Invalid category key:"+parseInt(categoryGroupKeys[innerCategoryKeyIndex],10));continue;}var singleProductTypeCategoryGroup=null;for(var i=0;i<singleProductTypeCategoryGroups.length;i++){if(singleProductTypeCategoryGroups[i].productType.id===currentCategory.productType.id){singleProductTypeCategoryGroup=singleProductTypeCategoryGroups[i];break;}}if(!singleProductTypeCategoryGroup){singleProductTypeCategoryGroup={productType:currentCategory.productType,catgrps:[]};singleProductTypeCategoryGroups.push(singleProductTypeCategoryGroup);}var categoryGroupToAddTo=null;for(var singleProductTypeCategoryGroupIndex=0;singleProductTypeCategoryGroupIndex<singleProductTypeCategoryGroup.catgrps.length;singleProductTypeCategoryGroupIndex++){if(singleProductTypeCategoryGroup.catgrps[singleProductTypeCategoryGroupIndex].catgrpid===currentCategoryGroup.catgrpid){categoryGroupToAddTo=singleProductTypeCategoryGroup.catgrps[singleProductTypeCategoryGroupIndex];break;}}if(!categoryGroupToAddTo){categoryGroupToAddTo={catgrpid:currentCategoryGroup.catgrpid,catgrpname:currentCategoryGroup.catgrpname,catkeys:""};singleProductTypeCategoryGroup.catgrps.push(categoryGroupToAddTo);}if(categoryGroupToAddTo.catkeys!==""){categoryGroupToAddTo.catkeys+=(","+currentCategory.category_key);}else{categoryGroupToAddTo.catkeys=""+currentCategory.category_key;}}}return singleProductTypeCategoryGroups;}function getSingleProductTypeCategories(categories){var singleProductTypeCategoryGroups=[];for(var categoryIndex=0;categoryIndex<categories.length;categoryIndex++){var currentCategory=categories[categoryIndex];var singleProductTypeCategoryGroup=null;for(var i=0;i<singleProductTypeCategoryGroups.length;i++){if(singleProductTypeCategoryGroups[i].productType.id===currentCategory.productType.id){singleProductTypeCategoryGroup=singleProductTypeCategoryGroups[i];break;}}if(!singleProductTypeCategoryGroup){singleProductTypeCategoryGroup={productType:currentCategory.productType,catgrps:[]};singleProductTypeCategoryGroups.push(singleProductTypeCategoryGroup);}var categoryToAddTo=null;for(var singleProductTypeCategoryGroupIndex=0;singleProductTypeCategoryGroupIndex<singleProductTypeCategoryGroup.catgrps.length;singleProductTypeCategoryGroupIndex++){if(singleProductTypeCategoryGroup.catgrps[singleProductTypeCategoryGroupIndex].catgrpid===currentCategory.catgrpid){categoryGroupToAddTo=singleProductTypeCategoryGroup.catgrps[singleProductTypeCategoryGroupIndex];break;}}if(!categoryToAddTo){categoryToAddTo=currentCategory;singleProductTypeCategoryGroup.catgrps.push(categoryToAddTo);}}return singleProductTypeCategoryGroups;}function getTripAdvisorFilterGroups(){var strLangRoot="NewMind.env.lang.resources.searchresults[\"dynamicmapping\"][\"filters\"][\"tripadvisorratings\"]";var filters=[];var index=5;for(;index>=1;index--){var imageurl="/engine/shared_gfx/tripadvisor/tripadvisorrating_"+index+"_0.svg";filters.push(buildTripAdvisorRatingsFilter(index,imageurl));}var doNotFilter={Type:FILTER_TYPE_TRIPADVISORRATING,Id:"donotfilter",Name:NewMind.ETWP.GetResource(strLangRoot+"[\"donotfilter\"]","Do not filter"),SelectionsFilterDown:true,IsProductApplicable:function(objProduct){return(objProduct?true:false);}};filters.push(doNotFilter);return [{Name:"TripAdvisorRatings",Filters:filters}];}function buildTripAdvisorRatingsFilter(sglRating,imageUrl){var strOrMore=(sglRating<5?"<span>"+NewMind.ETWP.GetResource("NewMind.env.lang.resources.searchresults[\"dynamicmapping\"][\"ormore\"]","or more")+"</span>":"<span></span>");return{Type:FILTER_TYPE_TRIPADVISORRATING,Id:""+sglRating,Name:"<img src=\""+imageUrl+"\" alt=\""+sglRating+"\" title=\""+sglRating+"\" >"+strOrMore,SelectionsFilterDown:true,IsProductApplicable:function(objProduct){if(objProduct.tripadvisorrating){if(objProduct.tripadvisorrating>=sglRating)return true;}return false;}};}function getBookableFilterGroups(){var strLangRoot="NewMind.env.lang.resources.searchresults[\"dynamicmapping\"][\"filters\"][\"bookable\"]";return [{Name:"IsBookable",Filters:[{Type:FILTER_TYPE_BOOKABILITY,Id:"1",Name:NewMind.ETWP.GetResource(strLangRoot+"[\"bookableonline\"]","Bookable online"),SelectionsFilterDown:false,IsProductApplicable:function(objProduct){return objProduct.bookable;}},{Type:FILTER_TYPE_BOOKABILITY,Id:"0",Name:NewMind.ETWP.GetResource(strLangRoot+"[\"notbookableonline\"]","Not bookable online"),SelectionsFilterDown:false,IsProductApplicable:function(objProduct){return !objProduct.bookable;}}]}];}function getCategoryFilterGroups(categoryLabel,bEnableMapFilterProductTypesToggle){if(!NewMind.env.page.cats){try{console.warn("The NewMind.env.page.cats data has not been specified - this most commonly indicates that no Product Types have been specified on the Page (Product Types must be specified to enable Dynamic Mapping filters)");}catch(e){}return [];}var arrFilterGroups=[];var arrAssignedCategories=[];var categoryGroups=NewMind.env.page.catgrps;var filterGroupName;if(categoryGroups&&(categoryGroups.length>0)){filterGroupName=FILTER_TYPE_CATEGORY_GROUP;var productTypeCategoryGroups;if(bEnableMapFilterProductTypesToggle){productTypeCategoryGroups=getSingleProductTypeCategoryGroups(categoryGroups,NewMind.env.page.cats);}else{productTypeCategoryGroups=[{productType:{name:categoryLabel,id:""},catgrps:categoryGroups}];}if(productTypeCategoryGroups.length>1){productTypeCategoryGroups.sort(function(a,b){return a.productType.sequence-b.productType.sequence});}for(var intIndexProductType=0;intIndexProductType<productTypeCategoryGroups.length;intIndexProductType++){var arrFilters=[];var objProductTypeCategoryGroupData=productTypeCategoryGroups[intIndexProductType];arrFilterGroups.push({Name:objProductTypeCategoryGroupData.productType.name,Filters:arrFilters,ClassName:objProductTypeCategoryGroupData.productType.id.toLowerCase()});for(var intIndex=0;intIndex<objProductTypeCategoryGroupData.catgrps.length;intIndex++){var objCategoryGroup=objProductTypeCategoryGroupData.catgrps[intIndex];var categoryGroupAssignedCategoryKeys=csvToKeyArray(objCategoryGroup.catkeys);var arrCategoryKeysWithoutCrossover=getKeysNotIn(csvToKeyArray(objCategoryGroup.catkeys),arrAssignedCategories);var strFilterId=objCategoryGroup.catgrpid;if(objProductTypeCategoryGroupData.productType.id){strFilterId=objProductTypeCategoryGroupData.productType.id+"-"+strFilterId;}arrFilters.push(getCategoryFilter(objCategoryGroup.catgrpname,categoryGroupAssignedCategoryKeys,filterGroupName,strFilterId));arrAssignedCategories=arrAssignedCategories.concat(arrCategoryKeysWithoutCrossover);}}if(productTypeCategoryGroups.length>1){arrFilterGroups.push({Name:NewMind.ETWP.GetResource("NewMind.env.lang.resources.searchresults[\"dynamicmapping\"][\"filters\"][\"other\"]","Other"),Filters:[],ClassName:"other"});}}else if(NewMind.env.page.cats.length>0){filterGroupName=FILTER_TYPE_CATEGORY;var productTypeCategoryGroups;if(bEnableMapFilterProductTypesToggle){productTypeCategoryGroups=getSingleProductTypeCategories(NewMind.env.page.cats);}else{productTypeCategoryGroups=[{productType:{name:categoryLabel,id:""},catgrps:NewMind.env.page.cats}];}productTypeCategoryGroups.sort(function(a,b){return a.productType.sequence-b.productType.sequence});for(var intIndexProductType=0;intIndexProductType<productTypeCategoryGroups.length;intIndexProductType++){var arrFilters=[];var objProductTypeCategoryGroupData=productTypeCategoryGroups[intIndexProductType];arrFilterGroups.push({Name:objProductTypeCategoryGroupData.productType.name,Filters:arrFilters,ClassName:objProductTypeCategoryGroupData.productType.id.toLowerCase()});for(var intIndex=0;intIndex<objProductTypeCategoryGroupData.catgrps.length;intIndex++){var objCategoryGroup=objProductTypeCategoryGroupData.catgrps[intIndex];arrFilters.push(getCategoryFilter(objCategoryGroup.category,[objCategoryGroup.category_key],filterGroupName,""+objCategoryGroup.category_key));arrAssignedCategories=arrAssignedCategories.concat(objCategoryGroup.category_key);}}if(productTypeCategoryGroups.length>1){arrFilterGroups.push({Name:NewMind.ETWP.GetResource("NewMind.env.lang.resources.searchresults[\"dynamicmapping\"][\"filters\"][\"other\"]","Other"),Filters:[],ClassName:"other"});}}else{return [];}arrFilterGroups[arrFilterGroups.length-1].Filters.push({Type:filterGroupName,Id:"other",Name:NewMind.ETWP.GetResource("NewMind.env.lang.resources.searchresults[\"dynamicmapping\"][\"filters\"][\"filter\"][\"other\"]","Other"),SelectionsFilterDown:false,IsProductApplicable:function(objProduct){if(objProduct.categories){if(objProduct.categories.length<1){return false;}return doAnyArrayElementsNotIntersect(arrAssignedCategories,objProduct.categories);}return !isInKeyArray(arrAssignedCategories,objProduct.topcategory_key);}});for(var intIndex=0;intIndex<arrFilterGroups.length;intIndex++){arrFilterGroups[intIndex].Filters.sort(function(a,b){if(a.Name<b.Name){return -1;}if(a.Name>b.Name){return 1;}return 0;});}return arrFilterGroups;function getCategoryFilter(strName,arrCategoryKeys,strFilterGroupName,strFilterGroupId){return{Type:strFilterGroupName,Id:strFilterGroupId,Name:strName,SelectionsFilterDown:false,IsProductApplicable:function(objProduct){if(objProduct.categories){if(arrCategoryKeys.length<1||objProduct.categories.length<1){return false;}return doArraysIntersect(arrCategoryKeys,objProduct.categories);}return isInKeyArray(arrCategoryKeys,objProduct.topcategory_key);}};}function csvToKeyArray(strValue){var arrValues=[];var arrValuesRaw=strValue.split(",");for(var intIndex=0;intIndex<arrValuesRaw.length;intIndex++){arrValues.push(parseInt(arrValuesRaw[intIndex],10));}return arrValues;}function getKeysNotIn(arrSource,arrExclude){var arrOut=[];for(var intIndex=0;intIndex<arrSource.length;intIndex++){if(!isInKeyArray(arrExclude,arrSource[intIndex])){arrOut.push(arrSource[intIndex]);}}return arrOut;}}function getGradingFilterGroups(){var strStars=NewMind.ETWP.GetResource("NewMind.env.lang.resources.searchresults[\"dynamicmapping\"][\"filters\"][\"grading\"][\"star(s)\"]","Star(s)");var strAwaitingGrading=NewMind.ETWP.GetResource("NewMind.env.lang.resources.searchresults[\"dynamicmapping\"][\"filters\"][\"grading\"][\"awaitinggrading(s)\"]","Awaiting grading");var arrFilters=[{Type:FILTER_TYPE_GRADING,Id:"x",Name:strAwaitingGrading,SelectionsFilterDown:false,IsProductApplicable:function(objProduct){return(getGradingForProduct(objProduct)===0);}}];for(var intIndex=1;intIndex<=5;intIndex++){arrFilters.push(getGradingFilter(intIndex));}return [{Name:"Gradings",Filters:arrFilters}];function getGradingFilter(intGradingValue){return{Type:FILTER_TYPE_GRADING,Id:""+intGradingValue,Name:intGradingValue+" "+strStars,SelectionsFilterDown:false,IsProductApplicable:function(objProduct){return(getGradingForProduct(objProduct)===intGradingValue);}};}function getGradingForProduct(objProduct){var intGrading=0;if(objProduct.gradings){for(var intIndex=0;intIndex<objProduct.gradings.length;intIndex++){var intGradeEntryValue=objProduct.gradings[intIndex].maxgrading;if(intGradeEntryValue>intGrading){intGrading=intGradeEntryValue;}}}return intGrading;}}function getFacilityFilterGroups(facilityIds){var facilityIds=facilityIds||[];var arrFilters=[];for(var i=0;i<facilityIds.length;i++){arrFilters.push(getFacilityFilter(facilityIds[i]));}return [{Name:"Facilities",Filters:arrFilters}];function getFacilityFilter(facilityId){var filter={Type:FILTER_TYPE_FACILITY,Id:facilityId,Name:"FAC"+"-"+facilityId,SelectionsFilterDown:true,IsProductApplicable:function(product){if(!product.facilitiesOfInterest){return false;}for(var i=0;i<product.facilitiesOfInterest.length;i++){if((""+product.facilitiesOfInterest[i].id).toLowerCase()===(""+facilityId).toLowerCase()){filter.Name=product.facilitiesOfInterest[i].name;return true;}}return false;}};return filter;}}function getPriceFilterGroups(){var strLangRoot="NewMind.env.lang.resources.searchresults[\"dynamicmapping\"][\"filters\"][\"price\"]";var sngValue50=parseFloat(NewMind.ETWP.GetResource(strLangRoot+"[\"value50\"]",""),10);if(isNaN(sngValue50)){sngValue50=50;}var sngValue100=parseFloat(NewMind.ETWP.GetResource(strLangRoot+"[\"value100\"]",""),10);if(isNaN(sngValue100)){sngValue100=100;}return [{Name:"Price",Filters:[{Type:FILTER_TYPE_PRICE,Id:"-"+sngValue50,Name:NewMind.ETWP.GetResource(strLangRoot+"[\"lessthan50\"]","Less than £"+sngValue50),SelectionsFilterDown:false,IsProductApplicable:function(objProduct){return(objProduct
7.min_price<sngValue50);}},{Type:FILTER_TYPE_PRICE,Id:sngValue50+"-"+sngValue100,Name:NewMind.ETWP.GetResource(strLangRoot+"[\"between50and100\"]","Between £"+sngValue50+" and £"+sngValue100),SelectionsFilterDown:false,IsProductApplicable:function(objProduct){return((objProduct.min_price>=sngValue50)&&(objProduct.min_price<=sngValue100));}},{Type:FILTER_TYPE_PRICE,Id:sngValue100+"-",Name:NewMind.ETWP.GetResource(strLangRoot+"[\"greaterthan100\"]","Greater than £"+sngValue100),SelectionsFilterDown:false,IsProductApplicable:function(objProduct){return(objProduct.min_price>sngValue100);}}]}];}}function isInKeyArray(arrKeys,intKey){if(Array.prototype.indexOf){return arrKeys.indexOf(intKey)!==-1;}for(var intIndex=0;intIndex<arrKeys.length;intIndex++){if(arrKeys[intIndex].product_key===intKey){return true;}}return false;}function doArraysIntersect(firstArray,secondArray){for(var i=0;i<secondArray.length;i++){if(isInKeyArray(firstArray,secondArray[i])){return true;}}return false;}function doAnyArrayElementsNotIntersect(firstArray,secondArray){for(var i=0;i<secondArray.length;i++){if(!isInKeyArray(firstArray,secondArray[i])){return true;}}return false;}function getKeysFromProductArray(arrProducts){var arrProductKeys=[];for(var intIndex=0;intIndex<arrProducts.length;intIndex++){arrProductKeys.push(arrProducts[intIndex].product_key);}return arrProductKeys;}})();
8NewMind.registerNameSpace('NewMind.DataCapture').ProductList=(function(){"use strict";var ProductListed=function(iProductKey,iPagePosition,$Product,pageNumber){if(typeof(iProductKey)==="undefined"||isNaN(iPagePosition)||!$Product){throw new Error("(Data Capture) Could not create a Product Listed event.");}var productListed={type:"productListed",productId:iProductKey,position:iPagePosition,id:NewMind.DataCapture.Core.generateNewEventId()};if(!isNaN(pageNumber)){productListed.page=pageNumber;}if($Product.hasClass("Available")){productListed.bookableProduct=true;}var priceFrom=$Product.find("span.priceFrom>span.priceValue").text(),priceTo=$Product.find("span.priceTo>span.priceValue").text(),price={};if(""+priceFrom!==""){price.From=priceFrom;}if(""+priceTo!==""){price.To=priceTo;}if(price.To||price.From){productListed.price=price;}var categoryGrouping;if($Product.attr("class").indexOf(" cat_")!==-1&&$Product.attr("class").split(" cat_").length>1&&$Product.attr("class").split(" cat_")[1].split(" ").length){categoryGrouping=$Product.attr("class").split(" cat_")[1].split(" ")[0];}if(categoryGrouping){productListed.categoryGrouping=categoryGrouping;}var eleProduct=$Product[0];if(eleProduct){var arrClasses=eleProduct.classList;for(var i=0;i<arrClasses.length;i++){var strClass=arrClasses[i];if(strClass.substr(0,2)!=="ll"){continue;}var intListingLevelValue=parseInt(strClass.substr(2),10);if(intListingLevelValue){productListed.listingLevel=intListingLevelValue;}}}return productListed;};var ProductSummaryList=function(iControl,strCausedBy,products){var objControlData=NewMind.ETWP.ControlData[iControl];if(typeof(objControlData)==="undefined"){throw new Error("(Data Capture) ControlData["+iControl+"] was empty.");}var productSummaryList={type:"productSummaryList",id:NewMind.DataCapture.Core.generateNewEventId(),controlId:iControl,pageViewId:NewMind.DataCapture.PageView.PageViewEventId,causedBy:strCausedBy,total:products?products.length:objControlData.Total};var dynamicSearchTypeId="Dynamic Search",dynamicSearchStandaloneTypeId="Standalone";var pageNumber;if(objControlData.Type&&(objControlData.Type===dynamicSearchTypeId||objControlData.Type===dynamicSearchStandaloneTypeId)){pageNumber=objControlData.Page?objControlData.Page:1;productSummaryList.pageNumber=pageNumber;}var productsListed=getProductsListed(iControl,objControlData,pageNumber,products);var sortOrder=objControlData.SortOrder?objControlData.SortOrder:"";var querystringData=NewMind.ETWP.GetQuerystringData(window.location.search,true);if(typeof(querystringData.order)!=="undefined"){sortOrder=querystringData.order;}if(sortOrder!==""){productSummaryList.sortOrder=sortOrder;}if(objControlData.Date){productSummaryList.date=objControlData.Date;}if(objControlData.Type&&(objControlData.Type===dynamicSearchTypeId||objControlData.Type===dynamicSearchStandaloneTypeId)&&NewMind.DataCapture.PageView.CausalIdIfKnown){productSummaryList.causalId=NewMind.DataCapture.PageView.CausalIdIfKnown;}if(objControlData.Type){productSummaryList.listType=objControlData.Type;}if(productsListed){productSummaryList.productsListed=productsListed;}if($(".c"+iControl).find(".slick-track").length){productSummaryList.total=productsListed.length;}return productSummaryList;};function getProductsListed(iControlId,objControlData,pageNumber,products){if(!objControlData||typeof objControlData.ProductKeys==="undefined"){throw new Error("(Data Capture) There should always be a \"ProductKeys\" member available on a control's data when gathering products listed.");}else if(objControlData.ProductKeys.length===0){return;}var $products;if(products){$products=products;}else{if(objControlData.ItemsToShow){$products=$(objControlData.ItemsToShow);}else if($(".c"+iControlId).find(".swipeGalleryInner").children().length){$products=$(".c"+iControlId).find(".swipeGalleryInner").children();}else if($(".c"+iControlId).find(".WrapperShow").children().length){$products=$(".c"+iControlId).find(".WrapperShow").children();}else if($(".c"+iControlId).find(".slick-track").children().length){$products=$(".c"+iControlId).find(".slick-track").children(".slick-active");}else if($(".c"+iControlId).find(".ItemWrapper").children().length){$products=$(".c"+iControlId).find(".ItemWrapper").children();}
8else if($(".c"+iControlId).find("ol.productList").children().length){$products=$(".c"+iControlId).find("ol.productList").children();}else if($(".c"+iControlId).find("ol.recentlyViewedProducts").children().length){$products=$(".c"+iControlId).find("ol.recentlyViewedProducts").children();}else if($(".c"+iControlId).find("div.ProductListMain > ol").children().length){$products=$(".c"+iControlId).find("div.ProductListMain > ol").children();}else{throw new Error("(Data Capture) Could not find product container.");}}var productsListed=[],arrProductKeysListed=objControlData.ProductKeys.map(function(x){return parseInt(x);});$products.each(function(){var $product=$(this);var positionFromClassAttribute=(function(){var strClassNames=$product.attr("class");if(!strClassNames){return;}var arrClassNames=strClassNames.split(" ");for(var iClassIndex=0;iClassIndex<arrClassNames.length;iClassIndex++){if(arrClassNames[iClassIndex].indexOf("Item")===0&&!isNaN(arrClassNames[iClassIndex].charAt(4))){return parseFloat(arrClassNames[iClassIndex].slice(4));}}}());if(isNaN(positionFromClassAttribute)){return;}var bValidProduct=true;if(objControlData.ItemsThatWillBeShown){bValidProduct=false;for(var iItemToShowIndex=0;iItemToShowIndex<objControlData.ItemsThatWillBeShown.length;iItemToShowIndex++){if(positionFromClassAttribute===objControlData.ItemsThatWillBeShown[iItemToShowIndex]){bValidProduct=true;}}}if(!bValidProduct){return;}var productKey;for(var iProductsListedIndex=0;iProductsListedIndex<arrProductKeysListed.length;iProductsListedIndex++){productKey=arrProductKeysListed[iProductsListedIndex];if($product.hasClass("p"+productKey)){return productsListed.push(new ProductListed(productKey,positionFromClassAttribute+1,$product,pageNumber));}}throw new Error("(Data Capture) Could not pair up a product Id to the markup.");});return productsListed;}function productSummaryListWork(eventName,arrArguments){if(typeof(arrArguments)==="undefined"||arrArguments.length===0){return;}var iControlId=Math.abs(arrArguments[0]),$control=$(".c"+iControlId);var strCausedBy=arrArguments.length>1&&arrArguments[1]?arrArguments[1]:"initial load";if($control.parent().closest(".ctl_Tabs").length){if(!$control.parent().closest(".ctl_Tabs").hasClass("dataCaptureInitialised")){$control.parent().closest(".ctl_Tabs").addClass("dataCaptureInitialised");
8var tabControlId=NewMind.ETWP.GetControlKey($control.parent().closest(".ctl_Tabs"));NewMind.ETWP.ActiveTabSwitchers["tabs"+tabControlId].TabChange.subscribe(function(e){var $activeContainer=getActiveTabContainer($control);if($activeContainer){NewMind.DataCapture.Core.record(new ProductSummaryList(NewMind.ETWP.GetControlKey($activeContainer),strCausedBy));}});}var $activeContainer=getActiveTabContainer($control);if(!$activeContainer||iControlId!==NewMind.ETWP.GetControlKey($activeContainer)){return;}}NewMind.DataCapture.Core.record(new ProductSummaryList(iControlId,strCausedBy));}function getActiveTabContainer($control){if(!$control.parent().closest(".ctl_Tabs")){return;}var activeTabId=$control.parent().closest(".ctl_Tabs").find("ul.tabNav > li.selected > a").attr("id");var $activeContainer=$control.parent().closest(".ctl_Tabs").find("#"+activeTabId.split("tabnav_")[1]).find(".sys_control");return $activeContainer;}$(".ctl_RecentlyViewedProducts").each(function(){productSummaryListWork(null,[NewMind.ETWP.GetControlKey($(this))]);});$(".ctl_ProductList").each(function(){productSummaryListWork(null,[NewMind.ETWP.GetControlKey($(this))]);});if(typeof $.fn.on==="function" ){$('.slick-initialized').on("afterChange",function(event,slick,currentSlide){slickOnChange(event,slick,currentSlide)});}else if(typeof $.fn.bind==="function" &&typeof $('.slick-initialized')!=="undefined"){$('.slick-initialized').bind("afterChange",function(event,slick,currentSlide){slickOnChange(event,slick,currentSlide)});}function slickOnChange(event,slick,currentSlide){var $controlContainer=$(this).closest(".sys_control");
8var iControlKey=NewMind.ETWP.GetControlKey($controlContainer);if(typeof NewMind.ETWP.ControlData[iControlKey]==="undefined"){return;}var products=$(this).find(".Highlight[data-slick-index='"+currentSlide+"']").toArray();products.push(...$(products[0]).nextAll(":lt("+(parseInt(slick.options.slidesToShow)-1)+")").toArray());NewMind.DataCapture.Core.record(new ProductSummaryList(iControlKey,"initial load",$(products)));}if(NewMind.ETWP.ProductList&&NewMind.ETWP.ProductList.listLoaded){NewMind.ETWP.ProductList.listLoaded.subscribe(productSummaryListWork);}if(NewMind.ETWP.ProductList&&NewMind.ETWP.ProductList.SelectionChanged){NewMind.ETWP.ProductList.SelectionChanged.subscribe(productSummaryListWork);}if(NewMind.ETWP.HighlightedProducts&&NewMind.ETWP.HighlightedProducts.SelectionInitialised){NewMind.ETWP.HighlightedProducts.SelectionInitialised.subscribe(productSummaryListWork);}if(NewMind.ETWP.HighlightedProducts&&NewMind.ETWP.HighlightedProducts.SelectionChanged){NewMind.ETWP.HighlightedProducts.SelectionChanged.subscribe(productSummaryListWork);}if(NewMind.ETWP.SwipeGallery&&NewMind.ETWP.SwipeGallery.UserSwiped){NewMind.ETWP.SwipeGallery.UserSwiped.subscribe(productSummaryListWork);}if(NewMind.DataCapture.Links){NewMind.DataCapture.Links.registerToAugmentLinkClickEvents(applyLinkSpecialisationsIfApplicable);}function applyLinkSpecialisationsIfApplicable(objEvent,anchor){var $controlContainer=$(anchor).closest(".sys_control"),iControlKey=NewMind.ETWP.GetControlKey($c
8ontrolContainer),objControlData=NewMind.ETWP.ControlData[iControlKey];if($controlContainer.parent().closest(".sys_control").hasClass("ctl_HighlightedProducts")){iControlKey=NewMind.ETWP.GetControlKey($controlContainer.parent().closest(".sys_control"));objControlData=NewMind.ETWP.ControlData[iControlKey];}if(objControlData&&objControlData.Type){var $anchor=$(anchor);if($anchor.closest("div.node.externallinks").length>0&&$anchor.closest('[id="Youtube Video"]').length==0&&$anchor.closest('[id="Video"]').length==0){objEvent.linkType="External Link";objEvent.productKey=getProductKeyIfWithinProductListControl($anchor);}else{objEvent.linkType=objControlData.Type+" Result";}}else if($controlContainer.hasClass("ctl_ProductList")){objEvent.linkType="Product List Result";}else if($controlContainer.hasClass("ctl_HighlightedProducts")){objEvent.linkType="Highlighted Product Result";}else{return false;}return true;}function getProductKeyIfWithinProductListControl(target){var $target=$(target);var $productDetail=$target.closest("ol>li");if($productDetail.length===0){return null;}var arrClasses=$productDetail[0].className.split(" ");for(var i=0;i<arrClasses.length;i++){var strClass=arrClasses[i];if(strClass.substr(0,1)!=="p"){continue;}var iPossibleNumber=parseInt(strClass.substr(1),10);if(!isNaN(iPossibleNumber)){return iPossibleNumber;}}return null;}}());

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.