PageSourceSearch

https://book.visitmildura.com.au/templates/visitmildura2024/dist/template.bundle.prod.64f2d11233a23456d08f.js

js visitmildura.com.au collected 2026-10-02 11:34:08 UTC 230,545 bytes, 1 lines download raw bytes

1!function(r){var n={};function __webpack_require__(t){if(n[t])return n[t].exports;var e=n[t]={i:t,l:!1,exports:{}};return r[t].call(e.exports,e,e.exports,__webpack_require__),e.l=!0,e.exports}__webpack_require__.m=r,__webpack_require__.c=n,__webpack_require__.d=function(t,e,r){__webpack_require__.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},__webpack_require__.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},__webpack_require__.t=function(e,t){if(1&t&&(e=__webpack_require__(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(__webpack_require__.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)__webpack_require__.d(r,n,function(t){return e[t]}.bind(null,n));return r},__webpack_require__.n=function(t){var e=t&&t.__esModule?function getDefault(){return t["default"]}:function getModuleExports(){return t};return __webpack_require__.d(e,"a",e),e},__webpack_require__.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=3)}([function(t,e){t.exports=function(t){function log(t){"undefined"!=typeof console&&(console.error||console.log)("[Script Loader]",t)}try{"undefined"!=typeof execScript&&function isIE(){return"undefined"!=typeof attachEvent&&"undefined"==typeof addEventListener}()?execScript(t):"undefined"!=typeof eval?eval.call(null,t):log("EvalError: No eval function available")}catch(e){log(e)}}},,,function(t,e,r){r(4),r(6),r(8),r(10),r(12),r(14),r(16),r(18),r(20),r(22),r(24),r(26),r(28),r(30),r(32),r(34),r(36),r(38),r(40),r(42),r(44),r(46),r(48),t.exports=r(50)},function(t,e,r){r(0)(r(5))},function(t,e){t.exports="jQuery.noConflict();\r\n"},function(t,e,r){r(0)(r(7))},function(t,e){t.exports='/*!\r\n* jQuery Cycle2; version: 2.1.6 build: 20141007\r\n* http://jquery.malsup.com/cycle2/\r\n* Copyright (c) 2014 M. Alsup; Dual licensed: MIT/GPL\r\n*/\r\n!function(a){"use strict";function b(a){return(a||"").toLowerCase()}var c="2.1.6";a.fn.cycle=function(c){var d;return 0!==this.length||a.isReady?this.each(function(){var d,e,f,g,h=a(this),i=a.fn.cycle.log;if(!h.data("cycle.opts")){(h.data("cycle-log")===!1||c&&c.log===!1||e&&e.log===!1)&&(i=a.noop),i("--c2 init--"),d=h.data();for(var j in d)d.hasOwnProperty(j)&&/^cycle[A-Z]+/.test(j)&&(g=d[j],f=j.match(/^cycle(.*)/)[1].replace(/^[A-Z]/,b),i(f+":",g,"("+typeof g+")"),d[f]=g);e=a.extend({},a.fn.cycle.defaults,d,c||{}),e.timeoutId=0,e.paused=e.paused||!1,e.container=h,e._maxZ=e.maxZ,e.API=a.extend({_container:h},a.fn.cycle.API),e.API.log=i,e.API.trigger=function(a,b){return e.container.trigger(a,b),e.API},h.data("cycle.opts",e),h.data("cycle.API",e.API),e.API.trigger("cycle-bootstrap",[e,e.API]),e.API.addInitialSlides(),e.API.preInitSlideshow(),e.slides.length&&e.API.initSlideshow()}}):(d={s:this.selector,c:this.context},a.fn.cycle.log("requeuing slideshow (dom not ready)"),a(function(){a(d.s,d.c).cycle(c)}),this)},a.fn.cycle.API={opts:function(){return this._container.data("cycle.opts")},addInitialSlides:function(){var b=this.opts(),c=b.slides;b.slideCount=0,b.slides=a(),c=c.jquery?c:b.container.find(c),b.random&&c.sort(function(){return Math.random()-.5}),b.API.add(c)},preInitSlideshow:function(){var b=this.opts();b.API.trigger("cycle-pre-initialize",[b]);var c=a.fn.cycle.transitions[b.fx];c&&a.isFunction(c.preInit)&&c.preInit(b),b._preInitialized=!0},postInitSlideshow:function(){var b=this.opts();b.API.trigger("cycle-post-initialize",[b]);var c=a.fn.cycle.transitions[b.fx];c&&a.isFunction(c.postInit)&&c.postInit(b)},initSlideshow:function(){var b,c=this.opts(),d=c.container;c.API.calcFirstSlide(),"static"==c.container.css("position")&&c.container.css("position","relative"),a(c.slides[c.currSlide]).css({opacity:1,display:"block",visibility:"visible"}),c.API.stackSlides(c.slides[c.currSlide],c.slides[c.nextSlide],!c.reverse),c.pauseOnHover&&(c.pauseOnHover!==!0&&(d=a(c.pauseOnHover)),d.hover(function(){c.API.pause(!0)},function(){c.API.resume(!0)}
vendor: 17,577 bytes, line 1
1)),c.timeout&&(b=c.API.getSlideOpts(c.currSlide),c.API.queueTransition(b,b.timeout+c.delay)),c._initialized=!0,c.API.updateView(!0),c.API.trigger("cycle-initialized",[c]),c.API.postInitSlideshow()},pause:function(b){var c=this.opts(),d=c.API.getSlideOpts(),e=c.hoverPaused||c.paused;b?c.hoverPaused=!0:c.paused=!0,e||(c.container.addClass("cycle-paused"),c.API.trigger("cycle-paused",[c]).log("cycle-paused"),d.timeout&&(clearTimeout(c.timeoutId),c.timeoutId=0,c._remainingTimeout-=a.now()-c._lastQueue,(c._remainingTimeout<0||isNaN(c._remainingTimeout))&&(c._remainingTimeout=void 0)))},resume:function(a){var b=this.opts(),c=!b.hoverPaused&&!b.paused;a?b.hoverPaused=!1:b.paused=!1,c||(b.container.removeClass("cycle-paused"),0===b.slides.filter(":animated").length&&b.API.queueTransition(b.API.getSlideOpts(),b._remainingTimeout),b.API.trigger("cycle-resumed",[b,b._remainingTimeout]).log("cycle-resumed"))},add:function(b,c){var d,e=this.opts(),f=e.slideCount,g=!1;"string"==a.type(b)&&(b=a.trim(b)),a(b).each(function(){var b,d=a(this);c?e.container.prepend(d):e.container.append(d),e.slideCount++,b=e.API.buildSlideOpts(d),e.slides=c?a(d).add(e.slides):e.slides.add(d),e.API.initSlide(b,d,--e._maxZ),d.data("cycle.opts",b),e.API.trigger("cycle-slide-added",[e,b,d])}),e.API.updateView(!0),g=e._preInitialized&&2>f&&e.slideCount>=1,g&&(e._initialized?e.timeout&&(d=e.slides.length,e.nextSlide=e.reverse?d-1:1,e.timeoutId||e.API.queueTransition(e)):e.API.initSlideshow())},calcFirstSlide:function(){var a,b=this.opts();a=parseInt(b.startingSlide||0,10),(a>=b.slides.length||0>a)&&(a=0),b.currSlide=a,b.reverse?(b.nextSlide=a-1,b.nextSlide<0&&(b.nextSlide=b.slides.length-1)):(b.nextSlide=a+1,b.nextSlide==b.slides.length&&(b.nextSlide=0))},calcNextSlide:function(){var a,b=this.opts();b.reverse?(a=b.nextSlide-1<0,b.nextSlide=a?b.slideCount-1:b.nextSlide-1,b.currSlide=a?0:b.nextSlide+1):(a=b.nextSlide+1==b.slides.length,b.nextSlide=a?0:b.nextSlide+1,b.currSlide=a?b.slides.length-1:b.nextSlide-1)},calcTx:function(b,c){var d,e=b;return e._tempFx?d=a.fn.cycle.transitions[e._tempFx]:c&&e.manualFx&&(d=a.fn.cycle.transitions[e.manualFx]),d||(d=a.fn.cycle.transitions[e.fx]),e._tempFx=null,this.opts()._tempFx=null,d||(d=a.fn.cycle.transitions.fade,e.API.log(\'Transition "\'+e.fx+\'" not found.  Using fade.\')),d},prepareTx:function(a,b){var c,d,e,f,g,h=this.opts();return h.slideCount<2?void(h.timeoutId=0):(!a||h.busy&&!h.manualTrump||(h.API.stopTransition(),h.busy=!1,clearTimeout(h.timeoutId),h.timeoutId=0),void(h.busy||(0!==h.timeoutId||a)&&(d=h.slides[h.currSlide],e=h.slides[h.nextSlide],f=h.API.getSlideOpts(h.nextSlide),g=h.API.calcTx(f,a),h._tx=g,a&&void 0!==f.manualSpeed&&(f.speed=f.manualSpeed),h.nextSlide!=h.currSlide&&(a||!h.paused&&!h.hoverPaused&&h.timeout)?(h.API.trigger("cycle-before",[f,d,e,b]),g.before&&g.before(f,d,e,b),c=function(){h.busy=!1,h.container.data("cycle.opts")&&(g.after&&g.after(f,d,e,b),h.API.trigger("cycle-after",[f,d,e,b]),h.API.queueTransition(f),h.API.updateView(!0))},h.busy=!0,g.transition?g.transition(f,d,e,b,c):h.API.doTransition(f,d,e,b,c),h.API.calcNextSlide(),h.API.updateView()):h.API.queueTransition(f))))},doTransition:function(b,c,d,e,f){var g=b,h=a(c),i=a(d),j=function(){i.animate(g.animIn||{opacity:1},g.speed,g.easeIn||g.easing,f)};i.css(g.cssBefore||{}),h.animate(g.animOut||{},g.speed,g.easeOut||g.easing,function(){h.css(g.cssAfter||{}),g.sync||j()}),g.sync&&j()},queueTransition:function(b,c){var d=this.opts(),e=void 0!==c?c:b.timeout;return 0===d.nextSlide&&0===--d.loop?(d.API.log("terminating; loop=0"),d.timeout=0,e?setTimeout(function(){d.API.trigger("cycle-finished",[d])},e):d.API.trigger("cycle-finished",[d]),void(d.nextSlide=d.currSlide)):void 0!==d.continueAuto&&(d.continueAuto===!1||a.isFunction(d.continueAuto)&&d.continueAuto()===!1)?(d.API.log("terminating automatic transitions"),d.timeout=0,void(d.timeoutId&&clearTimeout(d.timeoutId))):void(e&&(d._lastQueue=a.now(),void 0===c&&(d._remainingTimeout=b.timeout),d.paused||d.hoverPaused||(d.timeoutId=setTimeout(function(){d.API.prepareTx(!1,!d.reverse)},e))))},stopTransition:function(){var a=this.opts();a.slides.filter(":animated").length&&(a.slides.stop(!1,!0),a.API.trigger("cycle-transition-stopped",[a])),a._tx&&a._tx.stopTransition&&a._tx.stopTransition(a)},advanceSlide:function(a){var b=this.opts();return clearTimeout(b.timeoutId),b.timeoutId=0,b.nextSlide=b.currSlide+a,b.nextSlide<0?b.nextSlide=b.slides.length-1:b.nextSlide>=b.slides.length&&(b.nextSlide=0),b.API.prepareTx(!0,a>=0),!1},buildSlideOpts:function(c){var d,e,f=this.opts(),g=c.data()||{};for(var h in g)g.hasOwnProperty(h)&&/^cycle[A-Z]+/.test(h)&&(d=g[h],e=h.match(/^cycle(.*)/)[1].replace(/^[A-Z]/,b),f.API.log("["+(f.slideCount-1)+"]",e+":",d,"("+typeof d+")"),g[e]=d);g=a.extend({},a.fn.cycle.defaults,f,g),g.slideNum=f.slideCount;try{delete g.API,delete g.slideCount,delete g.currSlide,delete g.nextSlide,delete g.slides}catch(i){}return g},getSlideOpts:function(b){var c=this.opts();void 0===b&&(b=c.currSlide);var d=c.slides[b],e=a(d).data("cycle.opts");return a.extend({},c,e)},initSlide:function(b,c,d){var e=this.opts();c.css(b.slideCss||{}),d>0&&c.css("zIndex",d),isNaN(b.speed)&&(b.speed=a.fx.speeds[b.speed]||a.fx.speeds._default),b.sync||(b.speed=b.speed/2),c.addClass(e.slideClass)},updateView:function(a,b){var c=this.opts();if(c._initialized){var d=c.API.getSlideOpts(),e=c.slides[c.currSlide];!a&&b!==!0&&(c.API.trigger("cycle-update-view-before",[c,d,e]),c.updateView<0)||(c.slideActiveClass&&c.slides.removeClass(c.slideActiveClass).eq(c.currSlide).addClass(c.slideActiveClass),a&&c.hideNonActive&&c.slides.filter(":not(."+c.slideActiveClass+")").css("visibility","hidden"),0===c.updateView&&setTimeout(function(){c.API.trigger("cycle-update-view",[c,d,e,a])},d.speed/(c.sync?2:1)),0!==c.updateView&&c.API.trigger("cycle-update-view",[c,d,e,a]),a&&c.API.trigger("cycle-update-view-after",[c,d,e]))}},getComponent:function(b){var c=this.opts(),d=c[b];return"string"==typeof d?/^\\s*[\\>|\\+|~]/.test(d)?c.container.find(d):a(d):d.jquery?d:a(d)},stackSlides:function(b,c,d){var e=this.opts();b||(b=e.slides[e.currSlide],c=e.slides[e.nextSlide],d=!e.reverse),a(b).css("zIndex",e.maxZ);var f,g=e.maxZ-2,h=e.slideCount;if(d){for(f=e.currSlide+1;h>f;f++)a(e.slides[f]).css("zIndex",g--);for(f=0;f<e.currSlide;f++)a(e.slides[f]).css("zIndex",g--)}else{for(f=e.currSlide-1;f>=0;f--)a(e.slides[f]).css("zIndex",g--);for(f=h-1;f>e.currSlide;f--)a(e.slides[f]).css("zIndex",g--)}a(c).css("zIndex",e.maxZ-1)},getSlideIndex:function(a){return this.opts().slides.index(a)}},a.fn.cycle.log=function(){/*window.console&&console.log&&console.log("[cycle2] "+Array.prototype.join.call(arguments," "))*/},a.fn.cycle.version=function(){return"Cycle2: "+c},a.fn.cycle.transitions={custom:{},none:{before:function(a,b,c,d){a.API.stackSlides(c,b,d),a.cssBefore={opacity:1,visibility:"visible",display:"block"}}},fade:{before:function(b,c,d,e){var f=b.API.getSlideOpts(b.nextSlide).slideCss||{};b.API.stackSlides(c,d,e),b.cssBefore=a.extend(f,{opacity:0,visibility:"visible",display:"block"}),b.animIn={opacity:1},b.animOut={opacity:0}}},fadeout:{before:function(b,c,d,e){var f=b.API.getSlideOpts(b.nextSlide).slideCss||{};b.API.stackSlides(c,d,e),b.cssBefore=a.extend(f,{opacity:1,visibility:"visible",display:"block"}),b.animOut={opacity:0}}},scrollHorz:{before:function(a,b,c,d){a.API.stackSlides(b,c,d);var e=a.container.css("overflow","hidden").width();a.cssBefore={left:d?e:-e,top:0,opacity:1,visibility:"visible",display:"block"},a.cssAfter={zIndex:a._maxZ-2,left:0},a.animIn={left:0},a.animOut={left:d?-e:e}}}},a.fn.cycle.defaults={allowWrap:!0,autoSelector:".cycle-slideshow[data-cycle-auto-init!=false]",delay:0,easing:null,fx:"fade",hideNonActive:!0,loop:0,manualFx:void 0,manualSpeed:void 0,manualTrump:!0,maxZ:100,pauseOnHover:!1,reverse:!1,slideActiveClass:"cycle-slide-active",slideClass:"cycle-slide",slideCss:{position:"absolute",top:0,left:0},slides:"> img",speed:500,startingSlide:0,sync:!0,timeout:4e3,updateView:0},a(document).ready(function(){a(a.fn.cycle.defaults.autoSelector).cycle()})}(jQuery),/*! Cycle2 autoheight plugin; Copyright (c) M.Alsup, 2012; version: 20130913 */\r\nfunction(a){"use strict";function b(b,d){var e,f,g,h=d.autoHeight;if("container"==h)f=a(d.slides[d.currSlide]).outerHeight(),d.container.height(f);else if(d._autoHeightRatio)d.container.height(d.container.width()/d._autoHeightRatio);else if("calc"===h||"number"==a.type(h)&&h>=0){if(g="calc"===h?c(b,d):h>=d.slides.length?0:h,g==d._sentinelIndex)return;d._sentinelIndex=g,d._sentinel&&d._sentinel.remove(),e=a(d.slides[g].cloneNode(!0)),e.removeAttr("id name rel").find("[id],[name],[rel]").removeAttr("id name rel"),e.css({position:"static",visibility:"hidden",display:"block"}).prependTo(d.container).addClass("cycle-sentinel cycle-slide").removeClass("cycle-slide-active"),e.find("*").css("visibility","hidden"),d._sentinel=e}}function c(b,c){var d=0,e=-1;return c.slides.each(function(b){var c=a(this).height();c>e&&(e=c,d=b)}),d}function d(b,c,d,e){var f=a(e).outerHeight();c.container.animate({height:f},c.autoHeightSpeed,c.autoHeightEasing)}function e(c,f){f._autoHeightOnResize&&(a(window).off("resize orientationchange",f._autoHeightOnResize),f._autoHeightOnResize=null),f.container.off("cycle-slide-added cycle-slide-removed",b),f.container.off("cycle-destroyed",e),f.container.off("cycle-before",d),f._sentinel&&(f._sentinel.remove(),f._sentinel=null)}a.extend(a.fn.cycle.defaults,{autoHeight:0,autoHeightSpeed:250,autoHeightEasing:null}),a(document).on("cycle-initialized",function(c,f){function g(){b(c,f)}var h,i=f.autoHeight,j=a.type(i),k=null;("string"===j||"number"===j)&&(f.container.on("cycle-slide-added cycle-slide-removed",b),f.container.on("cycle-destroyed",e),"container"==i?f.container.on("cycle-before",d):"string"===j&&/\\d+\\:\\d+/.test(i)&&(h=i.match(/(\\d+)\\:(\\d+)/),h=h[1]/h[2],f._autoHeightRatio=h),"number"!==j&&(f._autoHeightOnResize=function(){clearTimeout(k),k=setTimeout(g,50)},a(window).on("resize orientationchange",f._autoHeightOnResize)),setTimeout(g,30))})}(jQuery),/*! caption plugin for Cycle2;  version: 20130306 */\r\nfunction(a){"use strict";a.extend(a.fn.cycle.defaults,{caption:"> .cycle-caption",captionTemplate:"{{slideNum}} / {{slideCount}}",overlay:"> .cycle-overlay",overlayTemplate:"<div>{{title}}</div><div>{{desc}}</div>",captionModule:"caption"}),a(document).on("cycle-update-view",function(b,c,d,e){if("caption"===c.captionModule){a.each(["caption","overlay"],function(){var a=this,b=d[a+"Template"],f=c.API.getComponent(a);f.length&&b?(f.html(c.API.tmpl(b,d,c,e)),f.show()):f.hide()})}}),a(document).on("cycle-destroyed",function(b,c){var d;a.each(["caption","overlay"],function(){var a=this,b=c[a+"Template"];c[a]&&b&&(d=c.API.getComponent("caption"),d.empty())})})}(jQuery),/*! command plugin for Cycle2;  version: 20140415 */\r\nfunction(a){"use strict";var b=a.fn.cycle;a.fn.cycle=function(c){var d,e,f,g=a.makeArray(arguments);return"number"==a.type(c)?this.cycle("goto",c):"string"==a.type(c)?this.each(function(){var h;return d=c,f=a(this).data("cycle.opts"),void 0===f?void b.log(\'slideshow must be initialized before sending commands; "\'+d+\'" ignored\'):(d="goto"==d?"jump":d,e=f.API[d],a.isFunction(e)?(h=a.makeArray(g),h.shift(),e.apply(f.API,h)):void b.log("unknown command: ",d))}):b.apply(this,arguments)},a.extend(a.fn.cycle,b),a.extend(b.API,{next:function(){var a=this.opts();if(!a.busy||a.manualTrump){var b=a.reverse?-1:1;a.allowWrap===!1&&a.currSlide+b>=a.slideCount||(a.API.advanceSlide(b),a.API.trigger("cycle-next",[a]).log("cycle-next"))}},prev:function(){var a=this.opts();if(!a.busy||a.manualTrump){var b=a.reverse?1:-1;a.allowWrap===!1&&a.currSlide+b<0||(a.API.advanceSlide(b),a.API.trigger("cycle-prev",[a]).log("cycle-prev"))}},destroy:function(){this.stop();var b=this.opts(),c=a.isFunction(a._data)?a._data:a.noop;clearTimeout(b.timeoutId),b.timeoutId=0,b.API.stop(),b.API.trigger("cycle-destroyed",[b]).log("cycle-destroyed"),b.container.removeData(),c(b.container[0],"parsedAttrs",!1),b.retainStylesOnDestroy||(b.container.removeAttr("style"),b.slides.removeAttr("style"),b.slides.removeClass(b.slideActiveClass)),b.slides.each(function(){var d=a(this);d.removeData(),d.removeClass(b.slideClass),c(this,"parsedAttrs",!1)})},jump:function(a,b){var c,d=this.opts();if(!d.busy||d.manualTrump){var e=parseInt(a,10);if(isNaN(e)||0>e||e>=d.slides.length)return void d.API.log("goto: invalid slide index: "+e);if(e==d.currSlide)return void d.API.log("goto: skipping, already on slide",e);d.nextSlide=e,clearTimeout(d.timeoutId),d.timeoutId=0,d.API.log("goto: ",e," (zero-index)"),c=d.currSlide<d.nextSlide,d._tempFx=b,d.API.prepareTx(!0,c)}},stop:function(){var b=this.opts(),c=b.container;clearTimeout(b.timeoutId),b.timeoutId=0,b.API.stopTransition(),b.pauseOnHover&&(b.pauseOnHover!==!0&&(c=a(b.pauseOnHover)),c.off("mouseenter mouseleave")),b.API.trigger("cycle-stopped",[b]).log("cycle-stopped")},reinit:function(){var a=this.opts();a.API.destroy(),a.container.cycle()},remove:function(b){for(var c,d,e=this.opts(),f=[],g=1,h=0;h<e.slides.length;h++)c=e.slides[h],h==b?d=c:(f.push(c),a(c).data("cycle.opts").slideNum=g,g++);d&&(e.slides=a(f),e.slideCount--,a(d).remove(),b==e.currSlide?e.API.advanceSlide(1):b<e.currSlide?e.currSlide--:e.currSlide++,e.API.trigger("cycle-slide-removed",[e,b,d]).log("cycle-slide-removed"),e.API.updateView())}}),a(document).on("click.cycle","[data-cycle-cmd]",function(b){b.preventDefault();var c=a(this),d=c.data("cycle-cmd"),e=c.data("cycle-context")||".cycle-slideshow";a(e).cycle(d,c.data("cycle-arg"))})}(jQuery),/*! hash plugin for Cycle2;  version: 20130905 */\r\nfunction(a){"use strict";function b(b,c){var d;return b._hashFence?void(b._hashFence=!1):(d=window.location.hash.substring(1),void b.slides.each(function(e){if(a(this).data("cycle-hash")==d){if(c===!0)b.startingSlide=e;else{var f=b.currSlide<e;b.nextSlide=e,b.API.prepareTx(!0,f)}return!1}}))}a(document).on("cycle-pre-initialize",function(c,d){b(d,!0),d._onHashChange=function(){b(d,!1)},a(window).on("hashchange",d._onHashChange)}),a(document).on("cycle-update-view",function(a,b,c){c.hash&&"#"+c.hash!=window.location.hash&&(b._hashFence=!0,window.location.hash=c.hash)}),a(document).on("cycle-destroyed",function(b,c){c._onHashChange&&a(window).off("hashchange",c._onHashChange)})}(jQuery),/*! loader plugin for Cycle2;  version: 20131121 */\r\nfunction(a){"use strict";a.extend(a.fn.cycle.defaults,{loader:!1}),a(document).on("cycle-bootstrap",function(b,c){function d(b,d){function f(b){var f;"wait"==c.loader?(h.push(b),0===j&&(h.sort(g),e.apply(c.API,[h,d]),c.container.removeClass("cycle-loading"))):(f=a(c.slides[c.currSlide]),e.apply(c.API,[b,d]),f.show(),c.container.removeClass("cycle-loading"))}function g(a,b){return a.data("index")-b.data("index")}var h=[];if("string"==a.type(b))b=a.trim(b);else if("array"===a.type(b))for(var i=0;i<b.length;i++)b[i]=a(b[i])[0];b=a(b);var j=b.length;j&&(b.css("visibility","hidden").appendTo("body").each(function(b){function g(){0===--i&&(--j,f(k))}var i=0,k=a(this),l=k.is("img")?k:k.find("img");return k.data("index",b),l=l.filter(":not(.cycle-loader-ignore)").filter(\':not([src=""])\'),l.length?(i=l.length,void l.each(function(){this.complete?g():a(this).load(function(){g()}).on("error",function(){0===--i&&(c.API.log("slide skipped; img not loaded:",this.src),0===--j&&"wait"==c.loader&&e.apply(c.API,[h,d]))})})):(--j,void h.push(k))}),j&&c.container.addClass("cycle-loading"))}var e;c.loader&&(e=c.API.add,c.API.add=d)})}(jQuery),/*! pager plugin for Cycle2;  version: 20140415 */\r\nfunction(a){"use strict";function b(b,c,d){var e,f=b.API.getComponent("pager");f.each(function(){var f=a(this);if(c.pagerTemplate){var g=b.API.tmpl(c.pagerTemplate,c,b,d[0]);e=a(g).appendTo(f)}else e=f.children().eq(b.slideCount-1);e.on(b.pagerEvent,function(a){b.pagerEventBubble||a.preventDefault(),b.API.page(f,a.currentTarget)})})}function c(a,b){var c=this.opts();if(!c.busy||c.manualTrump){var d=a.children().index(b),e=d,f=c.currSlide<e;c.currSlide!=e&&(c.nextSlide=e,c._tempFx=c.pagerFx,c.API.prepareTx(!0,f),c.API.trigger("cycle-pager-activated",[c,a,b]))}}a.extend(a.fn.cycle.defaults,{pager:"> .cycle-pager",pagerActiveClass:"cycle-pager-active",pagerEvent:"click.cycle",pagerEventBubble:void 0,pagerTemplate:"<span>&bull;</span>"}),a(document).on("cycle-bootstrap",function(a,c,d){d.buildPagerLink=b}),a(document).on("cycle-slide-added",function(a,b,d,e){b.pager&&(b.API.buildPagerLink(b,d,e),b.API.page=c)}),a(document).on("cycle-slide-removed",function(b,c,d){if(c.pager){var e=c.API.getComponent("pager");e.each(function(){var b=a(this);a(b.children()[d]).remove()})}}),a(document).on("cycle-update-view",function(b,c){var d;c.pager&&(d=c.API.getComponent("pager"),d.each(function(){a(this).children().removeClass(c.pagerActiveClass).eq(c.currSlide).addClass(c.pagerActiveClass)}))}),a(document).on("cycle-destroyed",function(a,b){var c=b.API.getComponent("pager");c&&(c.children().off(b.pagerEvent),b.pagerTemplate&&c.empty())})}(jQuery),/*! prevnext plugin for Cycle2;  version: 20140408 */\r\nfunction(a){"use strict";a.extend(a.fn.cycle.defaults,{next:"> .cycle-next",nextEvent:"click.cycle",disabledClass:"disabled",prev:"> .cycle-prev",prevEvent:"click.cycle",swipe:!1}),a(document).on("cycle-initialized",function(a,b){if(b.API.getComponent("next").on(b.nextEvent,function(a){a.preventDefault(),b.API.next()}),b.API.getComponent("prev").on(b.prevEvent,function(a){a.preventDefault(),b.API.prev()}
1),b.swipe){var c=b.swipeVert?"swipeUp.cycle":"swipeLeft.cycle swipeleft.cycle",d=b.swipeVert?"swipeDown.cycle":"swipeRight.cycle swiperight.cycle";b.container.on(c,function(){b._tempFx=b.swipeFx,b.API.next()}),b.container.on(d,function(){b._tempFx=b.swipeFx,b.API.prev()})}}),a(document).on("cycle-update-view",function(a,b){if(!b.allowWrap){var c=b.disabledClass,d=b.API.getComponent("next"),e=b.API.getComponent("prev"),f=b._prevBoundry||0,g=void 0!==b._nextBoundry?b._nextBoundry:b.slideCount-1;b.currSlide==g?d.addClass(c).prop("disabled",!0):d.removeClass(c).prop("disabled",!1),b.currSlide===f?e.addClass(c).prop("disabled",!0):e.removeClass(c).prop("disabled",!1)}}),a(document).on("cycle-destroyed",function(a,b){b.API.getComponent("prev").off(b.nextEvent),b.API.getComponent("next").off(b.prevEvent),b.container.off("swipeleft.cycle swiperight.cycle swipeLeft.cycle swipeRight.cycle swipeUp.cycle swipeDown.cycle")})}(jQuery),/*! progressive loader plugin for Cycle2;  version: 20130315 */\r\nfunction(a){"use strict";a.extend(a.fn.cycle.defaults,{progressive:!1}),a(document).on("cycle-pre-initialize",function(b,c){if(c.progressive){var d,e,f=c.API,g=f.next,h=f.prev,i=f.prepareTx,j=a.type(c.progressive);if("array"==j)d=c.progressive;else if(a.isFunction(c.progressive))d=c.progressive(c);else if("string"==j){if(e=a(c.progressive),d=a.trim(e.html()),!d)return;if(/^(\\[)/.test(d))try{d=a.parseJSON(d)}catch(k){return void f.log("error parsing progressive slides",k)}else d=d.split(new RegExp(e.data("cycle-split")||"\\n")),d[d.length-1]||d.pop()}i&&(f.prepareTx=function(a,b){var e,f;return a||0===d.length?void i.apply(c.API,[a,b]):void(b&&c.currSlide==c.slideCount-1?(f=d[0],d=d.slice(1),c.container.one("cycle-slide-added",function(a,b){setTimeout(function(){b.API.advanceSlide(1)},50)}),c.API.add(f)):b||0!==c.currSlide?i.apply(c.API,[a,b]):(e=d.length-1,f=d[e],d=d.slice(0,e),c.container.one("cycle-slide-added",function(a,b){setTimeout(function(){b.currSlide=1,b.API.advanceSlide(-1)},50)}),c.API.add(f,!0)))}),g&&(f.next=function(){var a=this.opts();if(d.length&&a.currSlide==a.slideCount-1){var b=d[0];d=d.slice(1),a.container.one("cycle-slide-added",function(a,b){g.apply(b.API),b.container.removeClass("cycle-loading")}),a.container.addClass("cycle-loading"),a.API.add(b)}else g.apply(a.API)}),h&&(f.prev=function(){var a=this.opts();if(d.length&&0===a.currSlide){var b=d.length-1,c=d[b];d=d.slice(0,b),a.container.one("cycle-slide-added",function(a,b){b.currSlide=1,b.API.advanceSlide(-1),b.container.removeClass("cycle-loading")}),a.container.addClass("cycle-loading"),a.API.add(c,!0)}else h.apply(a.API)})}})}(jQuery),/*! tmpl plugin for Cycle2;  version: 20121227 */\r\nfunction(a){"use strict";a.extend(a.fn.cycle.defaults,{tmplRegex:"{{((.)?.*?)}}"}),a.extend(a.fn.cycle.API,{tmpl:function(b,c){var d=new RegExp(c.tmplRegex||a.fn.cycle.defaults.tmplRegex,"g"),e=a.makeArray(arguments);return e.shift(),b.replace(d,function(b,c){var d,f,g,h,i=c.split(".");for(d=0;d<e.length;d++)if(g=e[d]){if(i.length>1)for(h=g,f=0;f<i.length;f++)g=h,h=h[i[f]]||c;else h=g[c];if(a.isFunction(h))return h.apply(g,e);if(void 0!==h&&null!==h&&h!=c)return h}return c})}})}(jQuery);\r\n'},function(t,e,r){r(0)(r(9))},function(t,e){t.exports="// this script can be used standalone, or in combination with other scripts\r\n\r\n/**\r\n * Initialisation\r\n *\r\n */\r\nif (typeof(IMUtility) == 'undefined') {\r\n    IMUtility = {};\r\n    IMUtility.init = function() {\r\n        IMUtility.debug=1;\r\n        IMUtility.regionMaxDateCols = {'small':6,'medium':9,'large':9};// Max date cols to show on the region gadget\r\n        IMUtility.itemMaxDateCols = {'small':3,'medium':7,'large':7}; // Max date cols to show on the item details gadget\r\n        IMUtility.productTypes = ['tours','accom','carhire','events','packages'];\r\n        // events\r\n        IMUtility.searchGadgetReady = 0;\r\n        IMUtility.refineToolsBuilt = 0;\r\n        IMUtility.regionGadgetReady = 0;\r\n        IMUtility.regionGadgetBuilt = 0;\r\n        IMUtility.regionGadgetBuiltInterval = 0;\r\n\r\n        // transformations\r\n        IMUtility.searchGadgetTransform = 0;\r\n        IMUtility.refineToolsSearchTransform = 0;\r\n        IMUtility.refineToolsRegionTransform = 0;\r\n        IMUtility.regionGadgetTransform = 0;\r\n        IMUtility.regionGadgetTransformResults = 0;\r\n        IMUtility.regionGadgetTransformGrid = 0;\r\n        IMUtility.regionGadgetTransformList = 0;\r\n\r\n        if (typeof(wisDOM) != 'undefined') { jQuery(document).trigger('gadget.script.ready');IMUtility.pushGadgetScriptLoadedEvent(); }\r\n        else { setTimeout('IMUtility.init();', 100); }\r\n    };\r\n    jQuery(document).ready(function() { IMUtility.init(); });\r\n}\r\n// #12806 - wait for 100ms then publish a secondary gadget.loaded event\r\nIMUtility.pushGadgetScriptLoadedEvent = function() {\r\n\r\n    setTimeout(function() {\r\n        jQuery(document).trigger('gadget.script.loaded');\r\n    }, 100);\r\n};\r\n\r\n\r\n/**\r\n *\r\n * EVENT: search.gadget.ready\r\n *\r\n */\r\nIMUtility.pushSearchGadgetLoadedEvent = function() {\r\n    if (jQuery('.search-gadget .date .input').length > 0 && IMUtility.searchGadgetReady === 0) {\r\n        $w.event.publish('search.gadget.ready');\r\n        IMUtility.searchGadgetReady = 1;\r\n    } else {\r\n        setTimeout('IMUtility.pushSearchGadgetLoadedEvent();', 100);\r\n    }\r\n};\r\n\r\n\r\n/**\r\n *\r\n * EVENT: region.gadget.ready\r\n *\r\n */\r\nIMUtility.pushRegionGadgetLoadedEvent = function() {\r\n    if (jQuery('.prices-grid td.date').length > 0 && IMUtility.regionGadgetReady === 0) {\r\n        $w.event.publish('region.gadget.ready');\r\n        IMUtility.regionGadgetReady = 1;\r\n    } else {\r\n        setTimeout('IMUtility.pushRegionGadgetLoadedEvent();', 100);\r\n    }\r\n};\r\n\r\n/**\r\n *\r\n * EVENT HANDLER: wait for Region Gadget to be rebuilt\r\n *\r\n */\r\nIMUtility.waitForRegionRebuild = function() {\r\n\r\n    if (IMUtility.debug) console.log(\"IMUtility.waitForRegionRebuild()\");\r\n\r\n    if (IMUtility.regionGadgetBuilt === 0) {\r\n        if (IMUtility.debug) console.log(\"...... region gadget is cleared\");\r\n        return true;\r\n    }\r\n\r\n    jQuery('.region-gadget.BE .prices-grid .accom.type-group').on('DOMNodeInserted DOMNodeRemoved',function() {\r\n        if (IMUtility.debug) console.log(\"...... accom type group has changed\");\r\n        IMUtility.regionGadgetBuilt = 0;\r\n    });\r\n    jQuery('.region-gadget.BE .prices-grid .tours.type-group').on('DOMNodeInserted DOMNodeRemoved',function() {\r\n        if (IMUtility.debug) console.log(\"...... tours type group has changed\");\r\n        IMUtility.regionGadgetBuilt = 0;\r\n    });\r\n    jQuery('.region-gadget.BE .prices-grid .events.type-group').on('DOMNodeInserted DOMNodeRemoved',function() {\r\n        if (IMUtility.debug) console.log(\"...... events type group has changed\");\r\n        IMUtility.regionGadgetBuilt = 0;\r\n    });\r\n    jQuery('.region-gadget.BE .prices-grid .carhire.type-group').on('DOMNodeInserted DOMNodeRemoved',function() {\r\n        if (IMUtility.debug) console.log(\"...... carhire type group has changed\");\r\n        IMUtility.regionGadgetBuilt = 0;\r\n    });\r\n    jQuery('.region-gadget.BE .prices-grid .packages.type-group').on('DOMNodeInserted DOMNodeRemoved',function() {\r\n        if (IMUtility.debug) console.log(\"...... packages type group has changed\");\r\n        IMUtility.regionGadgetBuilt = 0;\r\n    });\r\n\r\n\r\n\r\n};\r\n\r\n\r\n/**\r\n * EVENT: region.refinetools.built\r\n * EVENT: region.gadget.built\r\n */\r\nIMUtility.pushRegionGadgetChangedEvent = function() {\r\n\r\n\r\n\r\n    /**\r\n     * PUBLISH EVENT: region.refinetools.built\r\n     * check if there is at least one product tab group rendered on the page\r\n     *\r\n     */\r\n    if (jQuery('.embeded-search .refineTools').length > 0 && IMUtility.refineToolsBuilt === 0) {\r\n        $w.event.publish('region.refinetools.built');\r\n        IMUtility.refineToolsBuilt += 1;\r\n        if (IMUtility.debug) console.log(\"publish event: region refinetools built [\"+IMUtility.refineToolsBuilt+\"]\");\r\n    }\r\n\r\n\r\n    /**\r\n     * PUBLISH EVENT: region.gadget.built\r\n     * check if all product type-group blocks are displayed and bootstrap has been applied\r\n     *\r\n     */\r\n    if ( (\r\n            (jQuery('.region-gadget.BE .accom.type-group').css('display') == 'block' && jQuery('.region-gadget.BE .accom.type-group td.date.hidden-xs').length == 0) ||\r\n            (jQuery('.region-gadget.BE .tours.type-group').css('display') == 'block' && jQuery('.region-gadget.BE .tours.type-group td.date.hidden-xs').length == 0) ||\r\n            (jQuery('.region-gadget.BE .events.type-group').css('display') == 'block' && jQuery('.region-gadget.BE .events.type-group td.date.hidden-xs').length == 0)  ||\r\n            (jQuery('.region-gadget.BE .carhire.type-group').css('display') == 'block' && jQuery('.region-gadget.BE .carhire.type-group td.date.hidden-xs').length == 0) ||\r\n            (jQuery('.region-gadget.BE .packages.type-group').css('display') == 'block' && jQuery('.region-gadget.BE .packages.type-group td.date.hidden-xs').length == 0)\r\n        ) && IMUtility.regionGadgetBuilt === 0 ) {\r\n        $w.event.publish('region.gadget.built');\r\n        if (IMUtility.debug) console.log(\"publish event: region gadget built\");\r\n    }\r\n\r\n    setTimeout('IMUtility.pushRegionGadgetChangedEvent();', 50);\r\n};\r\n\r\n\r\n\r\n\r\n\r\n// wait for the booking gadget to have loaded, then publish an event\r\n\r\nIMUtility.pushBookGadgetLoadedEvent = function() {\r\n    if (jQuery('.booking-gadget .cartItems').length > 0) {\r\n        $w.event.publish('book.gadget.ready');\r\n    } else {\r\n        setTimeout('IMUtility.pushBookGadgetLoadedEvent();', 100);\r\n    }\r\n};\r\n\r\n// sometimes the changes we do to the DOM are lost, e.g. after user adds or removes cart items in the booking gadget... we need to re-publish the events when this happens\r\n\r\nIMUtility.pushBookGadgetChangedEvent = function() {\r\n    if ((jQuery('.booking-gadget .personalDetails').length > 0) && !jQuery('.personalDetails').hasClass('imUtilityStyled')) {\r\n        jQuery('.personalDetails').addClass('imUtilityStyled');\r\n        $w.event.publish('book.gadget.ready');\r\n    }\r\n    setTimeout('IMUtility.pushBookGadgetChangedEvent();', 100);\r\n};\r\n\r\n// utility function\r\nIMUtility.redirect = function(url_file) {\r\n    document.location.href = url_file;\r\n};\r\n\r\nIMUtility.getSelectedProduct = function() {\r\n    var selectedProduct = wisDOM($w('div.product select')).val();\r\n    if (IMUtility.debug) console.log('getSelectedProduct() = '+selectedProduct);\r\n    jQuery('li .product-type').each(function() {\r\n        if (jQuery(this).hasClass(selectedProduct)) {\r\n            jQuery(this).parent().addClass('active');\r\n        } else {\r\n            jQuery(this).parent().removeClass('active');\r\n        }\r\n    });\r\n    return selectedProduct;\r\n};\r\n\r\nIMUtility.removeBootstrap = function(element) {\r\n\telement.removeClass('col-xs-1 col-sm-1 col-md-1 col-lg-1 col-xs-2 col-sm-2 col-md-2 col-lg-2 col-xs-3 col-sm-3 col-md-3 col-lg-3 col-xs-4 col-sm-4 col-md-4 col-lg-4 col-xs-5 col-sm-5 col-md-5 col-lg-5 col-xs-6 col-sm-6 col-md-6 col-lg-6 col-xs-7 col-sm-7 col-md-7 col
vendor: 10,485 bytes, line 1
1-lg-7 col-xs-8 col-sm-8 col-md-8 col-lg-8 col-xs-9 col-sm-9 col-md-9 col-lg-9 col-xs-10 col-sm-10 col-md-10 col-lg-10 col-xs-11 col-sm-11 col-md-11 col-lg-11 col-xs-12 col-sm-12 col-md-12 col-lg-12');\r\n\telement.removeClass('col-xs-1_3 col-sm-1_3 col-md-1_3 col-lg-1_3 col-xs-1_5 col-sm-1_5 col-md-1_5 col-lg-1_5 col-xs-2_5 col-sm-2_5 col-md-2_5 col-lg-2_5 col-xs-3_5 col-sm-3_5 col-md-3_5 col-lg-3_5 col-xs-4_5 col-sm-4_5 col-md-4_5 col-lg-4_5 col-xs-5_5 col-sm-5_5 col-md-5_5 col-lg-5_5 col-xs-6_5 col-sm-6_5 col-md-6_5 col-lg-6_5 col-xs-7_5 col-sm-7_5 col-md-7_5 col-lg-7_5 col-xs-8_5 col-sm-8_5 col-md-8_5 col-lg-8_5 col-xs-9_5 col-sm-9_5 col-md-9_5 col-lg-9_5 col-xs-10_5 col-sm-10_5 col-md-10_5 col-lg-10_5 col-xs-11_5 col-sm-11_5 col-md-11_5 col-lg-11_5');\r\n\treturn element;\r\n};\r\n\r\n(function ($) {\r\n\r\n    /**\r\n     * @function\r\n     * @property {object} jQuery plugin which runs handler function once specified element is inserted into the DOM\r\n     * @param {function} handler A function to execute at the time when the element is inserted\r\n     * @param {bool} shouldRunHandlerOnce Optional: if true, handler is unbound after its first invocation\r\n     * @example $(selector).waitUntilExists(function);\r\n     */\r\n\r\n    $.fn.IMElementExists\t= function (handler, shouldRunHandlerOnce, isChild) {\r\n        var found\t= 'found';\r\n        var $this\t= $(this.selector);\r\n        var $elements\t= $this.not(function () { return $(this).data(found); }).each(handler).data(found, true);\r\n\r\n        if (!isChild)\r\n        {\r\n            (window.waitUntilExists_Intervals = window.waitUntilExists_Intervals || {})[this.selector] =\r\n                window.setInterval(function () { $this.IMElementExists(handler, shouldRunHandlerOnce, true); }, 500)\r\n            ;\r\n        }\r\n        else if (shouldRunHandlerOnce && $elements.length)\r\n        {\r\n            window.clearInterval(window.waitUntilExists_Intervals[this.selector]);\r\n        }\r\n\r\n        return $this;\r\n    }\r\n\r\n}(jQuery));"},function(t,e,r){r(0)(r(11))},function(t,e){t.exports='/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */\r\n!function(a){"use strict";a(document).on("cycle-bootstrap",function(a,b,c){"carousel"===b.fx&&(c.getSlideIndex=function(a){var b=this.opts()._carouselWrap.children(),c=b.index(a);return c%b.length},c.next=function(){var a=b.reverse?-1:1;b.allowWrap===!1&&b.currSlide+a>b.slideCount-b.carouselVisible||(b.API.advanceSlide(a),b.API.trigger("cycle-next",[b]).log("cycle-next"))})}),a.fn.cycle.transitions.carousel={preInit:function(b){b.hideNonActive=!1,b.container.on("cycle-destroyed",a.proxy(this.onDestroy,b.API)),b.API.stopTransition=this.stopTransition;for(var c=0;c<b.startingSlide;c++)b.container.append(b.slides[0])},postInit:function(b){var c,d,e,f,g=b.carouselVertical;b.carouselVisible&&b.carouselVisible>b.slideCount&&(b.carouselVisible=b.slideCount-1);var h=b.carouselVisible||b.slides.length,i={display:g?"block":"inline-block",position:"static"};if(b.container.css({position:"relative",overflow:"hidden"}),b.slides.css(i),b._currSlide=b.currSlide,f=a(\'<div class="cycle-carousel-wrap"></div>\').prependTo(b.container).css({margin:0,padding:0,top:0,left:0,position:"absolute"}).append(b.slides),b._carouselWrap=f,g||f.css("white-space","nowrap"),b.allowWrap!==!1){for(d=0;d<(void 0===b.carouselVisible?2:1);d++){for(c=0;c<b.slideCount;c++)f.append(b.slides[c].cloneNode(!0));for(c=b.slideCount;c--;)f.prepend(b.slides[c].cloneNode(!0))}f.find(".cycle-slide-active").removeClass("cycle-slide-active"),b.slides.eq(b.startingSlide).addClass("cycle-slide-active")}b.pager&&b.allowWrap===!1&&(e=b.slideCount-h,a(b.pager).children().filter(":gt("+e+")").hide()),b._nextBoundry=b.slideCount-b.carouselVisible,this.prepareDimensions(b)},prepareDimensions:function(b){var c,d,e,f,g=b.carouselVertical,h=b.carouselVisible||b.slides.length;if(b.carouselFluid&&b.carouselVisible?b._carouselResizeThrottle||this.fluidSlides(b):b.carouselVisible&&b.carouselSlideDimension?(c=h*b.carouselSlideDimension,b.container[g?"height":"width"](c)):b.carouselVisible&&(c=h*a(b.slides[0])[g?"outerHeight":"outerWidth"](!0),b.container[g?"height":"width"](c)),d=b.carouselOffset||0,b.allowWrap!==!1)if(b.carouselSlideDimension)d-=(b.slideCount+b.currSlide)*b.carouselSlideDimension;else for(e=b._carouselWrap.children(),f=0;f<b.slideCount+b.currSlide;f++)d-=a(e[f])[g?"outerHeight":"outerWidth"](!0);b._carouselWrap.css(g?"top":"left",d)},fluidSlides:function(b){function c(){clearTimeout(e),e=setTimeout(d,20)}function d(){b._carouselWrap.stop(!1,!0);var a=b.container.width()/b.carouselVisible;a=Math.ceil(a-g),b._carouselWrap.children().width(a),b._sentinel&&b._sentinel.width(a),h(b)}var e,f=b.slides.eq(0),g=f.outerWidth()-f.width(),h=this.prepareDimensions;a(window).on("resize",c),b._carouselResizeThrottle=c,d()},transition:function(b,c,d,e,f){var g,h={},i=b.nextSlide-b.currSlide,j=b.carouselVertical,k=b.speed;if(b.allowWrap===!1){e=i>0;var l=b._currSlide,m=b.slideCount-b.carouselVisible;i>0&&b.nextSlide>m&&l==m?i=0:i>0&&b.nextSlide>m?i=b.nextSlide-l-(b.nextSlide-m):0>i&&b.currSlide>m&&b.nextSlide>m?i=0:0>i&&b.currSlide>m?i+=b.currSlide-m:l=b.currSlide,g=this.getScroll(b,j,l,i),b.API.opts()._currSlide=b.nextSlide>m?m:b.nextSlide}else e&&0===b.nextSlide?(g=this.getDim(b,b.currSlide,j),f=this.genCallback(b,e,j,f)):e||b.nextSlide!=b.slideCount-1?g=this.getScroll(b,j,b.currSlide,i):(g=this.getDim(b,b.currSlide,j),f=this.genCallback(b,e,j,f));h[j?"top":"left"]=e?"-="+g:"+="+g,b.throttleSpeed&&(k=g/a(b.slides[0])[j?"height":"width"]()*b.speed),b._carouselWrap.animate(h,k,b.easing,f)},getDim:function(b,c,d){var e=a(b.slides[c]);return e[d?"outerHeight":"outerWidth"](!0)},getScroll:function(a,b,c,d){var e,f=0;if(d>0)for(e=c;c+d>e;e++)f+=this.getDim(a,e,b);else for(e=c;e>c+d;e--)f+=this.getDim(a,e,b);return f},genCallback:function(b,c,d,e){return function(){var c=a(b.slides[b.nextSlide]).position(),f=0-c[d?"top":"left"]+(b.carouselOffset||0);b._carouselWrap.css(b.carouselVertical?"top":"left",f),e()}},stopTransition:function(){var a=this.opts();a.slides.stop(!1,!0),a._carouselWrap.stop(!1,!0)},onDestroy:function(){var b=this.opts();b._carouselResizeThrottle&&a(window).off("resize",b._carouselResizeThrottle),b.slides.prependTo(b.container),b._carouselWrap.remove()}}}(jQuery);'},function(t,e,r){r(0)(r(13))},function(t,e){t.exports='/*!\r\n * Generated using the Bootstrap Customizer (https://getbootstrap.com/docs/3.4/customize/)\r\n */\r\n\r\n/*!\r\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\r\n * Copyright 2011-2025 Twitter, Inc.\r\n * Licensed under the MIT license\r\n */\r\n\r\nif("undefined"==typeof jQuery)throw new Error("Bootstrap\'s JavaScript requires jQuery");+function(t){"use strict";var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1||e[0]>3)throw new Error("Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),n=i.data("bs.alert");n||i.data("bs.alert",n=new o(this)),"string"==typeof e&&n[e].call(i)})}var i=\'[data-dismiss="alert"]\',o=function(e){t(e).on("click",i,this.close)};o.VERSION="3.4.1",o.TRANSITION_DURATION=150,o.prototype.close=function(e){function i(){a.detach().trigger("closed.bs.alert").remove()}var n=t(this),s=n.attr("data-target");s||(s=n.attr("href"),s=s&&s.replace(/.*(?=#[^\\s]*$)/,"")),s="#"===s?[]:s;var a=t(document).find(s);e&&e.preventDefault(),a.length||(a=n.closest(".alert")),a.trigger(e=t.Event("close.bs.alert")),e.isDefaultPrevented()||(a.removeClass("in"),t.support.transition&&a.hasClass("fade")?a.one("bsTransitionEnd",i).emulateTransitionEnd(o.TRANSITION_DURATION):i())};var n=t.fn.alert;t.fn.alert=e,t.fn.alert.Constructor=o,t.fn.alert.noConflict=function(){return t.fn.alert=n,this},t(document).on("click.bs.alert.data-api",i,o.prototype.close)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.button"),s="object"==typeof e&&e;n||o.data("bs.button",n=new i(this,s)),"toggle"==e?n.toggle():e&&n.setState(e)})}var i=function(e,o){this.$element=t(e),this.options=t.extend({},i.DEFAULTS,o),this.isLoading=!1};i.VERSION="3.4.1",i.DEFAULTS={loadingText:"loading..."},i.prototype.setState=function(e){var i="disabled",o=this.$element,n=o.is("input")?"val":"html",s=o.data();e+="Text",null==s.resetText&&o.data("resetText",o[n]()),setTimeout(t.proxy(function(){o[n](null==s[e]?this.options[e]:s[e]),"loadingText"==e?(this.isLoading=!0,o.addClass(i).attr(i,i).prop(i,!0)):this.isLoading&&(this.isLoading=!1,o.removeClass(i).removeAttr(i).prop(i,!1))},this),0)},i.prototype.toggle=function(){var t=!0,e=this.$element.closest(\'[data-toggle="buttons"]\');if(e.length){var i=this.$element.find("input");"radio"==i.prop("type")?(i.prop("checked")&&(t=!1),e.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==i.prop("type")&&(i.prop("checked")!==this.$element.hasClass("active")&&(t=!1),this.$element.toggleClass("active")),i.prop("checked",this.$element.hasClass("active")),t&&i.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var o=t.fn.button;t.fn.button=e,t.fn.button.Constructor=i,t.fn.button.noConflict=function(){return t.fn.button=o,this},t(document).on("click.bs.button.data-api",\'[data-toggle^="button"]\',function(i){var o=t(i.target).closest(".btn");e.call(o,"toggle"),t(i.target).is(\'input[type="radio"], input[type="checkbox"]\')||(i.preventDefault(),o.is("input,button")?o.trigger("focus"):o.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",\'[data-toggle^="button"]\',function(e){t(e.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(e.type))})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.carousel"),s=t.extend({},i.DEFAULTS,o.data(),"object"==typeof e&&e),a="string"==typeof e?e:s.slide;n||o.data("bs.carousel",n=new i(this,s)),"number"==typeof e?n.to(e):a?n[a]():s.interval&&n.pause().cycle()})}var i=function(e,i){this.$element=t(e),this.$indicators=this.$element.find(".carousel-indicators"),this.options=i,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("key
1down.bs.carousel",t.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",t.proxy(this.pause,this)).on("mouseleave.bs.carousel",t.proxy(this.cycle,this))};i.VERSION="3.4.1",i.TRANSITION_DURATION=600,i.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},i.prototype.keydown=function(t){if(!/input|textarea/i.test(t.target.tagName)){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()}},i.prototype.cycle=function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},i.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},i.prototype.getItemForDirection=function(t,e){var i=this.getItemIndex(e),o="prev"==t&&0===i||"next"==t&&i==this.$items.length-1;if(o&&!this.options.wrap)return e;var n="prev"==t?-1:1,s=(i+n)%this.$items.length;return this.$items.eq(s)},i.prototype.to=function(t){var e=this,i=this.getItemIndex(this.$active=this.$element.find(".item.active"));return t>this.$items.length-1||0>t?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){e.to(t)}):i==t?this.pause().cycle():this.slide(t>i?"next":"prev",this.$items.eq(t))},i.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},i.prototype.next=function(){return this.sliding?void 0:this.slide("next")},i.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},i.prototype.slide=function(e,o){var n=this.$element.find(".item.active"),s=o||this.getItemForDirection(e,n),a=this.interval,r="next"==e?"left":"right",l=this;if(s.hasClass("active"))return this.sliding=!1;var h=s[0],d=t.Event("slide.bs.carousel",{relatedTarget:h,direction:r});if(this.$element.trigger(d),!d.isDefaultPrevented()){if(this.sliding=!0,a&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var p=t(this.$indicators.children()[this.getItemIndex(s)]);p&&p.addClass("active")}var c=t.Event("slid.bs.carousel",{relatedTarget:h,direction:r});return t.support.transition&&this.$element.hasClass("slide")?(s.addClass(e),"object"==typeof s&&s.length&&s[0].offsetWidth,n.addClass(r),s.addClass(r),n.one("bsTransitionEnd",function(){s.removeClass([e,r].join(" ")).addClass("active"),n.removeClass(["active",r].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger(c)},0)}).emulateTransitionEnd(i.TRANSITION_DURATION)):(n.removeClass("active"),s.addClass("active"),this.sliding=!1,this.$element.trigger(c)),a&&this.cycle(),this}};var o=t.fn.carousel;t.fn.carousel=e,t.fn.carousel.Constructor=i,t.fn.carousel.noConflict=function(){return t.fn.carousel=o,this};var n=function(i){var o=t(this),n=o.attr("href");n&&(n=n.replace(/.*(?=#[^\\s]+$)/,""));var s=o.attr("data-target")||n,a=t(document).find(s);if(a.hasClass("carousel")){var r=t.extend({},a.data(),o.data()),l=o.attr("data-slide-to");l&&(r.interval=!1),e.call(a,r),l&&a.data("bs.carousel").to(l),i.preventDefault()}};t(document).on("click.bs.carousel.data-api","[data-slide]",n).on("click.bs.carousel.data-api","[data-slide-to]",n),t(window).on("load",function(){t(\'[data-ride="carousel"]\').each(function(){var i=t(this);e.call(i,i.data())})})}(jQuery),+function(t){"use strict";function e(e){var i=e.attr("data-target");i||(i=e.attr("href"),i=i&&/#[A-Za-z]/.test(i)&&i.replace(/.*(?=#[^\\s]*$)/,""));var o="#"!==i?t(document).find(i):null;return o&&o.length?o:e.parent()}function i(i){i&&3===i.which||(t(n).remove(),t(s).each(function(){var o=t(this),n=e(o),s={relatedTarget:this};n.hasClass("open")&&(i&&"click"==i.type&&/input|textarea/i.test(i.target.tagName)&&t.contains(n[0],i.target)||(n.trigger(i=t.Event("hide.bs.dropdown",s)),i.isDefaultPrevented()||(o.attr("aria-expanded","false"),n.removeClass("open").trigger(t.Event("hidden.bs.dropdown",s)))))}))}function o(e){return this.each(function(){var i=t(this),o=i.data("bs.dropdown");o||i.data("bs.dropdown",o=new a(this)),"string"==typeof e&&o[e].call(i)})}var n=".dropdown-backdrop",s=\'[data-toggle="dropdown"]\',a=function(e){t(e).on("click.bs.dropdown",this.toggle)};a.VERSION="3.4.1",a.prototype.toggle=function(o){var n=t(this);if(!n.is(".disabled, :disabled")){var s=e(n),a=s.hasClass("open");if(i(),!a){"ontouchstart"in document.documentElement&&!s.closest(".
1navbar-nav").length&&t(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(t(this)).on("click",i);var r={relatedTarget:this};if(s.trigger(o=t.Event("show.bs.dropdown",r)),o.isDefaultPrevented())return;n.trigger("focus").attr("aria-expanded","true"),s.toggleClass("open").trigger(t.Event("shown.bs.dropdown",r))}return!1}},a.prototype.keydown=function(i){if(/(38|40|27|32)/.test(i.which)&&!/input|textarea/i.test(i.target.tagName)){var o=t(this);if(i.preventDefault(),i.stopPropagation(),!o.is(".disabled, :disabled")){var n=e(o),a=n.hasClass("open");if(!a&&27!=i.which||a&&27==i.which)return 27==i.which&&n.find(s).trigger("focus"),o.trigger("click");var r=" li:not(.disabled):visible a",l=n.find(".dropdown-menu"+r);if(l.length){var h=l.index(i.target);38==i.which&&h>0&&h--,40==i.which&&h<l.length-1&&h++,~h||(h=0),l.eq(h).trigger("focus")}}}};var r=t.fn.dropdown;t.fn.dropdown=o,t.fn.dropdown.Constructor=a,t.fn.dropdown.noConflict=function(){return t.fn.dropdown=r,this},t(document).on("click.bs.dropdown.data-api",i).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.bs.dropdown.data-api",s,a.prototype.toggle).on("keydown.bs.dropdown.data-api",s,a.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",a.prototype.keydown)}(jQuery),+function(t){"use strict";function e(e,o){return this.each(function(){var n=t(this),s=n.data("bs.modal"),a=t.extend({},i.DEFAULTS,n.data(),"object"==typeof e&&e);s||n.data("bs.modal",s=new i(this,a)),"string"==typeof e?s[e](o):a.show&&s.show(o)})}var i=function(e,i){this.options=i,this.$body=t(document.body),this.$element=t(e),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.fixedContent=".navbar-fixed-top, .navbar-fixed-bottom",this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,t.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};i.VERSION="3.4.1",i.TRANSITION_DURATION=300,i.BACKDROP_TRANSITION_DURATION=150,i.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},i.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},i.prototype.show=function(e){var o=this,n=t.Event("show.bs.modal",{relatedTarget:e});this.$element.trigger(n),this.isShown||n.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",\'[data-dismiss="modal"]\',t.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){o.$element.one("mouseup.dismiss.bs.modal",function(e){t(e.target).is(o.$element)&&(o.ignoreBackdropClick=!0)})}),this.backdrop(function(){var n=t.support.transition&&o.$element.hasClass("fade");o.$element.parent().length||o.$element.appendTo(o.$body),o.$element.show().scrollTop(0),o.adjustDialog(),n&&o.$element[0].offsetWidth,o.$element.addClass("in"),o.enforceFocus();var s=t.Event("shown.bs.modal",{relatedTarget:e});n?o.$dialog.one("bsTransitionEnd",function(){o.$element.trigger("focus").trigger(s)}).emulateTransitionEnd(i.TRANSITION_DURATION):o.$element.trigger("focus").trigger(s)}))},i.prototype.hide=function(e){e&&e.preventDefault(),e=t.Event("hide.bs.modal"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),t(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),t.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",t.proxy(this.hideModal,this)).emulateTransitionEnd(i.TRANSITION_DURATION):this.hideModal())},i.prototype.enforceFocus=function(){t(document).off("focusin.bs.modal").on("focusin.bs.modal",t.proxy(function(t){document===t.target||this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},i.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("key
1down.dismiss.bs.modal",t.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},i.prototype.resize=function(){this.isShown?t(window).on("resize.bs.modal",t.proxy(this.handleUpdate,this)):t(window).off("resize.bs.modal")},i.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.bs.modal")})},i.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},i.prototype.backdrop=function(e){var o=this,n=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var s=t.support.transition&&n;if(this.$backdrop=t(document.createElement("div")).addClass("modal-backdrop "+n).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",t.proxy(function(t){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),s&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!e)return;s?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):e()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var a=function(){o.removeBackdrop(),e&&e()};t.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",a).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):a()}else e&&e()},i.prototype.handleUpdate=function(){this.adjustDialog()},i.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},i.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},i.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth<t,this.scrollbarWidth=this.measureScrollbar()},i.prototype.setScrollbar=function(){var e=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"";var i=this.scrollbarWidth;this.bodyIsOverflowing&&(this.$body.css("padding-right",e+i),t(this.fixedContent).each(function(e,o){var n=o.style.paddingRight,s=t(o).css("padding-right");t(o).data("padding-right",n).css("padding-right",parseFloat(s)+i+"px")}))},i.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad),t(this.fixedContent).each(function(e,i){var o=t(i).data("padding-right");t(i).removeData("padding-right"),i.style.paddingRight=o?o:""})},i.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var o=t.fn.modal;t.fn.modal=e,t.fn.modal.Constructor=i,t.fn.modal.noConflict=function(){return t.fn.modal=o,this},t(document).on("click.bs.modal.data-api",\'[data-toggle="modal"]\',function(i){var o=t(this),n=o.attr("href"),s=o.attr("data-target")||n&&n.replace(/.*(?=#[^\\s]+$)/,""),a=t(document).find(s),r=a.data("bs.modal")?"toggle":t.extend({remote:!/#/.test(n)&&n},a.data(),o.data());o.is("a")&&i.preventDefault(),a.one("show.bs.modal",function(t){t.isDefaultPrevented()||a.one("hidden.bs.modal",function(){o.is(":visible")&&o.trigger("focus")})}),e.call(a,r,this)})}(jQuery),+function(t){"use strict";function e(e,i){var o=e.nodeName.toLowerCase();if(-1!==t.inArray(o,i))return-1!==t.inArray(o,s)?Boolean(e.nodeValue.match(l)||e.nodeValue.match(h)):!0;for(var n=t(i).filter(function(t,e){return e instanceof RegExp}),a=0,r=n.length;r>a;a++)if(o.match(n[a]))return!0;return!1}function i(i,o,n){if(0===i.length)return i;if(n&&"function"==typeof n)return n(i);if(!document.implementation||!document.implementation.createHTMLDocument)return i;var s=document.implementation.createHTMLDocument("sanitization");s.body.innerHTML=i;for(var a=t.map(o,function(t,e){return e}),r=t(s.body).find("*"),l=0,h=r.length;h>l;l++){var d=r[l],p=d.nodeName.toLowerCase();if(-1!==t.inArray(p,a))for(var c=t.map(d.attributes,function(t){return t}),f=[].concat(o["*"]||[],o[p]||[]),u=0,g=c.length;g>u;u++)e(c[u],f)||d.removeAttribute(c[u].nodeName);else d.parentNode.removeChild(d)}return s.body.innerHTML}function o(e){return this.each(function(){var i=t(this),o=i.data("bs.tooltip"),n="object"==typeof e&&e;!o&&/destroy|hide/.test(e)||(o||i.data("bs.tooltip",o=new d(this,n)),"string"==typeof e&&o[e]())})}var n=["sanitize","whiteList","sanitizeFn"],s=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],a=/^aria-[\\w-]*$/i,r={"*":["class","dir","id","lang","role",a],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},l=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,h=/^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i,d=function(t,e){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",t,e)};d.VERSION="3.4.1",d.TRANSITION_DURATION=150,d.DEFAULTS={animation:!0,placement:"top",selector:!1,template:\'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>\',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0},sanitize:!0,sanitizeFn:null,whiteList:r},d.prototype.init=function(e,i,o){if(this.enabled=!0,this.type=e,this.$element=t(i),this.options=this.getOptions(o),this.$viewport=this.options.viewport&&t(document).find(t.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var n=this.options.trigger.split(" "),s=n.length;s--;){var a=n[s];if("click"==a)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=a){var r="hover"==a?"mouseenter":"focusin",l="hover"==a?"mouseleave":"focusout";this.$element.on(r+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},d.prototype.getDefaults=function(){return d.DEFAULTS},d.prototype.getOptions=function(e){var o=this.$element.data();for(var s in o)o.hasOwnProperty(s)&&-1!==t.inArray(s,n)&&delete o[s];return e=t.extend({},this.getDefaults(),o,e),e.delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e.sanitize&&(e.template=i(e.template,e.whiteList,e.sanitizeFn)),e},d.prototype.getDelegateOptions=function(){var e={},i=this.getDefaults();return this._options&&t.each(this._options,function(t,o){i[t]!=o&&(e[t]=o)}),e},d.prototype.enter=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);
vendor: 4,679 bytes, line 1
1return i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),e instanceof t.Event&&(i.inState["focusin"==e.type?"focus":"hover"]=!0),i.tip().hasClass("in")||"in"==i.hoverState?void(i.hoverState="in"):(clearTimeout(i.timeout),i.hoverState="in",i.options.delay&&i.options.delay.show?void(i.timeout=setTimeout(function(){"in"==i.hoverState&&i.show()},i.options.delay.show)):i.show())},d.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},d.prototype.leave=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),e instanceof t.Event&&(i.inState["focusout"==e.type?"focus":"hover"]=!1),i.isInStateTrue()?void 0:(clearTimeout(i.timeout),i.hoverState="out",i.options.delay&&i.options.delay.hide?void(i.timeout=setTimeout(function(){"out"==i.hoverState&&i.hide()},i.options.delay.hide)):i.hide())},d.prototype.show=function(){var e=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var i=t.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!i)return;var o=this,n=this.tip(),s=this.getUID(this.type);this.setContent(),n.attr("id",s),this.$element.attr("aria-describedby",s),this.options.animation&&n.addClass("fade");var a="function"==typeof this.options.placement?this.options.placement.call(this,n[0],this.$element[0]):this.options.placement,r=/\\s?auto?\\s?/i,l=r.test(a);l&&(a=a.replace(r,"")||"top"),n.detach().css({top:0,left:0,display:"block"}).addClass(a).data("bs."+this.type,this),this.options.container?n.appendTo(t(document).find(this.options.container)):n.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var h=this.getPosition(),p=n[0].offsetWidth,c=n[0].offsetHeight;if(l){var f=a,u=this.getPosition(this.$viewport);a="bottom"==a&&h.bottom+c>u.bottom?"top":"top"==a&&h.top-c<u.top?"bottom":"right"==a&&h.right+p>u.width?"left":"left"==a&&h.left-p<u.left?"right":a,n.removeClass(f).addClass(a)}var g=this.getCalculatedOffset(a,h,p,c);this.applyPlacement(g,a);var m=function(){var t=o.hoverState;o.$element.trigger("shown.bs."+o.type),o.hoverState=null,"out"==t&&o.leave(o)};t.support.transition&&this.$tip.hasClass("fade")?n.one("bsTransitionEnd",m).emulateTransitionEnd(d.TRANSITION_DURATION):m()}},d.prototype.applyPlacement=function(e,i){var o=this.tip(),n=o[0].offsetWidth,s=o[0].offsetHeight,a=parseInt(o.css("margin-top"),10),r=parseInt(o.css("margin-left"),10);isNaN(a)&&(a=0),isNaN(r)&&(r=0),e.top+=a,e.left+=r,t.offset.setOffset(o[0],t.extend({using:function(t){o.css({top:Math.round(t.top),left:Math.round(t.left)})}},e),0),o.addClass("in");var l=o[0].offsetWidth,h=o[0].offsetHeight;"top"==i&&h!=s&&(e.top=e.top+s-h);var d=this.getViewportAdjustedDelta(i,e,l,h);d.left?e.left+=d.left:e.top+=d.top;var p=/top|bottom/.test(i),c=p?2*d.left-n+l:2*d.top-s+h,f=p?"offsetWidth":"offsetHeight";o.offset(e),this.replaceArrow(c,o[0][f],p)},d.prototype.replaceArrow=function(t,e,i){this.arrow().css(i?"left":"top",50*(1-t/e)+"%").css(i?"top":"left","")},d.prototype.setContent=function(){var t=this.tip(),e=this.getTitle();this.options.html?(this.options.sanitize&&(e=i(e,this.options.whiteList,this.options.sanitizeFn)),t.find(".tooltip-inner").html(e)):t.find(".tooltip-inner").text(e),t.removeClass("fade in top bottom left right")},d.prototype.hide=function(e){function i(){"in"!=o.hoverState&&n.detach(),o.$element&&o.$element.removeAttr("aria-describedby").trigger("hidden.bs."+o.type),e&&e()}var o=this,n=t(this.$tip),s=t.Event("hide.bs."+this.type);return this.$element.trigger(s),s.isDefaultPrevented()?void 0:(n.removeClass("in"),t.support.transition&&n.hasClass("fade")?n.one("bsTransitionEnd",i).emulateTransitionEnd(d.TRANSITION_DURATION):i(),this.hoverState=null,this)},d.prototype.fixTitle=function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("data-original-title"))&&t.attr("data-original-title",t.attr("title")||"").attr("title","")},d.prototype.hasContent=function(){return this.getTitle()},d.prototype.getPosition=function(e){e=e||this.$element;var i=e[0],o="BODY"==i.tagName,n=i.getBoundingClientRect();null==n.width&&(n=t.extend({},n,{width:n.right-n.left,height:n.bottom-n.top}));var s=window.SVGElement&&i instanceof window.SVGElement,a=o?{top:0,left:0}:s?null:e.offset(),r={scroll:o?document.documentElement.scrollTop||document.body.scrollTop:e.scrollTop()},l=o?{width:t(window).width(),height:t(window).height()}:null;return t.extend({},n,r,l,a)}
vendor: 6,528 bytes, line 1
1,d.prototype.getCalculatedOffset=function(t,e,i,o){return"bottom"==t?{top:e.top+e.height,left:e.left+e.width/2-i/2}:"top"==t?{top:e.top-o,left:e.left+e.width/2-i/2}:"left"==t?{top:e.top+e.height/2-o/2,left:e.left-i}:{top:e.top+e.height/2-o/2,left:e.left+e.width}},d.prototype.getViewportAdjustedDelta=function(t,e,i,o){var n={top:0,left:0};if(!this.$viewport)return n;var s=this.options.viewport&&this.options.viewport.padding||0,a=this.getPosition(this.$viewport);if(/right|left/.test(t)){var r=e.top-s-a.scroll,l=e.top+s-a.scroll+o;r<a.top?n.top=a.top-r:l>a.top+a.height&&(n.top=a.top+a.height-l)}else{var h=e.left-s,d=e.left+s+i;h<a.left?n.left=a.left-h:d>a.right&&(n.left=a.left+a.width-d)}return n},d.prototype.getTitle=function(){var t,e=this.$element,i=this.options;return t=e.attr("data-original-title")||("function"==typeof i.title?i.title.call(e[0]):i.title)},d.prototype.getUID=function(t){do t+=~~(1e6*Math.random());while(document.getElementById(t));return t},d.prototype.tip=function(){if(!this.$tip&&(this.$tip=t(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},d.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},d.prototype.enable=function(){this.enabled=!0},d.prototype.disable=function(){this.enabled=!1},d.prototype.toggleEnabled=function(){this.enabled=!this.enabled},d.prototype.toggle=function(e){var i=this;e&&(i=t(e.currentTarget).data("bs."+this.type),i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i))),e?(i.inState.click=!i.inState.click,i.isInStateTrue()?i.enter(i):i.leave(i)):i.tip().hasClass("in")?i.leave(i):i.enter(i)},d.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null,t.$element=null})},d.prototype.sanitizeHtml=function(t){return i(t,this.options.whiteList,this.options.sanitizeFn)};var p=t.fn.tooltip;t.fn.tooltip=o,t.fn.tooltip.Constructor=d,t.fn.tooltip.noConflict=function(){return t.fn.tooltip=p,this}}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.popover"),s="object"==typeof e&&e;!n&&/destroy|hide/.test(e)||(n||o.data("bs.popover",n=new i(this,s)),"string"==typeof e&&n[e]())})}var i=function(t,e){this.init("popover",t,e)};if(!t.fn.tooltip)throw new Error("Popover requires tooltip.js");i.VERSION="3.4.1",i.DEFAULTS=t.extend({},t.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:\'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>\'}),i.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),i.prototype.constructor=i,i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();if(this.options.html){var o=typeof i;this.options.sanitize&&(e=this.sanitizeHtml(e),"string"===o&&(i=this.sanitizeHtml(i))),t.find(".popover-title").html(e),t.find(".popover-content").children().detach().end()["string"===o?"html":"append"](i)}else t.find(".popover-title").text(e),t.find(".popover-content").children().detach().end().text(i);t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},i.prototype.hasContent=function(){return this.getTitle()||this.getContent()},i.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var o=t.fn.popover;t.fn.popover=e,t.fn.popover.Constructor=i,t.fn.popover.noConflict=function(){return t.fn.popover=o,this}}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.tab");n||o.data("bs.tab",n=new i(this)),"string"==typeof e&&n[e]()})}var i=function(e){this.element=t(e)};i.VERSION="3.4.1",i.TRANSITION_DURATION=150,i.prototype.show=function(){var e=this.element,i=e.closest("ul:not(.dropdown-menu)"),o=e.data("target");if(o||(o=e.attr("href"),o=o&&o.replace(/.*(?=#[^\\s]*$)/,"")),!e.parent("li").hasClass("active")){var n=i.find(".active:last a"),s=t.Event("hide.bs.tab",{relatedTarget:e[0]}),a=t.Event("show.bs.tab",{relatedTarget:n[0]});if(n.trigger(s),e.trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){var r=t(document).find(o);this.activate(e.closest("li"),i),this.activate(r,r.parent(),function(){n.trigger({type:"hidden.bs.tab",relatedTarget:e[0]}),e.trigger({type:"shown.bs.tab",relatedTarget:n[0]})})}}},i.prototype.activate=function(e,o,n){function s(){a.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find(\'[data-toggle="tab"]\').attr("aria-expanded",!1),e.addClass("active").find(\'[data-toggle="tab"]\').attr("aria-expanded",!0),r?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu").length&&e.closest("li.dropdown").addClass("active").end().find(\'[data-toggle="tab"]\').attr("aria-expanded",!0),n&&n()}var a=o.find("> .active"),r=n&&t.support.transition&&(a.length&&a.hasClass("fade")||!!o.find("> .fade").length);a.length&&r?a.one("bsTransitionEnd",s).emulateTransitionEnd(i.TRANSITION_DURATION):s(),a.removeClass("in")};var o=t.fn.tab;t.fn.tab=e,t.fn.tab.Constructor=i,t.fn.tab.noConflict=function(){return t.fn.tab=o,this};var n=function(i){i.preventDefault(),e.call(t(this),"show")};t(document).on("click.bs.tab.data-api",\'[data-toggle="tab"]\',n).on("click.bs.tab.data-api",\'[data-toggle="pill"]\',n)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.affix"),s="object"==typeof e&&e;n||o.data("bs.affix",n=new i(this,s)),"string"==typeof e&&n[e]()})}var i=function(e,o){this.options=t.extend({},i.DEFAULTS,o);var n=this.options.target===i.DEFAULTS.target?t(this.options.target):t(document).find(this.options.target);this.$target=n.on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(e),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};i.VERSION="3.4.1",i.RESET="affix affix-top affix-bottom",i.DEFAULTS={offset:0,target:window}
vendor: 8,227 bytes, line 1
1,i.prototype.getState=function(t,e,i,o){var n=this.$target.scrollTop(),s=this.$element.offset(),a=this.$target.height();if(null!=i&&"top"==this.affixed)return i>n?"top":!1;if("bottom"==this.affixed)return null!=i?n+this.unpin<=s.top?!1:"bottom":t-o>=n+a?!1:"bottom";var r=null==this.affixed,l=r?n:s.top,h=r?a:e;return null!=i&&i>=n?"top":null!=o&&l+h>=t-o?"bottom":!1},i.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(i.RESET).addClass("affix");var t=this.$target.scrollTop(),e=this.$element.offset();return this.pinnedOffset=e.top-t},i.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},i.prototype.checkPosition=function(){\r\nif(this.$element.is(":visible")){var e=this.$element.height(),o=this.options.offset,n=o.top,s=o.bottom,a=Math.max(t(document).height(),t(document.body).height());"object"!=typeof o&&(s=n=o),"function"==typeof n&&(n=o.top(this.$element)),"function"==typeof s&&(s=o.bottom(this.$element));var r=this.getState(a,e,n,s);if(this.affixed!=r){null!=this.unpin&&this.$element.css("top","");var l="affix"+(r?"-"+r:""),h=t.Event(l+".bs.affix");if(this.$element.trigger(h),h.isDefaultPrevented())return;this.affixed=r,this.unpin="bottom"==r?this.getPinnedOffset():null,this.$element.removeClass(i.RESET).addClass(l).trigger(l.replace("affix","affixed")+".bs.affix")}"bottom"==r&&this.$element.offset({top:a-e-s})}};var o=t.fn.affix;t.fn.affix=e,t.fn.affix.Constructor=i,t.fn.affix.noConflict=function(){return t.fn.affix=o,this},t(window).on("load",function(){t(\'[data-spy="affix"]\').each(function(){var i=t(this),o=i.data();o.offset=o.offset||{},null!=o.offsetBottom&&(o.offset.bottom=o.offsetBottom),null!=o.offsetTop&&(o.offset.top=o.offsetTop),e.call(i,o)})})}(jQuery),+function(t){"use strict";function e(e){var i,o=e.attr("data-target")||(i=e.attr("href"))&&i.replace(/.*(?=#[^\\s]+$)/,"");return t(document).find(o)}function i(e){return this.each(function(){var i=t(this),n=i.data("bs.collapse"),s=t.extend({},o.DEFAULTS,i.data(),"object"==typeof e&&e);!n&&s.toggle&&/show|hide/.test(e)&&(s.toggle=!1),n||i.data("bs.collapse",n=new o(this,s)),"string"==typeof e&&n[e]()})}var o=function(e,i){this.$element=t(e),this.options=t.extend({},o.DEFAULTS,i),this.$trigger=t(\'[data-toggle="collapse"][href="#\'+e.id+\'"],[data-toggle="collapse"][data-target="#\'+e.id+\'"]\'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};o.VERSION="3.4.1",o.TRANSITION_DURATION=350,o.DEFAULTS={toggle:!0},o.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},o.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var e,n=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(n&&n.length&&(e=n.data("bs.collapse"),e&&e.transitioning))){var s=t.Event("show.bs.collapse");if(this.$element.trigger(s),!s.isDefaultPrevented()){n&&n.length&&(i.call(n,"hide"),e||n.data("bs.collapse",null));var a=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var r=function(){this.$element.removeClass("collapsing").addClass("collapse in")[a](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return r.call(this);var l=t.camelCase(["scroll",a].join("-"));this.$element.one("bsTransitionEnd",t.proxy(r,this)).emulateTransitionEnd(o.TRANSITION_DURATION)[a](this.$element[0][l])}}}},o.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var i=this.dimension();this.$element[i](this.$element[i]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var n=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return t.support.transition?void this.$element[i](0).one("bsTransitionEnd",t.proxy(n,this)).emulateTransitionEnd(o.TRANSITION_DURATION):n.call(this)}}},o.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},o.prototype.getParent=function(){return t(document).find(this.options.parent).find(\'[data-toggle="collapse"][data-parent="\'+this.options.parent+\'"]\').each(t.proxy(function(i,o){var n=t(o);this.addAriaAndCollapsedClass(e(n),n)},this)).end()},o.prototype.addAriaAndCollapsedClass=function(t,e){var i=t.hasClass("in");t.attr("aria-expanded",i),e.toggleClass("collapsed",!i).attr("aria-expanded",i)};var n=t.fn.collapse;t.fn.collapse=i,t.fn.collapse.Constructor=o,t.fn.collapse.noConflict=function(){return t.fn.collapse=n,this},t(document).on("click.bs.collapse.data-api",\'[data-toggle="collapse"]\',function(o){var n=t(this);n.attr("data-target")||o.preventDefault();var s=e(n),a=s.data("bs.collapse"),r=a?"toggle":n.data();i.call(s,r)})}(jQuery),+function(t){"use strict";function e(i,o){this.$body=t(document.body),this.$scrollElement=t(t(i).is(document.body)?window:i),this.options=t.extend({},e.DEFAULTS,o),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",t.proxy(this.process,this)),this.refresh(),this.process()}function i(i){return this.each(function(){var o=t(this),n=o.data("bs.scrollspy"),s="object"==typeof i&&i;n||o.data("bs.scrollspy",n=new e(this,s)),"string"==typeof i&&n[i]()})}e.VERSION="3.4.1",e.DEFAULTS={offset:10},e.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},e.prototype.refresh=function(){var e=this,i="offset",o=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),t.isWindow(this.$scrollElement[0])||(i="position",o=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var e=t(this),n=e.data("target")||e.attr("href"),s=/^#./.test(n)&&t(n);return s&&s.length&&s.is(":visible")&&[[s[i]().top+o,n]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){e.offsets.push(this[0]),e.targets.push(this[1])})},e.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,i=this.getScrollHeight(),o=this.options.offset+i-this.$scrollElement.height(),n=this.offsets,s=this.targets,a=this.activeTarget;if(this.scrollHeight!=i&&this.refresh(),e>=o)return a!=(t=s[s.length-1])&&this.activate(t);if(a&&e<n[0])return this.activeTarget=null,this.clear();for(t=n.length;t--;)a!=s[t]&&e>=n[t]&&(void 0===n[t+1]||e<n[t+1])&&this.activate(s[t])},e.prototype.activate=function(e){this.activeTarget=e,this.clear();var i=this.selector+\'[data-target="\'+e+\'"],\'+this.selector+\'[href="\'+e+\'"]\',o=t(i).parents("li").addClass("active");o.parent(".dropdown-menu").length&&(o=o.closest("li.dropdown").addClass("active")),o.trigger("activate.bs.scrollspy")},e.prototype.clear=function(){t(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var o=t.fn.scrollspy;t.fn.scrollspy=i,t.fn.scrollspy.Constructor=e,t.fn.scrollspy.noConflict=function(){return t.fn.scrollspy=o,this},t(window).on("load.bs.scrollspy.data-api",function(){t(\'[data-spy="scroll"]\').each(function(){var e=t(this);i.call(e,e.data())})})}(jQuery),+function(t){"use strict";function e(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var i in e)if(void 0!==t.style[i])return{end:e[i]};return!1}t.fn.emulateTransitionEnd=function(e){var i=!1,o=this;t(this).one("bsTransitionEnd",function(){i=!0});var n=function(){i||t(o).trigger(t.support.transition.end)};return setTimeout(n,e),this},t(function(){t.support.transition=e(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.supp
1ort.transition.end,delegateType:t.support.transition.end,handle:function(e){return t(e.target).is(this)?e.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery);'},function(t,e,r){r(0)(r(15))},function(t,e){t.exports="\r\nif (typeof($jBaseUrl) === 'undefined') { $jBaseUrl = '/'; }\r\n\r\nIMItineraryCore = {\r\n\t\r\n\tselector : '',\r\n\thoverTimeout : '',\r\n\t\r\n\tinit : function(selector) {\r\n\t\tIMItineraryCore.selector = selector;\r\n\t\tIMItineraryCore.updateTotal();\r\n\t\tIMItineraryCore.applyButtonStates();\r\n\t\tjQuery(IMItineraryCore.selector).hover(function() {\r\n\t\t\tIMItineraryCore.showPopup();\r\n\t\t}, function() {\r\n\t\t\tIMItineraryCore.hidePopup();\r\n\t\t});\r\n\t},\r\n\t\r\n\taddButtonClick : function(button) {\r\n\t\tif (jQuery(button).hasClass('added')) {\r\n\t\t\tdocument.location.href = jQuery(button).attr('data-redirect-url');\r\n\t\t\treturn false;\r\n\t\t} else {\r\n\t\t\tIMItineraryCore.add( jQuery(button).attr('data-add-url') );\r\n\t\t\tjQuery(button).addClass('added');\r\n\t\t\tjQuery(button).find('span').eq(0).text( jQuery(button).attr('data-active') );\r\n\t\t}\r\n\t},\r\n\t\r\n\tadd : function(url) {\r\n\t\tjQuery('.header-itinerary-popout').remove();\r\n\t\tjQuery.get(IMItineraryCore.uniqueAjaxUrl(url), function(numberItems) {\r\n\t\t\tIMItineraryCore.updateTotal();\r\n\t\t\tIMItineraryCore.applyButtonStates();\r\n\t\t\tIMItineraryCore.showPopup();\r\n\t\t\tsetTimeout(function() { jQuery('.itinerary-item-number').addClass('bounce-thrice'); }, 2000);\r\n\t\t\tsetTimeout('IMItineraryCore.hidePopup()', 10000);\r\n\t\t});\r\n\t},\r\n\t\r\n\tremove: function(url, obj) {\r\n\t\tjQuery.get(IMItineraryCore.uniqueAjaxUrl(url), function(numberItems) {\r\n\t\t\tIMItineraryCore.updateTotal();\r\n\t\t\tIMItineraryCore.applyButtonStates();\r\n\t\t\tjQuery('.header-itinerary-popout').slideUp(function() {\r\n\t\t\t\tjQuery(this).remove();\r\n\t\t\t});\r\n\t\t\twindow.location.reload();\r\n\t\t});\r\n\t},\r\n\t\r\n\tupdateTotal : function() {\r\n\t\tvar number_total = parseInt($w.cookie('itinerary_total'));\r\n\t\tjQuery('.itinerary-item-number').text( (number_total ? number_total : '') );\r\n\t\tjQuery('.header-itinerary-planner, .header-itinerary-icon, .itinerary-item-number').removeClass('is-active');\r\n\t\tif (number_total > 0) {\r\n\t\t\tjQuery('.header-itinerary-planner, .header-itinerary-icon, .itinerary-item-number').addClass('is-active');\r\n\t\t}\r\n\t},\r\n\t\r\n\tshowPopup: function() {\r\n\t\tif (jQuery('.header-itinerary-popout').length > 0) {\r\n\t\t\tjQuery('body').removeClass('itinerary-popout-visible');\r\n\t\t\tjQuery('.header-itinerary-popout').stop();\r\n\t\t\tjQuery('.header-itinerary-popout').fadeTo(400, 1.0);\r\n\t\t\tclearTimeout(IMItineraryCore.hoverTimeout);\r\n\t\t} else {\r\n\t\t\tjQuery('body').addClass('itinerary-popout-visible');\r\n\t\t\tjQuery(IMItineraryCore.selector).append('<div class=\"header-itinerary-popout\" style=\"display:none\"><div class=\"itp-spinner\"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div></div>');\r\n\t\t\tjQuery('.header-itinerary-popout').fadeTo(400, 1.0);\r\n\t\t\tjQuery.get(IMItineraryCore.uniqueAjaxUrl(IMItineraryConfig.url_html), function(data) {\r\n\t\t\t\tjQuery('.header-itinerary-popout').html(data);\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\t\r\n\thidePopup: function() {\r\n\t\tjQuery('body').removeClass('itinerary-popout-visible');\r\n\t\tjQuery('.header-itinerary-popout').stop();\r\n\t\tjQuery('.header-itinerary-popout').fadeTo(400, 0.0, function() {\r\n\t\t\tjQuery('.header-itinerary-popout').hide();\r\n\t\t});\r\n\t\tjQuery('.itinerary-item-number').removeClass('bounce-thrice');\r\n\t\tIMItineraryCore.hoverTimeout = setTimeout(function() {\r\n\t\t\tjQuery('.header-itinerary-popout').remove();\r\n\t\t}, 10000);\r\n\t},\r\n\t\r\n\tapplyButtonStates: function() {\r\n\t\tvar number_total = parseInt($w.cookie('itinerary_total'));\r\n\t\tvar items = ($w.cookie('itinerary_items') ? JSON.parse($w.cookie('itinerary_items')) : []);\r\n\t\tjQuery.each(items, function(index, item_key) {\r\n\t\t\tjQuery('#itin-btn-'+item_key).addClass('added');\r\n\t\t\tjQuery('#itin-btn-'+item_key).find('span').text( jQuery('#itin-btn-'+item_key).attr('data-active') );\r\n\t\t});\r\n\t\tif (number_total) {\r\n\t\t\tjQuery('body').addClass('hasItineraryPlannerItems');\r\n\t\t} else {\r\n\t\t\tjQuery('body').removeClass('hasItineraryPlannerItems');\r\n\t\t}\r\n\t},\r\n\t\r\n\tuniqueAjaxUrl : function(url) {\r\n\t\turl += ((url.indexOf('?') > 1) ? '&' : '?');\r\n\t\turl += 'unique_id=' + Date.now().toString(36) + Math.random().toString(36).substr(2);\r\n\t\treturn url;\r\n\t}\r\n\t\r\n};\r\n\r\njQuery(document).ready(function() {\r\n\t\r\n\tIMItineraryCore.init(IMItineraryConfig.selector);\r\n\t\r\n});\r\n\r\njQuery(document).on('hybrid.gadget.redraw.complete', function() {\r\n\t\r\n\tIMItineraryCore.applyButtonStates();\r\n\t\r\n});\r\n  \r\nsetTimeout(function() {\r\n\tif (typeof(window.IMItinerary) !== 'undefined') {\r\n\t\tconsole.error('IMItinerary JS is deprecated (remove layout)');\r\n\t}\r\n\tif (jQuery('.link-tripplanner-hover').length > 0) {\r\n\t\tconsole.error('link-tripplanner-hover ... is deprecated (remove from module)');\r\n\t}\r\n\tif (typeof(window.addToTripPlanner) !== 'undefined') {\r\n\t\tconsole.error('Functions addToTripPlanner(), removeFromTripPlanner(), showTripPlannerPopout(), hideTripPlannerPopout() are deprecated (remove old features)');\r\n\t}\r\n\tif (typeof(window.removeFromTripPlanner) === 'undefined') {\r\n\t\twindow.removeFromTripPlanner = function(url, obj) {\r\n\t\t\tIMItineraryCore.remove(url, obj);\r\n\t\t\treturn false;\r\n\t\t};\r\n\t}\r\n}, 3000);\r\n\r\n\r\nBE.handlebars.addToTripPlannerLink = function(item_id, text, className, attribs) {\r\n\ttext = (((typeof(text) === 'string') && text) ? text : 'Add to itinerary');\r\n\tclassName = (className ? className : 'btn-add-to-itinerary');\r\n\tattribs = (attribs ? attribs : 'data-toggle=\"tooltip\" title=\"<h3>Add to my itinerary</h3>\"');\r\n\tvar button = {};\r\n\tbutton.add_id = (item_id ? item_id : 0);\r\n\tbutton.active = false;\r\n\tvar type = 'bookeasy';\r\n\tif (className.indexOf('add-event') >= 0) { type = 'rseventspro'; }\r\n\tbutton.url = site_base_url+'api-site/itineraryplanner/add/'+type+'/'+button.add_id;\r\n\tbutton.onclick = \"IMItineraryCore.addButtonClick(this);\";\r\n\tbutton.labelInactive = text;\r\n\tbutton.labelActive = 'View itinerary';\r\n\tbutton.cssclass = className;\r\n\tbutton.attribs = attribs;\r\n\tbutton.html = '<a tabindex=\"0\" id=\"itin-btn-'+type+'-'+button.add_id+'\" class=\"button-add '+button.cssclass+'\" aria-label=\"'+button.labelInactive+'\" data-add-url=\"'+button.url+'\" data-redirect-url=\"'+site_base_url+'itinerary-planner\" data-active=\"'+button.labelActive+'\" data-im-onclick=\"'+button.onclick+'\" '+button.attribs+'><span>
1'+button.labelInactive+'</span></a>';\r\n\treturn button.html;\r\n};\r\nHandlebarsBE.registerHelper('addToTripPlannerLink', BE.handlebars.addToTripPlannerLink);\r\n"},function(t,e,r){r(0)(r(17))},function(t,e){t.exports="var $j = jQuery.noConflict();\r\n\r\n$j(document).ready(function() {\r\n\r\n\t// Header Cart Price Formatting\r\n\tfunction cartPriceSpacing(elem) {\r\n\t\t\r\n\t\t// iterate through all the elements\r\n\t\t$j(elem).each(function() {\r\n\t\t\tvar string = $j(this).html().toLowerCase(); // eg. string 'aud$50'\r\n\r\n\t\t\tif ( string.indexOf('aud$') == 0 ) { // if contains 'aud'\r\n\t\t\t\t// split the string\r\n\t\t\t\tvar arr = string.split('');\r\n\t\t\t\t// find the '$' and replace with ' $'\r\n\t\t\t\tfor (var i = 0; i < arr.length; i++) {\r\n\t\t\t\t\tif (arr[i] == '$') {\r\n\t\t\t\t\t\tarr[i] = ' $';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tarr = arr.join('');\r\n\t\t\t\t$j(this).html( arr.toUpperCase() );\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t}\r\n\r\n\t$j('.header-cart').on('click', function() {\r\n\t\t// Set Delay because the prices don't appear instantly for some reason.\r\n\t\tsetTimeout( function() {\r\n\t\t\tcartPriceSpacing('.cartItems .total span');\r\n\t\t\tcartPriceSpacing('.cartInOverlay .cartItems .item .price label');\r\n\t\t}, 100);\r\n\t});\r\n\r\n\t// im-pricebutton doesn't yet after 'document.ready' so delegate the click event\r\n\t$j('body').on('click', '.im-pricebutton', function() {\r\n\t\t// Set Delay because the prices don't appear instantly for some reason.\r\n\t\tsetTimeout( function() {\r\n\t\t\tcartPriceSpacing('#wdOverlayContent .add-to-cart-information .price span');\r\n\t\t}, 100);\r\n\r\n\t});\r\n\r\n});"},function(t,e,r){r(0)(r(19))},function(t,e){t.exports="\r\njQuery(document).ready(function() {\r\n\t\r\n\tfunction cartPopupCleanScrollbar() {\r\n\t\tif (jQuery('#w
1dOverlayContent').length > 0) {\r\n\t\t\tjQuery('html, body').addClass('cart-popup-clean-is-visible');\r\n\t\t} else {\r\n\t\t\tjQuery('html, body').removeClass('cart-popup-clean-is-visible');\r\n\t\t}\r\n\t}\r\n\t\r\n\tjQuery('body').on('click', function() {\r\n\t\tsetTimeout(function() {\r\n\t\t\tcartPopupCleanScrollbar();\r\n\t\t}, 800);\r\n\t});\r\n\t\r\n\tsetInterval(function() {\r\n\t\tcartPopupCleanScrollbar();\r\n\t}, 2000);\r\n\t\r\n});\r\n"},function(t,e,r){r(0)(r(21))},function(t,e){t.exports="\r\nBE.gadget.book.text.form.button = 'Finalise my booking';\r\n\r\nwindow.transformBookingGadgetCleanSimple = function() {\r\n\t\r\n\t// general styling\r\n\tjQuery('#gadget').addClass('container');\r\n\tjQuery('.booking-gadget').addClass('row').addClass('styling-applied');\r\n\tjQuery('.gadget__book-column:empty').remove();\r\n\t\r\n\t// bootstrap 4 / 5 compatbility: unwrap parent of shopping cart if it's an empty div\r\n\tif (!jQuery('.booking-gadget .shopping-cart').parent().attr('class')) {\r\n\t\tjQuery('.booking-gadget .shopping-cart').unwrap();\r\n\t}\r\n\t\r\n\t// cart on left, booking gadget on right\r\n\tjQuery('.booking-gadget .shopping-cart').wrap('<div class=\"gadget__book-column gadget__book-column-cart col-xs-12 col-md-4\"></div>').css('width','auto').css('margin','0 0 30px 0').css('float','none');\r\n\tif (jQuery('.booking-gadget .ccDetails').length>0) {\r\n\t\tjQuery('.booking-gadget .personalDetails,.booking-gadget .ccDetails').addClass('row').wrapAll('<div class=\"gadget__book-column gadget__book-column-details col-xs-12 col-sm-12 col-md-8\"></div>').css('width','auto').css('float','none');\r\n\t} else {\r\n\t\tjQuery('.booking-gadget .personalDetails').addClass('row').wrap('<div class=\"gadget__book-column gadget__book-column-details col-xs-12 col-sm-12 col-md-8\"></div>').css('width','auto').css('float','none');\r\n\t}\r\n\t\r\n\t// cart gadget needs different styling compared to cart gadget on other pages (especially for Parks VIC)\r\n\tjQuery('div.shopping-cart.BE').addClass('book-shopping-cart').removeClass('shopping-cart');\r\n\t\r\n\t// add some headings, remove some headings\r\n\tjQuery('.booking-gadget').find('h2').remove();\r\n\tjQuery('.booking-gadget .book-shopping-cart').before('<h2>My Booking</h2>');\r\n\tjQuery('.booking-gadget .book-shopping-cart h3').remove();\r\n\tjQuery('.booking-gadget .personalDetails').before('<h2>My Details</h2>');\r\n\tjQuery('.booking-gadget .personalDetails h3').remove();\r\n\tjQuery('.booking-gadget .ccDetails h3').before('<div class=\"col-xs-12 cc-payment-heading\"><h2>My Payment</h2></div>');\r\n\tjQuery('.booking-gadget .ccDetails h3').remove();\r\n\tif (jQuery('.booking-gadget .ccDetails .deposits').hasClass('hidden')) {\r\n\t\tjQuery('.booking-gadget .ccDetails').before('<h2>My Payment</h2>');\r\n\t}\r\n\t\r\n\t// style dropdown fields\r\n\tjQuery('.booking-gadget .salutation, .booking-gadget .country, .booking-gadget .WhereDidYouHearId, .booking-gadget .ccDetails .cardExpiry').each(function() {\r\n\t\tjQuery(this).addClass('gadget__book-column-select');\r\n\t\tjQuery(this).find('select').wrap('<div class=\"input\"></div>');\r\n\t});\r\n\t\r\n\t// style various fields\r\n\tjQuery('.booking-gadget').find('input[type=\"text\"],input[type=\"email\"],select,textarea').addClass('form-control');\r\n\t\r\n\t// bootstrap columns for cart items\r\n\tjQuery('.cartItems .total').prepend('<div class=\"cartItems-divider\"></div>');\r\n\tjQuery('.cartItems > label').wrap('<div class=\"promo-code-label\"></div>');\r\n\tjQuery('.cartItems form.promoCode').addClass('row');\r\n\tjQuery('.cartItems form.promoCode input.promoCode').attr('type','text').addClass('form-control').wrap('<div class=\"col-xs-8\"></div>');\r\n\tjQuery('.cartItems form.promoCode input[type=\"submit\"]').addClass('btn btn-default').wrap('<div class=\"col-xs-4\"></div>');\r\n\tjQuery('.cartItems .bookingFees').before('<div class=\"clearfix\"></div>');\r\n\t\r\n\t// bootstrap columns for booking gadget fields\r\n\tjQuery('.booking-gadget .firstname').addClass('col-xs-12 col-sm-6');\r\n\tjQuery('.booking-gadget .surname').addClass('col-xs-12 col-sm-6');\r\n\tjQuery('.booking-gadget .address').addClass('col-xs-12 col-sm-8');\r\n\tjQuery('.booking-gadget .city').addClass('col-xs-12 col-sm-4');\r\n\tjQuery('.booking-gadget .state').addClass('col-xs-12 col-sm-4');\r\n\tjQuery('.booking-gadget .postcode').addClass('col-xs-12 col-sm-4');\r\n\tjQuery('.booking-gadget .country').addClass('col-xs-12 col-sm-4');\r\n\tjQuery('.booking-gadget .phone').addClass('col-xs-12 col-sm-6');\r\n\tjQuery('.booking-gadget .email').addClass('col-xs-12 col-sm-6');\r\n\tjQuery('.booking-gadget .comment').addClass('col-xs-12 col-sm-12');\r\n\tjQuery('.booking-gadget .WhereDidYouHearId').addClass('col-xs-12 col-sm-4');\r\n\tjQuery('.booking-gadget .receiveENewsletter').addClass('col-xs-12 col-sm-4');\r\n\tjQuery('.booking-gadget .acceptCancellationPolicy').addClass('col-xs-12 col-sm-4');\r\n\tjQuery('.booking-gadget .paymentType').addClass('col-xs-12');\r\n\tjQuery('.booking-gadget .cardTypes').addClass('col-xs-12 col-sm-12 col-md-4');\r\n\tjQuery('.booking-gadget .ccDetails .name').addClass('col-xs-12 col-sm-12 col-md-4');\r\n\tjQuery('.booking-gadget .number').addClass('col-xs-12 col-sm-12 col-md-4');\r\n\tjQuery('.booking-gadget .cardExpiry').addClass('col-xs-12 col-sm-6 col-md-8').css('clear', 'both');\r\n\tjQuery('.booking-gadget .expirySelects').addClass('row').css('display', 'block');\r\n\tjQuery('.booking-gadget .expirySelects > .input').addClass('col-xs-6 col-sm-6 col-md-6');\r\n\tjQuery('.booking-gadget .ccv').addClass('col-xs-12 col-sm-6 col-md-4');\r\n\tjQuery('.booking-gadget .deferredGateway').wrap('<div class=\"col-xs-12 col-sm-12 col-md-8 deferredGatewayWrapper\"></div>');\r\n\tjQuery('.booking-gadget .deposits').each(function() {\r\n\t\tif (jQuery(this).html().indexOf('depositPayment') < 0) {\r\n\t\t\tjQuery(this).addClass('col-xs-12 col-sm-12 col-md-9 col-md-offset-3');\r\n\t\t} else {\r\n\t\t\tjQuery(this).find('.paymentOptions').addClass('col-xs-12');\r\n\t\t}\r\n\t\tif (jQuery(this).text().indexOf('$0') > 0) {\r\n\t\t\tjQuery(this).addClass('hidden');  // No deposit required\r\n\t\t}\r\n\t});\r\n\tjQuery('.booking-gadget .gift-voucher').addClass('col-xs-12 col-sm-12 col-md-12');\r\n\tjQuery('.booking-gadget .gift-voucher .code').addClass('row');\r\n\tjQuery('.booking-gadget .gift-voucher .code .form-control').wrap('<div class=\"col-xs-12 col-sm-12 col-lg-12\"></div>');\r\n\tjQuery('.booking-gadget .gift-voucher .code input[type=\"button\"]').wrap('<div class=\"col-xs-12 col-sm-12 col-lg-4\"></div>');\r\n\tjQuery('.booking-gadget h4.payable-now').wrap('<div class=\"col-xs-12 col-sm-12\"></div>');\r\n\tjQuery('.booking-gadget .button').wrap('<div class=\"col-xs-12 col-sm-12 col-md-4 col-md-offset-8\"></div>');\r\n\tif (!jQuery('.booking-gadget .receiveENewsletter').is(':visible')) {\r\n\t\tjQuery('.booking-gadget .acceptCancellationPolicy').removeClass('col-sm-4');\r\n\t\tjQuery('.booking-gadget .acceptCancellationPolicy').addClass('col-sm-8');\r\n\t}\r\n\t\r\n\t// buttons\r\n\tjQuery('.booking-gadget .gift-voucher .code input[type=\"button\"]').addClass('btn-gift-voucher').addClass('btn').addClass('btn-secondary').addClass('btn-default');\r\n\tsetInterval(function() {\r\n\t\tjQuery('.booking-gadget .expirationDate button').attr('class', '').addClass('btn-extend-time').addClass('btn').addClass('btn-primary').addClass('button-primary');\r\n\t}, 500);\r\n\t\r\n\t// styling for cart items nights\r\n\tjQuery('.book-shopping-cart .date-nights').each(function() {\r\n\t\tvar newHtml = '';
1\r\n\t\tnewHtml += '<div class=\"\"><strong>Date:</strong> <span>'+jQuery(this).find('.dayName').text()+' '+jQuery(this).find('.date').text()+' '+jQuery(this).find('.month').text()+' '+jQuery(this).find('.year').text()+'</span></div>';\r\n\t\tnewHtml += '<div class=\"\"><strong>Nights:</strong> <span>'+jQuery(this).find('.nights').text()+'</span></div>';\r\n\t\tjQuery(this).html(newHtml);\r\n\t});\r\n\t\r\n\t// timer\r\n\tif (jQuery(\".cartItems .expirationDate\").length > 0) {\r\n\t\tjQuery(\"body\").addClass(\"hasCartTimer\");\r\n\t\tif (jQuery(\".cartTimerItems\").length == 0) {\r\n\t\t\tjQuery(\".cartItems .expirationDate\").wrap('<div class=\"cartTimerItems\"></div>');\r\n\t\t}\r\n\t} else {\r\n\t\tjQuery(\"body\").removeClass(\"hasCartTimer\");\r\n\t}\r\n\t\r\n\t// fix any double ups, with things wrap'ed twice\r\n\tjQuery('.booking-gadget .gadget__book-column .gadget__book-column').removeClass();\r\n\tjQuery('.booking-gadget .button .col-md-4 .col-md-4').removeClass();\r\n\tjQuery('.booking-gadget .col-md-offset-8 > .col-md-offset-8').removeClass();\r\n\tjQuery('.deferredGatewayWrapper .deferredGatewayWrapper').removeClass();\r\n\tjQuery('.cartItems form.promoCode .col-xs-8 .col-xs-8, .cartItems form.promoCode .col-xs-4 .col-xs-4').removeClass();\r\n\t\r\n\t// fix any dodgy booking question set title\r\n\tjQuery('.bookingQuestionSet-title').each(function() {\r\n\t\tif (jQuery(this).text().length < 3) {\r\n\t\t\tjQuery(this).text('');\r\n\t\t}\r\n\t});\r\n\t\r\n\t// autoselect \"Australia\" by default\r\n\tsetTimeout(function() {\r\n\t\tvar country = jQuery('.iti__selected-flag').attr('title').split(':')[0];\r\n\t\tjQuery('.booking-gadget .country select').val(country);\r\n\t}, 3000);\r\n\t\r\n}\r\n\r\njQuery(document).ready(function() {\r\n\tjQuery('#gadget').addClass('container');\r\n});\r\n\r\njQuery(document).on('gadget.script.loaded',function(){\r\n\t\r\n\tIMUtility.pushBookGadgetChangedEvent();\r\n\tIMUtility.cart_remove_click = 0;\r\n\t\r\n\t$w.event.subscribe('book.gadget.ready',function(){\r\n\t\t\r\n\t\tif (IMUtility.cart_remove_click === 1) {\r\n\t\t\tif (jQuery('.booking-gadget .shopping-cart').parent().hasClass('gadget__book-column')) {\r\n\t\t\t\tjQuery('.booking-gadget .shopping-cart').unwrap();\r\n\t\t\t}\r\n\t\t\tif (jQuery('.booking-gadget .book-shopping-cart').parent().hasClass('gadget__book-column')) {\r\n\t\t\t\tjQuery('.booking-gadget .book-shopping-cart').unwrap();\r\n\t\t\t}\r\n\t\t\tif (jQuery('.booking-gadget .personalDetails').parent().hasClass('gadget__book-column')) {\r\n\t\t\t\tjQuery('.booking-gadget .personalDetails').unwrap();\r\n\t\t\t}\r\n\t\t\tif (jQuery('.booking-gadget .ccDetails').parent().hasClass('gadget__book-column')) {\r\n\t\t\t\tjQuery('.booking-gadget .ccDetails').unwrap();\r\n\t\t\t}\r\n\t\t\twindow.transformBookingGadgetCleanSimple();\r\n\t\t}\r\n\t\t\r\n\t\tif (IMUtility.cart_remove_click === 0) {\r\n\t\t\twindow.transformBookingGadgetCleanSimple();\r\n\t\t}\r\n\t\t\r\n\t\tIMUtility.cart_remove_click = 0;\r\n\t\t\r\n\t});
1\r\n\t\r\n\t$w.event.subscribe('cart.remove.click', function() {\r\n\t\t// This event fires whether you click to confirm removal or click cancel\r\n\t\t// So do the adjustments in the gadget ready event\r\n\t\tIMUtility.cart_remove_click = 1;\r\n\t});\r\n\t\r\n});\r\n"},function(t,e,r){r(0)(r(23))},function(t,e){t.exports="var $j = jQuery.noConflict();\r\n$j(document).ready(function() {\r\n\t// When there is auth gadget\r\n\tif ( $j('#authGadget').length > 0 ) {\r\n\t\t// Adjust login form\r\n\t\t// Move username/password labels into placeholder text\r\n\t\tfunction authGadgetLoginFormAdjust() {\r\n\t\t\tvar counter = 0;\r\n\t\t\treturn window.setInterval( function() {\r\n\t\t\t\tif ( $j('#authGadget input[type=\"username\"]').length > 0 ) {\r\n\t\t\t\t\t$j('#authGadget input[type=\"username\"]').attr('placeholder', $j('#authGadget input[type=\"username\"]').parent().prev('label').text());\r\n\t\t\t\t\t$j('#authGadget input[type=\"password\"]').attr('placeholder', $j('#authGadget input[type=\"password\"]').parent().prev('label').text());\r\n\t\t\t\t\t$j('#authGadget input[type=\"submit\"]').attr('value', \"Login to my account\");\r\n\t\t\t\t\t// stop setInterval function\r\n\t\t\t\t\twindow.clearInterval(authGadgetLoginFormAdjustInstance);\r\n\t\t\t\t}\r\n\t\t\t\tcounter++;\r\n\t\t\t\t// Stop running this check after 10 cycles\r\n\t\t\t\tif (counter >= 10) {\r\n\t\t\t\t\twindow.clearInterval(authGadgetLoginFormAdjustInstance);\r\n\t\t\t\t}\r\n\t\t\t}, 150 );\r\n\t\t}\r\n\t\tvar authGadgetLoginFormAdjustInstance = authGadgetLoginFormAdjust();\r\n\r\n\t\t// If logged in using 'guest' or 'agent' provider, change the 'login' text to display the username\r\n\t\tfunction authGadgetLoginNameAdjust() {\r\n\t\t\tvar counter = 0;\r\n\r\n\t\t\treturn window.setInterval( function() {\r\n\t\t\t\tif ( $j('#authGadget .provider.guest .authenticated').length > 0\r\n\t\t\t\t\t|| $j('#authGadget .provider.agent .authenticated').length > 0) {\r\n\r\n\t\t\t\t\t//console.log('Authenticated');\r\n\r\n\t\t\t\t\t$j('#authGadget').addClass('authenticated');\r\n\t\t\t\t\t$j('#authGadget .provider.guest .description').wrapInner('<a class=\"authenticated\"></a>');\r\n\t\t\t\t\t$j('#authGadget .provider.agent .description').wrapInner('<a class=\"authenticated\"></a>');\r\n\r\n\t\t\t\t\tvar greetingElement = $j('#authGadget form.authenticated .description a.authenticated')\r\n\t\t\t\t\tgreetingElement.text(greetingElement.text().replace('Hello', 'Hi'));\r\n\t\t\t\t\tvar destinationElement = $j('#auth-button');\r\n\t\t\t\t\tdestinationElement.addClass('authenticated').append(greetingElement);\r\n\r\n\r\n\t\t\t\t\t// stop setInterval function\r\n\t\t\t\t\twindow.clearInterval(authGadgetLoginNameAdjustInstance);\r\n\t\t\t\t}\r\n\t\t\t\tcounter++;\r\n\t\t\t\t// Stop running this check after 15 seconds\r\n\t\t\t\tif (counter >= 10) {\r\n\t\t\t\t\t$j('#authGadget').removeClass('authenticated');\r\n\t\t\t\t\t$j('#auth-button').addClass('unauthenticated');\r\n\t\t\t\t\twindow.clearInterval(authGadgetLoginNameAdjustInstance);\r\n\t\t\t\t}\r\n\t\t\t}, 150 );\r\n\t\t}\r\n\t\tvar authGadgetLoginNameAdjustInstance = authGadgetLoginNameAdjust();\r\n\r\n\t}\r\n\r\n\t// Click handling for 'login' button\r\n\t$j('#auth-button a:not(.authenticated)').addClass('login-button');\r\n\t$w('#auth-button').accessibleBind('click', function(){\r\n\t\t// Run if the auth gadget popup is hidden\r\n\t\tif ( $j('#authGadget').css('display') == 'none' ) {\r\n\t\t\t// When auth gadget button clicked toggle the popups\r\n\t\t\t$j('#authGadget').slideToggle(400, function(){\r\n\r\n\t\t\t\t// Check the next click\r\n\t\t\t\tauthGadgetClickHandler();\r\n\t\t\t\t\r\n\t\t\t\t// focus for screen readers\r\n\t\t\t\t$j('#authGadget input').eq(0).focus();\r\n\t\t\t\t\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t$j('#authGadget').hide();\r\n\t\t}\r\n\t});\r\n\r\n\tfunction authGadgetClickHandler(){\r\n\t\tfunction checkAuthGadgetState() {\r\n\t\t\tvar target = $j(event.target);\r\n\t\t\t// if element clicked is not within the auth gadget popups\r\n\t\t\tif ( target.closest('#authGadget .provider').length === 0 ) {\r\n\t\t\t\t$j('#authGadget').slideToggle();\r\n\t\t\t\t// remove this event handler\r\n\t\t\t\t$j('html').off('click', 'body', checkAuthGadgetState);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$j('html').on('click', 'body', checkAuthGadgetState);\r\n\t}\r\n\r\n\t// Move the auth button to header if desktop, move to hamburger menu if on mobile\r\n\tif ( $j('#authGadget').length > 0 ) {\r\n\t\tvar is_mobile = true;\r\n\t\tvar mobile_breakpoint = 768;\r\n\r\n\t\t// Detect and set the initial is_mobile\r\n\t\t//if ( viewport().width > mobile_breakpoint ) {\r\n\t\tif ( window.matchMedia('(min-width: '+mobile_breakpoint+'px)').matches ) {\r\n\t\t\tis_mobile = false;\r\n\t\t}\r\n\r\n\t\t// Set the initial position the auth gadget should be in\r\n\t\tfunction initialMoveAuthGadget() {\r\n\t\t\t//if ( viewport().width <= mobile_breakpoint ) {\r\n\t\t\tif ( window.matchMedia('(max-width: '+mobile_breakpoint+'px)').matches ) {\r\n\t\t\t\t$j('.header-agent').appendTo('#navbar > ul');\r\n\t\t\t}\r\n\t\t}\r\n\t\tinitialMoveAuthGadget();\r\n\r\n\r\n\t\t// Move the auth button accordingly\r\n\t\tfunction moveAuthGadget(){\r\n\t\t\t//if ( viewport().width <= mobile_breakpoint && !is_mobile ) {\r\n\t\t\tif ( window.matchMedia('(max-width: '+mobile_breakpoint+'px)').matches && !is_mobile ) {\r\n\t\t\t\t$j('.header-agent').appendTo('#navbar > ul');\r\n\t\t\t\tis_mobile = true;\r\n\t\t\t}\r\n\t\t\t//if ( viewport().width > mobile_breakpoint && is_mobile ) {\r\n\t\t\tif ( window.matchMedia('(max-width: '+mobile_breakpoint+'px)').matches && is_mobile ) {\r\n\t\t\t\t$j('.header-agent').prependTo('.header-right');\r\n\t\t\t\tis_mobile = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tmoveAuthGadget();\r\n\r\n\r\n\t}\r\n\r\n\r\n});\r\n\r\n/*\r\n\t\t var myEfficientFn = debounce(function() {\r\n\t\t // All the taxing stuff you do\r\n\t\t moveAuthGadget();\r\n\t\t }, 250);\r\n\t\t window.addEventListener('resize', myEfficientFn);\r\n\t\t */\r\n"},function(t,e,r){r(0)(r(25))},function(t,e){t.exports="\r\n// Function to assist with very simple item details gadget implementation\r\nif (typeof(HandlebarsBE) !== 'undefined') {\r\n\t\r\n\t\r\n\t// handlebars:  {{{roomConfig _data.roomID}}}\r\n\tBE.handlebars.renderRoomConfig = function(roomid) {\r\n\t\tsetTimeout(function() {\r\n\t\t\tif (BE.handlebars.itemdetails.data.roomDetails && BE.handlebars.itemdetails.data.roomDetails[roomid]) {\r\n\t\t\t\tvar roomconfig = [];\r\n\t\t\t\tif (BE.handlebars.itemdetails.data.roomDetails[roomid].RoomConfig) {\r\n\t\t\t\t\troomconfig.push(BE.handlebars.itemdetails.data.roomDetails[roomid].RoomConfig);\r\n\t\t\t\t}\r\n\t\t\t\tif (BE.handlebars.itemdetails.data.roomDetails[roomid].NoPersons) {\r\n\t\t\t\t\troomconfig.push(BE.handlebars.itemdetails.data.roomDetails[roomid].NoPersons + ' guests');\r\n\t\t\t\t}\r\n\t\t\t\tif (roomconfig.length > 0) {\r\n\t\t\t\t\tjQuery('#room-config-'+roomid).html(roomconfig.join(' &nbsp;|&nbsp; '));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tjQuery('#room-config-'+roomid).parent().hide();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}, 200);\r\n\t\treturn '<span id=\"room-config-'+roomid+'\"></span>';\r\n\t};\r\n\tHandlebarsBE.registerHelper('roomConfig', BE.handlebars.renderRoomConfig);\r\n\t\r\n\t\r\n\t// handlebars:  {{{roomDescription _data.roomID}}}\r\n\tBE.handlebars.renderRoomDescription = function(roomid) {\r\n\t\tsetTimeout(function() {\r\n\t\t\tif (BE.handlebars.itemdetails.data.roomDetails && BE.handlebars.itemdetails.data.roomDetails[roomid]) {\r\n\t\t\t\tif (BE.handlebars.itemdetails.data.roomDetails[roomid].Description) {\r\n\t\t\t\t\tvar desc = BE.handlebars.itemdetails.data.roomDetails[roomid].Description;\r\n\t\t\t\t\tdesc = BE.handlebars.shortSummaryString_NumberOfLines(desc, 200, 2, 80);\r\n\t\t\t\t\tjQuery('#room-description-'+roomid).html(desc);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tjQuery('#room-description-'+roomid).parent().hide();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}, 200);\r\n\t\treturn '<span id=\"room-description-'+roomid+'\"></span>';\r\n\t};\r\n\tHandlebarsBE.registerHelper('roomDescription', BE.handlebars.renderRoomDescription);\r\n\t\r\n\t\r\n\t// new way of running JS each time the item details gadget renders / re-renders\r\n\t// handlebars:  {{{onItemDetailsGadgetRender}}}\r\n\tBE.handlebars.onItemDetailsGadgetRender = function() {\r\n\t\t\r\n\t\tsetTimeout(function() {\r\n\t\t\t\r\n\t\t\t// thumbnail column\r\n\t\t\tif (jQuery('.details-gadget td.thumb div').length == 0) {\r\n\t\t\t\tjQuery('.details-gadget thead td.title').attr('colspan', 1);\r\n\t\t\t\tjQuery('.details-gadget tbody td.thumb').hide();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t// if many nights\r\n\t\t\tvar currentCookieObject = $w.json.parse($w.cookie(BE.util.cookieName()));\r\n\t\t\tvar numNights = 0;\r\n\t\t\tif (currentCookieObject && currentCookieObject.period) { numNights = currentCookieObject.period; }\r\n\t\t\tif (parseInt(numNights) > 7) {\r\n\t\t\t\tjQuery('#itemGadget').addClass('many-nights').removeClass('not-many-nights');\r\n\t\t\t} else {\r\n\t\t\t\tjQuery('#itemGadget').removeClass('many-nights').addClass('not-many-nights');\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}, 50);\r\n\t};\r\n\tHandlebarsBE.registerHelper('onItemDetailsGadgetRender', BE.handlebars.onItemDetailsGadgetRender);\r\n\t\r\n\t\r\n\t// this function will allow you to use \"collapsed tours\" on item details gadget with handlebars, in a new way\r\n\t// handlebars:  {{{groupToursIntoCollapsedRows}}}\r\n\t// for implementation example see wonderreef\r\n\tBE.handlebars.groupToursIntoCollapsedRows = function() {\r\n\t\t\r\n\t\t// init\r\n\t\tvar soldOutRows = {};\r\n\t\tvar groupedRows = {};\r\n\t\tvar groupsEnabled = false;\r\n\t\t\r\n\t\t// 20231020 : bugfix after recent changes in gadgets\r\n\t\tjQuery.each(BE.handlebars.itemdetails.data.itemDetails.items, function(key, item) {\r\n\t\t\titem.roomID_original = item.roomID;\r\n\t\t\titem.roomID = parseInt(item.roomID.split(':')[1]);\r\n\t\t\titem._data.roomID_original = item._data.roomID;\r\n\t\t\titem._data.roomID = (item._data.roomID ? parseInt(item._data.roomID.split(':')[1]) : item._data.roomID);\r\n\t\t\titem._all.NameWithoutTime = item._all.Name;\r\n\t\t});\r\n\t\t\r\n\t\t// activities 2.0 : grouping for dynamic tours w
1orks differently: we still want to group items together but we don't want to show the dropdowns, just one normal button\r\n\t\tif (BE.util.isDefined(BE.handlebars.itemdetails.options) && BE.util.isDefined(BE.handlebars.itemdetails.options.operatorConfig) && BE.util.isDefined(BE.handlebars.itemdetails.options.operatorConfig.isDynamicTours) && (BE.handlebars.itemdetails.options.operatorConfig.isDynamicTours == true)) {\r\n\t\t\tjQuery.each(BE.handlebars.itemdetails.data.itemDetails.items, function(key, item) {\r\n\t\t\t\tvar groupUniqueKey = item._all.TourMasterTourName;\r\n\t\t\t\tif (groupUniqueKey) {\r\n\t\t\t\t\tif (item.td_total[\"a.im-gadgetbutton\"] && item.td_total[\"a.im-gadgetbutton\"][\"span.book im-gadgetbutton-label\"] || item.td_total[\"a.sold-out im-gadgetbutton\"] && item.td_total[\"a.sold-out im-gadgetbutton\"][\"span.book im-gadgetbutton-label\"]) {\r\n\t\t\t\t\t\tif (typeof(groupedRows[groupUniqueKey]) === 'undefined') {\r\n\t\t\t\t\t\t\tgroupedRows[groupUniqueKey] = item;\r\n\t\t\t\t\t\t\tgroupedRows[groupUniqueKey]._all.NameWithoutTime = item._all.TourMasterTourName;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tgroupsEnabled = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (item.td_total[\"a.im-gadgetbutton\"][\"span.number im-gadgetbutton-amount\"] == 'Free') {\r\n\t\t\t\t\t\titem.td_total[\"a.im-gadgetbutton\"][\"span.number im-gadgetbutton-amount\"] = '';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tjQuery('head').append('<style> .im-gadgetbutton + .item-amount-view-more { display:none; } </style>');\r\n\t\t\tif (groupsEnabled) {\r\n\t\t\t\tBE.handlebars.itemdetails.data.itemDetails.items = groupedRows;\r\n\t\t\t}\r\n\t\t\treturn '';\r\n\t\t}\r\n\t\t\r\n\t\t// grouping\r\n\t\tjQuery.each(BE.handlebars.itemdetails.data.itemDetails.items, function(key, item) {\r\n\t\t\tvar groupUniqueKey = item._all.TourMasterTourName;\r\n\t\t\tif (groupUniqueKey) {\r\n\t\t\t\tif (item && item.td_dates && item.td_dates[0] && item.td_dates[0].td && item.td_dates[0].td.span && (item.td_dates[0].td.span == 'N/A')) {\r\n\t\t\t\t\titem.td_dates[0].td.span = '';\r\n\t\t\t\t}\r\n\t\t\t\tif (item.td_total[\"a.im-gadgetbutton\"] && item.td_total[\"a.im-gadgetbutton\"][\"span.book im-gadgetbutton-label\"]) {\r\n\t\t\t\t\titem.isSoldOut = false;\r\n\t\t\t\t\titem.label = ''+item.name;\r\n\t\t\t\t\tif (item._all.AllDay == false) {\r\n\t\t\t\t\t\titem.td_total[\"a.im-gadgetbutton\"][\"span.book im-gadgetbutton-label\"] = (BE.util.isDefined(window.isItemGadgetPolyfillMode) ? BE.gadget.region.text.bookNow.replace(' now', ' Now') : gadgetsFormatAMPM(item._all.TocStartTime));\r\n\t\t\t\t\t\titem.label = gadgetsFormatAMPM(item._all.TocStartTime);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\titem.label = 'All Day';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (typeof(groupedRows[groupUniqueKey]) === 'undefined') {\r\n\t\t\t\t\t\tgroupedRows[groupUniqueKey] = item;\r\n\t\t\t\t\t\tgroupedRows[groupUniqueKey]._all.NameWithoutTime = item._all.TourMasterTourName;\r\n\t\t\t\t\t\tgroupedRows[groupUniqueKey].groupedItems = [];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tgroupedRows[groupUniqueKey].groupedItems.push(item);\r\n\t\t\t\t\tgroupsEnabled = true;\r\n\t\t\t\t} else if (item.td_total[\"a.sold-out im-gadgetbutton\"] && item.td_total[\"a.sold-out im-gadgetbutton\"][\"span.book im-gadgetbutton-label\"]) {\r\n\t\t\t\t\titem.isSoldOut = true;\r\n\t\t\t\t\tif (typeof(soldOutRows[groupUniqueKey]) === 'undefined') {\r\n\t\t\t\t\t\tsoldOutRows[groupUniqueKey] = item;\r\n\t\t\t\t\t\tsoldOutRows[groupUniqueKey]._all.NameWithoutTime = item._all.TourMasterTourName;\r\n\t\t\t\t\t\tsoldOutRows[groupUniqueKey].groupedItems = [item];\r\n\t\t\t\t\t\tsoldOutRows[groupUniqueKey].groupedItems[0].next_available = undefined;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (item.td_dates && item.td_dates[0] && item.td_dates[0].td && item.td_dates[0].td.span) {\r\n\t\t\t\t\t\tvar this_next_available = undefined;\r\n\t\t\t\t\t\tif (BE.util.exists(item._all.Availability) && BE.util.exists(item._all.Availability.NextAvailable)) {\r\n\t\t\t\t\t\t\tthis_next_available = item._all.Availability.NextAvailable;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ((typeof(soldOutRows[groupUniqueKey].groupedItems[0].next_available) === \"undefined\") || (this_next_available < soldOutRows[groupUniqueKey].groupedItems[0].next_available)) {\r\n\t\t\t\t\t\t\tsoldOutRows[groupUniqueKey].groupedItems[0].next_available = this_next_available;\r\n\t\t\t\t\t\t\tsoldOutRows[groupUniqueKey].groupedItems[0].td_dates = item.td_dates;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tgroupsEnabled = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});
1\r\n\t\t\r\n\t\t// sold out items are a bit special, we don't want individual sold out items within groups but we do want to indicate any sold out groups (#17768)\r\n\t\tjQuery.each(soldOutRows, function(groupUniqueKey, soldOutRow) {\r\n\t\t\tif (typeof(groupedRows[groupUniqueKey]) === 'undefined') {\r\n\t\t\t\tgroupedRows[groupUniqueKey] = soldOutRows[groupUniqueKey];\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\t// override the default item details gadget rows with the grouped rows\r\n\t\tif (groupsEnabled) {\r\n\t\t\tBE.handlebars.itemdetails.data.itemDetails.items = groupedRows;\r\n\t\t}\r\n\t\t\r\n\t};\r\n\tHandlebarsBE.registerHelper('groupToursIntoCollapsedRows', BE.handlebars.groupToursIntoCollapsedRows);\r\n\t\r\n\t\r\n\twindow.gadgetsFormatAMPM = function(str) {\r\n\t    time = str.split(':');\r\n\t    if (time.length !== 2) return str;\r\n\t    var hours = parseInt(time[0]);\r\n\t    var minutes = parseInt(time[1]);\r\n\t    var ampm = hours >= 12 ? 'pm' : 'am';\r\n\t    hours = hours % 12;\r\n\t    hours = hours ? hours : 12; // the hour '0' should be '12'\r\n\t    minutes = minutes < 10 ? '0' + minutes : minutes;\r\n\t    var strTime = hours + ':' + minutes + ampm;\r\n\t    return strTime;\r\n\t};\r\n\t\r\n\t\r\n\twindow.gadgetPolyfillCollapseToursChange = function(obj) {\r\n\t\tvar roomid = parseInt(jQuery(obj).attr('data-roomid'));\r\n\t\tvar tourid = parseInt(jQuery(obj).val());\r\n\t\tvar room = jQuery('#product-'+roomid);\r\n\t\troom.find('.collapsed-tour-option').hide();\r\n\t\troom.find('#collapsed-tour-'+tourid).show();\r\n\t};\r\n\t\r\n}\r\n"},function(t,e,r){r(0)(r(27))},function(t,e){t.exports="var $j = jQuery.noConflict();\r\n\r\n$j(window).bind(\"load\", function() {\r\n\t// Find out on the operator details page\r\n\t// if there is only one photo, hide the thumbnail\r\n\tif ( $j('.imagegallery__v3-thumbnails .imagegallery__v3-box').length == 1 ) {\r\n\t\t$j('.imagegallery__v3-box').addClass('single-gallery-thumbnail');\r\n\t\t$j('.wrapper-operator-gallery').addClass('wrapper-operator-gallery-single-gallery-thumbnail');\r\n\t}\r\n});"},function(t,e,r){r(0)(r(29))},function(t,e){t.exports=""},function(t,e,r){r(0)(r(31))},function(t,e){t.exports='\r\nif ( !(jQuery(\'body\').hasClass(\'com_bookeasy\') && jQuery(\'body\').hasClass(\'view-book\')) ) {\r\n\t\r\n\tvar $checkCartInterval = 0;\r\n\tvar $tripPlannerHoverTimeout = 0;\r\n\t\r\n\t$w(function() {\r\n\t\tvar cartOpts = IM.gadgetInitCartOptions;\r\n\t\tif (!cartOpts || parseInt(cartOpts.vcID, 10) === 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (IM.gadgetInitCartSelectorSecondary) {\r\n\t\t\tBE.gadget.cart(IM.gadgetInitCartSelectorSecondary, cartOpts);\r\n\t\t} else {\r\n\t\t\tBE.gadget.cart(IM.gadgetInitCartSelector, cartOpts);\r\n\t\t}\r\n\t\t$checkCartInterval = setInterval("checkCartNoItems()", 400);\r\n\t});\r\n\t\r\n\t$w.event.subscribe("item.book.click", function(item) {\r\n\t\tvar IsGoldMedal = item[3].IsGoldMedal;\r\n\t\tif (IM.overrideCheckOutImmediately && IsGoldMedal) {\r\n\t\t\tjQuery("div.addButton a.checkOutNow span").html(BE.gadget.cart.text.checkOutImmediately);\r\n\t\t}\r\n\t\tif (IM.overrideCheckOutReservation && !IsGoldMedal) {\r\n\t\t\tjQuery("div.addButton a.checkOutNow span").html(BE.gadget.cart.text.checkOutReservation);\r\n\t\t}\r\n\t});\r\n\t\r\n\twindow.openCart = function() {\r\n\t\t$w(\'div.totalDisplay a\').trigger(\'click\');\r\n\t};\r\n\t\r\n\twindow.checkCartNoItems = function() {\r\n\t\tif (jQuery("#toolbar-cart .noItems").length > 0) {\r\n\t\t\tjQuery("#toolbar-cart #empty").html("<strong>0</strong>");\r\n\t\t\tjQuery("body").removeClass("hasCart");\r\n\t\t} else if (jQuery("#toolbar-cart .cartItems").length > 0) {\r\n\t\t\tjQuery("#toolbar-cart #empty").html("");\r\n\t\t\tjQuery("body").addClass("hasCart");\r\n\t\t}\r\n\t\tif (jQuery(".cartItems .expirationDate").length > 0) {\r\n\t\t\tjQuery("body").addClass("hasCartTimer");\r\n\t\t} else {\r\n\t\t\tjQuery("body").removeClass("hasCartTimer");\r\n\t\t}\r\n\t}\r\n\t\r\n\tjQuery(document).ready(function() {\r\n\t\tjQuery(".link-tripplanner-hover").hover(function() { showTripPlannerPopout(this); }, function() { hideTripPlannerPopout(); });\r\n\t\tjQuery("#shopping-cart-link").hover(function() { jQuery(this).click(); }, function() { });\r\n\t});\r\n\t\r\n\twindow.addToTripPlanner = function($url) {\r\n\t\tjQuery.get($url, function($numberItems) {\r\n\t\t\tjQuery("#toolbar-tr
1ipplanner a").text(parseInt($numberItems));\r\n\t\t\tshowTripPlannerPopout(jQuery(".link-tripplanner-hover"));\r\n\t\t\tsetTimeout("hideTripPlannerPopout()", 10000);\r\n\t\t\tif (parseInt($numberItems) > 0) {\r\n\t\t\t\tif (IM.tripPlannerScrollToTop) {\r\n\t\t\t\t\twindow.scrollTo(0,0);\r\n\t\t\t\t}\r\n\t\t\t\tjQuery(".link-tripplanner-hover").show();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t\r\n\twindow.removeFromTripPlanner = function($url, $obj) {\r\n\t\tjQuery.get($url, function($numberItems) {\r\n\t\t\tjQuery("#toolbar-tripplanner a").text(parseInt($numberItems));\r\n\t\t\tjQuery($obj).parent().parent().slideUp(function() {\r\n\t\t\t\tjQuery(this).remove();\r\n\t\t\t});\r\n\t\t\tif (parseInt($numberItems) == 0) {\r\n\t\t\t\tjQuery(".link-tripplanner-hover").hide();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t\r\n\twindow.showTripPlannerPopout = function(obj) {\r\n\t\tif (jQuery(".toolbar-hover-popout").length > 0) {\r\n\t\t\tjQuery(".toolbar-hover-popout").stop();\r\n\t\t\tjQuery(".toolbar-hover-popout").fadeTo(400, 1.0);\r\n\t\t\tclearTimeout($tripPlannerHoverTimeout);\r\n\t\t} else {\r\n\t\t\tjQuery(obj).append(\'<div class="toolbar-hover-popout" style="display:none"><img id="loading-animation" src="\'+IM.loadingAnimationUrl+\'" alt="" /></div>\');\r\n\t\t\tjQuery(".toolbar-hover-popout").fadeTo(400, 1.0);\r\n\t\t\tjQuery.get(IM.tripPlannerUrlAjax, function(data) {\r\n\t\t\t\tjQuery(".toolbar-hover-popout").html(data);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\t\r\n\twindow.hideTripPlannerPopout = function() {\r\n\t\tjQuery(".toolbar-hover-popout").stop();\r\n\t\tjQuery(".toolbar-hover-popout").fadeTo(400, 0.0, function() {\r\n\t\t\tjQuery(".toolbar-hover-popout").hide();\r\n\t\t});\r\n\t\t$tripPlannerHoverTimeout = setTimeout(function() { jQuery(".toolbar-hover-popout").remove(); }, 10000);\r\n\t}\r\n\t\r\n\twindow.showOperatorMap = function(element,$url) {\r\n\t\tif (jQuery(element+" div.operator-map-popout").css("display") != "none") {\r\n\t\t\tjQuery(element+" a.showMapLink").text("Show Map");\r\n\t\t\tjQuery(element+" div.operator-map-popout").slideUp("slow");\r\n\t\t} else {\r\n\t\t\tif (jQuery(element+" .showMapFrame").length > 0) {\r\n\t\t\t\tjQuery(element+" div.operator-map-popout").slideDown("slow");\r\n\t\t\t\tjQuery(element+" a.showMapLink").text("Hide Map");\r\n\t\t\t} else {\r\n\t\t\t\tjQuery(element+" div.operator-map-popout .map-container").html(\'<iframe src="\'+$url+\'" width="100%" height="300" class="showMapFrame"></iframe>\');\r\n\t\t\t\tjQuery(element).append(\'<img class="loading-animation" src="\'+IM.loadingAnimationUrl+\'" alt="" />\');\r\n\t\t\t\tjQuery(element+" .showMapFrame").load(function(){\r\n\t\t\t\t\tjQuery(element+" .loading-animation").remove();\r\n\t\t\t\t\tjQuery(this).show();\r\n\t\t\t\t\tjQuery(element+" a.showMapLink").text("Hide Map");\r\n\t\t\t\t\tjQuery(element+" div.operator-map-popout").slideDown("slow");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n}\r\n'},function(t,e,r){r(0)(r(33))},function(t,e){t.exports='/*! modernizr 3.3.1 (Custom Build) | MIT *\r\n * https://modernizr.com/download/?-mq-setclasses !*/\r\n!function(e,n,t){function o(e,n){return typeof e===n}function a(){var e,n,t,a,s,i,r;for(var l in d)if(d.hasOwnProperty(l)){if(e=[],n=d[l],n.name&&(e.push(n.name.toLowerCase()),n.options&&n.options.aliases&&n.options.aliases.length))for(t=0;t<n.options.aliases.length;t++)e.push(n.options.aliases[t].toLowerCase());for(a=o(n.fn,"function")?n.fn():n.fn,s=0;s<e.length;s++)i=e[s],r=i.split("."),1===r.length?Modernizr[r[0]]=a:(!Modernizr[r[0]]||Modernizr[r[0]]instanceof Boolean||(Modernizr[r[0]]=new Boolean(Modernizr[r[0]])),Modernizr[r[0]][r[1]]=a),f.push((a?"":"no-")+r.join("-"))}}function s(e){var n=u.className,t=Modernizr._config.classPrefix||"";if(p&&(n=n.baseVal),Modernizr._config.enableJSClass){var o=new RegExp("(^|\\\\s)"+t+"no-js(\\\\s|$)");n=n.replace(o,"$1"+t+"js$2")}Modernizr._config.enableClasses&&(n+=" "+t+e.join(" "+t),p?u.className.baseVal=n:u.className=n)}function i(){return"function"!=typeof n.createElement?n.createElement(arguments[0]):p?n.createElementNS.call(n,"http://www.w3.org/2000/svg",arguments[0]):n.createElement.apply(n,arguments)}function r(){var e=n.body;return e||(e=i(p?"svg":"body"),e.fake=!0),e}function l(e,t,o,a){var s,l,f,d,c="modernizr",p=i("div"),m=r();if(parseInt(o,10))for(;o--;)f=i("div"),f.id=a?a[o]:c+(o+1),p.appendChild(f);return s=i("style"),s.type="text/css",s.id="s"+c,(m.fake?m:p).appendChild(s),m.a
1ppendChild(p),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(n.createTextNode(e)),p.id=c,m.fake&&(m.style.background="",m.style.overflow="hidden",d=u.style.overflow,u.style.overflow="hidden",u.appendChild(m)),l=t(p,e),m.fake?(m.parentNode.removeChild(m),u.style.overflow=d,u.offsetHeight):p.parentNode.removeChild(p),!!l}var f=[],d=[],c={_version:"3.3.1",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,n){var t=this;setTimeout(function(){n(t[e])},0)},addTest:function(e,n,t){d.push({name:e,fn:n,options:t})},addAsyncTest:function(e){d.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=c,Modernizr=new Modernizr;var u=n.documentElement,p="svg"===u.nodeName.toLowerCase(),m=function(){var n=e.matchMedia||e.msMatchMedia;return n?function(e){var t=n(e);return t&&t.matches||!1}:function(n){var t=!1;return l("@media "+n+" { #modernizr { position: absolute; } }",function(n){t="absolute"==(e.getComputedStyle?e.getComputedStyle(n,null):n.currentStyle).position}),t}}();c.mq=m,a(),s(f),delete c.addTest,delete c.addAsyncTest;for(var h=0;h<Modernizr._q.length;h++)Modernizr._q[h]();e.Modernizr=Modernizr}(window,document);'},function(t,e,r){r(0)(r(35))},function(t,e){t.exports="// this script REQUIRES imutility.js\r\n\r\n\r\n// convert the search gadget into bootstrap format, to allow for better styling, and automatic responsiveness\r\njQuery(document).on('gadget.script.loaded', function() {\r\n\r\n\tIMUtility.pushSearchGadgetLoadedEvent();\r\n\r\n\t// for operators with no type, get this from the url hash\r\n    var hashArr = window.location.hash.split( '/' );\r\n    opType = hashArr[1];\r\n    if (typeof opType !== undefined) {\r\n        jQuery('#itemGadget').addClass(opType);\r\n    }\r\n\r\n\t$w.event.subscribe('search.button.click', function() {\r\n\t\tif (jQuery('#searchGadget .search-gadget .stateFilter select option:selected').text() == 'Select State') {\r\n\t\t\t// prevent search\r\n\r\n\t\t}\r\n\t\tif (jQuery('#searchGadget .search-gadget .regionFilter select option:selected').text() == 'Select Region') {\r\n\t\t\t// prevent search\r\n\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t});\r\n\r\n\r\n\t$w.event.subscribe('search.gadget.ready', function() {\r\n\r\n\t\t//console.log('[SEARCH][READY] search.gadget.ready');\r\n\t\t\r\n\t\tBE._isMobile = 1;\r\n\r\n\t\tjQuery('#itemGadget .search-gadget span.label').wrap('<label></label>');\r\n\t\tjQuery('#itemGadget .search-gadget span.label').addClass('gadget__search-label').removeClass('label');\r\n\t\t\r\n\t\t// if an input div is empty, then remove it\r\n\t\tif (jQuery('.search-gadget .date').children().length === 0) jQuery('#itemGadget .search-gadget .date').remove();\r\n\t\tif (jQuery('.search-gadget .period').children().length === 0) jQuery('#itemGadget .search-gadget .period').remove();\r\n\t\tif (jQuery('.search-gadget .adults').children().length === 0) jQuery('#itemGadget .search-gadget .adults').remove();\r\n\t\tif (jQuery('.search-gadget .children').children().length === 0) jQuery('#itemGadget .search-gadget .children').remove();\r\n\t\tif (jQuery('.search-gadget .infants').children().length === 0) jQuery('#itemGadget .search-gadget .infants').remove();\r\n\t\tif (jQuery('.search-gadget .concessions').children().length === 0) jQuery('#itemGadget .search-gadget .concessions').remove();\r\n\t\tif (jQuery('.search-gadget .students').children().length === 0) jQuery('#itemGadget .search-gadget .students').remove();\r\n\t\tif (jQuery('.search-gadget .observers').children().length === 0) jQuery('#itemGadget .search-gadget .observers').remove();\r\n\t\tif (jQuery('.search-gadget .family').children().length === 0) jQuery('#itemGadget .search-gadget .family').remove();\r\n\r\n\r\n\t\t// General\r\n\t\tjQuery('#itemGadget .search-gadget .date').addClass('gadget__search-column gadget__search-column-date');\r\n\t\tjQuery('#itemGadget .search-gadget .period').addClass('gadget__search-column gadget__search-column-select gadget__pax');\r\n\t\tjQuery('#itemGadget .search-gadget .adults').addClass('gadget__search-column gadget__search-column-select gadget__pax');\r\n\t\tjQuery('#itemGadget .search-gadget .children').addClass('gadget__search-column gadget__search-column-select gadget__pax');\r\n\t\tjQuery('#itemGadget .search-gadget .infants').addClass('gadget__search-column gadget__search-column-select gadget__pax');\r\n        jQuery('#itemGadget .search-gadget .concessions').addClass('gadget__search-column gadget__search-column-select gadget__pax');\r\n        jQuery('#itemGadget .search-gadget .students').addClass('gadget__search-column gadget__search-column-select gadget__pax');\r\n        jQuery('#itemGadget .search-gadget .observers').addClass('gadget__search-column gadget__search-column-select gadget__pax');\r\n        jQuery('#itemGadget .search-gadget .family').addClass('gadget__search-column gadget__search-column-select gadget__pax');\r\n        jQuery('#itemGadget .search-gadget .button').addClass('gadget__search-column gadget__search-column-button pull-right');\r\n        jQuery('#itemGadget .search-gadget .currencyId').addClass('gadget__search-column gadget__search-column-select');\r\n        jQuery('#itemGadget .search-gadget .currencyId > span').addClass('input');\r\n\r\n\r\n\r\n        // packages\r\n        if (jQuery('#itemGadget').hasClass('packages')) {\r\n\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .date')).addClass('col-xs-12 col-sm-6 col-md-2');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .period')).addClass('col-xs-6 col-sm-3 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .adults')).addClass('col-xs-6 col-sm-3 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .children')).addClass('col-xs-6 col-sm-3 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .infants')).addClass('col-xs-6 col-sm-3 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .concessions')).addClass('col-xs-6 col-sm-3 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .students')).addClass('col-xs-6 col-sm-3 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .observers')).addClass('col-xs-6 col-sm-3 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .family')).addClass('col-xs-6 col-sm-3 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .currencyId')).addClass('col-xs-12 col-sm-3 col-md-2_5');\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// non-packages\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .concessions')).addClass('col-xs-6 col-sm-3 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .students')).addClass('col-xs-6 col-sm-3 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .observers')).addClass('col-xs-6 col-sm-3 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .family')).addClass('col-xs-6 col-sm-3 col-md-1_5');\r\n\r\n\r\n\t\t}\r\n\t\t// tours\r\n\t\tif (jQuery('#itemGadget').hasClass('tours')) {\r\n\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .date')).addClass('col-xs-12 col-sm-6 col-md-2');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .period')).addClass('col-xs-6 col-sm-3 col-md-1_3');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .adults')).addClass('col-xs-6 col-sm-3 col-md-1_3');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .children')).addClass('col-xs-6 col-sm-3 col-md-1_3');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .infants')).addClass('col-xs-6 col-sm-3 col-md-1_3');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .currencyId')).addClass('col-xs-12 col-sm-6 col-md-2_5');\r\n\r\n\t\t}\r\n\t\t// accom, etc\r\n\t\tif (!jQuery('#itemGadget').hasClass('packages') && !jQuery('#itemGadget').hasClass('tours')) {\r\n\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .date')).addClass('col-xs-12 col-sm-6 col-md-2');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .period')).addClass('col-xs-6 col-sm-3 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .adults')).addClass('col-xs-6 col-sm-3 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .children')).addClass('col-xs-6 col-sm-3 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .infants')).addClass('col-xs-6 col-sm-3 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#itemGadget .search-gadget .currencyId')).addClass('col-xs-12 col-sm-6 col-md-2_5');\r\n\t\t}\r\n\t\t\r\n\t\t// label first and last input\r\n\t\tjQuery('#itemGadget .search-gadget > .gadget__search-column').first().addClass('first');\r\n\t\tjQuery('#itemGadget .search-gadget > .gadget__search-column:not(.gadget__search-column-button)').last().addClass('last');\r\n\r\n\r\n\t\tjQuery('#itemGadget .search-gadget .date, #itemGadget .search-gadget .period, #itemGadget .search-gadget .adults, #itemGadget .search-gadget .children, #itemGadget .search-gadget .infants').wrapInner('<div class=\"row\"></div>');\r\n\t\tjQuery('#itemGadget .search-gadget .concessions, #itemGadget .search-gadget .students, #itemGadget .search-gadget .observers, #itemGadget .search-gadget .family, #itemGadget .search-gadget .currencyId').wrapInner('<div class=\"row\"></div>');\r\n\r\n\t\tjQuery('#itemGadget .search-gadget').attr('id', 'gadget__search');\r\n\t\tjQuery('#itemGadget .embedded-search .search-gadget .button').hide();\r\n\r\n//        jQuery('#itemGadget .embedded-search').addClass('container-fluid');\r\n  //      jQuery('#itemGadget .search-gadget.BE').addClass('row').wrap('<div class=\"row\"><div class=\"container\"></div></div>');\r\n\r\n\r\n        jQuery('#gadget__search').append('<div class=\"clearfix\"></div>');\r\n\t\t\r\n\t\tif (jQuery('#itemGadget .search-gadget .students').length > 0) {\r\n\t\t\tjQuery('#itemGadget .search-gadget').addClass('wide-row-many-columns');\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n/*\t\t// PV: adults selector maximum of 6 adults #17633\r\n\t\tjQuery('.embedded-search .gadget__search-column.adults select option').each(function() {\r\n\t\t\tif (jQuery(this).val() > 6) {\r\n\t\t\t\tjQuery(this).remove();\r\n\t\t\t}\r\n\t\t});\r\n*/\r\n\t\t\r\n\t});\r\n});\r\n"},function(t,e,r){r(0)(r(37))}
1,function(t,e){t.exports="\r\n\r\n// this script REQUIRES imutility.js\r\n// please ensure you include imutility.js before this script, like so:\r\n// <jdoc:include type=\"impartScript\" name=\"{shared}/v3/js/imutility.js\" compress=\"true\" />\r\n\r\n\r\n// convert the region gadget into bootstrap format, to allow for better styling, and automatic responsiveness\r\n\r\njQuery(document).on('gadget.script.loaded', function() {\r\n\r\n\tIMUtility.pushRegionGadgetLoadedEvent();\r\n\tIMUtility.pushRegionGadgetChangedEvent();\r\n\tIMUtility.transformMenuInterval=null;\r\n\tIMUtility.transformGridInterval=null;\r\n\tIMUtility.transformDetailInterval=null;\r\n\tIMUtility.transformMapInterval=null;\r\n\tIMUtility.beEvents={};\r\n\tIMUtility.beEvents.beRegionRefineToolsBuilt = 0;\r\n\tIMUtility.debug=0;\r\n\r\n/*\r\n\t$w.event.subscribe('search.datepicker.change', function() {\r\n\t\tif (IMUtility.debug) console.log('[BE.PRODUCT.TABS] search.datepicker.change handler');\r\n\t\tIMUtility.beEvents.beWaitForPriceGrid=0;\r\n\t\tIMUtility.beEvents.beWaitForListView=0;\r\n\t\tIMUtility.beEvents.beRegionRefineToolsBuilt=0;\r\n\t});\r\n\t$w.event.subscribe('search.period.change', function() {\r\n\t\tif (IMUtility.debug) console.log('[BE.PRODUCT.TABS] search.period.change handler');\r\n\t\tIMUtility.beEvents.beWaitForPriceGrid=0;\r\n\t\tIMUtility.beEvents.beWaitForListView=0;\r\n\t\tIMUtility.beEvents.beRegionRefineToolsBuilt=0;\r\n\t});\r\n\t$w.event.subscribe('search.adults.change', function() {\r\n\t\tif (IMUtility.debug) console.log('[BE.PRODUCT.TABS] search.adults.change handler');\r\n\t\tIMUtility.beEvents.beWaitForPriceGrid=0;\r\n\t\tIMUtility.beEvents.beWaitForListView=0;\r\n\t\tIMUtility.beEvents.beRegionRefineToolsBuilt=0;\r\n\t});\r\n\t$w.event.subscribe('search.children.change', function() {\r\n\t\tif (IMUtility.debug) console.log('[BE.PRODUCT.TABS] search.children.change handler');\r\n\t\tIMUtility.beEvents.beWaitForPriceGrid=0;\r\n\t\tIMUtility.beEvents.beWaitForListView=0;\r\n\t\tIMUtility.beEvents.beRegionRefineToolsBuilt=0;\r\n\t});\r\n\t$w.event.subscribe('search.infants.change', function() {\r\n\t\tif (IMUtility.debug) console.log('[BE.PRODUCT.TABS] search.infants.change handler');\r\n\t\tIMUtility.beEvents.beWaitForPriceGrid=0;\r\n\t\tIMUtility.beEvents.beWaitForListView=0;\r\n\t\tIMUtility.beEvents.beRegionRefineToolsBuilt=0;\r\n\t});\r\n\t$w.event.subscribe('search.types.change', function() {\r\n\t\tif (IMUtility.debug) console.log('[BE.PRODUCT.TABS] search.types.change handler');\r\n\t\tIMUtility.beEvents.beWaitForPriceGrid=0;\r\n\t\tIMUtility.beEvents.beWaitForListView=0;\r\n\t\tIMUtility.beEvents.beRegionRefineToolsBuilt=0;\r\n\t});\r\n\t$w.event.subscribe('search.product.change', function() {\r\n\t\tif (IMUtility.debug) console.log('[BE.PRODUCT.TABS] search.product.change handler');\r\n\t\tIMUtility.beEvents.beWaitForPriceGrid=0;\r\n\t\tIMUtility.beEvents.beWaitForListView=0;\r\n\t\tIMUtility.beEvents.beRegionRefineToolsBuilt=0;\r\n\t});\r\n*/\r\n\r\n\t$w.event.subscribe('search.gadget.ready', function() {\r\n\r\n\t\tif (IMUtility.debug) console.log('[REGION][READY] search.gadget.ready');\r\n\r\n\t\tBE._isMobile = 1;\r\n\r\n\t\tjQuery('#regionGadget .search-gadget span.label').wrap('<label></label>');\r\n\t\tjQuery('#regionGadget .search-gadget span.label').addClass('gadget__search-label').removeClass('label');\r\n\r\n\t\t// General\r\n\t\tjQuery('#regionGadget .search-gadget .product').addClass('gadget__search-column gadget__search-column-select');\r\n\t\tjQuery('#regionGadget .search-gadget .date').addClass('gadget__search-column gadget__search-column-date');\r\n\t\tjQuery('#regionGadget .search-gadget .period').addClass('gadget__search-column gadget__search-column-select gadget__pax');\r\n\t\tjQuery('#regionGadget .search-gadget .adults').addClass('gadget__search-column gadget__search-column-select gadget__pax');\r\n\t\tjQuery('#regionGadget .search-gadget .children').addClass('gadget__search-column gadget__search-column-select gadget__pax');\r\n\t\tjQuery('#regionGadget .search-gadget .infants').addClass('gadget__search-column gadget__search-column-select gadget__pax');\r\n\t\tjQuery('#regionGadget .search-gadget .currencyId').addClass('gadget__search-column gadget__search-column-select');\r\n\t\tjQuery('#regionGadget .search-gadget .currencyId > span').addClass('input');\r\n\t\tjQuery('#regionGadget .search-gadget .concessions').addClass('gadget__search-column gadget__search-column-select gadget__pax');\r\n\t\tjQuery('#regionGadget .search-gadget .students').addClass('gadget__search-column gadget__search-column-select gadget__pax');\r\n\t\tjQuery('#regionGadget .search-gadget .observers').addClass('gadget__search-column gadget__search-column-select gadget__pax');\r\n\t\tjQuery('#regionGadget .search-gadget .family').addClass('gadget__search-column gadget__search-column-select gadget__pax');\r\n\t\tjQuery('#regionGadget .search-gadget .button').addClass('gadget__search-column gadget__search-column-button pull-right');\r\n\r\n\t\t//bootstrapSearchGadget();\r\n\r\n\t\tjQuery('#regionGadget .search-gadget').attr('id', 'gadget__search');\r\n\t\tjQuery('#regionGadget .search-gadget .button').hide();\r\n\r\n\t\t//jQuery('#regionGadget .region-gadget.BE').addClass('row');\r\n\t\tjQuery('#regionGadget .embedded-search').wrapInner('<div class=\"container\"></div>');\r\n\t\tjQuery('#regionGadget .search-gadget.BE').addClass('row');\r\n\r\n\t\tjQuery('#gadget__search').append('<div class=\"clearfix\"></div>');\r\n\r\n\t\tif (jQuery('#regionGadget .search-gadget .students').length > 0) {\r\n\t\t\tjQuery('#regionGadget .search-gadget').addClass('wide-row-many-columns');\r\n\t\t}\r\n\r\n\r\n\t});\r\n\t$w.event.subscribe('region.refinetools.built', function() {\r\n\r\n\r\n\t\tif (IMUtility.debug) console.log(\"[REGION][REFINETOOLS] built\");\r\n\t\tif (IMUtility.refineToolsBuilt === 1) {\r\n\t\t\tif (IMUtility.debug) console.log(\"[REGION][REFINETOOLS] built= [1] EXIT\");\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tif (IMUtility.debug) console.log(\"[REGION][REFINETOOLS] do handler\");\r\n\t\tIMUtility.refineToolsBuilt = 1;\r\n\r\n\r\n\t\t// Set default view based on device\r\n\t\t/*\r\n\t\tif ($j('#regionGadget').length > 0) {\r\n\t\t\tvar myEfficientRegionFn = debounce(function() {\r\n\t\t\t\tsetRegionView();\r\n\t\t\t}, 250);\r\n\t\t\twindow.addEventListener('resize', myEfficientRegionFn);\r\n\t\t\tsetRegionView();\r\n\t\t}\r\n\t\t */\r\n\r\n\r\n\r\n\r\n\t\t// BE PRODUCT TABS\r\n\t\t// If there are no tabs then remove the tab container\r\n\t\tif ((jQuery('.tabs-group').length > 0) && (jQuery('.gadget__region-tabs').length > 0)) {\r\n\t\t\tjQuery('.gadget__region-tabs').remove();\r\n\t\t}\r\n\t\t// adjust region gadget general styling\r\n\t\tjQuery('.view-choice .label').hide();\r\n\t\tif (jQuery('.view-choice a.price').length>0 && jQuery('.view-choice a.list').length>0 && jQuery('.view-choice a.map').length>0) {\r\n\t\t\tjQuery('.view-choice a.price').addClass('tab-view col-xs-3 col-xs-offset-1 col-sm-2 col-sm-offset-3 col-md-1 col-md-offset-4_5');\r\n\t\t\tjQuery('.view-choice a.list').addClass('tab-view col-xs-3 col-sm-2 col-md-1 col-md-offset-0');\r\n\t\t\tjQuery('.view-choice a.map').addClass('tab-view col-xs-3 col-sm-2 col-md-1');\r\n\t\t\tjQuery('.view-choice').append('<a class=\"blank tab hidden-xs col-sm-3 col-md-3\"><span>&nbsp;</span></a>');\r\n\t\t} else if (jQuery('.view-choice a.price').length>0 && jQuery('.view-choice a.list').length==0 && jQuery('.view-choice a.map').length>0) {\r\n\t\t\tjQuery('.view-choice a.price').addClass('tab-view col-xs-3 col-xs-offset-3 col-sm-2 col-sm-offset-4 col-md-1 col-md-offset-5');\r\n\t\t\tjQuery('.view-choice a.map').addClass('tab-view col-xs-3 col-sm-2 col-md-1');\r\n\t\t\tjQuery('.view-choice').append('<a class=\"blank tab hidden-xs col-sm-4 col-md-3\"><span>&nbsp;</span></a>');\r\n\t\t}\r\n\r\n\t\tjQuery('.view-choice').addClass('gadget__all-tabs row');\r\n\t\tjQuery('.tabs-group').addClass('gadget__region-tabs').removeClass('tabs-group').addClass('product-tabs');\r\n\r\n\r\n\r\n\t\t// adjust campaign mode region gadget\r\n\t\tif (jQuery('#region-gadget-results.productTabs .view-choice').length > 0 && jQuery('#region-gadget-results.productTabs .product-choice').length === 0) {\r\n\t\t\tjQuery('#region-gadget-results.productTabs .view-choice').wrap('<div class=\"gadget__region-choices container\"></div>');\r\n\t\t\t// Add custom tabs to campaign view\r\n\t\t\taddCampaignTabs('col-xs-6 col-sm-6 col-md-');\r\n\t\t\tIMUtility.beEvents.regionTabClick = parseInt(0);\r\n\t\t}\r\n\r\n\t\t//jQuery('.gadget__region-tabs').insertAfter('.embedded-search');\r\n\t\tjQuery('.embedded-search').after('<div class=\"gadget__region-tabs view-tabs\"><div class=\"gadget__region-choices container\"></div></div>');\r\n\t\tjQuery('.gadget__region-tabs .gadget__region-choices .view-choice').appendTo('.gadget__region-tabs.view-tabs .gadget__region-choices');\r\n\r\n\r\n\r\n\t\tbootstrapSearchGadget();\r\n\t\tIMUtility.transformRefineToolsInterval = transformRefineTools();\r\n\r\n\t\t// This needs to be called here because we want to insert a custom 'noResults' message when\r\n\t\t// no location filters have been chosen so that the user knows why they are not seeing any search results\r\n\t\t// we need to wait for the region filters to be built first\r\n\t\tIMUtility.refineToolsBuiltInterval = setInterval(function(){\r\n\r\n\t\t\tif (jQuery('#regionGadget .locationsFilter select').length > 0 && jQuery('#regionGadget .regionFilter select').length > 0) {\r\n\r\n\t\t\t\tif (IMUtility.debug) console.log('[REGION TOOLS BUILT] location filter is built');\r\n\t\t\t\tsetRegionPageTitle();\r\n\t\t\t\tclearInterval(IMUtility.refineToolsBuiltInterval);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t},100);\r\n\r\n\r\n\t});\r\n\t$w.event.subscribe('region.gadget.built', function() {\r\n\r\n\r\n\t\tif (IMUtility.debug) console.log(\"[REGION][BUILT] region.gadget.built event detected\");\r\n\t\tif (IMUtility.regionGadgetBuilt === 1) { return true; }\r\n\t\tIMUtility.regionGadgetBuilt = 1;\r\n\r\n\r\n\t\t//adjustRegionTabs();\r\n\r\n\t\tsetRegionPageTitle();\r\n\r\n\t\tvar selectedProductType = IMUtility.getSelectedProduct();
1\r\n\r\n\t\tsetTimeout(function() {\r\n\t\t\t//showRegionProductMenu(selectedProductType);\r\n\t\t\ttransformPricesGrid(selectedProductType);\r\n\t\t\ttransformDetailsView(selectedProductType);\r\n\t\t\t//transformMapView(selectedProductType); // This has to be called from the map markers event handler or it won't work\r\n\r\n\t\t\tjQuery('.search-gadget .period select').change(function() {\r\n\t\t\t\tforceManyNightsToListView();\r\n\t\t\t});\r\n\t\t\tforceManyNightsToListView();\r\n\r\n\r\n\t\t}, 500);\r\n\r\n\r\n\r\n\r\n\t});\r\n\r\n\r\n\r\n}); // end gadget script loaded\r\n\r\n$w.event.subscribe('map.markers.start', function() {\r\n\r\n\tif (getRegionView() == 'map') {\r\n\r\n\t\tif (IMUtility.regionGadgetBuilt ) {\r\n\t\t\tvar selectedProductType = IMUtility.getSelectedProduct();\r\n\t\t\ttransformMapView(selectedProductType);\r\n\t\t}\r\n\t}\r\n\r\n});\r\n\r\n\r\nfunction adjustRegionTabs() {\r\n\r\n\tif (IMUtility.debug) console.log('[REGION] adjustRegionTabs()');\r\n\r\n\tif (jQuery('.tabs-group').length === 0) {\r\n\t\tif (IMUtility.debug) console.log('[REGION] adjustRegionTabs() exit');\r\n\t\treturn true;\r\n\t}\r\n\r\n\tif ((jQuery('.tabs-group').length > 0) && (jQuery('.gadget__region-tabs').length > 0)) {\r\n\t\tif (IMUtility.debug) console.log('[REGION] adjustRegionTabs() remove tabs skipped because product showing as tabs');\r\n\t\t//jQuery('.gadget__region-tabs').remove();// don't do this when product viewed as tabs\r\n\t}\r\n\r\n\tjQuery('.view-choice').addClass('gadget__all-tabs row');\r\n\tjQuery('.view-choice .label').hide();\r\n\tjQuery('.view-choice a').addClass('tab col-xs-3 col-sm-3 col-md-1');\r\n\tjQuery('.view-choice').append('<a class=\"blank tab col-xs-3 col-sm-3 col-md-9\"><span>&nbsp;</span></a>');\r\n\tjQuery('.tabs-group').removeClass('tabs-group').addClass('gadget__region-tabs').wrapInner('<div class=\"container-fluid\"></div>');\r\n\r\n\tjQuery('.view-choice a.map').click(function() {\r\n\r\n\t\tvar selectedProductType = IMUtility.getSelectedProduct();\r\n\t\ttransformMapView(selectedProductType);\r\n\t});\r\n\r\n\r\n\r\n}\r\nfunction forceManyNightsToListView() {\r\n\r\n\tif (IMUtility.debug) console.log('[REGION] forceManyNightsToListView()');\r\n\r\n\tif (parseInt(jQuery('.search-gadget .period select').val()) >= 8) {\r\n\t\tvar wThis = $w('div.view-choice a.list');\r\n\t\tvar rel = wThis.attr('rel');\r\n\t\t$w.event.publish('region.view.change', wThis, rel);\r\n\t\tjQuery('.gadget__region-tabs .view-choice a').removeClass('current');\r\n\t\tjQuery('.gadget__region-tabs .view-choice .list').addClass('current');\r\n\t} else {\r\n\t\tvar wThis = $w('div.view-choice a.price');\r\n\t\tvar rel = wThis.attr('rel');\r\n\t\t$w.event.publish('region.view.change', wThis, rel);\r\n\t\tjQuery('.gadget__region-tabs .view-choice a').removeClass('current');\r\n\t\tjQuery('.gadget__region-tabs .view-choice .price').addClass('current');\r\n\t}\r\n\t/**/\r\n\r\n}\r\nfunction getProductClass(rowObject) {\r\n\tif (jQuery(rowObject).hasClass('accom')) { return 'accom'; }\r\n\tif (jQuery(rowObject).hasClass('tours')) { return 'tours'; }\r\n\tif (jQuery(rowObject).hasClass('events')) { return 'events'; }\r\n\tif (jQuery(rowObject).hasClass('carhire')) { return 'carhire'; }\r\n\tif (jQuery(rowObject).hasClass('packages')) { return 'packages'; }\r\n\treturn '';\r\n}
1\r\nfunction transformPricesGrid(productType) {\r\n\tvar transformGridDebug=IMUtility.debug;\r\n\r\n\tif (transformGridDebug) console.log('[REGION] transformPricesGrid(\"'+productType+'\") ');\r\n\r\n\r\n\tIMUtility.transformGridInterval = setInterval(function(){\r\n\r\n\r\n\r\n\t\tif (jQuery('.spinner').css('display') == 'none') {\r\n\r\n\t\t\tif (jQuery('.prices-grid .'+productType+'.type-group thead td.date').hasClass('hidden-xs')) {\r\n\t\t\t\tif (transformGridDebug) console.log('[REGION] Clear '+productType+' GRID Interval - bootstrap already applied');\r\n\t\t\t\tclearInterval(IMUtility.transformGridInterval);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tif (jQuery('.prices-grid .'+productType+'.type-group table').length == 0) {\r\n\t\t\t\tif (transformGridDebug) console.log('[REGION] Clear '+productType+' GRID Interval - no results');\r\n\t\t\t\tsetNoResultsText('price');\r\n\t\t\t\tclearInterval(IMUtility.transformGridInterval);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tif (transformGridDebug) console.log('[REGION] Do '+productType+' GRID transformation');\r\n\r\n\r\n\t\t\tjQuery('#regionGadget .prices-grid').addClass('container');//.wrapInner('<div class=\"row\"></div>');\r\n\t\t\tjQuery('#regionGadget .prices-grid > div').addClass('row');\r\n\r\n\r\n\t\t\tif (jQuery('.prices-grid .'+productType+'.type-group thead td.date').hasClass('hidden-xs')) {\r\n\t\t\t\tif (transformGridDebug) console.log('[REGION] hidden xs class already added ');\r\n\t\t\t\tclearInterval(IMUtility.transformGridInterval);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tif (jQuery('.prices-grid .'+productType+'.type-group .noResults').length > 0) {\r\n\t\t\t\tif (transformGridDebug) console.log('[REGION] no results ');\r\n\t\t\t\tclearInterval(IMUtility.transformGridInterval);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\r\n\r\n\t\t\t// Apply bootstrap classes\r\n\t\t\tjQuery('.prices-grid .'+productType+'.type-group thead').each(function() {\r\n\t\t\t\tjQuery(this).find('td.date').addClass('hidden-xs hidden-sm');\r\n\t\t\t\tjQuery(this).find('td.date:gt(6)').addClass('hidden-sm');\r\n\t\t\t\tjQuery(this).find('td.date:gt(13)').addClass('hidden-md');\r\n\t\t\t});\r\n\t\t\tjQuery('.prices-grid .'+productType+'.type-group tr.inline-header').each(function() {\r\n\t\t\t\tjQuery(this).find('td.date').addClass('hidden-xs hidden-sm');\r\n\t\t\t\tjQuery(this).find('td.date:gt(6)').addClass('hidden-sm');\r\n\t\t\t\tjQuery(this).find('td.date:gt(13)').addClass('hidden-md');\r\n\t\t\t});\r\n\r\n\t\t\t// add column for thumbnail and remove label\r\n\t\t\tjQuery('.im-grid .'+productType+'.type-group thead tr, .im-grid .'+productType+'.type-group tbody tr.inline-header').each(function() {\r\n\t\t\t\tjQuery(this).prepend('<td class=\"thumb\"></td>');\r\n\t\t\t\tjQuery(this).find('td.label').text('Best Rates');\r\n\t\t\t\t//jQuery(this).find('td.total').appendTo( jQuery(this).closest('tr') );\r\n\t\t\t});\r\n\r\n\r\n\r\n\t\t\tvar gridI = 0;\r\n\t\t\tjQuery('.im-grid .'+productType+'.type-group tr.odd, .im-grid .'+productType+'.type-group tr.even').each(function() {\r\n\r\n\t\t\t\t//if (transformGridDebug) console.log('next '+productType+' row: '+gridI +' id:'+ jQuery(this).attr('id'));\r\n\r\n\t\t\t\t// move total column to the end of the row\r\n\t\t\t\t//jQuery(this).find('.total').appendTo( jQuery(this).closest('tr') );\r\n\r\n\t\t\t\t// move thumbnail to its own column\r\n\t\t\t\tjQuery(this).find('td.property').before('<td class=\"thumb\"></td>');\r\n\t\t\t\tjQuery(this).find('td.thumb').append(jQuery(this).find('div.thumb'));\r\n\r\n\r\n\r\n\t\t\t\t// apply bootstrap classes to price columns\r\n\t\t\t\tjQuery(this).find('td.price').addClass('hidden-xs hidden-sm');\r\n\t\t\t\tjQuery(this).find('td.price:gt(6)').addClass('hidden-sm');\r\n\t\t\t\tjQuery(this).find('td.price:gt(13)').addClass('hidden-md');\r\n\r\n\t\t\t\t// add extra span to price column for formatting reasons\r\n\t\t\t\tjQuery(this).find('td.price span').wrapInner('<span></span>');\r\n\r\n\t\t\t\t// operator link on whole table cell\r\n\t\t\t\tvar operatorClickContainers = 'td.price:not(.sold),td.property';\r\n\t\t\t\tvar operatorClickElements = 'td.price:not(.sold) span, td.thumb div.thumb, td.property .name, td.property .specials-inline, td.property .address, td.property .room-name, td.property .description';\r\n\t\t\t\tvar operatorUrl = jQuery(this).find('td.total a').attr('href');\r\n\t\t\t\tvar operatorName = jQuery(this).find('td.property > .name').text();\r\n\t\t\t\tvar operatorId = 0;\r\n\t\t\t\tif (typeof operatorUrl === 'undefined' || operatorUrl.includes('javascript')) {\r\n\t\t\t\t\toperatorId = jQuery(this).attr('id').replace('Operator','');\r\n\t\t\t\t\toperatorUrl = BE_gadgetURLOverrides[operatorId];\r\n\t\t\t\t\tif (typeof operatorUrl === 'object') { operatorUrl = operatorUrl.url;}\r\n\t\t\t\t}\r\n\t\t\t\tif (typeof operatorUrl !== 'undefined') {\r\n\t\t\t\t\toperatorId = parseInt(operatorUrl.split('/').pop());
1\r\n\t\t\t\t\tjQuery(this).find(operatorClickContainers).click(function () {\r\n\t\t\t\t\t\tIMUtility.redirect(operatorUrl);\r\n\t\t\t\t\t}).css('cursor', 'pointer');\r\n\t\t\t\t\tjQuery(this).find(operatorClickElements).wrapInner('<a href=\"'+ operatorUrl +'\"></a>');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// format the operator name\r\n\t\t\t\tjQuery(this).find('td.property .name').wrapInner('<div class=\"name\"></div>');\r\n\t\t\t\tjQuery(this).find('td.property .name div').unwrap();\r\n\r\n\t\t\t\t// remove empty addresses\r\n\t\t\t\tvar address = jQuery(this).find('td.property span.address').text();\r\n\t\t\t\tjQuery(this).find('td.property span.address').addClass('hidden-md hidden-lg');\r\n\t\t\t\tif (address !== '') {\r\n\t\t\t\t\t// copy address on top of name\r\n\t\t\t\t\tjQuery('<div class=\"address hidden-xs hidden-sm\">'+ address +'</div>').insertAfter(jQuery(this).find('td.property div.specials'));\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t// make a copy of the full description for the list-view\r\n\t\t\t\t//jQuery(this).find('.OperatorDescription').clone().appendTo(jQuery(this).find('.OperatorInfo')).removeClass('OperatorDescription').addClass('hidden LongDescription');\r\n\r\n\t\t\t\t// limit description text\r\n\t\t\t\tvar descriptionText = jQuery(this).find('.OperatorDescription .OperatorItemContent').text();\r\n\t\t\t\tdescriptionText = shorten(descriptionText, 130, ' ') ;\r\n\t\t\t\tjQuery(this).find('.OperatorDescription .OperatorItemContent').text(descriptionText).append('<br/><a class=\"more-link\">more</a>');\r\n\r\n\r\n\r\n\t\t\t\t// specials\r\n\t\t\t\tif (jQuery(this).find('td.property .specials .special').length > 0) {\r\n\r\n\t\t\t\t\tjQuery(this).find('td.property .specials').clone().prependTo(jQuery(this).find('td.thumb'));\r\n\t\t\t\t\tjQuery(this).find('td.thumb .specials').wrap('<div class=\"specials-outer-wrapper\"><div class=\"specials-wrapper\"></div></div>');\r\n\t\t\t\t\tjQuery(this).find('td.thumb .specials .special').after('<div class=\"name\">Special</div>');\r\n\t\t\t\t\t// Specials Inline\r\n\t\t\t\t\tjQuery(this).find('td.property .specials-inline .special.LM.active').prepend('<div class=\"last-minute-discount\"><div><i class=\"fa fa-clock-o\" aria-hidden=\"true\"></i> Last Minute Discount</div></div>');\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t// sold-out click action\r\n\t\t\t\t/*\r\n\t\t\t\tjQuery(this).find('td.price.sold > span').click(function() {\r\n\t\t\t\t\t// mailto link removed\r\n\t\t\t\t}).css('cursor', 'pointer');\r\n\t\t\t\t */\r\n\r\n\t\t\t\tgridI++;\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\r\n\r\n\t}, 100);\r\n\r\n\r\n}\r\nif (typeof shorten !== 'function') {\r\n\tfunction shorten(str, maxLen, separator) {\r\n\t\tif (typeof str === 'undefined') return str;\r\n\t\tif (str === '') return str;\r\n\t\tif (str.length <= maxLen) return str;\r\n\t\treturn str.substr(0, str.lastIndexOf(separator, maxLen)) + '...';\r\n\t}\r\n}\r\nfunction transformDetailsView(productType) {\r\n\tvar detailsDebug=IMUtility.debug;\r\n\r\n\r\n\tif (detailsDebug) console.log('[REGION] transformDetailsView(\"'+productType+'\") ');\r\n\r\n\r\n\tIMUtility.transformDetailInterval = setInterval(function(){\r\n\r\n\r\n\t\tif (jQuery('.spinner').css('display') == 'none') {\r\n\r\n\t\t\tif (jQuery('.list-view .'+productType+'.type-group').hasClass('im-list')) {\r\n\t\t\t\tif (detailsDebug) console.log('[REGION] Clear '+productType+' DETAILS Interval - bootstrap class exists');\r\n\t\t\t\tclearInterval(IMUtility.transformDetailInterval);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tif (jQuery('.list-view .'+productType+'.type-group .list-item').length == 0) {\r\n\t\t\t\tif (detailsDebug) console.log('[REGION] Clear '+productType+' DETAILS Interval - no results');\r\n\t\t\t\tsetNoResultsText('list');\r\n\t\t\t\tclearInterval(IMUtility.transformDetailInterval);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tif (detailsDebug) console.log('[REGION] Do '+productType+' DETAILS transformation');\r\n\r\n\t\t\tjQuery('#regionGadget .list-view').addClass('container');//.wrapInner('<div class=\"row\"></div>');\r\n\t\t\tjQuery('#regionGadget .list-view > div').addClass('row');\r\n\r\n\t\t\tjQuery('.list-view .'+productType+'.type-group').addClass('im-list');\r\n\r\n\t\t\tvar gridI = 0;\r\n\t\t\tjQuery('.list-view .'+productType+'.type-group .list-item').each(function() {\r\n\r\n\t\t\t\t//if (detailsDebug) console.log('[REGION] next '+productType+' row: '+gridI +' id:'+ jQuery(this).attr('id'));\r\n\r\n\t\t\t\t//jQuery(this).addClass('row');\r\n\t\t\t\tjQuery(this).find('.location').prependTo(jQuery(this).find('.description'));\r\n\t\t\t\tjQuery(this).find('h3').prependTo(jQuery(this).find('.description'));\r\n\t\t\t\tjQuery(this).find('h4').prependTo(jQuery(this).find('.description'));\r\n\r\n\t\t\t\t// booking button\r\n\t\t\t\tjQuery(this).find('.fromPrice').wrap('<div class=\"bookingButton\"></div>');\r\n\t\t\t\tif (jQuery(this).hasClass('sold-out')) {\r\n\t\t\t\t\tjQuery(this).find('.fromPrice .label').text(BE.gadget.region.text.changeDates);\r\n\t\t\t\t} else if (jQuery(this).hasClass('instant-confirmation')) {\r\n\t\t\t\t\tjQuery(this).find('.fromPrice .label').text(BE.gadget.region.text.bookNow);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tjQuery(this).find('.fromPrice .label').text(BE.gadget.region.text.requestNow);\r\n\t\t\t\t}\r\n\t\t\t\tjQuery(this).find('.rating').appendTo(jQuery(this).find('.bookingButton'));\r\n\r\n\t\t\t\t// location instead of full address (extract from price grid)\r\n\t\t\t\tvar operatorClickContainers = 'div.thumb';\r\n\t\t\t\tvar operatorClickElements = 'div.thumb img';\r\n\t\t\t\tvar operatorUrl = jQuery(this).find('h3 a').attr('href');\r\n\t\t\t\tif (typeof operatorUrl !== 'undefined') {\r\n\t\t\t\t\tvar operatorId = parseInt(operatorUrl.split('/').pop());\r\n\t\t\t\t\tvar operatorPriceRow = jQuery('.prices-grid .'+productType+'.type-group tr#Operator'+operatorId);\r\n\r\n\t\t\t\t\tif (operatorPriceRow.length>0) {\r\n\t\t\t\t\t\tvar operatorLocation = operatorPriceRow.find('div.address').text();\r\n\t\t\t\t\t\tjQuery(this).find('p.location').hide();\r\n\t\t\t\t\t\tjQuery(this).find('h3').before('<div class=\"location\">'+ operatorLocation +'&nbsp;</div>');\r\n\t\t\t\t\t}
1\r\n\r\n\t\t\t\t\tjQuery(this).find(operatorClickContainers).click(function () {\r\n\t\t\t\t\t\tIMUtility.redirect(operatorUrl);\r\n\t\t\t\t\t}).css('cursor', 'pointer');\r\n\t\t\t\t\tjQuery(this).find(operatorClickElements).wrap('<a href=\"'+ operatorUrl +'\"></a>');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// limit description text\r\n\t\t\t\t/*\r\n\t\t\t\tvar descriptionText = jQuery(this).find('.description p:not(.location)').text();\r\n\t\t\t\tdescriptionText = shorten(descriptionText, 250, ' ');\r\n\t\t\t\tjQuery(this).find('.description p:not(.location)').text(descriptionText);\r\n*/\r\n\r\n\t\t\t\t// bootstrap\r\n\t\t\t\tjQuery(this).find('.description').addClass('col-xs-12 col-sm-5_5 col-md-6');\r\n\t\t\t\tjQuery(this).find('.thumb').addClass('col-xs-6 col-sm-3_5 col-md-3');\r\n\t\t\t\tjQuery(this).find('.thumb > a').wrap('<div class=\"thumb-image\"></div>');\r\n\t\t\t\tjQuery(this).find('.bookingButton').addClass('col-xs-6 col-sm-2_5 col-md-2 pull-right');\r\n\t\t\t\tjQuery(this).find('.bookingButton').append('<div class=\"clearfix\"></div>');\r\n\t\t\t\tjQuery(this).append('<div class=\"clearfix\"></div>');\r\n\r\n\r\n\t\t\t\t// specials\r\n\t\t\t\tif (jQuery(this).find('.specials .special').length > 0) {\r\n\t\t\t\t\tjQuery(this).find('.specials').appendTo(jQuery(this).find('.description')).clone().prependTo(jQuery(this).find('.thumb'));\r\n\t\t\t\t\tjQuery(this).find('.thumb .specials').wrap('<div class=\"specials-outer-wrapper\"><div class=\"specials-wrapper\"></div></div>');\r\n\t\t\t\t\tjQuery(this).find('.thumb .specials').append('<div class=\"name\">Sale</div>');\r\n\t\t\t\t\tjQuery(this).find('.description .specials .special.LM.active').prepend('<div class=\"last-minute-discount\"><div><i class=\"fa fa-clock-o\" aria-hidden=\"true\"></i> Last Minute Discount</div></div>');\r\n\t\t\t\t\t//jQuery(this).find('td.property .specials-inline .special.LM.active').prepend('<div class=\"last-minute-discount\"><div><i class=\"fa fa-clock-o\" aria-hidden=\"true\"></i> Last Minute Discount</div></div>');\r\n\t\t\t\t}\r\n\r\n\r\n\r\n\r\n\t\t\t\tgridI++;\r\n\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\r\n\t}, 100);\r\n\r\n}\r\nfunction transformMapView(productType) {\r\n\tvar mapDebug=IMUtility.debug;\r\n\tif (mapDebug) console.log('[REGION] transformMapView('+productType+') ');
1\r\n\r\n\r\n\tIMUtility.transformMapInterval = setInterval(function(){\r\n\r\n\r\n\r\n\t\tif (jQuery('.spinner').css('display') == 'none') {\r\n\r\n\t\t\tif (productType == 'packages' || (jQuery('.map-container').length == 0)) {\r\n\t\t\t\tif (mapDebug) console.log('[REGION] Clear MAP Interval - packages or no map results');\r\n\t\t\t\tclearInterval(IMUtility.transformMapInterval);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\t/*\r\n\t\t\tif (jQuery('.map-container.container.bootstrapped').length > 0) {\r\n\t\t\t\tif (mapDebug) console.log('[REGION] Clear MAP Interval - bootstrap applied twice');\r\n\t\t\t\tclearInterval(IMUtility.transformMapInterval);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\t */\r\n\r\n\r\n\t\t\tif (jQuery('.map-container.container').length > 0) {\r\n\t\t\t\tif (mapDebug) console.log('[REGION] bootstrap applied ');\r\n\t\t\t\tclearInterval(IMUtility.transformMapInterval);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tif (jQuery('#regionGadget .im-grid .type-group.'+ productType +' .noResults').length > 0) {\r\n\t\t\t\tif (mapDebug) console.log('[REGION] Clear MAP Interval - no results');\r\n\t\t\t\tsetNoResultsText('map');
1\r\n\t\t\t\tclearInterval(IMUtility.transformMapInterval);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tif (jQuery('.map-container .product-list .map-sidebar-item .from-price').length == 0) {\r\n\t\t\t\tif (mapDebug) console.log('[REGION] No from price, wait for a bit longer');\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tif (mapDebug) console.log('[REGION] Do MAP transformation');\r\n\r\n\t\t\tjQuery('#regionGadget .map-container').addClass('container');//.wrapInner('<div class=\"row\"></div>');\r\n\t\t\tjQuery('#regionGadget .map-container > div').addClass('row');\r\n\t\t\tjQuery('.map-container .product-list').addClass('col-xs-12 col-sm-4');\r\n\t\t\tjQuery('.map-container .map-window').addClass('col-xs-12 col-sm-8');\r\n\t\t\tjQuery('#regionGadget .map-container').append('<div class=\"clearfix\"></div>');\r\n\r\n\r\n\t\t\tif (jQuery('.map-container > .row').length == 0) {\r\n\t\t\t\tjQuery('.map-container').wrapInner('<div class=\"row\"></div>');\r\n\r\n\t\t\t}\r\n\r\n\r\n\r\n\r\n\t\t\tvar gridI = 0;\r\n\r\n\t\t\tjQuery('.map-container .product-list .map-sidebar-item').each(function() {\r\n\r\n\t\t\t\tvar nextPrice = jQuery(this).find('.from-price span');\r\n\t\t\t\tvar nextName = jQuery(this).find('.name');\r\n\r\n\t\t\t\t//if (mapDebug) console.log('[REGION] next '+productType+' row: '+gridI +'; from-price: '+ nextPrice.text() );\r\n\r\n\t\t\t\tif (jQuery(this).find('.from-price span').text() != '') {\r\n\t\t\t\t\tnextPrice.addClass('im-pricebutton');\r\n\t\t\t\t}\r\n\t\t\t\tjQuery(this).find('.location,.from-price').appendTo(nextName);\r\n\r\n\r\n\t\t\t\t/*\r\n\t\t\t\tif (jQuery(this).find('.from-price span').text() == '') {\r\n\t\t\t\t\tjQuery(this).find('.from-price').addClass('sold-out');\r\n\t\t\t\t\tjQuery(this).find('.from-price span').text(BE.gadget.region.text.changeDates);\r\n\t\t\t\t}\r\n\t\t\t\t*/\r\n\r\n\t\t\t\t// specials\r\n\t\t\t\tif (jQuery(this).find('.specials .special').length > 0) {\r\n\r\n\t\t\t\t\t//if (mapDebug) console.log('found specials');\r\n\r\n\t\t\t\t\tif (jQuery(this).find('.specials .special').hasClass('inactive')) {\r\n\t\t\t\t\t\tjQuery(this).addClass('has-inactive-specials');\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//jQuery(this).find('.specials').addClass('circle').prependTo(jQuery(this).find('.name')).clone().removeClass('circle').addClass('inline').insertAfter(jQuery(this).find('.location'));\r\n\t\t\t\t\tjQuery(this).find('.specials').addClass('circle').clone().removeClass('circle').addClass('inline').insertAfter(jQuery(this).find('.location'));\r\n\t\t\t\t\tjQuery(this).find('.specials.circle').wrap('<div class=\"specials-outer-wrapper\"><div class=\"specials-wrapper\"></div></div>');\r\n\t\t\t\t\tjQuery(this).find('.specials.circle .special').append('<div class=\"name\">Special</div>');\r\n\t\t\t\t\tjQuery(this).find('.specials.inline .special.LM.active').prepend('<div class=\"last-minute-discount\"><div><i class=\"fa fa-clock-o\" aria-hidden=\"true\"></i> Last Minute Discount</div></div>');\r\n\r\n\r\n\t\t\t\t}\r\n\r\n\r\n\r\n\t\t\t\tgridI++;\r\n\r\n\t\t\t});\r\n\r\n\r\n\r\n\r\n\t\t}\r\n\r\n\t}, 100);\r\n\r\n}\r\nfunction bootstrapSearchGadget() {\r\n\r\n\tif (IMUtility.debug) console.log('[REGION SEARCH] bootstrapSearchGadget()');\r\n\t// When details gadget loads and product information items exist\r\n\tvar searchGadget = jQuery(\"#regionGadget .embedded-search\");\r\n\r\n\r\n\r\n\tif ( searchGadget.length > 0) {\r\n\r\n\t\tvar selectedProductType = IMUtility.getSelectedProduct();\r\n\t\tIMUtility.productTypes.each(function(type) {\r\n\t\t\tjQuery('.embedded-search').removeClass(type);\r\n\t\t});\r\n\t\tjQuery('.embedded-search').addClass(selectedProductType);\r\n\r\n\t\tif (jQuery('.embedded-search.accom').length > 0) {\r\n\t\t\t// accom - product as tabs\r\n\t\t\tif (IMUtility.debug) console.log('[REGION SEARCH] apply accom classes');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .product')).addClass('col-xs-12 col-sm-4 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .date')).addClass('col-xs-12 col-sm-4 col-md-2');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .period')).addClass('col-xs-6 col-sm-4 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .adults')).addClass('col-xs-6 col-sm-4 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .children')).addClass('col-xs-6 col-sm-4 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .infants')).addClass('hide');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .currencyId')).addClass('col-xs-6 col-sm-4 col-md-2');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .showHideRefineTools')).addClass('col-xs-12 col-sm-6 col-md-2');\r\n\r\n\t\t} else {\r\n\t\t\t// tours - default region gadget product\r\n\t\t\tif (IMUtility.debug) console.log('[REGION SEARCH] apply tours classes');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .product')).addClass('col-xs-12 col-sm-4 col-md-1_5');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .date')).addClass('col-xs-12 col-sm-4 col-md-2');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .period')).addClass('col-xs-6 col-sm-4 col-md-2');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .adults')).addClass('col-xs-6 col-sm-4 col-md-2');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .children')).addClass('col-xs-6 col-sm-4 col-md-2');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .infants')).addClass('hide');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .currencyId')).addClass('col-xs-12 col-sm-4 col-md-2');\r\n\t\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .showHideRefineTools')).addClass('col-xs-12 col-sm-6 col-md-2');\r\n\t\t}\r\n\r\n\r\n\t\t// stop setInterval function\r\n\t\t//window.clearInterval(IMUtility.transformSearchGadgetInterval);\r\n\t}\r\n\t/*\r\n\t return window.setInterval( function() {\r\n\r\n\r\n\t }, 150 );\r\n\t */\r\n\r\n}\r\nfunction bootstrapSearchGadgetRefineTools() {\r\n\tif (IMUtility.debug) console.log('[REGION SEARCH] bootstrapSearchGadgetRefineTools()');\r\n\r\n\tvar showRegionFilter = false;\r\n\tif (jQuery('#regionGadget .search-gadget .refineTools .stateFilter').length && BE.gadget.search.options[\"forceRegionRegion\"] === null ) {\r\n\t\tshowRegionFilter = true;\r\n\t}\r\n\r\n\tjQuery('#regionGadget .search-gadget .refineTools').before('<div class=\"clearfix\"></div>');\r\n\r\n\tif (jQuery('.embedded-search.accom').length > 0) {\r\n\t\t// accom - product as tabs\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools .stateFilter')).addClass('col-xs-12 col-sm-6 col-md-1');\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools .regionFilter')).addClass('col-xs-12 col-sm-6 col-md-1_5');\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools .locationsFilter')).addClass('col-xs-12 col-sm-6 '+ (showRegionFilter?'col-md-2':'col-md-2')+'');\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools .locationFilter')).addClass('col-xs-12 col-sm-6 col-md-2');\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools .accommTypes')).addClass('col-xs-12 col-sm-6 '+ (showRegionFilter?'col-md-2':'col-md-2_5')+'');\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools .facilities')).addClass('col-xs-12 col-sm-6 col-md-2');\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools .maxPrice')).addClass('col-xs-12 col-sm-6 col-md-1');\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools .nameFilter')).addClass('col-xs-12 col-sm-6 '+ (showRegionFilter?'col-md-1':'col-md-2')+'');\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools >
1 div.sortBy')).addClass('col-xs-12 col-sm-6 '+ (showRegionFilter?'col-md-1_5':'col-md-2')+'');\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools .sortBy .byWhich')).addClass('col-xs-12');\r\n\r\n\t} else {\r\n\t\t// tours - default region gadget product\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools .stateFilter')).addClass('col-xs-12 col-sm-6 col-md-1');\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools .regionFilter')).addClass('col-xs-12 col-sm-6 col-md-1_5');\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools .locationsFilter')).addClass('col-xs-12 col-sm-6 '+ (showRegionFilter?'col-md-2':'col-md-2')+'');\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools .locationFilter')).addClass('col-xs-12 col-sm-6 col-md-2');\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools .tourTypes')).addClass('col-xs-12 col-sm-6 '+ (showRegionFilter?'col-md-2':'col-md-3')+'');\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools .maxPrice')).addClass('col-xs-12 col-sm-6 col-md-1');\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools .nameFilter')).addClass('col-xs-12 col-sm-6 '+ (showRegionFilter?'col-md-1_5':'col-md-3')+'');\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools > div.sortBy')).addClass('col-xs-12 col-sm-6 '+ (showRegionFilter?'col-md-2':'col-md-2_5')+'');\r\n\t\tIMUtility.removeBootstrap(jQuery('#regionGadget .search-gadget .refineTools .sortBy .byWhich')).addClass('col-xs-12');\r\n\r\n\t}\r\n\r\n\r\n\r\n\r\n}\r\nfunction transformRefineTools() {\r\n\r\n\t//IMUtility.debug =1;\r\n\r\n\treturn window.setInterval( function() {\r\n\t\tvar refineTools = jQuery(\"#regionGadget .refineTools\");\r\n\t\tvar searchRefineTools = jQuery(\"#searchGadget .refineTools\");\r\n\r\n\t\tif (IMUtility.debug) console.log('[REGION SEARCH] transformRefineTools()');\r\n\r\n\t\t// When details gadget loads and product information items exist\r\n\t\tif ( searchRefineTools.length > 0 && IMUtility.refineToolsBuilt == 1 && jQuery('#searchGadget .search-gadget .refineTools .stateFilter').length > 0) {\r\n\r\n\r\n\t\t\t// Search gadget\r\n\t\t\tif (IMUtility.debug) console.log('[REGION SEARCH] transformRefineTools() do search gadget transformation');\r\n\r\n\t\t\tjQuery('.BE-hybrid-gadget').addClass('container-fluid');\r\n\t\t\tjQuery('#searchGadget .search-gadget.BE').addClass('row');\r\n\t\t\tjQuery('#searchGadget .search-gadget .button').addClass('col-xs-12 col-sm-12 col-md-2 gadget__search-column gadget__search-column-button');\r\n\t\t\tjQuery('#searchGadget .search-gadget .refineTools').addClass('col-xs-12 col-sm-12 col-md-10 gadget__search-column').show();\r\n\t\t\tjQuery('#searchGadget .search-gadget .stateFilter').addClass('col-xs-12 col-sm-3 col-md-3 gadget__search-column gadget__search-column-select');\r\n\t\t\tjQuery('#searchGadget .search-gadget .regionFilter').addClass('col-xs-12 col-sm-4_5 col-md-4_5 gadget__search-column gadget__search-column-select');\r\n\t\t\tjQuery('#searchGadget .search-gadget .locationsFilter').addClass('col-xs-12 col-sm-4_5 col-md-4_5 gadget__search-column gadget__search-column-select');\r\n\r\n\t\t\tjQuery('#searchGadget .search-gadget .stateFilter select option').each(function() {\r\n\t\t\t\tif (jQuery(this).val() == 'INT' || jQuery(this).val() == 'South Island' || jQuery(this).val() == 'North Island') {\r\n\t\t\t\t\tjQuery(this).remove();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tjQuery('#searchGadget .search-gadget div.button span.input a').unwrap();\r\n\t\t\tjQuery('#searchGadget .search-gadget div.button').hide().clone(false).insertBefore(jQuery('#searchGadget .search-gadget div.button')).addClass('cloned').show();\r\n\t\t\tjQuery('#searchGadget .search-gadget .stateFilter, #searchGadget .search-gadget .regionFilter, #searchGadget .search-gadget .locationsFilter').wrapInner('<div class=\"row\"><div class=\"col-xs-12\"></div></div>');\r\n\t\t\tjQuery('#searchGadget .search-gadget, #itemGadget .search-gadget').attr('id', 'gadget__search');\r\n\t\t\tjQuery('#searchGadget .embedded-search').addClass('container-fluid');\r\n\r\n\t\t\tvar stateFilter \t\t= jQuery('#searchGadget .search-gadget .stateFilter select');\r\n\t\t\tvar stateFilterArrow \t= jQuery('#searchGadget .search-gadget .stateFilter span.input:before');\r\n\t\t\tvar regionFilter \t\t= jQuery('#searchGadget .search-gadget .regionFilter select');\r\n\t\t\tvar regionFilterArrow \t= jQuery('#searchGadget .search-gadget .regionFilter span.input:before');\r\n\t\t\tvar locationsFilter \t= jQuery('#searchGadget .search-gadget .locationsFilter select');\r\n\t\t\tvar locationsFilterArrow = jQuery('#searchGadget .search-gadget .locationsFilter span.input:before');\r\n\t\t\tvar searchButtonClone \t= jQuery('#searchGadget .search-gadget .button.cloned');\r\n\t\t\tvar searchButton \t\t= jQuery('#searchGadget .search-gadget .button:not(.cloned) a');\r\n\r\n\t\t\tfunction enableSearchRegionFilter() {\r\n\r\n\t\t\t\tif (IMUtility.debug) console.log('enableSearchRegionFilter()');\r\n\r\n\t\t\t\tjQuery('#searchGadget .search-gadget div.button.cloned').hide();\r\n\t\t\t\tjQuery('#searchGadget .search-gadget div.button:not(.cloned)').show();\r\n\t\t\t\tif (stateFilter.find('option:selected').val() !== '') {\r\n\t\t\t\t\tstateFilter.css('color','#7d99a8');\r\n\t\t\t\t\tstateFilterArrow.css('color','#7d99a8');\r\n\t\t\t\t}\r\n\t\t\t\tregionFilter.css('color','#7d99a8');\r\n\t\t\t\tregionFilterArrow.css('color','#7d99a8');\r\n\t\t\t\tlocationsFilter.css('color','#7d99a8');\r\n\t\t\t\tlocationsFilterArrow.css('color','#7d99a8');\r\n\t\t\t}\r\n\t\t\tfunction disableSearchRegionFilter(clicked) {\r\n\r\n\t\t\t\tif (IMUtility.debug) console.log('disableSearchRegionFilter('+ clicked +')');\r\n\r\n\t\t\t\tif (clicked) {\r\n\t\t\t\t\tif (stateFilter.find('option:selected').val() === '') {\r\n\t\t\t\t\t\tstateFilter.css('color','#ef322a');\r\n\t\t\t\t\t\tstateFilterArrow.css('color','#ef322a');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (regionFilter.find('option:selected').val() === '') {\r\n\t\t\t\t\t\tregionFilter.css('color','#ef322a');\r\n\t\t\t\t\t\tregionFilterArrow.css('color','#ef322a');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (locationsFilter.find('option:selected').val() === '') {\r\n\t\t\t\t\t\tlocationsFilter.css('color','#ef322a');\r\n\t\t\t\t\t\tlocationsFilterArrow.css('color','#ef322a');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\tjQuery('#searchGadget .search-gadget div.button.cloned').show();\r\n\t\t\t\tjQuery('#searchGadget .search-gadget div.button:not(.cloned)').hide();\r\n\t\t\t}\r\n\t\t\tfunction setSearchRegionFilterDefaultValues() {\r\n\t\t\t\tjQuery(stateFilter).find('option:first-child').text('Select State');\r\n\t\t\t\tjQuery(regionFilter).find('option:first-child').text('Select Region');\r\n\t\t\t\tjQuery(locationsFilter).find('option:first-child').text('Select Location');\r\n\t\t\t}\r\n\r\n\t\t\t// prevent searching until both values are selected\r\n\t\t\tfunction checkSearchRegionFilter(clicked) {\r\n\r\n\t\t\t\tsetSearchRegionFilterDefaultValues();\r\n\r\n\t\t\t\tif (stateFilter.find('option:selected').val() !== '' && regionFilter.find('option:selected').val() !== '') {\r\n\t\t\t\t\tenableSearchRegionFilter();\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t} else if (stateFilter.find('option:selected').val() !== '' && locationsFilter.find('option:selected').val() !== '') {\r\n\t\t\t\t\tenableSearchRegionFilter();\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdisableSearchRegionFilter(clicked);\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tsetSearchRegionFilterDefaultValues();\r\n\t\t\tcheckSearchRegionFilter(false);\r\n\r\n\t\t\tstateFilter.on('change', function() {checkSearchRegionFilter(true);});\r\n\t\t\tregionFilter.on('change', function() {checkSearchRegionFilter(true);});\r\n\t\t\tlocationsFilter.on('change', function() {checkSearchRegionFilter(true);});\r\n\t\t\tsearchButtonClone.on('click', function() {\r\n\t\t\t\tif (checkSearchRegionFilter(true)) {\r\n\t\t\t\t\tsearchButton.trigger('click');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// stop setInterval function\r\n\t\t\twindow.clearInterval(IMUtility.transformRefineToolsInterval);\r\n\r\n\t\t} else if ( refineTools.length > 0 && IMUtility.refineToolsBuilt == 1 && jQuery('#regionGadget .search-gadget .refineTools .locationsFilter').length > 0 ) {\r\n\r\n\t\t\tif (IMUtility.debug) console.log('[REGION SEARCH] refineToolsBuilt='+ IMUtility.refineToolsBuilt);\r\n\t\t\tif (IMUtility.debug) console.log('[REGION SEARCH] transformRefineTools() do transformation');\r\n\t\t\tif (IMUtility.debug) console.log('[REGION SEARCH] locationsFilter.length: '+jQuery('#regionGadget .search-gadget .refineTools .locationsFilter').length);\r\n\r\n\r\n\t\t\t\t// Region gadget\r\n\t\t\t\tjQuery('#regionGadget .search-gadget .showHideRefineTools').addClass('gadget__search-column gadget__search-column-button');\r\n\t\t\t\t//jQuery('#regionGadget .search-gadget .refineTools').prepend('<div class=\"closeRefineTools hidden-sm hidden-md hidden-lg\">Close</div>');\r\n\t\t\t\tjQuery('#regionGadget .search-gadget .refineTools span.label').addClass('gadget__search-label').removeClass('label').find('label').each(function() {  jQuery(this).parent().text(jQuery(this).text()); });\r\n\t\t\t\tjQuery('#regionGadget .search-gadget .refineTools > div:not(.sortBy), #regionGadget .search-gadget .refineTools >
1 div.sortBy > div').addClass('gadget__search-column gadget__search-column-select').wrapInner('<div class=\"row\"></div>');\r\n\t\t\t\tjQuery('#regionGadget .search-gadget .refineTools > div.maxPrice, #regionGadget .search-gadget .refineTools > div.nameFilter, #regionGadget .search-gadget .refineTools > div.sortBy').removeClass('gadget__search-column-select');\r\n\t\t\t\tjQuery('#regionGadget .search-gadget .refineTools > div.sortBy').addClass('gadget__search-column');\r\n\r\n\t\t\t\tbootstrapSearchGadgetRefineTools();\r\n\r\n\t\t\t\tjQuery('#regionGadget .search-gadget .refineTools .sortBy .byOrder').hide();\r\n\t\t\t\t//jQuery('#regionGadget .search-gadget .product').hide();\r\n\r\n\t\t\tjQuery('#regionGadget .search-gadget .refineTools').prepend('<div class=\"titleRefineTools gadget__search-column-button\"><a><span>Search Filters</span></a></div>');\r\n\t\t\tjQuery('#regionGadget .search-gadget .refineTools').append('<div class=\"closeRefineTools gadget__search-column-button\"><a><span>Show Results</span></a></div>');\r\n\t\t\tjQuery('#regionGadget .search-gadget .refineTools').append('<div class=\"refineToolsOverlay\"></div>')\r\n\r\n\t\t\tjQuery('#regionGadget #gadget__search .refineTools .titleRefineTools').on('click',function() {\r\n\t\t\t\tjQuery('#regionGadget .showHideRefineTools').trigger('click');\r\n\r\n\t\t\t});\r\n\t\t\tjQuery('#regionGadget #gadget__search .refineTools .closeRefineTools').on('click',function() {\r\n\r\n\t\t\t\tif (IMUtility.debug) console.log('close refine tools clicked');\r\n\t\t\t\tif (jQuery('#regionGadget #gadget__search .refineTools').hasClass('visible')) {\r\n\r\n\t\t\t\t\tif (IMUtility.debug) console.log('has visible');\r\n\r\n\t\t\t\t\tif (jQuery('body').hasClass('isHandHeld')) {\r\n\r\n\t\t\t\t\t\tif (IMUtility.debug) console.log('is hand held');\r\n\t\t\t\t\t\tvar scrollTop = parseInt(jQuery(\"#regionGadget .prices-grid\").offset().top) - parseInt(jQuery(\"header\").height()); //\r\n\t\t\t\t\t\tif (IMUtility.debug) console.log(scrollTop);\r\n\r\n\t\t\t\t\t\tjQuery([document.documentElement, document.body]).animate({\r\n\t\t\t\t\t\t\tscrollTop: scrollTop\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tjQuery('#regionGadget .showHideRefineTools').trigger('click');\r\n\r\n\t\t\t});\r\n\t\t\tjQuery('#regionGadget #gadget__search .showHideRefineTools').on('click',function() {\r\n\r\n\r\n\r\n\t\t\t\tif (jQuery('#regionGadget #gadget__search .refineTools').hasClass('visible')) {\r\n\t\t\t\t\tjQuery('#regionGadget #gadget__search .refineTools').removeClass('visible');\r\n\t\t\t\t\tjQuery('#regionGadget #gadget__search ').removeClass('refinetools-visible');\r\n\t\t\t\t\tjQuery('body').removeClass('refineToolsVisible');\r\n\t\t\t\t\tif (IMUtility.debug) console.log('close refine tools');\r\n\r\n\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tjQuery('#regionGadget #gadget__search .refineTools').addClass('visible');\r\n\t\t\t\t\tjQuery('#regionGadget #gadget__search ').addClass('refinetools-visible');\r\n\t\t\t\t\tjQuery('body').addClass('refineToolsVisible');\r\n\t\t\t\t\tif (IMUtility.debug) console.log('open refine tools');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\tjQuery('#regionGadget .search-gadget .refineTools').show();\r\n\r\n\r\n\r\n\t\t\t\t$w.event.subscribe('search.datepicker.change', function() {\r\n\t\t\t\t\tif (IMUtility.debug) console.log(\"[REGION][REFINETOOLS]  search.datepicker.change detected\");\r\n\t\t\t\t\tIMUtility.regionGadgetBuilt=0;\r\n\t\t\t\t\tbootstrapSearchGadget();\r\n\t\t\t\t\tbootstrapSearchGadgetRefineTools();\r\n\t\t\t\t});\r\n\r\n\t\t\t\tjQuery('.embedded-search input').on('input', function() {\r\n\t\t\t\t\tif (IMUtility.debug) console.log('[REGION][REFINETOOLS]  input change handler');\r\n\t\t\t\t\tIMUtility.regionGadgetBuilt=0;\r\n\t\t\t\t\tbootstrapSearchGadget();\r\n\t\t\t\t\tbootstrapSearchGadgetRefineTools();\r\n\t\t\t\t});\r\n\r\n\t\t\t\tjQuery('.embedded-search select').on('change', function() {\r\n\t\t\t\t\tif (IMUtility.debug) console.log('[REGION][REFINETOOLS]  select change handler');\r\n\t\t\t\t\tIMUtility.regionGadgetBuilt=0;\r\n\t\t\t\t\t$w.event.publish('region.gadget.built');\r\n\t\t\t\t\tbootstrapSearchGadget();\r\n\t\t\t\t\tbootstrapSearchGadgetRefineTools();\r\n\t\t\t\t\tjQuery('#regionGadget .results-message').remove();\r\n\r\n\r\n\t\t\t\t});\r\n\r\n\r\n\t\t\t\t// stop setInterval function\r\n\t\t\t\twindow.clearInterval(IMUtility.transformRefineToolsInterval);\r\n\r\n\t\t}\r\n\t}, 150 );\r\n\r\n}\r\nfunction addCampaignTabs($tabClass) {\r\n\tvar gadgetTabs='#regionGadget a.tab';
1\r\n\tvar selectElementA='#regionGadget div.product select';\r\n\tvar current = $w(selectElementA).attr('value');\r\n\tvar colremainder=12;\r\n\tvar productTypes = ['tours','accom','carhire','events','packages']; // custom ordering of tabs\r\n\r\n\tif (IMUtility.debug) console.log('[BE.PRODUCT.TABS] addCampaignTabs('+$tabClass+')');\r\n\tif (IMUtility.debug) console.log('[BE.PRODUCT.TABS] selected product: '+ current );\r\n\r\n\tjQuery('.view-choice').before('<div class=\"product-choice gadget__all-tabs row\"></div>');\r\n\r\n\tproductTypes.each(function(productValue) {\r\n\t\t//console.log('product type:'+ productValue);\r\n\t\tif (jQuery('.embedded-search div.product select option[value=\"'+ productValue +'\"]').length > 0) {\r\n\t\t\tvar isdefaulttab = (current === null && productValue === 'tours');\r\n\t\t\tvar colsize = 0;\r\n\t\t\tswitch (productValue) {\r\n\t\t\t\tcase 'accom': colsize=2.5;break;\r\n\t\t\t\tcase 'tours': colsize=1.5;break;\r\n\t\t\t\tcase 'events': colsize=1.5;break;\r\n\t\t\t\tcase 'carhire': colsize=1.5;break;\r\n\t\t\t\tcase 'packages': colsize=1.5;break;\r\n\t\t\t}\r\n\t\t\tcolremainder = colremainder - colsize;\r\n\t\t\tvar productSelectText = jQuery('.embedded-search div.product select option[value=\"'+ productValue +'\"]').text();\r\n\t\t\tif (productSelectText === 'events') productSelectText = 'Tickets';\r\n\t\t\tjQuery('.product-choice').append('<a class=\"' + productValue + ' tab '+ $tabClass + String(colsize).replace('.','_') +' '+ (current == productValue || isdefaulttab?'current':'') +'\" rel=\"' + productValue + '\"><span>' + productSelectText + '</span></a>');\r\n\t\t}\r\n\r\n\r\n\r\n\t});\r\n\tjQuery('.product-choice').append('<a class=\"spacer tab col-md-'+ String(colremainder).replace('.','_') +' hidden-sm hidden-xs\"><span>&nbsp;</span></a>');\r\n\tjQuery('.product-choice').append('<div class=\"clearfix\"></div>');\r\n\r\n\tjQuery('#regionGadget .embedded-search,#region-gadget-results').removeClass('accom').removeClass('tours').removeClass('events').removeClass('carhire').removeClass('packages');\r\n\tjQuery('#regionGadget .embedded-search,#region-gadget-results').addClass(current);\r\n\tjQuery('.product-choice .tab').on('click',function(e) {\r\n\t\te.preventDefault();\r\n\t\tselectTab(jQuery(this).attr('rel'));\r\n\t});\r\n\r\n\r\n}\r\nfunction selectTab(value) {\r\n\r\n\tif (IMUtility.debug) console.log('[REGION] selectTab:('+value +') '+IMUtility.beEvents.regionTabClick+'');\r\n\r\n\r\n\tif (jQuery('#regionGadget a.tab.'+value).hasClass('current')) {\r\n\t\t//if (IMUtility.debug) console.log('- this tab already has the current stlye and so we are already viewing ths product type');\r\n\t\treturn true;\r\n\t}\r\n\r\n\tIMUtility.beEvents.regionTabClick += parseInt(1);\r\n\r\n\tif (IMUtility.beEvents.regionTabClick > 1) {\r\n\t\t//if (IMUtility.debug) console.log('- region tab click count is bigger than 1, so quit');\r\n\t\treturn true;\r\n\t}\r\n\r\n\r\n\t// Set all options to unselected and remove styling for current tab\r\n\tjQuery('#regionGadget div.product select option').each(function() {\r\n\t\tjQuery(this).attr('selected',null);\r\n\t});\r\n\r\n\r\n\tjQuery('#regionGadget a.tab').each(function() { jQuery(this).removeClass('current'); });\r\n\tjQuery('#regionGadget a.tab.'+value).addClass('current');\r\n\tjQuery('#regionGadget .embedded-search,#region-gadget-results').removeClass('accom').removeClass('tours').removeClass('events').removeClass('carhire').removeClass('packages');\r\n\tjQuery('#regionGadget .embedded-search,#region-gadget-results').addClass(value);\r\n\twisDOM($w('div.product select').val(value));\r\n\twisDOM($w.find('div.product select')).trigger(\"change\");\r\n\tIMUtility.beEvents.regionTabClick = 0;\r\n\r\n\tif (jQuery('#region-gadget-results').hasClass('gridLayout')) {\r\n\t\tgadgets_mirror_packages_render();\r\n\t} else {\r\n\t\tsetTimeout(function() {\r\n\t\t\tIMUtility.regionGadgetBuilt=0;\r\n\t\t\t$w.event.publish('region.gadget.built');\r\n\t\t\t//IMUtility.refineToolsBuilt=0;\r\n\t\t\t//$w.event.publish('region.refinetools.built');\r\n\t\t\tbootstrapSearchGadget();\r\n\t\t\tbootstrapSearchGadgetRefineTools();\r\n\r\n\t\t}, 5);\r\n\t}\r\n\r\n}\r\nfunction setRegionView() {\r\n\r\n\tvar setRegionViewDebug = IMUtility.debug;\r\n\r\n\tif (setRegionViewDebug) console.log('setRegionView()');\r\n\r\n\t// if the price grid is visible, hide it and set list view visible\r\n\tif (jQuery('#regionGadget').length>0) {\r\n\r\n\t\tif (jQuery('body').hasClass('isHandHeld') || jQuery('body').hasClass('isMobile')  ) {\r\n\r\n\t\t\tif (setRegionViewDebug) console.log('setRegionView() - handheld/mobile');\r\n\r\n\t\t\t//if (jQuery('#regionGadget .region-gadget > div.prices-grid').css('display') == 'block') {\r\n\t\t\tif (jQuery('#regionGadget .region-gadget .view-choice .price').hasClass('current')) {\r\n\r\n\r\n\t\t\t\tif (setRegionViewDebug) console.log('setRegionView() - price grid is current');\r\n\r\n\t\t\t\tvar wThis = $w('div.view-choice a.list');\r\n\t\t\t\tvar rel = wThis.attr('rel');\r\n\t\t\t\twThis.trigger('click');\r\n\t\t\t\t$w.event.publish('region.view.change', wThis, rel);\r\n\t\t\t\tjQuery('.gadget__region-tabs .view-choice a').removeClass('current');\r\n\t\t\t\tjQuery('.gadget__region-tabs .view-choice .list').addClass('current');\r\n\r\n\t\t\t}\r\n\t\t} else {\r\n\r\n\t\t\tif (setRegionViewDebug) console.log('setRegionView() - desktop');\r\n\t\t\t/*\r\n\t\t\t//if (jQuery('#regionGadget .region-gadget > div.prices-grid').css('display') != 'block') {\r\n\t\t\tif (!jQuery('#regionGadget .region-gadget .view-choice .price').hasClass('current')) {\r\n\r\n\t\t\t\tif (setRegionViewDebug) console.log('setRegionView() - price grid not current');\r\n\r\n\t\t\t\tvar wThis = $w('div.view-choice a.price');\r\n\t\t\t\tvar rel = wThis.attr('rel');\r\n\t\t\t\twThis.trigger('click');\r\n\t\t\t\t$w.event.publish('region.view.change', wThis, rel);\r\n\t\t\t\tjQuery('.gadget__region-tabs .view-choice a').removeClass('current');\r\n\t\t\t\tjQuery('.gadget__region-tabs .view-choice .price').addClass('current');\r\n\t\t\t}\r\n\t\t\t */\r\n\t\t}\r\n\t}\r\n\r\n}\r\nfunction getRegionView() {\r\n\tif (jQuery('#regionGadget .region-gadget .view-choice .price').hasClass('current')) {\r\n\t\treturn 'price';\r\n\t} else if (jQuery('#regionGadget .region-gadget .view-choice .list').hasClass('current')) {\r\n\t\treturn 'list';\r\n\t} else if (jQuery('#regionGadget .region-gadget .view-choice .map').hasClass('current')) {\r\n\t\treturn 'map';\r\n\t}\r\n\treturn '';\r\n}\r\nfunction getRegionProductName() {\r\n\r\n\tvar productType = jQuery('#regionGadget .search-gadget .product select').val();\r\n\tif (productType == 'accom') return 'Accommodation';\r\n\telse if (productType == 'tours') return 'Tours';\r\n\telse if (productType == 'events') return 'Events';\r\n\telse if (productType == 'carhire') return 'Car Hire';\r\n\treturn '';\r\n\r\n}\r\nfunction setRegionPageTitle() {\r\n\r\n\tif (IMUtility.debug) console.log('setRegionPageTitle()');\r\n\r\n\tvar productName = getRegionProductName();\r\n\tvar regionFilterValue = jQuery('#regionGadget .search-gadget .refineTools .regionFilter select').val();\r\n\tvar locationFilterValue = jQuery('#regionGadget .search-gadget .refineTools .locationsFilter select').val();\r\n\tvar pageHeader = jQuery('#contentpage.com_bookeasy.view-results h1');\r\n\tvar extraText = '';\r\n\tvar customLocationName = '';\r\n\tif ( locationFilterValue) {\r\n\t\tif (IMUtility.debug) console.log('location filter is set');\r\n\t\t\tcustomLocationName = locationFilterValue; }\r\n\telse if ( regionFilterValue) {\r\n\t\tif (IMUtility.debug) console.log('region filter is set');\r\n\t\tcustomLocationName = regionFilterValue; }\r\n\telse {\r\n\t\tif (IMUtility.debug) console.log('setRegionPageTitle() - no location ('+locationFilterValue+') or region ('+regionFilterValue+') selected');\r\n\t\tvar whichView = getRegionView();\r\n\t\tsetNoResultsText(whichView);\r\n\t}\r\n\r\n\tif (customLocationName != '') {\r\n\t\tpageHeader.text ('Book '+ customLocationName +' '+ productName);\r\n\t\textraText = 'Change location';\r\n\t}\r\n\telse if (productName)  {\r\n\t\tpageHeader.text ('Book '+ productName);\r\n\t\textraText = 'Choose location';\r\n\t}\r\n\telse {\r\n\t\tpageHeader.text ('Bookings');\r\n\t\textraText = 'Choose location'\r\n\t}\r\n\r\n\tif (pageHeader.text().length > 40) {\r\n\t\tpageHeader.addClass('smaller');\r\n\t} else {\r\n\t\tpageHeader.removeClass('smaller');\r\n\t}\r\n\r\n\tif (jQuery('.showHideRefineToolsLink').length == 0) {\r\n\t\tjQuery('<a class=\"showHideRefineToolsLink\">' + extraText + '</a>').insertAfter(pageHeader)\r\n\r\n\t\tjQuery('.showHideRefineToolsLink').click(function () {\r\n\r\n\t\t\tvar refineToolsButton = jQuery('#regionGadget .showHideRefineTools');\r\n\t\t\trefineToolsButton.trigger('click');\r\n\r\n\t\t\tjQuery('#regionGadget .stateFilter, #regionGadget .regionFilter, #regionGadget .locationsFilter').addClass('highlight');\r\n\r\n\r\n\t\t});\r\n\t} else {\r\n\t\tjQuery('.showHideRefineToolsLink').text(extraText);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n\r\n/**\r\n * This function should only be called when we know that there are no results\r\n * It will insert a message when no location or region filter have been selected and this could cause problems\r\n * if there are results\r\n * @param whichView\r\n */\r\nfunction setNoResultsText(whichView) {\r\n\tvar noresultsDebug = IMUtility.debug;\r\n\tif (noresultsDebug) console.log('setNoResultsText('+ whichView +')');\r\n\r\n\tvar regionFilterValue = jQuery('#regionGadget .search-gadget .refineTools .regionFilter select').val();\r\n\tvar locationFilterValue = jQuery('#regionGadget .search-gadget .refineTools .locationsFilter select').val();\r\n\r\n\t// Sorry, no results match your search criteria. Please change your dates and options and try searching again.\r\n\tif (!regionFilterValue && !locationFilterValue && jQuery('#regionGadget h3.noResults').length == 0) {\r\n\r\n\t\tif (noresultsDebug) console.log('force no results message when empty location/region filter');\r\n\r\n\t\tjQuery('#regionGadget .region-gadget.BE').append('<div class=\"results-message container\"><h3 class=\"noResults\"></h3></div>');
1\r\n\t\tnoResultsText = jQuery('#regionGadget .results-message h3.noResults');\r\n\r\n\t} else  if (whichView == 'price') noResultsText = jQuery('#regionGadget .prices-grid h3.noResults');\r\n\telse if (whichView == 'list') noResultsText = jQuery('#regionGadget .list-view h3.noResults');\r\n\telse if (whichView == 'map') noResultsText = jQuery('#regionGadget .map-container h3.noResults');\r\n\r\n\tif (!locationFilterValue && !regionFilterValue) {\r\n\t\tnoResultsText.text('Please select a location using the search filters above to begin your search.');\r\n\t} else if (locationFilterValue || regionFilterValue) {\r\n\t\tnoResultsText.text('Sorry, no results match your search criteria. Please change your location or dates and try searching again.');\r\n\t}\r\n\tvar allResultsText = noResultsText = jQuery('#regionGadget h3.noResults');\r\n\tallResultsText.addClass('visible');\r\n}\r\n"},function(t,e,r){r(0)(r(39))},function(t,e){t.exports="var $j = jQuery.noConflict();\r\n// see /layouts/operator-gadget-style5/layout.js\r\n\r\n\r\n\r\n\r\n\r\n\r\n// -------------------------------\r\n// OVERRIDE WISDOM HOVER FUNCTIONS - #17633 - restrictions pop-up is hovering way above the actual button\r\n// -------------------------------\r\n\r\n(function(window) {\r\n\t\r\n\tvar $ = window.wisDOM,\r\n\t\tdocument = window.document,\r\n\t\tpriv = {},\r\n\t\thoverOuter,\r\n\t\thoverInner;\r\n\t\r\n\t$.hover = $.fn.hover = function(obj) {\r\n\t\tvar i = this.length,\r\n\t\t\tele,\r\n\t\t\t$ = window.wisDOM;\r\n\t\tif(!obj || typeof(obj) == 'undefined' || this.length === 0) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tpriv.init.call(this);\r\n\t\twhile(i--) {\r\n\t\t\tele = $(this[i]);\r\n\t\t\tele._data = priv.prepData.call(ele,obj);\r\n\t\t\tpriv.bindEvents.call(ele,ele);\r\n\t\t}\r\n\t\treturn this;\r\n\t};\r\n\t\r\n\t// === Private =====================================\r\n\tpriv.init = function() {\r\n\t\t// Create the hover div and handles for it\r\n\t\tif(typeof(hoverOuter) == 'undefined') {\r\n\t\t\tvar div = $({\r\n\t\t\t\t'div#wdHoverContainer':{\r\n\t\t\t\t\t'div.wrapper':{}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tdiv.css({position:'absolute',left:'-100000px',top:'-10000px'});\r\n\t\t\tdiv.appendTo('body');\r\n\t\t\thoverOuter = div;\r\n\t\t\thoverInner = div.find('div.wrapper');\r\n\t\t}\r\n\t};\r\n\t\r\n\t// Do bind\r\n\tpriv.bindEvents = function() {\r\n\t\tvar thus = this,\r\n\t\t\tstartEv = 'mouseover',\r\n\t\t\tendEv = 'mouseout',\r\n\t\t\tisTouch = $._int.browser.touchDevice;\r\n\t\tif(isTouch) {\r\n\t\t\tstartEv = 'touchstart';\r\n\t\t\tendEv = 'touchend';\r\n\t\t}\r\n\t\tthis.bind(startEv+'.wdHover',function(e) {\r\n\t\t\treturn priv.showInclusionHover.call(thus,e);\r\n\t\t});\r\n\t\tif(isTouch === false) {\r\n\t\t\tthis.bind(endEv+'.wdHover',function(e) {\r\n\t\t\t\treturn priv.hideInclusionHover.call(thus,e);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\t\r\n\t// Actual bound event functions ====\r\n\t// Mouse over\r\n\tpriv.showInclusionHover = function(e) {\r\n\t\t// Hide just in case of flaky mouse leave\r\n\t\tpriv.hideInclusionHover.call(this,e);\r\n\t\t\r\n\t\tvar insert = this._data.clone();\r\n\t\thoverInner.empty();\r\n\t\thoverInner.append(insert);\r\n\r\n\t\tvar windowWidth = $(window).width(),\r\n\t\t\twindowHeight = $(window).height(),\r\n\t\t\tdivWi
1dth = hoverOuter.width(),\r\n\t\t\tdivHeight = hoverOuter.height(),\r\n\t\t\tscrollPos = $._int.checkScroll(window),\r\n\t\t\ttarget = $(e.target),\r\n\t\t\tisTouch = $._int.browser.touchDevice;\r\n\t\t\t\r\n\t\t// Normal mousemove bind\r\n\t\tif(isTouch === false) {\r\n\t\t\ttarget.bind('mousemove.wdHover',function(e) {\r\n\t\t\t\treturn priv.mouseMove(e,windowWidth,windowHeight,divWidth,divHeight,scrollPos,hoverOuter);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t// Just show for touch event, bind a new touch to body to hide\r\n\t\t\t$(function() {\r\n\t\t\t\t$('body').bind('touchstart.wdHover',function(e) {\r\n\t\t\t\t\t$('body').unbind('touchstart.wdHover');\r\n\t\t\t\t\tpriv.hideInclusionHover(e);\r\n\t\t\t\t});\r\n\t\t\t},10);\r\n\t\t\t$(function() {\r\n\t\t\t\thoverInner.append(insert);\r\n\t\t\t\tpriv.mouseMove(e,windowWidth,windowHeight,divWidth,divHeight,scrollPos,hoverOuter);\t\t\t\t\r\n\t\t\t},100);\r\n\t\t}\r\n\t\t\r\n\t\treturn false;\r\n\t};\r\n\t\r\n\t// Mouse move\r\n\tpriv.mouseMove = function(e,windowWidth,windowHeight,divWidth,divHeight,scrollPos,theDiv) {\r\n\t\tvar eX, eY, isTouch = false;\r\n\t\t// Touch device?\r\n\t\tif(e.touches) {\r\n\t\t\tisTouch = true;\r\n\t\t\teX = e.touches[0].clientX; eY = e.touches[0].clientY;\r\n\t\t} else {\r\n\t\t\tif(typeof e.clientX != 'undefined') {\r\n\t\t\t\teX = e.clientX; eY = e.clientY;\r\n\t\t\t} else {\r\n\t\t\t\teX = e.pageX; eY = e.pageY;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(scrollPos === false) {\r\n\t\t\tscrollPos = {\r\n\t\t\t\tx:{ at:0 },\r\n// PV #17633 --- ADJUSTED:\r\n//\t\t\t\ty:{ at:0 }\r\n\t\t\t\ty:{ at:jQuery(window).scrollTop() }\r\n\t\t\t};\r\n\t\t}\r\n\t\t\r\n\t\tvar leftFix = -1,\r\n\t\t\ttopFix = 14;\r\n\t\t\t\r\n\t\t// Fix the fact ios doesn't want to give us a viewport rel number for the event\r\n\t\tif(isTouch) {\r\n\t\t\teX = eX - scrollPos.x.at;\r\n\t\t\teY = eY - scrollPos.y.at;\r\n\t\t}\t\r\n\t\t\r\n\t\tif( (eX + divWidth) > (windowWidth - 20) ) {\r\n\t\t\teX = windowWidth - divWidth;\r\n\t\t}\r\n\t\tif( (eY + divHeight) > (windowHeight - 20) ) {\r\n\t\t\teY = eY - divHeight;\r\n\t\t\ttopFix = -14;\r\n\t\t}\r\n\r\n// PV #17633 --- ADJUSTED:\r\ntopFix += 20;\r\n\r\n\t\ttheDiv.css({\r\n\t\t\tleft: (eX + leftFix) + scrollPos.x.at + 'px',\r\n\t\t\ttop: (eY + topFix) + scrollPos.y.at + 'px'\r\n\t\t});\r\n\t\t\r\n\t\treturn false;\r\n\t};\r\n\t\r\n\t//  Mouse out\r\n\tpriv.hideInclusionHover = function(e) {\r\n\t\t// Unbind the mousemove\r\n\t\tif(typeof(this._wdVersion) != 'undefined') {\r\n\t\t\tthis.unbind('mousemove.wdHover');\r\n\t\t}\r\n\t\thoverInner.empty();\r\n\t\thoverOuter.css({\r\n\t\t\tleft:'-10000px',\r\n\t\t\ttop:'-10000px'\r\n\t\t});\r\n\t};\r\n\t\r\n\t// Prep the supplied data obj into a wisdom obj\r\n\tpriv.prepData = function(obj) {\r\n\t\t// Check if it's already a wisDOM obj\r\n\t\tif(typeof(obj._wdVersion) != 'undefined') {\r\n\t\t\treturn obj;\r\n\t\t}\r\n\t\tvar tmp = $(obj);\r\n\t\t// It's a domBuilder obj\r\n\t\tif(tmp.length > 0 && typeof(obj) == 'object') {\r\n\t\t\treturn tmp;\r\n\t\t}\r\n\t\t// It's a CSS selector - return a clone\r\n\t\tif(tmp.length > 0 && typeof(obj) == 'string') {\r\n\t\t\treturn tmp.clone();\r\n\t\t}\r\n\t\t// It's a html string\r\n\t\tvar div = $({'div':''});\r\n\t\tdiv.html(obj);\r\n\t\treturn div.children();\r\n\t};\r\n\t\r\n})(window);\r\n"},function(t,e,r){r(0)(r(41))},function(t,e){t.exports="function viewport() {\r\n\tvar e = window, a = 'inner';\r\n\tif (!('innerWidth' in window )) {\r\n\t    a = 'client';\r\n\t    e = document.documentElement || document.body;\r\n\t}\r\n\treturn { width : e[ a+'Width' ] , height : e[ a+'Height' ] };\r\n}\r\n\r\nfunction debounce(func, wait, immediate) {\r\n\tvar timeout;\r\n\treturn function() {\r\n\t\tvar context = this, args = arguments;\r\n\t\tvar later = function() {\r\n\t\t\ttimeout = null;\r\n\t\t\tif (!immediate) func.apply(context, args);\r\n\t\t};\r\n\t\tvar callNow = immediate && !timeout;\r\n\t\tclearTimeout(timeout);\r\n\t\ttimeout = setTimeout(later, wait);\r\n\t\tif (callNow) func.apply(context, args);\r\n\t};\r\n};\r\n\r\n(function ($) {\r\n    $.fn.uncomment = function () {\r\n        for (var i = 0, l = this.length; i < l; i++) {\r\n            for (var j = 0, len = this[i].childNodes.length; j < len; j++) {\r\n                if (this[i].childNodes[j].nodeType === 8) {\r\n                    var content = this[i].childNodes[j].nodeValue;\r\n                    $(this[i].childNodes[j]).replaceWith(content);\r\n                }\r\n            }\r\n        }\r\n    };\r\n})(jQuery);\r\n\r\n// jQuery helper function for use with animate.css\r\njQuery.fn.extend({\r\n    animateCss: function (animationName, callback) {\r\n        var animationEnd = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend';\r\n        this.addClass('animated ' + animationName).one(animationEnd, function() {\r\n            jQuery(this).removeClass('animated ' + animationName);\r\n            if (typeof callback == 'function') { // make sure the callback is a function\r\n                callback.call(this); // brings the scope to the callback\r\n            }\r\n        });\r\n    }\r\n});\r\n\r\n\r\n/**\r\n * detect IE\r\n * returns version of IE or false, if browser is not Internet Explorer\r\n */\r\nfunction detectIE() {\r\n    var ua = window.navigator.userAgent;\r\n\r\n    var msie = ua.indexOf('MSIE ');\r\n    if (msie > 0) {\r\n        // IE 10 or older => return version number\r\n        return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\r\n    }\r\n\r\n    var trident = ua.indexOf('Trident/');\r\n    if (trident > 0) {\r\n        // IE 11 => return version number\r\n        var rv = ua.indexOf('rv:');\r\n        return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\r\n    }\r\n\r\n    // other browser\r\n    return false;\r\n}\r\n\r\n/**\r\n * detect Microsoft Edge\r\n * returns version of IE or false, if browser is not Internet Explorer\r\n */\r\nfunction detectEdge() {\r\n\tvar ua = window.navigator.userAgent;\r\n\r\n\tvar edge = ua.indexOf('Edge/');\r\n\tif (edge > 0) {\r\n\t   // Edge (IE 12+) => return version number\r\n\t   return parseInt(ua.substring(edge 
1+ 5, ua.indexOf('.', edge)), 10);\r\n\t}\r\n\r\n\t// other browser\r\n\treturn false;\r\n}"},function(t,e,r){r(0)(r(43))},function(t,e){t.exports='/*!\r\n * scrollup v2.4.1\r\n * Url: http://markgoodyear.com/labs/scrollup/\r\n * Copyright (c) Mark Goodyear — @markgdyr — http://markgoodyear.com\r\n * License: MIT\r\n */\r\n!function(l,o,e){"use strict";l.fn.scrollUp=function(o){l.data(e.body,"scrollUp")||(l.data(e.body,"scrollUp",!0),l.fn.scrollUp.init(o))},l.fn.scrollUp.init=function(r){var s,t,c,i,n,a,d,p=l.fn.scrollUp.settings=l.extend({},l.fn.scrollUp.defaults,r),f=!1;switch(d=p.scrollTrigger?l(p.scrollTrigger):l("<a/>",{id:p.scrollName,href:"#top"}),p.scrollTitle&&d.attr("title",p.scrollTitle),d.appendTo("body"),p.scrollImg||p.scrollTrigger||d.html(p.scrollText),d.css({display:"none",position:"fixed",zIndex:p.zIndex}),p.activeOverlay&&l("<div/>",{id:p.scrollName+"-active"}).css({position:"absolute",top:p.scrollDistance+"px",width:"100%",borderTop:"1px dotted"+p.activeOverlay,zIndex:p.zIndex}).appendTo("body"),p.animation){case"fade":s="fadeIn",t="fadeOut",c=p.animationSpeed;break;case"slide":s="slideDown",t="slideUp",c=p.animationSpeed;break;default:s="show",t="hide",c=0}i="top"===p.scrollFrom?p.scrollDistance:l(e).height()-l(o).height()-p.scrollDistance,n=l(o).scroll(function(){l(o).scrollTop()>i?f||(d[s](c),f=!0):f&&(d[t](c),f=!1)}),p.scrollTarget?"number"==typeof p.scrollTarget?a=p.scrollTarget:"string"==typeof p.scrollTarget&&(a=Math.floor(l(p.scrollTarget).offset().top)):a=0,d.click(function(o){o.preventDefault(),l("html, body").animate({scrollTop:a},p.scrollSpeed,p.easingType)})},l.fn.scrollUp.defaults={scrollName:"scrollUp",scrollDistance:300,scrollFrom:"top",scrollSpeed:300,easingType:"linear",animation:"fade",animationSpeed:200,scrollTrigger:!1,scrollTarget:!1,scrollText:"Scroll to top",scrollTitle:!1,scrollImg:!1,activeOverlay:!1,zIndex:2147483647},l.fn.scrollUp.destroy=function(r){l.removeData(e.body,"scrollUp"),l("#"+l.fn.scrollUp.settings.scrollName).remove(),l("#"+l.fn.scrollUp.settings.scrollName+"-active").remove(),l.fn.jquery.split(".")[1]>=7?l(o).off("scroll",r):l(o).unbind("scroll",r)},l.scrollUp=l.fn.scrollUp}(jQuery,window,document);'},function(t,e,r){r(0)(r(45))},function(t,e){t.exports="var $j = jQuery.noConflict();\r\n\r\n// Parks VIC\r\nBE.gadget.cart.text.promoCode = 'Apply code';\r\n\r\n\r\n$j(document).ready(function() {\r\n\r\n\r\n    window.isHandheld = Modernizr.mq(\"(max-width: 768px), (max-device-width: 768px)\");\r\n    window.isLarge = Modernizr.mq(\"(min-width: 1200px), (min-device-width: 1200px) \");\r\n    window.isMedium = Modernizr.mq(\"(min-width: 992px) and (max-width: 1199px), (min-device-width: 992px) and (max-device-width: 1199px)\");\r\n    window.isSmall = Modernizr.mq(\"(min-width: 768px) and (max-width: 991px), (min-device-width: 768px) and (max-device-width: 991px)\");\r\n    window.isExtraSmall = Modernizr.mq(\"(max-width: 480px) and (max-device-width: 479px)\");\r\n\r\n    if (window.isLarge) jQuery('body'). addClass('mqLarge');\r\n    if (window.isMedium) jQuery('body'). addClass('mqMedium');\r\n    if (window.isSmall) jQuery('body'). addClass('mqSmall');\r\n    if (window.isExtraSmall) jQuery('body'). addClass('mqExtraSmall');\r\n\r\n    $j('h1').prependTo('.contentpage-header');\r\n\r\n\r\n    /*\r\n     * \tHelper variables\r\n     */\r\n    var isMain = $j('main').length > 0;\r\n    var isHomepage = $j('#homepage').length;\r\n\r\n    if ( detectIE() ){\r\n        $j('body').addClass('is-internet-explorer');\r\n    }\r\n\r\n\r\n\r\n\t// hybrid gadget filters popup, X icon for search text\r\n\tsetInterval(function() {\r\n\t\tif (jQuery('#operator_keyword').val()) {\r\n\t\t\tjQuery('.operator-keyword-clear').show();\r\n\t\t} else {\r\n\t\t\tjQuery('.operator-keyword-clear').hide();\r\n\t\t}\r\n\t}, 1800);\r\n\r\n\r\n    function mobileCheck() {\r\n\r\n        var isHandheld = Modernizr.mq(\"(max-width: 992px), (max-device-width: 992px)\");\r\n        if (isHandheld) {\r\n            $j(\"body\").addClass( 'isHandHeld' );\r\n        } else {\r\n            $j(\"body\").removeClass('isHandHeld');\r\n        }\r\n        var isMobile = Modernizr.mq(\"(max-width: 767px), (max-device-width: 767px)\");\r\n        if (isMobile) {\r\n            $j(\"body\").addClass( 'isMobile' );\r\n        } else {\r\n            $j(\"body\").removeClass( 'isMobile' );\r\n        }\r\n\r\n\r\n\r\n    }\r\n    mobileCheck();\r\n\r\n\r\n    function moveImageGallery() {\r\n\r\n        if ($j('.gallery-background').length <= 0) return true;\r\n\r\n        if ($j('body').hasClass('isMobile') ) {\r\n\r\n            // Gallery should be placed after the gadget\r\n            if (!$j('#details-gadget > div.details-tab-booking').next().hasClass('gallery-background')) {\r\n\r\n                // gallery should be moved to after the gadget\r\n                $j('.gallery-background').insertAfter($j('#details-gadget > div.details-tab-booking'));\r\n            }\r\n        } else {\r\n\r\n            // Gallery should be placed at the top of the page\r\n            if (!$j('#details-gadget > div:first-child').hasClass('gallery-background')) {\r\n\r\n                // gallery should be moved to the top of the page\r\n                $j('#details-gadget').prepend($j('.gallery-background'));\r\n            }\r\n        }\r\n\r\n    }\r\n    moveImageGallery();\r\n\r\n\r\n    // Window Resize\r\n    $j(window).resize(function() {\r\n\r\n        //adjustMainMarginTop();\r\n        mobileCheck();\r\n        moveImageGallery();\r\n    });\r\n\r\n    var myEfficientFn = debounce(function() {\r\n        // All the taxing stuff you do on resize\r\n        //updateGalleryWrapperHeight(); // from gadget-details-bootstrapped.js or layout.js\r\n        //setRegionView(); // only required if we need a specific region gadget view to be loaded on mobile - from gadget-region-bootstrapped.js\r\n        //setTopMargin(); // from gadgets-cart.js\r\n    }, 250);\r\n\r\n    window.addEventListener('resize', myEfficientFn);\r\n\r\n\r\n\r\n    function setStickyElements() {\r\n        if ($j('.sticky').length <= 0) return true;\r\n        // stick to the bottom of the header\r\n        //var headerHeight = jQuery('header').height();\r\n        var headerHeight = 0; // vicparks & westcoasttas has no top header\r\n        $j('.sticky').each(function() {\r\n            var elementScrollPos = $j(this).parent().offset().top - headerHeight;\r\n            if (document.documentElement.scrollTop >= elementScrollPos || document.body.scrollTop >= elementScrollPos) {\r\n                $j('body').addClass('nav-sidebar-stuck');\r\n                $j(this).addClass('stuck').css('top',headerHeight);\r\n            } else {\r\n                $j(this).removeClass('stuck');\r\n                $j('body').removeClass('nav-sidebar-stuck');\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    var myEfficientScrollFn = debounce(function() {\r\n        // All the taxing stuff you do on scroll\r\n        setStickyElements();\r\n\r\n    }, 50);\r\n\r\n    window.addEventListener('scroll', myEfficientScrollFn);\r\n\r\n\r\n\r\n\r\n    /*\r\n    $j('.navbar-toggle').on('click',function() {\r\n        setInterval(function() {\r\n            //setTopMargin();\r\n        }, 500);\r\n    });\r\n     */\r\n\r\n    /*=====================================\r\n\t\t17. Scroll Up\r\n\t\t======================================*/\r\n    /*\r\n    jQuery.scrollUp({\r\n        scrollName: 'scrollUp',      // Element ID\r\n        scrollDistance: 300,         // Distance from top/bottom before showing element (px)\r\n        scrollFrom: 'top',           // 'top' or 'bottom'\r\n        scrollSpeed: 1000,            // Speed back to top (ms)\r\n        easingType: '',        // Scroll to top easing (see http://easings.net/)\r\n        animation: 'slide',           // Fade, slide, none\r\n        animationSpeed: 200,         // Animation speed (ms)\r\n        scrollTrigger: false,        // Set a custom triggering element. Can be an HTML string or jQuery object\r\n        scrollTarget: false,         // Set a custom target element for scrolling to. Can be element or number\r\n        scrollText: [\"<i class='fa fa-angle-up'></i>\"], // Text for element, can contain HTML\r\n        scrollTitle: false,          // Set a custom <a> title if required.\r\n        scrollImg: false,            // Set true to use image\r\n        activeOverlay: fal
1se,        // Set CSS color to display scrollUp active point, e.g '#00FFFF'\r\n        zIndex: 323332           // Z-Index for the overlay\r\n    }); */\r\n\r\n\r\n\r\n}); // End of document ready function\r\n\r\n// Function when whole pages loads including gadgets\r\n$j(window).bind(\"load\", function() {\r\n\r\n\r\n    /* Globals */\r\n    var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n\r\n\r\n    // Start: Fix homepage gadget when resize from mobile\r\n\r\n}); // END Bind function\r\n\r\nfunction scrollToTop() {\r\n    $j('html, body').animate({ scrollTop: 0 }, '400');\r\n}\r\n\r\n\r\n\r\n\r\n// http://stackoverflow.com/questions/18182851/bootstrap-menu-disappears-after-first-click-setting-the-the-ul-style-to-none\r\nif (typeof(MooTools) != 'undefined') {\r\n    var mHide = Element.prototype.hide;\r\n    Element.implement({\r\n        hide: function() {\r\n            if (this.hasClass(\"deeper\") || this.hasClass(\"dropdown\") || this.hasClass(\"dropdown-toggle\")) {\r\n                return this;\r\n            }\r\n            mHide.apply(this, arguments);\r\n        }\r\n    });\r\n}\r\n\r\n// bootstrap prevents clicking on \"parent\" menu item links, instead opening the sub-menu... but we don't want that, we want to navigate immediately to that page\r\n$j(document).ready(function() {\r\n    $j('a.dropdown-toggle').click(function() {\r\n        document.location.href = $j(this).attr('href');\r\n    });\r\n});\r\n\r\n\r\n\r\n/* Mildura Mobile Menu Toggle */\r\n$j(document).ready(function() {\r\n    $j('#navToggle .toggle').click(function() {\r\n        if ($j('body').hasClass('navPanel-visible')) {\r\n            $j('body').removeClass('navPanel-visible');\r\n        } else {\r\n            $j('body').addClass('navPanel-visible');\r\n        }\r\n\r\n\r\n    });\r\n});\r\n"},function(t,e,r){r(0)(r(47))},function(t,e){t.exports="var $j = jQuery.noConflict();\r\n\r\n$j(document).ready(function() {\r\n\tvar isHomepage = $j('#homepage').length;\r\n\r\n\r\n\t/* Search */\r\n\t$j('.header-search .close-icon').on('click', function() {\r\n\t\tresetSearch();\r\n\t});\r\n\t$j('#mod-search-button').on('click', function() {\r\n\r\n\t\t// Move Search Bar\r\n\t\t$j('#header-search .search-word').removeClass('deactivated').addClass('activated');\r\n\r\n\t\t// Focus on input\r\n\t\t$j('#mod-search-searchword').focus();\r\n\r\n\t\t// Add <body> click checker\r\n\t\tsearchNextClick();\r\n\t});\r\n\r\n\r\n\tfunction searchNextClick() {\r\n\t\tfunction helper() {\r\n\t\t\tvar target = $j(event.target);\r\n\t\t\t// if we click anywhere outside of the search area, hide the search box\r\n\t\t\tif ( target.closest('#header-search .search-word').length === 0 && target.closest('#header-search #mod-search-button').length === 0) {\r\n\t\t\t\tresetSearch();\r\n\t\t\t\t// remove this event handler when resetting the search\r\n\t\t\t\t$j('html').off('click', 'body', helper);\r\n\t\t\t}\r\n\t\t}\r\n\t\t$j('html').on('click', 'body', helper);\r\n\t}\r\n\r\n\t// On header search focusout\r\n\tfunction resetSearch() {\r\n\t\t// Move the search back to where it was and remove classes\r\n\t\t$j('#header-search .search-word').removeClass('activated').addClass('deactivated');\r\n\t}\r\n\r\n\t// Config\r\n\t// =================================================\r\n\t//if (isHomepage) {\r\n\tvar nav_header    = $j('header'),\r\n\t\theader_height  = $j('header').height();\r\n\t//}\r\n\r\n\r\n\t// Method\r\n\t// =================================================\r\n\r\n\tfunction navSlide() {\r\n\t\tvar scroll_top = $j(window).scrollTop();\r\n\t\t//if (isHomepage) {\r\n\t\tif (scroll_top >= header_height) { // the detection!\r\n\t\t\tnav_header.addClass('scrolled');\r\n\t\t} else {\r\n\t\t\tnav_header.removeClass('scrolled');\r\n\t\t}\r\n\t\t//}\r\n\t}\r\n\r\n\t// Handler\r\n\t// =================================================\r\n\r\n\t$j(window).scroll(navSlide);\r\n\r\n\r\n\t// Custom Cart Bar\r\n\t// =================================================\r\n\r\n\t// Change cursor of cart bar if it has items\r\n\tsetTimeout( function(){\r\n\t\tif ( $j('#cart-bar').hasClass('visible') ) {\r\n\t\t\t$j('.header-cart').addClass('has-cursor');\r\n\t\t} else {\r\n\t\t\t$j('.header-cart').removeClass('has-cursor');\r\n\t\t}\r\n\t}, 1000);\r\n\r\n\t// Show click of the items and display the new cart icon with details\r\n\t$j('.header-cart').on('click', function() {\r\n\t\tif ( $j('#cart-bar').hasClass('visible') ) {\r\n\t\t\t// Emulate cart bar button click\r\n\t\t\t$j('#cart-bar div.shopping-cart.BE .totalDisplay a')[0].click();\r\n\r\n\t\t}\r\n\t});
1\r\n\r\n\t// Update new cart information\r\n\tvar updateCartTimedCounter = 0;\r\n\r\n\tfunction updateCartTimed() {\r\n\t\t// Only run for 5.5 seconds\r\n\t\tif (updateCartTimedCounter < 25) {\r\n\t\t\t// Check for the input elements to load and move them\r\n\t\t\treturn window.setInterval( function() {\r\n\t\t\t\tvar cart_items = $j('#cart-bar .cartItems .total span');\r\n\t\t\t\tvar cart_total_price = $j('#cart-bar div.shopping-cart.BE .totalDisplay span');\r\n\r\n\t\t\t\tif ( cart_items.length > 0 && cart_total_price.length > 0 ) {\r\n\t\t\t\t\t// Insert total price in cart\r\n\t\t\t\t\t$j('.header-cart__total-price').html( cart_items.html() );\r\n\r\n\t\t\t\t\t// Insert number of items in cart\r\n\t\t\t\t\t$j('.header-cart__item-number').show();\r\n\t\t\t\t\t$j('.header-cart__item-number').html( cart_total_price.html() );\r\n\r\n\t\t\t\t\t// stop setInterval function\r\n\t\t\t\t\twindow.clearInterval(updateCartTimedInstance);\r\n\t\t\t\t}\r\n\t\t\t\tupdateCartTimedCounter++;\r\n\t\t\t}, 200 );\r\n\t\t}\r\n\r\n\t}\r\n\tvar updateCartTimedInstance = updateCartTimed();\r\n\r\n\t// update cart button when new item is added to cart\r\n\tsetInterval( function() {\r\n\t\tvar cart_items= $j('#cart-bar div.shopping-cart.BE .totalDisplay span');\r\n\t\tvar cart_total_price = $j('#cart-bar .cartItems .total span');\r\n\r\n\t\t// Show number of items only if the number exists\r\n\t\tif ( parseInt(cart_items.html()) > 0 ) {\r\n\t\t\t$j('.header-cart__item-number').show();\r\n\r\n\t\t\t// Insert total price in cart\r\n\t\t\t$j('.header-cart__total-price').html( cart_total_price.html() );\r\n\r\n\t\t\t// Insert number of items in cart\r\n\t\t\t$j('.header-cart__item-number').html( cart_items.html() );\r\n\t\t} else {\r\n\t\t\t$j('.header-cart__item-number').hide();\r\n\t\t\t$j('.header-cart__total-price').html('');\r\n\t\t\t$j('.header-cart__item-number').html('');\r\n\t\t}\r\n\r\n\t}, 500);\r\n\r\n\r\n\t// Custom Cart Bar\r\n\t// =================================================\r\n\r\n\t// Emulate the trip planner click\r\n\t$j('.header-trip-planner').on('click', function() {\r\n\t\t$j('#cart-bar .link-tripplanner-hover a')[0].click();\r\n\t});\r\n\r\n\t// Update the number of trips in trip planner\r\n\tsetInterval( function() {\r\n\t\tvar trip_items = $j('#cart-bar #toolbar-tripplanner span a');\r\n\r\n\t\t// Show number of items only if the number exists\r\n\t\tif ( parseInt(trip_items.html()) > 0 ) {\r\n\t\t\t// Show the trip planner number circle\r\n\t\t\t$j('.header-trip-planner').show();\r\n\t\t\t$j('.header-trip__item-number').show();\r\n\r\n\t\t\t// Insert number of items in cart\r\n\t\t\t$j('.header-trip__item-number').html( trip_items.html() );\r\n\t\t} else {\r\n\t\t\t$j('.header-trip__item-number').hide();\r\n\t\t\t$j('.header-trip-planner').hide();\r\n\t\t\t$j('.header-trip__item-number').html('');\r\n\t\t}\r\n\t}, 500);\r\n\r\n\r\n\t// Mobile Nav Bar Menu Adjust\r\n\tif ( $j(window).width() <= 767 ) {\r\n\t\t$j('.navbar-toggle').on('click', function() {\r\n\r\n\t\t\tif ( $j(this).hasClass('collapsed') ) {\r\n\t\t\t\t$j('header').addClass('headerFull');\r\n\t\t\t\t$j('body').addClass('bodyMobileNavOpen');\r\n\t\t\t} else {\r\n\t\t\t\t$j('header').removeClass('headerFull');\r\n\t\t\t\t$j('body').removeClass('bodyMobileNavOpen');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n});"},function(t,e,r){r(0)(r(49))},function(t,e){t.exports="var $j = jQuery.noConflict();\r\n\r\nvar operatorPriceGridThumbnailInstance = null;\r\nvar arrangeRoom = null;\r\nvar itemGadgetArrangeInstance = null;\r\nvar expandedLayoutApplied = null;\r\nvar slide_to_section_speed = 800;\r\n\r\n\r\nwindow.scrollToAboutSection = function() {\r\n\t\r\n\t// scroll to about section if needed\r\n\tif (document.location.hash == '#about') {\r\n\t\t\r\n\t\t// get the 'href' attr and remove the '#'\r\n\t\tvar link_name = document.location.hash.slice(1);\r\n\t\tvar jump_to_anchor;\r\n\t\tvar jump_to_anchor_top;\r\n\t\t\r\n\t\t// find the top position of the element to scroll to based on the same href attr\r\n\t\t$j('.jump-to-anchor').each(function(){\r\n\t\t\tif ( $j(this).attr('name') == link_name ) {\r\n\t\t\t\tvar adjust_for_sticky_nav = 0;\r\n\t\t\t\tif (link_name == 'book') {\r\n\t\t\t\t\t// adjust for sticky nav\r\n\t\t\t\t\tadjust_for_sticky_nav = $j('.navigation-sidebar-outer-wrapper').height();\r\n\t\t\t\t}\r\n\t\t\t\tjump_to_anchor = $j(this);\r\n\t\t\t\tjump_to_anchor_top = jump_to_anchor.offset().top - adjust_for_sticky_nav;\r\n\t\t\t}\r\n\t\t});\r\n\t\t// do the animation\r\n\t\t$j(\"html, body\").animate({scrollTop: jump_to_anchor_top - ( $
1j(\".details-header\").height() + $j(\"header\").height() )}, slide_to_section_speed);\r\n\t\t\r\n\t}\r\n\t\r\n};\r\n\r\n$j(document).ready(function() {\r\n\t\r\n\t// scroll to about section if needed\r\n\twindow.scrollToAboutSection();\r\n\t\r\n\t// Currency Spacing\r\n\t// Header Cart Price Formatting\r\n\tfunction cartPriceSpacing(elem) {\r\n\r\n\t\t// iterate through all the elements\r\n\t\t$j(elem).each(function() {\r\n\t\t\tvar string = $j(this).html().toLowerCase(); // eg. string 'aud$50'\r\n\r\n\t\t\tif ( string.indexOf('aud$') == 0 ) { // if contains 'aud'\r\n\t\t\t\t// split the string\r\n\t\t\t\tvar arr = string.split('');\r\n\t\t\t\t// find the '$' and replace with ' $'\r\n\t\t\t\tfor (var i = 0; i < arr.length; i++) {\r\n\t\t\t\t\tif (arr[i] == '$') {\r\n\t\t\t\t\t\tarr[i] = ' $';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tarr = arr.join('');\r\n\t\t\t\t$j(this).html( arr.toUpperCase() );\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t}\r\n\r\n\t$j('.header-cart').on('click', function() {\r\n\t\t// Set Delay because the prices don't appear instantly for some reason.\r\n\t\tsetTimeout( function() {\r\n\t\t\tcartPriceSpacing('.cartItems .total span');\r\n\t\t\tcartPriceSpacing('.cartInOverlay .cartItems .item .price label');\r\n\t\t}, 100);\r\n\t});\r\n\r\n\t// im-pricebutton doesn't yet after 'document.ready' so delegate the click event\r\n\t$j('body').on('click', '.im-pricebutton', function() {\r\n\t\t// Set Delay because the prices don't appear instantly for some reason.\r\n\t\tsetTimeout( function() {\r\n\t\t\tcartPriceSpacing('#wdOverlayContent .add-to-cart-information .price span');\r\n\t\t}, 100);\r\n\r\n\t});\r\n\r\n\r\n\t// handle overview show/hide\r\n\tvar descriptionHeight = jQuery(\".operator-description\").outerHeight();\r\n\tif (descriptionHeight > 350) {\r\n\t\tjQuery(\"#description-extra\").after(\"<div class=\\\"row\\\"><div class=\\\"col-xs-12 col-md-12\\\"><div id=\\\"description-show-hide\\\" class=\\\"closed arrow-down\\\">More...</div></div></div>\");\r\n\t\tjQuery(\"#description-extra\").remove();\r\n\t\tjQuery(\".operator-description\").addClass(\"crop\");\r\n\t}\r\n\tjQuery(\"#description-show-hide\").bind(\"click\", function(obj) {\r\n\t\tjQuery(\".operator-description\").toggleClass(\"expanded\");\r\n\t\tjQuery(\"#description-show-hide\").toggleClass(\"closed\");\r\n\t\tif (jQuery(\".operator-description\").hasClass(\"expanded\")) {\r\n\t\t\tjQuery(\"#description-show-hide\").html(\"Less...\").removeClass('arrow-down').addClass('arrow-up');\r\n\t\t\t$j('.operator-description').animate({ height:descriptionHeight+'px' }, '200');\r\n\t\t} else {\r\n\t\t\tjQuery(\"#description-show-hide\").html(\"More...\").removeClass('arrow-up').addClass('arrow-down');\r\n\t\t\t$j('.operator-description').animate({ height:'350px' }, '200');\r\n\t\t}\r\n\t});\r\n\r\n\r\n\r\n});\r\n\r\n\r\n$j(window).bind(\"load\", function() {\r\n\r\n\r\n});\r\n\r\n\r\n\r\n// this script REQUIRES imutility.js\r\n// please ensure you include imutility.js before this script, like so:\r\n// <jdoc:include type=\"impartScript\" name=\"{shared}/v3/js/imutility.js\" compress=\"true\" />\r\n// Please do not make changes to this file within the {shared}/v3/ folder\r\n// If you wish to make changes, consider copying and pasting this file into your {template}/js/ folder, and then customising\r\n\r\n\r\n\r\njQuery(document).on('gadget.script.loaded', function() {\r\n\r\n\t// convert the details gadget into bootstrap format, to allow for better styling, and automatic responsiveness\r\n\t$w.event.subscribe('grid.rendered', function() {\r\n\t\t\r\n\t\t// scroll to about section if needed\r\n\t\tsetTimeout(function() {\r\n\t\t\twindow.scrollToAboutSection();\r\n\t\t}, 1000);\r\n\t\tsetTimeout(function() {\r\n\t\t\twindow.scrollToAboutSection();\r\n\t\t}, 2000);\r\n\t\t\r\n\t});\r\n});\r\n"},function(t,e,r){r(0)(r(51))},function(t,e){t.exports="var $j = jQuery.noConflict();\r\n\r\n$j(window).bind(\"load\", function() {\r\n\r\n\r\n\t// If this the operator gadget\r\n\tif ( $j('#details-gadget').length > 0 ) {\r\n\r\n\t\t// wait for the gallery and item gadget to be rendered before figuring out the scroll positions\r\n\t\tfunction waitForOperatorGalleryToLoad() {\r\n\t\t\tvar counter = 0;\r\n\r\n\t\t\treturn window.setInterval( function() {\r\n\t\t\t\tif ( $j('#gallery-container .imagegallery__v3-showcasewrapper').length > 0 ) { // && $j('#itemGadget .priceGrid .thumb .thumb').length > 0\r\n\t\t\t\t\tvar slide_to_section_speed = 800;\r\n\r\n\t\t\t\t\t// Button click slide to relevant section\r\n\t\t\t\t\t$j('.sidebar-nav-button').on('click', function(event){\r\n\r\n\t\t\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\t\t\t// get the 'href' attr and remove the '#'\r\n\t\t\t\t\t\tvar link_name = $j(this).attr('href').slice(1);\r\n\t\t\t\t\t\tvar jump_to_anchor;\r\n\t\t\t\t\t\tvar jump_to_anchor_top;\r\n\r\n\t\t\t\t\t\t// find the top position of the element to scroll to based on the same href attr\r\n\t\t\t\t\t\t$j('.jump-to-anchor').each(function(){\r\n\t\t\t\t\t\t\tif ( $j(this).attr('name') == link_name ) {\r\n\t\t\t\t\t\t\t\tvar adjust_for_sticky_nav = 0;\r\n\t\t\t\t\t\t\t\tif (link_name == 'book') {\r\n\t\t\t\t\t\t\t\t\t// adjust for sticky nav\r\n\t\t\t\t\t\t\t\t\tadjust_for_sticky_nav = $j('.navigation-sidebar-outer-wrapper').height();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tjump_to_anchor = $j(this);\r\n\t\t\t\t\t\t\t\tjump_to_anchor_top = jump_to_anchor.offset().top - adjust_for_sticky_nav;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t// do the animation\r\n\t\t\t\t\t\t$j(\"html, body\").animate({scrollTop: jump_to_anchor_top - ( $
1j(\".details-header\").height() + $j(\"header\").height() )}, slide_to_section_speed);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Find the initial top positions of all the sections and store in array\r\n\t\t\t\t\tvar section_top_arr = [];\r\n\t\t\t\t\tvar sidebar_links_arr = [];\r\n\t\t\t\t\tvar current_sidebar_link = 0;\r\n\r\n\t\t\t\t\tfunction recalculateAnchorPositions() {\r\n\t\t\t\t\t\tsection_top_arr = [];\r\n\t\t\t\t\t\tsidebar_links_arr = [];\r\n\t\t\t\t\t\t$j('.navigation-sidebar a').each(function(){\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t// Add all the sidebar links into an array\r\n\t\t\t\t\t\t\tsidebar_links_arr.push( $j(this) );\r\n\t\r\n\t\t\t\t\t\t\t// Get the 'href' attr and remove the '#'\r\n\t\t\t\t\t\t\tvar link_name = $j(this).attr('href').slice(1);\r\n\t\t\t\t\t\t\tvar adjust_for_sticky_nav = 0;\r\n\t\t\t\t\t\t\tif (link_name == 'book') {\r\n\t\t\t\t\t\t\t\t// adjust for sticky nav\r\n\t\t\t\t\t\t\t\tadjust_for_sticky_nav = $j('.navigation-sidebar-outer-wrapper').height();\r\n\t\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\t\t// The target anchor for the side menu link\r\n\t\t\t\t\t\t\tvar anchor_position = $j('.jump-to-anchor[name=\"'+ link_name +'\"]');\r\n\t\r\n\t\t\t\t\t\t\t// Insert all the top positions of the target anchor links\r\n\t\t\t\t\t\t\tsection_top_arr.push( Math.floor(anchor_position.offset().top - adjust_for_sticky_nav)-1  );\r\n\t\t\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\trecalculateAnchorPositions();\r\n\t\t\t\t\tsetInterval(function() {\r\n\t\t\t\t\t\trecalculateAnchorPositions();\r\n\t\t\t\t\t}, 1500);\r\n\t\t\t\t\t\r\n\t\t\t\t\tvar sidebar_links = $j('.sidebar-nav-button');\r\n\t\t\t\t\tfunction resetSidebarActive() {\r\n\t\t\t\t\t\tsidebar_links.removeClass('active');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Returns the index of the current sidebar menu\r\n\t\t\t\t\tfunction currentSidebarActive() {\r\n\t\t\t\t\t\t// The index of which target anchor link the user has scrolled past\r\n\r\n\t\t\t\t\t\tvar scrolled_past = 0;\r\n\t\t\t\t\t\tvar scrolled_to = 0;\r\n\t\t\t\t\t\t// Where the scroll top of window is and accounting for the headers\r\n\t\t\t\t\t\tvar window_scroll_top = $j(window).scrollTop() + $j(\".details-header\").height() + $j(\"header\").height();\r\n\t\t\t\t\t\tfor (var i = 0; i < section_top_arr.length; i++) {\r\n\t\t\t\t\t\t\tif ( window_scroll_top > section_top_arr[i] ) {\r\n\t\t\t\t\t\t\t\t// if scrolled past a section\r\n\t\t\t\t\t\t\t\tscrolled_past = i;\r\n\t\t\t\t\t\t\t\tscrolled_to = window_scroll_top;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn scrolled_past;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Set the initial active sidebar\r\n\t\t\t\t\tfunction updateCurrentSidebar() {\r\n\t\t\t\t\t\t// Reset the active menu links\r\n\t\t\t\t\t\tresetSidebarActive();\r\n\t\t\t\t\t\t$j(sidebar_links_arr[currentSidebarActive()]).addClass('active');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tupdateCurrentSidebar();\r\n\r\n\t\t\t\t\t// Scroll function\r\n\t\t\t\t\t$j(window).scroll( function() {\r\n\t\t\t\t\t\tupdateCurrentSidebar();\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// stop setInterval function\r\n\t\t\t\t\twindow.clearInterval(waitForOperatorGalleryToLoadInstance);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//console.log('images not found');\r\n\t\t\t\t}\r\n\t\t\t\tcounter++;\r\n\r\n\t\t\t\t// Stop running this check after 15 seconds\r\n\t\t\t\tif (counter >= 100) {\r\n\t\t\t\t\twindow.clearInterval(waitForOperatorGalleryToLoadInstance);\r\n\t\t\t\t}\r\n\t\t\t}, 150 );\r\n\r\n\t\t}\r\n\r\n\t\tvar applyNavBarHandler = false;\r\n\t\tvar waitForOperatorGalleryToLoadInstance = waitForOperatorGalleryToLoad();\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t} // end if #details-gadget\r\n\r\n\t// Operator Details - Booking help button does the same as clicking on the enquiry button\r\n\t// on side nav\r\n\t$j('.operator-booking-help a').on('click', function(){\r\n\t\t$j('.navigation-sidebar-enquiry a').click();\r\n\t});\r\n\r\n\r\n\r\n});"}]);

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