{"version":3,"sources":["plugins_manager.js","plugins/busy-messages-for-mvc.js","plugins/category-listing.js","plugins/collapsing-list.js","plugins/expand-element-on-click.js","plugins/ig-thumb-manager.js","plugins/modal-image.js","plugins/pickadate_themeSwitcher.js","plugins/product-listing.js","plugins/sideMenu.js","plugins/slick.js","plugins/stickyHeader.js","plugins/tabPanels.js","plugins/travel-passes.js"],"names":["window","_","$","ghd","plugins","_components","_resizeAwarePlugins","_scrollAwarePlugins","register","pluginName","pluginFunction","that","this","Error","pluginObject","isFunction","init","onWindowResize","push","onWindowScroll","debounce","_onWindowResize","_onWindowScroll","document","ready","c","t","_onInit","onresize","clearTimeout","setTimeout","scroll","key","call","isDesktop","Modernizr","mq","i","length","on","token","html","attr","closest","trigger","categoryListingFunc","css","maxHeight","each","idx","el","Math","max","outerHeight","topOffsetToMaxHeightMap","Map","height","children","child","hasClass","topOffset","offset","top","has","get","set","reverse","img","find","titleHeight","parent","totalHeight","topOffsetToMinHeightMap","previousHeight","h","topOffsetToMinHeightDescriptionMap","heightDescription","subcategoryDescription","$clamp","clamp","addEventListener","$li","$liChildren","toggleClass","shouldShow","$chevron","toggleVisibilityPasses","$a","location","$headers","$detail","parents","updateInstagram","index","accessToken","maxThumbs","container","getJSON","instagram","data","photos","src","append","link","caption","text","images","standard_resolution","url","likes","count","comments","modal","modalImg","captionText","srcLarge","alt","siblings","click","addClass","removeClass","$body","$menu","$mask","console","log","event","stopPropagation","toggle","homeSliderElements","slick","arrows","infinite","dots","autoplay","autoplaySpeed","draggable","swipe","_$win","_winT","scrollTop","_oldPos","_header","first","_pageWrapper","_headerH","_isDesktop","width","_handleOnWindowChange","bookingWidget","isExpanded","offsetTopMenu","margin-top","$parent","$tabComponents","linksSelector","panelsSelector","$widget","$links","$panels","off","e","$link","targetId","passes","selectedValue","val","preventDefault","split","passRef","category","href","previousTravelPass","localStorage","getItem","indexOf","parentTravelPass","animate","removeItem"],"mappings":"CAUA,SAAAA,GAEA,IAAAC,EAAAD,EAAAC,EACAC,EAAAF,EAAAE,EAEAF,EAAAG,MACAH,EAAAG,QAKAH,EAAAG,IAAAC,SAEAC,eAGAC,uBAGAC,uBAGAC,SAAA,SAAAC,EAAAC,GAEA,IAAAC,EAAAC,KAEA,GAAAD,EAAAN,YAAAI,GACA,MAAA,IAAAI,MAAA,WAAAJ,EAAA,2CAGA,IAAAK,EAAAJ,IAGA,IAAAT,EAAAc,WAAAD,EAAAE,MACA,MAAA,IAAAH,MAAA,WAAAJ,EAAA,mCAIAR,EAAAc,WAAAD,EAAAG,iBACAN,EAAAL,oBAAAY,KAAAT,GAIAR,EAAAc,WAAAD,EAAAK,iBACAR,EAAAJ,oBAAAW,KAAAT,GAGAE,EAAAN,YAAAI,GAAAK,GASAE,KAAA,WACA,IAAAL,EAAAC,KACAK,EAAAhB,EAAAmB,SAAA,WAAAT,EAAAU,mBAAA,KACAF,EAAAlB,EAAAmB,SAAA,WAAAT,EAAAW,mBAAA,KAEApB,EAAAqB,UACAC,MAAA,WArDA,IAAAC,EAAAC,EAyDAf,EAAAgB,WAzDAF,EA6DA,WAAAR,KA7DAjB,EAAA4B,SAAA,WAAAC,aAAAH,GAAAA,EAAAI,WAAAL,EAAA,MAAAA,KAiEAvB,EAAAF,GAAA+B,OAAA,WAAAZ,SAKAQ,QAAA,WACA,IAAAhB,EAAAC,KAEA,IAAA,IAAAoB,KAAArB,EAAAN,YACAM,EAAAN,YAAA2B,GAAAhB,KAAAiB,KAAAtB,EAAAN,YAAA2B,KAIAX,gBAAA,WAIA,IAHA,IAAAV,EAAAC,KACAsB,EAAAC,UAAAC,GAAA,sBAEAC,EAAA,EAAAA,EAAA1B,EAAAL,oBAAAgC,OAAAD,IAAA,CACA,IAAAL,EAAArB,EAAAL,oBAAA+B,GACA1B,EAAAN,YAAA2B,GAAAf,eAAAgB,KAAAtB,EAAAN,YAAA2B,GAAAE,KAGAZ,gBAAA,WAGA,IAFA,IAAAX,EAAAC,KAEAyB,EAAA,EAAAA,EAAA1B,EAAAJ,oBAAA+B,OAAAD,IAAA,CACA,IAAAL,EAAArB,EAAAJ,oBAAA8B,GAEA1B,EAAAN,YAAA2B,GAAAb,eAAAc,KAAAtB,EAAAN,YAAA2B,OAtGA,CA4GAhC,QCvFAA,OAAAG,IA7BAC,QAAAI,SAAA,qBACA,WAEA,OACAQ,KAAA,WAEA,IAAAd,EAAAF,OAAAE,EAEAA,EAAA,YAAAqC,GAAA,QAAA,SAAAC,GACAtC,EAAAU,MAAA6B,KAAA,4HACAvC,EAAAU,MAAA8B,KAAA,YAAA,GACAxC,EAAAU,MAAA+B,QAAA,QAAAC,QAAA,YAGA1C,EAAAqB,UAAAgB,GAAA,SAAA,cAAA,WACArC,EAAA,gBAAAuC,KAAA,+HACAvC,EAAA,gBAAAwC,KAAA,YAAA,GACAxC,EAAAU,MAAA+B,QAAA,QAAAC,QAAA,YAGA1C,EAAA,oBAAAqC,GAAA,QAAA,WACArC,EAAAU,MAAA6B,KAAA,mIACAvC,EAAAU,MAAA8B,KAAA,YAAA,GACAxC,EAAAU,MAAA+B,QAAA,QAAAC,QAAA,gBC6EA5C,OAAAG,IApGAC,QAAAI,SAAA,kBACA,WAEA,OACAQ,KAAA,WACA,IAAAd,EAAAF,OAAAE,EACA,SAAA2C,IAEA,GAAAV,UAAAC,GAAA,sBACAlC,EAAA,sBAAA4C,IAAA,SAAA,QACA,CACA,IAAAC,EAAA,EAEA7C,EAAA,sBAAA8C,KAAA,SAAAC,EAAAC,GACAH,EAAAI,KAAAC,IAAAL,EAAA7C,EAAAgD,GAAAG,iBAEAnD,EAAA,sBAAA4C,IAAA,SAAAC,GACA,IAAAO,EAAA,IAAAC,IACArD,EAAA,sBAAA8C,KAAA,SAAAC,EAAAC,GACA,IAAAM,EAAA,EACAtD,EAAAgD,GAAAO,WAAAT,KAAA,SAAAC,EAAAS,GACAxD,EAAAwD,GAAAC,SAAA,sBACAH,GAAAtD,EAAAwD,GAAAL,iBAIA,IAAAO,EAAA1D,EAAAgD,GAAAW,SAAAC,IACAR,EAAAS,IAAAH,GACAN,EAAAU,IAAAJ,GACAJ,GACAF,EAAAW,IAAAL,EAAAJ,GAGAF,EAAAW,IAAAL,EAAAJ,KAGAtD,EAAAA,EAAA,sBAAA8D,MAAAE,WAAAlB,KAAA,SAAAC,EAAAC,GACA,IAAAiB,EAAAjE,EAAAgD,GAAAkB,KAAA,OAEAC,EAAAnE,EAAAgD,GAAAkB,KAAA,8BAAAE,SAAAjB,cAGAkB,EAAAF,EAFAF,EAAAd,cAIAO,EAAA1D,EAAAgD,GAAAW,SAAAC,IACAR,EAAAU,IAAAJ,GAAAW,GACAJ,EAAArB,IAAA,SAAAQ,EAAAU,IAAAJ,GAAAS,KAGA,IAAAG,EAAA,IAAAjB,IACArD,EAAA,sBAAA8C,KAAA,SAAAC,EAAAC,GACA,IAAAuB,EAAAvE,EAAAgD,GAAAM,SACAtD,EAAAgD,GAAAJ,IAAA,SAAA,IACA,IAAAU,EAAAtD,EAAAgD,GAAAG,cACAnD,EAAAgD,GAAAJ,IAAA,SAAA2B,GACA,IAAAb,EAAA1D,EAAAgD,GAAAW,SAAAC,IACAU,EAAAT,IAAAH,GAEAJ,EADAgB,EAAAR,IAAAJ,IAEAY,EAAAP,IAAAL,EAAAJ,GAGAgB,EAAAP,IAAAL,EAAAJ,KAGAtD,EAAAA,EAAA,sBAAA8D,MAAAE,WAAAlB,KAAA,SAAAC,EAAAC,GACA,IAAAU,EAAA1D,EAAAgD,GAAAW,SAAAC,IACAY,EAAAF,EAAAR,IAAAJ,GACA1D,EAAAgD,GAAAM,OAAAkB,KAEA,IAAAC,EAAA,IAAApB,IACArD,EAAAA,EAAA,sBAAA8D,MAAAE,WAAAlB,KAAA,SAAAC,EAAAC,GACA,IAAAU,EAAA1D,EAAAgD,GAAAW,SAAAC,IACAc,EAAA1E,EAAAgD,GAAAkB,KAAA,4BAAAZ,SACAmB,EAAAZ,IAAAH,GAEAgB,EADAD,EAAAX,IAAAJ,IAEAe,EAAAV,IAAAL,EAAAgB,GAGAD,EAAAV,IAAAL,EAAAgB,KAGA1E,EAAAA,EAAA,sBAAA8D,MAAAE,WAAAlB,KAAA,SAAAC,EAAAC,GACA,IAAAU,EAAA1D,EAAAgD,GAAAW,SAAAC,IACAY,EAAAC,EAAAX,IAAAJ,GACAiB,EAAA3E,EAAAgD,GAAAkB,KAAA,4BACAU,OAAAD,EAAA,IAAAE,MAAAL,EAAA,UAOA7B,IACA7C,OAAAgF,iBAAA,SAAAnC,OC5DA7C,OAAAG,IApCAC,QAAAI,SAAA,kBACA,WAEA,OACAQ,KAAA,WAcA,IAAAd,EAAAF,OAAAE,EACAA,EAAA,oBACAqC,GAAA,QAAA,KAAA,WAGA,OAlBA,SAAA0C,GAEA,IAAAC,EAAAD,EAAAxB,SAAA,eAEAyB,EAAAC,YAAA,QAGA,IAAAC,EAAAF,EAAAvB,SAAA,QACA0B,EAAAJ,EAAAxB,SAAA,gBAAAA,SAAA,sBACA4B,EAAAF,YAAA,mBAAAC,GACAC,EAAAF,YAAA,mBAAAC,GAOAE,CADApF,EAAAU,QAEA,IAGAV,EAAA,iBACAqC,GAAA,QAAA,WACA,IAAAgD,EAAArF,EAAAU,MACAZ,OAAAwF,SAAAD,EAAA7C,KAAA,cCOA1C,OAAAG,IApCAC,QAAAI,SAAA,0BACA,WAEA,OACAQ,KAAA,WAeA,IAAAd,EAAAF,OAAAE,EAEAA,EAAA,oBAEAqC,GAAA,QAAA,YAAA,YAlBA,SAAAkD,GACA,IAAAC,EAAAxF,EAAA,kBAAAuF,EAAAE,QAAA,oBACAN,EAAAnF,EAAA,qBAAAuF,GAEAC,EAAAP,YAAA,QAEA,IAAAC,EAAAM,EAAA/B,SAAA,QAEA0B,EAAAF,YAAA,mBAAAC,GACAC,EAAAF,YAAA,mBAAAC,GAEAK,EAAAN,YAAA,sBAWAG,CAHApF,EAAAU,aCYAZ,OAAAG,IAnCAC,QAAAI,SAAA,aACA,WACA,OACAQ,KAAA,WACA,SAAA4E,IACA1F,EAAA,uBAAA8C,KAAA,SAAA6C,GACA,IAAAC,EAAA5F,EAAAU,MAAA8B,KAAA,MACAqD,EAAA7F,EAAAU,MAAA8B,KAAA,aAAAxC,EAAAU,MAAA8B,KAAA,aAAA,EACAsD,EAAA9F,EAAAU,MACAV,EAAA+F,QAAA,sEAAAH,EAAA,cAAA,SAAAI,GACAhG,EAAA8C,KAAAkD,EAAAC,KAAA,SAAAC,EAAAC,GAIA,GAHA,IAAAD,GACAlG,EAAA8F,GAAAvD,KAAA,IAEA2D,GAAAL,EAAA,OAAA,EACA7F,EAAA8F,GAAAM,OAAA,YAAAD,EAAAE,KAAA,4CACAF,EAAAG,QAAAH,EAAAG,QAAAC,KAAA,IAAA,wDACAJ,EAAAK,OAAAC,oBAAAC,IAAA,iDAEAP,EAAAQ,MAAAC,MAAA,0CACAT,EAAAU,SAAAD,MAAA,wBAMA5G,EAAAF,QAAAuC,GAAA,SACA,WACAqD,MAEAA,QCKA5F,OAAAG,IAnCAC,QAAAI,SAAA,aACA,WAEA,OACAQ,KAAA,WAEA,IAAAd,EAAAF,OAAAE,EAEA8G,EAAA9G,EAAA,gBAGAiE,EAAAjE,EAAA,wBACA+G,EAAA/G,EAAA,+BACAgH,EAAAhH,EAAA,+BACAiE,EAAA5B,GAAA,QAAA,WACAyE,EAAAlE,IAAA,UAAA,SACA,IAAAqE,EAAAjH,EAAAU,MAAA8B,KAAA,YACAyE,EACAF,EAAAvE,KAAA,MAAAyE,GAEAF,EAAAvE,KAAA,MAAA9B,KAAAyF,KAGAa,EAAAzE,KAAA7B,KAAAwG,OAEAJ,EAAAzE,GAAA,QAAA,WACAyE,EAAAlE,IAAA,UAAA,UAEA5C,EAAA,eAAAqC,GAAA,QAAA,WACArC,EAAAU,MAAAyG,SAAA,2BAAAC,cC/BA,SAAAnH,GACA,IAAAD,EAAAF,OAAAE,EAEAC,EAAAC,QAAAI,SAAA,0BACA,WAEA,OACAQ,KAAA,WAEAd,EAAA,QAAAqH,SAAA,uBAGAtG,eAAA,SAAAiB,GAEAA,GACAhC,EAAA,QAAAqH,SAAA,sBACArH,EAAA,QAAAsH,YAAA,wBAEAtH,EAAA,QAAAqH,SAAA,sBACArH,EAAA,QAAAsH,YAAA,2BAnBA,CA0BAxH,OAAAG,KC6DAH,OAAAG,IArFAC,QAAAI,SAAA,iBACA,WAEA,OACAQ,KAAA,WACAhB,OAAAE,EAyEAF,OAAAgF,iBAAA,SAAA/E,EAAAmB,SAAA,aAEA,UCXApB,OAAAG,IArEAC,QAAAI,SAAA,WACA,WAGA,OACAQ,KAAA,WAEA,IAAAd,EAAAF,OAAAE,EAEAuH,EAAAvH,EAAA,QACAwH,EAAAxH,EAAA,uBACAyH,EAAAzH,EAAA,WAEAuH,EACAlF,GAAA,QACA,YACA,WACAkF,EAAA9D,SAAA,oBACAiE,QAAAC,IAAA,WACA3H,EAAA,aAAAuC,KAAA,8BACAgF,EAAAD,YAAA,qBAEAI,QAAAC,IAAA,WACA3H,EAAA,aAAAuC,KAAA,mCACAgF,EAAAF,SAAA,mBACArH,EAAA,eAAAwC,KAAA,KAAA,eAGAgF,EAAA/D,SAAA,aACA+D,EAAAF,YAAA,aAEAE,EAAAH,SAAA,aAGAI,EAAAhE,SAAA,aACAgE,EAAAH,YAAA,aAEAG,EAAAJ,SAAA,eAGAhF,GAAA,mBACA,0BACA,WACAkF,EAAAD,YAAA,mBACAE,EAAAF,YAAA,aACAG,EAAAH,YAAA,aACAtH,EAAA,aAAAuC,KAAA,gCAKAvC,EAAA,0CAAAoH,MAAA,SAAAQ,GACAA,EAAAC,kBACA7H,EAAA,4BAAA8H,SACA9H,EAAAU,MAAA0D,SAAAF,KAAA,oBACA4D,WAMA9H,EAAA,oBAAAoH,MAAA,SAAAQ,GACAA,EAAAC,kBACA7H,EAAAU,MAAA0D,SAAAa,YAAA,cCtCAnF,OAAAG,IAzBAC,QAAAI,SAAA,QACA,WAEA,OACAQ,KAAA,WACA,IACAiH,GAAA/H,EADAF,OAAAE,GACA,gBACA+H,EAAA7D,KAAA,OAAAtB,IAAA,UAAA,IACAmF,EAAA3F,QACA2F,EAAAC,OACAC,QAAA,EACAC,UAAA,EACAC,MAAA,EACAC,UAAA,EACAC,cAAA,IACAC,WAAA,EACAC,OAAA,QC6FAzI,OAAAG,IA7GAC,QAAAI,SAAA,eACA,WAEA,IAAAN,EAAAF,OAAAE,EACA,OACAc,KAAA,WACA,IAAAL,EAAAC,KAEAD,EAAA+H,MAAAxI,EAAAF,QACAW,EAAAgI,MAAAhI,EAAA+H,MAAAE,YACAjI,EAAAkI,QAAA,EACAlI,EAAAmI,QAAA5I,EAAA,UAAA6I,QACApI,EAAAqI,aAAA9I,EAAA,iBAAA6I,QACApI,EAAAsI,SAAAtI,EAAAmI,QAAAzF,cACA1C,EAAAuI,WAAA,MAAAhJ,EAAAF,QAAAmJ,SAGAlI,eAAA,SAAAiB,GACAtB,KAAAsI,WAAAhH,EACAtB,KAAAwI,yBAEAjI,eAAA,WACAP,KAAAwI,yBAGAA,sBAAA,WAEA,IAAAzI,EAAAC,KACAyI,EAAAnJ,EAAA,gBAAA6I,QACAO,EAAAD,EAAA1F,SAAA,YAsDA,GAxBA,MAAAzD,EAAAF,QAAAmJ,QACAI,cAAA,IACAF,EAAA/G,OACAiH,cAAA,IAQAlG,YAAA1C,EAAAmI,QAAAzF,cAAAkG,cAEA3B,QAAAC,IAAA,cAAAxE,aACAuE,QAAAC,IAAA,QAAA3H,EAAAF,QAAAmJ,SAAA,MACAvB,QAAAC,IAAA,WAAA3H,EAAAF,QAAAmJ,SAEAE,EAAAvG,KAAAgB,IAAAT,cACAiG,EACAD,EAAAvG,KAAAU,OAAA,eAAAH,YAAA,QAEAgG,EAAAvG,KAAAU,OAAA,SAGA,MAAAtD,EAAAF,QAAAmJ,QAGA,OAFAxI,EAAAmI,QAAAtB,YAAA,gBACA7G,EAAAqI,aAAAlG,KAAA0G,aAAA,IAGAtJ,EAAAF,QAAAmJ,SAAA,KACAxI,EAAAqI,aAAAlG,KAAA0G,aAAAnG,YAAA,IAKA1C,EAAAgI,MAAAhI,EAAA+H,MAAAE,YAEAjI,EAAAkI,UAAAlI,EAAAgI,SACAhI,EAAAgI,MAAAhI,EAAAsI,UAAAK,IAAA3I,EAAAkI,QAAAlI,EAAAgI,MACAhI,EAAAmI,QAAAvB,SAAA,WAEA5G,EAAAmI,QAAAtB,YAAA,YAIA7G,EAAAkI,QAAAlI,EAAAgI,UCvDA3I,OAAAG,IAjDAC,QAAAI,SAAA,YACA,WAEA,IAAAN,EAAAF,OAAAE,EACA,OACAc,KAAA,SAAAyI,GAEA,IAAAC,EAAAxJ,EAAA,WAAAuJ,GACAE,EAAA,aACAC,EAAA,kBAEA1J,EAAA8C,KAAA0G,EACA,WAEA,IAAAG,EAAA3J,EAAAU,MACAkJ,EAAA5J,EAAAyJ,EAAAE,GACAE,EAAA7J,EAAA0J,EAAAC,GAEA,IAAAC,EAAAxH,OACA,MAAA,IAAAzB,MAAA,kEACA8I,EACA,MAEA,IAAAI,EAAAzH,OACA,MAAA,IAAAzB,MAAA,wDACA+I,EACA,MAIAC,EAAAG,IAAA,YACAH,EAAAtH,GAAA,gBACAoH,EACA,SAAAM,GACA,IAAAC,EAAAhK,EAAAU,MACAuJ,EAAA,IAAAjK,EAAAU,MAAAuF,KAAA,UACA2D,EAAA5J,EAAAyJ,EAAAE,GACAE,EAAA7J,EAAA0J,EAAAC,GAEAC,EAAAtC,YAAA,UACAuC,EAAAvC,YAAA,UACA0C,EAAA3C,SAAA,UACArH,EAAAiK,GAAA5C,SAAA,kBCcAvH,OAAAG,IAxDAC,QAAAI,SAAA,eACA,WAEA,OACAQ,KAAA,WAEA,IAAAd,EAAAF,OAAAE,EAEAkK,EAAAlK,EAAA,YAAA,cACA,IAAAkK,EAAA9H,QACA8H,EAAA9C,QAGApH,EAAA,gBAAA,gBAEA8C,KAAA,WACA9C,EAAAU,MAAAuE,YAAA,gBAAA,IAAAjF,EAAAU,MAAA0B,UAGApC,EAAA,gBAAAqC,GAAA,QAAA,wBAAA,WACA,IAAA8H,EAAAnK,EAAAU,MAAA+B,QAAA,gBAAAyB,KAAA,uBAAAkG,MACA,GAAA,YAAAD,EACAnK,EAAA,kBAAAuG,KAAA,+BACAvG,EAAA,kBAAAyF,QAAA,oBAAA6B,YAAA,QACAM,MAAAyC,qBACA,CACAzC,MAAAyC,iBACArK,EAAA,kBAAAuG,KAAA,IACAvG,EAAA,kBAAAyF,QAAA,oBAAA4B,SAAA,QACA,IAAAiD,EAAAH,EAAAG,MAAA,KACAC,EAAAD,EAAA,GACAE,EAAAF,EAAA,GACAG,EAAAzK,EAAAU,MAAA8B,KAAA,QACA8C,SAAAmF,KAAAA,EAAA,iBAAAF,EAAA,sBAAAC,KAIA,IAAAE,EAAAC,aAAAC,QAAA,wBACAF,IACA1K,EAAA,gCAAA8C,KAAA,SAAAX,EAAAa,GAEA,IAAA,IAAAhD,EAAAU,MAAA8B,KAAA,QAAAqI,QAAAH,GAAA,CAEA,IAAAI,EAAA9K,EAAAU,MAAA+E,QAAA,uBACAqF,EAAA5G,KAAA,aAAAkD,QACApH,EAAA,cAAA+K,SACArC,UAAAoC,EAAAnH,SAAAC,KACA,QAGA+G,aAAAK,WAAA","file":"plugins.min.js","sourcesContent":["/*\r\nPLUGINS MANAGER\r\nIn order to avoid plugins (Jquery plugins, custom Jquery functions, events subscriptions)\r\nbeing initalized or referred all over the place, all functions MUST be `registered` with this manager class.\r\nThis approach makes easier to debug code as all running plugins can be found at `window.ghd.plugins._components`.\r\nAlso, events subscription are easily managed as plugins should not regfister to window events on its own.\r\nThey all should register themselves with the plugin manager which then will subscribe to window events only once.\r\n*/\r\n \r\n\r\n(function (window) {\r\n\r\n var _ = window._;\r\n var $ = window.$;\r\n\r\n if (!window.ghd) {\r\n window.ghd = {};\r\n }\r\n\r\n function debounceResize(c, t) { window.onresize = function () { clearTimeout(t); t = setTimeout(c, 100) }; return c };\r\n\r\n window.ghd.plugins = {\r\n //mother object for all plugins\r\n _components: {},\r\n\r\n //list of plugin names that should be notified on window Resize\r\n _resizeAwarePlugins: [],\r\n\r\n //list of plugin names that should be notified on window Resize\r\n _scrollAwarePlugins: [],\r\n\r\n //plugin registration method. All plugins must be added using this method in order to be initialized\r\n register: function (pluginName, pluginFunction) {\r\n\r\n var that = this;\r\n\r\n if (!!that._components[pluginName]) {\r\n throw new Error(\"plugin '\" + pluginName + \"' cannot be initialized more than once.\");\r\n }\r\n\r\n var pluginObject = pluginFunction();\r\n\r\n //check for required init() method\r\n if (!_.isFunction(pluginObject.init)) {\r\n throw new Error(\"plugin '\" + pluginName + \"' must have an init() function.\");\r\n }\r\n\r\n //has it got a method signature for onWindowResize?\r\n if (_.isFunction(pluginObject.onWindowResize)) {\r\n that._resizeAwarePlugins.push(pluginName);\r\n }\r\n\r\n //has it got a method signature for onWindowScroll?\r\n if (_.isFunction(pluginObject.onWindowScroll)) {\r\n that._scrollAwarePlugins.push(pluginName);\r\n }\r\n\r\n that._components[pluginName] = pluginObject;\r\n\r\n // console.log(\"plugin '\" + pluginName + \"' registered succesfully.\");\r\n\r\n },\r\n\r\n //Mother init() method.\r\n //It will iterate over all plugins calling each init() method\r\n //It will also subscribe to onWindowResize and onWindowScroll events ONCE for all plugins.\r\n init: function () {\r\n var that = this,\r\n onWindowResize = _.debounce(function () { that._onWindowResize(); }, 100),\r\n onWindowScroll = _.debounce(function () { that._onWindowScroll(); }, 100);\r\n\r\n $(document)\r\n .ready(function () {\r\n\r\n //INIT\r\n //call all plugin initialize functions\r\n that._onInit();\r\n\r\n //WINDOW RESIZE\r\n //call all plugins that subscribed for this event.\r\n debounceResize(function () { onWindowResize(); })();\r\n\r\n //WINDOW SCROLL\r\n //call all plugins that subscribed for this event.\r\n $(window).scroll(function () { onWindowScroll(); });\r\n\r\n });\r\n },\r\n\r\n _onInit: function () {\r\n var that = this;\r\n\r\n for (var key in that._components) {\r\n that._components[key].init.call(that._components[key]);\r\n }\r\n },\r\n\r\n _onWindowResize: function () {\r\n var that = this,\r\n isDesktop = Modernizr.mq('(min-width: 768px)'); //should match: .less @screen-sm-min\r\n\r\n for (var i = 0; i < that._resizeAwarePlugins.length; i++) {\r\n var key = that._resizeAwarePlugins[i];\r\n that._components[key].onWindowResize.call(that._components[key], isDesktop);\r\n }\r\n },\r\n _onWindowScroll: function () {\r\n var that = this;\r\n\r\n for (var i = 0; i < that._scrollAwarePlugins.length; i++) {\r\n var key = that._scrollAwarePlugins[i];\r\n\r\n that._components[key].onWindowScroll.call(that._components[key]);\r\n }\r\n }\r\n\r\n };\r\n\r\n})(window);","(function (ghd) {\r\n\r\n ghd.plugins.register('busyMessagesForMVC',\r\n function () {\r\n\r\n return {\r\n init: function () {\r\n\r\n var $ = window.$;\r\n // CONTACT US - SEND ENQUIRY\r\n $(\"#btnSend\").on('click', function (token) {\r\n $(this).html(\"
Sending...
\");\r\n $(this).attr('disabled', true);\r\n $(this).closest('form').trigger('submit')\r\n });\r\n // MY GREYHOUND LOGIN\r\n $(document).on('submit', '#login-form', function () {\r\n $('#loginbutton').html(\"
Logging in...
\");\r\n $('#loginbutton').attr('disabled', true);\r\n $(this).closest('form').trigger('submit');\r\n });\r\n // SUBSCRIBE\r\n $(\"#subscribeButton\").on('click', function () {\r\n $(this).html(\"
Subscribing in...
\");\r\n $(this).attr('disabled', true);\r\n $(this).closest('form').trigger('submit')\r\n });\r\n }\r\n }\r\n });\r\n\r\n})(window.ghd);\r\n","(function (ghd) {\r\n\r\n ghd.plugins.register('categoryListing',\r\n function () {\r\n\r\n return {\r\n init: function () {\r\n var $ = window.$;\r\n function categoryListingFunc() {\r\n // phone\r\n if (Modernizr.mq('(max-width: 767px)')) {\r\n $('.subcategory-small').css('height', '');\r\n } else { // tablet or desktop\r\n var maxHeight = 0;\r\n\r\n $('.subcategory-small').each(function (idx, el) {\r\n maxHeight = Math.max(maxHeight, $(el).outerHeight());\r\n });\r\n $('.subcategory-small').css('height', maxHeight);\r\n var topOffsetToMaxHeightMap = new Map();\r\n $('.subcategory-small').each(function (idx, el) {\r\n var height = 0;\r\n $(el).children().each(function (idx, child) {\r\n if (!$(child).hasClass('subcategory-body')) {\r\n height += $(child).outerHeight();\r\n }\r\n });\r\n\r\n var topOffset = $(el).offset().top;\r\n if (topOffsetToMaxHeightMap.has(topOffset)) {\r\n var h = topOffsetToMaxHeightMap.get(topOffset);\r\n if (height > h) {\r\n topOffsetToMaxHeightMap.set(topOffset, height);\r\n }\r\n } else {\r\n topOffsetToMaxHeightMap.set(topOffset, height);\r\n }\r\n });\r\n $($('.subcategory-small').get().reverse()).each(function (idx, el) {\r\n var img = $(el).find('img');\r\n\r\n var titleHeight = $(el).find('.subcategory-title-wrapper').parent().outerHeight();\r\n var imgHeight = img.outerHeight();\r\n\r\n var totalHeight = titleHeight + imgHeight;\r\n\r\n var topOffset = $(el).offset().top;\r\n if (topOffsetToMaxHeightMap.get(topOffset) > totalHeight) {\r\n img.css('height', topOffsetToMaxHeightMap.get(topOffset) - titleHeight);\r\n }\r\n });\r\n var topOffsetToMinHeightMap = new Map();\r\n $('.subcategory-small').each(function (idx, el) {\r\n var previousHeight = $(el).height();\r\n $(el).css('height', '');\r\n var height = $(el).outerHeight();\r\n $(el).css('height', previousHeight);\r\n var topOffset = $(el).offset().top;\r\n if (topOffsetToMinHeightMap.has(topOffset)) {\r\n var h = topOffsetToMinHeightMap.get(topOffset);\r\n if (height < h) {\r\n topOffsetToMinHeightMap.set(topOffset, height);\r\n }\r\n } else {\r\n topOffsetToMinHeightMap.set(topOffset, height);\r\n }\r\n });\r\n $($('.subcategory-small').get().reverse()).each(function (idx, el) {\r\n var topOffset = $(el).offset().top;\r\n var h = topOffsetToMinHeightMap.get(topOffset);\r\n $(el).height(h);\r\n });\r\n var topOffsetToMinHeightDescriptionMap = new Map();\r\n $($('.subcategory-small').get().reverse()).each(function (idx, el) {\r\n var topOffset = $(el).offset().top;\r\n var heightDescription = $(el).find('.subcategory-description').height();\r\n if (topOffsetToMinHeightDescriptionMap.has(topOffset)) {\r\n var h = topOffsetToMinHeightDescriptionMap.get(topOffset);\r\n if (heightDescription < h) {\r\n topOffsetToMinHeightDescriptionMap.set(topOffset, heightDescription);\r\n }\r\n } else {\r\n topOffsetToMinHeightDescriptionMap.set(topOffset, heightDescription);\r\n }\r\n });\r\n $($('.subcategory-small').get().reverse()).each(function (idx, el) {\r\n var topOffset = $(el).offset().top;\r\n var h = topOffsetToMinHeightDescriptionMap.get(topOffset);\r\n var subcategoryDescription = $(el).find('.subcategory-description');\r\n $clamp(subcategoryDescription[0], { clamp: h + 'px' }); // ellipsis\r\n });\r\n\r\n\r\n }\r\n }\r\n\r\n categoryListingFunc();\r\n window.addEventListener(\"resize\", categoryListingFunc);\r\n }\r\n }\r\n });\r\n\r\n})(window.ghd);\r\n","(function (ghd) {\r\n ghd.plugins.register('collapsing-list',\r\n function () {\r\n\r\n return {\r\n init: function () {\r\n function toggleVisibilityPasses($li) {\r\n\r\n var $liChildren = $li.children('.inner-list');\r\n// var $innerList = $li.siblings('.inner-list');\r\n $liChildren.toggleClass('hide');\r\n// $innerList.toggleClass('hide');\r\n\r\n var shouldShow = $liChildren.hasClass('hide');\r\n var $chevron = $li.children('.list-header').children('.c-header__chevron');\r\n $chevron.toggleClass('fa-chevron-down', !shouldShow);\r\n $chevron.toggleClass('fa-chevron-right', shouldShow);\r\n }\r\n\r\n var $ = window.$;\r\n var list = $(\".collapsing-list\");\r\n list.on(\"click\",'li', function () {\r\n var $li = $(this);\r\n toggleVisibilityPasses($li);\r\n return false;\r\n });\r\n\r\n var links = $(\".inner-list a\");\r\n links.on(\"click\", function () {\r\n var $a = $(this);\r\n window.location = $a.attr('href');\r\n });\r\n }\r\n }\r\n });\r\n\r\n\r\n})(window.ghd);\r\n","(function (ghd) {\r\n ghd.plugins.register('expand-element-on-click',\r\n function () {\r\n\r\n return {\r\n init: function () {\r\n function toggleVisibilityPasses($headers) {\r\n var $detail = $('.c-header__body', $headers.parents(\".parent-to-hide\"));\r\n var $chevron = $('.c-header__chevron', $headers);\r\n\r\n $detail.toggleClass('hide');\r\n\r\n var shouldShow = $detail.hasClass('hide')\r\n\r\n $chevron.toggleClass('fa-chevron-down', !shouldShow);\r\n $chevron.toggleClass('fa-chevron-right', shouldShow);\r\n\r\n $headers.toggleClass('c-header--expanded');\r\n }\r\n\r\n var $ = window.$;\r\n\r\n var elementsToExpand = $(\".expand-on-click\");\r\n\r\n elementsToExpand.on(\"click\", \".c-header\", function () {\r\n var $header = $(this);\r\n\r\n\r\n toggleVisibilityPasses($header);\r\n });\r\n\r\n\r\n }\r\n }\r\n });\r\n\r\n\r\n})(window.ghd);\r\n","(function (ghd) {\r\n\r\n ghd.plugins.register('igThumbMgr',\r\n function () {\r\n return {\r\n init: function () {\r\n function updateInstagram() {\r\n $('.ig-thumb-container').each(function(index) {\r\n var accessToken = $(this).attr('at');\r\n var maxThumbs = $(this).attr('maxThumbs') ? $(this).attr('maxThumbs') : 5;\r\n var container = $(this);\r\n $.getJSON('https://api.instagram.com/v1/users/self/media/recent/?access_token=' + accessToken + '&callback=?', function (instagram) {\r\n $.each(instagram.data, function (photos, src) {\r\n if (photos === 0) {\r\n $(container).html('');\r\n }\r\n if (photos == maxThumbs) { return false; }\r\n $(container).append('' +\r\n '
' + (src.caption ? src.caption.text : '') + '
' +\r\n '
' +\r\n '
');\r\n });\r\n });\r\n });\r\n }\r\n $(window).on('resize',\r\n function () {\r\n updateInstagram();\r\n });\r\n updateInstagram();\r\n }\r\n };\r\n });\r\n\r\n})(window.ghd);\r\n","(function (ghd) {\r\n\r\n ghd.plugins.register('modalImage',\r\n function () {\r\n\r\n return {\r\n init: function () {\r\n\r\n var $ = window.$;\r\n // Get the modal\r\n var modal = $('.modal-image');\r\n\r\n // Get the image and insert it inside the modal - use its \"alt\" text as a caption\r\n var img = $('.modal-image-to-show');\r\n var modalImg = $('.modal-image .modal-content');\r\n var captionText = $('.modal-image .modal-caption');\r\n img.on('click', function () {\r\n modal.css('display', 'block');\r\n var srcLarge = $(this).attr('srcLarge');\r\n if (!!srcLarge) {\r\n modalImg.attr('src', srcLarge);\r\n } else {\r\n modalImg.attr('src', this.src);\r\n }\r\n\r\n captionText.html(this.alt);\r\n });\r\n modal.on('click', function () {\r\n modal.css('display', 'none');\r\n });\r\n $('.expandable').on('click', function () {\r\n $(this).siblings('img.modal-image-to-show').click();\r\n });\r\n }\r\n }\r\n });\r\n\r\n})(window.ghd);\r\n","(function(ghd) {\r\n var $ = window.$;\r\n\r\n ghd.plugins.register('pickadate_themeSwitcher',\r\n function () {\r\n\r\n return {\r\n init: function() {\r\n\r\n $(\"body\").addClass(\"pickadate--default\");\r\n\r\n },\r\n onWindowResize: function (isDesktop) {\r\n\r\n if (isDesktop) {\r\n $(\"body\").addClass(\"pickadate--classic\");\r\n $(\"body\").removeClass(\"pickadate--default\");\r\n } else {\r\n $(\"body\").addClass(\"pickadate--default\");\r\n $(\"body\").removeClass(\"pickadate--classic\");\r\n }\r\n\r\n }\r\n }\r\n });\r\n\r\n})(window.ghd);","(function (ghd) {\r\n\r\n ghd.plugins.register('productListing',\r\n function () {\r\n\r\n return {\r\n init: function () {\r\n var $ = window.$;\r\n function productListingFunc() {\r\n // phone\r\n // if (Modernizr.mq('(max-width: 767px)')) {\r\n // $('.product-title-wrapper').css('height', 'initial');\r\n // $('.product-small').each(function (idx, el) {\r\n // $(el).css('height', '');\r\n // var img = $(el).find('img');\r\n // img.css('width', '100%');\r\n // img.css('height', '');\r\n // // var packageDescriptionBtn = $(el).find('.product-description-btn');\r\n // // packageDescriptionBtn.css('width', '100%');\r\n // // packageDescriptionBtn.css('padding', '0 5%');\r\n // var packageBtn = packageDescriptionBtn.find('.product-btn');\r\n // packageBtn.css('margin', '10px 0');\r\n // packageBtn.removeClass('col-sm-6');\r\n // });\r\n // } else { // tablet or desktop\r\n // $('.product-small').each(function (idx, el) {\r\n // var packageBtn = $(el).find('.product-btn');\r\n // packageBtn.css('margin', '0');\r\n // var img = $(el).find('img');\r\n // var packageTitleWrapper = $(el).find('.product-title-wrapper');\r\n // var imgH = img.outerHeight(true);\r\n // var h = packageTitleWrapper.outerHeight(true);\r\n // var newImgHeight = img.outerWidth();\r\n // img.css('height', newImgHeight);\r\n // // var packageDescription = $(el).find('.product-description')\r\n // // packageDescription.css('padding-top', '10px');\r\n // // $clamp(packageDescription[0], { clamp: (newImgHeight * 0.65) + 'px' }); // ellipsis\r\n\r\n // // packageDescription.find('p').css('overflow', 'hidden');\r\n\r\n // var packageBtn = $(el).find('.product-btn');\r\n // packageBtn.addClass('col-sm-6');\r\n // });\r\n // var topOffsetToMaxHeightMap = new Map();\r\n // $('.product-title-wrapper').css('height', 'initial');\r\n // $('.product-title-wrapper').each(function (idx, el) {\r\n // var topOffset = $(el).offset().top;\r\n // var height = $(el).outerHeight();\r\n // if (topOffsetToMaxHeightMap.has(topOffset)) {\r\n // var h = topOffsetToMaxHeightMap.get(topOffset);\r\n // if (height > h) {\r\n // topOffsetToMaxHeightMap.set(topOffset, h);\r\n // }\r\n // } else {\r\n // topOffsetToMaxHeightMap.set(topOffset, height);\r\n // }\r\n // });\r\n // $($('.product-title-wrapper').get().reverse()).each(function (idx, el) {\r\n // var topOffset = $(el).offset().top;\r\n // var h = topOffsetToMaxHeightMap.get(topOffset);\r\n // $(el).height(h);\r\n // });\r\n // }\r\n // if (!Modernizr.objectfit) {\r\n // $('.product').addClass('object-fit');\r\n // $('.product-image-container').each(function () {\r\n // var $container = $(this),\r\n // $img = $container.find('img'),\r\n // imgUrl = $img.prop('src');\r\n // if (imgUrl) {\r\n // $container\r\n // .css('backgroundImage', 'url(' + imgUrl + ')')\r\n // .addClass('compat-object-fit');\r\n // }\r\n // });\r\n // }\r\n\r\n }\r\n\r\n productListingFunc();\r\n window.addEventListener(\"resize\", _.debounce(function () {\r\n productListingFunc();\r\n }, 300));\r\n }\r\n }\r\n });\r\n\r\n})(window.ghd);\r\n","(function (ghd) {\r\n\r\n ghd.plugins.register('sideMenu',\r\n function () {\r\n \r\n \r\n return {\r\n init: function () {\r\n\r\n var $ = window.$;\r\n\r\n var $body = $(\"body\");\r\n var $menu = $(\"#c-menu--slide-left\");\r\n var $mask = $(\"#c-mask\");\r\n\r\n $body\r\n .on('click',\r\n '#menu-btn',\r\n function () {\r\n if ($body.hasClass('has-active-menu')) {\r\n console.log('closing');\r\n $('#menu-btn').html('');\r\n $body.removeClass('has-active-menu');\r\n } else {\r\n console.log('opening');\r\n $('#menu-btn').html('');\r\n $body.addClass('has-active-menu');\r\n $('#menu-btn i').attr(\"id\",\"menu-close\");\r\n }\r\n\r\n if ($menu.hasClass('is-active')) {\r\n $menu.removeClass('is-active');\r\n } else {\r\n $menu.addClass('is-active');\r\n }\r\n\r\n if ($mask.hasClass('is-active')) {\r\n $mask.removeClass('is-active');\r\n } else {\r\n $mask.addClass('is-active');\r\n }\r\n })\r\n .on('click touchstart',\r\n '#c-mask, .c-menu__close',\r\n function () {\r\n $body.removeClass('has-active-menu');\r\n $menu.removeClass('is-active');\r\n $mask.removeClass('is-active');\r\n $('#menu-btn').html( '');\r\n });\r\n\r\n\r\n //fixing click on desktop menu.\r\n $('.desktop-navbar button.dropdown-toggle').click(function (event) {\r\n event.stopPropagation();\r\n $('ul.dropdown-menu:visible').toggle();\r\n var dropdown = $(this).parent().find('ul.dropdown-menu');\r\n dropdown.toggle();\r\n });\r\n\r\n // $('body').on('click', function (e) {\r\n // $('ul.dropdown-menu:visible').toggle();\r\n // });shortMenuToggle\r\n $('#shortMenuToggle').click(function (event) { // $('.dropdown.dropdown-accordion.visible-sm.visible-md').click(function (event) {\r\n event.stopPropagation();\r\n $(this).parent().toggleClass('open');\r\n });\r\n }\r\n }\r\n });\r\n\r\n})(window.ghd);\r\n\r\n\r\n(function () {\r\n //OVERRIDE CONSOLE.LOG() TO LOG ON THE DOM SO WE CAN SEE ON MOBILE\r\n //var old = console.log;\r\n //console.log = function (message) {\r\n // var $logger = $(\"#window-logger\");\r\n // if (typeof message == 'object') {\r\n // $logger.prepend(\"

\" + new Date().getTime() + \": \" + (JSON && JSON.stringify ? JSON.stringify(message) : message) + \"

\");\r\n // } else {\r\n // $logger.prepend(\"

\" + new Date().getTime() + \": \" + message + \"

\");\r\n // }\r\n // //old(message);\r\n //}\r\n})();\r\n","(function (ghd) {\r\n\r\n ghd.plugins.register('slick',\r\n function () {\r\n\r\n return {\r\n init: function () {\r\n var $ = window.$;\r\n var homeSliderElements = $(\".home-slider\");\r\n homeSliderElements.find('img').css('display', '');\r\n if (!!homeSliderElements.length) {\r\n homeSliderElements.slick({\r\n arrows: false,\r\n infinite: true,\r\n dots: false,\r\n autoplay: true,\r\n autoplaySpeed: 3000,\r\n draggable: false,\r\n swipe: true\r\n });\r\n }\r\n\r\n\r\n },\r\n }\r\n });\r\n\r\n})(window.ghd);\r\n","(function (ghd) {\r\n\r\n ghd.plugins.register('stickyHeader',\r\n function () {\r\n\r\n var $ = window.$;\r\n return {\r\n init: function () {\r\n var that = this;\r\n\r\n that._$win = $(window);\r\n that._winT = that._$win.scrollTop();\r\n that._oldPos = 0;\r\n that._header = $(\"header\").first();\r\n that._pageWrapper = $(\"#page-wrapper\").first();\r\n that._headerH = that._header.outerHeight();\r\n that._isDesktop = $(window).width() >= 1200;\r\n\r\n },\r\n onWindowResize: function (isDesktop) {\r\n this._isDesktop = isDesktop;\r\n this._handleOnWindowChange();\r\n },\r\n onWindowScroll: function () {\r\n this._handleOnWindowChange();\r\n },\r\n\r\n _handleOnWindowChange: function () {\r\n //TODO Run run all those who hold mortal souls below is horrible\r\n var that = this,\r\n bookingWidget = $(\".booking-wgt\").first(),\r\n isExpanded = bookingWidget.hasClass(\"expanded\"),\r\n isAngularJsTopLevelComponent = function(){\r\n var pathsThatUseAngularHeaderAndFooter = ['/',\r\n // '/home',\r\n // '/my-greyhound/profile',\r\n // '/my-greyhound/profile/',\r\n // '/my-greyhound/profile/edit',\r\n // '/my-greyhound/login',\r\n // '/my-greyhound/login/',\r\n // '/my-greyhound/create-account',\r\n // '/my-greyhound/create-account/',\r\n // '/my-greyhound/resetpassword',\r\n // '/my-greyhound/resetpassword/',\r\n // '/my-greyhound/change-password',\r\n // '/my-greyhound/change-password/',\r\n // '/my-greyhound/newsletter',\r\n // '/my-greyhound/newsletter/',\r\n // '/my-greyhound/newsletter-confirmation',\r\n // '/my-greyhound/newsletter-confirmation/',\r\n // '/privacy-policy',\r\n // '/privacy-policy/',\r\n // '/terms-and-conditions',\r\n // '/terms-and-conditions/',\r\n '/my-greyhound/forgot-password',\r\n ];\r\n var path = window.location.pathname;\r\n var isAnMcvView = pathsThatUseAngularHeaderAndFooter.indexOf(path) > -1\r\n return isAnMcvView;\r\n };\r\n //offsetTopMenu = that._isDesktop ? 84 + 1 : 67;\r\n if ($(window).width() >= 1200) {\r\n offsetTopMenu = 84 + 1;\r\n } else if (bookingWidget.length > 0) {\r\n offsetTopMenu = 67;\r\n }\r\n // else if (isAngularJsTopLevelComponent()) {\r\n // offsetTopMenu = 0;\r\n // }\r\n else { \r\n offsetTopMenu = 67;\r\n }\r\n outerHeight = that._header.outerHeight() + offsetTopMenu; //YES, get height everytime. don't cache it!\r\n\r\n console.log('outerheight', outerHeight);\r\n console.log('width', $(window).width() <= 1200);\r\n console.log('width 2,', $(window).width());\r\n //booking widget vertical position\r\n bookingWidget.css({ top: outerHeight });\r\n if (isExpanded) {\r\n bookingWidget.css({ height: \"calc(100% - \" + outerHeight + \"px)\" });\r\n } else {\r\n bookingWidget.css({ height: \"auto\" });\r\n }\r\n\r\n if ($(window).width() >= 1200) {\r\n that._header.removeClass(\"floated\");\r\n that._pageWrapper.css({ 'margin-top': 0 });\r\n return;\r\n } else {\r\n if( $(window).width() <= 768) {\r\n that._pageWrapper.css({ 'margin-top': outerHeight - 7 }); // This causes a block white block in IE. disabling for now.\r\n }\r\n }\r\n\r\n //else if mobile\r\n that._winT = that._$win.scrollTop();\r\n\r\n if (that._oldPos !== that._winT) {\r\n if ((that._winT > that._headerH || isExpanded) && that._oldPos < that._winT) {\r\n that._header.addClass(\"floated\");\r\n } else {\r\n that._header.removeClass(\"floated\");\r\n }\r\n }\r\n\r\n that._oldPos = that._winT;\r\n }\r\n }\r\n });\r\n\r\n})(window.ghd);","(function (ghd) {\r\n\r\n ghd.plugins.register('tabPanels',\r\n function () {\r\n\r\n var $ = window.$;\r\n return {\r\n init: function ($parent) {\r\n\r\n var $tabComponents = $(\".gha-tab\", $parent),\r\n linksSelector = '[role=tab]',\r\n panelsSelector = '[role=tabpanel]';\r\n\r\n $.each($tabComponents,\r\n function () {\r\n\r\n var $widget = $(this),\r\n $links = $(linksSelector, $widget),\r\n $panels = $(panelsSelector, $widget);\r\n\r\n if (!$links.length) {\r\n throw new Error('Tab component: No tab navigation item matched jQuery selector \"' +\r\n linksSelector +\r\n '\".');\r\n }\r\n if (!$panels.length) {\r\n throw new Error('Tab component: No tab panel matched jQuery selector \"' +\r\n panelsSelector +\r\n '\".');\r\n }\r\n\r\n\r\n $widget.off('.gha-tab');\r\n $widget.on('click.gha-tab',\r\n linksSelector,\r\n function (e) {\r\n var $link = $(this),\r\n targetId = \"#\" + $(this).data(\"target\"),\r\n $links = $(linksSelector, $widget),\r\n $panels = $(panelsSelector, $widget);\r\n\r\n $links.removeClass(\"active\");\r\n $panels.removeClass(\"active\");\r\n $link.addClass(\"active\");\r\n $(targetId).addClass(\"active\");\r\n });\r\n });\r\n\r\n }\r\n }\r\n });\r\n})(window.ghd);","(function (ghd) {\r\n\r\n ghd.plugins.register('travelPasses',\r\n function () {\r\n\r\n return {\r\n init: function () {\r\n\r\n var $ = window.$;\r\n\r\n var passes = $('.c-header', '.pass-list');\r\n if (passes.length === 1) {\r\n passes.click();\r\n }\r\n\r\n var $children = $('.pass-element', '.pass-detail')\r\n\r\n $children.each(function () {\r\n $(this).toggleClass('center-button', $(this).length === 1);\r\n });\r\n\r\n $(\".pass-detail\").on('click', '.to-passenger-details', function () {\r\n var selectedValue = $(this).closest('.pass-detail').find('select.form-control').val()\r\n if (selectedValue === 'default') {\r\n $('.error-txt-msg').text('Please choose a pass option');\r\n $('.error-txt-msg').parents('.error-container').removeClass('hide');\r\n event.preventDefault();\r\n } else {\r\n event.preventDefault();\r\n $('.error-txt-msg').text('');\r\n $('.error-txt-msg').parents('.error-container').addClass('hide');\r\n var split = selectedValue.split('#');\r\n var passRef = split[0];\r\n var category = split[1];\r\n var href = $(this).attr('href');\r\n location.href = href + 'passreference=' + passRef + '&categoryreference=' + category;\r\n }\r\n });\r\n\r\n var previousTravelPass = localStorage.getItem('previous_travel_pass');\r\n if (previousTravelPass) {\r\n $('.pass-detail .pass-element a').each(function (i, el) {\r\n // search for the pass reference previously saved\r\n if ($(this).attr('href').indexOf(previousTravelPass) !== -1) {\r\n // if we found it, we force scroll and expand the element\r\n var parentTravelPass = $(this).parents('section.pass-detail');\r\n parentTravelPass.find('.c-header').click();\r\n $('html, body').animate({\r\n scrollTop: parentTravelPass.offset().top\r\n }, 2000);\r\n }\r\n });\r\n localStorage.removeItem('previous_travel_pass');\r\n }\r\n }\r\n }\r\n });\r\n\r\n})(window.ghd);\r\n"]}