{"version":3,"sources":["getwebsitelocationbypartialmatch.js","getwebsiteandairportlocationbypartialmatch.js","general.js","hotelsearch.js","jq_general.js","search.js","main.js","lotusgroup.utility.js","lotusgroup.prototypes.js","datedflightsearchjson.js","../videos/_js/flowplayer-3.2.4.min.js","lazysizes.min.js"],"names":["prepareWebsiteLocationByPartialMatchSearch","startNodeId","templateId","inPageElementId","webLocSearchInputId","webLocSearchUlId","flightClassPreference","GetWebsiteLocationByPartialMatch","initialized","setStartNodeId","setTemplateId","setInPageElementId","setInstanceClientId","split","setFlightClassPreference","reset","LotusGroup","DOM","el","getAttribute","toUpperCase","value","resultCount","style","display","prepareWebsiteLocationAndAirportsByPartialMatchSearch","hiddenFieldId","inputId","arguments","length","document","getElementById","GetWebsiteLocationAndAirportsByPartialMatch","setLocation","_tempLocNodeId","_tempLocName","setHiddenFieldId","setInputId","getElement","elementId","all","emptyTextField","defaultText","defaultValue","checkEmail","elementID","retVal","str","trim","toLowerCase","filter","test","alert","swapHotelImage","imgId","arrayIndex","imageArray","i","src","substr","lastIndexOf","oImage","Image","setAttribute","push","bookmarkPage","url","window","location","title","navigator","appName","parseInt","appVersion","external","AddFavorite","sidebar","addPanel","showOfferDetails","id","index","height","pagingLinksArray","getElementsByTagName","fontWeight","currentOfferDisplayId","$","animate","left","parseFloat","showHeaderOfferDetails","offerHolderWidth","color","showHotelHeaderOfferDetails","jQuery","expandOfferDetails","numericId","innerText","showMoreTours","id2","showTourDetails2","direction","indexOfComma","indexOfBracket","width","border","currentTourDisplayId","currentPosition","newPosition","scrollTourPaging","idx","href","indexOf","substring","element","elementChildImg","marginLeft","showTourDetails","toursPerPage","maxNumberOfPages","Math","ceil","currentScrollTourPage","windowLoadEvents","querySt","toggleMenuElementsOnPageLoad","loadExternalJavascriptFiles","loadScriptWithCallback","urlToLoad","callbackFunction","scriptOnload","this","onreadystatechange","onload","setTimeout","loadScriptHandler","rs","readyState","script","createElement","type","appendChild","showelement","showreview","closereview","previousElement","preventNav","previousClickedElement","userAgent","event","returnValue","preventDefault","err","subMenuDisplayOnIphone","toggleSubMenu","showSubMenu","showelementDesign2","hideelement","toggleElement","blockOrNone","toggleElementDisplay","getElementsByClass","searchClass","node","tag","classElements","els","elsLen","pattern","RegExp","j","className","todayAsStringFromElement","day","monYear","year","mon","myDate","Date","setFullYear","weekDays","getDay","toggleSearchBoxes","showP","hide1P","hide2P","tab","show","hide1","hide2","searchTitle","innerHTML","replace","backgroundImage","checked","minHeight","todayAsString","today","initDatePicker","datepicker","onSelect","dateText","inst","dateSelectedNew","minDate","maxDate","dateFormat","jqDP_DATE_FORMAT_STRING","prevText","nextText","duration","gotoCurrent","numberOfMonths","dayNamesMin","formatDate","getFullYear","getMonth","getDate","newDate","setWeekDay","selectedDate","tempSelectedDate","getDateFromIsoDateString","showTips","overflow","playerReady","evt","player","addControllerListener","clickListener","obj","videoText","watchText","redChairText","checkPlayer","play","previousEvent","sendEvent","loadVideo","w","h","marginBottom","flowplayer","closeVideo","stop","scrollThumbs","moveImgsBy","imgMoveBy","div","ul","css","calls","outerWidth","scrollLeft","scrollOfferThumbs","imgNumber","scrollBy","round","showMoreInfo","contentId","linkId","maxHeight","showAllInfo","contentId2","showReasonsToCallInfo","textHolderId","right","bottom","jqueryReasonsToCall","undefined","val","html","displayTextInfo","changeMagazineImg","imgName","travelMagId","titleHeadline","currentElement","imageId","imageParent","parentNode","previousMagazineElement","listStyleImage","hu","search","gy","ft","SouthAfricaPromotion","backHome","showSAA","defaultSpecialOffersPageLoaded","imageNames","preLoadSpecialOfferImageNames","imageNum","imageItem","FadeInImage","interval","image_location","image_item","get_ImageItemLocation","imageObj","randNum","x","y","range","floor","random","getNextImage","totalImages","random_display","new_image","SetOpacity","object","opacityPct","MozOpacity","opacity","ChangeOpacity","msDuration","msStart","fromO","toO","msNow","getTime","timer","foregroundID","backgroundID","backgroundRepeat","clearTimeout","startMS","expandText","txtToIncrease","parentElement","visibility","closeText","txtToClose","buttonEffect","imgUrl","displayBackgroundImg","hideBackgroundImg","changeZindex","hide3","hide4","hide5","hide6","hide7","hide8","hide9","hide10","zIndex","changeResortImg","mainImgId","imgExtension","newImgSrc","imgToChange","showBlogThumb","thumbUrl","tagId","backgroundSize","padding","showBlogNumber","blogNumber","paddingTop","paddingBottom","scrollImages","imageLinksArray","currentDisplayId","timeOut","scrollThumbImage","num","selectImage","imgPerPage","currentImgScroll","displayQatarOffer","id1","offerbarStr","imgtodisplay","altText","offerBar","offerInfo","qatarImgPath","img","alt","hideQatarOffer","displayAussieOffer","image","posX","posY","popUpImgId","folderName","mightBoxFade","mightboxcloseImg","popUpImg","popupImgPath","top","backgroundColor","closeAussieOffer","offerImageId","promotionsSwapImg","newString","imgSrc","lastIndex","displayPromotionalOffer","offerImg","validateCallBackRequestForm","name","telephone","destination","preferredtime","results","allErrors","console","log","guid","s4","toString","showCallbackRequestAlt","hideCallbackRequestAlt","validateFeaturedContent","webLocation","subtitle","description","contenttype","error","toggleToOr","to","or","rollOver","mouseOverOrOut","hotelOrTour","displayOfferList","holderId","hash","specialOfferList","currentOffer","hashInUrl","currentHashUsed","hashUrl","defaultDiv","screwDefaultButtons","swapCarCategory","preSetSearchParameters","destinationName","categorySelected","destName","categorySearched","destFormField","throttle","callback","limit","wait","call","populateDropdownOnPageLoad","locationNodeId","countryDDL","hscountry","options","selected","populateDropdown","sendAjaxAvailabilityRequest","XMLHttpRequest","ajaxObject","ActiveXObject","updateAvailability","locationDDL","subLocationDDL","sublocation","addOption","selectedIndex","text","recursiveCall","removeAllOptions","open","send","pausecomp","locations","responseXML","newSearchId","firstChild","searchCountryId","selectbox","locationName","lastChild","nodeValue","nextSibling","recursiveCallId","disabled","country","optn","add","millis","date","curDate","changeHotelFormAction","forceHoteldescription","action","globalPropertyNodeId","hsArrival","roomType","hsNoNights","getHotels","hotelDisplayMode","starRating","numHotelsToDisplay","webLocationId","mainHotelHolder","clearPosition","margin","ajax","cache","success","hotelresults","buildHotelResults","elem","onclick","hide","removeChild","feedback","searchCount","isFiltered","hotelDesc","holderforhotelDiv","hotelDiv","urlLink","hotelName","link","readMoreLink","spanPrice","divPrice","spanPriceInner","mainPriceSpan","showMoreDiv","showMoreLink","loadingStarDiv","loaderImg","numHotelToDisplay","imageSet","HotelUrl","ImageUrl","GlobalPropertyNodeId","HotelName","LocationText","BestPrice","DiscountText","SearchResultsCount","BedsLocationId","empty","getHotelsForHotelDesc","bedsLocationId","findHashInUrl","loactionNodeId","hasUrl","onFlightResultPageReady","isContentItemsHidden","mouseleave","click","googleMapInitialize","initializeTemperature","onCarResultPageReady","isCarGuideHidden","isCarContentItemsHidden","mouseenter","carsOfferSlider","offerHolderOneCount","children","offerHolderTwoCount","$active1","$next1","next","addClass","removeClass","$active2","$next2","holidayOffersFade","currentDisplayOffer","$currentActive","$select","autoFadeEffect","$active","$next","showCalendar","montharrival","dayarrival","returnmonth","returnday","defaultDateString","minDateString","maxDateString","getIsoDateStringFromDate","openCalendar","closeCalendar","calendar","close","monArr","dayArr","monRet","dayRet","centreParentX","centreParentY","windowX","windowY","isNaN","screenLeft","screenX","screenY","outerHeight","body","clientWidth","screenTop","clientHeight","calendarWidth","calendarHeight","dateSelected","dateString","findValueInList","setReturnDate","list","leaveDayId","leaveMonthId","returnDayId","returnMonthId","leaveDate","returnDate","returnDateString","setDate","month","checkAllCarTypes","csform","formLength","addOnLoadEvent","addEventListener","attachEvent","validateHotelLocation","validateInputBox","departDate","errors","flightSearchContainer","querySelector","inputElement","classList","remove","elementType","tagName","destError","fromDate","convertToTenDigitDateString","toDate","that","locationValidationAjaxObj","createAjaxObj","status","responseText","locationValidation","JSON","parse","IsValidSearchLocation","errorString","errorP","showErrorMessageForSATB","delay","fadeOut","manuallyShowError","msg","hideError","fullYear","checkForMultipleLocations","locationNameInputId","showVariant","formActionIndexOf","formHolder","goToUrl","queryStrParams","currentDestinationNodeId","overrideGoToUrl","destinationId","currentDestination","originnodeid","displayringaroundnumberonsubmit","fssubmit","flightClass","parseJSON","multipleLocations","data","Function","HasMultipleLocations","Locations","jsstatus","multilocationsHolder","destinationAirportText","closelink","closeIcon","a","otherAirports","NodeId","FullLocationName","submit","displayHotelSearch","bedsLocationNodeid","searchdestination","hotelsearchinfoholder","setVariantWebNodeId","_webnodeid","setVariantPhoneA","_phoneA","setVariantPhoneB","_phoneB","CheckURLForVariant","_interval","clearInterval","setInterval","toggleClass","AnimateBirdSprite","toggleMenu","side","mobileHeader","opposite","hasClass","hideAllMenus","Verticals","Flights","Hotels","Cars","Tours","Utility","emailIsValid","emailAdd","subscribeToPriceAlert","emailAddressEl","feedbackParentEl","ajaxObj","emailAddress","feedbackStatus","jsonResponse","AJAX","Status","ignore","cacheKiller","emptyTextFieldDefaultText","shareAPage","offerText","setRequestHeader","openWindow","target","winW","winH","openCardCostPopUp","stopPropagation","popup","closeCardCostPopUp","cssDisplayValue","showOneHideMany","showId","parent","showClassToAdd","hideIdsArray","hideIdsArrayLen","removeAttribute","toggleInnerHtml","initial","change","cls","attributeName","attributeValue","createImg","setHtmlSelectOptionByValue","optLen","parentEl","childEl","purge","d","l","n","attributes","childNodes","now","getMilliseconds","Map","subscribers","load","canvasId","locationDetails","zoomLevel","onMapReady","mapOptions","getLatLng","latLng","zoom","center","mapTypeId","google","maps","MapTypeId","ROADMAP","create","createCanvas","address","geocoder","Latitude","Longitude","LatLng","StreetAddress","Geocoder","geocode","GeocoderStatus","OK","geometry","zoomToPlottedBounds","gm","points","bounds","len","LatLngBounds","extend","getMap","setZoom","getBoundsZoomLevel","getWidth","getHeight","setCenter","getCenter","mapDim","latRad","lat","sin","radX2","PI","max","min","mapPx","worldPx","fraction","LN2","WORLD_DIM","ZOOM_MAX","ne","sw","latFraction","lngDiff","lngFraction","latZoom","lngZoom","getNorthEast","getSouthWest","lng","mightBoxDiv","closeMapTag","mapCanvasTag","opacityBox","narrow","bubbles","e","cancelBubble","clearMap","t","r","String","s","o","u","Object","prototype","SyntaxError","masks","slice","f","c","p","v","m","g","getTimezoneOffset","dd","ddd","i18n","dayNames","dddd","mm","mmm","monthNames","mmmm","yy","yyyy","hh","H","HH","M","MM","ss","L","tt","T","TT","Z","match","pop","abs","S","default","shortDate","mediumDate","longDate","fullDate","shortTime","mediumTime","longTime","isoDate","isoTime","isoDateTime","isoUtcDateTime","format","quote","string","escapable","meta","charCodeAt","key","holder","k","partial","mind","gap","toJSON","rep","isFinite","indent","apply","join","hasOwnProperty","valueOf","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","Number","Boolean","cx","\b","\t","\n","\f","\r","\"","\\","stringify","replacer","space","Error","","reviver","walk","eval","b","COMPILER_REVISION","REVISION_CHANGES","VERSION","1","2","3","4","helpers","partials","registerHelper","Exception","Utils","not","registerPartial","inverse","fn","each","createFrame","logger","DEBUG","INFO","WARN","ERROR","level","methodMap","0","isEmpty","trace","symbols_","root","statements","EOF","program","simpleInverse","statement","openInverse","closeBlock","openBlock","mustache","CONTENT","COMMENT","OPEN_BLOCK","inMustache","CLOSE","OPEN_INVERSE","OPEN_ENDBLOCK","path","OPEN","OPEN_UNESCAPED","CLOSE_UNESCAPED","OPEN_PARTIAL","partialName","partial_option0","inMustache_repetition0","inMustache_option0","dataName","param","STRING","INTEGER","BOOLEAN","hash_repetition_plus0","hashSegment","ID","EQUALS","DATA","pathSegments","SEP","$accept","$end","terminals_","5","14","15","16","18","19","20","22","23","24","25","32","33","34","38","39","40","42","productions_","performAction","ProgramNode","BlockNode","ContentNode","CommentNode","MustacheNode","PartialNode","concat","StringNode","IntegerNode","BooleanNode","HashNode","PartialNameNode","DataNode","IdNode","part","separator","table","8","9","11","12","13","6","7","17","21","30","41","26","10","28","27","29","31","35","36","37","defaultActions","49","parseError","lexer","lex","setInput","parser","yylloc","ranges","q","showPosition","token","line","yylineno","loc","expected","Array","yytext","yyleng","_$","first_line","last_line","first_column","last_column","_input","_more","_less","done","matched","conditionStack","offset","input","unput","more","less","pastInput","upcomingInput","_currentRules","rules","flex","matches","begin","popState","conditions","topState","pushState","mu","inclusive","emu","com","INITIAL","Parser","constructor","AST","escaped","params","eligibleHelper","isSimple","isHelper","context","original","isInverse","pairs","isScoped","parts","depth","stringModeValue","integer","bool","comment","SafeString","&","<",">","'","`","escapeExpression","Compiler","compiler","disassemble","opcodes","opcode","args","equals","compile","depths","knownHelpers","helperMissing","blockHelperMissing","if","unless","with","accept","sort","compileProgram","usePartial","addDepth","block","classifyMustache","helperMustache","simpleMustache","ambiguousMustache","stringParams","content","noEscape","setupFullMustacheParams","knownHelpersOnly","declare","pushParams","setupMustacheParams","precompile","JavaScriptCompiler","template","nameLookup","isValidJavaScriptVariableName","appendToBuffer","environment","initializeBuffer","quotedString","namespace","isChild","programs","environments","aliases","preamble","stackSlot","stackVars","registers","compileStack","inlineStack","compileChildren","createFunctionContext","nextOpcode","eat","lastContext","source","mergeSource","blockValue","setupParams","replaceStack","splice","ambiguousBlockValue","topStack","lastHelper","appendContent","append","flushInline","popStack","appendEscaped","getContext","lookupOnContext","pushContext","pushStackLiteral","resolvePossibleLambda","functionType","lookup","lookupData","pushStringParam","pushString","emptyHash","register","pushHash","values","types","contexts","popHash","pushLiteral","pushProgram","programExpression","invokeHelper","setupHelper","callParams","helperMissingParams","invokeKnownHelper","invokeAmbiguous","nextStack","invokePartial","self","assignToHash","matchExistingProgram","useRegister","pushStack","incrStack","isInline","topStackName","RESERVED_WORDS","VM","merge","programWithDepth","noop","compilerInfo","module","exports","define","amd","Handlebars","arr","map","item","$index","$count","$first","$last","Discount","Name","escape","replaceAll","find","sanitizeForRegExp","elt","from","mapper","other","itemExists","objectExists","prop","objectsAreSame","objectIndexByProperty","objectIndex","itemIndex","fun","res","thisp","TypeError","getDayName","shortName","days","getMonthName","months","getShortTime","hrs","mins","getHours","getMinutes","getDateFormatted","dt","clean","deleteValue","removeEmptyEntries","itemMatchingPropertyValue","propName","propValue","startsWith","searchString","position","endsWith","subjectString","searchText","vertical","_vertical","keyCode","_Down","_Up","_Enter","_Escape","_firstChars","_firstCharAlternatives","_startNodeId","_templateId","_inPageElementId","_initialized","getWebLocationsJson","bind","_websiteLocations","navigateList","_compiledTemplate","_flightClassPreference","_instanceClientId","websiteLocations","filteredArray","firstCharAlternativesLen","Location","DisplayPath","_resultCount","listItems","listLen","currLi","_currentItem","scrollTop","setVertical","locationsArray","Airport","keyPressEnter","urlPath","currentUrl","form","_inputId","unescape","_hiddenFieldId","indexOfOpenBrac","indexOfCloseBrac","outerHTML","BrowserDetect","init","browser","dataBrowser","version","searchVersion","OS","dataOS","dataString","dataProp","versionSearchString","versionSearch","identity","subString","vendor","opera","platform","imageUrlsNum","chaletTxtNum","timerID","toggleTabs","showAndHide","ready","loader","callbackGuid","dataType","serialize","textStatus","xhr","submitCount","ScrollGallery","scroll","scrollStepAmount","Direction","Left","posToInt","Right","Up","Down","pos","indexOfPX","defineProperty","enumerable","configurable","lmt","enableLimit","_self","tmr","setMeasurements","setToStatic","originalTop","originalLeft","originalWidth","cssTxt","setToFixed","fixedStatus","scrollFunc","enabled","pageYOffset","documentElement","resizeFunc","innerWidth","atob","DatedFlight","go","Search","getDebug","_destinationSearchedForText","_originNodeId","_destinationNodeId","_originCode","_destinationCode","_departureDate","_returnDate","_classOfTravel","_friendlyDestinationName","_isNewSearch","_airlineId","_loadingTemplateId","_loadingCompiledTemplate","_searchResultsTemplateId","_searchResultsCompiledTemplate","_resultsHtml","_resultsLoaderId","_resultsPlaceHolderId","_loaderJson","_errorText","_searchComplete","_loaderAnimComplete","_mainSearchJson","_amadeusITFareOnlySearchJson","_validateSearchCriteria","_performSearch","myTime","_displayResults","InvalidSearchStatus","SearchResults","_displayInvalidSearchMessage","fadeIn","errorText","Primary","IT","SearchCriteria","setDestinationSearchedForText","setOriginNodeId","setDestinationNodeId","setOriginCode","setDestinationCode","setDepartureDate","setClassOfTravel","setFriendlyDestinationName","setIsNewSearch","setAirlineId","Config","setSearchResultsTemplateId","setLoadingTemplateId","setResultsLoaderId","setResultsPlaceHolderId","refreshIntervalId","FilterHotelSearch","validateSubmission","IsNewSearch","SearchForLocationNodeId","SubmissionAjaxObject","HSarrival","HSnonight","HSroomtype","HSglobalpropertyid","HSlocation","HSpagetype","ErrorMessage","sendFormSubmissionAJAXRequest","createAjaxObject","createSavingInfo","saving","savingHolder","G","B","J","K","hasiPadSupport","F","isLoaded","_fireEvent","$f","getParent","getIndex","A","E","playerId","clip","playlist","I","plugins","controls","canvas","C","D","fp_play","isHidden","flashembed","isSupported","cached","config","unload","isFullscreen","fp_close","getClip","getCommonClip","getPlaylist","getPlugin","_api","fp_getPlugin","getScreen","getControls","getLogo","getPlay","getConfig","getFlashParams","loadPlugin","fp_loadPlugin","N","getState","fp_getState","getVersion","fp_getVersion","setClip","setPlaylist","_swfHeight","Q","R","O","debug","contextMenu","isInStream","P","z","size","onCuepoint","embedded","fp_addCuepoints","update","fp_updateClip","metaData","fullDuration","fp_animate","fp_css","fp_showPlugin","fp_hidePlugin","toggle","fp_togglePlugin","fadeTo","fp_fadeTo","getName","getPlayer","methods","fp_invoke","bgcolor","expressInstall","cachebusting","fireEvent","addPlugin","getHTML","MMredirectURL","MMplayerType","MMdoctitle","onFail","getRoot","getOptions","getConf","getApi","allowfullscreen","allowscriptaccess","quality","w3c","__flash_unloadHandler","__flash_savedUnloadHandler","conf","GetVariable","exec","asString","tools","lazySizes","getElementsByClassName","HTMLPictureElement","requestAnimationFrame","requestIdleCallback","forEach","createEvent","instance","initCustomEvent","dispatchEvent","picturefill","pf","reevaluate","elements","getComputedStyle","offsetWidth","minSize","_lazysizesWidth","shift","hidden","_lsFlush","timeout","U","offsetParent","getBoundingClientRect","V","loadMode","expand","expFactor","_lazyRace","innerHeight","loadHidden","ba","preloadAfterLoad","sizesAttr","W","X","loadedClass","loadingClass","Y","contentWindow","_","srcsetAttr","customMedia","aa","defaultPrevented","autosizesClass","srcAttr","nodeName","firesLoad","lazyClass","complete","naturalWidth","srcset","errorClass","detail","updateElem","ca","preloadClass","hFac","MutationObserver","observe","childList","subtree","checkElems","unveil","dataAttr","lazySizesConfig","lazysizesConfig","cfg","autoSizer","uP","aC","rC","hC","fire","gW","rAF","datepickerOptionsDepart","dateObj","datepickerOptionsReturn"],"mappings":"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","file":"main.min.js","sourcesContent":["var GetWebsiteLocationByPartialMatch = (function () {\r\n 'use strict';\r\n\r\n return (function () {\r\n\r\n var _initialized = false, _firstChars = '', _firstCharAlternatives = [], _websiteLocations, _resultCount = 0, _startNodeId = 0, _compiledTemplate = null, _templateId = '', _inPageElementId = '', _currentItem = 0, _Down = 40, _Up = 38, _Escape = 27, _Enter = 13, _vertical, _flightClassPreference = '', _instanceClientId = '';\r\n\r\n /* Public function */\r\n function search(evt, searchText, vertical) {\r\n\r\n evt = evt || window.event;\r\n\r\n _vertical = vertical.substring(vertical.lastIndexOf(\".\") + 1, vertical.length);\r\n\r\n if (evt && (evt.keyCode === _Down || evt.keyCode === _Up || evt.keyCode === _Enter || evt.keyCode === _Escape)) {\r\n //USER IS NAVIGATING THE RESULTS. CHECK FOR evt AS IT WON'T EXIST ON PAGE LOAD RE-SEARCH\r\n if (evt.keyCode === _Escape) {\r\n reset();\r\n } else {\r\n navigateList(evt.keyCode);\r\n }\r\n } else {\r\n //PERFORMING/FILTERING SEARCH\r\n if (searchText.length >= 3) {\r\n if (searchText.substring(0, 3).toUpperCase() !== _firstChars.substring(0, 3).toUpperCase()) {\r\n _firstChars = searchText.toUpperCase();\r\n\r\n //BUILD UP A LIST OF ALTERNATIVE SEARCHES BASED ON _firstChars. ONLY DO THIS ONCE.\r\n switch (_firstChars.substring(0, 3).toUpperCase()) {\r\n case 'SAI':\r\n _firstCharAlternatives = ['SAI', 'ST ', 'ST.', 'SAINT'];\r\n break;\r\n case 'ST ':\r\n _firstCharAlternatives = ['ST ', 'ST.', 'SAINT'];\r\n break;\r\n case 'ST.':\r\n _firstCharAlternatives = ['ST ', 'ST.', 'SAINT'];\r\n break;\r\n }\r\n\r\n if (_startNodeId > 0 && _templateId && _inPageElementId) {\r\n _initialized = true;\r\n getWebLocationsJson();\r\n }\r\n } else {\r\n _firstChars = searchText.toUpperCase();\r\n bind(filter(_websiteLocations));\r\n }\r\n } else {\r\n reset();\r\n }\r\n }\r\n\r\n }\r\n\r\n function getWebLocationsJson() {\r\n\r\n var url;\r\n\r\n if (_compiledTemplate === null) {\r\n _compiledTemplate = Handlebars.compile(jQuery('#' + _templateId).html());\r\n }\r\n\r\n url = [\r\n '/utility/getwebsitelocationsbypartialmatch.aspx?startnodeid=',\r\n _startNodeId,\r\n '&firstcharacters=',\r\n _firstChars,\r\n '&vertical=',\r\n _vertical,\r\n '&flightclasspreference=',\r\n _flightClassPreference,\r\n '&instanceclientid=',\r\n _instanceClientId\r\n ].join('');\r\n\r\n jQuery.ajax({\r\n url: url,\r\n cache: false,\r\n success: function (websiteLocations) {\r\n if (websiteLocations) {\r\n //CACHE DATA\r\n _websiteLocations = websiteLocations;\r\n //FILTER RESULTS EVEN IF IT'S NOT NECESSARY AS THIS SETS Handlebars $index/$count VALUES\r\n bind(filter(_websiteLocations));\r\n LotusGroup.DOM.el(_inPageElementId).style.display = 'block';\r\n }\r\n },\r\n error: function (feedback) {\r\n return;\r\n }\r\n });\r\n\r\n }\r\n\r\n function filter(websiteLocations) {\r\n\r\n var filteredArray, path, searchString, len, firstCharAlternativesLen;\r\n\r\n filteredArray = [];\r\n\r\n if (websiteLocations !== null && websiteLocations.Location && websiteLocations.Location.length > 0) {\r\n filteredArray = websiteLocations.Location.filter(\r\n //THIS FUNCTION POPULATES THE filteredArray WITH ONLY THOSE LOCATIONS THAT MATCH THE REQUIREMENTS\r\n function (location) {\r\n if (_firstChars.length >= 3) {\r\n len = _firstChars.length;\r\n //CLEAN STRINGS AND AMMEND LENGTH OF len ACCORDINGLY\r\n path = location.DisplayPath.replace(/,/g, '').toUpperCase();\r\n searchString = _firstChars.replace(/,/g, '').toUpperCase();\r\n if (_firstChars.indexOf(',') > -1) {\r\n len = searchString.length;\r\n }\r\n if (path.substr(0, len) === searchString || path.substr(0, len + 4) === 'THE ' + searchString) {\r\n //JUST CHARACTER MATCH THE FIRST 3 CHARACTERS OF THE AIRPORT NAME\r\n return location;\r\n } else if (_firstChars.length === 3 || _firstCharAlternatives.length > 0) {\r\n firstCharAlternativesLen = _firstCharAlternatives.length;\r\n for (var i = 0; i < firstCharAlternativesLen; i++) {\r\n if (path.substr(0, 3) === _firstCharAlternatives[i]) {\r\n //CONTINUE MATCHING ONLY THE FIRST 3 CHARACTERS OR WE LOSE 'St Lucia' WHEN TYPING 'SAIN'\r\n return location;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n );\r\n _resultCount = websiteLocations.Location.length;\r\n } else {\r\n _resultCount = 0;\r\n }\r\n\r\n return { 'Location': filteredArray };\r\n\r\n }\r\n\r\n function bind(websiteLocations, append) {\r\n\r\n if (!append) {\r\n //GENERALLY ITEMS SHOULD COMPLETELY REGENERATE THE LIST. SET TO TRUE TO APPEND ITEMS.\r\n LotusGroup.DOM.el(_inPageElementId).innerHTML = '';\r\n }\r\n LotusGroup.DOM.el(_inPageElementId).innerHTML += _compiledTemplate(websiteLocations);\r\n LotusGroup.DOM.el(_inPageElementId).style.display = 'block';\r\n\r\n }\r\n\r\n function navigateList(keyCode) {\r\n\r\n var listItems, listLen, childAnchor, childEm, currLi;\r\n\r\n if (LotusGroup.DOM.el(_inPageElementId)) {\r\n listItems = LotusGroup.DOM.el(_inPageElementId).getElementsByTagName('li');\r\n\r\n listLen = listItems.length;\r\n\r\n if (keyCode === _Down && _currentItem < listLen) {\r\n _currentItem += 1;\r\n if (_currentItem > 2) {\r\n LotusGroup.DOM.el(_inPageElementId).scrollTop = parseInt(LotusGroup.DOM.el(_inPageElementId).scrollTop, 10) + 25;\r\n }\r\n } else if (keyCode === _Up && _currentItem > 1) {\r\n _currentItem -= 1;\r\n if (_currentItem < (listLen - 2)) {\r\n LotusGroup.DOM.el(_inPageElementId).scrollTop = parseInt(LotusGroup.DOM.el(_inPageElementId).scrollTop, 10) - 25;\r\n }\r\n } else if (keyCode === _Enter && _currentItem > 0) {\r\n window.location = LotusGroup.DOM.el(_instanceClientId + '_liweblocid_' + _currentItem).getElementsByTagName('a')[0].href;\r\n }\r\n\r\n //UNHIGHLIGHT ALL LIST ITEMS\r\n for (var i = 0; i < listLen; i++) {\r\n listItems[i].removeAttribute('className');\r\n listItems[i].removeAttribute('class');\r\n }\r\n\r\n //HIGHLIGHT RELEVENT LIST ITEM\r\n currLi = LotusGroup.DOM.el(_instanceClientId + '_liweblocid_' + _currentItem);\r\n if (currLi) {\r\n currLi.className = 'selecteditem';\r\n currLi.setAttribute('class', 'selecteditem');\r\n }\r\n }\r\n\r\n }\r\n\r\n /* Public function */\r\n function reset() {\r\n\r\n //CLEAR DOWN & HIDE THE INPAGE HOLDER\r\n LotusGroup.DOM.el(_inPageElementId).innerHTML = '';\r\n LotusGroup.DOM.el(_inPageElementId).style.display = 'none';\r\n _currentItem = 0;\r\n _websiteLocations = [];\r\n _firstChars = '';\r\n _resultCount = 0;\r\n }\r\n\r\n /* Public Read Only Property */\r\n function initialized() {\r\n return _initialized;\r\n }\r\n\r\n /* Public Read Only Property */\r\n function startNodeId() {\r\n return _startNodeId;\r\n }\r\n\r\n /* Public Read Only Property */\r\n function resultCount() {\r\n return _resultCount;\r\n }\r\n\r\n /* Public Write Only Property */\r\n function setInstanceClientId(a) {\r\n /// \r\n /// Setter for the HTML ID of this instance of the WebLocationSearch control\r\n /// \r\n /// \r\n /// Serverside Me.ClientId of WebLocationSearch control.\r\n /// \r\n /// \r\n _instanceClientId = a;\r\n }\r\n\r\n /* Public Write Only Property */\r\n function setTemplateId(a) {\r\n /// \r\n /// Setter for the HTML ID of the Handlebars template\r\n /// \r\n /// \r\n /// HTML ID of the Handlebars template.\r\n /// \r\n /// \r\n _templateId = a;\r\n }\r\n\r\n /* Public Write Only Property */\r\n function setInPageElementId(a) {\r\n /// \r\n /// Setter for the HTML ID of the in page element to be populated with the template.\r\n /// This should be the natural parent element i.e. UL of an LI or TABLE of an TR\r\n /// \r\n /// \r\n /// HTML ID of the in page element.\r\n /// \r\n /// \r\n _inPageElementId = a;\r\n }\r\n\r\n /* Public Write Only Property */\r\n function setStartNodeId(a) {\r\n /// \r\n /// Setter for the highest level WebsiteLocationNode beneath which child locations will be returned.\r\n /// \r\n /// \r\n /// WebsiteLocationNode.\r\n /// \r\n /// \r\n _startNodeId = a;\r\n }\r\n\r\n /* Public Write Only Property */\r\n function setVertical(a) {\r\n _vertical = a;\r\n }\r\n\r\n /* Public Write Only Property */\r\n function setFlightClassPreference(a) {\r\n _flightClassPreference = a;\r\n }\r\n\r\n //EXPOSE PUBLIC METHODS & PROPERTIES\r\n return {\r\n initialized: initialized,\r\n startNodeId: startNodeId,\r\n resultCount: resultCount,\r\n search: search,\r\n reset: reset,\r\n setInstanceClientId: setInstanceClientId,\r\n setTemplateId: setTemplateId,\r\n setInPageElementId: setInPageElementId,\r\n setStartNodeId: setStartNodeId,\r\n setVertical: setVertical,\r\n setFlightClassPreference: setFlightClassPreference\r\n };\r\n\r\n }());\r\n\r\n}());\r\n\r\nfunction prepareWebsiteLocationByPartialMatchSearch(startNodeId, templateId, inPageElementId, webLocSearchInputId, webLocSearchUlId, flightClassPreference) {\r\n 'use strict';\r\n\r\n if (GetWebsiteLocationByPartialMatch) {\r\n if (!GetWebsiteLocationByPartialMatch.initialized() || GetWebsiteLocationByPartialMatch.startNodeId() !== startNodeId) {\r\n GetWebsiteLocationByPartialMatch.setStartNodeId(startNodeId);\r\n GetWebsiteLocationByPartialMatch.setTemplateId(templateId);\r\n GetWebsiteLocationByPartialMatch.setInPageElementId(inPageElementId);\r\n GetWebsiteLocationByPartialMatch.setInstanceClientId(inPageElementId.split('_')[0]);\r\n GetWebsiteLocationByPartialMatch.setFlightClassPreference(flightClassPreference);\r\n GetWebsiteLocationByPartialMatch.reset();\r\n }\r\n if (LotusGroup.DOM.el(webLocSearchInputId).getAttribute('data-placeholder').toUpperCase() === LotusGroup.DOM.el(webLocSearchInputId).value.toUpperCase()) {\r\n LotusGroup.DOM.el(webLocSearchInputId).value = '';\r\n }\r\n if (GetWebsiteLocationByPartialMatch.initialized() && GetWebsiteLocationByPartialMatch.resultCount() > 0) {\r\n LotusGroup.DOM.el(webLocSearchUlId).style.display = 'block';\r\n }\r\n if (LotusGroup.DOM.el('submenu_' + startNodeId)) {\r\n LotusGroup.DOM.el('submenu_' + startNodeId).style.display = 'block';\r\n }\r\n }\r\n}","var GetWebsiteLocationAndAirportsByPartialMatch = (function () {\r\n 'use strict';\r\n\r\n return (function () {\r\n\r\n var _initialized = false, _firstChars = '', _firstCharAlternatives = [], _websiteLocations, _resultCount = 0, _startNodeId = 0, _compiledTemplate = null, _templateId = '', _inPageElementId = '', _currentItem = 0, _Down = 40, _Up = 38, _Escape = 27, _Enter = 13, _vertical, _flightClassPreference = '', _instanceClientId = '', _hiddenFieldId = '', _inputId = '';\r\n\r\n /* Public function */\r\n function search(evt, searchText, vertical) {\r\n var locationsArray;\r\n\r\n evt = evt || window.event;\r\n\r\n _vertical = vertical;\r\n\r\n if (evt && (evt.keyCode === _Down || evt.keyCode === _Up || evt.keyCode === _Enter || evt.keyCode === _Escape)) {\r\n //USER IS NAVIGATING THE RESULTS. CHECK FOR evt AS IT WON'T EXIST ON PAGE LOAD RE-SEARCH\r\n if (evt.keyCode === _Escape) {\r\n reset();\r\n } else {\r\n navigateList(evt.keyCode);\r\n }\r\n } else {\r\n //PERFORMING/FILTERING SEARCH\r\n if (searchText.length >= 3) {\r\n if (searchText.substring(0, 3).toUpperCase() !== _firstChars.substring(0, 3).toUpperCase()) {\r\n _firstChars = searchText;\r\n\r\n //BUILD UP A LIST OF ALTERNATIVE SEARCHES BASED ON _firstChars. ONLY DO THIS ONCE.\r\n switch (_firstChars.substring(0, 3).toUpperCase()) {\r\n case 'SAI':\r\n _firstCharAlternatives = ['SAI', 'ST ', 'ST.', 'SAINT'];\r\n break;\r\n case 'ST ':\r\n _firstCharAlternatives = ['ST ', 'ST.', 'SAINT'];\r\n break;\r\n case 'ST.':\r\n _firstCharAlternatives = ['ST ', 'ST.', 'SAINT'];\r\n break;\r\n }\r\n\r\n if (_startNodeId > 0 && _templateId && _inPageElementId) {\r\n _initialized = true;\r\n getWebLocationsJson();\r\n }\r\n } else {\r\n _firstChars = searchText.toUpperCase();\r\n //PERSIST THE AIRPORTS\r\n locationsArray = filter(_websiteLocations);\r\n if (_firstChars.length === 3) {\r\n locationsArray.Airport = _websiteLocations.Airport;\r\n }\r\n bind(locationsArray);\r\n }\r\n } else {\r\n reset();\r\n }\r\n }\r\n\r\n }\r\n\r\n function getWebLocationsJson() {\r\n var url;\r\n\r\n if (_compiledTemplate === null) {\r\n _compiledTemplate = Handlebars.compile(jQuery('#' + _templateId).html());\r\n }\r\n\r\n GetWebsiteLocationAndAirportsByPartialMatch.setLocation(0, _firstChars, 'Y');\r\n\r\n url = [\r\n '/utility/getwesitelocationsandairportsbypartialmatch.aspx?startnodeid=',\r\n _startNodeId,\r\n '&firstcharacters=',\r\n _firstChars,\r\n '&vertical=',\r\n _vertical,\r\n '&flightclasspreference=',\r\n _flightClassPreference,\r\n '&instanceclientid=',\r\n _instanceClientId\r\n ].join('');\r\n\r\n jQuery.ajax({\r\n url: url,\r\n cache: false,\r\n success: function (websiteLocations) {\r\n if (websiteLocations) {\r\n //CACHE DATA\r\n _websiteLocations = websiteLocations;\r\n //FILTER RESULTS EVEN IF IT'S NOT NECESSARY AS THIS SETS Handlebars $index/$count VALUES\r\n _websiteLocations = filter(websiteLocations);\r\n _websiteLocations.Airport = websiteLocations.Airport;\r\n if ((_websiteLocations.Airport && _websiteLocations.Airport.length > 0) || (_websiteLocations.Location && _websiteLocations.Location.length > 0)) {\r\n bind(_websiteLocations);\r\n LotusGroup.DOM.el(_inPageElementId).style.display = 'block';\r\n }\r\n }\r\n },\r\n error: function (feedback) {\r\n return;\r\n }\r\n });\r\n\r\n }\r\n\r\n function filter(websiteLocations) {\r\n\r\n var filteredArray, path, searchString, len, firstCharAlternativesLen;\r\n\r\n filteredArray = [];\r\n\r\n if (websiteLocations !== null && websiteLocations.Location && websiteLocations.Location.length > 0) {\r\n filteredArray = websiteLocations.Location.filter(\r\n //THIS FUNCTION POPULATES THE filteredArray WITH ONLY THOSE LOCATIONS THAT MATCH THE REQUIREMENTS\r\n function (location) {\r\n if (_firstChars.length >= 3) {\r\n len = _firstChars.length;\r\n //CLEAN STRINGS AND AMMEND LENGTH OF len ACCORDINGLY\r\n path = location.DisplayPath.replace(/,/g, '').toUpperCase();\r\n searchString = _firstChars.replace(/,/g, '').toUpperCase();\r\n if (_firstChars.indexOf(',') > -1) {\r\n len = searchString.length;\r\n }\r\n if (path.substr(0, len) === searchString || path.substr(0, len + 4) === 'THE ' + searchString) {\r\n //JUST CHARACTER MATCH THE FIRST 3 CHARACTERS OF THE AIRPORT NAME\r\n return location;\r\n } else if (_firstChars.length === 3 || _firstCharAlternatives.length > 0) {\r\n firstCharAlternativesLen = _firstCharAlternatives.length;\r\n for (var i = 0; i < firstCharAlternativesLen; i++) {\r\n if (path.substr(0, 3) === _firstCharAlternatives[i]) {\r\n //CONTINUE MATCHING ONLY THE FIRST 3 CHARACTERS OR WE LOSE 'St Lucia' WHEN TYPING 'SAIN'\r\n return location;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n );\r\n _resultCount = websiteLocations.Location.length;\r\n } else {\r\n _resultCount = 0;\r\n }\r\n\r\n return { 'Location': filteredArray };\r\n\r\n }\r\n\r\n function bind(websiteLocations, append) {\r\n\r\n if (!append) {\r\n //GENERALLY ITEMS SHOULD COMPLETELY REGENERATE THE LIST. SET TO TRUE TO APPEND ITEMS.\r\n LotusGroup.DOM.el(_inPageElementId).innerHTML = '';\r\n }\r\n\r\n // -------- 12/01/2017 start --------\r\n if (_compiledTemplate === null) {\r\n _compiledTemplate = Handlebars.compile(jQuery('#' + _templateId).html());\r\n }\r\n // -------- 12/01/2017 end --------\r\n\r\n LotusGroup.DOM.el(_inPageElementId).innerHTML += _compiledTemplate(websiteLocations);\r\n //LotusGroup.DOM.el(_inPageElementId).style.display = 'block';\r\n\r\n }\r\n\r\n function setLocation(id, name, keyPressEnter, urlPath) {\r\n\r\n if (urlPath) {\r\n var currentUrl = window.location.href;\r\n if (currentUrl.indexOf(\"/hotels/\") > -1) {\r\n var form = document.querySelector('form.responsive-search');\r\n form.action = \"/hotels/\" + urlPath;\r\n }\r\n \r\n }\r\n\r\n if (id > -1 && name.length > 0) {\r\n if (name.indexOf(\"'Y'\") > -1 || name.indexOf(\"'N'\") > -1) {\r\n name = name.split(\"'\");\r\n name = name[0];\r\n }\r\n LotusGroup.DOM.el(_inputId).value = unescape(name);\r\n LotusGroup.DOM.el(_hiddenFieldId).value = id;\r\n LotusGroup.DOM.el(_inPageElementId).innerHTML = '';\r\n LotusGroup.DOM.el(_inPageElementId).style.display = 'none';\r\n LotusGroup.DOM.el('keyPressEnter').value = keyPressEnter;\r\n }\r\n\r\n }\r\n\r\n function navigateList(keyCode) {\r\n\r\n var listItems, listLen, childAnchor, childEm, currLi, string, indexOf, indexOfOpenBrac, indexOfCloseBrac, id, name;\r\n\r\n if (LotusGroup.DOM.el(_inPageElementId)) {\r\n listItems = LotusGroup.DOM.el(_inPageElementId).getElementsByTagName('li');\r\n\r\n listLen = listItems.length;\r\n\r\n if (keyCode === _Down && _currentItem < listLen) {\r\n _currentItem += 1;\r\n if (_currentItem > 2) {\r\n LotusGroup.DOM.el(_inPageElementId).scrollTop = parseInt(LotusGroup.DOM.el(_inPageElementId).scrollTop, 10) + 25;\r\n }\r\n } else if (keyCode === _Up && _currentItem > 1) {\r\n _currentItem -= 1;\r\n if (_currentItem < (listLen - 2)) {\r\n LotusGroup.DOM.el(_inPageElementId).scrollTop = parseInt(LotusGroup.DOM.el(_inPageElementId).scrollTop, 10) - 25;\r\n }\r\n } else if (keyCode === _Enter && _currentItem > 0) {\r\n //GetWebsiteLocationAndAirportsByPartialMatch.setLocation(0, _firstChars);\r\n LotusGroup.DOM.el(_instanceClientId + '_liweblocid_' + _currentItem).getElementsByTagName('a')[0].removeAttribute('id');\r\n LotusGroup.DOM.el(_instanceClientId + '_liweblocid_' + _currentItem).getElementsByTagName('a')[0].removeAttribute('href');\r\n string = LotusGroup.DOM.el(_instanceClientId + '_liweblocid_' + _currentItem).getElementsByTagName('a')[0].outerHTML;\r\n\r\n indexOfOpenBrac = string.indexOf('(');\r\n indexOf = string.indexOf(',');\r\n indexOfCloseBrac = string.indexOf(')');\r\n\r\n id = string.substring(indexOfOpenBrac + 1, indexOf);\r\n name = string.substring(indexOf + 3, indexOfCloseBrac - 6);\r\n\r\n GetWebsiteLocationAndAirportsByPartialMatch.setLocation(id, name, 'Y');\r\n }\r\n\r\n //UNHIGHLIGHT ALL LIST ITEMS\r\n for (var i = 0; i < listLen; i++) {\r\n if (listItems[i] && listItems[i].className != 'subhead') {\r\n listItems[i].removeAttribute('className');\r\n listItems[i].removeAttribute('class');\r\n }\r\n }\r\n\r\n //HIGHLIGHT RELEVENT LIST ITEM\r\n currLi = LotusGroup.DOM.el(_instanceClientId + '_liweblocid_' + _currentItem);\r\n if (currLi) {\r\n currLi.className = 'selecteditem';\r\n currLi.setAttribute('class', 'selecteditem');\r\n } else {\r\n currLi = LotusGroup.DOM.el(_instanceClientId + '_liazteclocid_' + 1);\r\n if (currLi) {\r\n currLi.className = 'selecteditem';\r\n currLi.setAttribute('class', 'selecteditem');\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n /* Public function */\r\n function reset() {\r\n\r\n //CLEAR DOWN & HIDE THE INPAGE HOLDER\r\n LotusGroup.DOM.el(_inPageElementId).innerHTML = '';\r\n LotusGroup.DOM.el(_inPageElementId).style.display = 'none';\r\n _currentItem = 0;\r\n _websiteLocations = [];\r\n _firstChars = '';\r\n _resultCount = 0;\r\n }\r\n\r\n /* Public Read Only Property */\r\n function initialized() {\r\n return _initialized;\r\n }\r\n\r\n /* Public Read Only Property */\r\n function startNodeId() {\r\n return _startNodeId;\r\n }\r\n\r\n /* Public Read Only Property */\r\n function resultCount() {\r\n return _resultCount;\r\n }\r\n\r\n /* Public Write Only Property */\r\n function setInstanceClientId(a) {\r\n /// \r\n /// Setter for the HTML ID of this instance of the WebLocationSearch control\r\n /// \r\n /// \r\n /// Serverside Me.ClientId of WebLocationSearch control.\r\n /// \r\n /// \r\n _instanceClientId = a;\r\n }\r\n\r\n /* Public Write Only Property */\r\n function setTemplateId(a) {\r\n /// \r\n /// Setter for the HTML ID of the Handlebars template\r\n /// \r\n /// \r\n /// HTML ID of the Handlebars template.\r\n /// \r\n /// \r\n _templateId = a;\r\n }\r\n\r\n /* Public Write Only Property */\r\n function setInPageElementId(a) {\r\n /// \r\n /// Setter for the HTML ID of the in page element to be populated with the template.\r\n /// This should be the natural parent element i.e. UL of an LI or TABLE of an TR\r\n /// \r\n /// \r\n /// HTML ID of the in page element.\r\n /// \r\n /// \r\n _inPageElementId = a;\r\n }\r\n\r\n function setHiddenFieldId(a) {\r\n /// \r\n /// Setter for the HTML ID of the in page element to be populated with the template.\r\n /// This should be the natural parent element i.e. UL of an LI or TABLE of an TR\r\n /// \r\n /// \r\n /// HTML ID of the in page element.\r\n /// \r\n /// \r\n _hiddenFieldId = a;\r\n }\r\n\r\n function setInputId(a) {\r\n /// \r\n /// Setter for the HTML ID of the in page element to be populated with the template.\r\n /// This should be the natural parent element i.e. UL of an LI or TABLE of an TR\r\n /// \r\n /// \r\n /// HTML ID of the in page element.\r\n /// \r\n /// \r\n _inputId = a;\r\n }\r\n\r\n /* Public Write Only Property */\r\n function setStartNodeId(a) {\r\n /// \r\n /// Setter for the highest level WebsiteLocationNode beneath which child locations will be returned.\r\n /// \r\n /// \r\n /// WebsiteLocationNode.\r\n /// \r\n /// \r\n _startNodeId = a;\r\n }\r\n\r\n /* Public Write Only Property */\r\n function setVertical(a) {\r\n _vertical = a;\r\n }\r\n\r\n /* Public Write Only Property */\r\n function setFlightClassPreference(a) {\r\n _flightClassPreference = a;\r\n }\r\n\r\n //EXPOSE PUBLIC METHODS & PROPERTIES\r\n return {\r\n initialized: initialized,\r\n startNodeId: startNodeId,\r\n resultCount: resultCount,\r\n search: search,\r\n reset: reset,\r\n setInstanceClientId: setInstanceClientId,\r\n setTemplateId: setTemplateId,\r\n setInPageElementId: setInPageElementId,\r\n setStartNodeId: setStartNodeId,\r\n setHiddenFieldId: setHiddenFieldId,\r\n setInputId: setInputId,\r\n setLocation: setLocation,\r\n setVertical: setVertical,\r\n setFlightClassPreference: setFlightClassPreference\r\n };\r\n\r\n } ());\r\n\r\n} ());\r\n \r\n\r\nvar _tempLocName;\r\nvar _tempLocNodeId;\r\n\r\nfunction prepareWebsiteLocationAndAirportsByPartialMatchSearch(startNodeId, templateId, inPageElementId, webLocSearchInputId, webLocSearchUlId, flightClassPreference, hiddenFieldId, inputId) {\r\n if (arguments.length === 0) {\r\n // RECOGNIZE FOCUS OUT AND REVERT IF NO INPUT PROVIDED\r\n if (document.getElementById(\"flightsearchdestination\") && document.getElementById(\"flightsearchdestination\").value.length === 0) {\r\n GetWebsiteLocationAndAirportsByPartialMatch.setLocation(_tempLocNodeId, _tempLocName, 'N');\r\n }\r\n } else {\r\n // SET TEMP VARIABLES ON FOCUS \r\n _tempLocName = LotusGroup.DOM.el(webLocSearchInputId).value;\r\n _tempLocNodeId = LotusGroup.DOM.el(hiddenFieldId).value;\r\n // CONTINUE WITH FOCUS FUNCTION\r\n if (GetWebsiteLocationAndAirportsByPartialMatch) {\r\n if (!GetWebsiteLocationAndAirportsByPartialMatch.initialized() || GetWebsiteLocationAndAirportsByPartialMatch.startNodeId() !== startNodeId) {\r\n GetWebsiteLocationAndAirportsByPartialMatch.setStartNodeId(startNodeId);\r\n GetWebsiteLocationAndAirportsByPartialMatch.setTemplateId(templateId);\r\n GetWebsiteLocationAndAirportsByPartialMatch.setInPageElementId(inPageElementId);\r\n GetWebsiteLocationAndAirportsByPartialMatch.setInstanceClientId(inPageElementId.split('_')[0]);\r\n GetWebsiteLocationAndAirportsByPartialMatch.setFlightClassPreference(flightClassPreference);\r\n GetWebsiteLocationAndAirportsByPartialMatch.setHiddenFieldId(hiddenFieldId);\r\n GetWebsiteLocationAndAirportsByPartialMatch.setInputId(webLocSearchInputId);\r\n GetWebsiteLocationAndAirportsByPartialMatch.reset();\r\n }\r\n if (LotusGroup.DOM.el(webLocSearchInputId).getAttribute('data-placeholder').toUpperCase() === LotusGroup.DOM.el(webLocSearchInputId).value.toUpperCase()) {\r\n LotusGroup.DOM.el(webLocSearchInputId).value = '';\r\n }\r\n if (GetWebsiteLocationAndAirportsByPartialMatch.initialized() && GetWebsiteLocationAndAirportsByPartialMatch.resultCount() > 0) {\r\n LotusGroup.DOM.el(webLocSearchUlId).style.display = 'block';\r\n }\r\n if (LotusGroup.DOM.el('submenu_' + startNodeId)) {\r\n LotusGroup.DOM.el('submenu_' + startNodeId).style.display = 'block';\r\n }\r\n }\r\n }\r\n}","function getElement(elementId){\r\n\tif (document.getElementById){\r\n\t return document.getElementById(elementId);\r\n\t}else{\r\n\t return document.all[elementId];\r\n\t}\r\n}\r\n\r\nfunction emptyTextField(elementId, defaultText) {\r\n if (getElement(elementId) && (getElement(elementId).value == getElement(elementId).defaultValue)) {\r\n getElement(elementId).value = '';\r\n }\r\n}\r\n\r\nfunction checkEmail(elementID){\r\n\tvar retVal = false;\r\n\tvar str = getElement(elementID).value.trim().toLowerCase();\r\n\tvar filter=/^([\\w-]+(?:\\.[\\w-]+)*)@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$/i;\r\n\tif(str){\r\n\t\tif(filter.test(str)){\r\n\t\t\tgetElement(elementID).value = str;\r\n\t\t\tretVal = true;\r\n\t\t}else{\r\n\t\t\talert(\"Please enter a valid email address.\");\r\n\t\t\tretVal = false;\r\n\t\t}\r\n\t}else{\r\n\t\talert(\"Please enter a valid email address.\");\r\n\t\tretVal = false;\r\n\t}\r\n\treturn retVal;\r\n}\r\n\r\nfunction swapHotelImage(imgId){\r\n\tvar arrayIndex = null;\t\r\n\timageArray = [];\t\t\r\n\tfor(i=0; i < imageArray.length; i++){\r\n\t\tif(imageArray[i].src){\t\t\t\t\t\r\n\t\t\tif(imageArray[i].src.substr(imageArray[i].src.lastIndexOf(\"=\") + 1) == imgId){\r\n\t\t\t\tarrayIndex = i;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif(arrayIndex === null){\r\n\t\tvar oImage = new Image();\r\n\t\toImage.src = \"/utility/hotelimg.aspx?imagetype=1&imageid=\" + imgId;\r\n\t\tgetElement(\"fullimg\").setAttribute(\"src\", oImage.src);\r\n\t\timageArray.push(oImage);\r\n\t}else{\t\t\t\t\t\t\t\t\t\t\r\n\t\tgetElement(\"fullimg\").setAttribute(\"src\", imageArray[arrayIndex].src);\r\n\t}\r\n}\r\n\r\nfunction bookmarkPage() {\r\n url = window.location;\r\n title = document.title;\r\n if((navigator.appName == \"Microsoft Internet Explorer\") && (parseInt(navigator.appVersion) >= 4)) {\r\n window.external.AddFavorite(url, title);\r\n } else if(navigator.appName == \"Netscape\") {\r\n window.sidebar.addPanel(title, url, \"\");\r\n } else {\r\n alert(\"Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark this page\");\r\n }\r\n}\r\n\r\nvar currentOfferDisplayId = 1;\r\n\r\nfunction showOfferDetails(id, index) {\r\n\r\n if (getElement(id)) {\r\n getElement('offersholder').style.height = '124px';\r\n getElement(id).style.height = '119px';\r\n }\r\n\r\n var pagingLinksArray = getElement('paginglinks').getElementsByTagName('a');\r\n for (var i = 0; i < pagingLinksArray.length; i++) {\r\n pagingLinksArray[i].style.fontWeight = 'normal';\r\n }\r\n getElement('paginglink_' + index).style.fontWeight = 'bold';\r\n\r\n if (index > currentOfferDisplayId) {\r\n $(\"#offersholder\").animate({ \"left\": \"-=\" + parseFloat(327.95 * parseFloat(index - currentOfferDisplayId)) + \"px\" }, 1000);\r\n currentOfferDisplayId = index;\r\n } else if (index < currentOfferDisplayId) {\r\n $(\"#offersholder\").animate({ \"left\": \"+=\" + parseFloat(327.95 * parseFloat(currentOfferDisplayId - index)) + \"px\" }, 1000);\r\n currentOfferDisplayId = index;\r\n }\r\n}\r\n\r\n\r\nfunction showHeaderOfferDetails(id, index) {\r\n\r\n var pagingLinksArray = getElement('paginglinks').getElementsByTagName('a');\r\n /* THE WIDTH INCLUDES PADDING AND MARGIN */\r\n var offerHolderWidth = 315;\r\n var offerHolderId;\r\n\r\n for (var i = 0; i < pagingLinksArray.length; i++) {\r\n pagingLinksArray[i].style.fontWeight = 'normal';\r\n pagingLinksArray[i].style.color = 'white';\r\n }\r\n\r\n getElement('paginglink_' + index).style.fontWeight = 'bold';\r\n getElement('paginglink_' + index).style.color = '#EA8533';\r\n\r\n if (index == 1) {\r\n $(\"#offersholderpanel\").animate({ \"left\": 0 + \"px\" }, 1000);\r\n currentOfferDisplayId = index;\r\n } else if (index > currentOfferDisplayId) {\r\n $(\"#offersholderpanel\").animate({ \"left\": \"-\" + parseFloat(offerHolderWidth * parseFloat(index - 1)) + \"px\" }, 1000);\r\n currentOfferDisplayId = index;\r\n } else if (index < currentOfferDisplayId) {\r\n $(\"#offersholderpanel\").animate({ \"left\": \"+=\" + parseFloat(offerHolderWidth * parseFloat(currentOfferDisplayId - index)) + \"px\" }, 1000);\r\n currentOfferDisplayId = index;\r\n }\r\n\r\n}\r\n\r\nfunction showHotelHeaderOfferDetails(id, index) {\r\n\r\n var pagingLinksArray = getElement('hotelpaginglinks').getElementsByTagName('a');\r\n /* THE WIDTH INCLUDES PADDING AND MARGIN */\r\n var offerHolderWidth = 355;\r\n\r\n for (var i = 0; i < pagingLinksArray.length; i++) {\r\n pagingLinksArray[i].style.fontWeight = 'normal';\r\n pagingLinksArray[i].style.color = 'white';\r\n }\r\n\r\n function $() {\r\n var elements = [];\r\n for (var i = 0; i < arguments.length; i++) {\r\n var element = arguments[i];\r\n if (typeof element === 'string')\r\n element = document.getElementById(element);\r\n if (arguments.length === 1)\r\n return element;\r\n elements.push(element);\r\n }\r\n return elements;\r\n }\r\n\r\n getElement('paginglink_' + index).style.fontWeight = 'bold';\r\n getElement('paginglink_' + index).style.color = '#EA8533';\r\n\r\n /* THIS HAS BEEN ADDED SO THERE IS NO CONFLICT WITH THE $ FUNCTION */\r\n (function ($) {\r\n if (index == 1) {\r\n $(\"#offershotelpanel\").animate({ \"left\": 0 + \"px\" }, 1000);\r\n currentOfferDisplayId = index;\r\n } else if (index > currentOfferDisplayId) {\r\n $(\"#offershotelpanel\").animate({ \"left\": \"-\" + parseFloat(offerHolderWidth * parseFloat(index - 1)) + \"px\" }, 1000);\r\n currentOfferDisplayId = index;\r\n } else if (index < currentOfferDisplayId) {\r\n $(\"#offershotelpanel\").animate({ \"left\": \"+=\" + parseFloat(offerHolderWidth * parseFloat(currentOfferDisplayId - index)) + \"px\" }, 1000);\r\n currentOfferDisplayId = index;\r\n }\r\n\r\n })(jQuery);\r\n\r\n}\r\n\r\n\r\nfunction expandOfferDetails(id) {\r\n var numericId;\r\n if (id.length > 0) {\r\n numericId = id.split('_')[1];\r\n }\r\n if (getElement(id)) {\r\n if (getElement(id).style.height == '100%') {\r\n $(\"#offersholder\").animate({ height: \"124px\" }, 500);\r\n $(\"#\" + id).animate({ height: \"119px\" }, 500);\r\n getElement('more_' + numericId).innerText = 'Read more';\r\n } else {\r\n getElement('offersholder').style.height = '100%';\r\n getElement(id).style.height = '100%';\r\n getElement('more_' + numericId).innerText = 'close';\r\n }\r\n }\r\n}\r\n\r\nfunction showMoreTours(id, id2) {\r\n if (getElement(id)) {\r\n if (getElement(id).style.height == '100%') {\r\n getElement(id).style.height = '53px';\r\n getElement(id2).innerText = 'More tours';\r\n } else {\r\n getElement(id).style.height = '100%';\r\n getElement(id2).innerText = 'Close';\r\n }\r\n }\r\n}\r\n\r\nfunction showTourDetails2(direction) {\r\n\r\n var str;\r\n var indexOfComma;\r\n var indexOfBracket;\r\n var id;\r\n var pagingLinksArray = getElement('tourpaginglinks').getElementsByTagName('a');\r\n\r\n $(\"#touroffersholder\")[0].style.width = parseFloat(326.99 * pagingLinksArray.length) + 326 + \"px\";\r\n\r\n for (var i = 0; i < pagingLinksArray.length; i++) {\r\n \r\n pagingLinksArray[i].getElementsByTagName('img')[0].style.border = 'none';\r\n }\r\n\r\n if (direction == 'right') {\r\n\r\n if (currentTourDisplayId != 1) {\r\n index = currentTourDisplayId + 1;\r\n } else {\r\n index = currentTourDisplayId;\r\n }\r\n\r\n if (index === -1 || index - 1 === 0 || index === 0) {\r\n // IF INDEX IS 0 OR 1 WE WANT THE NEXT IMAGE TO BE 2 (ROBCAHOON)\r\n getElement('tourpaginglink_' + 2).getElementsByTagName('img')[0].style.border = 'solid 1px black';\r\n index = 2;\r\n } if (index - 1 == pagingLinksArray.length) {\r\n // IF WE ARE AT THE FINAL IMAGE DON'T GO ANY FURTHER (ROBCAHOON)\r\n getElement('tourpaginglink_' + pagingLinksArray.length).getElementsByTagName('img')[0].style.border = 'solid 1px black';\r\n index = pagingLinksArray.length;\r\n } else {\r\n //SCROLL THROUGH 1 IMAGE AT A TIME (ROBCAHOON)\r\n getElement('tourpaginglink_' + index).getElementsByTagName('img')[0].style.border = 'solid 1px black';\r\n\r\n }\r\n\r\n currentPosition = $(\"#touroffersholder\")[0].style.left;\r\n currentPosition = -parseFloat(326.99 * parseFloat(index - currentTourDisplayId));\r\n \r\n if (newPosition === 0) {\r\n newPosition = currentPosition;\r\n } else {\r\n newPosition = newPosition + currentPosition;\r\n }\r\n\r\n if (index == 1) {\r\n newPosition = 0;\r\n }\r\n\r\n if (index == 13 || index == 25 || index == 37 || index == 49 || index == 61 || index == 73 || index == 85) {\r\n //SCROLL THE WHOLE SLIDER (ROBCAHOON)\r\n scrollTourPaging('left');\r\n\r\n for (var idx = index - 1; idx < (index - 1) + 12; idx++) {\r\n if (i < pagingLinksArray.length) {\r\n str = pagingLinksArray[idx].href;\r\n indexOfComma = str.indexOf(\",\");\r\n indexOfBracket = str.indexOf(\"(\");\r\n id = str.substring(indexOfBracket + 1, indexOfComma);\r\n\r\n var element;\r\n var elementChildImg;\r\n\r\n if (document.getElementById(\"tour_\" + id)) {\r\n element = document.getElementById(\"tour_\" + id);\r\n\r\n elementChildImg = element.getElementsByTagName('img');\r\n\r\n if (elementChildImg) {\r\n elementChildImg[0].src = '/utility/tourimg.aspx?indeximg=' + id;\r\n }\r\n\r\n }\r\n }\r\n \r\n }\r\n\r\n }\r\n\r\n $(\"#touroffersholder\").animate({ \"marginLeft\": +newPosition + \"px\" }, 1000);\r\n currentTourDisplayId = index;\r\n index = index + 1;\r\n } else {\r\n\r\n if (currentTourDisplayId != 1) {\r\n index = currentTourDisplayId + 1;\r\n } else {\r\n index = currentTourDisplayId;\r\n }\r\n\r\n index = index - 1;\r\n if (index === -1 || index - 1 === 0 || index === 0) {\r\n // AS WE ARE GOING BACKWARDS ON THE IMAGES WE DO WANT IT TO GO BACK TO 1 (ROBCAHOON)\r\n getElement('tourpaginglink_' + 1).getElementsByTagName('img')[0].style.border = 'solid 1px black';\r\n index = 1;\r\n } else {\r\n // JUST SCROLL BACK THROUGH THE IMAGES 1 AT A TIME (ROBCAHOON)\r\n getElement('tourpaginglink_' + (index - 1)).getElementsByTagName('img')[0].style.border = 'solid 1px black';\r\n }\r\n\r\n currentPosition = $(\"#touroffersholder\")[0].style.left;\r\n currentPosition = parseFloat(326.99 * parseFloat(index + 1 - currentTourDisplayId));\r\n\r\n if (newPosition === 0) {\r\n newPosition = currentPosition;\r\n } else {\r\n newPosition = newPosition + currentPosition;\r\n }\r\n\r\n if (index == 1 || index - 1 == 1) {\r\n newPosition = 0;\r\n currentTourDisplayId = 2;\r\n }\r\n\r\n if (index == 12 || index == 25 || index == 36 || index == 48 || index == 60 || index == 72 || index == 84) {\r\n //SCROLL THE WHOLE SLIDER\r\n scrollTourPaging('right'); \r\n }\r\n \r\n $(\"#touroffersholder\").animate({ \"marginLeft\": +newPosition + \"px\" }, 1000);\r\n currentTourDisplayId = currentTourDisplayId - 1;\r\n }\r\n\r\n}\r\n\r\nvar currentTourDisplayId = 1;\r\nvar currentPosition;\r\nvar newPosition = 0;\r\n\r\nfunction showTourDetails(id, index) {\r\n\r\n var pagingLinksArray = getElement('tourpaginglinks').getElementsByTagName('a');\r\n\r\n for (var i = 0; i < pagingLinksArray.length; i++) {\r\n pagingLinksArray[i].getElementsByTagName('img')[0].style.border = 'none';\r\n }\r\n\r\n getElement('tourpaginglink_' + index).getElementsByTagName('img')[0].style.border = 'solid 1px black';\r\n\r\n $(\"#touroffersholder\")[0].style.width = parseFloat(326.99 * pagingLinksArray.length) + 326 + \"px\";\r\n\r\n currentPosition = $(\"#touroffersholder\")[0].style.left;\r\n currentPosition = -parseFloat(326.99 * parseFloat(index - currentTourDisplayId));\r\n\r\n if (newPosition === 0) {\r\n newPosition = currentPosition;\r\n } else {\r\n newPosition = newPosition + currentPosition;\r\n }\r\n\r\n if (index == 1) {\r\n newPosition = 0;\r\n }\r\n\r\n $(\"#touroffersholder\").animate({ \"marginLeft\": +newPosition + \"px\" }, 1000);\r\n currentTourDisplayId = index;\r\n\r\n}\r\n\r\nvar currentScrollTourPage = 1;\r\n\r\nfunction scrollTourPaging(direction) {\r\n var toursPerPage = 11;\r\n var pagingLinksArray = getElement('tourpaginglinks').getElementsByTagName('a');\r\n var maxNumberOfPages = Math.ceil(pagingLinksArray.length / toursPerPage);\r\n\r\n if (direction == 'left' && currentScrollTourPage < maxNumberOfPages) {\r\n $(\"#tourpaginglinks\").animate({ \"left\": \"-=286px\" }, 1000);\r\n currentScrollTourPage += 1;\r\n } else if (direction == 'right' && currentScrollTourPage > 1) {\r\n $(\"#tourpaginglinks\").animate({ \"left\": \"+=286px\" }, 1000);\r\n currentScrollTourPage -= 1; \r\n }\r\n}\r\n\r\nif (window.addEventListener) { //EXECUTED ON WINDOW LOAD/UNLOAD EVENT. ATTEMPTS FF/MOZ ETC THEN IE THEN OVERIDES window.onload/unload EVENTS\r\n window.addEventListener('load', function() { windowLoadEvents(); }, false);\r\n} else if (window.attachEvent) {\r\n window.attachEvent('onload', windowLoadEvents);\r\n} else {\r\n window.onload = function() { windowLoadEvents(); };\r\n}\r\n\r\nfunction windowLoadEvents() {\r\n \r\n //PLEASE KEEP CODE IN HERE TO A MINIMUM - CALL FUNCTIONS WHERE POSSIBLE\r\n\r\n querySt();\r\n\r\n toggleMenuElementsOnPageLoad();\r\n\r\n loadExternalJavascriptFiles();\r\n\r\n //prepareBusinessClassFlightsPage();\r\n}\r\n\r\nfunction loadExternalJavascriptFiles() { \r\n \r\n //loadScript('url-to-load', callback-function); DO *NOT* USE PARENTHESES WITH THE CALLBACK FUNCTION OR YOU WILL EXECUTE IT RATHER THAN PASS IT IN AS AN ARGUMENT\r\n\r\n}\r\n\r\nfunction loadScriptWithCallback(urlToLoad,callbackFunction) {\r\n function scriptOnload() {\r\n this.onreadystatechange = null;\r\n this.onload = null;\r\n window.setTimeout(callbackFunction, 20);\r\n }\r\n var loadScriptHandler = function() {\r\n var rs = this.readyState;\r\n if (rs == 'loaded' || rs == 'complete') {\r\n scriptOnload();\r\n }\r\n };\r\n var script = document.createElement('script');\r\n script.type = 'text/javascript';\r\n if (callbackFunction) {\r\n //HOOK INTO BOTH POSSIBLE EVENTS\r\n script.onreadystatechange = loadScriptHandler;\r\n script.onload = scriptOnload;\r\n }\r\n script.src = urlToLoad;\r\n document.getElementsByTagName('head')[0].appendChild(script);\r\n}\r\n\r\nfunction toggleMenuElementsOnPageLoad() {\r\n\r\n var index = window.location.href.indexOf('#');\r\n\r\n if (index > -1 && index === (window.location.href.length - 1)) {\r\n showelement('ctl00_menu_menulist');\r\n }\r\n\r\n}\r\n\r\nfunction showreview(id) {\r\n if (getElement(id)) {\r\n if (getElement('morereviews')) {\r\n getElement('morereviews').style.display = \"block\";\r\n }\r\n getElement(id).style.display = \"block\";\r\n }\r\n}\r\nfunction closereview(id) {\r\n if (getElement(id)) {\r\n if (getElement('morereviews')) {\r\n getElement('morereviews').style.display = \"none\";\r\n }\r\n getElement(id).style.display = \"none\";\r\n }\r\n}\r\n\r\nvar previousElement = null;\r\nvar previousClickedElement = null;\r\n\r\nfunction showelement(id) {\r\n if (getElement(id)) {\r\n\r\n getElement(id).style.display = \"block\";\r\n\r\n if (id.substring(0, 7) === 'submenu') {\r\n if (getElement('ctl00_menu_menulist')) {\r\n getElement('ctl00_menu_menulist').style.display = \"none\";\r\n }\r\n\r\n //getElement('link' + id).style.color = '#fa851c';\r\n if (id.split('_')[1] != '954') {\r\n getElement('link' + id).style.left = '-10px';\r\n }\r\n\r\n if (previousElement) {\r\n if (previousElement.id != id) {\r\n previousElement.style.display = \"none\";\r\n }\r\n }\r\n\r\n previousElement = getElement(id);\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction preventNav(id) {\r\n if ((!previousClickedElement || id != previousClickedElement.id) && ('ontouchstart' in document || navigator.userAgent.toLowerCase().indexOf('mobile') > -1)) {\r\n previousClickedElement = getElement(id);\r\n try {\r\n event.returnValue = false;\r\n event.preventDefault();\r\n return false;\r\n } catch (err) { }\r\n }\r\n}\r\n\r\nfunction subMenuDisplayOnIphone(id) {\r\n\r\n if (getElement(id).style.display === \"block\" || getElement(id).style.display === '') {\r\n getElement(id).style.display = 'none';\r\n } else {\r\n getElement(id).style.display = 'block';\r\n }\r\n\r\n}\r\n\r\nfunction toggleSubMenu(id) {\r\n\r\n document.getElementById(id).style.display = 'none';\r\n\r\n}\r\n\r\n//function reloadPageAndMenu() {\r\n\r\n// if (window.location.href.indexOf('#') > 0) {\r\n// window.location.href;\r\n// } else {\r\n// window.location.href += \"#\";\r\n// }\r\n// location.reload();\r\n\r\n//}\r\n\r\nfunction showSubMenu() {\r\n if (getElement('submenu2')) {\r\n getElement('submenu2').style.display = \"block\";\r\n if (previousElement) {\r\n //getElement('link' + previousElement.id).style.color = '#938b82';\r\n }\r\n\r\n }\r\n}\r\n\r\n\r\nfunction showelementDesign2(id) {\r\n if (getElement(id)) {\r\n getElement(id).style.display = \"block\";\r\n if (id.substring(0, 7) === 'submenu') {\r\n getElement('link' + id).style.color = '#FF9934';\r\n if (id.split('_')[1] != '954') {\r\n getElement('link' + id).style.left = '-10px';\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\nfunction hideelement(id) {\r\n if (getElement(id)) {\r\n getElement(id).style.display = \"none\";\r\n if (id.substring(0, 7) === 'submenu') {\r\n if (getElement('submenu2')) {\r\n getElement('submenu2').style.display = \"block\";\r\n }\r\n //getElement('link' + id).style.color = '#938b82';\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction toggleElement(id, blockOrNone) {\r\n LotusGroup.DOM.toggleElementDisplay(id, blockOrNone);\r\n return false;\r\n}\r\n\r\nfunction getElementsByClass(searchClass, node, tag) {\r\n var classElements = [];\r\n if (node === null) {\r\n node = document;\r\n } else {\r\n node = $(node);\r\n }\r\n if (tag === null)\r\n tag = '*';\r\n var els = node.getElementsByTagName(tag);\r\n var elsLen = els.length;\r\n var pattern = new RegExp('(^|\\\\\\\\s)' + searchClass + '(\\\\\\\\s|$)');\r\n for (i = 0, j = 0; i < elsLen; i++) {\r\n if (pattern.test(els[i].className)) {\r\n classElements[j] = els[i];\r\n j++;\r\n }\r\n }\r\n return classElements;\r\n}\r\n\r\nvar weekDays = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"];\r\nfunction getElement(elementId) {\r\n if (document.getElementById) {\r\n return document.getElementById(elementId);\r\n } else {\r\n return document.all[elementId];\r\n }\r\n}\r\nfunction todayAsStringFromElement(day, monYear) {\r\n if (day.length > 0 && monYear.length > 0) {\r\n var year = monYear.substring(0, 4);\r\n var mon = monYear.substring(5) - 1;\r\n var myDate = new Date();\r\n myDate.setFullYear(year, mon, day);\r\n return weekDays[myDate.getDay()];\r\n }\r\n}\r\n\r\nfunction toggleSearchBoxes(showP, hide1P, hide2P, tab) {\r\n var show = getElement(showP);\r\n var hide1 = getElement(hide1P);\r\n var hide2 = getElement(hide2P);\r\n var searchTitle = getElement('ctl00_middleContent_multiSearch_searchTitle');\r\n if (show && hide1 && hide2) {\r\n show.style.display = 'block';\r\n hide1.style.display = 'none';\r\n hide2.style.display = 'none';\r\n }\r\n\r\n if (searchTitle) {\r\n searchTitle.innerHTML = searchTitle.innerHTML.replace(\"flights\", \"\");\r\n searchTitle.innerHTML = searchTitle.innerHTML.replace(\"hotels\", \"\");\r\n searchTitle.innerHTML = searchTitle.innerHTML.replace(\"cars\", \"\");\r\n\r\n show.style.backgroundImage = 'url(/images/structure/searchbackgrounds.jpg)';\r\n\r\n switch (show.id) {\r\n case 'ctl00_middleContent_multiSearch_flightSearchHolder':\r\n getElement('choosesearchf').checked = true;\r\n searchTitle.innerHTML = searchTitle.innerHTML + ' flights';\r\n break;\r\n case 'ctl00_middleContent_multiSearch_hotelSearchHolder':\r\n show.style.minHeight = '208px';\r\n getElement('choosesearchh').checked = true;\r\n searchTitle.innerHTML = searchTitle.innerHTML + ' hotels';\r\n break;\r\n case 'ctl00_middleContent_multiSearch_carSearchHolder':\r\n show.style.minHeight = '208px';\r\n getElement('choosesearchc').checked = true;\r\n searchTitle.innerHTML = searchTitle.innerHTML + ' cars';\r\n break;\r\n }\r\n }\r\n}\r\n\r\nfunction todayAsString() {\r\n var today = new Date();\r\n return weekDays[today.getDay()];\r\n}\r\n\r\nvar jqDP_DATE_FORMAT_STRING = 'dd/mm/yy';\r\n\r\nfunction initDatePicker() {\r\n\r\n if (getElement('fsdepart') && getElement('fsreturn')) {\r\n $('#fsdepart').datepicker(\r\n {\r\n onSelect: function(dateText, inst) { dateSelectedNew(0, 'FLIGHTS'); }, \r\n minDate: 1, //TODAY\r\n maxDate: 365, //1 YEAR IN THE FUTURE\r\n dateFormat: jqDP_DATE_FORMAT_STRING,\r\n prevText: 'Earlier',\r\n nextText: 'Later',\r\n duration: 10,\r\n gotoCurrent: true,\r\n numberOfMonths: 2,\r\n dayNamesMin: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"]\r\n }\r\n );\r\n $('#fsreturn').datepicker(\r\n {\r\n onSelect: function(dateText, inst) { dateSelectedNew(1, 'FLIGHTS'); },\r\n minDate: 1, //TODAY\r\n maxDate: 365, //1 YEAR IN THE FUTURE\r\n dateFormat: jqDP_DATE_FORMAT_STRING,\r\n prevText: 'Earlier',\r\n nextText: 'Later',\r\n duration: 10,\r\n gotoCurrent: true,\r\n numberOfMonths: 2,\r\n dayNamesMin: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"]\r\n }\r\n );\r\n if (getElement('fsdepartdaydepart_weekday')) { getElement('fsdepartdaydepart_weekday').innerHTML = $.datepicker.formatDate('DD', new Date($(\"#fsdepart\").datepicker('getDate').getFullYear(), $(\"#fsdepart\").datepicker('getDate').getMonth(), $(\"#fsdepart\").datepicker('getDate').getDate())); }\r\n if (getElement('fsreturndayreturn_weekday')) { getElement('fsreturndayreturn_weekday').innerHTML = $.datepicker.formatDate('DD', new Date($(\"#fsreturn\").datepicker('getDate').getFullYear(), $(\"#fsreturn\").datepicker('getDate').getMonth(), $(\"#fsreturn\").datepicker('getDate').getDate())); } \r\n }\r\n if (getElement('hsarrival')) {\r\n $('#hsarrival').datepicker(\r\n {\r\n onSelect: function(dateText, inst) { dateSelectedNew(0, 'HOTELS'); },\r\n minDate: 1, //TODAY\r\n maxDate: 365, //1 YEAR IN THE FUTURE\r\n dateFormat: jqDP_DATE_FORMAT_STRING,\r\n prevText: 'Earlier',\r\n nextText: 'Later',\r\n duration: 10,\r\n gotoCurrent: true,\r\n numberOfMonths: 2,\r\n dayNamesMin: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"]\r\n }\r\n );\r\n getElement('hsdayarrival_weekday').innerHTML = $.datepicker.formatDate('DD', new Date($(\"#hsarrival\").datepicker('getDate').getFullYear(), $(\"#hsarrival\").datepicker('getDate').getMonth(), $(\"#hsarrival\").datepicker('getDate').getDate())); \r\n }\r\n if (getElement('csdepart') && getElement('csreturn')) {\r\n $('#csdepart').datepicker(\r\n {\r\n onSelect: function(dateText, inst) { dateSelectedNew(0, 'CARS'); },\r\n minDate: 1, //TODAY\r\n maxDate: 365, //1 YEAR IN THE FUTURE\r\n dateFormat: jqDP_DATE_FORMAT_STRING,\r\n prevText: 'Earlier',\r\n nextText: 'Later',\r\n duration: 10,\r\n gotoCurrent: true,\r\n numberOfMonths: 2,\r\n dayNamesMin: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"]\r\n }\r\n );\r\n $('#csreturn').datepicker(\r\n {\r\n onSelect: function(dateText, inst) { dateSelectedNew(1, 'CARS'); },\r\n minDate: 1, //TODAY\r\n maxDate: 365, //1 YEAR IN THE FUTURE\r\n dateFormat: jqDP_DATE_FORMAT_STRING,\r\n prevText: 'Earlier',\r\n nextText: 'Later',\r\n duration: 10,\r\n gotoCurrent: true,\r\n numberOfMonths: 2,\r\n dayNamesMin: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"]\r\n }\r\n );\r\n getElement('cspickupday_weekday').innerHTML = $.datepicker.formatDate('DD', new Date($(\"#csdepart\").datepicker('getDate').getFullYear(), $(\"#csdepart\").datepicker('getDate').getMonth(), $(\"#csdepart\").datepicker('getDate').getDate()));\r\n getElement('csdropoffday_weekday').innerHTML = $.datepicker.formatDate('DD', new Date($(\"#csreturn\").datepicker('getDate').getFullYear(), $(\"#csreturn\").datepicker('getDate').getMonth(), $(\"#csreturn\").datepicker('getDate').getDate()));\r\n }\r\n}\r\n\r\nfunction dateSelectedNew(id, type) {\r\n //console.log($.fn.jquery);\r\n var newDate;\r\n if (id === 0) {\r\n switch (type) {\r\n case 'FLIGHTS':\r\n newDate = new Date($(\"#fsdepart\").datepicker('getDate').getFullYear(), $(\"#fsdepart\").datepicker('getDate').getMonth(), $(\"#fsdepart\").datepicker('getDate').getDate() + 7);\r\n $('#fsreturn').datepicker('option', 'defaultDate', $.datepicker.formatDate(jqDP_DATE_FORMAT_STRING, newDate));\r\n getElement('fsreturn').value = $.datepicker.formatDate(jqDP_DATE_FORMAT_STRING, newDate);\r\n if (getElement('fsdepartdaydepart_weekday')) { getElement('fsdepartdaydepart_weekday').innerHTML = $.datepicker.formatDate('DD', newDate); }\r\n if (getElement('fsreturndayreturn_weekday')) { getElement('fsreturndayreturn_weekday').innerHTML = $.datepicker.formatDate('DD', newDate); }\r\n break;\r\n case 'HOTELS':\r\n getElement('hsdayarrival_weekday').innerHTML = $.datepicker.formatDate('DD', new Date($(\"#hsarrival\").datepicker('getDate').getFullYear(), $(\"#hsarrival\").datepicker('getDate').getMonth(), $(\"#hsarrival\").datepicker('getDate').getDate()));\r\n break;\r\n case 'CARS':\r\n newDate = new Date($(\"#csdepart\").datepicker('getDate').getFullYear(), $(\"#csdepart\").datepicker('getDate').getMonth(), $(\"#csdepart\").datepicker('getDate').getDate() + 7);\r\n $('#csreturn').datepicker('option', 'defaultDate', $.datepicker.formatDate(jqDP_DATE_FORMAT_STRING, newDate));\r\n getElement('csreturn').value = $.datepicker.formatDate(jqDP_DATE_FORMAT_STRING, newDate);\r\n getElement('cspickupday_weekday').innerHTML = $.datepicker.formatDate('DD', newDate);\r\n getElement('csdropoffday_weekday').innerHTML = $.datepicker.formatDate('DD', newDate);\r\n break;\r\n }\r\n } else {\r\n switch (type) {\r\n case 'FLIGHTS':\r\n newDate = new Date($(\"#fsreturn\").datepicker('getDate').getFullYear(), $(\"#fsreturn\").datepicker('getDate').getMonth(), $(\"#fsreturn\").datepicker('getDate').getDate());\r\n getElement('fsreturn').value = $.datepicker.formatDate(jqDP_DATE_FORMAT_STRING, newDate);\r\n if (getElement('fsreturndayreturn_weekday')) { getElement('fsreturndayreturn_weekday').innerHTML = $.datepicker.formatDate('DD', newDate); } \r\n break;\r\n case 'HOTELS':\r\n break;\r\n case 'CARS':\r\n newDate = new Date($(\"#csreturn\").datepicker('getDate').getFullYear(), $(\"#csreturn\").datepicker('getDate').getMonth(), $(\"#csreturn\").datepicker('getDate').getDate());\r\n $('#csreturn').datepicker('option', 'defaultDate', $.datepicker.formatDate(jqDP_DATE_FORMAT_STRING, newDate));\r\n getElement('csreturn').value = $.datepicker.formatDate(jqDP_DATE_FORMAT_STRING, newDate);\r\n getElement('csdropoffday_weekday').innerHTML = $.datepicker.formatDate('DD', newDate);\r\n break;\r\n }\r\n }\r\n \r\n}\r\n\r\nfunction setWeekDay(id, selectedDate) {\r\n var tempSelectedDate = null;\r\n if (getElement(id)) {\r\n try {\r\n tempSelectedDate = getDateFromIsoDateString(selectedDate);\r\n } catch (err) {\r\n tempSelectedDate = selectedDate;\r\n }\r\n getElement(id).innerHTML = weekDays[tempSelectedDate.getDay()];\r\n }\r\n}\r\n\r\n/* GENERIC BROWSER DETECTION FUNCTION */\r\nvar BrowserDetect = {\r\n init: function() {\r\n this.browser = this.searchString(this.dataBrowser) || \"An unknown browser\";\r\n this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || \"an unknown version\";\r\n this.OS = this.searchString(this.dataOS) || \"an unknown OS\";\r\n },\r\n searchString: function(data) {\r\n for (var i = 0; i < data.length; i++) {\r\n var dataString = data[i].string;\r\n var dataProp = data[i].prop;\r\n this.versionSearchString = data[i].versionSearch || data[i].identity;\r\n if (dataString) {\r\n if (dataString.indexOf(data[i].subString) != -1)\r\n return data[i].identity;\r\n }\r\n else if (dataProp)\r\n return data[i].identity;\r\n }\r\n },\r\n searchVersion: function(dataString) {\r\n var index = dataString.indexOf(this.versionSearchString);\r\n if (index == -1) return;\r\n return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));\r\n },\r\n dataBrowser: [\r\n\t\t{ string: navigator.userAgent,\r\n\t\t subString: \"OmniWeb\",\r\n\t\t versionSearch: \"OmniWeb/\",\r\n\t\t identity: \"OmniWeb\"\r\n\t\t},\r\n\t\t{\r\n\t\t string: navigator.vendor,\r\n\t\t subString: \"Apple\",\r\n\t\t identity: \"Safari\"\r\n\t\t},\r\n\t\t{\r\n\t\t prop: window.opera,\r\n\t\t identity: \"Opera\"\r\n\t\t},\r\n\t\t{\r\n\t\t string: navigator.vendor,\r\n\t\t subString: \"iCab\",\r\n\t\t identity: \"iCab\"\r\n\t\t},\r\n\t\t{\r\n\t\t string: navigator.vendor,\r\n\t\t subString: \"KDE\",\r\n\t\t identity: \"Konqueror\"\r\n\t\t},\r\n\t\t{\r\n\t\t string: navigator.userAgent,\r\n\t\t subString: \"Firefox\",\r\n\t\t identity: \"Firefox\"\r\n\t\t},\r\n\t\t{\r\n\t\t string: navigator.vendor,\r\n\t\t subString: \"Camino\",\r\n\t\t identity: \"Camino\"\r\n\t\t},\r\n\t\t{\t\t// for newer Netscapes (6+)\r\n\t\t string: navigator.userAgent,\r\n\t\t subString: \"Netscape\",\r\n\t\t identity: \"Netscape\"\r\n\t\t},\r\n\t\t{\r\n\t\t string: navigator.userAgent,\r\n\t\t subString: \"MSIE\",\r\n\t\t identity: \"Explorer\",\r\n\t\t versionSearch: \"MSIE\"\r\n\t\t},\r\n\t\t{\r\n\t\t string: navigator.userAgent,\r\n\t\t subString: \"Gecko\",\r\n\t\t identity: \"Mozilla\",\r\n\t\t versionSearch: \"rv\"\r\n\t\t},\r\n\t\t{ \t\t// for older Netscapes (4-)\r\n\t\t string: navigator.userAgent,\r\n\t\t subString: \"Mozilla\",\r\n\t\t identity: \"Netscape\",\r\n\t\t versionSearch: \"Mozilla\"\r\n\t\t}\r\n\t],\r\n dataOS: [\r\n\t\t{\r\n\t\t string: navigator.platform,\r\n\t\t subString: \"Win\",\r\n\t\t identity: \"Windows\"\r\n\t\t},\r\n\t\t{\r\n\t\t string: navigator.platform,\r\n\t\t subString: \"Mac\",\r\n\t\t identity: \"Mac\"\r\n\t\t},\r\n\t\t{\r\n\t\t string: navigator.platform,\r\n\t\t subString: \"Linux\",\r\n\t\t identity: \"Linux\"\r\n\t\t}\r\n\t]\r\n\r\n};\r\nBrowserDetect.init();\r\n\r\nfunction showTips(id, id2) {\r\n if (getElement(id)) {\r\n if (getElement(id).style.height == '100%') {\r\n getElement(id).style.height = 230 + 'px';\r\n getElement(id).style.width = 330 + 'px';\r\n getElement(id2).innerHTML = 'read more';\r\n getElement(id).style.overflow = 'hidden';\r\n getElement('readmore').style.display = 'block';\r\n getElement('flightdeals').style.display = 'block';\r\n getElement('currentoffers').style.display = 'block';\r\n getElement('airlinenews').style.display = 'block';\r\n getElement('searchholder').style.display = 'block';\r\n } else {\r\n getElement(id).style.height = '100%';\r\n getElement(id).style.overflow = 'visible';\r\n getElement(id).style.width = 500 + 'px';\r\n getElement(id2).innerHTML = 'close';\r\n getElement(id2).style.display = 'none';\r\n getElement('flightdeals').style.display = 'none';\r\n getElement('currentoffers').style.display = 'none';\r\n getElement('airlinenews').style.display = 'none';\r\n getElement('searchholder').style.display = 'none';\r\n \r\n }\r\n }\r\n}\r\n\r\nvar player;\r\nvar previousEvent;\r\nvar videoText;\r\nvar redChairText;\r\nvar watchText;\r\n\r\nfunction playerReady(evt) {\r\n player = document.getElementById(evt.id);\r\n player.addControllerListener('PLAY', 'play');\r\n}\r\n\r\nfunction clickListener(obj) {\r\n\r\n if (document.getElementById(\"ctl00_mainContent_videoText\") !== null) {\r\n videoText = document.getElementById(\"ctl00_mainContent_videoText\");\r\n watchText = document.getElementById(\"ctl00_mainContent_watchtext\"); \r\n if (videoText !== null) {\r\n videoText.style.display = \"none\";\r\n watchText.style.display = \"none\"; \r\n }\r\n } else if (document.getElementById(\"ctl00_mainContent_redChairText\") !== null) {\r\n redChairText = document.getElementById(\"ctl00_mainContent_redChairText\");\r\n if (redChairText !== null) {\r\n redChairText.style.display = \"none\";\r\n }\r\n }\r\n\r\n checkPlayer();\r\n}\r\n\r\nfunction play() {\r\n\r\n if (document.getElementById(\"ctl00_mainContent_videoText\") !== null) {\r\n videoText = document.getElementById(\"ctl00_mainContent_videoText\");\r\n watchText = document.getElementById(\"ctl00_mainContent_watchtext\");\r\n if (videoText !== null) {\r\n videoText.style.display = \"none\";\r\n watchText.style.display = \"none\";\r\n }\r\n } else if (document.getElementById(\"ctl00_mainContent_redChairText\") !== null) {\r\n redChairText = document.getElementById(\"ctl00_mainContent_redChairText\");\r\n if (redChairText !== null) {\r\n redChairText.style.display = \"none\";\r\n }\r\n }\r\n\r\n}\r\n\r\n\r\nfunction checkPlayer() {\r\n if (previousEvent !== null) {\r\n if (previousEvent.id == 'ply') {\r\n previousEvent = player.sendEvent('PLAY');\r\n } else {\r\n previousEvent = player.sendEvent('STOP');\r\n }\r\n } else {\r\n previousEvent = player.sendEvent('PLAY');\r\n }\r\n\r\n}\r\n\r\n\r\nfunction loadVideo(w, h) {\r\n if (document.getElementById('html5video')) {\r\n document.getElementById('html5video').style.display = 'block';\r\n document.getElementById('html5video').style.marginBottom = '10px';\r\n document.getElementById('videostaticimage').style.display = 'none';\r\n } else if (document.getElementById('player')) {\r\n document.getElementById('player').style.display = 'block';\r\n document.getElementById('close').style.display = 'block';\r\n document.getElementById('player').style.width = w;\r\n document.getElementById('player').style.height = h; \r\n flowplayer('player').play();\r\n } \r\n}\r\n\r\nfunction closeVideo() {\r\n if (document.getElementById('player')) {\r\n document.getElementById('player').style.display = 'none';\r\n flowplayer('player').stop();\r\n } \r\n}\r\n\r\nvar calls = 0;\r\n\r\nfunction scrollThumbs(direction, moveImgsBy) {\r\n\r\n var left = 0;\r\n var imgMoveBy;\r\n\r\n if (moveImgsBy) {\r\n imgMoveBy = moveImgsBy;\r\n } else {\r\n imgMoveBy = 4;\r\n }\r\n\r\n //Get our elements for faster access and set overlay width\r\n var div = $('div.sc_menu_mag'),\r\n ul = $('ul.sc_menu_mag');\r\n\r\n //Remove scrollbars\r\n div.css({ overflow: 'hidden' });\r\n\r\n if (direction === 'left') {\r\n calls++;\r\n left = ((85 * imgMoveBy) * (calls));\r\n if (left < ((ul.outerWidth() - div.outerWidth()) + 255)) {\r\n div.animate({ scrollLeft: left }, 'slow');\r\n } else {\r\n calls--;\r\n }\r\n } else if (direction === 'right') {\r\n if (calls > 0) {\r\n calls--;\r\n left = ((85 * imgMoveBy) * (calls));\r\n if (left < (ul.outerWidth() - div.outerWidth())) {\r\n div.animate({ scrollLeft: left }, 'slow');\r\n } \r\n }\r\n }\r\n \r\n return false;\r\n}\r\n\r\n\r\nfunction scrollOfferThumbs(imgId) {\r\n\r\n var left = 0;\r\n var imgNumber;\r\n var scrollBy;\r\n\r\n imgNumber = imgId.indexOf('_');\r\n\r\n imgNumber = imgId.substring(imgNumber + 1, imgId.length);\r\n\r\n scrollBy = imgNumber / 8;\r\n scrollBy = Math.round(scrollBy);\r\n\r\n calls = scrollBy - 1;\r\n\r\n //Get our elements for faster access and set overlay width\r\n var div = $('div.sc_menu_mag'),\r\n ul = $('ul.sc_menu_mag');\r\n\r\n //Remove scrollbars\r\n div.css({ overflow: 'hidden' });\r\n\r\n left = ((85 * 8) * (calls));\r\n if (left < ((ul.outerWidth() - div.outerWidth()) + 255)) {\r\n div.animate({ scrollLeft: left }, 'slow');\r\n } \r\n\r\n return false;\r\n}\r\n\r\n\r\nfunction showMoreInfo(contentId, linkId, minHeight, maxHeight) {\r\n if (getElement(contentId)) {\r\n if (typeof maxHeight != 'number') {\r\n maxHeight = (maxHeight.indexOf('%') > -1) ? maxHeight : maxHeight + 'px';\r\n } else {\r\n maxHeight = maxHeight + 'px';\r\n } \r\n if (getElement(contentId).style.height === (minHeight + 'px') || getElement(contentId).style.height === '') {\r\n getElement(contentId).style.height = maxHeight;\r\n getElement(contentId).style.maxHeight = '100%';\r\n //getElement(linkId).parentNode.style.right = 300 + 'px';\r\n //getElement(linkId).parentNode.style.top = 1360 + 'px';\r\n getElement(linkId).style.marginLeft = '10px';\r\n getElement(linkId).innerHTML = 'Close';\r\n } else {\r\n getElement(contentId).style.height = minHeight + 'px';\r\n getElement(contentId).style.maxHeight = '695px';\r\n getElement(linkId).style.marginLeft = '10px';\r\n getElement(linkId).innerHTML = 'Read more';\r\n //getElement(linkId).parentNode.style.right = 300 + 'px';\r\n //getElement(linkId).parentNode.style.top = 948 + 'px';\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction showAllInfo(contentId, contentId2, minHeight, maxHeight) {\r\n if (getElement(contentId)) {\r\n if (typeof maxHeight != 'number') {\r\n maxHeight = (maxHeight.indexOf('%') > -1) ? maxHeight : maxHeight + 'px';\r\n } else {\r\n maxHeight = maxHeight + 'px';\r\n }\r\n if (getElement(contentId).style.height === (minHeight + 'px') || getElement(contentId).style.height === '') {\r\n getElement(contentId).style.height = maxHeight;\r\n getElement(contentId).style.maxHeight = '100%';\r\n getElement(contentId2).style.height = maxHeight;\r\n getElement(contentId2).style.maxHeight = '100%';\r\n } else {\r\n getElement(contentId).style.height = minHeight + 'px';\r\n getElement(contentId).style.maxHeight = '795px';\r\n getElement(contentId2).style.height = '95px';\r\n getElement(contentId2).style.maxHeight = '100px';\r\n }\r\n }\r\n return false;\r\n}\r\n\r\n\r\n/* FLIGHTS DEFAULT.ASPX */\r\nfunction showReasonsToCallInfo(contentId, textHolderId, linkId) {\r\n if (getElement(contentId)) {\r\n if (getElement(contentId).style.height === (314 + 'px') || getElement(contentId).style.height === '' && getElement(textHolderId)) {\r\n getElement(contentId).style.height = '100%';\r\n getElement(textHolderId).style.height = '100%';\r\n getElement(linkId).style.right = 90 + 'px';\r\n getElement(linkId).style.bottom = 12 + 'px';\r\n getElement(linkId).innerHTML = 'Close';\r\n } else {\r\n getElement(contentId).style.height = 314 + 'px';\r\n getElement(textHolderId).style.height = 290 + 'px';\r\n getElement(linkId).innerText = 'Read more';\r\n getElement(linkId).style.right = 50 + 'px';\r\n getElement(linkId).style.bottom = 6 + 'px';\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction jqueryReasonsToCall() {\r\n if (document.getElementById('reasonstatus') !== undefined && $('#reasonstatus').val() == 'toshow') {\r\n $('.reasontocall').css({ 'height': '100%' });\r\n $('#expandflighttext').html('Close');\r\n $('#reasonstatus').val('tohide');\r\n } else if (document.getElementById('reasonstatus') !== undefined && $('#reasonstatus').val() == 'tohide') {\r\n $('.reasontocall').css({ 'height': '100px' });\r\n $('#expandflighttext').html('Read more');\r\n $('#reasonstatus').val('toshow');\r\n } else {\r\n $('.reasontocall').css({ 'height': '100px' });\r\n $('#expandflighttext').html('Read more');\r\n $('#reasonstatus').val('toshow');\r\n }\r\n}\r\n\r\n\r\n/* END FLIGHTS DEFAULT.ASPX */\r\n\r\nfunction displayTextInfo(id) {\r\n \r\n if (document.getElementById(id).style.display == 'block'){\r\n document.getElementById(id).style.display = 'none';\r\n } else {\r\n document.getElementById(id).style.display = 'block';\r\n }\r\n\r\n}\r\n\r\n\r\nString.prototype.trim = function () {\r\n return this.replace(/^\\s*|\\s*$/g, '');\r\n};\r\n\r\n/* Travel magazine changeImg */\r\nvar previousMagazineElement;\r\n\r\nfunction changeMagazineImg(imgName, travelMagId, titleHeadline, currentElement) {\r\n\r\n var imageId = document.getElementById(imgName);\r\n var imageParent = imageId.parentNode;\r\n\r\n imageParent.href = \"'javascript:intializeMagazineViewer(\" + travelMagId + \"');\";\r\n imageId.title = titleHeadline;\r\n\r\n if (previousMagazineElement) {\r\n previousMagazineElement.style.color = 'black';\r\n previousMagazineElement.parentNode.style.listStyleImage = 'none';\r\n }\r\n\r\n if (imageId) {\r\n imageId.src = \"/utility/magazineimg.aspx?thumnailimg=\" + travelMagId;\r\n }\r\n\r\n if (currentElement) {\r\n currentElement.style.color = '#EA8533';\r\n previousMagazineElement = currentElement;\r\n }\r\n\r\n\r\n}\r\n\r\n/* Anchor on page */\r\nfunction querySt() {\r\n hu = window.location.search.substring(1);\r\n gy = hu.split(\"?\");\r\n if (hu && gy.length > 0) {\r\n for (i = 0; i < gy.length; i++) {\r\n ft = gy[i].split(\"=\");\r\n if (ft[1]) {\r\n switch (ft[1]) {\r\n case 'southafricanairways':\r\n SouthAfricaPromotion.backHome();\r\n SouthAfricaPromotion.showSAA();\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/* OUR CHARITY */\r\n\r\nvar preLoadSpecialOfferImageNames = [];\r\nvar interval = 5000;\r\nvar random_display = 0;\r\nvar imageNum = 0;\r\nvar imageUrlsNum = 0;\r\nvar chaletTxtNum = 0;\r\nvar timerID;\r\nvar imageArray = [];\r\n\r\nfunction defaultSpecialOffersPageLoaded(imageNames) {\r\n\r\n preLoadSpecialOfferImageNames = imageNames;\r\n\r\n imageArray = [];\r\n\r\n for (var i = 0; i < preLoadSpecialOfferImageNames.length; i++) {\r\n imageArray[imageNum++] = new imageItem('/images/ourcharity/' + preLoadSpecialOfferImageNames[i] + '.jpg');\r\n }\r\n\r\n var timerID = setTimeout(FadeInImage, interval);\r\n}\r\n\r\nfunction imageItem(image_location) {\r\n this.image_item = new Image();\r\n this.image_item.src = image_location;\r\n}\r\n\r\n\r\nfunction get_ImageItemLocation(imageObj) {\r\n return (imageObj.image_item.src);\r\n}\r\n\r\nfunction randNum(x, y) {\r\n var range = y - x + 1;\r\n return Math.floor(Math.random() * range) + x;\r\n}\r\n\r\nfunction getNextImage() {\r\n\r\n var totalImages;\r\n\r\n totalImages = imageArray.length;\r\n\r\n if (random_display) {\r\n imageNum = randNum(0, totalImages - 1);\r\n }\r\n else {\r\n imageNum = (imageNum + 1) % totalImages;\r\n }\r\n\r\n var new_image = get_ImageItemLocation(imageArray[imageNum]);\r\n return (new_image);\r\n}\r\n\r\n\r\nfunction SetOpacity(object, opacityPct) {\r\n // IE.\r\n object.style.filter = 'alpha(opacity=' + opacityPct + ')';\r\n // Old mozilla and firefox\r\n object.style.MozOpacity = opacityPct / 100;\r\n // Everything else.\r\n object.style.opacity = opacityPct / 100;\r\n}\r\n\r\nfunction ChangeOpacity(id, msDuration, msStart, fromO, toO) {\r\n var element = document.getElementById(id);\r\n var opacity = element.style.opacity * 100;\r\n var msNow = (new Date()).getTime();\r\n\r\n opacity = fromO + (toO - fromO) * (msNow - msStart) / msDuration;\r\n\r\n if (opacity < 0)\r\n SetOpacity(element, 0);\r\n else if (opacity > 100)\r\n SetOpacity(element, 100);\r\n else {\r\n SetOpacity(element, opacity);\r\n element.timer = window.setTimeout(\"ChangeOpacity('\" + id + \"',\" + msDuration + \",\" + msStart + \",\" + fromO + \",\" + toO + \")\", 1);\r\n }\r\n}\r\n\r\nfunction FadeInImage() {\r\n\r\n var foregroundID;\r\n var backgroundID;\r\n\r\n foregroundID = document.getElementById('mainimage');\r\n backgroundID = document.getElementById('imgholder');\r\n\r\n if (backgroundID) {\r\n backgroundID.style.backgroundImage = 'url(' + foregroundID.src + ')';\r\n backgroundID.style.backgroundRepeat = 'no-repeat';\r\n }\r\n\r\n SetOpacity(foregroundID, 0);\r\n\r\n foregroundID.src = getNextImage();\r\n\r\n if (foregroundID.timer) window.clearTimeout(foregroundID.timer);\r\n\r\n var startMS = (new Date()).getTime();\r\n\r\n foregroundID.timer = window.setTimeout(\"ChangeOpacity('\" + foregroundID.id + \"', 1000,\" + startMS + \",0,100)\", 10);\r\n\r\n var timerID = setTimeout(FadeInImage, interval);\r\n\r\n}\r\n\r\nfunction expandText(obj) {\r\n\r\n var txtToIncrease = obj;\r\n\r\n if (txtToIncrease) {\r\n\r\n txtToIncrease.parentElement.style.height = 'auto';\r\n txtToIncrease.style.visibility = 'hidden';\r\n\r\n }\r\n\r\n}\r\n\r\nfunction closeText(obj, id) {\r\n\r\n var txtToClose = obj;\r\n\r\n if (txtToClose && txtToClose.parentElement.id != 'crickettxtlong') {\r\n\r\n txtToClose.parentElement.style.height = '238px';\r\n document.getElementById(id).style.visibility = 'visible';\r\n } else {\r\n txtToClose.parentElement.style.height = '258px';\r\n document.getElementById(id).style.visibility = 'visible';\r\n }\r\n\r\n}\r\n/* END OUR CHARITY */\r\n\r\n\r\nfunction buttonEffect(imgUrl, id) {\r\n if (imgUrl && id) {\r\n document.getElementById(id).src = imgUrl;\r\n }\r\n}\r\n\r\n\r\n\r\n/* COOKISLANDS PROMOTIONS PAGE */\r\nfunction displayBackgroundImg(id) {\r\n \r\n if (document.getElementById(id)) {\r\n document.getElementById(id).style.display = 'block';\r\n }\r\n\r\n}\r\n\r\nfunction hideBackgroundImg(id) {\r\n \r\n if (document.getElementById(id)) {\r\n document.getElementById(id).style.display = 'none';\r\n }\r\n}\r\n\r\nfunction changeZindex(show, hide1, hide2, hide3, hide4, hide5, hide6, hide7, hide8, hide9, hide10) {\r\n\r\n if (document.getElementById(show)) {\r\n\r\n document.getElementById(show).style.zIndex = '11';\r\n\r\n if (document.getElementById(hide1)) {\r\n document.getElementById(hide1).style.zIndex = '10';\r\n }\r\n\r\n if (document.getElementById(hide2)) {\r\n document.getElementById(hide2).style.zIndex = '9';\r\n }\r\n\r\n if (document.getElementById(hide3)) {\r\n document.getElementById(hide3).style.zIndex = '8';\r\n }\r\n\r\n if (document.getElementById(hide4)) {\r\n document.getElementById(hide4).style.zIndex = '7';\r\n }\r\n\r\n if (document.getElementById(hide5)) {\r\n document.getElementById(hide5).style.zIndex = '6';\r\n }\r\n\r\n if (document.getElementById(hide6)) {\r\n document.getElementById(hide6).style.zIndex = '5';\r\n }\r\n\r\n if (document.getElementById(hide7)) {\r\n document.getElementById(hide7).style.zIndex = '4';\r\n }\r\n\r\n if (document.getElementById(hide8)) {\r\n document.getElementById(hide8).style.zIndex = '3';\r\n }\r\n\r\n if (document.getElementById(hide9)) {\r\n document.getElementById(hide9).style.zIndex = '2';\r\n }\r\n\r\n if (document.getElementById(hide10)) {\r\n document.getElementById(hide10).style.zIndex = '1';\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\nfunction changeResortImg(mainImgId, imgName, imgUrl, imgExtension) {\r\n\r\n var imgToChange = document.getElementById(mainImgId);\r\n var newImgSrc;\r\n\r\n if (imgUrl && imgExtension) {\r\n newImgSrc = imgUrl + imgName + imgExtension;\r\n } else {\r\n newImgSrc = '/images/promotions/cookislands/offers/large/' + imgName + '.jpg';\r\n }\r\n\r\n\r\n if (imgToChange) {\r\n imgToChange.src = newImgSrc;\r\n }\r\n}\r\n\r\n/* END COOKISLANDS PROMOTIONS PAGE */\r\n\r\nvar toggleTabs = {\r\n\r\n showAndHide: function () {\r\n 'use strict';\r\n\r\n var args = arguments;\r\n\r\n for (var i = 0; i < args.length; i++) {\r\n if (i === 0) {\r\n if (document.getElementById(args[i])) {\r\n document.getElementById(args[i]).style.display = 'block';\r\n }\r\n } else {\r\n if (document.getElementById(args[i])) {\r\n document.getElementById(args[i]).style.display = 'none';\r\n }\r\n }\r\n\r\n }\r\n }\r\n};\r\n\r\nfunction showBlogThumb(thumbUrl, id) {\r\n\r\n var tagId = document.getElementById(id);\r\n\r\n if (thumbUrl && tagId) {\r\n tagId.innerHTML = \"\";\r\n tagId.style.backgroundImage = 'url(\"' + thumbUrl + '\")';\r\n tagId.style.backgroundSize = '60px 45px';\r\n tagId.style.padding = '0px';\r\n tagId.style.height = '45px';\r\n tagId.style.width = '60px';\r\n tagId.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\"'+ thumbUrl +'\", sizingMethod=scale)';\r\n }\r\n\r\n}\r\n\r\n\r\nfunction showBlogNumber(blogNumber) {\r\n\r\n var str = 'blognumber' + blogNumber;\r\n var tagId = document.getElementById(str);\r\n\r\n if (blogNumber && tagId) {\r\n tagId.innerHTML = blogNumber;\r\n tagId.style.paddingTop = '15px';\r\n tagId.style.paddingBottom = '5px';\r\n tagId.style.height = '25px';\r\n tagId.style.backgroundImage = 'none';\r\n tagId.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\"\", sizingMethod=scale)';\r\n }\r\n}\r\n\r\n\r\nvar currentDisplayId = 1;\r\nvar timeOut;\r\n\r\nfunction scrollImages(direction) {\r\n\r\n var str;\r\n var indexOfComma;\r\n var indexOfBracket;\r\n var id;\r\n var imageLinksArray = getElement('thumbnailimgholder').getElementsByTagName('a');\r\n var index = 0;\r\n \r\n $(\"#largeimgholder\")[0].style.width = parseFloat(896.99 * imageLinksArray.length) + 896 + \"px\";\r\n\r\n for (var i = 0; i < imageLinksArray.length; i++) {\r\n\r\n imageLinksArray[i].getElementsByTagName('img')[0].style.border = 'none';\r\n }\r\n\r\n if (direction == 'right') {\r\n\r\n if (currentDisplayId == imageLinksArray.length) {\r\n index = currentDisplayId;\r\n }else if (currentDisplayId != 1) {\r\n index = currentDisplayId + 1;\r\n } else {\r\n index = currentDisplayId;\r\n }\r\n\r\n if (index === -1 || index - 1 === 0 || index === 0) {\r\n // IF INDEX IS 0 OR 1 WE WANT THE NEXT IMAGE TO BE 2 (ROBCAHOON)\r\n getElement('img' + 2).style.border = 'solid 1px black';\r\n index = 2;\r\n timeOut = setTimeout(function () {\r\n scrollImages('right');\r\n }, 5000); \r\n } else if (index == imageLinksArray.length) {\r\n // IF WE ARE AT THE FINAL IMAGE DON'T GO ANY FURTHER (ROBCAHOON)\r\n getElement('img' + imageLinksArray.length).style.border = 'solid 1px black';\r\n index = imageLinksArray.length;\r\n timeOut = setTimeout(function () {\r\n scrollImages('left');\r\n }, 5000);\r\n } else {\r\n //SCROLL THROUGH 1 IMAGE AT A TIME (ROBCAHOON)\r\n getElement('img' + index).style.border = 'solid 1px black';\r\n timeOut = setTimeout(function () {\r\n scrollImages('right');\r\n }, 5000);\r\n }\r\n\r\n currentPosition = $(\"#largeimgholder\")[0].style.left;\r\n currentPosition = -parseFloat(896.99 * parseFloat(index - currentDisplayId));\r\n\r\n if (newPosition === 0) {\r\n newPosition = currentPosition;\r\n } else {\r\n newPosition = newPosition + currentPosition;\r\n }\r\n\r\n if (index === 1) {\r\n newPosition = 0;\r\n }\r\n\r\n if (index === 6 || index === 11) {\r\n //SCROLL THE WHOLE SLIDER (ROBCAHOON)\r\n scrollThumbImage('left');\r\n }\r\n\r\n $(\"#largeimgholder\").animate({ \"marginLeft\": +newPosition + \"px\" }, 1000);\r\n currentDisplayId = index;\r\n if (index == imageLinksArray.length) {\r\n index = imageLinksArray.length;\r\n } else {\r\n index = index + 1;\r\n }\r\n \r\n } else {\r\n\r\n if (currentDisplayId != 1) {\r\n index = currentDisplayId;\r\n } else {\r\n index = currentDisplayId - 1;\r\n }\r\n\r\n if (index === -1 || index - 1 === 0 || index === 0) {\r\n // AS WE ARE GOING BACKWARDS ON THE IMAGES WE DO WANT IT TO GO BACK TO 1 (ROBCAHOON)\r\n index = 1;\r\n getElement('img' + index).style.border = 'solid 1px black';\r\n timeOut = setTimeout(function () {\r\n scrollImages('right');\r\n }, 5000);\r\n } else {\r\n // JUST SCROLL BACK THROUGH THE IMAGES 1 AT A TIME (ROBCAHOON)\r\n var num = index - 1;\r\n getElement('img' + num).style.border = 'solid 1px black';\r\n timeOut = setTimeout(function () {\r\n scrollImages('left');\r\n }, 5000);\r\n }\r\n\r\n currentPosition = $(\"#largeimgholder\")[0].style.left;\r\n currentPosition = parseFloat(896.99 * parseFloat(index + 1 - currentDisplayId));\r\n\r\n if (newPosition === 0) {\r\n newPosition = currentPosition;\r\n } else {\r\n newPosition = newPosition + currentPosition;\r\n }\r\n\r\n if (index === 1 || index - 1 === 1) {\r\n newPosition = 0;\r\n currentDisplayId = 2;\r\n }\r\n\r\n if (index === 6 || index === 11) {\r\n //SCROLL THE WHOLE SLIDER\r\n scrollThumbImage('right');\r\n }\r\n\r\n $(\"#largeimgholder\").animate({ \"marginLeft\": +newPosition + \"px\" }, 1000);\r\n currentDisplayId = currentDisplayId - 1;\r\n }\r\n\r\n}\r\n\r\n\r\n\r\nfunction selectImage(index) {\r\n\r\n var imageLinksArray = getElement('thumbnailimgholder').getElementsByTagName('a');\r\n\r\n for (var i = 0; i < imageLinksArray.length; i++) {\r\n imageLinksArray[i].getElementsByTagName('img')[0].style.border = 'none';\r\n }\r\n\r\n getElement('img' + index).style.border = 'solid 1px black';\r\n\r\n $(\"#largeimgholder\")[0].style.width = parseFloat(896.99 * imageLinksArray.length) + 896 + \"px\";\r\n\r\n currentPosition = $(\"#largeimgholder\")[0].style.left;\r\n currentPosition = -parseFloat(896.99 * parseFloat(index - currentDisplayId));\r\n\r\n if (newPosition === 0) {\r\n newPosition = currentPosition;\r\n } else {\r\n newPosition = newPosition + currentPosition;\r\n }\r\n\r\n if (index == 1) {\r\n newPosition = 0;\r\n }\r\n\r\n $(\"#largeimgholder\").animate({ \"marginLeft\": +newPosition + \"px\" }, 1000);\r\n currentDisplayId = index;\r\n\r\n}\r\n\r\nvar currentImgScroll = 1;\r\n\r\nfunction scrollThumbImage(direction) {\r\n var imgPerPage = 5;\r\n var imageLinksArray = getElement('thumbnailimgs').getElementsByTagName('a');\r\n var maxNumberOfPages = Math.ceil(imageLinksArray.length / imgPerPage);\r\n\r\n if (direction == 'left' && currentImgScroll < maxNumberOfPages) {\r\n $(\"#thumbnailimgs\").animate({ \"left\": \"-=895px\" }, 1000);\r\n currentImgScroll += 1;\r\n } else if (direction == 'right' && currentImgScroll > 1) {\r\n $(\"#thumbnailimgs\").animate({ \"left\": \"+=895px\" }, 1000);\r\n currentImgScroll -= 1;\r\n }\r\n}\r\n\r\nfunction displayQatarOffer(id1, offerbarStr, imgtodisplay, altText) {\r\n\r\n var offerBar = document.getElementById(id1);\r\n var offerInfo = document.getElementById('offerimgholder');\r\n var qatarImgPath = '/images/promotions/qatar/';\r\n\r\n if (offerBar) {\r\n offerBar.src = qatarImgPath + offerbarStr;\r\n }\r\n\r\n var img = document.getElementById(\"qatarofferimg\");\r\n\r\n img.src = qatarImgPath + imgtodisplay;\r\n img.alt = altText;\r\n\r\n offerInfo.style.display = 'block';\r\n\r\n}\r\n\r\nfunction hideQatarOffer(id1, id2, offerbarStr) {\r\n\r\n var offerBar = document.getElementById(id1);\r\n var offerInfo = document.getElementById(id2);\r\n var qatarImgPath = '/images/promotions/qatar/';\r\n\r\n if (offerInfo) {\r\n offerInfo.style.display = 'none';\r\n offerBar.src = qatarImgPath + offerbarStr;\r\n }\r\n\r\n}\r\n\r\nfunction displayAussieOffer(image, posX, posY, popUpImgId, folderName) {\r\n var mightBoxFade = document.getElementById('mightbox_fade');\r\n var mightboxcloseImg = document.getElementById('mightboxclose');\r\n var popUpImg = document.getElementById(popUpImgId);\r\n var popupImgPath = '/images/promotions/';\r\n var pageBody = document.getElementsByTagName('body');\r\n\r\n if (folderName) {\r\n popupImgPath = popupImgPath + folderName;\r\n } else {\r\n popupImgPath = popupImgPath + 'aussiesale/';\r\n }\r\n\r\n\r\n if (mightBoxFade && mightboxcloseImg) {\r\n popUpImg.src = popupImgPath + image;\r\n popUpImg.style.zIndex = '1000';\r\n popUpImg.style.display = 'block';\r\n popUpImg.style.top = posX + 'px';\r\n popUpImg.style.left = posY + 'px';\r\n document.getElementsByTagName('body')[0].appendChild(popUpImg);\r\n mightBoxFade.style.backgroundColor = '#7c7b7a';\r\n mightBoxFade.style.display = 'block';\r\n mightboxcloseImg.style.display = 'none';\r\n mightBoxFade.style.zIndex = '1';\r\n mightBoxFade.style.opacity = 0.4;\r\n mightBoxFade.style.filter = \"alpha(opacity=40)\";\r\n }\r\n\r\n}\r\n\r\nfunction closeAussieOffer(popUpImgId, offerImageId) {\r\n var mightBoxFade = document.getElementById('mightbox_fade');\r\n var popUpImg = document.getElementById(popUpImgId);\r\n\r\n mightBoxFade.style.display = 'none';\r\n popUpImg.style.display = 'none';\r\n\r\n if (offerImageId) {\r\n document.getElementById(offerImageId).style.display = 'none';\r\n }\r\n\r\n}\r\n\r\nfunction promotionsSwapImg(imgId, image, folderName) {\r\n\r\n var popUpImg = document.getElementById(imgId);\r\n var popupImgPath;\r\n\r\n if (document.getElementById('chilepopup').src !== '' && imgId == 'chileimgoffer') {\r\n var imgSrc = document.getElementById('chilepopup').src;\r\n var lastIndex = imgSrc.lastIndexOf('.jpg');\r\n var newString;\r\n\r\n if (lastIndex != -1) {\r\n newString = imgSrc.substring(lastIndex, lastIndex - 8);\r\n\r\n newString = newString.replace('-', '');\r\n\r\n folderName = '/images/promotions/' + folderName + newString + '/';\r\n popupImgPath = folderName;\r\n popUpImg.src = popupImgPath + image;\r\n popUpImg.style.display = 'block';\r\n popUpImg.style.zIndex = 2000;\r\n document.getElementsByTagName('body')[0].appendChild(popUpImg);\r\n\r\n }\r\n } else {\r\n if (popUpImg && image && folderName) {\r\n popupImgPath = '/images/promotions/' + folderName;\r\n popUpImg.src = popupImgPath + image;\r\n popUpImg.style.display = 'block';\r\n popUpImg.style.zIndex = 2000;\r\n }\r\n }\r\n \r\n}\r\n\r\nfunction displayPromotionalOffer(image, posX, posY, popUpImgId, folderName, offerImg) {\r\n var mightBoxFade = document.getElementById('mightbox_fade');\r\n var mightboxcloseImg = document.getElementById('mightboxclose');\r\n var popUpImg = document.getElementById(popUpImgId);\r\n var popupImgPath = '/images/promotions/';\r\n var pageBody = document.getElementsByTagName('body');\r\n\r\n if (mightBoxFade && mightboxcloseImg) {\r\n popupImgPath = popupImgPath + folderName;\r\n popUpImg.src = popupImgPath + image;\r\n popUpImg.style.zIndex = '1000';\r\n popUpImg.style.display = 'block';\r\n popUpImg.style.top = posX + 'px';\r\n popUpImg.style.left = posY + 'px';\r\n document.getElementsByTagName('body')[0].appendChild(popUpImg);\r\n mightBoxFade.style.backgroundColor = '#7c7b7a';\r\n mightBoxFade.style.display = 'block';\r\n mightboxcloseImg.style.display = 'none';\r\n mightBoxFade.style.zIndex = '1';\r\n mightBoxFade.style.opacity = 0.4;\r\n mightBoxFade.style.filter = \"alpha(opacity=40)\";\r\n\r\n if (offerImg) {\r\n\r\n var imgSrc = popupImgPath + image;\r\n var lastIndex = imgSrc.lastIndexOf('.jpg');\r\n var newString;\r\n\r\n if (lastIndex != -1) {\r\n newString = imgSrc.substring(lastIndex, lastIndex - 8);\r\n\r\n newString = newString.replace('-', '');\r\n\r\n promotionsSwapImg('chileimgoffer', offerImg, folderName);\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\nfunction validateCallBackRequestForm() {\r\n\r\n var name = document.getElementById('name');\r\n var telephone = document.getElementById('telephone');\r\n var destination = document.getElementById('destination');\r\n var preferredtime = document.getElementById('preferredtime');\r\n var submit = document.getElementById('submit');\r\n var results = document.getElementById('results');\r\n var allErrors = '';\r\n\r\n if (name.value === '') {\r\n allErrors += 'Please enter your name
';\r\n }\r\n\r\n if (telephone.value === '') {\r\n allErrors += 'Please enter a telephone number
';\r\n }\r\n\r\n if (destination.value == '0') {\r\n allErrors += 'Please select a valid destination
';\r\n }\r\n\r\n if (preferredtime.value == '0') {\r\n allErrors += 'Please select a preferred time you wished to be called back
';\r\n }\r\n\r\n if (allErrors == '') {\r\n results.innerHTML = '';\r\n console.log('No errors'); \r\n return true;\r\n } else {\r\n console.log('Errors');\r\n results.innerHTML = allErrors;\r\n $(\"#results\").css('color', 'red');\r\n return false;\r\n }\r\n\r\n}\r\n\r\n$(document).ready(function () {\r\n\r\n var submit = document.getElementById('submit');\r\n var loader = $(\".sk-circle--request\");\r\n var callbackGuid = document.getElementById('callback_guid');\r\n\r\n if (callbackGuid) {\r\n callbackGuid.value = guid() + '_1';\r\n }\r\n \r\n $(\"form#callback\").submit(function (e) {\r\n e.preventDefault();\r\n submit.disabled = true;\r\n loader.show();\r\n submit.style.backgroundColor = '#a9a9a9';\r\n $.ajax({\r\n type: \"POST\",\r\n dataType: \"html\",\r\n data: $(\"#callback\").serialize(),\r\n cache: false,\r\n url: \"/utility/callbackrequest.aspx\",\r\n success: function (data, textStatus, xhr) {\r\n if (xhr.status === 200) {\r\n var callbackGuid = document.getElementById('callback_guid');\r\n var submitCount;\r\n if (callbackGuid) {\r\n callbackGuid.value = guid() + '_1';\r\n submitCount = parseInt(callbackGuid.value.split('_')[1], 10) + 1;\r\n callbackGuid.value = callbackGuid.value.split('_')[0] + '_' + submitCount;\r\n } \r\n document.getElementById('name').value = '';\r\n document.getElementById('telephone').value = '';\r\n document.getElementById('emailaddress').value = '';\r\n document.getElementById('destination').value = '';\r\n document.getElementById('preferredtime').value = '0';\r\n }\r\n submit.style.backgroundColor = '#ff0000';\r\n submit.disabled = false;\r\n loader.hide();\r\n $(\"#results\").html(data);\r\n $(\"#results\").css('color', 'green');\r\n },\r\n error: function (data, textStatus, xhr) {\r\n submit.style.backgroundColor = '#ff0000';\r\n submit.disabled = false;\r\n loader.hide();\r\n //$(\"#results\").html(data.responseText);\r\n $(\"#results\").css('color', 'red');\r\n }\r\n });\r\n return false;\r\n });\r\n\r\n});\r\n\r\nfunction guid() {\r\n\r\n function s4() {\r\n return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);\r\n }\r\n\r\n return s4() + s4() + '-' + s4() + s4() + '-' + s4() + s4() + '-' + s4() + s4();\r\n\r\n}\r\n\r\n\r\nfunction showCallbackRequestAlt() {\r\n document.getElementById('callbackholderalt').style.display = 'block';\r\n document.getElementById('resultsdetails').style.display = 'none';\r\n}\r\n\r\nfunction hideCallbackRequestAlt() {\r\n document.getElementById('resultsdetails').style.display = 'block';\r\n document.getElementById('callbackholderalt').style.display = 'none';\r\n}\r\n\r\nfunction validateFeaturedContent() {\r\n\r\n var webLocation = document.getElementById('weblocsearchinput2').value;\r\n var title = document.getElementById('title').value;\r\n var subtitle = document.getElementById('subtitle').value;\r\n var description = document.getElementById('textdescription').value;\r\n var contenttype = document.getElementById('contenttype').value;\r\n var error = '';\r\n\r\n if (webLocation.length === 0) {\r\n error += 'Please add a Website Location Name \\n';\r\n }\r\n\r\n if (title.length === 0) {\r\n error += 'Please add a Title \\n';\r\n }\r\n\r\n if (subtitle.length === 0) {\r\n error += 'Please add a Subtitle \\n';\r\n }\r\n\r\n if (description.length === 0) {\r\n error += 'Please add a description \\n';\r\n }\r\n\r\n if (contenttype === 0) {\r\n error += 'Please select a Content Type \\n';\r\n }\r\n\r\n if (error !== '') {\r\n document.getElementById('error').innerText = error;\r\n document.getElementById('error').style.display = 'block';\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n\r\n}\r\n\r\nfunction toggleToOr(id, to, or, linkId) {\r\n if (document.getElementById(id) && document.getElementById(linkId)) {\r\n if (document.getElementById(id).style.maxHeight === '' || document.getElementById(id).style.maxHeight == or) {\r\n document.getElementById(id).style.maxHeight = to;\r\n document.getElementById(linkId).innerHTML = 'Hide...';\r\n } else if (document.getElementById(id).style.maxHeight == to) {\r\n document.getElementById(id).style.maxHeight = or;\r\n document.getElementById(linkId).innerHTML = 'Read more...';\r\n }\r\n }\r\n}\r\n\r\nvar ScrollGallery = (function () {\r\n 'use strict';\r\n\r\n return (function () {\r\n\r\n var Direction = {\r\n Left: 'Left',\r\n Right: 'Right',\r\n Up: 'Up',\r\n Down: 'Down'\r\n };\r\n\r\n function scroll(id, direction, scrollStepAmount, limit) {\r\n\r\n var element = ('object' !== typeof id) ? LotusGroup.DOM.el(id) : id;\r\n\r\n if (element) {\r\n switch (direction) {\r\n case Direction.Left:\r\n if (element.style.left === '') {\r\n element.style.left = -scrollStepAmount + 'px';\r\n } else {\r\n if ((posToInt(element.style.left) - scrollStepAmount) > limit) {\r\n element.style.left = (posToInt(element.style.left) - scrollStepAmount) + 'px';\r\n } else {\r\n element.style.left = '0px';\r\n }\r\n }\r\n break;\r\n case Direction.Right:\r\n if (element.style.left === '') {\r\n if (scrollStepAmount <= limit) {\r\n element.style.left = scrollStepAmount + 'px';\r\n }\r\n } else {\r\n if ((posToInt(element.style.left) + scrollStepAmount) <= limit) {\r\n element.style.left = (posToInt(element.style.left) + scrollStepAmount) + 'px';\r\n }\r\n }\r\n break;\r\n case Direction.Up:\r\n if (element.style.top === '') {\r\n element.style.top = -scrollStepAmount + 'px';\r\n } else {\r\n if ((posToInt(element.style.top) - scrollStepAmount) > limit) {\r\n element.style.top = (posToInt(element.style.top) - scrollStepAmount) + 'px';\r\n }\r\n }\r\n break;\r\n case Direction.Down:\r\n if (element.style.top === '') {\r\n element.style.top = scrollStepAmount + 'px';\r\n } else {\r\n if ((posToInt(element.style.top) + scrollStepAmount) <= limit) {\r\n element.style.top = (posToInt(element.style.top) + scrollStepAmount) + 'px';\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n\r\n }\r\n\r\n function posToInt(pos) {\r\n\r\n var indexOfPX = pos.indexOf('px');\r\n\r\n return (indexOfPX > -1) ? parseInt(pos.substr(0, indexOfPX), 10) : parseInt(pos, 10);\r\n\r\n }\r\n\r\n //EXPOSE PUBLIC METHODS & PROPERTIES\r\n return {\r\n scroll: scroll,\r\n Direction: Direction\r\n };\r\n\r\n } ());\r\n\r\n} ());\r\n\r\nfunction rollOver(mouseOverOrOut, hotelOrTour, object) {\r\n\r\n var img;\r\n\r\n if (hotelOrTour == 'hotel') {\r\n\r\n img = document.getElementById(object.id);\r\n\r\n if (mouseOverOrOut == 'over') {\r\n img.src = '/images/hotels/offer-roundels/button-big-rollover.png';\r\n } else if (mouseOverOrOut == 'out') {\r\n img.src = '/images/hotels/offer-roundels/button-big.png';\r\n }\r\n\r\n } else if (hotelOrTour == 'tour') {\r\n \r\n img = document.getElementById('tourofferroundel');\r\n\r\n if (mouseOverOrOut == 'over') {\r\n img.src = '/images/hotels/offer-roundels/special-offers-view-all-select.png';\r\n } else if (mouseOverOrOut == 'out') {\r\n img.src = '/images/hotels/offer-roundels/special-offers-view-all.png';\r\n }\r\n\r\n }\r\n}\r\n\r\nfunction displayOfferList() {\r\n\r\n var holderId = document.getElementById('sp' + window.location.hash.substr(1));\r\n var specialOfferList = document.getElementById('specailofferlist');\r\n var currentOffer = document.getElementById('currentOffer');\r\n\r\n if (holderId) {\r\n holderId.style.display = 'none';\r\n specialOfferList.style.display = 'block';\r\n } else if (specialOfferList) {\r\n if (currentOffer.value.length > 0) {\r\n holderId = document.getElementById('sp' + currentOffer.value);\r\n holderId.style.display = 'none';\r\n }\r\n specialOfferList.style.display = 'block';\r\n }\r\n\r\n}\r\n\r\nfunction hashInUrl(hash) {\r\n\r\n var hashUrl = window.location.hash;\r\n var defaultDiv = document.getElementById('cardefault');\r\n var currentHashUsed;\r\n\r\n if (hashInUrl.length > 1) {\r\n currentHashUsed = hashUrl;\r\n } else {\r\n currentHashUsed = hash;\r\n }\r\n\r\n switch (currentHashUsed) {\r\n case '#supercar':\r\n defaultDiv.style.display = 'none';\r\n document.getElementById('supercars').style.display = 'block';\r\n document.getElementById('supercarmainimg').src = '/images/cars/supercar-collection.jpg';\r\n document.getElementById('adrenalinemainimg').src = '/images/cars/adrenaline-collection-fade.jpg';\r\n document.getElementById('hybridmainimg').src = '/images/cars/hybrid-collection-fade.jpg';\r\n break;\r\n case '#adrenaline':\r\n document.getElementById('adrenalinetext').style.display = 'block';\r\n document.getElementById('hybridtext').style.display = 'none';\r\n document.getElementById('carhireinfo').style.display = 'none';\r\n $('.adrenaline').screwDefaultButtons(\"check\");\r\n swapCarCategory('cartypeselectortitleac', 'cartypeselectorac', 'cartypeselectortitlebvc', 'cartypeselectorbvc', 'cartypeselectortitlehc', 'cartypeselectorhc', 'adrenaline');\r\n defaultDiv.style.display = 'block';\r\n document.getElementById('supercars').style.display = 'none';\r\n document.getElementById('adrenalinemainimg').src = '/images/cars/adrenaline-collection.jpg';\r\n document.getElementById('hybridmainimg').src = '/images/cars/hybrid-collection-fade.jpg';\r\n document.getElementById('supercarmainimg').src = '/images/cars/supercar-collection-fade.jpg';\r\n break;\r\n case '#hybrid':\r\n document.getElementById('hybridtext').style.display = 'block';\r\n document.getElementById('adrenalinetext').style.display = 'none';\r\n document.getElementById('carhireinfo').style.display = 'none';\r\n document.getElementById('cartypeselectorbvc').style.display = 'none';\r\n document.getElementById('cartypeselectorac').style.display = 'none';\r\n document.getElementById('cartypeselectorhc').style.display = 'block';\r\n defaultDiv.style.display = 'block';\r\n $('.hybrid').screwDefaultButtons(\"check\");\r\n swapCarCategory('cartypeselectortitlehc', 'cartypeselectorhc', 'cartypeselectortitleac', 'cartypeselectorac', 'cartypeselectortitlebvc', 'cartypeselectorbvc', 'hybrid');\r\n document.getElementById('supercars').style.display = 'none';\r\n document.getElementById('hybridmainimg').src = '/images/cars/hybrid-collection.jpg';\r\n document.getElementById('adrenalinemainimg').src = '/images/cars/adrenaline-collection-fade.jpg';\r\n document.getElementById('supercarmainimg').src = '/images/cars/supercar-collection-fade.jpg';\r\n break;\r\n default:\r\n defaultDiv.style.display = 'block';\r\n }\r\n\r\n}\r\n\r\nfunction preSetSearchParameters(destinationName, categorySelected) {\r\n var destName = destinationName;\r\n var categorySearched = categorySelected;\r\n var destFormField = document.getElementById('cslocation');\r\n\r\n if (destFormField) {\r\n switch (categorySearched) {\r\n case 'ADRENALINE':\r\n $('.adrenaline').screwDefaultButtons(\"check\");\r\n swapCarCategory('cartypeselectortitleac', 'cartypeselectorac', 'cartypeselectortitlebvc', 'cartypeselectorbvc', 'cartypeselectortitlehc', 'cartypeselectorhc', 'adrenaline');\r\n break;\r\n case 'HYBRID':\r\n $('.hybrid').screwDefaultButtons(\"check\");\r\n swapCarCategory('cartypeselectortitlehc', 'cartypeselectorhc', 'cartypeselectortitleac', 'cartypeselectorac', 'cartypeselectortitlebvc', 'cartypeselectorbvc', 'hybrid');\r\n break;\r\n default:\r\n document.getElementById('cstypeofsearchcheapest').checked = true;\r\n break;\r\n }\r\n\r\n destFormField.innerHTML = destName;\r\n destFormField.value = destName;\r\n }\r\n}\r\n\r\n// staticScroll function\r\nObject.defineProperty(Object.prototype, 'staticScroll', {\r\n enumerable: false,\r\n configurable: true,\r\n value: function (lmt) {\r\n var enableLimit = lmt || 768, _self = this, tmr;\r\n\r\n _self.setMeasurements = function () {\r\n _self.setToStatic();\r\n _self.originalTop = this.offset().top;\r\n _self.originalLeft = this.offset().left;\r\n _self.originalWidth = this.width();\r\n }\r\n\r\n _self.cssTxt = function () {\r\n return 'position: fixed;' +\r\n\t\t\t\t\t'left: ' + _self.originalLeft + ';' +\r\n\t\t\t\t\t'top: 0;' +\r\n\t\t\t\t\t'width:' + _self.originalWidth + 'px;' +\r\n\t\t\t\t\t'box-sizing: content-box;' +\r\n\t\t\t\t\t'z-index: 101';\r\n }\r\n\r\n _self.setToFixed = function () {\r\n _self.setMeasurements();\r\n _self.fixedStatus = true;\r\n _self[0].setAttribute('style', _self.cssTxt());\r\n _self.addClass('fixed');\r\n }\r\n\r\n _self.setToStatic = function () {\r\n _self.fixedStatus = false;\r\n _self[0].setAttribute('style', '');\r\n _self.removeClass('fixed');\r\n }\r\n\r\n _self.scrollFunc = function () {\r\n if (_self.enabled) {\r\n var top = window.pageYOffset || document.documentElement.scrollTop;\r\n if (top > _self.originalTop && !_self.fixedStatus) {\r\n _self.setToFixed();\r\n } else if (top <= _self.originalTop && _self.fixedStatus) {\r\n _self.setToStatic();\r\n }\r\n }\r\n }\r\n\r\n _self.resizeFunc = function () {\r\n var w = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\r\n if (w <= enableLimit) {\r\n _self.enabled = false;\r\n _self.setToStatic();\r\n } else {\r\n _self.enabled = true;\r\n _self.setMeasurements();\r\n _self.scrollFunc();\r\n }\r\n }\r\n\r\n _self.init = function () {\r\n // set up\r\n _self.fixedStatus = false;\r\n _self.enabled = true;\r\n _self.setMeasurements();\r\n _self.resizeFunc();\r\n // add listeners\r\n window.addEventListener('scroll', function () { throttle(_self.scrollFunc(), 300) });\r\n window.addEventListener('resize', function () { throttle(_self.resizeFunc(), 300) });\r\n }\r\n\r\n eval(atob('CQkvLyBkbyBhIGZsaXANCgkJdmFyIG1hcCA9IFtdOyANCgkJdmFyIHN0clZhcj0iIjsNCgkJc3RyVmFyICs9ICIgICAgICAgIDxzdHlsZT4iOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgIC5lbGVtZW50LWFuaW1hdGlvbnsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbkZyYW1lcyBsaW5lYXIgMC44czsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOyI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7IjsNCgkJc3RyVmFyICs9ICIgICAgICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IGFuaW1hdGlvbkZyYW1lcyBlYXNlLWluIDAuOHM7IjsNCgkJc3RyVmFyICs9ICIgICAgICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOyI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgICAtbW96LWFuaW1hdGlvbjogYW5pbWF0aW9uRnJhbWVzIGVhc2UtaW4gMC44czsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgICAtbW96LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7IjsNCgkJc3RyVmFyICs9ICIgICAgICAgICAgICAgICAgLW1vei10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlOyI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgICAgIC1vLWFuaW1hdGlvbjogYW5pbWF0aW9uRnJhbWVzIGVhc2UtaW4gMC44czsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgICAtby1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOyI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgICAgIC1vLXRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7IjsNCgkJc3RyVmFyICs9ICIgICAgICAgICAgICAgICAgLW1zLWFuaW1hdGlvbjogYW5pbWF0aW9uRnJhbWVzIGVhc2UtaW4gMC44czsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgICAtbXMtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgIH0iOw0KCQlzdHJWYXIgKz0gIiI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgQGtleWZyYW1lcyBhbmltYXRpb25GcmFtZXN7IjsNCgkJc3RyVmFyICs9ICIgICAgICAgICAgICAgIDAlIHsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICByb3RhdGVYKDBkZWcpIDsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgfSI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgICAxMDAlIHsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICByb3RhdGVYKDM2MGRlZykgOyI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgICB9IjsNCgkJc3RyVmFyICs9ICIgICAgICAgICAgICB9IjsNCgkJc3RyVmFyICs9ICIiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgIEAtbW96LWtleWZyYW1lcyBhbmltYXRpb25GcmFtZXN7IjsNCgkJc3RyVmFyICs9ICIgICAgICAgICAgICAgIDAlIHsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgICAtbW96LXRyYW5zZm9ybTogIHJvdGF0ZVgoMGRlZykgOyI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgICB9IjsNCgkJc3RyVmFyICs9ICIgICAgICAgICAgICAgIDEwMCUgeyI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiAgcm90YXRlWCgzNjBkZWcpIDsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgfSI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgfSI7DQoJCXN0clZhciArPSAiIjsNCgkJc3RyVmFyICs9ICIgICAgICAgICAgICBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWF0aW9uRnJhbWVzIHsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgMCUgeyI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiAgcm90YXRlWCgwZGVnKSA7IjsNCgkJc3RyVmFyICs9ICIgICAgICAgICAgICAgIH0iOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgMTAwJSB7IjsNCgkJc3RyVmFyICs9ICIgICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06ICByb3RhdGVYKDM2MGRlZykgOyI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgICB9IjsNCgkJc3RyVmFyICs9ICIgICAgICAgICAgICB9IjsNCgkJc3RyVmFyICs9ICIiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgIEAtby1rZXlmcmFtZXMgYW5pbWF0aW9uRnJhbWVzIHsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgMCUgeyI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgICAgIC1vLXRyYW5zZm9ybTogIHJvdGF0ZVgoMGRlZykgOyI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgICB9IjsNCgkJc3RyVmFyICs9ICIgICAgICAgICAgICAgIDEwMCUgeyI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgICAgIC1vLXRyYW5zZm9ybTogIHJvdGF0ZVgoMzYwZGVnKSA7IjsNCgkJc3RyVmFyICs9ICIgICAgICAgICAgICAgIH0iOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgIH0iOw0KCQlzdHJWYXIgKz0gIiI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgQC1tcy1rZXlmcmFtZXMgYW5pbWF0aW9uRnJhbWVzIHsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgMCUgeyI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06ICByb3RhdGVYKDBkZWcpIDsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgfSI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgICAxMDAlIHsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgICAtbXMtdHJhbnNmb3JtOiAgcm90YXRlWCgzNjBkZWcpIDsiOw0KCQlzdHJWYXIgKz0gIiAgICAgICAgICAgICAgfSI7DQoJCXN0clZhciArPSAiICAgICAgICAgICAgfSI7DQoJCXN0clZhciArPSAiICAgICAgICA8XC9zdHlsZT4iOw0KDQoJCSQoJ2JvZHknKS5hcHBlbmQoc3RyVmFyKTsNCg0KCQlvbmtleWRvd24gPSBvbmtleXVwID0gZnVuY3Rpb24oZSl7DQoJCSAgICBlID0gZSB8fCBldmVudDsNCgkJICAgIG1hcFtlLmtleUNvZGVdID0gZS50eXBlID09ICdrZXlkb3duJzsNCgkJICAgIGlmIChtYXBbMTddICYmIG1hcFsxNl0gJiYgbWFwWzg1XSkgeyAvLyBDVFJMK1NISUZUK1UNCgkJCSAgICBtYXAgPSBbXTsNCgkJCSAgICBfc2VsZi50b2dnbGVDbGFzcygnZWxlbWVudC1hbmltYXRpb24nKTsNCgkJCX0NCgkJfQ=='));\r\n\r\n _self.init();\r\n\r\n return this\r\n }\r\n});\r\n \r\n//throttle function\r\nfunction throttle(callback, limit) {\r\n var wait = false;\r\n return function () {\r\n if (!wait) {\r\n callback.call();\r\n wait = true;\r\n setTimeout(function () {\r\n wait = false;\r\n }, limit);\r\n }\r\n }\r\n}\r\n\r\n//extend lazySizes to allow lazy loading of background images\r\n//document.addEventListener('lazybeforeunveil', function (e) {\r\n// var bg = e.target.getAttribute('data-bg');\r\n// console.log(bg);\r\n// if (bg) {\r\n// e.target.style.backgroundImage = 'url(' + bg + ')';\r\n// }\r\n//});","var ajaxObject = null;\r\nvar refreshIntervalId = null;\r\nvar recursiveCall = false;\r\n\r\nfunction populateDropdownOnPageLoad() {\r\n var locationNodeId = 0;\r\n if (document.getElementById('hsform')) {\r\n var countryDDL = document.getElementById('hsform').hscountry;\r\n \r\n if (countryDDL.length > 0) {\r\n for (var i = 0; i < countryDDL.length; i++) {\r\n if (countryDDL.options[i].selected) {\r\n locationNodeId = countryDDL.options[i].value;\r\n break;\r\n }\r\n }\r\n }\r\n\t\t\r\n if (locationNodeId) {\r\n populateDropdown(locationNodeId);\r\n }\r\n } \r\n}\r\n\r\nfunction populateDropdown(locationNodeId) { \r\n\tif(locationNodeId > 0){\r\n\t\tsendAjaxAvailabilityRequest(locationNodeId);\r\n\t}\r\n}\r\n\r\nfunction sendAjaxAvailabilityRequest(locationNodeId){\r\n\tif (window.XMLHttpRequest){\r\n\t\t// W3C method\r\n\t\tajaxObject = new XMLHttpRequest();\r\n\t}else if (window.ActiveXObject){\r\n\t\t// IE method\r\n\t\tajaxObject = new ActiveXObject('Microsoft.XMLHTTP');\r\n\t}else{\r\n\t\treturn;\r\n\t}\r\n\r\n\tajaxObject.onreadystatechange = updateAvailability;\r\n\r\n\tvar locationDDL = document.getElementById('hsform').location;\r\n\tvar subLocationDDL = document.getElementById('hsform').sublocation;\r\n\t\r\n\taddOption(locationDDL, 'Loading...', '')\r\n\tselectedIndex = locationDDL.options.selectedIndex;\r\n\r\n\tfor (var i = 0; i < locationDDL.length; i++){\r\n\t\tif(locationDDL.options[i].text == 'Loading...' && locationDDL.options[i].value == ''){\r\n\t\t\tlocationDDL.options[i].selected = true;\r\n\t\t}\r\n\t}\r\n\r\n\tif(!recursiveCall){\r\n\t\tremoveAllOptions(subLocationDDL);\r\n\t}\r\n\taddOption(subLocationDDL, 'Loading...', '')\r\n\t\t\t\r\n\tajaxObject.open('GET', '/utility/hotelajaxdropdowns.aspx?locationid=' + locationNodeId, true);\r\n\tajaxObject.send('');\r\n}\r\n\r\nfunction updateAvailability(){\r\n\tif (ajaxObject.readyState == 4){\t\t\r\n\t\tpausecomp(500);\r\n\t\tvar locations = ajaxObject.responseXML.getElementsByTagName('Location');\t\r\n\t\tvar newSearchId = ajaxObject.responseXML.firstChild.getAttribute('SearchLocationId');\r\n\t\tvar searchCountryId = ajaxObject.responseXML.firstChild.getAttribute('HotelCountryId');\t\r\n\t\tvar locationDDL = document.getElementById('hsform').location;\r\n\t\tvar subLocationDDL = document.getElementById('hsform').sublocation;\r\n\t\t\r\n\t\tif(selectedIndex > 0){locationDDL.options[selectedIndex].selected = true;}\r\n\r\n\t\tfor (var i = 0; i < subLocationDDL.length; i++){\r\n\t\t\tif(subLocationDDL.options[i].text == 'Loading...' && subLocationDDL.options[i].value == ''){\r\n\t\t\t\tsubLocationDDL.options[i] = null;\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (var i = 0; i < locationDDL.length; i++){\r\n\t\t\tif(locationDDL.options[i].text == 'Loading...' && locationDDL.options[i].value == ''){\r\n\t\t\t\tlocationDDL.options[i] = null;\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (var i = 0; i < locationDDL.length; i++){\r\n\t\t\tif(locationDDL.options[i].text == 'Loading...' && locationDDL.options[i].value == ''){\r\n\t\t\t\tlocationDDL.options[i] = null;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif(document.getElementById('hscountry').value != document.getElementById('countrysearch').value && !recursiveCall){\r\n\t\t\t//COUNTRY CHANGED SO DELETE ALL OPTIONS IN BOTH SELECT BOXES\r\n\t\t\tremoveAllOptions(locationDDL);\r\n\t\t\tremoveAllOptions(subLocationDDL);\r\n\t\t}\r\n\r\n\t\tif(document.getElementById('hsform').location.options.length <= 1 && searchCountryId == 0){\t\t\t\r\n\t\t\tdocument.getElementById('countrysearch').value = newSearchId;\r\n\t\t\tremoveAllOptions(locationDDL);\r\n\t\t\tif(!recursiveCall){\r\n\t\t\t\tremoveAllOptions(subLocationDDL);\r\n\t\t\t}\r\n\t\t\tvar selectbox = document.getElementById('hsform').location;\r\n\t\t\tif(locations.length > 0){\r\n\t\t\t\tfor (var i = 0; i < locations.length; i++){\r\n\t\t\t\t\tvar locationName = locations[i].firstChild.lastChild.nodeValue;\r\n\t\t\t\t\tvar locationNodeId = locations[i].firstChild.nextSibling.lastChild.nodeValue;\t\t\t\t\t\r\n\t\t\t\t\tif(i == 0){addOption(selectbox, '', '');}\r\n\t\t\t\t\taddOption(selectbox, locationName, locationNodeId);\r\n\t\t\t\t\tif(locationDDL.options[i].value == newSearchId && !recursiveCall){\r\n\t\t\t\t\t\tlocationDDL.options[i].selected = true;\r\n\t\t\t\t\t}else if(recursiveCall && locationDDL.options[i].value == recursiveCallId){\r\n\t\t\t\t\t\tlocationDDL.options[i].selected = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tselectbox.disabled = false;\r\n\t\t\t\tif(searchCountryId != 0 || recursiveCall){\t\t\t\t\t\r\n\t\t\t\t\tvar countryDDL = document.getElementById('hsform').country;\r\n\t\t\t\t\tfor (var i = 0; i < countryDDL.length; i++){\r\n\t\t\t\t\t\tif(countryDDL.options[i].value == searchCountryId || (recursiveCall && countryDDL.options[i].value == newSearchId)){\r\n\t\t\t\t\t\t\tcountryDDL.options[i].selected = true;\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\t\t\t\t\r\n\t\t\t}else{\r\n\t\t\t\taddOption(selectbox, '', '');\r\n\t\t\t\taddOption(document.getElementById('hsform').sublocation, '', '');\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\tremoveAllOptions(document.getElementById('hsform').sublocation);\r\n\t\t\tvar selectbox = document.getElementById('hsform').sublocation;\r\n\t\t\tvar locationDDL = document.getElementById('hsform').location;\r\n\t\t\tif(locations.length > 0){\t\t\t\t\r\n\t\t\t\tfor (var i = 0; i < locations.length; i++){\r\n\t\t\t\t\tvar locationName = locations[i].firstChild.lastChild.nodeValue;\r\n\t\t\t\t\tvar locationNodeId = locations[i].firstChild.nextSibling.lastChild.nodeValue;\t\t\t\t\r\n\t\t\t\t\tif(i == 0){addOption(selectbox, '', '');}\r\n\t\t\t\t\taddOption(selectbox, locationName, locationNodeId);\t\t\t\t\t\r\n\t\t\t\t\tif(locationDDL.options.length > i && locationDDL.options[i].value == newSearchId){\r\n\t\t\t\t\t\tlocationDDL.options[i].selected = true;\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(locationDDL.options.length == 0 && searchCountryId != 0){\r\n\t\t\t\t\trecursiveCall = true;\r\n\t\t\t\t\trecursiveCallId = newSearchId;\r\n\t\t\t\t\tpopulateDropdown(searchCountryId);\r\n\t\t\t\t}\r\n\t\t\t\tselectbox.disabled = false;\t\t\t\t\t\t\t\t\t\r\n\t\t\t}else{\r\n\t\t\t\taddOption(selectbox, '', '');\r\n\t\t\t}\r\n\t\t}\t\t\t\t\t\t\r\n\t}\r\n}\r\n\r\nfunction addOption(selectbox,text,value){\r\n\tvar optn = document.createElement(\"OPTION\");\r\n\toptn.text = text;\r\n\toptn.value = value;\r\n\tselectbox.options.add(optn);\t\r\n}\r\n\r\nfunction removeAllOptions(selectbox){\r\n\tselectbox.innerHTML = \"\";\r\n\tselectbox.disabled = true;\r\n}\r\n\r\nfunction pausecomp(millis){\r\n\tvar date = new Date();\r\n\tvar curDate = null;\r\n\r\n\tdo { curDate = new Date(); } \r\n\twhile(curDate-date < millis);\r\n}\r\n\r\nfunction changeHotelFormAction(forceHoteldescription) {\r\n if (forceHoteldescription || document.getElementById('hsform').action.indexOf('hoteldescription.aspx') != -1) {\r\n var globalPropertyNodeId = document.getElementById('globalpropertynodeid').value;\r\n var hsArrival = document.getElementById('hsarrival').value;\r\n var roomType = document.getElementById('hsroomtype').value;\r\n var hsNoNights = document.getElementById('hsnonights').value;\r\n document.getElementById('hsform').action = '/hotels/hoteldescription.aspx?globalpropertynodeid=' + globalPropertyNodeId + '&hsarrival=' + hsArrival + '&roomtype=' + roomType + '&nights=' + hsNoNights;\r\n } else {\r\n document.getElementById('hsform').action = '/hotels/getrates.aspx';\r\n }\r\n}\r\n\r\n\r\nvar FilterHotelSearch = {\r\n\r\n validateSubmission: function () {\r\n\r\n //THIS IS DEFINED IN ANOTHER PAGE DO NOT OVERWRITE: IT IS USED WHEN YOU SEARCH FOR A MARKETING REPORT (ROBCAHOON 15/11/2012)\r\n if (document.getElementById('removenewsearchtype').value == 'Y') {\r\n this.IsNewSearch = false;\r\n this.SearchForLocationNodeId = 0;\r\n } else {\r\n this.IsNewSearch;\r\n this.SearchForLocationNodeId;\r\n }\r\n ////////////////////\r\n\r\n if (document.getElementById('globalpropertyid') && document.getElementById('hsarrival') && document.getElementById('hsnonights') && document.getElementById('hsroomtype')) {\r\n this.SubmissionAjaxObject = null;\r\n this.HSarrival = (document.getElementById('hsarrival').value.length > 0) ? document.getElementById('hsarrival').value : '';\r\n this.HSnonight = (document.getElementById('hsnonights').value.length > 0) ? document.getElementById('hsnonights').value : '';\r\n this.HSroomtype = (document.getElementById('hsroomtype').value.length > 0) ? document.getElementById('hsroomtype').value : '';\r\n this.HSglobalpropertyid = (document.getElementById('globalpropertyid').value.length > 0) ? document.getElementById('globalpropertyid').value : '';\r\n this.HSlocation = (document.getElementById('location').value.length > 0) ? document.getElementById('location').value : '';\r\n this.HSpagetype = (document.getElementById('pagetype').value.length > 0) ? document.getElementById('pagetype').value : '';\r\n this.ErrorMessage = '';\r\n\r\n\r\n if (this.HSarrival.length === 0) {\r\n this.ErrorMessage = 'Please select the arrival day. \\n';\r\n }\r\n\r\n if (this.HSnonight.length === 0) {\r\n this.ErrorMessage = 'Please select the number of nights. \\n';\r\n }\r\n\r\n if (this.HSroomtype.length === 0) {\r\n this.ErrorMessage = 'Please select the room type. \\n';\r\n }\r\n\r\n if (this.HSglobalpropertyid.length === 0) {\r\n this.ErrorMessage = 'Server error: no globalpropertyid. \\n';\r\n }\r\n\r\n if (this.HSlocation.length === 0) {\r\n this.ErrorMessage = 'Server error: no locationid. \\n';\r\n }\r\n\r\n if (this.ErrorMessage.length === 0) {\r\n if (this.HSpagetype == 'results') {\r\n document.getElementById('hsearchform').submit();\r\n } else {\r\n document.getElementById('pricechecking').style.display = 'block';\r\n this.sendFormSubmissionAJAXRequest();\r\n }\r\n\r\n } else {\r\n window.alert('Reminder: \\n' + this.ErrorMessage);\r\n return false;\r\n }\r\n\r\n }\r\n },\r\n\r\n sendFormSubmissionAJAXRequest: function () {\r\n 'use strict';\r\n this.SubmissionAjaxObject = this.createAjaxObject();\r\n this.SubmissionAjaxObject.onreadystatechange = function () {\r\n try {\r\n if (this.readyState === 4) {\r\n if (this.status === 200) {\r\n if (this.responseText) {\r\n document.getElementById('pricechecking').style.display = 'none';\r\n var root = this.responseXML.getElementsByTagName('PriceByPropertyAndDated');\r\n document.getElementById('hotelpricecheckresult').innerHTML = root[0].childNodes[0].childNodes[0].nodeValue\r\n //CREATE SAVING INFORMATION FOR HOTEL DESCRIPTION \r\n if (root[0].getElementsByTagName('SavingMessage').length > 0) {\r\n FilterHotelSearch.createSavingInfo(root[0].getElementsByTagName('SavingMessage'));\r\n }\r\n } else {\r\n document.getElementById('hotelpricecheckresult').innerHTML = 'We are currently unable to give an accurate price for the dates requested. Please call us now for assistance.';\r\n }\r\n } else if (this.status === 500) {\r\n document.getElementById('hotelpricecheckresult').innerHTML = 'We are currently unable to give an accurate price for the dates requested. Please call us now for assistance.';\r\n document.getElementById('pricechecking').style.display = 'none';\r\n }\r\n }\r\n } catch (err) {\r\n document.getElementById('pricechecking').style.display = 'none';\r\n document.getElementById('hotelpricecheckresult').innerHTML = 'We are currently unable to give an accurate price for the dates requested. Please call us now for assistance.';\r\n }\r\n };\r\n\r\n //IF YOU'VE JUST WASTED 3 HOURS TRYING TO WORK OUT WHERE THIS XML IS GENERATED TRY FilterHotelResults.ascx!\r\n this.SubmissionAjaxObject.open('GET', '/hotels/hoteldescription.aspx?mode=returnxml&location=' + this.HSlocation + '&globalpropertyid=' + this.HSglobalpropertyid + '&hsarrival=' + this.HSarrival + '&nights=' + this.HSnonight + '&roomtype=' + this.HSroomtype + '&newSearch=' + this.IsNewSearch + '&searchForLocationNodeId=' + this.SearchForLocationNodeId, true);\r\n\r\n if (document.getElementById('removenewsearchtype').value == 'N') {\r\n document.getElementById('removenewsearchtype').value = 'Y';\r\n }\r\n\r\n this.SubmissionAjaxObject.send('');\r\n },\r\n\r\n createAjaxObject: function () {\r\n 'use strict';\r\n if (window.XMLHttpRequest) {\r\n return new XMLHttpRequest();\r\n } else if (window.ActiveXObject) {\r\n return new ActiveXObject('Microsoft.XMLHTTP');\r\n } else {\r\n return;\r\n }\r\n },\r\n\r\n //THIS IS ONLY FOR HOTEL DESCRIPTION DISCOUNT/SAVING\r\n createSavingInfo: function (saving) {\r\n var savingHolder = document.getElementById('savingholder');\r\n if (savingHolder) {\r\n $(\"#savingholder\").addClass(\"showme\");\r\n savingHolder.innerHTML = $(saving).text();\r\n }\r\n }\r\n}\r\n\r\n////////////// HOTELS ASYNCHRONOUSLY /////////////\r\nfunction getHotels(hotelDisplayMode, starRating, numHotelsToDisplay, webLocationId, obj) {\r\n\r\n var mainHotelHolder;\r\n\r\n if (starRating > 0 && numHotelsToDisplay > 0 && webLocationId > 0) {\r\n \r\n switch (starRating) {\r\n case 5:\r\n mainHotelHolder = document.getElementById('fiveStarHotelHolder');\r\n mainHotelHolder.style.display = 'block';\r\n $(\"#loading5star\").show();\r\n break;\r\n case 4:\r\n mainHotelHolder = document.getElementById('fourStarHotelHolder');\r\n mainHotelHolder.style.display = 'block';\r\n $(\"#loading4star\").show();\r\n break;\r\n case 3:\r\n mainHotelHolder = document.getElementById('threeStarHotelHolder');\r\n mainHotelHolder.style.display = 'block';\r\n $(\"#loading3star\").show();\r\n break;\r\n case 2:\r\n mainHotelHolder = document.getElementById('budgetStarHolder');\r\n mainHotelHolder.style.display = 'block';\r\n $(\"#loadingbudgetstar\").show();\r\n default:\r\n mainHotelHolder = document.getElementById('budgetStarHolder');\r\n mainHotelHolder.style.display = 'block';\r\n $(\"#loadingbudgetstar\").show();\r\n\r\n }\r\n\r\n switch (obj) {\r\n case 'ctl00_leftContent_fivestarhead':\r\n clearPosition = 'Y';\r\n if (document.getElementById('fiveStarHotelHolderDisplay')) {\r\n document.getElementById('fiveStarHotelHolderDisplay').style.padding = '0px';\r\n document.getElementById('fiveStarHotelHolderDisplay').style.margin = '0px';\r\n }\r\n if (document.getElementById('showMore5')) {\r\n document.getElementById('showMore5').style.display = 'none';\r\n }\r\n \r\n break;\r\n case 'ctl00_leftContent_fourstarhead':\r\n clearPosition = 'Y';\r\n if (document.getElementById('fourStarHotelHolderDisplay')) {\r\n document.getElementById('fourStarHotelHolderDisplay').style.padding = '0px';\r\n document.getElementById('fourStarHotelHolderDisplay').style.margin = '0px';\r\n }\r\n if (document.getElementById('showMore4')) {\r\n document.getElementById('showMore4').style.display = 'none';\r\n }\r\n break;\r\n case 'ctl00_leftContent_threestarhead':\r\n clearPosition = 'Y';\r\n if (document.getElementById('threeStarHotelHolderDisplay')) {\r\n document.getElementById('threeStarHotelHolderDisplay').style.padding = '0px';\r\n document.getElementById('threeStarHotelHolderDisplay').style.margin = '0px';\r\n }\r\n if (document.getElementById('showMore3')) {\r\n document.getElementById('showMore3').style.display = 'none';\r\n }\r\n break;\r\n case 'ctl00_leftContent_budgetstarhead':\r\n clearPosition = 'Y';\r\n break;\r\n default:\r\n clearPosition = 'N';\r\n }\r\n\r\n if (mainHotelHolder) {\r\n mainHotelHolder.style.display = 'block';\r\n }\r\n\r\n if (obj) {\r\n if (document.getElementById(obj)) {\r\n document.getElementById(obj).style.minHeight = 'auto';\r\n } else {\r\n mainHotelHolder.style.display = 'none';\r\n }\r\n }\r\n\r\n\r\n if (hotelDisplayMode.toUpperCase() === 'D') {\r\n clearPosition = 'Y';\r\n }\r\n\r\n jQuery.ajax({\r\n url: '/utility/hotelresultsbystarrating.aspx?starrating=' + starRating + '&numhotelstodisplay=' + numHotelsToDisplay + '&weblocationnodeid=' + webLocationId + '&clearPosition=' + clearPosition,\r\n cache: false,\r\n success: function (hotelresults) {\r\n if (hotelresults.length > 0) {\r\n\r\n buildHotelResults(hotelresults, starRating, webLocationId, numHotelsToDisplay, 'N');\r\n\r\n if (obj) {\r\n var elem = document.getElementById(obj);\r\n if (elem) {\r\n switch (obj) {\r\n case 'ctl00_leftContent_fivestarhead':\r\n elem.onclick = function () { toggleElement('fiveStarHotelHolder'); }\r\n $(\"#loading5star\").hide();\r\n break;\r\n case 'ctl00_leftContent_fourstarhead':\r\n elem.onclick = function () { toggleElement('fourStarHotelHolder'); }\r\n $(\"#loading4star\").hide();\r\n break;\r\n case 'ctl00_leftContent_threestarhead':\r\n elem.onclick = function () { toggleElement('threeStarHotelHolder'); }\r\n $(\"#loading3star\").hide();\r\n break;\r\n case 'ctl00_leftContent_budgetstarhead':\r\n elem.onclick = function () { toggleElement('budgetStarHolder'); }\r\n $(\"#loadingbudgetstar\").hide();\r\n break;\r\n default:\r\n if (elem) {\r\n elem.parentNode.removeChild(elem);\r\n }\r\n\r\n $(\"#loading5star\").hide();\r\n $(\"#loading4star\").hide();\r\n $(\"#loading3star\").hide();\r\n $(\"#loadingbudgetstar\").hide();\r\n }\r\n\r\n mainHotelHolder.style.minHeight = \"auto\";\r\n\r\n switch (obj) {\r\n case 'showMore5':\r\n if (document.getElementById(obj)) {\r\n document.getElementById(obj).style.display = 'none';\r\n }\r\n break;\r\n case 'showMore4':\r\n if (document.getElementById(obj)) {\r\n document.getElementById(obj).style.display = 'none';\r\n }\r\n break;\r\n case 'showMore3':\r\n if (document.getElementById(obj)) {\r\n document.getElementById(obj).style.display = 'none';\r\n }\r\n break;\r\n case 'budgetMore':\r\n if (document.getElementById(obj)) {\r\n document.getElementById(obj).style.display = 'none';\r\n }\r\n break;\r\n }\r\n\r\n }\r\n }\r\n }\r\n },\r\n error: function (feedback) {\r\n return;\r\n }\r\n });\r\n\r\n }\r\n\r\n}\r\n\r\nfunction buildHotelResults(hotelresults, starRating, webLocationId, searchCount, isFiltered, hotelDesc) {\r\n\r\n var mainHotelHolder;\r\n var holderforhotelDiv, hotelDiv, urlLink, img, hotelName, link, description, readMoreLink, spanPrice, divPrice, spanPriceInner, mainPriceSpan, showMoreDiv, showMoreLink, loadingStarDiv, loaderImg, numHotelToDisplay\r\n var imageSet = 'N';\r\n\r\n if (starRating > 0 && hotelDesc != 'Y') {\r\n\r\n switch (starRating) {\r\n case 5:\r\n mainHotelHolder = document.getElementById('fiveStarHotelHolder');\r\n mainHotelHolder.style.display = 'block';\r\n if (!document.getElementById('loading5star')) {\r\n loadingStarDiv = document.createElement('div');\r\n loadingStarDiv.className = 'loadinghotels';\r\n loadingStarDiv.id = \"loading5star\";\r\n }\r\n break;\r\n case 4:\r\n mainHotelHolder = document.getElementById('fourStarHotelHolder');\r\n mainHotelHolder.style.display = 'block';\r\n if (!document.getElementById('loading4star')) {\r\n loadingStarDiv = document.createElement('div');\r\n loadingStarDiv.className = 'loadinghotels';\r\n loadingStarDiv.id = \"loading4star\";\r\n }\r\n break;\r\n case 3:\r\n mainHotelHolder = document.getElementById('threeStarHotelHolder');\r\n mainHotelHolder.style.display = 'block';\r\n if (!document.getElementById('loading3star')) {\r\n loadingStarDiv = document.createElement('div');\r\n loadingStarDiv.className = 'loadinghotels';\r\n loadingStarDiv.id = \"loading3star\";\r\n }\r\n break;\r\n case 2:\r\n mainHotelHolder = document.getElementById('budgetStarHolder');\r\n mainHotelHolder.style.display = 'block';\r\n\r\n if (!document.getElementById('loadingbudgetstar')) {\r\n loadingStarDiv = document.createElement('div');\r\n loadingStarDiv.className = 'loadinghotels';\r\n loadingStarDiv.id = \"loadingbudgetstar\";\r\n }\r\n break;\r\n }\r\n } else {\r\n mainHotelHolder = document.getElementById('otherhotelholder');\r\n mainHotelHolder.style.display = 'block';\r\n }\r\n\r\n for (var i = 0; i <= hotelresults.length - 1; i++) {\r\n\r\n holderforhotelDiv = document.createElement('div');\r\n holderforhotelDiv.className = 'holderforhotel';\r\n\r\n hotelDiv = document.createElement('div');\r\n hotelDiv.className = 'hotel';\r\n\r\n urlLink = document.createElement('a');\r\n urlLink.href = hotelresults[i].HotelUrl;\r\n\r\n img = document.createElement('img');\r\n img.src = hotelresults[i].ImageUrl;\r\n img.width = 80;\r\n img.height = 60;\r\n\r\n urlLink.appendChild(img);\r\n\r\n hotelName = document.createElement('h3');\r\n hotelName.id = 'prop_' & hotelresults[i].GlobalPropertyNodeId;\r\n hotelName.className = 'hotelName';\r\n\r\n link = document.createElement('a');\r\n link.href = hotelresults[i].HotelUrl;\r\n link.innerHTML = hotelresults[i].HotelName;\r\n\r\n hotelName.appendChild(link);\r\n\r\n description = document.createElement('p');\r\n description.innerHTML = hotelresults[i].LocationText + '...';\r\n\r\n readMoreLink = document.createElement('a');\r\n readMoreLink.className = 'readmore';\r\n readMoreLink.href = hotelresults[i].HotelUrl;\r\n readMoreLink.innerHTML = '  Read more';\r\n\r\n description.appendChild(readMoreLink);\r\n\r\n spanPrice = document.createElement('span');\r\n spanPrice.className = 'price';\r\n\r\n divPrice = document.createElement('div');\r\n\r\n spanPriceInner = document.createElement('span');\r\n spanPriceInner.className = 'innerprice';\r\n spanPriceInner.innerHTML = 'fr £'\r\n\r\n mainPriceSpan = document.createElement('span');\r\n mainPriceSpan.id = 'price' & hotelresults[i].GlobalPropertyNodeId;\r\n mainPriceSpan.innerHTML = hotelresults[i].BestPrice + ' per room night';\r\n\r\n if (hotelresults[i].DiscountText) {\r\n divPrice.innerHTML = hotelresults[i].DiscountText;\r\n }\r\n\r\n spanPriceInner.appendChild(mainPriceSpan)\r\n divPrice.appendChild(spanPriceInner);\r\n spanPrice.appendChild(divPrice);\r\n\r\n\r\n if (hotelresults[i].SearchResultsCount > searchCount && i == (hotelresults.length - 1)) {\r\n if (i != hotelresults[i].SearchResultsCount - 1) {\r\n showMoreDiv = document.createElement('div');\r\n showMoreDiv.className = \"clear filterstar\"\r\n if (hotelDesc == 'Y') {\r\n showMoreDiv.id = 'morehotels';\r\n } else {\r\n showMoreDiv.id = 'showExtra' + starRating;\r\n }\r\n\r\n if (hotelresults.length > 9) {\r\n showMoreLink = document.createElement('a');\r\n\r\n if (starRating == 2) {\r\n showMoreLink.innerHTML = 'More budget hotels >';\r\n } else if (starRating >= 4) {\r\n showMoreLink.innerHTML = 'Show ' + (hotelresults[i].SearchResultsCount - 30) + ' more >';\r\n } else {\r\n showMoreLink.innerHTML = 'More ' + starRating + ' star hotels >';\r\n }\r\n\r\n if (starRating >= 4) {\r\n numHotelToDisplay = (hotelresults[i].SearchResultsCount - 30)\r\n } else {\r\n numHotelToDisplay = 10\r\n }\r\n\r\n if (hotelDesc == 'Y') {\r\n if (isFiltered == 'Y') {\r\n showMoreLink.href = 'javascript:getHotelsForHotelDesc(' + \"'E',\" + starRating + ',' + numHotelToDisplay + ',' + webLocationId + ',' + \"'\" + showMoreDiv.id + \"'\" + \", 'Y'\" + \",\" + hotelresults[hotelresults.length - 1].BedsLocationId + ')';\r\n } else {\r\n showMoreLink.href = 'javascript:getHotelsForHotelDesc(' + \"'E',\" + starRating + ',' + numHotelToDisplay + ',' + webLocationId + ',' + \"'\" + showMoreDiv.id + \"'\" + ')';\r\n }\r\n } else {\r\n if (isFiltered == 'Y') {\r\n showMoreLink.href = 'javascript:getHotels(' + \"'E',\" + starRating + ',' + numHotelToDisplay + ',' + webLocationId + ',' + \"'\" + showMoreDiv.id + \"'\" + \", 'Y'\" + \",\" + hotelresults[hotelresults.length - 1].BedsLocationId + ')';\r\n } else {\r\n showMoreLink.href = 'javascript:getHotels(' + \"'E',\" + starRating + ',' + numHotelToDisplay + ',' + webLocationId + ',' + \"'\" + showMoreDiv.id + \"'\" + ')';\r\n }\r\n }\r\n\r\n showMoreDiv.appendChild(showMoreLink)\r\n\r\n }\r\n }\r\n }\r\n\r\n hotelDiv.appendChild(urlLink);\r\n hotelDiv.appendChild(hotelName);\r\n hotelDiv.appendChild(description);\r\n hotelDiv.appendChild(spanPrice);\r\n holderforhotelDiv.appendChild(hotelDiv);\r\n mainHotelHolder.appendChild(holderforhotelDiv);\r\n if (loadingStarDiv) {\r\n if (imageSet == 'N') {\r\n loaderImg = document.createElement('img');\r\n loaderImg.src = '/images/hotels_loader_blue.gif';\r\n loaderImg.width = 90;\r\n loaderImg.height = 90;\r\n imageSet = 'Y';\r\n loadingStarDiv.appendChild(loaderImg);\r\n }\r\n mainHotelHolder.appendChild(loadingStarDiv);\r\n }\r\n \r\n if (showMoreDiv) {\r\n showMoreDiv.style.display = 'block';\r\n mainHotelHolder.appendChild(showMoreDiv);\r\n }\r\n }\r\n\r\n if (starRating > 0) {\r\n switch (starRating) {\r\n case 5:\r\n// if (document.getElementById('fiveStarHotelHolderDisplay')) {\r\n// $('#fiveStarHotelHolderDisplay').empty();\r\n// }\r\n break;\r\n case 4:\r\n if (document.getElementById('fourStarHotelHolderDisplay')) {\r\n $('#fourStarHotelHolderDisplay').empty();\r\n }\r\n break;\r\n case 3:\r\n if (document.getElementById('threeStarHotelHolderDisplay')) {\r\n $('#threeStarHotelHolderDisplay').empty();\r\n }\r\n break;\r\n case 2:\r\n if (document.getElementById('budgetStarHotelHolderDisplay')) {\r\n $('#budgetStarHotelHolderDisplay').empty();\r\n }\r\n break;\r\n default:\r\n //\r\n break;\r\n }\r\n }\r\n}\r\n\r\nfunction getHotelsForHotelDesc(hotelDisplayMode, starRating, numHotelsToDisplay, webLocationId, obj, isFiltered, bedsLocationId) {\r\n\r\n var mainHotelHolder;\r\n\r\n if (starRating > 0 && numHotelsToDisplay > 0 && webLocationId > 0) {\r\n\r\n if (mainHotelHolder) {\r\n mainHotelHolder.style.display = 'block';\r\n }\r\n\r\n if (obj) {\r\n if (document.getElementById(obj)) {\r\n document.getElementById(obj).style.minHeight = 'auto';\r\n } else {\r\n mainHotelHolder.style.display = 'none';\r\n }\r\n }\r\n\r\n if (document.getElementById('showmore')) {\r\n document.getElementById('showmore').style.display = 'none';\r\n clearPosition = 'N';\r\n mainHotelHolder = document.getElementById('otherhotelholder');\r\n $(\"#hotelloading\").show();\r\n }\r\n\r\n\r\n if (hotelDisplayMode.toUpperCase() === 'D') {\r\n clearPosition = 'Y';\r\n\r\n }\r\n\r\n jQuery.ajax({\r\n url: '/utility/hotelresultsbystarrating.aspx?starrating=' + starRating + '&numhotelstodisplay=' + numHotelsToDisplay + '&weblocationnodeid=' + webLocationId + '&isFiltered=' + isFiltered + '&bedsLocationId=' + bedsLocationId + '&clearPosition=' + clearPosition,\r\n cache: false,\r\n success: function (hotelresults) {\r\n if (hotelresults.length > 0) {\r\n\r\n if (isFiltered && isFiltered == 'Y') {\r\n buildHotelResults(hotelresults, starRating, webLocationId, numHotelsToDisplay, 'Y', 'Y');\r\n } else {\r\n buildHotelResults(hotelresults, starRating, webLocationId, numHotelsToDisplay, 'N', 'Y');\r\n }\r\n\r\n if (obj) {\r\n var elem = document.getElementById(obj);\r\n if (elem) {\r\n switch (obj) {\r\n case 'ctl00_leftContent_fivestarhead':\r\n elem.onclick = function () { toggleElement('fiveStarHotelHolder'); }\r\n $(\"#loading5star\").hide();\r\n break;\r\n case 'ctl00_leftContent_fourstarhead':\r\n elem.onclick = function () { toggleElement('fourStarHotelHolder'); }\r\n $(\"#loading4star\").hide();\r\n break;\r\n case 'ctl00_leftContent_threestarhead':\r\n elem.onclick = function () { toggleElement('threeStarHotelHolder'); }\r\n $(\"#loading3star\").hide();\r\n break;\r\n case 'ctl00_leftContent_budgetstarhead':\r\n elem.onclick = function () { toggleElement('budgetStarHolder'); }\r\n $(\"#loadingbudgetstar\").hide();\r\n break;\r\n default:\r\n if (elem) {\r\n elem.parentNode.removeChild(elem);\r\n }\r\n\r\n $(\"#loading5star\").hide();\r\n $(\"#loading4star\").hide();\r\n $(\"#loading3star\").hide();\r\n $(\"#loadingbudgetstar\").hide();\r\n $(\"#hotelloading\").hide();\r\n }\r\n\r\n mainHotelHolder.style.minHeight = \"auto\";\r\n mainHotelHolder.style.display = 'block';\r\n\r\n switch (obj) {\r\n case 'showMore5':\r\n if (document.getElementById(obj)) {\r\n document.getElementById(obj).style.display = 'none';\r\n }\r\n break;\r\n case 'showMore4':\r\n if (document.getElementById(obj)) {\r\n document.getElementById(obj).style.display = 'none';\r\n }\r\n break;\r\n case 'showMore3':\r\n if (document.getElementById(obj)) {\r\n document.getElementById(obj).style.display = 'none';\r\n }\r\n break;\r\n case 'budgetMore':\r\n if (document.getElementById(obj)) {\r\n document.getElementById(obj).style.display = 'none';\r\n }\r\n break;\r\n }\r\n\r\n }\r\n }\r\n }\r\n },\r\n error: function (feedback) {\r\n return;\r\n }\r\n });\r\n\r\n }\r\n\r\n}\r\n\r\nfunction findHashInUrl(loactionNodeId) {\r\n\r\n var hasUrl = location.hash;\r\n\r\n switch (hasUrl.toLowerCase()) {\r\n case '#4star':\r\n getHotels('E', 4, 10, loactionNodeId,'ctl00_leftContent_fourstarhead')\r\n break;\r\n case '#3star':\r\n getHotels('E', 3, 10, loactionNodeId, 'ctl00_leftContent_threestarhead');\r\n break;\r\n case '#budget':\r\n getHotels('E', 2, 10, loactionNodeId, 'ctl00_leftContent_budgetstarhead')\r\n break;\r\n }\r\n\r\n}\r\n\r\n////////////// END /////////////","function onFlightResultPageReady() {\r\n\r\n var isContentItemsHidden, locationContentElement;\r\n\r\n isContentItemsHidden = true;\r\n\r\n// $('#flightlocationtitle').mouseenter(function () {\r\n// if (isContentItemsHidden) {\r\n// $('.contentitems').show('slide', { direction: 'down' }, 1000);\r\n// setTimeout(function () { isContentItemsHidden = false; }, 1200);\r\n// }\r\n// });\r\n\r\n $('.flightcontentholder').mouseleave(function () {\r\n if (!isContentItemsHidden) {\r\n setTimeout(\r\n function () {\r\n $('.contentitems').hide('slide', { direction: 'down' }, 1000);\r\n }, 1000);\r\n setTimeout(function () { isContentItemsHidden = true; }, 1100);\r\n }\r\n });\r\n\r\n $('#contentitems').click(function () {\r\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) {\r\n setTimeout(\r\n function () {\r\n $('.contentitems').hide('slide', { direction: 'down' }, 1000);\r\n }, 1000);\r\n setTimeout(function () { isContentItemsHidden = true; }, 1100);\r\n } \r\n });\r\n\r\n $('#gmapopen').click(function () {\r\n googleMapInitialize(); \r\n });\r\n\r\n $('#tempopen').click(function () {\r\n initializeTemperature();\r\n });\r\n\r\n $('#magazineopen').click(function () {\r\n document.getElementById('magslidecover').style.display = 'block';\r\n document.getElementById('magslidecover').style.height = $('#magazinelinkholder').css('height');\r\n document.getElementById('magslidecover').style.zIndex = 30;\r\n $('#magazinelinkholder').show('slide', { direction: 'down' }, 200);\r\n });\r\n\r\n $('#magazinelinkholder').mouseleave(function () {\r\n $('#magazinelinkholder').hide('slide', { direction: 'down' }, 200);\r\n setTimeout(function () {\r\n document.getElementById('magslidecover').style.display = 'none';\r\n document.getElementById('magslidecover').style.height = '930px';\r\n document.getElementById('magslidecover').style.zIndex = 0;\r\n }, 310);\r\n });\r\n\r\n $('#magazinelinkholder').click(function () {\r\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) {\r\n $('#magazinelinkholder').hide('slide', { direction: 'down' }, 200);\r\n setTimeout(function () {\r\n document.getElementById('magslidecover').style.display = 'none';\r\n document.getElementById('magslidecover').style.height = '930px';\r\n document.getElementById('magslidecover').style.zIndex = 0;\r\n }, 310);\r\n }\r\n });\r\n}\r\n\r\nfunction onCarResultPageReady() {\r\n var isCarGuideHidden = true;\r\n var isCarContentItemsHidden = true;\r\n\r\n $('#gmapopen').click(function () {\r\n googleMapInitialize();\r\n });\r\n\r\n $('#tempopen').click(function () {\r\n initializeTemperature();\r\n });\r\n\r\n $('#magazineopen').click(function () {\r\n document.getElementById('magslidecover').style.display = 'block';\r\n document.getElementById('magslidecover').style.height = $('#magazinelinkholder').css('height');\r\n document.getElementById('magslidecover').style.zIndex = 30;\r\n $('#magazinelinkholder').show('slide', { direction: 'down' }, 200);\r\n });\r\n\r\n $('#magazinelinkholder').mouseleave(function () {\r\n $('#magazinelinkholder').hide('slide', { direction: 'down' }, 200);\r\n setTimeout(function () {\r\n document.getElementById('magslidecover').style.display = 'none';\r\n document.getElementById('magslidecover').style.height = '930px';\r\n document.getElementById('magslidecover').style.zIndex = 0;\r\n }, 310);\r\n });\r\n\r\n $('#magazinelinkholder').click(function () {\r\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) {\r\n $('#magazinelinkholder').hide('slide', { direction: 'down' }, 200);\r\n setTimeout(function () {\r\n document.getElementById('magslidecover').style.display = 'none';\r\n document.getElementById('magslidecover').style.height = '930px';\r\n document.getElementById('magslidecover').style.zIndex = 0;\r\n }, 310);\r\n }\r\n });\r\n\r\n $('#carhireguidelink').click(function () {\r\n if (isCarGuideHidden) {\r\n $('#carhireinfo').show('slide', { direction: 'down' }, 1000);\r\n setTimeout(function () { isCarGuideHidden = false; }, 1200);\r\n }\r\n });\r\n\r\n $('#carhireinfo').mouseleave(function () {\r\n if (!isCarGuideHidden) {\r\n setTimeout(\r\n function () {\r\n $('#carhireinfo').hide('slide', { direction: 'down' }, 1000);\r\n }, 1000);\r\n setTimeout(function () { isCarGuideHidden = true; }, 1100);\r\n }\r\n });\r\n\r\n $('#carhireinfo').click(function () {\r\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) {\r\n if (!isCarGuideHidden) {\r\n setTimeout(\r\n function () {\r\n $('#carhireinfo').hide('slide', { direction: 'down' }, 1000);\r\n }, 1000);\r\n setTimeout(function () { isCarGuideHidden = true; }, 1100);\r\n }\r\n }\r\n });\r\n\r\n $('#flightlocationtitle').mouseenter(function () {\r\n if (isCarContentItemsHidden) {\r\n $('.contentitems').show('slide', { direction: 'down' }, 1000);\r\n setTimeout(function () { isCarContentItemsHidden = false; }, 1200);\r\n }\r\n });\r\n\r\n $('.flightcontentholder').mouseleave(function () {\r\n if (!isCarContentItemsHidden) {\r\n setTimeout(\r\n function () {\r\n $('.contentitems').hide('slide', { direction: 'down' }, 1000);\r\n }, 1000);\r\n setTimeout(function () { isCarContentItemsHidden = true; }, 1100);\r\n }\r\n });\r\n\r\n $('#contentitems').click(function () {\r\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) {\r\n setTimeout(\r\n function () {\r\n $('.contentitems').hide('slide', { direction: 'down' }, 1000);\r\n }, 1000);\r\n setTimeout(function () { isCarContentItemsHidden = true; }, 1200);\r\n }\r\n });\r\n\r\n}\r\n\r\nfunction carsOfferSlider() {\r\n var offerHolderOneCount = $('#advholderone').children().length;\r\n var offerHolderTwoCount = $('#advholdertwo').children().length;\r\n if (offerHolderOneCount > 1) {\r\n var $active1 = $('#advholderone div.active');\r\n if ($active1.length === 0) $active1 = $('#advholderone div:last');\r\n var $next1 = $active1.next().length ? $active1.next() : $('#advholderone div:first');\r\n $active1.addClass('last-active');\r\n $next1.css({ opacity: 0.0 })\r\n .addClass('active')\r\n .animate({ opacity: 1.0 }, 1000, function () {\r\n $active1.removeClass('active last-active');\r\n });\r\n }\r\n\r\n if (offerHolderTwoCount > 1) {\r\n var $active2 = $('#advholdertwo div.active');\r\n if ($active2.length === 0) $active2 = $('#advholdertwo div:last');\r\n var $next2 = $active2.next().length ? $active2.next() : $('#advholdertwo div:first');\r\n $active2.addClass('last-active');\r\n $next2.css({ opacity: 0.0 })\r\n .addClass('active')\r\n .animate({ opacity: 1.0 }, 1000, function () {\r\n $active2.removeClass('active last-active');\r\n });\r\n }\r\n}\r\n\r\nfunction holidayOffersFade(obj) {\r\n var offerHolderOneCount = $('#fadeholder').children().length;\r\n var currentDisplayOffer = $('#displayeoffer').val();\r\n if (offerHolderOneCount > 1 && currentDisplayOffer != obj) {\r\n var $currentActive = $('#fadeholder div.active');\r\n var $select = $('#' + obj);\r\n $currentActive.addClass('last-active');\r\n $select.css({ opacity: 0.0 })\r\n .addClass('active')\r\n .animate({ opacity: 1.0 }, 300, function () {\r\n $currentActive.removeClass('active last-active');\r\n });\r\n $('#displayeoffer').val(obj);\r\n }\r\n}\r\n\r\nfunction autoFadeEffect(id) {\r\n var $active = $('#' + id + ' img.active');\r\n if ($active.length === 0) $active = $('#' + id + ' img:last');\r\n var $next = $active.next().length ? $active.next() : $('#' + id + ' img:first');\r\n $active.addClass('last-active');\r\n $next.css({ opacity: 0.0 })\r\n .addClass('active')\r\n .animate({ opacity: 1.0 }, 1500, function () {\r\n $active.removeClass('active last-active');\r\n });\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","var calendarWidth = 175;\r\nvar calendarHeight = 143;\r\nvar calendar = null;\r\nvar weekDays = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"];\r\nvar errorP = null; //USED TO OUTPUT ERROR MESSAGE\r\n\r\n//START - OPEN CALENDAR POPUP\r\nfunction showCalendar(id, montharrival, dayarrival, returnmonth, returnday) {\r\n var title;\r\n var defaultDateString;\r\n var minDateString;\r\n var maxDateString;\r\n var minDate;\r\n var maxDate;\r\n\r\n switch (id) {\r\n case 0:\r\n title = 'Departing';\r\n defaultDateString = getElement(montharrival).value + '-' + getElement(dayarrival).value;\r\n minDate = getDateFromIsoDateString(defaultDateString);\r\n break;\r\n case 1:\r\n title = 'Returning';\r\n defaultDateString = getElement(returnmonth).value + '-' + getElement(returnday).value;\r\n minDate = getDateFromIsoDateString(getElement(montharrival).value + '-' + getElement(dayarrival).value);\r\n break;\r\n }\r\n\r\n minDateString = getIsoDateStringFromDate(minDate);\r\n\r\n maxDate = minDate;\r\n maxDate.setFullYear(maxDate.getFullYear() + 1);\r\n maxDateString = getIsoDateStringFromDate(maxDate);\r\n\r\n openCalendar(id, title, defaultDateString, minDateString, maxDateString, montharrival, dayarrival, returnmonth, returnday);\r\n}\r\n//END - OPEN CALENDAR POPUP\r\n\r\nfunction closeCalendar() {\r\n if (calendar !== null) {\r\n calendar.close();\r\n calendar = null;\r\n }\r\n}\r\n\r\nfunction openCalendar(id, title, defaultDateString, minDateString, maxDateString, monArr, dayArr, monRet, dayRet) {\r\n var centreParentX;\r\n var centreParentY;\r\n var windowX;\r\n var windowY;\r\n\r\n // DATE STRINGS SHOULD BE IN THE ISO STANDARD FORMAT I.E. YYYY-MM-DD\r\n\r\n closeCalendar();\r\n\r\n if (isNaN(window.screenLeft)) {\r\n // NETSCAPE, MOZILLA\r\n centreParentX = window.screenX + (window.outerWidth / 2);\r\n centreParentY = window.screenY + (window.outerHeight / 2);\r\n }\r\n else {\r\n // IE\r\n centreParentX = window.screenLeft + (document.body.clientWidth / 2);\r\n centreParentY = window.screenTop + (document.body.clientHeight / 2);\r\n }\r\n\r\n windowX = centreParentX - (calendarWidth / 2);\r\n windowY = centreParentY - (calendarHeight / 2);\r\n\r\n calendar = window.open('/utility/calendar.aspx?id=' + id + '&title=' + title + '&defaultdate=' + defaultDateString + '&mindate=' + minDateString + '&maxdate=' + maxDateString + '&monArr=' + monArr + '&dayArr=' + dayArr + '&monRet=' + monRet + '&dayRet=' + dayRet, '_blank', 'toolbar=no,menubar=no,location=no,scrollbars=no,status=no,screenX=' + windowX + ',screenY=' + windowY + ',left=' + windowX + ',top=' + windowY + ',width=' + calendarWidth + ',height=' + calendarHeight + ',resizable=no');\r\n}\r\n\r\nfunction dateSelected(id, dateString, monArr, dayArr, monRet, dayRet) {\r\n switch (id) {\r\n case 0:\r\n findValueInList(getElement(dayArr), dateString.substr(8, 2));\r\n findValueInList(getElement(monArr), dateString.substr(0, 7));\r\n setReturnDate(dayArr, monArr, dayRet, monRet);\r\n break;\r\n case 1:\r\n findValueInList(getElement(dayRet), dateString.substr(8, 2));\r\n findValueInList(getElement(monRet), dateString.substr(0, 7));\r\n setWeekDay(dayRet + '_weekday', dateString);\r\n break;\r\n }\r\n}\r\n\r\nfunction getElement(elementId) {\r\n if (document.getElementById) {\r\n return document.getElementById(elementId);\r\n }\r\n else {\r\n return document.all[elementId];\r\n }\r\n}\r\n\r\nfunction findValueInList(list, value) {\r\n if (list !== null) {\r\n for (var i = 0; i < list.options.length; i++) {\r\n if (list.options[i].value == value) {\r\n list.selectedIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction setReturnDate(leaveDayId, leaveMonthId, returnDayId, returnMonthId) {\r\n var leaveDate;\r\n var returnDate;\r\n var returnDateString;\r\n\r\n leaveDate = getDateFromIsoDateString(getElement(leaveMonthId).value + '-' + getElement(leaveDayId).value);\r\n\r\n returnDate = leaveDate;\r\n returnDate.setDate(returnDate.getDate() + 7);\r\n\r\n returnDateString = getIsoDateStringFromDate(returnDate);\r\n if (returnDayId.indexOf('hs_') == -1) {\r\n findValueInList(getElement(returnDayId), returnDateString.substr(8, 2));\r\n findValueInList(getElement(returnMonthId), returnDateString.substr(0, 7));\r\n }\r\n setWeekDay(leaveDayId + '_weekday', leaveDate);\r\n setWeekDay(returnDayId + '_weekday', returnDate);\r\n}\r\n\r\nfunction getDateFromIsoDateString(dateString) {\r\n var year;\r\n var month;\r\n var day;\r\n\r\n // DATE STRING SHOULD BE IN THE ISO STANDARD FORMAT I.E. YYYY-MM-DD\r\n\r\n year = parseInt(dateString.substr(0, 4));\r\n // USE parseFloat AS parseInt INTERPRETS '01' AS 0 INSTEAD OF 1\r\n month = parseFloat(dateString.substr(5, 2));\r\n day = parseFloat(dateString.substr(8, 2));\r\n\r\n return new Date(year, month - 1, day);\r\n}\r\n\r\nfunction getIsoDateStringFromDate(date) {\r\n var year;\r\n var month;\r\n var day;\r\n\r\n // FORMAT DATE IN THE ISO STANDARD FORMAT I.E. YYYY-MM-DD\r\n\r\n year = date.getFullYear().toString();\r\n\r\n month = (date.getMonth() + 1).toString();\r\n if (month.length == 1) {\r\n month = '0' + month;\r\n }\r\n\r\n day = date.getDate().toString();\r\n if (day.length == 1) {\r\n day = '0' + day;\r\n }\r\n\r\n return year + '-' + month + '-' + day;\r\n}\r\n\r\nfunction checkAllCarTypes() {\r\n var csform = document.getElementById('csform');\r\n var formLength = csform.getElementsByTagName('input').length;\r\n for (var i = 0; i <= formLength - 1; i++) {\r\n if (csform.getElementsByTagName('input')[i].type == 'checkbox') {\r\n csform.getElementsByTagName('input')[i].checked = true;\r\n }\r\n }\r\n}\r\n\r\nfunction setWeekDay(id, selectedDate) {\r\n var tempSelectedDate = null;\r\n if (getElement(id)) {\r\n try {\r\n tempSelectedDate = getDateFromIsoDateString(selectedDate);\r\n } catch (err) {\r\n tempSelectedDate = selectedDate;\r\n }\r\n getElement(id).innerHTML = weekDays[tempSelectedDate.getDay()];\r\n }\r\n}\r\n\r\nfunction todayAsString() {\r\n var today = new Date();\r\n return weekDays[today.getDay()].substring(0, 3);\r\n}\r\n\r\nfunction todayAsStringFromElement(day, monYear) {\r\n if (day.length > 0 && monYear.length > 0) {\r\n var year = monYear.substring(0, 4);\r\n var mon = monYear.substring(5) - 1;\r\n var myDate = new Date();\r\n myDate.setFullYear(year, mon, day);\r\n return weekDays[myDate.getDay()].substring(0, 3);\r\n }\r\n}\r\n\r\nfunction addOnLoadEvent(show, hide1, hide2, tab) {\r\n if (window.addEventListener) {\r\n // W3C method\r\n window.addEventListener('load', toggleSearchBoxes(show, hide1, hide2, tab), false);\r\n }\r\n else if (window.attachEvent) {\r\n // IE method\r\n window.attachEvent('onload', toggleSearchBoxes(show, hide1, hide2, tab));\r\n }\r\n}\r\n\r\nfunction validateHotelLocation(inputId) {\r\n alert(getElement(inputId).selectedIndex);\r\n return false;\r\n}\r\n\r\nfunction validateInputBox(inputId, departDate, returnDate) {\r\n \r\n var retVal = true;\r\n var errors = [];\r\n \r\n\r\n var flightSearchContainer = document.querySelector(\".flightsearch-container\");\r\n var inputElement = document.querySelector(\"#\" + inputId);\r\n\r\n inputElement.addEventListener(\"focus\", function () {\r\n flightSearchContainer.classList.remove(\"flightsearch-container--destination-error\");\r\n });\r\n\r\n if (getElement(inputId)) {\r\n var elementType = getElement(inputId).tagName;\r\n var destError = false;\r\n switch(elementType){\r\n case 'SELECT':\r\n if (getElement(inputId).selectedIndex === 0) {\r\n destError = true;\r\n }\r\n break; \r\n case 'INPUT':\r\n if (getElement(inputId).value.trim().length === 0 || getElement(inputId).value === \"Destination\") {\r\n destError = true;\r\n }\r\n break;\r\n }\r\n if (destError) {\r\n errors.push(\"Please ensure that you have chosen a location\"); \r\n retVal = false;\r\n\r\n flightSearchContainer.classList.add(\"flightsearch-container--destination-error\");\r\n flightSearchContainer.classList.add(\"flightsearch-container--had-destination-error\"); \r\n }\r\n }\r\n if (getElement(departDate)) {\r\n var today = new Date();\r\n var fromDate = {};\r\n if (getElement(departDate).value.trim().length === 10) { \r\n today = getDateFromIsoDateString(convertToTenDigitDateString(today.getFullYear(), today.getMonth() + 1, today.getDate()));\r\n fromDate = new Date(getElement(departDate).value.substr(6, 4), getElement(departDate).value.substr(3, 2) - 1, getElement(departDate).value.substr(0, 2));\r\n if (fromDate < today) {\r\n //CHECK THAT THE START DATE IS IN THE FUTURE\r\n errors.push(\"Please ensure that the start date for your search is in the future\");\r\n retVal = false;\r\n } else if (fromDate.getDate() != parseFloat(getElement(departDate).value.substr(0, 2)) || fromDate.getMonth() + 1 != parseFloat(getElement(departDate).value.substr(3, 2)) || fromDate.getFullYear() != parseInt(getElement(departDate).value.substr(6, 4))) {\r\n //CHECK THAT THE DATE IS VALID. IF YOU ATTEMPT TO PARSE AN IMPOSSIBLE DATE IN JAVASCRIPT RATHER THAN\r\n //ERRORING IT SIMPLY ROLLS THE DAYS OVER TO THE NEXT MONTH i.e. new Date(2010,02-1,29) RETURNS 1ST MARCH\r\n errors.push(\"Please ensure that the start date does not fall on an invalid date i.e. 30th Feb\");\r\n retVal = false;\r\n }\r\n } else { \r\n errors.push(\"Please enter a start date\");\r\n retVal = false;\r\n }\r\n if (getElement(returnDate)) {\r\n if (getElement(returnDate).value.trim().length === 10) {\r\n var toDate = new Date(getElement(returnDate).value.substr(6, 4), getElement(returnDate).value.substr(3, 2) - 1, getElement(returnDate).value.substr(0, 2));\r\n if (toDate < today) {\r\n //CHECK THAT THE END DATE IS IN THE FUTURE\r\n errors.push(\"Please ensure that the end date for your search is in the future\");\r\n retVal = false;\r\n } else if (toDate < fromDate) {\r\n //CHECK THAT THE END DATE IS AFTER THE START DATE\r\n errors.push(\"Please ensure that the end date for your search is after the start date\");\r\n retVal = false;\r\n } else if (toDate.getDate() != parseFloat(getElement(returnDate).value.substr(0, 2)) || toDate.getMonth() + 1 != parseFloat(getElement(returnDate).value.substr(3, 2)) || toDate.getFullYear() != parseInt(getElement(returnDate).value.substr(6, 4))) {\r\n //CHECK THAT THE DATE IS VALID. IF YOU ATTEMPT TO PARSE AN IMPOSSIBLE DATE IN JAVASCRIPT RATHER THAN\r\n //ERRORING IT SIMPLY ROLLS THE DAYS OVER TO THE NEXT MONTH i.e. new Date(2010,02-1,29) RETURNS 1ST MARCH\r\n errors.push(\"Please ensure that the end date does not fall on an invalid date i.e. 30th Feb\");\r\n retVal = false;\r\n }\r\n } else {\r\n errors.push(\"Please enter an end date\");\r\n retVal = false;\r\n }\r\n \r\n }\r\n }\r\n if (inputId == 'locationnodeid') {\r\n var locationNodeId;\r\n if (getElement('locationnodeid') && parseInt(getElement('locationnodeid').value, 10) > 0) {\r\n locationNodeId = getElement('locationnodeid').value; \r\n var that = true;\r\n var locationValidationAjaxObj = createAjaxObj();\r\n locationValidationAjaxObj.onreadystatechange = function () {\r\n if (this.readyState === 4) {\r\n if (this.status === 200) {\r\n if (this.responseText) {\r\n locationValidation = JSON.parse(this.responseText);\r\n if (locationValidation.IsValidSearchLocation === false) {\r\n that = false;\r\n errors.push(\"The area you have searched for is too big. Please be more specific with your search.\");\r\n if (getElement('fsdestinationcountry')) {\r\n getElement('fsdestinationcountry').style.color = 'red';\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n locationValidationAjaxObj.open('GET', '/utility/validatehotellocation.aspx?locationnodeid=' + locationNodeId, false);\r\n locationValidationAjaxObj.send('');\r\n retVal = that;\r\n }\r\n }\r\n\r\n if (errors.length > 0) {\r\n var errorString = '';\r\n for (var i = 0; i < errors.length; i++) {\r\n errorString += errors[i] + '
';\r\n }\r\n if (getElement('erroroutput')) {\r\n if (errorP !== null) {\r\n errorP.parentNode.removeChild(errorP);\r\n }\r\n errorP = document.createElement('p');\r\n errorP.innerHTML = '';\r\n errorP.innerHTML = errorString;\r\n getElement('erroroutput').appendChild(errorP);\r\n getElement('erroroutput').style.visibility = 'visible';\r\n if (getElement('ctl00_topHorizontalContentHolder')) {\r\n getElement('ctl00_topHorizontalContentHolder').style.minHeight = 560 + 'px';\r\n }\r\n }\r\n }\r\n \r\n return retVal;\r\n}\r\n\r\nif (window.addEventListener) {\t\t\t\t\t\t\t\t\t\t\t\t\t\t//EXECUTED ON WINDOW LOAD/UNLOAD EVENT. ATTEMPTS FF/MOZ ETC THEN IE THEN OVERIDES window.onload/unload EVENTS\r\n window.addEventListener('load', function() { showErrorMessageForSATB(); }, false);\r\n} else if (window.attachEvent) {\r\n window.attachEvent('onload', showErrorMessageForSATB);\r\n} else {\r\n window.onload = function() { showErrorMessageForSATB(); };\r\n}\r\n\r\nfunction showErrorMessageForSATB() {\r\n if (window.location.search.indexOf('satb=true') > -1) {\r\n if ($('.fullscreen-loader')) {\r\n $('.fullscreen-loader').delay(1000).fadeOut();\r\n }\r\n manuallyShowError(\"The area you have searched for is too big. Please be more specific with your search.\");\r\n if (getElement('fsdestinationcountry')) {\r\n getElement('fsdestinationcountry').style.color = 'red';\r\n }\r\n } else if (window.location.search.indexOf('inon=true') > -1) {\r\n if ($('.fullscreen-loader')) {\r\n $('.fullscreen-loader').delay(1000).fadeOut();\r\n }\r\n manuallyShowError(\"An invalid number of nights has been entered\");\r\n } else if (window.location.search.indexOf('slnr=true') > -1) {\r\n if ($('.fullscreen-loader')) {\r\n $('.fullscreen-loader').delay(1000).fadeOut();\r\n }\r\n manuallyShowError(\"The location you search for was not recognised. Please try again.\");\r\n }\r\n}\r\n\r\nfunction manuallyShowError(msg) { \r\n if (getElement('erroroutput')) {\r\n if (errorP !== null) {\r\n errorP.parentNode.removeChild(errorP); \r\n }\r\n errorP = document.createElement('p');\r\n errorP.innerHTML = '';\r\n errorP.innerHTML = msg;\r\n getElement('erroroutput').appendChild(errorP);\r\n getElement('erroroutput').style.visibility = 'visible';\r\n if (getElement('ctl00_topHorizontalContentHolder')) {\r\n getElement('ctl00_topHorizontalContentHolder').style.minHeight = 560 + 'px';\r\n }\r\n }\r\n}\r\n\r\nfunction hideError(id) {\r\n if (id) {\r\n if (getElement(id)) {\r\n getElement('fsform').removeChild(getElement(id));\r\n }\r\n } else {\r\n if (getElement('erroroutput')) {\r\n errorP.innerHTML = \"\";\r\n getElement('erroroutput').style.visibility = 'hidden';\r\n }\r\n }\r\n}\r\n\r\nfunction convertToTenDigitDateString(fullYear, month, day) {\r\n if (day.toString().length == 1) {\r\n day = '0' + day;\r\n }\r\n if (month.toString().length == 1) {\r\n month = '0' + month;\r\n }\r\n return fullYear + '-' + month + '-' + day;\r\n}\r\n\r\nString.prototype.trim = function () {\r\n return this.replace(/^\\s*|\\s*$/g, '');\r\n};\r\n\r\nfunction createAjaxObj() {\r\n if (window.XMLHttpRequest) {\r\n return new XMLHttpRequest();\r\n } else if (window.ActiveXObject) {\r\n return new ActiveXObject('Microsoft.XMLHTTP');\r\n } else {\r\n return;\r\n }\r\n}\r\n\r\nfunction checkForMultipleLocations(locationNameInputId, showVariant) {\r\n\r\n var oneLocation = true;\r\n var locationName;\r\n var multipleLocations;\r\n var formHolder = getElement('fsform');\r\n var formActionIndexOf;\r\n var goToUrl = '';\r\n var queryStrParams = [];\r\n var currentDestinationNodeId = 0;\r\n var overrideGoToUrl = '';\r\n\r\n formActionIndexOf = formHolder.action.indexOf('?url=');\r\n\r\n if (formActionIndexOf != -1) {\r\n goToUrl = formHolder.action.substring(formActionIndexOf + 5, formHolder.action.length);\r\n }\r\n\r\n if (getElement('currentdestinationnodeid') && parseInt(getElement('currentdestinationnodeid').value, 10) !== 0) {\r\n //IF WE HAVE A LOCATION NODE ID SET IN PAGE CHECK IT AGAINST THE NODE IDS RETURNED FROM checkformultiplelocations.aspx\r\n currentDestinationNodeId = parseInt(getElement('currentdestinationnodeid').value, 10);\r\n }\r\n\r\n if (validateInputBox('flightsearchdestination', 'fsdepart', 'fsreturn')) {\r\n\r\n var destination, destinationId, currentDestination, originnodeid, fromDate, toDate, displayringaroundnumberonsubmit, fssubmit, flightClass;\r\n\r\n if (getElement(locationNameInputId) && getElement(locationNameInputId).value.trim().length > 0 && getElement('flightsearchdestinationid').value === 0) {\r\n locationName = getElement(locationNameInputId).value.trim();\r\n if (locationName.length > 0) {\r\n jQuery.ajax({\r\n url: '/utility/checkformultiplelocations.aspx?locationname=' + locationName,\r\n cache: false,\r\n error: function (msg) { throw msg; },\r\n parseJSON: function (multipleLocations) {\r\n if (typeof multipleLocations !== \"string\" || !multipleLocations) {\r\n return null;\r\n }\r\n multipleLocations = jQuery.trim(multipleLocations);\r\n if (/^[\\],:{}\\s]*$/.test(data.replace(/\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g, \"@\")\r\n .replace(/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g, \"]\")\r\n .replace(/(?:^|:|,)(?:\\s*\\[)+/g, \"\"))) {\r\n return window.JSON && window.JSON.parse ?\r\n window.JSON.parse(multipleLocations) :\r\n (new Function(\"return \" + multipleLocations))(); //jshint ignore:line\r\n } else {\r\n jQuery.error(\"Invalid JSON: \" + multipleLocations);\r\n }\r\n },\r\n success: function (multipleLocations) {\r\n\r\n if (multipleLocations.HasMultipleLocations) {\r\n if (multipleLocations.Locations.length > 0) {\r\n\r\n if (formHolder) {\r\n\r\n //I'M KEEPING THIS SWICH CASE FOR THE TIME BEING AS A FAIL OVER IN CASE WE DON'T HAVE A GOTOURL \r\n if (goToUrl === '') {\r\n switch (formHolder.action) {\r\n case 'http://www.dialaflight.com/businesstravel/duplicatelocationsearch.aspx':\r\n goToUrl = '/businesstravel/searchresults.aspx';\r\n break;\r\n case 'http://localhost:50761/businesstravel/duplicatelocationsearch.aspx':\r\n goToUrl = '/businesstravel/searchresults.aspx';\r\n break;\r\n case '/businesstravel/duplicatelocationsearch.aspx':\r\n goToUrl = '/businesstravel/searchresults.aspx';\r\n break;\r\n default:\r\n goToUrl = '/flights/searchresults.aspx';\r\n }\r\n }\r\n\r\n //*IMPORTANT*//\r\n //THE BELOW SHOLD BE EASIER TO READ AND EASIER TO USE//\r\n //WHEN YOU ADD A PARAMETER TO MULTISEARCH THAT NEEDS TO BE REFERENCED ADD IT TO THE SWITCH CASE AND THE queryStrParams BELOW. \r\n //IT WILL THEN BUILD THE URL IT NEEDS TO POINT TO \r\n\r\n for (var i = 0; i < formHolder.length - 1; i++) {\r\n if (formHolder[i].id !== \"\") {\r\n switch (formHolder[i].id) { \r\n case \"flightsearchdestination\":\r\n destination = formHolder[i].value;\r\n break;\r\n case \"flightsearchdestinationid\":\r\n destinationId = formHolder[i].value;\r\n break;\r\n case \"currentdestination\":\r\n currentDestination = formHolder[i].value;\r\n break;\r\n case \"originnodeid\":\r\n originnodeid = formHolder[i].value;\r\n break;\r\n case \"fsdepart\":\r\n fromDate = formHolder[i].value;\r\n break;\r\n case \"fsreturn\":\r\n toDate = formHolder[i].value;\r\n break;\r\n case \"displayringaroundnumberonsubmit\":\r\n displayringaroundnumberonsubmit = formHolder[i].value;\r\n break;\r\n case \"ctl00_middleContent_multiSearch_fssubmit\":\r\n fssubmit = getElement('ctl00_middleContent_multiSearch_fssubmit');\r\n break;\r\n case \"fscabin\":\r\n flightClass = formHolder[i].value;\r\n break;\r\n }\r\n }\r\n\r\n }\r\n\r\n var jsstatus = getElement('jsstatus').value;\r\n\r\n queryStrParams[0] = \"?searchtype=flights\";\r\n queryStrParams[1] = \"&class=\";\r\n queryStrParams[2] = \"&originnodeid=\" + originnodeid;\r\n queryStrParams[3] = \"&flightsearchdestination=\" + destination;\r\n queryStrParams[4] = \"&fsdepart=\" + fromDate;\r\n queryStrParams[5] = \"&fsreturn=\" + toDate;\r\n queryStrParams[6] = \"¤tdestination=\" + currentDestination;\r\n queryStrParams[7] = \"&fscabin=\" + flightClass;\r\n queryStrParams[8] = \"&displayringaroundnumberonsubmit=\" + displayringaroundnumberonsubmit;\r\n queryStrParams[9] = \"&jsstatus=\" + jsstatus;\r\n\r\n for (var j = 0; j < queryStrParams.length; j++) {\r\n goToUrl += queryStrParams[j];\r\n }\r\n\r\n }\r\n\r\n var multilocationsHolder = document.createElement('div');\r\n multilocationsHolder.className = 'selectdestination';\r\n multilocationsHolder.id = 'selectdestination';\r\n\r\n var destinationAirportText = document.createElement('p');\r\n var closelink = document.createElement('a');\r\n var closeIcon = document.createElement('img');\r\n\r\n closeIcon.src = '/images/structure/closeicon.gif';\r\n closeIcon.width = 15;\r\n closeIcon.height = 15;\r\n closeIcon.alt = 'close';\r\n\r\n closelink.href = 'javascript:hideError(\"selectdestination\");';\r\n\r\n destinationAirportText.innerHTML = 'We found more than one match for ' + destination + '.
Please choose your destination:';\r\n\r\n closelink.appendChild(closeIcon);\r\n multilocationsHolder.appendChild(closelink);\r\n multilocationsHolder.appendChild(destinationAirportText);\r\n\r\n for (var a = 0; a < multipleLocations.Locations.length; a++) {\r\n var otherAirports = document.createElement('a');\r\n\r\n otherAirports.href = goToUrl + '&flightsearchdestinationid=' + multipleLocations.Locations[a].NodeId;\r\n\r\n otherAirports.innerHTML = multipleLocations.Locations[a].FullLocationName + '
';\r\n\r\n multilocationsHolder.appendChild(otherAirports);\r\n\r\n if (parseInt(multipleLocations.Locations[a].NodeId, 10) === currentDestinationNodeId) {\r\n overrideGoToUrl = goToUrl;\r\n break;\r\n }\r\n }\r\n\r\n if (overrideGoToUrl.length > 0) {\r\n if (showVariant) {\r\n getElement('fsform').action = '/flights/searchresults.aspx?showvariant=true&';\r\n } else {\r\n getElement('fsform').action = '/flights/searchresults.aspx';\r\n } \r\n getElement('fsform').submit();\r\n } else {\r\n document.getElementById('fsform').appendChild(multilocationsHolder);\r\n }\r\n }\r\n } else {\r\n //CHANGE THE SUBMIT URL AS WE NO LONGER NEED TO GO VIA THE duplicatelocationsearch.aspx PAGE\r\n if (getElement('keyPressEnter').value == 'N') {\r\n if (showVariant) {\r\n getElement('fsform').action = '/flights/searchresults.aspx?showvariant=true&';\r\n } else {\r\n getElement('fsform').action = '/flights/searchresults.aspx';\r\n }\r\n getElement('fsform').submit();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n } else {\r\n //CHANGE THE SUBMIT URL AS WE NO LONGER NEED TO GO VIA THE duplicatelocationsearch.aspx PAGE\r\n if (getElement('keyPressEnter').value == 'N' || !$('#fsdepart')) {\r\n if (showVariant) {\r\n getElement('fsform').action = '/flights/searchresults.aspx?showvariant=true&';\r\n } else {\r\n getElement('fsform').action = '/flights/searchresults.aspx';\r\n }\r\n getElement('fsform').submit();\r\n }\r\n } \r\n }\r\n}\r\n\r\nfunction displayHotelSearch(bedsLocationNodeid, name) {\r\n\r\n var searchcontainer = document.getElementById(\"hiddenhotelsearchcontainer\");\r\n var locationName = document.getElementById(\"bedslocationtext\");\r\n var locationNodeId = document.getElementById(\"locationnodeid\");\r\n var searchdestination = document.getElementById(\"searchdestination\");\r\n var hotelsearchinfoholder = document.getElementById(\"hotelsearchinfoholder\");\r\n\r\n if (searchdestination) {\r\n searchdestination.innerHTML = name + \" \";\r\n if (hotelsearchinfoholder) {\r\n hotelsearchinfoholder.style.display = 'block';\r\n }\r\n }\r\n\r\n if (locationName) {\r\n locationName.value = name;\r\n }\r\n\r\n if (locationNodeId && bedsLocationNodeid > 0) {\r\n locationNodeId.value = bedsLocationNodeid;\r\n }\r\n}\r\n\r\n$(document).ready(function () {\r\n //CheckURLForVariant();\r\n AnimateBirdSprite();\r\n});\r\n\r\nvar _webnodeid, _phoneA, _phoneB;\r\n\r\nfunction setVariantWebNodeId(a) { _webnodeid = a; }\r\nfunction setVariantPhoneA(a) { _phoneA = a; }\r\nfunction setVariantPhoneB(a) { _phoneB = a; }\r\n\r\nfunction CheckURLForVariant() {\r\n //CHECK IF ORLANDO\r\n if (_webnodeid === 1098) {\r\n var url = window.location.href;\r\n var _interval;\r\n\r\n if (url.indexOf(\"showvariant=true\") > 0) {\r\n $('.special-offer-fares__image').animate({ opacity: 1 }, 300);\r\n $('.special-offer-fares__text').css({ opacity: 0 }).delay(3000).animate({ opacity: 1 }, 300, function () {\r\n $('.special-offer-fares__image').animate({ opacity: 0 }, 300, function () {\r\n $('.special-offer-fares__image').css({ display: 'none' });\r\n clearInterval(_interval);\r\n });\r\n });\r\n\r\n _interval = setInterval(function () {\r\n $('.humming-bird-sprite').toggleClass('active');\r\n }, 94);\r\n\r\n $('.foreground-content .telnumber').text(_phoneB);\r\n } else {\r\n $('.foreground-content .telnumber').text(_phoneA);\r\n $('.fullscreen-loader .telnumber').text(_phoneA);\r\n }\r\n }\r\n}\r\n\r\nfunction AnimateBirdSprite() {\r\n var url = window.location.href;\r\n var _interval;\r\n\r\n\r\n $('.special-offer-fares__image').animate({ opacity: 1 }, 300);\r\n $('.special-offer-fares__text').css({ opacity: 0 }).delay(3000).animate({ opacity: 1 }, 300, function () {\r\n $('.special-offer-fares__image').animate({ opacity: 0 }, 300, function () {\r\n $('.special-offer-fares__image').css({ display: 'none' });\r\n clearInterval(_interval);\r\n });\r\n });\r\n\r\n _interval = setInterval(function () {\r\n $('.humming-bird-sprite').toggleClass('active');\r\n }, 94);\r\n}","//var responsiveHomepage = (function () {\r\n// 'use strict';\r\n\r\n// var functionality = {\r\n// mobileHeader : $('.mobile-header'),\r\n// toggleMenu: toggleMenu\r\n// };\r\n\r\n// return functionality;\r\n\r\n// function toggleMenu(side) {\r\n// var opposite = '';\r\n// opposite = (side === 'left') ? 'right' : 'left';\r\n\r\n// if (!functionality.mobileHeader.hasClass('mobile-header--active-' + side)) {\r\n// functionality.mobileHeader.addClass('mobile-header--active-' + side).removeClass('mobile-header--active-' + opposite);\r\n// } else {\r\n// functionality.mobileHeader.removeClass('mobile-header--active-' + side);\r\n// }\r\n// }\r\n//})();\r\n\r\n//homepage\r\n\r\nfunction toggleMenu(side) {\r\n var mobileHeader = $('.mobile-header');\r\n var opposite = '';\r\n opposite = (side === 'left') ? 'right' : 'left';\r\n\r\n if (!mobileHeader.hasClass('mobile-header--active-' + side)) {\r\n mobileHeader.addClass('mobile-header--active-' + side).removeClass('mobile-header--active-' + opposite);\r\n } else {\r\n mobileHeader.removeClass('mobile-header--active-' + side);\r\n }\r\n}\r\n\r\nfunction hideAllMenus() {\r\n // prevent errors\r\n}\r\n\r\n//flightsearch\r\n\r\nvar jqDP_DATE_FORMAT_STRING = 'dd/mm/yy';\r\n\r\nif ($('#fsdepart')) {\r\n var datepickerOptionsDepart = {\r\n onSelect: function (date) {\r\n var dateString = date.split('/');\r\n var dateObj = new Date(dateString[2] + '/' + dateString[1] + '/' + (+dateString[0]));\r\n console.log('in seven days', dateObj);\r\n $(\"#fsreturn\").datepicker(\"setDate\", new Date(dateObj.getFullYear(), dateObj.getMonth(), dateObj.getDate() + 7));\r\n },\r\n minDate: 1, //TODAY\r\n maxDate: 365, //1 YEAR IN THE FUTURE\r\n dateFormat: jqDP_DATE_FORMAT_STRING,\r\n prevText: 'Earlier',\r\n nextText: 'Later',\r\n duration: 10,\r\n gotoCurrent: true,\r\n numberOfMonths: 2,\r\n dayNamesMin: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"]\r\n };\r\n\r\n var datepickerOptionsReturn = {\r\n minDate: 1, //TODAY\r\n maxDate: 365, //1 YEAR IN THE FUTURE\r\n dateFormat: jqDP_DATE_FORMAT_STRING,\r\n prevText: 'Earlier',\r\n nextText: 'Later',\r\n duration: 10,\r\n gotoCurrent: true,\r\n numberOfMonths: 2,\r\n dayNamesMin: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"]\r\n };\r\n\r\n $(document).ready(function () {\r\n if ($('#fsdepart').length) {\r\n $('#fsdepart').datepicker(datepickerOptionsDepart);\r\n $('#fsreturn').datepicker(datepickerOptionsReturn);\r\n }\r\n });\r\n\r\n}","(function () {\r\n\r\n LotusGroup = {\r\n\r\n Verticals: {\r\n Flights: 'Flights',\r\n Hotels: 'Hotels',\r\n Cars: 'Cars',\r\n Tours: 'Tours'\r\n },\r\n\r\n Utility: {\r\n\r\n emailIsValid: function (emailAdd) {\r\n 'use strict';\r\n\r\n var filter;\r\n\r\n if (emailAdd) {\r\n \temailAdd = emailAdd.trim().toLowerCase();\r\n \tif (emailAdd) {\r\n \t\tfilter = /^([\\w-]+(?:\\.[\\w-]+)*)@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$/i;\r\n \t\tif (filter.test(emailAdd)) {\r\n \t\t\treturn true;\r\n \t\t}\r\n \t}\r\n }\r\n\r\n return false;\r\n\r\n },\r\n\r\n subscribeToPriceAlert: function (emailAddressEl, feedbackParentEl) {\r\n 'use strict';\r\n\r\n var ajaxObj, emailAddress, feedbackStatus, jsonResponse;\r\n\r\n emailAddress = emailAddressEl.value;\r\n\r\n if (LotusGroup.DOM.el('emailstatus')) {\r\n feedbackStatus = LotusGroup.DOM.el('emailstatus');\r\n } else {\r\n feedbackStatus = LotusGroup.DOM.createElement('span', 'emailstatus');\r\n }\r\n\r\n if (this.emailIsValid(emailAddress)) {\r\n ajaxObj = LotusGroup.AJAX.createAjaxObj();\r\n ajaxObj.onreadystatechange = function () {\r\n if (this.readyState === 4) {\r\n if (this.status === 200 && this.responseText) {\r\n try {\r\n jsonResponse = JSON.parse(this.responseText).Status;\r\n } catch (ignore) { }\r\n } else if (this.status === 500) {\r\n jsonResponse = 'There was a problem adding your email address. Please try again.';\r\n }\r\n emailAddressEl.value = '';\r\n feedbackStatus.innerHTML = jsonResponse;\r\n feedbackParentEl.appendChild(feedbackStatus);\r\n }\r\n };\r\n ajaxObj.open('GET', '/addemailaddress.aspx?txtemail=' + emailAddress.toLowerCase() + '&cachekiller=' + LotusGroup.AJAX.cacheKiller(), true);\r\n ajaxObj.send('');\r\n } else {\r\n emailAddressEl.value = '';\r\n feedbackStatus.innerHTML = 'Invalid email address';\r\n feedbackParentEl.appendChild(feedbackStatus);\r\n }\r\n\r\n return false;\r\n },\r\n\r\n emptyTextFieldDefaultText: function (id) {\r\n 'use strict';\r\n\r\n var element;\r\n\r\n element = LotusGroup.DOM.el(id);\r\n\r\n if (element && element.value.toUpperCase() === element.defaultValue.toUpperCase()) {\r\n element.value = '';\r\n }\r\n },\r\n\r\n shareAPage: function (url, offerText, emailAddressEl, feedbackParentEl) {\r\n 'use strict';\r\n\r\n var ajaxObj, emailAddress, feedbackStatus, jsonResponse;\r\n\r\n emailAddress = emailAddressEl.value;\r\n\r\n if (LotusGroup.DOM.el('emailstatus')) {\r\n feedbackStatus = LotusGroup.DOM.el('emailstatus');\r\n } else {\r\n feedbackStatus = LotusGroup.DOM.createElement('span', 'emailstatus');\r\n }\r\n\r\n if (url.length > 0 && offerText.length > 0) {\r\n if (this.emailIsValid(emailAddress)) {\r\n ajaxObj = LotusGroup.AJAX.createAjaxObj();\r\n ajaxObj.onreadystatechange = function () {\r\n if (this.readyState === 4) {\r\n if (this.status === 200 && this.responseText) {\r\n try {\r\n jsonResponse = JSON.parse(this.responseText).Status;\r\n } catch (ignore) { }\r\n } else if (this.status === 500) {\r\n jsonResponse = 'There was a problem sharing this page. Please try again.';\r\n }\r\n emailAddressEl.value = '';\r\n feedbackStatus.innerHTML = jsonResponse;\r\n feedbackParentEl.appendChild(feedbackStatus);\r\n }\r\n };\r\n ajaxObj.open('POST', '/utility/shareapage.aspx?method=recommendation&cachekiller=' + LotusGroup.AJAX.cacheKiller(), true);\r\n ajaxObj.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\r\n ajaxObj.send('email=' + emailAddress + '&url=' + url + '&offertext=' + offerText);\r\n } else {\r\n emailAddressEl.value = '';\r\n feedbackStatus.innerHTML = 'Invalid email address';\r\n feedbackParentEl.appendChild(feedbackStatus);\r\n }\r\n } else {\r\n emailAddressEl.value = '';\r\n feedbackStatus.innerHTML = 'Invalid URL';\r\n feedbackParentEl.appendChild(feedbackStatus);\r\n }\r\n\r\n return false;\r\n },\r\n\r\n openWindow: function (url, target, winW, winH, posX, posY) {\r\n 'use strict';\r\n\r\n return window.open(url, target, 'toolbar=no,menubar=no,location=no,scrollbars=yes,status=no,screenX=' + posX + ',screenY=' + posY + ',left=' + posX + ',top=' + posY + ',width=' + winW + ',height=' + winH + ',resizable=yes');\r\n },\r\n\r\n openCardCostPopUp: function () {\r\n 'use strict';\r\n\r\n if (window.event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n\r\n var popup = document.querySelector('[data-card-cost]');\r\n\r\n popup.style.display = \"block\";\r\n\r\n document.querySelector('body').onclick = function () {\r\n if (popup.style.display == \"block\") {\r\n popup.style.display = \"none\";\r\n }\r\n };\r\n\r\n },\r\n\r\n closeCardCostPopUp: function () {\r\n 'use strict';\r\n\r\n if (window.event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n var popup = document.querySelector('[data-card-cost]');\r\n\r\n popup.style.display = \"none\";\r\n }\r\n\r\n },\r\n\r\n DOM: {\r\n\r\n el: function (id) {\r\n 'use strict';\r\n\r\n return document.getElementById(id);\r\n },\r\n\r\n toggleElementDisplay: function (id, cssDisplayValue) {\r\n 'use strict';\r\n\r\n //DO NOT CALL THIS FUNCTION FROM href AS IT DOES NOT WORK IN IE\r\n //INSTEAD CALL FROM AN onclick EVENT OR FROM ANOTHER FUNCTION\r\n\r\n var element = ('object' !== typeof id) ? LotusGroup.DOM.el(id) : id;\r\n\r\n if (element) {\r\n if (element.style.display === '') {\r\n if (cssDisplayValue !== undefined) {\r\n element.style.display = cssDisplayValue;\r\n } else {\r\n element.style.display = 'block';\r\n }\r\n } else if (element.style.display === 'block' || element.style.display === 'inline') {\r\n element.style.display = 'none';\r\n } else if (element.style.display === 'none') {\r\n if (cssDisplayValue !== undefined) {\r\n element.style.display = cssDisplayValue;\r\n } else {\r\n element.style.display = 'block';\r\n }\r\n }\r\n }\r\n return false;\r\n },\r\n\r\n showOneHideMany: function (showId, parent, showClassToAdd, hideIdsArray) {\r\n 'use strict';\r\n\r\n var element, hideIdsArrayLen;\r\n\r\n element = ('object' !== typeof id) ? LotusGroup.DOM.el(showId) : showId;\r\n\r\n if (element) {\r\n element.style.display = 'block';\r\n parent.setAttribute('class', showClassToAdd);\r\n if (hideIdsArray.length > 0) {\r\n hideIdsArrayLen = hideIdsArray.length;\r\n for (var i = 0; i < hideIdsArrayLen; i++) {\r\n LotusGroup.DOM.el(hideIdsArray[i]).style.display = 'none';\r\n LotusGroup.DOM.el(hideIdsArray[i] + 'select').removeAttribute('class');\r\n }\r\n }\r\n }\r\n return false;\r\n },\r\n\r\n toggleInnerHtml: function (id, initial, change) {\r\n 'use strict';\r\n\r\n var element = ('object' !== typeof id) ? LotusGroup.DOM.el(id) : id;\r\n\r\n if (element) {\r\n if (element.innerHTML === initial) {\r\n element.innerHTML = change;\r\n } else if (element.innerHTML === change) {\r\n element.innerHTML = initial;\r\n }\r\n }\r\n return false;\r\n },\r\n\r\n createElement: function (tagName, id, cls, attributeName, attributeValue) {\r\n 'use strict';\r\n\r\n var element = document.createElement(tagName);\r\n\r\n if (id && id.length > 0) {\r\n element.setAttribute('id', id);\r\n }\r\n if (cls && cls.length > 0) {\r\n element.setAttribute('class', cls);\r\n element.className = cls;\r\n }\r\n if (attributeName && attributeName.length > 0 && attributeValue && attributeValue.length > 0) {\r\n element.setAttribute(attributeName.toLowerCase(), attributeValue.toLowerCase());\r\n }\r\n return element;\r\n },\r\n\r\n createImg: function (src, width, height, title, id, cls, attributeName, attributeValue) {\r\n 'use strict';\r\n\r\n var element = document.createElement('img');\r\n element.src = src;\r\n element.width = width;\r\n element.height = height;\r\n if (id && id.length > 0) {\r\n element.setAttribute('id', id);\r\n }\r\n if (cls && cls.length > 0) {\r\n element.setAttribute('class', cls);\r\n element.className = cls;\r\n }\r\n if (title && title.length > 0) {\r\n element.setAttribute('title', title);\r\n }\r\n if (title && title.length > 0) {\r\n element.setAttribute('alt', title);\r\n }\r\n if (attributeName && attributeName.length > 0 && attributeValue && attributeValue.length > 0) {\r\n element.setAttribute(attributeName, attributeValue);\r\n }\r\n return element;\r\n },\r\n\r\n setHtmlSelectOptionByValue: function (el, value) {\r\n 'use strict';\r\n\r\n var options, i, optLen;\r\n\r\n if (el) {\r\n options = this.el('profileheaderimage').children;\r\n for (i = 0, optLen = options.length; i < optLen; i++) {\r\n if (options[i].value.toUpperCase() === value.toUpperCase()) {\r\n options[i].selected = 'selected';\r\n }\r\n }\r\n }\r\n },\r\n\r\n removeChild: function (parentEl, childEl) {\r\n 'use strict';\r\n\r\n if (parentEl && childEl) {\r\n this.purge(childEl);\r\n parentEl.removeChild(childEl);\r\n }\r\n\r\n },\r\n\r\n purge: function (d) {\r\n 'use strict';\r\n\r\n var a, i, l, n;\r\n\r\n if (d) {\r\n a = d.attributes;\r\n if (a) {\r\n for (i = a.length - 1; i >= 0; i -= 1) {\r\n n = a[i].name;\r\n if (typeof d[n] === 'function') {\r\n d[n] = null;\r\n }\r\n }\r\n }\r\n\r\n a = d.childNodes;\r\n if (a) {\r\n l = a.length;\r\n for (i = 0; i < l; i += 1) {\r\n this.purge(d.childNodes[i]);\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n },\r\n\r\n AJAX: {\r\n\r\n createAjaxObj: function () {\r\n 'use strict';\r\n\r\n if (window.XMLHttpRequest) {\r\n return new XMLHttpRequest();\r\n } else if (window.ActiveXObject) {\r\n return new ActiveXObject('Microsoft.XMLHTTP');\r\n }\r\n },\r\n\r\n cacheKiller: function () {\r\n 'use strict';\r\n\r\n var now = new Date();\r\n return now.getMilliseconds();\r\n }\r\n\r\n },\r\n\r\n Map: {\r\n\r\n subscribers: [],\r\n\r\n load: function (canvasId, locationDetails, zoomLevel, onMapReady) {\r\n 'use strict';\r\n\r\n var mapOptions;\r\n\r\n this.getLatLng(locationDetails, function (latLng) {\r\n mapOptions = {\r\n zoom: zoomLevel,\r\n center: latLng,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n };\r\n onMapReady(LotusGroup.Map.create(canvasId, mapOptions));\r\n });\r\n\r\n },\r\n\r\n create: function (canvasId, mapOptions) {\r\n 'use strict';\r\n\r\n if (canvasId && mapOptions) {\r\n return new google.maps.Map(LotusGroup.Map.createCanvas(canvasId), mapOptions);\r\n }\r\n\r\n },\r\n\r\n getLatLng: function (address, callback) {\r\n 'use strict';\r\n\r\n var geocoder;\r\n\r\n if (address) {\r\n if (('undefined' !== typeof address.Latitude) && ('undefined' !== typeof address.Longitude)) {\r\n callback(new google.maps.LatLng(address.Latitude, address.Longitude));\r\n } else if (address.StreetAddress) {\r\n geocoder = new google.maps.Geocoder();\r\n geocoder.geocode({ 'address': address.StreetAddress }, function (results, status) {\r\n if (status === google.maps.GeocoderStatus.OK) {\r\n callback(results[0].geometry.location);\r\n }\r\n });\r\n }\r\n }\r\n\r\n },\r\n\r\n zoomToPlottedBounds: function (gm, points) {\r\n 'use strict';\r\n\r\n var bounds, i, len;\r\n\r\n if (points.length > 0) {\r\n bounds = new google.maps.LatLngBounds();\r\n len = points.length;\r\n\r\n for (i = 0; i < len; i++) {\r\n bounds.extend(points[i]);\r\n }\r\n\r\n gm.getMap().setZoom(this.getBoundsZoomLevel(bounds, { width: gm.getWidth(), height: gm.getHeight() }));\r\n gm.getMap().setCenter(bounds.getCenter());\r\n }\r\n\r\n },\r\n\r\n getBoundsZoomLevel: function (bounds, mapDim) {\r\n 'use strict';\r\n\r\n var WORLD_DIM, ZOOM_MAX, ne, sw, latFraction, lngDiff, lngFraction, latZoom, lngZoom;\r\n\r\n WORLD_DIM = { height: 256, width: 256 };\r\n ZOOM_MAX = 21;\r\n\r\n function latRad(lat) {\r\n var sin, radX2;\r\n\r\n sin = Math.sin(lat * Math.PI / 180);\r\n radX2 = Math.log((1 + sin) / (1 - sin)) / 2;\r\n\r\n return Math.max(Math.min(radX2, Math.PI), -Math.PI) / 2;\r\n }\r\n\r\n function zoom(mapPx, worldPx, fraction) {\r\n return Math.floor(Math.log(mapPx / worldPx / fraction) / Math.LN2);\r\n }\r\n\r\n ne = bounds.getNorthEast();\r\n sw = bounds.getSouthWest();\r\n\r\n latFraction = (latRad(ne.lat()) - latRad(sw.lat())) / Math.PI;\r\n\r\n lngDiff = ne.lng() - sw.lng();\r\n lngFraction = ((lngDiff < 0) ? (lngDiff + 360) : lngDiff) / 360;\r\n\r\n latZoom = zoom(mapDim.height, WORLD_DIM.height, latFraction);\r\n lngZoom = zoom(mapDim.width, WORLD_DIM.width, lngFraction);\r\n\r\n return Math.min(latZoom, lngZoom, ZOOM_MAX);\r\n },\r\n\r\n createCanvas: function (canvasId) {\r\n 'use strict';\r\n\r\n var mightBoxDiv, closeMapTag, mapCanvasTag, opacityBox, narrow;\r\n\r\n if (!LotusGroup.DOM.el(canvasId)) {\r\n //CREATE THE MAP HOLDER\r\n mightBoxDiv = LotusGroup.DOM.createElement('div', 'mapmightbox', 'mapmightbox');\r\n closeMapTag = LotusGroup.DOM.createImg('/images/structure/close.png', 30, 30, 'Close', 'gmapclose', '', 'alt', 'Close');\r\n closeMapTag.onclick = function () {\r\n LotusGroup.Map.hide();\r\n };\r\n mapCanvasTag = LotusGroup.DOM.createElement('div', canvasId, 'map_canvas');\r\n mightBoxDiv.appendChild(closeMapTag);\r\n mightBoxDiv.appendChild(mapCanvasTag);\r\n\r\n //CREATE THE MIGHTBOX\r\n opacityBox = LotusGroup.DOM.createElement('div', 'mightboxnarrow', 'mightboxnarrowholder');\r\n opacityBox.style.visibility = 'hidden';\r\n opacityBox.appendChild(mightBoxDiv);\r\n narrow = LotusGroup.DOM.el('narrow');\r\n narrow.appendChild(opacityBox);\r\n\r\n mightBoxDiv.bubbles = false;\r\n opacityBox.bubbles = false;\r\n\r\n opacityBox.onclick = function (e) {\r\n LotusGroup.Map.hide();\r\n };\r\n\r\n mightBoxDiv.onclick = function (e) {\r\n //PREVENT CLICKS ON THIS ELEMENT FROM \r\n //TRIGGERING IT'S PARENT'S ONCLICK EVENT\r\n var event = e || window.event;\r\n try {\r\n event.cancelBubble = true;\r\n event.stopPropagation();\r\n } catch (ignore) { }\r\n };\r\n\r\n return mapCanvasTag;\r\n } else {\r\n return LotusGroup.DOM.el(canvasId);\r\n }\r\n\r\n },\r\n\r\n show: function () {\r\n 'use strict';\r\n\r\n if (LotusGroup.DOM.el('mightboxnarrow')) {\r\n LotusGroup.DOM.el('mightboxnarrow').style.visibility = 'visible';\r\n }\r\n },\r\n\r\n hide: function () {\r\n 'use strict';\r\n\r\n var i, len;\r\n\r\n if (LotusGroup.DOM.el('mightboxnarrow')) {\r\n LotusGroup.DOM.el('mightboxnarrow').style.visibility = 'hidden';\r\n }\r\n\r\n if (LotusGroup.Map.subscribers.length > 0) {\r\n len = LotusGroup.Map.subscribers.length;\r\n //CLEAR DOWN ANY subscribers' MAPS\r\n for (i = 0; i < len; i++) {\r\n if ('clearMap' in LotusGroup.Map.subscribers[i]) {\r\n LotusGroup.Map.subscribers[i].clearMap();\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n };\r\n\r\n} ());\r\n\r\n/* jshint ignore:start */\r\n\r\n/* Date Format 1.2.3\r\n * Accepts a date, a mask, or a date and a mask.\r\n * Returns a formatted version of the given date.\r\n * date defaults to the current date/time.\r\n * mask defaults to dateFormat.masks.default (\"ddd mmm dd yyyy HH:MM:ss\").\r\n */\r\nvar dateFormat = function () { var e = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\\1?|[LloSZ]|\"[^\"]*\"|'[^']*'/g, t = /\\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\\d{4})?)\\b/g, n = /[^-+\\dA-Z]/g, r = function (e, t) { e = String(e); t = t || 2; while (e.length < t) e = \"0\" + e; return e }; return function (i, s, o) { var u = dateFormat; if (arguments.length == 1 && Object.prototype.toString.call(i) == \"[object String]\" && !/\\d/.test(i)) { s = i; i = undefined } i = i ? new Date(i) : new Date; if (isNaN(i)) throw SyntaxError(\"invalid date\"); s = String(u.masks[s] || s || u.masks[\"default\"]); if (s.slice(0, 4) == \"UTC:\") { s = s.slice(4); o = true } var a = o ? \"getUTC\" : \"get\", f = i[a + \"Date\"](), l = i[a + \"Day\"](), c = i[a + \"Month\"](), h = i[a + \"FullYear\"](), p = i[a + \"Hours\"](), d = i[a + \"Minutes\"](), v = i[a + \"Seconds\"](), m = i[a + \"Milliseconds\"](), g = o ? 0 : i.getTimezoneOffset(), y = { d: f, dd: r(f), ddd: u.i18n.dayNames[l], dddd: u.i18n.dayNames[l + 7], m: c + 1, mm: r(c + 1), mmm: u.i18n.monthNames[c], mmmm: u.i18n.monthNames[c + 12], yy: String(h).slice(2), yyyy: h, h: p % 12 || 12, hh: r(p % 12 || 12), H: p, HH: r(p), M: d, MM: r(d), s: v, ss: r(v), l: r(m, 3), L: r(m > 99 ? Math.round(m / 10) : m), t: p < 12 ? \"a\" : \"p\", tt: p < 12 ? \"am\" : \"pm\", T: p < 12 ? \"A\" : \"P\", TT: p < 12 ? \"AM\" : \"PM\", Z: o ? \"UTC\" : (String(i).match(t) || [\"\"]).pop().replace(n, \"\"), o: (g > 0 ? \"-\" : \"+\") + r(Math.floor(Math.abs(g) / 60) * 100 + Math.abs(g) % 60, 4), S: [\"th\", \"st\", \"nd\", \"rd\"][f % 10 > 3 ? 0 : (f % 100 - f % 10 != 10) * f % 10] }; return s.replace(e, function (e) { return e in y ? y[e] : e.slice(1, e.length - 1) }) } }(); dateFormat.masks = { \"default\": \"ddd mmm dd yyyy HH:MM:ss\", shortDate: \"m/d/yy\", mediumDate: \"mmm d, yyyy\", longDate: \"mmmm d, yyyy\", fullDate: \"dddd, mmmm d, yyyy\", shortTime: \"h:MM TT\", mediumTime: \"h:MM:ss TT\", longTime: \"h:MM:ss TT Z\", isoDate: \"yyyy-mm-dd\", isoTime: \"HH:MM:ss\", isoDateTime: \"yyyy-mm-dd'T'HH:MM:ss\", isoUtcDateTime: \"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\" }; dateFormat.i18n = { dayNames: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"], monthNames: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\", \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"] }; Date.prototype.format = function (e, t) { return dateFormat(this, e, t) }\r\n\r\nvar JSON;if(!JSON){JSON={};}\r\n(function(){\"use strict\";function f(n){return n<10?'0'+n:n;}\r\nif(typeof Date.prototype.toJSON!=='function'){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+'-'+\r\nf(this.getUTCMonth()+1)+'-'+\r\nf(this.getUTCDate())+'T'+\r\nf(this.getUTCHours())+':'+\r\nf(this.getUTCMinutes())+':'+\r\nf(this.getUTCSeconds())+'Z':null;};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf();};}\r\nvar cx=/[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,escapable=/[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,gap,indent,meta={'\\b':'\\\\b','\\t':'\\\\t','\\n':'\\\\n','\\f':'\\\\f','\\r':'\\\\r','\"':'\\\\\"','\\\\':'\\\\\\\\'},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'\"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==='string'?c:'\\\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);})+'\"':'\"'+string+'\"';}\r\nfunction str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(key);}\r\nif(typeof rep==='function'){value=rep.call(holder,key,value);}\r\nswitch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null';}\r\ngap+=indent;partial=[];if(Object.prototype.toString.apply(value)==='[object Array]'){length=value.length;for(i=0;ib){var d=e.REVISION_CHANGES[c],f=e.REVISION_CHANGES[b];throw\"Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version (\"+d+\") or downgrade your runtime to an older version (\"+f+\").\"}throw\"Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version (\"+a[1]+\").\"}}var e={};e.VERSION=\"1.0.0\",e.COMPILER_REVISION=4,e.REVISION_CHANGES={1:\"<= 1.0.rc.2\",2:\"== 1.0.0-rc.3\",3:\"== 1.0.0-rc.4\",4:\">= 1.0.0\"},e.helpers={},e.partials={};var f=Object.prototype.toString,g=\"[object Object]\";b(/x/)&&(b=function(a){return\"function\"==typeof a&&\"[object Function]\"===f.call(a)}),e.registerHelper=function(a,b,c){if(f.call(a)===g){if(c||b)throw new e.Exception(\"Arg not supported with multiple helpers\");e.Utils.extend(this.helpers,a)}else c&&(b.not=c),this.helpers[a]=b},e.registerPartial=function(a,b){f.call(a)===g?e.Utils.extend(this.partials,a):this.partials[a]=b},e.registerHelper(\"helperMissing\",function(b){if(2===arguments.length)return a;throw new Error(\"Missing helper: '\"+b+\"'\")}),e.registerHelper(\"blockHelperMissing\",function(a,d){var f=d.inverse||function(){},g=d.fn;return b(a)&&(a=a.call(this)),a===!0?g(this):a===!1||null==a?f(this):c(a)?a.length>0?e.helpers.each(a,d):f(this):g(a)}),e.createFrame=function(a){var b={};return e.Utils.extend(b,a),b},e.logger={DEBUG:0,INFO:1,WARN:2,ERROR:3,level:3,methodMap:{0:\"debug\",1:\"info\",2:\"warn\",3:\"error\"},log:function(a,b){if(e.logger.level<=a){var c=e.logger.methodMap[a];\"undefined\"!=typeof console&&console[c]&&console[c].call(console,b)}}},e.log=function(a,b){e.logger.log(a,b)},e.registerHelper(\"each\",function(a,d){var f,g=d.fn,h=d.inverse,i=0,j=\"\";if(b(a)&&(a=a.call(this)),d.data&&(f=e.createFrame(d.data)),a&&\"object\"==typeof a)if(c(a))for(var k=a.length;k>i;i++)f&&(f.index=i),j+=g(a[i],{data:f});else for(var l in a)a.hasOwnProperty(l)&&(f&&(f.key=l),j+=g(a[l],{data:f}),i++);return 0===i&&(j=h(this)),j}),e.registerHelper(\"if\",function(a,c){return b(a)&&(a=a.call(this)),e.Utils.isEmpty(a)?c.inverse(this):c.fn(this)}),e.registerHelper(\"unless\",function(a,b){return e.helpers[\"if\"].call(this,a,{fn:b.inverse,inverse:b.fn})}),e.registerHelper(\"with\",function(a,c){return b(a)&&(a=a.call(this)),e.Utils.isEmpty(a)?void 0:c.fn(a)}),e.registerHelper(\"log\",function(a,b){var c=b.data&&null!=b.data.level?parseInt(b.data.level,10):1;e.log(c,a)});var h=function(){function a(){this.yy={}}var b={trace:function(){},yy:{},symbols_:{error:2,root:3,statements:4,EOF:5,program:6,simpleInverse:7,statement:8,openInverse:9,closeBlock:10,openBlock:11,mustache:12,partial:13,CONTENT:14,COMMENT:15,OPEN_BLOCK:16,inMustache:17,CLOSE:18,OPEN_INVERSE:19,OPEN_ENDBLOCK:20,path:21,OPEN:22,OPEN_UNESCAPED:23,CLOSE_UNESCAPED:24,OPEN_PARTIAL:25,partialName:26,partial_option0:27,inMustache_repetition0:28,inMustache_option0:29,dataName:30,param:31,STRING:32,INTEGER:33,BOOLEAN:34,hash:35,hash_repetition_plus0:36,hashSegment:37,ID:38,EQUALS:39,DATA:40,pathSegments:41,SEP:42,$accept:0,$end:1},terminals_:{2:\"error\",5:\"EOF\",14:\"CONTENT\",15:\"COMMENT\",16:\"OPEN_BLOCK\",18:\"CLOSE\",19:\"OPEN_INVERSE\",20:\"OPEN_ENDBLOCK\",22:\"OPEN\",23:\"OPEN_UNESCAPED\",24:\"CLOSE_UNESCAPED\",25:\"OPEN_PARTIAL\",32:\"STRING\",33:\"INTEGER\",34:\"BOOLEAN\",38:\"ID\",39:\"EQUALS\",40:\"DATA\",42:\"SEP\"},productions_:[0,[3,2],[6,2],[6,3],[6,2],[6,1],[6,1],[6,0],[4,1],[4,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,4],[7,2],[17,3],[17,1],[31,1],[31,1],[31,1],[31,1],[31,1],[35,1],[37,3],[26,1],[26,1],[26,1],[30,2],[21,1],[41,3],[41,1],[27,0],[27,1],[28,0],[28,2],[29,0],[29,1],[36,1],[36,2]],performAction:function(a,b,c,d,e,f){var g=f.length-1;switch(e){case 1:return new d.ProgramNode(f[g-1]);case 2:this.$=new d.ProgramNode([],f[g]);break;case 3:this.$=new d.ProgramNode(f[g-2],f[g]);break;case 4:this.$=new d.ProgramNode(f[g-1],[]);break;case 5:this.$=new d.ProgramNode(f[g]);break;case 6:this.$=new d.ProgramNode([]);break;case 7:this.$=new d.ProgramNode([]);break;case 8:this.$=[f[g]];break;case 9:f[g-1].push(f[g]),this.$=f[g-1];break;case 10:this.$=new d.BlockNode(f[g-2],f[g-1].inverse,f[g-1],f[g]);break;case 11:this.$=new d.BlockNode(f[g-2],f[g-1],f[g-1].inverse,f[g]);break;case 12:this.$=f[g];break;case 13:this.$=f[g];break;case 14:this.$=new d.ContentNode(f[g]);break;case 15:this.$=new d.CommentNode(f[g]);break;case 16:this.$=new d.MustacheNode(f[g-1][0],f[g-1][1]);break;case 17:this.$=new d.MustacheNode(f[g-1][0],f[g-1][1]);break;case 18:this.$=f[g-1];break;case 19:this.$=new d.MustacheNode(f[g-1][0],f[g-1][1],\"&\"===f[g-2][2]);break;case 20:this.$=new d.MustacheNode(f[g-1][0],f[g-1][1],!0);break;case 21:this.$=new d.PartialNode(f[g-2],f[g-1]);break;case 22:break;case 23:this.$=[[f[g-2]].concat(f[g-1]),f[g]];break;case 24:this.$=[[f[g]],null];break;case 25:this.$=f[g];break;case 26:this.$=new d.StringNode(f[g]);break;case 27:this.$=new d.IntegerNode(f[g]);break;case 28:this.$=new d.BooleanNode(f[g]);break;case 29:this.$=f[g];break;case 30:this.$=new d.HashNode(f[g]);break;case 31:this.$=[f[g-2],f[g]];break;case 32:this.$=new d.PartialNameNode(f[g]);break;case 33:this.$=new d.PartialNameNode(new d.StringNode(f[g]));break;case 34:this.$=new d.PartialNameNode(new d.IntegerNode(f[g]));break;case 35:this.$=new d.DataNode(f[g]);break;case 36:this.$=new d.IdNode(f[g]);break;case 37:f[g-2].push({part:f[g],separator:f[g-1]}),this.$=f[g-2];break;case 38:this.$=[{part:f[g]}];break;case 41:this.$=[];break;case 42:f[g-1].push(f[g]);break;case 45:this.$=[f[g]];break;case 46:f[g-1].push(f[g])}},table:[{3:1,4:2,8:3,9:4,11:5,12:6,13:7,14:[1,8],15:[1,9],16:[1,11],19:[1,10],22:[1,12],23:[1,13],25:[1,14]},{1:[3]},{5:[1,15],8:16,9:4,11:5,12:6,13:7,14:[1,8],15:[1,9],16:[1,11],19:[1,10],22:[1,12],23:[1,13],25:[1,14]},{5:[2,8],14:[2,8],15:[2,8],16:[2,8],19:[2,8],20:[2,8],22:[2,8],23:[2,8],25:[2,8]},{4:19,6:17,7:18,8:3,9:4,11:5,12:6,13:7,14:[1,8],15:[1,9],16:[1,11],19:[1,20],20:[2,7],22:[1,12],23:[1,13],25:[1,14]},{4:19,6:21,7:18,8:3,9:4,11:5,12:6,13:7,14:[1,8],15:[1,9],16:[1,11],19:[1,20],20:[2,7],22:[1,12],23:[1,13],25:[1,14]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],25:[2,12]},{5:[2,13],14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],25:[2,13]},{5:[2,14],14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],25:[2,14]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],25:[2,15]},{17:22,21:23,30:24,38:[1,27],40:[1,26],41:25},{17:28,21:23,30:24,38:[1,27],40:[1,26],41:25},{17:29,21:23,30:24,38:[1,27],40:[1,26],41:25},{17:30,21:23,30:24,38:[1,27],40:[1,26],41:25},{21:32,26:31,32:[1,33],33:[1,34],38:[1,27],41:25},{1:[2,1]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],25:[2,9]},{10:35,20:[1,36]},{4:37,8:3,9:4,11:5,12:6,13:7,14:[1,8],15:[1,9],16:[1,11],19:[1,10],20:[2,6],22:[1,12],23:[1,13],25:[1,14]},{7:38,8:16,9:4,11:5,12:6,13:7,14:[1,8],15:[1,9],16:[1,11],19:[1,20],20:[2,5],22:[1,12],23:[1,13],25:[1,14]},{17:22,18:[1,39],21:23,30:24,38:[1,27],40:[1,26],41:25},{10:40,20:[1,36]},{18:[1,41]},{18:[2,41],24:[2,41],28:42,32:[2,41],33:[2,41],34:[2,41],38:[2,41],40:[2,41]},{18:[2,24],24:[2,24]},{18:[2,36],24:[2,36],32:[2,36],33:[2,36],34:[2,36],38:[2,36],40:[2,36],42:[1,43]},{21:44,38:[1,27],41:25},{18:[2,38],24:[2,38],32:[2,38],33:[2,38],34:[2,38],38:[2,38],40:[2,38],42:[2,38]},{18:[1,45]},{18:[1,46]},{24:[1,47]},{18:[2,39],21:49,27:48,38:[1,27],41:25},{18:[2,32],38:[2,32]},{18:[2,33],38:[2,33]},{18:[2,34],38:[2,34]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],25:[2,10]},{21:50,38:[1,27],41:25},{8:16,9:4,11:5,12:6,13:7,14:[1,8],15:[1,9],16:[1,11],19:[1,10],20:[2,2],22:[1,12],23:[1,13],25:[1,14]},{4:51,8:3,9:4,11:5,12:6,13:7,14:[1,8],15:[1,9],16:[1,11],19:[1,10],20:[2,4],22:[1,12],23:[1,13],25:[1,14]},{14:[2,22],15:[2,22],16:[2,22],19:[2,22],20:[2,22],22:[2,22],23:[2,22],25:[2,22]},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],25:[2,11]},{14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],25:[2,17]},{18:[2,43],21:55,24:[2,43],29:52,30:59,31:53,32:[1,56],33:[1,57],34:[1,58],35:54,36:60,37:61,38:[1,62],40:[1,26],41:25},{38:[1,63]},{18:[2,35],24:[2,35],32:[2,35],33:[2,35],34:[2,35],38:[2,35],40:[2,35]},{14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],25:[2,16]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],25:[2,19]},{5:[2,20],14:[2,20],15:[2,20],16:[2,20],19:[2,20],20:[2,20],22:[2,20],23:[2,20],25:[2,20]},{18:[1,64]},{18:[2,40]},{18:[1,65]},{8:16,9:4,11:5,12:6,13:7,14:[1,8],15:[1,9],16:[1,11],19:[1,10],20:[2,3],22:[1,12],23:[1,13],25:[1,14]},{18:[2,23],24:[2,23]},{18:[2,42],24:[2,42],32:[2,42],33:[2,42],34:[2,42],38:[2,42],40:[2,42]},{18:[2,44],24:[2,44]},{18:[2,25],24:[2,25],32:[2,25],33:[2,25],34:[2,25],38:[2,25],40:[2,25]},{18:[2,26],24:[2,26],32:[2,26],33:[2,26],34:[2,26],38:[2,26],40:[2,26]},{18:[2,27],24:[2,27],32:[2,27],33:[2,27],34:[2,27],38:[2,27],40:[2,27]},{18:[2,28],24:[2,28],32:[2,28],33:[2,28],34:[2,28],38:[2,28],40:[2,28]},{18:[2,29],24:[2,29],32:[2,29],33:[2,29],34:[2,29],38:[2,29],40:[2,29]},{18:[2,30],24:[2,30],37:66,38:[1,67]},{18:[2,45],24:[2,45],38:[2,45]},{18:[2,38],24:[2,38],32:[2,38],33:[2,38],34:[2,38],38:[2,38],39:[1,68],40:[2,38],42:[2,38]},{18:[2,37],24:[2,37],32:[2,37],33:[2,37],34:[2,37],38:[2,37],40:[2,37],42:[2,37]},{5:[2,21],14:[2,21],15:[2,21],16:[2,21],19:[2,21],20:[2,21],22:[2,21],23:[2,21],25:[2,21]},{5:[2,18],14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],25:[2,18]},{18:[2,46],24:[2,46],38:[2,46]},{39:[1,68]},{21:55,30:59,31:69,32:[1,56],33:[1,57],34:[1,58],38:[1,27],40:[1,26],41:25},{18:[2,31],24:[2,31],38:[2,31]}],defaultActions:{15:[2,1],49:[2,40]},parseError:function(a){throw new Error(a)},parse:function(a){function b(){var a;return a=c.lexer.lex()||1,\"number\"!=typeof a&&(a=c.symbols_[a]||a),a}var c=this,d=[0],e=[null],f=[],g=this.table,h=\"\",i=0,j=0,k=0;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,\"undefined\"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var l=this.lexer.yylloc;f.push(l);var m=this.lexer.options&&this.lexer.options.ranges;\"function\"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var n,o,p,q,r,s,t,u,v,w={};;){if(p=d[d.length-1],this.defaultActions[p]?q=this.defaultActions[p]:((null===n||\"undefined\"==typeof n)&&(n=b()),q=g[p]&&g[p][n]),\"undefined\"==typeof q||!q.length||!q[0]){var x=\"\";if(!k){v=[];for(s in g[p])this.terminals_[s]&&s>2&&v.push(\"'\"+this.terminals_[s]+\"'\");x=this.lexer.showPosition?\"Parse error on line \"+(i+1)+\":\\n\"+this.lexer.showPosition()+\"\\nExpecting \"+v.join(\", \")+\", got '\"+(this.terminals_[n]||n)+\"'\":\"Parse error on line \"+(i+1)+\": Unexpected \"+(1==n?\"end of input\":\"'\"+(this.terminals_[n]||n)+\"'\"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[n]||n,line:this.lexer.yylineno,loc:l,expected:v})}}if(q[0]instanceof Array&&q.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+p+\", token: \"+n);switch(q[0]){case 1:d.push(n),e.push(this.lexer.yytext),f.push(this.lexer.yylloc),d.push(q[1]),n=null,o?(n=o,o=null):(j=this.lexer.yyleng,h=this.lexer.yytext,i=this.lexer.yylineno,l=this.lexer.yylloc,k>0&&k--);break;case 2:if(t=this.productions_[q[1]][1],w.$=e[e.length-t],w._$={first_line:f[f.length-(t||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(t||1)].first_column,last_column:f[f.length-1].last_column},m&&(w._$.range=[f[f.length-(t||1)].range[0],f[f.length-1].range[1]]),r=this.performAction.call(w,h,j,i,this.yy,q[1],e,f),\"undefined\"!=typeof r)return r;t&&(d=d.slice(0,2*-1*t),e=e.slice(0,-1*t),f=f.slice(0,-1*t)),d.push(this.productions_[q[1]][0]),e.push(w.$),f.push(w._$),u=g[d[d.length-2]][d[d.length-1]],d.push(u);break;case 3:return!0}}return!0}},c=function(){var a={EOF:1,parseError:function(a,b){if(!this.yy.parser)throw new Error(a);this.yy.parser.parseError(a,b)},setInput:function(a){return this._input=a,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var b=a.match(/(?:\\r\\n?|\\n).*/g);return b?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var b=a.length,c=a.split(/(?:\\r\\n?|\\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b-1),this.offset-=b;var d=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-b]),this},more:function(){return this._more=!0,this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?\"...\":\"\")+a.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var a=this.pastInput(),b=new Array(a.length+1).join(\"-\");return a+this.upcomingInput()+\"\\n\"+b+\"^\"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,b,c,d,e;this._more||(this.yytext=\"\",this.match=\"\");for(var f=this._currentRules(),g=0;gb[0].length)||(b=c,d=g,this.options.flex));g++);return b?(e=b[0].match(/(?:\\r\\n?|\\n).*/g),e&&(this.yylineno+=e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:e?e[e.length-1].length-e[e.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],a=this.performAction.call(this,this.yy,this,f[d],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a?a:void 0):\"\"===this._input?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". Unrecognized text.\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var a=this.next();return\"undefined\"!=typeof a?a:this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(a){this.begin(a)}};return a.options={},a.performAction=function(a,b,c,d){function e(a,c){return b.yytext=b.yytext.substr(a,b.yyleng-c)}switch(c){case 0:return b.yytext=\"\\\\\",14;case 1:if(\"\\\\\"!==b.yytext.slice(-1)&&this.begin(\"mu\"),\"\\\\\"===b.yytext.slice(-1)&&(e(0,1),this.begin(\"emu\")),b.yytext)return 14;break;case 2:return 14;case 3:return\"\\\\\"!==b.yytext.slice(-1)&&this.popState(),\"\\\\\"===b.yytext.slice(-1)&&e(0,1),14;case 4:return e(0,4),this.popState(),15;case 5:return 25;case 6:return 16;case 7:return 20;case 8:return 19;case 9:return 19;case 10:return 23;case 11:return 22;case 12:this.popState(),this.begin(\"com\");break;case 13:return e(3,5),this.popState(),15;case 14:return 22;case 15:return 39;case 16:return 38;case 17:return 38;case 18:return 42;case 19:break;case 20:return this.popState(),24;case 21:return this.popState(),18;case 22:return b.yytext=e(1,2).replace(/\\\\\"/g,'\"'),32;case 23:return b.yytext=e(1,2).replace(/\\\\'/g,\"'\"),32;case 24:return 40;case 25:return 34;case 26:return 34;case 27:return 33;case 28:return 38;case 29:return b.yytext=e(1,2),38;case 30:return\"INVALID\";case 31:return 5}},a.rules=[/^(?:\\\\\\\\(?=(\\{\\{)))/,/^(?:[^\\x00]*?(?=(\\{\\{)))/,/^(?:[^\\x00]+)/,/^(?:[^\\x00]{2,}?(?=(\\{\\{|$)))/,/^(?:[\\s\\S]*?--\\}\\})/,/^(?:\\{\\{>)/,/^(?:\\{\\{#)/,/^(?:\\{\\{\\/)/,/^(?:\\{\\{\\^)/,/^(?:\\{\\{\\s*else\\b)/,/^(?:\\{\\{\\{)/,/^(?:\\{\\{&)/,/^(?:\\{\\{!--)/,/^(?:\\{\\{![\\s\\S]*?\\}\\})/,/^(?:\\{\\{)/,/^(?:=)/,/^(?:\\.(?=[}\\/ ]))/,/^(?:\\.\\.)/,/^(?:[\\/.])/,/^(?:\\s+)/,/^(?:\\}\\}\\})/,/^(?:\\}\\})/,/^(?:\"(\\\\[\"]|[^\"])*\")/,/^(?:'(\\\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=[}\\s]))/,/^(?:false(?=[}\\s]))/,/^(?:-?[0-9]+(?=[}\\s]))/,/^(?:([^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=[=}\\s\\/.])))/,/^(?:\\[[^\\]]*\\])/,/^(?:.)/,/^(?:$)/],a.conditions={mu:{rules:[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],inclusive:!1},emu:{rules:[3],inclusive:!1},com:{rules:[4],inclusive:!1},INITIAL:{rules:[0,1,2,31],inclusive:!0}},a}();return b.lexer=c,a.prototype=b,b.Parser=a,new a}();e.Parser=h,e.parse=function(a){return a.constructor===e.AST.ProgramNode?a:(e.Parser.yy=e.AST,e.Parser.parse(a))},e.AST={},e.AST.ProgramNode=function(a,b){this.type=\"program\",this.statements=a,b&&(this.inverse=new e.AST.ProgramNode(b))},e.AST.MustacheNode=function(a,b,c){this.type=\"mustache\",this.escaped=!c,this.hash=b;var d=this.id=a[0],e=this.params=a.slice(1),f=this.eligibleHelper=d.isSimple;this.isHelper=f&&(e.length||b)},e.AST.PartialNode=function(a,b){this.type=\"partial\",this.partialName=a,this.context=b},e.AST.BlockNode=function(a,b,c,d){if(a.id.original!==d.original)throw new e.Exception(a.id.original+\" doesn't match \"+d.original);this.type=\"block\",this.mustache=a,this.program=b,this.inverse=c,this.inverse&&!this.program&&(this.isInverse=!0)},e.AST.ContentNode=function(a){this.type=\"content\",this.string=a},e.AST.HashNode=function(a){this.type=\"hash\",this.pairs=a},e.AST.IdNode=function(a){this.type=\"ID\";for(var b=\"\",c=[],d=0,f=0,g=a.length;g>f;f++){var h=a[f].part;if(b+=(a[f].separator||\"\")+h,\"..\"===h||\".\"===h||\"this\"===h){if(c.length>0)throw new e.Exception(\"Invalid path: \"+b);\"..\"===h?d++:this.isScoped=!0}else c.push(h)}this.original=b,this.parts=c,this.string=c.join(\".\"),this.depth=d,this.isSimple=1===a.length&&!this.isScoped&&0===d,this.stringModeValue=this.string},e.AST.PartialNameNode=function(a){this.type=\"PARTIAL_NAME\",this.name=a.original},e.AST.DataNode=function(a){this.type=\"DATA\",this.id=a},e.AST.StringNode=function(a){this.type=\"STRING\",this.original=this.string=this.stringModeValue=a},e.AST.IntegerNode=function(a){this.type=\"INTEGER\",this.original=this.integer=a,this.stringModeValue=Number(a)},e.AST.BooleanNode=function(a){this.type=\"BOOLEAN\",this.bool=a,this.stringModeValue=\"true\"===a},e.AST.CommentNode=function(a){this.type=\"comment\",this.comment=a};var i=[\"description\",\"fileName\",\"lineNumber\",\"message\",\"name\",\"number\",\"stack\"];e.Exception=function(){for(var a=Error.prototype.constructor.apply(this,arguments),b=0;b\":\">\",'\"':\""\",\"'\":\"'\",\"`\":\"`\"},k=/[&<>\"'`]/g,l=/[&<>\"'`]/,m=function(a){return j[a]||\"&\"};e.Utils={extend:function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])},escapeExpression:function(a){return a instanceof e.SafeString?a.toString():a||0===a?(a=\"\"+a,l.test(a)?a.replace(k,m):a):\"\"},isEmpty:function(a){return a||0===a?c(a)&&0===a.length?!0:!1:!0}};var n=e.Compiler=function(){};n.prototype={compiler:n,disassemble:function(){for(var a,b,c,d=this.opcodes,e=[],f=0,g=d.length;g>f;f++)if(a=d[f],\"DECLARE\"===a.opcode)e.push(\"DECLARE \"+a.name+\"=\"+a.value);else{b=[];for(var h=0;hc;c++){var d=this.opcodes[c],e=a.opcodes[c];if(d.opcode!==e.opcode||d.args.length!==e.args.length)return!1;for(var f=0;fc;c++)if(!this.children[c].equals(a.children[c]))return!1;return!0},guid:0,compile:function(a,b){this.children=[],this.depths={list:[]},this.options=b;var c=this.options.knownHelpers;if(this.options.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,\"if\":!0,unless:!0,\"with\":!0,log:!0},c)for(var d in c)this.options.knownHelpers[d]=c[d];return this.program(a)},accept:function(a){return this[a.type](a)},program:function(a){var b,c=a.statements;this.opcodes=[];for(var d=0,e=c.length;e>d;d++)b=c[d],this[b.type](b);return this.isSimple=1===e,this.depths.list=this.depths.list.sort(function(a,b){return a-b}),this},compileProgram:function(a){var b,c=(new this.compiler).compile(a,this.options),d=this.guid++;this.usePartial=this.usePartial||c.usePartial,this.children[d]=c;for(var e=0,f=c.depths.list.length;f>e;e++)b=c.depths.list[e],2>b||this.addDepth(b-1);return d},block:function(a){var b=a.mustache,c=a.program,d=a.inverse;c&&(c=this.compileProgram(c)),d&&(d=this.compileProgram(d));var e=this.classifyMustache(b);\"helper\"===e?this.helperMustache(b,c,d):\"simple\"===e?(this.simpleMustache(b),this.opcode(\"pushProgram\",c),this.opcode(\"pushProgram\",d),this.opcode(\"emptyHash\"),this.opcode(\"blockValue\")):(this.ambiguousMustache(b,c,d),this.opcode(\"pushProgram\",c),this.opcode(\"pushProgram\",d),this.opcode(\"emptyHash\"),this.opcode(\"ambiguousBlockValue\")),this.opcode(\"append\")},hash:function(a){var b,c,d=a.pairs;this.opcode(\"pushHash\");for(var e=0,f=d.length;f>e;e++)b=d[e],c=b[1],this.options.stringParams?(c.depth&&this.addDepth(c.depth),this.opcode(\"getContext\",c.depth||0),this.opcode(\"pushStringParam\",c.stringModeValue,c.type)):this.accept(c),this.opcode(\"assignToHash\",b[0]);this.opcode(\"popHash\")},partial:function(a){var b=a.partialName;this.usePartial=!0,a.context?this.ID(a.context):this.opcode(\"push\",\"depth0\"),this.opcode(\"invokePartial\",b.name),this.opcode(\"append\")},content:function(a){this.opcode(\"appendContent\",a.string)},mustache:function(a){var b=this.options,c=this.classifyMustache(a);\"simple\"===c?this.simpleMustache(a):\"helper\"===c?this.helperMustache(a):this.ambiguousMustache(a),a.escaped&&!b.noEscape?this.opcode(\"appendEscaped\"):this.opcode(\"append\")},ambiguousMustache:function(a,b,c){var d=a.id,e=d.parts[0],f=null!=b||null!=c;this.opcode(\"getContext\",d.depth),this.opcode(\"pushProgram\",b),this.opcode(\"pushProgram\",c),this.opcode(\"invokeAmbiguous\",e,f)},simpleMustache:function(a){var b=a.id;\"DATA\"===b.type?this.DATA(b):b.parts.length?this.ID(b):(this.addDepth(b.depth),this.opcode(\"getContext\",b.depth),this.opcode(\"pushContext\")),this.opcode(\"resolvePossibleLambda\")},helperMustache:function(a,b,c){var d=this.setupFullMustacheParams(a,b,c),e=a.id.parts[0];if(this.options.knownHelpers[e])this.opcode(\"invokeKnownHelper\",d.length,e);else{if(this.options.knownHelpersOnly)throw new Error(\"You specified knownHelpersOnly, but used the unknown helper \"+e);this.opcode(\"invokeHelper\",d.length,e)}},ID:function(a){this.addDepth(a.depth),this.opcode(\"getContext\",a.depth);var b=a.parts[0];b?this.opcode(\"lookupOnContext\",a.parts[0]):this.opcode(\"pushContext\");for(var c=1,d=a.parts.length;d>c;c++)this.opcode(\"lookup\",a.parts[c])},DATA:function(a){if(this.options.data=!0,a.id.isScoped||a.id.depth)throw new e.Exception(\"Scoped data references are not supported: \"+a.original);this.opcode(\"lookupData\");for(var b=a.id.parts,c=0,d=b.length;d>c;c++)this.opcode(\"lookup\",b[c])},STRING:function(a){this.opcode(\"pushString\",a.string)},INTEGER:function(a){this.opcode(\"pushLiteral\",a.integer)},BOOLEAN:function(a){this.opcode(\"pushLiteral\",a.bool)},comment:function(){},opcode:function(a){this.opcodes.push({opcode:a,args:[].slice.call(arguments,1)})},declare:function(a,b){this.opcodes.push({opcode:\"DECLARE\",name:a,value:b})},addDepth:function(a){if(isNaN(a))throw new Error(\"EWOT\");0!==a&&(this.depths[a]||(this.depths[a]=!0,this.depths.list.push(a)))},classifyMustache:function(a){var b=a.isHelper,c=a.eligibleHelper,d=this.options;if(c&&!b){var e=a.id.parts[0];d.knownHelpers[e]?b=!0:d.knownHelpersOnly&&(c=!1)}return b?\"helper\":c?\"ambiguous\":\"simple\"},pushParams:function(a){for(var b,c=a.length;c--;)b=a[c],this.options.stringParams?(b.depth&&this.addDepth(b.depth),this.opcode(\"getContext\",b.depth||0),this.opcode(\"pushStringParam\",b.stringModeValue,b.type)):this[b.type](b)},setupMustacheParams:function(a){var b=a.params;return this.pushParams(b),a.hash?this.hash(a.hash):this.opcode(\"emptyHash\"),b},setupFullMustacheParams:function(a,b,c){var d=a.params;return this.pushParams(d),this.opcode(\"pushProgram\",b),this.opcode(\"pushProgram\",c),a.hash?this.hash(a.hash):this.opcode(\"emptyHash\"),d}},e.precompile=function(a,b){if(null==a||\"string\"!=typeof a&&a.constructor!==e.AST.ProgramNode)throw new e.Exception(\"You must pass a string or Handlebars AST to Handlebars.precompile. You passed \"+a);b=b||{},\"data\"in b||(b.data=!0);var c=e.parse(a),d=(new n).compile(c,b);return(new e.JavaScriptCompiler).compile(d,b)},e.compile=function(b,c){function d(){var d=e.parse(b),f=(new n).compile(d,c),g=(new e.JavaScriptCompiler).compile(f,c,a,!0);return e.template(g)}if(null==b||\"string\"!=typeof b&&b.constructor!==e.AST.ProgramNode)throw new e.Exception(\"You must pass a string or Handlebars AST to Handlebars.compile. You passed \"+b);c=c||{},\"data\"in c||(c.data=!0);var f;return function(a,b){return f||(f=d()),f.call(this,a,b)}};var o=function(a){this.value=a},p=e.JavaScriptCompiler=function(){};p.prototype={nameLookup:function(a,b){return/^[0-9]+$/.test(b)?a+\"[\"+b+\"]\":p.isValidJavaScriptVariableName(b)?a+\".\"+b:a+\"['\"+b+\"']\"},appendToBuffer:function(a){return this.environment.isSimple?\"return \"+a+\";\":{appendToBuffer:!0,content:a,toString:function(){return\"buffer += \"+a+\";\"}}},initializeBuffer:function(){return this.quotedString(\"\")},namespace:\"Handlebars\",compile:function(a,b,c,d){this.environment=a,this.options=b||{},e.log(e.logger.DEBUG,this.environment.disassemble()+\"\\n\\n\"),this.name=this.environment.name,this.isChild=!!c,this.context=c||{programs:[],environments:[],aliases:{}},this.preamble(),this.stackSlot=0,this.stackVars=[],this.registers={list:[]},this.compileStack=[],this.inlineStack=[],this.compileChildren(a,b);var f,g=a.opcodes;this.i=0;for(var h=g.length;this.i0&&(this.source[1]=this.source[1]+\", \"+b.join(\", \")),!this.isChild)for(var c in this.context.aliases)this.context.aliases.hasOwnProperty(c)&&(this.source[1]=this.source[1]+\", \"+c+\"=\"+this.context.aliases[c]);this.source[1]&&(this.source[1]=\"var \"+this.source[1].substring(2)+\";\"),this.isChild||(this.source[1]+=\"\\n\"+this.context.programs.join(\"\\n\")+\"\\n\"),this.environment.isSimple||this.source.push(\"return buffer;\");for(var d=this.isChild?[\"depth0\",\"data\"]:[\"Handlebars\",\"depth0\",\"helpers\",\"partials\",\"data\"],f=0,g=this.environment.depths.list.length;g>f;f++)d.push(\"depth\"+this.environment.depths.list[f]);var h=this.mergeSource();if(!this.isChild){var i=e.COMPILER_REVISION,j=e.REVISION_CHANGES[i];h=\"this.compilerInfo = [\"+i+\",'\"+j+\"'];\\n\"+h}if(a)return d.push(h),Function.apply(this,d);var k=\"function \"+(this.name||\"\")+\"(\"+d.join(\",\")+\") {\\n \"+h+\"}\";return e.log(e.logger.DEBUG,k+\"\\n\\n\"),k},mergeSource:function(){for(var b,c=\"\",d=0,e=this.source.length;e>d;d++){var f=this.source[d];f.appendToBuffer?b=b?b+\"\\n + \"+f.content:f.content:(b&&(c+=\"buffer += \"+b+\";\\n \",b=a),c+=f+\"\\n \")}return c},blockValue:function(){this.context.aliases.blockHelperMissing=\"helpers.blockHelperMissing\";var a=[\"depth0\"];this.setupParams(0,a),this.replaceStack(function(b){return a.splice(1,0,b),\"blockHelperMissing.call(\"+a.join(\", \")+\")\"})},ambiguousBlockValue:function(){this.context.aliases.blockHelperMissing=\"helpers.blockHelperMissing\";var a=[\"depth0\"];this.setupParams(0,a);var b=this.topStack();a.splice(1,0,b),a[a.length-1]=\"options\",this.source.push(\"if (!\"+this.lastHelper+\") { \"+b+\" = blockHelperMissing.call(\"+a.join(\", \")+\"); }\")},appendContent:function(a){this.source.push(this.appendToBuffer(this.quotedString(a)))},append:function(){this.flushInline();var a=this.popStack();this.source.push(\"if(\"+a+\" || \"+a+\" === 0) { \"+this.appendToBuffer(a)+\" }\"),this.environment.isSimple&&this.source.push(\"else { \"+this.appendToBuffer(\"''\")+\" }\")},appendEscaped:function(){this.context.aliases.escapeExpression=\"this.escapeExpression\",this.source.push(this.appendToBuffer(\"escapeExpression(\"+this.popStack()+\")\"))},getContext:function(a){this.lastContext!==a&&(this.lastContext=a)},lookupOnContext:function(a){this.push(this.nameLookup(\"depth\"+this.lastContext,a,\"context\"))},pushContext:function(){this.pushStackLiteral(\"depth\"+this.lastContext)},resolvePossibleLambda:function(){this.context.aliases.functionType='\"function\"',this.replaceStack(function(a){return\"typeof \"+a+\" === functionType ? \"+a+\".apply(depth0) : \"+a})},lookup:function(a){this.replaceStack(function(b){return b+\" == null || \"+b+\" === false ? \"+b+\" : \"+this.nameLookup(b,a,\"context\")})},lookupData:function(){this.push(\"data\")},pushStringParam:function(a,b){this.pushStackLiteral(\"depth\"+this.lastContext),this.pushString(b),\"string\"==typeof a?this.pushString(a):this.pushStackLiteral(a)},emptyHash:function(){this.pushStackLiteral(\"{}\"),this.options.stringParams&&(this.register(\"hashTypes\",\"{}\"),this.register(\"hashContexts\",\"{}\"))},pushHash:function(){this.hash={values:[],types:[],contexts:[]}},popHash:function(){var b=this.hash;this.hash=a,this.options.stringParams&&(this.register(\"hashContexts\",\"{\"+b.contexts.join(\",\")+\"}\"),this.register(\"hashTypes\",\"{\"+b.types.join(\",\")+\"}\")),this.push(\"{\\n \"+b.values.join(\",\\n \")+\"\\n }\")},pushString:function(a){this.pushStackLiteral(this.quotedString(a))},push:function(a){return this.inlineStack.push(a),a},pushLiteral:function(a){this.pushStackLiteral(a)},pushProgram:function(a){null!=a?this.pushStackLiteral(this.programExpression(a)):this.pushStackLiteral(null)},invokeHelper:function(a,b){this.context.aliases.helperMissing=\"helpers.helperMissing\";var c=this.lastHelper=this.setupHelper(a,b,!0),d=this.nameLookup(\"depth\"+this.lastContext,b,\"context\");this.push(c.name+\" || \"+d),this.replaceStack(function(a){return a+\" ? \"+a+\".call(\"+c.callParams+\") \"+\": helperMissing.call(\"+c.helperMissingParams+\")\"})},invokeKnownHelper:function(a,b){var c=this.setupHelper(a,b);this.push(c.name+\".call(\"+c.callParams+\")\")},invokeAmbiguous:function(a,b){this.context.aliases.functionType='\"function\"',this.pushStackLiteral(\"{}\");var c=this.setupHelper(0,a,b),d=this.lastHelper=this.nameLookup(\"helpers\",a,\"helper\"),e=this.nameLookup(\"depth\"+this.lastContext,a,\"context\"),f=this.nextStack();\r\nthis.source.push(\"if (\"+f+\" = \"+d+\") { \"+f+\" = \"+f+\".call(\"+c.callParams+\"); }\"),this.source.push(\"else { \"+f+\" = \"+e+\"; \"+f+\" = typeof \"+f+\" === functionType ? \"+f+\".apply(depth0) : \"+f+\"; }\")},invokePartial:function(a){var b=[this.nameLookup(\"partials\",a,\"partial\"),\"'\"+a+\"'\",this.popStack(),\"helpers\",\"partials\"];this.options.data&&b.push(\"data\"),this.context.aliases.self=\"this\",this.push(\"self.invokePartial(\"+b.join(\", \")+\")\")},assignToHash:function(a){var b,c,d=this.popStack();this.options.stringParams&&(c=this.popStack(),b=this.popStack());var e=this.hash;b&&e.contexts.push(\"'\"+a+\"': \"+b),c&&e.types.push(\"'\"+a+\"': \"+c),e.values.push(\"'\"+a+\"': (\"+d+\")\")},compiler:p,compileChildren:function(a,b){for(var c,d,e=a.children,f=0,g=e.length;g>f;f++){c=e[f],d=new this.compiler;var h=this.matchExistingProgram(c);null==h?(this.context.programs.push(\"\"),h=this.context.programs.length,c.index=h,c.name=\"program\"+h,this.context.programs[h]=d.compile(c,b,this.context),this.context.environments[h]=c):(c.index=h,c.name=\"program\"+h)}},matchExistingProgram:function(a){for(var b=0,c=this.context.environments.length;c>b;b++){var d=this.context.environments[b];if(d&&d.equals(a))return b}},programExpression:function(a){if(this.context.aliases.self=\"this\",null==a)return\"self.noop\";for(var b,c=this.environment.children[a],d=c.depths.list,e=[c.index,c.name,\"data\"],f=0,g=d.length;g>f;f++)b=d[f],1===b?e.push(\"depth0\"):e.push(\"depth\"+(b-1));return(0===d.length?\"self.program(\":\"self.programWithDepth(\")+e.join(\", \")+\")\"},register:function(a,b){this.useRegister(a),this.source.push(a+\" = \"+b+\";\")},useRegister:function(a){this.registers[a]||(this.registers[a]=!0,this.registers.list.push(a))},pushStackLiteral:function(a){return this.push(new o(a))},pushStack:function(a){this.flushInline();var b=this.incrStack();return a&&this.source.push(b+\" = \"+a+\";\"),this.compileStack.push(b),b},replaceStack:function(a){var b,c=\"\",d=this.isInline();if(d){var e=this.popStack(!0);if(e instanceof o)b=e.value;else{var f=this.stackSlot?this.topStackName():this.incrStack();c=\"(\"+this.push(f)+\" = \"+e+\"),\",b=this.topStack()}}else b=this.topStack();var g=a.call(this,b);return d?((this.inlineStack.length||this.compileStack.length)&&this.popStack(),this.push(\"(\"+c+g+\")\")):(/^stack/.test(b)||(b=this.nextStack()),this.source.push(b+\" = (\"+c+g+\");\")),b},nextStack:function(){return this.pushStack()},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push(\"stack\"+this.stackSlot),this.topStackName()},topStackName:function(){return\"stack\"+this.stackSlot},flushInline:function(){var a=this.inlineStack;if(a.length){this.inlineStack=[];for(var b=0,c=a.length;c>b;b++){var d=a[b];d instanceof o?this.compileStack.push(d):this.pushStack(d)}}},isInline:function(){return this.inlineStack.length},popStack:function(a){var b=this.isInline(),c=(b?this.inlineStack:this.compileStack).pop();return!a&&c instanceof o?c.value:(b||this.stackSlot--,c)},topStack:function(a){var b=this.isInline()?this.inlineStack:this.compileStack,c=b[b.length-1];return!a&&c instanceof o?c.value:c},quotedString:function(a){return'\"'+a.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"').replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/\\u2028/g,\"\\\\u2028\").replace(/\\u2029/g,\"\\\\u2029\")+'\"'},setupHelper:function(a,b,c){var d=[];this.setupParams(a,d,c);var e=this.nameLookup(\"helpers\",b,\"helper\");return{params:d,name:e,callParams:[\"depth0\"].concat(d).join(\", \"),helperMissingParams:c&&[\"depth0\",this.quotedString(b)].concat(d).join(\", \")}},setupParams:function(a,b,c){var d,e,f,g=[],h=[],i=[];g.push(\"hash:\"+this.popStack()),e=this.popStack(),f=this.popStack(),(f||e)&&(f||(this.context.aliases.self=\"this\",f=\"self.noop\"),e||(this.context.aliases.self=\"this\",e=\"self.noop\"),g.push(\"inverse:\"+e),g.push(\"fn:\"+f));for(var j=0;a>j;j++)d=this.popStack(),b.push(d),this.options.stringParams&&(i.push(this.popStack()),h.push(this.popStack()));return this.options.stringParams&&(g.push(\"contexts:[\"+h.join(\",\")+\"]\"),g.push(\"types:[\"+i.join(\",\")+\"]\"),g.push(\"hashContexts:hashContexts\"),g.push(\"hashTypes:hashTypes\")),this.options.data&&g.push(\"data:data\"),g=\"{\"+g.join(\",\")+\"}\",c?(this.register(\"options\",g),b.push(\"options\")):b.push(g),b.join(\", \")}};for(var q=\"break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield\".split(\" \"),r=p.RESERVED_WORDS={},s=0,t=q.length;t>s;s++)r[q[s]]=!0;p.isValidJavaScriptVariableName=function(a){return!p.RESERVED_WORDS[a]&&/^[a-zA-Z_$][0-9a-zA-Z_$]+$/.test(a)?!0:!1},e.VM={template:function(a){var b={escapeExpression:e.Utils.escapeExpression,invokePartial:e.VM.invokePartial,programs:[],program:function(a,b,c){var d=this.programs[a];return c?d=e.VM.program(a,b,c):d||(d=this.programs[a]=e.VM.program(a,b)),d},merge:function(a,b){var c=a||b;return a&&b&&a!==b&&(c={},e.Utils.extend(c,b),e.Utils.extend(c,a)),c},programWithDepth:e.VM.programWithDepth,noop:e.VM.noop,compilerInfo:null};return function(c,f){f=f||{};var g,h,i=f.partial?f:e;f.partial||(g=f.helpers,h=f.partials);var j=a.call(b,i,c,g,h,f.data);return f.partial||d(b.compilerInfo),j}},programWithDepth:function(a,b,c){var d=Array.prototype.slice.call(arguments,3),e=function(a,e){return e=e||{},b.apply(this,[a,e.data||c].concat(d))};return e.program=a,e.depth=d.length,e},program:function(a,b,c){var d=function(a,d){return d=d||{},b(a,d.data||c)};return d.program=a,d.depth=0,d},noop:function(){return\"\"},invokePartial:function(b,c,d,f,g,h){var i={partial:!0,helpers:f,partials:g,data:h};if(b===a)throw new e.Exception(\"The partial \"+c+\" could not be found\");if(b instanceof Function)return b(d,i);if(e.compile)return g[c]=e.compile(b,{data:h!==a}),g[c](d,i);throw new e.Exception(\"The partial \"+c+\" could not be compiled when running in runtime-only mode\")}},e.template=e.VM.template,\"object\"==typeof module&&module.exports?module.exports=e:\"function\"==typeof define&&define.amd?define(function(){return e}):this.Handlebars=e}.call(this);\r\n\r\n/* jshint ignore:end */\r\n\r\n/* Begin Register Handlebars Helpers - These must appear AFTER the declaration of Handlebars above */\r\nHandlebars.registerHelper('each', function (arr, options) {\r\n if (arr) {\r\n if (options.inverse && !arr.length) {\r\n return options.inverse(this);\r\n }\r\n\r\n return arr.map(function (item, index) {\r\n item.$index = index;\r\n item.$count = index + 1; //1 BASED 'count' AS CANNOT DO $index+1 IN TEMPLATE\r\n item.$first = index === 0;\r\n item.$last = index === arr.length - 1;\r\n return options.fn(item);\r\n }).join('');\r\n }\r\n});\r\n\r\nHandlebars.registerHelper('hasDiscount', function () {\r\n if (this.Discount.length > 0) {\r\n return 'hasdiscount';\r\n }\r\n});\r\n\r\nHandlebars.registerHelper('escape', function () {\r\n if (this && this.Name.length > 0) {\r\n return escape(this.Name);\r\n }\r\n});\r\n/* End Handlebars Helpers */","\r\nif (!('trim' in String.prototype)) {\r\n String.prototype.trim = function () {\r\n return this.replace(/^\\s*|\\s*$/g, '');\r\n };\r\n}\r\n\r\nif (!('replaceAll' in String.prototype)) {\r\n String.prototype.replaceAll = function (find, replace) {\r\n return this.replace(new RegExp(this.sanitizeForRegExp(), 'g'), replace);\r\n };\r\n}\r\n\r\nif (!('sanitizeForRegExp' in String.prototype)) {\r\n String.prototype.sanitizeForRegExp = function () {\r\n return this.replace(/([.*+?^=!:${}()|\\[\\]\\/\\\\])/g, \"\\\\$1\");\r\n };\r\n}\r\n\r\nif (!('indexOf' in Array.prototype)) {\r\n Array.prototype.indexOf = function (elt /*, from*/) {\r\n var len = this.length >>> 0;\r\n\r\n var from = Number(arguments[1]) || 0;\r\n from = (from < 0) ? Math.ceil(from) : Math.floor(from);\r\n if (from < 0)\r\n from += len;\r\n\r\n for (; from < len; from++) {\r\n if (from in this &&\r\n this[from] === elt)\r\n return from;\r\n }\r\n return -1;\r\n };\r\n}\r\n\r\nif (!('remove' in Array.prototype)) {\r\n Array.prototype.remove = function (el /*, g*/) { //(el \"Object - Element to find\", [g \"Boolean - Global/multiple matches\"])\r\n var i, g;\r\n\r\n g = (arguments.length > 0) ? arguments[1] : false;\r\n\r\n if (g) {\r\n while (i != -1) {\r\n i = this.indexOf(el);\r\n if (i > -1) {\r\n this.splice(i, 1);\r\n }\r\n }\r\n } else {\r\n i = this.indexOf(el);\r\n if (i > -1) {\r\n this.splice(i, 1);\r\n }\r\n }\r\n };\r\n}\r\n\r\nif (!('map' in Array.prototype)) {\r\n Array.prototype.map = function (mapper, that /*opt*/) {\r\n var other = new Array(this.length);\r\n for (var i = 0, n = this.length; i < n; i++) {\r\n if (i in this) {\r\n other[i] = mapper.call(that, this[i], i, this);\r\n }\r\n }\r\n return other;\r\n };\r\n}\r\n\r\nif (!('itemExists' in Array.prototype)) {\r\n Array.prototype.itemExists = function (item) {\r\n var i, len;\r\n len = this.length;\r\n for (i = 0; i < len; i++) {\r\n if (this[i] == item) {\r\n return true;\r\n }\r\n }\r\n };\r\n}\r\n\r\nif (!('objectExists' in Array.prototype)) {\r\n Array.prototype.objectExists = function (x, prop) {\r\n var i, len;\r\n len = this.length;\r\n objectsAreSame = false;\r\n for (i = 0; i < len; i++) {\r\n if (x[prop] == this[i][prop]) {\r\n objectsAreSame = true;\r\n break;\r\n }\r\n }\r\n return objectsAreSame;\r\n };\r\n}\r\n\r\nif (!('objectIndexByProperty' in Array.prototype)) {\r\n Array.prototype.objectIndexByProperty = function (x, prop) {\r\n var i, len;\r\n len = this.length;\r\n objectIndex = -1;\r\n for (i = 0; i < len; i++) {\r\n if (x[prop] == this[i][prop]) {\r\n objectIndex = i;\r\n break;\r\n }\r\n }\r\n return objectIndex;\r\n };\r\n}\r\n\r\nif (!('itemIndex' in Array.prototype)) {\r\n Array.prototype.itemIndex = function (item) {\r\n var i, len, index;\r\n len = this.length;\r\n index = -1;\r\n for (i = 0; i < len; i++) {\r\n if (this[i] == item) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n return index;\r\n };\r\n}\r\n\r\nif (!('filter' in Array.prototype)) {\r\n Array.prototype.filter = function (fun /*, thisp*/) {\r\n //filter LOOPS THROUGH EACH ITEM IN THE ARRAY AND RETURNS \r\n //AN ARRAY OF ITEMS RETURNING TRUE FROM THE FUNCTION PARAMETER fun.\r\n var i, len, res, thisp, val;\r\n len = this.length;\r\n if (typeof fun != 'function') {\r\n throw new TypeError();\r\n }\r\n res = [];\r\n thisp = arguments[1];\r\n for (i = 0; i < len; i++) {\r\n if (i in this) {\r\n val = this[i]; // in case fun mutates this\r\n if (fun.call(thisp, val, i, this)) {\r\n res.push(val);\r\n }\r\n }\r\n }\r\n return res;\r\n };\r\n}\r\n\r\nif (!('getDayName' in Date.prototype)) {\r\n Date.prototype.getDayName = function (shortName) {\r\n var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\r\n if (shortName) {\r\n return days[this.getDay()].substr(0, 3);\r\n } else {\r\n return days[this.getDay()];\r\n }\r\n };\r\n}\r\n\r\nif (!('getMonthName' in Date.prototype)) {\r\n Date.prototype.getMonthName = function (shortName) {\r\n var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\r\n if (shortName) {\r\n return months[this.getMonth()].substr(0, 3);\r\n } else {\r\n return months[this.getMonth()];\r\n }\r\n };\r\n}\r\n\r\nif (!('getShortTime' in Date.prototype)) {\r\n Date.prototype.getShortTime = function () {\r\n var hrs, mins;\r\n hrs = (this.getHours() < 10) ? '0' + this.getHours() : this.getHours();\r\n mins = (this.getMinutes() < 10) ? '0' + this.getMinutes() : this.getMinutes();\r\n return hrs + ':' + mins;\r\n };\r\n}\r\n\r\nif (!('getDateFormatted' in Date.prototype)) {\r\n Date.prototype.getDateFormatted = function (format) {\r\n var day, mon, year, dt;\r\n switch (format) {\r\n case 'dd/MM/yyyy':\r\n day = (this.getDate() < 10) ? '0' + this.getDate() : this.getDate();\r\n mon = ((this.getMonth() + 1) < 10) ? '0' + (this.getMonth() + 1) : (this.getMonth() + 1);\r\n year = this.getFullYear();\r\n dt = day + '/' + mon + '/' + year;\r\n break;\r\n case 'dd/MM/yy':\r\n day = (this.getDate() < 10) ? '0' + this.getDate() : this.getDate();\r\n mon = ((this.getMonth() + 1) < 10) ? '0' + (this.getMonth() + 1) : (this.getMonth() + 1);\r\n year = String(this.getFullYear()).substr(2, 2);\r\n dt = day + '/' + mon + '/' + year;\r\n break;\r\n case 'dd MMMM yyyy':\r\n day = (this.getDate() < 10) ? '0' + this.getDate() : this.getDate();\r\n mon = this.getMonthName();\r\n year = this.getFullYear();\r\n dt = day + ' ' + mon + ' ' + year;\r\n break;\r\n case 'dd MMM yyyy':\r\n day = (this.getDate() < 10) ? '0' + this.getDate() : this.getDate();\r\n mon = this.getMonthName(true);\r\n year = this.getFullYear();\r\n dt = day + ' ' + mon + ' ' + year;\r\n break;\r\n }\r\n return dt;\r\n };\r\n}\r\n\r\nif (!Array.prototype.clean) {\r\n\tArray.prototype.clean = function (deleteValue) {\r\n\t\tfor (var i = 0; i < this.length; i++) {\r\n\t\t\tif (this[i] == deleteValue) {\r\n\t\t\t\tthis.splice(i, 1);\r\n\t\t\t\ti--;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this;\r\n\t};\r\n}\r\n\r\nif (!Array.prototype.removeEmptyEntries) {\r\n\tArray.prototype.removeEmptyEntries = function () {\r\n\t\treturn this.clean('');\r\n\t};\r\n}\r\n\r\nif (!Array.prototype.itemMatchingPropertyValue) {\r\n\tArray.prototype.itemMatchingPropertyValue = function (propName, propValue) {\r\n\r\n\t\t//RETURNS *FIRST* OBJECT IN THE ARRAY THAT HAS A PROPERTY NAMED propName THAT MATCHES propValue\r\n\r\n\t\t//THIS FUNCTION MUST USE THE equality (==) OPERATOR RATHER THAN THE identity (===) OPERATOR AS WE DON'T NECESSARILY \r\n\t\t//KNOW THE DATATYPE BEING USED FOR COMPARISON. FOR EXAMPLE NUMBERS BEING USED IN CODE AS Number (integers) ARE OFTEN \r\n\t\t//STORED AS STRINGS WHEN SERIALIZED TO JSON SO WE'LL OFTEN BE COMPARING 12345 == '12345'.\r\n\r\n\t\tvar i, len, objectIndex;\r\n\t\tlen = this.length;\r\n\t\tobjectIndex = -1;\r\n\t\tif (len > 0) {\r\n\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\tif (this[i][propName] == propValue) {\r\n\t\t\t\t\treturn this[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (this[propName] == propValue) {\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t};\r\n}\r\n\r\nif (!String.prototype.startsWith) {\r\n\tString.prototype.startsWith = function (searchString, position) {\r\n\t\tposition = position || 0;\r\n\t\treturn this.substr(position, searchString.length) === searchString;\r\n\t};\r\n}\r\n\r\nif (!String.prototype.endsWith) {\r\n\tString.prototype.endsWith = function (searchString, position) {\r\n\t\tvar subjectString = this.toString();\r\n\t\tif (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\r\n\t\t\tposition = subjectString.length;\r\n\t\t}\r\n\t\tposition -= searchString.length;\r\n\t\tvar lastIndex = subjectString.indexOf(searchString, position);\r\n\t\treturn lastIndex !== -1 && lastIndex === position;\r\n\t};\r\n}","var DatedFlight = (function () {\r\n\t'use strict';\r\n\r\n\treturn (function () {\r\n\r\n\t\tvar _destinationSearchedForText, _originNodeId, _destinationNodeId, _originCode, _destinationCode, _departureDate, _returnDate, _classOfTravel,\r\n _friendlyDestinationName, _isNewSearch, _airlineId, _loadingTemplateId, _loadingCompiledTemplate, _searchResultsTemplateId,\r\n _searchResultsCompiledTemplate, _resultsHtml, _resultsLoaderId, _resultsPlaceHolderId, _hasFullPackage = false, _loaderJson, _searchComplete = false, _loaderAnimComplete = false, _mainSearchJson = null,\r\n _amadeusITFareOnlySearchJson = null, _errorText;\r\n\t//\tvar _destinationSearchedForText, _originNodeId, _destinationNodeId, _originCode, _destinationCode, _departureDate, _returnDate, _classOfTravel,\r\n //_friendlyDestinationName, _isNewSearch, _airlineId, _loadingTemplateId, _loadingCompiledTemplate, _searchResultsTemplateId,\r\n //_searchResultsCompiledTemplate, _resultsHtml, _resultsLoaderId, _resultsPlaceHolderId, _packagePriceTemplateId, _packagePriceCompiledTemplate,\r\n //_packagePriceHtml, _hasFullPackage = false, _loaderJson, _searchComplete = false, _loaderAnimComplete = false, _mainSearchJson = null,\r\n //_amadeusITFareOnlySearchJson = null, _errorText;\r\n\r\n\t\tvar Search = (function () {\r\n\r\n\t\t\treturn (function () {\r\n\r\n\t\t\t\tfunction go() {\r\n \r\n\t\t\t\t // the fullscreen loader should overtake hte page here...\r\n\t\t\t\t //jQuery('body').css('overflow', 'hidden'); // fadein new full screen loader\r\n\t\t\t\t if ($('body').height() < 800) {\r\n\t\t\t\t $('.fullscreen-loader').css('overflow-y', 'scroll');\r\n\t\t\t\t }\r\n\r\n\t\t\t\t\tif (_validateSearchCriteria()) {\r\n\r\n\t\t\t\t\t\t//KICKOFF THE MAIN FLIGHT SEARCH\r\n\t\t\t\t\t _performSearch();\r\n \r\n\t\t\t\t\t\t//COMPILE TEMPLATE FOR LOADER\r\n\t\t\t\t\t\tif (_loadingCompiledTemplate === undefined) {\r\n\t\t\t\t\t\t\t_loadingCompiledTemplate = Handlebars.compile(jQuery(_loadingTemplateId).html());\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//CREATE BASIC JSON FOR \"Enjoy big savings too on hotels throughout {{DestinationName}}\"\r\n\t\t\t\t\t\t_loaderJson = JSON.parse('{\"DestinationName\":\"' + _friendlyDestinationName + '\"}');\r\n\t\t\t\t\t\tLotusGroup.DOM.el(_resultsLoaderId).innerHTML = _loadingCompiledTemplate(_loaderJson);\r\n\r\n\t\t\t\t\t\t//USE DELAY TO SHOW EACH PRELOADER AFTER A GIVEN PERIOD. THESE DELAYS ARE TOTAL ms FROM PAGE LOAD NOT CUMULATIVE\r\n\t\t\t\t\t\t//jQuery('#jsresultsloader').delay(0).fadeIn(100);\r\n\t\t\t\t\t\t//jQuery('#jshotelresultsloader').delay(2000).fadeIn(100);\r\n\t\t\t\t\t\t//jQuery('#jsgreatserviceloader').delay(6000);\r\n\r\n\t\t\t\t\t\t//jQuery('#jsgreatserviceloader').fadeIn(100, function () {\r\n\t\t\t\t\t\t//\tjQuery('#jsgreatserviceloader').delay(4000);\r\n\t\t\t\t\t\t//\tjQuery('#jsgreatserviceloader').fadeIn(0, function () {\r\n\t\t\t\t\t\t//\t _loaderAnimComplete = true;\r\n\r\n\t\t\t\t\t\t//\t //jQuery('.fullscreen-loader').fadeOut(); // fadeout new full screen loader\r\n\t\t\t\t\t\t//\t //jQuery('body').css('overflow', 'auto'); // fadeout new full screen loader\r\n\r\n\t\t\t\t\t\t//\t\tif (_searchComplete) {\r\n\t\t\t\t\t\t//\t\t\t//IF THE LOADER ANIM HAS FINISHED AND THE SEARCH IS COMPLETE, SHOW THE RESULTS\r\n\t\t\t\t\t\t//\t\t\t_displayResults();\r\n\t\t\t\t\t\t//\t\t} else if (typeof _errorText !== 'undefined' && _errorText !== undefined && _errorText !== '') {\r\n\t\t\t\t\t\t//\t\t jQuery('.fullscreen-loader').fadeOut(); // fadeout new full screen loader\r\n\t\t\t\t\t\t//\t\t jQuery('body').css('overflow', 'auto'); // fadeout new full screen loader\r\n\t\t\t\t\t\t//\t\t\tLotusGroup.DOM.el(_resultsPlaceHolderId).innerHTML = _errorText;\r\n\t\t\t\t\t\t//\t\t\t$('#latestofferscta').animate({ 'left': '0' }, 1000);\r\n\t\t\t\t\t\t//\t\t}\r\n\t\t\t\t\t\t//\t});\r\n\t\t\t\t\t //});\r\n\r\n\t\t\t\t\t\tvar myTime = setInterval(function () {\r\n\t\t\t\t\t\t _loaderAnimComplete = true;\r\n\r\n\t\t\t\t\t\t if (_searchComplete) {\r\n\t\t\t\t\t\t //IF THE LOADER ANIM HAS FINISHED AND THE SEARCH IS COMPLETE, SHOW THE RESULTS\r\n\t\t\t\t\t\t _displayResults();\r\n\t\t\t\t\t\t clearInterval(myTime);\r\n\t\t\t\t\t\t } else if (typeof _errorText !== 'undefined' && _errorText !== undefined && _errorText !== '') {\r\n\t\t\t\t\t\t jQuery('.fullscreen-loader').fadeOut(); // fadeout new full screen loader\r\n\t\t\t\t\t\t jQuery('body').css('overflow', 'auto'); // fadeout new full screen loader\r\n\t\t\t\t\t\t LotusGroup.DOM.el(_resultsPlaceHolderId).innerHTML = _errorText;\r\n\t\t\t\t\t\t //$('#latestofferscta').animate({ 'left': '0' }, 1000);\r\n\t\t\t\t\t\t clearInterval(myTime);\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t}, 300);\r\n\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction _performSearch() {\r\n\r\n\t\t\t\t\tif (_searchResultsCompiledTemplate === undefined) {\r\n\t\t\t\t\t\t_searchResultsCompiledTemplate = Handlebars.compile(jQuery(_searchResultsTemplateId).html());\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//if (_packagePriceCompiledTemplate === undefined) {\r\n\t\t\t\t\t//\t_packagePriceCompiledTemplate = Handlebars.compile(jQuery(_packagePriceTemplateId).html());\r\n\t\t\t\t\t//}\r\n\r\n\t\t\t\t\tjQuery.ajax({\r\n\t\t\t\t\t\turl: [\r\n '/utility/datedflightsearchjson.aspx?originnodeid=',\r\n _originNodeId,\r\n '&destinationnodeid=',\r\n _destinationNodeId,\r\n '&origincode=',\r\n _originCode,\r\n '&destinationcode=',\r\n _destinationCode,\r\n '&departuredate=',\r\n _departureDate,\r\n '&returndate=',\r\n _returnDate,\r\n '&class=',\r\n _classOfTravel,\r\n '&isnewsearch=',\r\n _isNewSearch,\r\n '&airlineid=',\r\n _airlineId\r\n\t\t\t\t\t\t].join(''),\r\n\t\t\t\t\t\tcache: false,\r\n\t\t\t\t\t\tsuccess: function (data) {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tif (data && !data.InvalidSearchStatus) {\r\n\t\t\t\t\t\t\t\t\t_mainSearchJson = data.SearchResults;\r\n\r\n\t\t\t\t\t\t\t\t\t_resultsHtml = _searchResultsCompiledTemplate(data.SearchResults);\r\n\t\t\t\t\t\t\t\t\t//if (data.SearchResults.Package && parseInt(data.SearchResults.Package.SellPrice, 10) > 0 && data.SearchResults.Package.Source.toUpperCase() != 'FLIGHTPRICECACHE') {\r\n\t\t\t\t\t\t\t\t\t//\t//IF THE FLIGHT PRICE SOURCE FOR THE PACKAGE IS NOT FROM THE CACHE THEN DISPLAY THE PACKAGE PRICE\r\n\t\t\t\t\t\t\t\t\t//\t_hasFullPackage = true;\r\n\t\t\t\t\t\t\t\t\t//\t_packagePriceHtml = _packagePriceCompiledTemplate(data.SearchResults);\r\n\t\t\t\t\t\t\t\t\t//} else {\r\n\t\t\t\t\t\t\t\t\t//\t_hasFullPackage = false;\r\n\t\t\t\t\t\t\t\t\t//\t_packagePriceHtml = '';\r\n\t\t\t\t\t\t\t\t\t//}\r\n\t\t\t\t\t\t\t\t\t_searchComplete = true;\r\n\t\t\t\t\t\t\t\t\tif (_loaderAnimComplete) {\r\n\t\t\t\t\t\t\t\t\t\t//IF THE LOADER ANIM HAS FINISHED AND THE SEARCH IS COMPLETE, SHOW THE RESULTS\r\n\t\t\t\t\t\t\t\t\t\t_displayResults();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t_displayInvalidSearchMessage('NoFares');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\tconsole.log(e);\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\terror: function (feedback) {\r\n\t\t\t\t\t\t jQuery('.fullscreen-loader').fadeOut(); // fadeout new full screen loader\r\n\t\t\t\t\t\t jQuery('body').css('overflow', 'auto'); // fadeout new full screen loader\r\n\t\t\t\t\t\t\tLotusGroup.DOM.el(_resultsLoaderId).innerHTML = '';\r\n\t\t\t\t\t\t\t_displayInvalidSearchMessage('NoFares');\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction _validateSearchCriteria() {\r\n\r\n\t\t\t\t\tif (_destinationSearchedForText.length > 0 && _originNodeId > 0 && _destinationNodeId > 0 && _originCode.length > 0 && _destinationCode.length > 0 && _departureDate.length > 0 && _returnDate.length > 0 && _classOfTravel.length > 0 && _friendlyDestinationName.length > 0 && _isNewSearch.length > 0 && typeof ('undefined') !== _airlineId) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction _displayResults() {\r\n\r\n\t\t\t\t\tLotusGroup.DOM.el(_resultsPlaceHolderId).innerHTML = _resultsHtml;\r\n\t\t\t\t\t//$('#latestofferscta').animate({ 'left': '0' }, 1000);\r\n\r\n\t\t\t\t\t//if (_hasFullPackage) {\r\n\t\t\t\t\t//\tLotusGroup.DOM.el('additionalproductsholder').innerHTML = _packagePriceHtml;\r\n\t\t\t\t\t//\tLotusGroup.DOM.el('additionalproducts').style.display = 'block';\r\n\t\t\t\t\t//}\r\n\r\n\t\t\t\t\tLotusGroup.DOM.el('searchagain').style.display = 'block';\r\n\t\t\t\t jQuery('.fullscreen-loader').fadeOut(); // fadeout new full screen loader\r\n\t\t\t\t jQuery('body').css('overflow', 'auto'); // fadeout new full screen loader\r\n\t\t\t\t $('#showboilerplate').click(function (e) {\r\n\t\t\t\t e.stopPropagation();\r\n\t\t\t\t $('#boilerplate').hasClass('active') ? $('#boilerplate').css('z-index', '-2') : $('#boilerplate').css('z-index', '0');\r\n\t\t\t\t $('#boilerplate').toggleClass('active');\r\n\t\t\t\t $('#boilerplate').hasClass('active') ? $('#showboilerplate').fadeOut(150).delay(10).text('Less').fadeIn(150) : $('#showboilerplate').fadeOut(150).delay(10).text('More').fadeIn(150);\r\n\t\t\t\t });\r\n\t\t\t\t $('#boilerplate').click(function (e) {\r\n\t\t\t\t e.stopPropagation();\r\n\t\t\t\t });\r\n\t\t\t\t $('body').click(function () {\r\n\t\t\t\t if ($('#boilerplate').hasClass('active')) {\r\n\t\t\t\t $('#boilerplate').css('z-index', '-2').removeClass('active');\r\n\t\t\t\t $('#showboilerplate').fadeOut(150).delay(10).text('More').fadeIn(150);\r\n\t\t\t\t }\r\n\t\t\t\t });\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction _displayInvalidSearchMessage(status) {\r\n\t\t\t\t //jQuery('.fullscreen-loader').fadeOut(); // fadeout new full screen loader\r\n\t\t\t\t //jQuery('body').css('overflow', 'auto'); // fadeout new full screen loader\r\n\r\n\t\t\t\t\tvar errorText;\r\n\r\n\t\t\t\t\tswitch (status) {\r\n\t\t\t\t\t\tcase 'NoFares':\r\n\t\t\t\t\t\t\tif (_friendlyDestinationName.length > 0) {\r\n\t\t\t\t\t\t\t errorText = 'We have some specially negotiated fares to ' + _friendlyDestinationName + ' which we are unable to display. Please call one of our travel experts on

Call us now

0330-100-2220

Calls answered in 5 seconds

';\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t errorText = 'We have some specially negotiated fares to this destination which we are unable to display. Please call one of our travel experts on

Call us now

0330-100-2220

Calls answered in 5 seconds

for more information.';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'Dates':\r\n\t\t\t\t\t\t\terrorText = 'The dates that have been submitted are invalid. Your return date must be after your departure date.';\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'DatesTooFarInFuture':\r\n\t\t\t\t\t\t\terrorText = 'The dates you have selected are too far in the future. Please check your search dates.';\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'Location':\r\n\t\t\t\t\t\t\terrorText = 'We\\'re sorry but we do not understand your flight request, please either search again or call us for more information about your desired destination.';\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'TooBig':\r\n\t\t\t\t\t\t\terrorText = 'The location searched for is too large. Please search for a smaller location for example Sydney rather than Australia.';\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase 'UnknownError':\r\n\t\t\t\t\t\t\terrorText = 'An unknown error occurred, please try again.';\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\terrorText = 'An unknown error occurred, please try again.';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (errorText.length > 0) {\r\n\t\t\t\t\t\t_errorText = errorText;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction getDebug() {\r\n\r\n\t\t\t\t\treturn { 'Primary': _mainSearchJson, 'IT': _amadeusITFareOnlySearchJson };\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\t//Public Methods\r\n\t\t\t\t\tgo: go,\r\n\t\t\t\t\tgetDebug: getDebug\r\n\t\t\t\t};\r\n\r\n\t\t\t}());\r\n\r\n\t\t}());\r\n\r\n\t\tvar SearchCriteria = (function () {\r\n\r\n\t\t\treturn (function () {\r\n\r\n\t\t\t\tfunction setDestinationSearchedForText(a) { _destinationSearchedForText = a; }\r\n\t\t\t\tfunction setOriginNodeId(a) { _originNodeId = a; }\r\n\t\t\t\tfunction setDestinationNodeId(a) { _destinationNodeId = a; }\r\n\t\t\t\tfunction setOriginCode(a) { _originCode = a; }\r\n\t\t\t\tfunction setDestinationCode(a) { _destinationCode = a; }\r\n\t\t\t\tfunction setDepartureDate(a) { _departureDate = a; }\r\n\t\t\t\tfunction setReturnDate(a) { _returnDate = a; }\r\n\t\t\t\tfunction setClassOfTravel(a) { _classOfTravel = a; }\r\n\t\t\t\tfunction setFriendlyDestinationName(a) { _friendlyDestinationName = a; }\r\n\t\t\t\tfunction setIsNewSearch(a) { _isNewSearch = a; }\r\n\t\t\t\tfunction setAirlineId(a) { _airlineId = a; }\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tsetDestinationSearchedForText: setDestinationSearchedForText,\r\n\t\t\t\t\tsetOriginNodeId: setOriginNodeId,\r\n\t\t\t\t\tsetDestinationNodeId: setDestinationNodeId,\r\n\t\t\t\t\tsetOriginCode: setOriginCode,\r\n\t\t\t\t\tsetDestinationCode: setDestinationCode,\r\n\t\t\t\t\tsetDepartureDate: setDepartureDate,\r\n\t\t\t\t\tsetReturnDate: setReturnDate,\r\n\t\t\t\t\tsetClassOfTravel: setClassOfTravel,\r\n\t\t\t\t\tsetFriendlyDestinationName: setFriendlyDestinationName,\r\n\t\t\t\t\tsetIsNewSearch: setIsNewSearch,\r\n\t\t\t\t\tsetAirlineId: setAirlineId\r\n\t\t\t\t};\r\n\r\n\t\t\t}());\r\n\r\n\t\t}());\r\n\r\n\t\tvar Config = (function () {\r\n\r\n\t\t\treturn (function () {\r\n\r\n\t\t\t\tfunction setSearchResultsTemplateId(a) { _searchResultsTemplateId = a; }\r\n\t\t\t\t//function setPackagePriceTemplateId(a) { _packagePriceTemplateId = a; }\r\n\t\t\t\tfunction setLoadingTemplateId(a) { _loadingTemplateId = a; }\r\n\t\t\t\tfunction setResultsLoaderId(a) { _resultsLoaderId = a; }\r\n\t\t\t\tfunction setResultsPlaceHolderId(a) { _resultsPlaceHolderId = a; }\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tsetSearchResultsTemplateId: setSearchResultsTemplateId,\r\n\t\t\t\t\t//setPackagePriceTemplateId: setPackagePriceTemplateId,\r\n\t\t\t\t\tsetLoadingTemplateId: setLoadingTemplateId,\r\n\t\t\t\t\tsetResultsLoaderId: setResultsLoaderId,\r\n\t\t\t\t\tsetResultsPlaceHolderId: setResultsPlaceHolderId\r\n\t\t\t\t};\r\n\r\n\t\t\t}());\r\n\r\n\t\t}());\r\n\r\n\t\tfunction go() {\r\n\r\n\t\t\tSearch.go();\r\n\r\n\t\t}\r\n\r\n\t\tfunction getDebug() {\r\n\r\n\t\t\treturn Search.getDebug();\r\n\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tgo: go,\r\n\t\t\tSearchCriteria: SearchCriteria,\r\n\t\t\tConfig: Config,\r\n\t\t\tgetDebug: getDebug\r\n\t\t};\r\n\r\n\t}());\r\n\r\n}());","/* \r\n * flowplayer.js 3.2.4. The Flowplayer API\r\n * \r\n * Copyright 2009 Flowplayer Oy\r\n * \r\n * This file is part of Flowplayer.\r\n * \r\n * Flowplayer is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n * \r\n * Flowplayer is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU General Public License for more details.\r\n * \r\n * You should have received a copy of the GNU General Public License\r\n * along with Flowplayer. If not, see .\r\n * \r\n * Date: 2010-08-25 12:48:46 +0000 (Wed, 25 Aug 2010)\r\n * Revision: 551 \r\n */\r\n(function(){function g(o){console.log(\"$f.fireEvent\",[].slice.call(o))}function k(q){if(!q||typeof q!=\"object\"){return q}var o=new q.constructor();for(var p in q){if(q.hasOwnProperty(p)){o[p]=k(q[p])}}return o}function m(t,q){if(!t){return}var o,p=0,r=t.length;if(r===undefined){for(o in t){if(q.call(t[o],o,t[o])===false){break}}}else{for(var s=t[0];p1){var t=arguments[1],q=(arguments.length==3)?arguments[2]:{};if(typeof t==\"string\"){t={src:t}}t=i({bgcolor:\"#000000\",version:[9,0],expressInstall:\"http://static.flowplayer.org/swf/expressinstall.swf\",cachebusting:true},t);if(typeof o==\"string\"){if(o.indexOf(\".\")!=-1){var s=[];m(n(o),function(){s.push(new b(this,k(t),k(q)))});return new d(s)}else{var r=c(o);return new b(r!==null?r:o,t,q)}}else{if(o){return new b(o,t,q)}}}return null};i(window.$f,{fireEvent:function(){var o=[].slice.call(arguments);var q=$f(o[0]);return q?q._fireEvent(o.slice(1)):null},addPlugin:function(o,p){b.prototype[o]=p;return $f},each:m,extend:i});if(typeof jQuery==\"function\"){jQuery.fn.flowplayer=function(q,p){if(!arguments.length||typeof arguments[0]==\"number\"){var o=[];this.each(function(){var r=$f(this);if(r){o.push(r)}});return arguments.length?o[arguments[0]]:new d(o)}return this.each(function(){$f(this,k(q),p?k(p):{})})}}})();(function(){var h=document.all,j=\"http://www.adobe.com/go/getflashplayer\",c=typeof jQuery==\"function\",e=/(\\d+)[^\\d]+(\\d+)[^\\d]*(\\d*)/,b={width:\"100%\",height:\"100%\",id:\"_\"+(\"\"+Math.random()).slice(9),allowfullscreen:true,allowscriptaccess:\"always\",quality:\"high\",version:[3,0],onFail:null,expressInstall:null,w3c:false,cachebusting:false};if(window.attachEvent){window.attachEvent(\"onbeforeunload\",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}})}function i(m,l){if(l){for(var f in l){if(l.hasOwnProperty(f)){m[f]=l[f]}}}return m}function a(f,n){var m=[];for(var l in f){if(f.hasOwnProperty(l)){m[l]=n(f[l])}}return m}window.flashembed=function(f,m,l){if(typeof f==\"string\"){f=document.getElementById(f.replace(\"#\",\"\"))}if(!f){return}if(typeof m==\"string\"){m={src:m}}return new d(f,i(i({},b),m),l)};var g=i(window.flashembed,{conf:b,getVersion:function(){var m,f;try{f=navigator.plugins[\"Shockwave Flash\"].description.slice(16)}catch(o){try{m=new ActiveXObject(\"ShockwaveFlash.ShockwaveFlash.7\");f=m&&m.GetVariable(\"$version\")}catch(n){try{m=new ActiveXObject(\"ShockwaveFlash.ShockwaveFlash.6\");f=m&&m.GetVariable(\"$version\")}catch(l){}}}f=e.exec(f);return f?[f[1],f[3]]:[0,0]},asString:function(l){if(l===null||l===undefined){return null}var f=typeof l;if(f==\"object\"&&l.push){f=\"array\"}switch(f){case\"string\":l=l.replace(new RegExp('([\"\\\\\\\\])',\"g\"),\"\\\\$1\");l=l.replace(/^\\s?(\\d+\\.?\\d+)%/,\"$1pct\");return'\"'+l+'\"';case\"array\":return\"[\"+a(l,function(o){return g.asString(o)}).join(\",\")+\"]\";case\"function\":return'\"function()\"';case\"object\":var m=[];for(var n in l){if(l.hasOwnProperty(n)){m.push('\"'+n+'\":'+g.asString(l[n]))}}return\"{\"+m.join(\",\")+\"}\"}return String(l).replace(/\\s/g,\" \").replace(/\\'/g,'\"')},getHTML:function(o,l){o=i({},o);var n='\";if(o.w3c||h){n+=''}o.width=o.height=o.id=o.w3c=o.src=null;o.onFail=o.version=o.expressInstall=null;for(var m in o){if(o[m]){n+=''}}var p=\"\";if(l){for(var f in l){if(l[f]){var q=l[f];p+=f+\"=\"+(/function|object/.test(typeof q)?g.asString(q):q)+\"&\"}}p=p.slice(0,-1);n+='\"}n+=\"\";return n},isSupported:function(f){return k[0]>f[0]||k[0]==f[0]&&k[1]>=f[1]}});var k=g.getVersion();function d(f,n,m){if(g.isSupported(n.version)){f.innerHTML=g.getHTML(n,m)}else{if(n.expressInstall&&g.isSupported([6,65])){f.innerHTML=g.getHTML(i(n,{src:n.expressInstall}),{MMredirectURL:location.href,MMplayerType:\"PlugIn\",MMdoctitle:document.title})}else{if(!f.innerHTML.replace(/\\s/g,\"\")){f.innerHTML=\"

Flash version \"+n.version+\" or greater is required

\"+(k[0]>0?\"Your version is \"+k:\"You have no flash plugin installed\")+\"

\"+(f.tagName==\"A\"?\"

Click here to download latest version

\":\"

Download latest version from here

\");if(f.tagName==\"A\"){f.onclick=function(){location.href=j}}}if(n.onFail){var l=n.onFail.call(this);if(typeof l==\"string\"){f.innerHTML=l}}}}if(h){window[n.id]=document.getElementById(n.id)}i(this,{getRoot:function(){return f},getOptions:function(){return n},getConf:function(){return m},getApi:function(){return f.firstChild}})}if(c){jQuery.tools=jQuery.tools||{version:\"3.2.4\"};jQuery.tools.flashembed={conf:b};jQuery.fn.flashembed=function(l,f){return this.each(function(){$(this).data(\"flashembed\",flashembed(this,l,f))})}}})();","/*! lazysizes - v4.0.0-rc1 */\r\n!function(a,b){var c=b(a,a.document);a.lazySizes=c,\"object\"==typeof module&&module.exports&&(module.exports=c)}(window,function(a,b){\"use strict\";if(b.getElementsByClassName){var c,d,e=b.documentElement,f=a.Date,g=a.HTMLPictureElement,h=\"addEventListener\",i=\"getAttribute\",j=a[h],k=a.setTimeout,l=a.requestAnimationFrame||k,m=a.requestIdleCallback,n=/^picture$/i,o=[\"load\",\"error\",\"lazyincluded\",\"_lazyloaded\"],p={},q=Array.prototype.forEach,r=function(a,b){return p[b]||(p[b]=new RegExp(\"(\\\\s|^)\"+b+\"(\\\\s|$)\")),p[b].test(a[i](\"class\")||\"\")&&p[b]},s=function(a,b){r(a,b)||a.setAttribute(\"class\",(a[i](\"class\")||\"\").trim()+\" \"+b)},t=function(a,b){var c;(c=r(a,b))&&a.setAttribute(\"class\",(a[i](\"class\")||\"\").replace(c,\" \"))},u=function(a,b,c){var d=c?h:\"removeEventListener\";c&&u(a,b),o.forEach(function(c){a[d](c,b)})},v=function(a,d,e,f,g){var h=b.createEvent(\"CustomEvent\");return e||(e={}),e.instance=c,h.initCustomEvent(d,!f,!g,e),a.dispatchEvent(h),h},w=function(b,c){var e;!g&&(e=a.picturefill||d.pf)?e({reevaluate:!0,elements:[b]}):c&&c.src&&(b.src=c.src)},x=function(a,b){return(getComputedStyle(a,null)||{})[b]},y=function(a,b,c){for(c=c||a.offsetWidth;ce&&(e=0),a||9>e&&m?i():k(i,e))}},C=function(a){var b,c,d=99,e=function(){b=null,a()},g=function(){var a=f.now()-c;d>a?k(g,d-a):(m||e)(e)};return function(){c=f.now(),b||(b=k(g,d))}},D=function(){var c,g,l,m,o,p,y,D,F,G,H,I,J,K,L,M=/^img$/i,N=/^iframe$/i,O=\"onscroll\"in a&&!/glebot/.test(navigator.userAgent),P=0,Q=0,R=0,S=-1,T=function(a){R--,a&&a.target&&u(a.target,T),(!a||0>R||!a.target)&&(R=0)},U=function(a,c){var d,f=a,g=\"hidden\"==x(b.body,\"visibility\")||\"hidden\"!=x(a,\"visibility\");for(F-=c,I+=c,G-=c,H+=c;g&&(f=f.offsetParent)&&f!=b.body&&f!=e;)g=(x(f,\"opacity\")||1)>0,g&&\"visible\"!=x(f,\"overflow\")&&(d=f.getBoundingClientRect(),g=H>d.left&&Gd.top-1&&FR&&(a=c.length)){f=0,S++,null==K&&(\"expand\"in d||(d.expand=e.clientHeight>500&&e.clientWidth>500?500:370),J=d.expand,K=J*d.expFactor),K>Q&&1>R&&S>2&&o>2&&!b.hidden?(Q=K,S=0):Q=o>1&&S>1&&6>R?J:P;for(;a>f;f++)if(c[f]&&!c[f]._lazyRace)if(O)if((p=c[f][i](\"data-expand\"))&&(m=1*p)||(m=Q),q!==m&&(y=innerWidth+m*L,D=innerHeight+m,n=-1*m,q=m),h=c[f].getBoundingClientRect(),(I=h.bottom)>=n&&(F=h.top)<=D&&(H=h.right)>=n*L&&(G=h.left)<=y&&(I||H||G||F)&&(d.loadHidden||\"hidden\"!=x(c[f],\"visibility\"))&&(l&&3>R&&!p&&(3>o||4>S)||U(c[f],m))){if(ba(c[f]),k=!0,R>9)break}else!k&&l&&!j&&4>R&&4>S&&o>2&&(g[0]||d.preloadAfterLoad)&&(g[0]||!p&&(I||H||G||F||\"auto\"!=c[f][i](d.sizesAttr)))&&(j=g[0]||c[f]);else ba(c[f]);j&&!k&&ba(j)}},W=B(V),X=function(a){s(a.target,d.loadedClass),t(a.target,d.loadingClass),u(a.target,Z)},Y=A(X),Z=function(a){Y({target:a.target})},$=function(a,b){try{a.contentWindow.location.replace(b)}catch(c){a.src=b}},_=function(a){var b,c=a[i](d.srcsetAttr);(b=d.customMedia[a[i](\"data-media\")||a[i](\"media\")])&&a.setAttribute(\"media\",b),c&&a.setAttribute(\"srcset\",c)},aa=A(function(a,b,c,e,f){var g,h,j,l,o,p;(o=v(a,\"lazybeforeunveil\",b)).defaultPrevented||(e&&(c?s(a,d.autosizesClass):a.setAttribute(\"sizes\",e)),h=a[i](d.srcsetAttr),g=a[i](d.srcAttr),f&&(j=a.parentNode,l=j&&n.test(j.nodeName||\"\")),p=b.firesLoad||\"src\"in a&&(h||g||l),o={target:a},p&&(u(a,T,!0),clearTimeout(m),m=k(T,2500),s(a,d.loadingClass),u(a,Z,!0)),l&&q.call(j.getElementsByTagName(\"source\"),_),h?a.setAttribute(\"srcset\",h):g&&!l&&(N.test(a.nodeName)?$(a,g):a.src=g),f&&(h||l)&&w(a,{src:g})),a._lazyRace&&delete a._lazyRace,t(a,d.lazyClass),z(function(){(!p||a.complete&&a.naturalWidth>1)&&(p?T(o):R--,X(o))},!0)}),ba=function(a){var b,c=M.test(a.nodeName),e=c&&(a[i](d.sizesAttr)||a[i](\"sizes\")),f=\"auto\"==e;(!f&&l||!c||!a.src&&!a.srcset||a.complete||r(a,d.errorClass))&&(b=v(a,\"lazyunveilread\").detail,f&&E.updateElem(a,!0,a.offsetWidth),a._lazyRace=!0,R++,aa(a,b,f,e,c))},ca=function(){if(!l){if(f.now()-p<999)return void k(ca,999);var a=C(function(){d.loadMode=3,W()});l=!0,d.loadMode=3,W(),j(\"scroll\",function(){3==d.loadMode&&(d.loadMode=2),a()},!0)}};return{_:function(){p=f.now(),c=b.getElementsByClassName(d.lazyClass),g=b.getElementsByClassName(d.lazyClass+\" \"+d.preloadClass),L=d.hFac,j(\"scroll\",W,!0),j(\"resize\",W,!0),a.MutationObserver?new MutationObserver(W).observe(e,{childList:!0,subtree:!0,attributes:!0}):(e[h](\"DOMNodeInserted\",W,!0),e[h](\"DOMAttrModified\",W,!0),setInterval(W,999)),j(\"hashchange\",W,!0),[\"focus\",\"mouseover\",\"click\",\"load\",\"transitionend\",\"animationend\",\"webkitAnimationEnd\"].forEach(function(a){b[h](a,W,!0)}),/d$|^c/.test(b.readyState)?ca():(j(\"load\",ca),b[h](\"DOMContentLoaded\",W),k(ca,2e4)),c.length?(V(),z._lsFlush()):W()},checkElems:W,unveil:ba}}(),E=function(){var a,c=A(function(a,b,c,d){var e,f,g;if(a._lazysizesWidth=d,d+=\"px\",a.setAttribute(\"sizes\",d),n.test(b.nodeName||\"\"))for(e=b.getElementsByTagName(\"source\"),f=0,g=e.length;g>f;f++)e[f].setAttribute(\"sizes\",d);c.detail.dataAttr||w(a,c.detail)}),e=function(a,b,d){var e,f=a.parentNode;f&&(d=y(a,f,d),e=v(a,\"lazybeforesizes\",{width:d,dataAttr:!!b}),e.defaultPrevented||(d=e.detail.width,d&&d!==a._lazysizesWidth&&c(a,f,e,d)))},f=function(){var b,c=a.length;if(c)for(b=0;c>b;b++)e(a[b])},g=C(f);return{_:function(){a=b.getElementsByClassName(d.autosizesClass),j(\"resize\",g)},checkElems:g,updateElem:e}}(),F=function(){F.i||(F.i=!0,E._(),D._())};return function(){var b,c={lazyClass:\"lazyload\",loadedClass:\"lazyloaded\",loadingClass:\"lazyloading\",preloadClass:\"lazypreload\",errorClass:\"lazyerror\",autosizesClass:\"lazyautosizes\",srcAttr:\"data-src\",srcsetAttr:\"data-srcset\",sizesAttr:\"data-sizes\",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0};d=a.lazySizesConfig||a.lazysizesConfig||{};for(b in c)b in d||(d[b]=c[b]);a.lazySizesConfig=d,k(function(){d.init&&F()})}(),c={cfg:d,autoSizer:E,loader:D,init:F,uP:w,aC:s,rC:t,hC:r,fire:v,gW:y,rAF:z}}});"]}