function deferIframe(){for(var t=document.getElementsByTagName("iframe"),n=0;n<t.length;n++)t[n].getAttribute("data-src")&&t[n].setAttribute("src",t[n].getAttribute("data-src"))}(function(n){n(window.jQuery,window,document)})(function(n,t,i){function dt(){l.animate({opacity:0},200,function(){l.hide();l.css({opacity:1})})}function ni(n){for(var n=n.split(""),i=[],u=n.length,r="ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž",t=0;t<u;t++)i[t]=r.indexOf(n[t])!=-1?"AAAAAAaaaaaaOOOOOOOooooooEEEEeeeeeCcDIIIIiiiiUUUUuuuuNnSsYyyZz".substr(r.indexOf(n[t]),1):n[t];return i.join("")}function lt(){var e=i.getElementById("languageSelector"),h=i.getElementById("languageSelectorContainer"),s=i.getElementById("languageSelectorBottom"),l=i.getElementById("languageSelectorContainerBottom"),u,o,c,r,f;if(t.bablic&&e&&h){for(u=t.bablic.languages.get(),(u||"").length||(u=[{key:"en",name:"English"},{key:"fr",name:"Français"}]),r=0;r<u.length;r++)f=i.createElement("option"),f.value=u[r].key,f.text=u[r].name,e.appendChild(f);e.value=t.bablic.getLocale();h.style.display="";n(e).addClass("form-control").selectpicker("setStyle","btn-select").on("changed.bs.select",function(){t.bablic.redirectTo(this.value,{forceRedirect:!0})});for(r=0;r<u.length;r++)f=i.createElement("option"),f.value=u[r].key,f.text=u[r].name,s.appendChild(f);s.value=e.value;l.style.display="";n(s).addClass("form-control").selectpicker("setStyle","btn-select").on("changed.bs.select",function(){t.bablic.redirectTo(this.value,{forceRedirect:!0})});for(o=i.getElementById("languageSelectorMobile"),c=i.getElementById("languageSelectorMobileContainer"),r=0;r<u.length;r++)f=i.createElement("option"),f.value=u[r].key,f.text=u[r].name,o.appendChild(f);o.value=e.value;c.style.display="";n(o).selectpicker();n(o).addClass("form-control").selectpicker("setStyle","btn-select").on("changed.bs.select",function(){t.bablic.redirectTo(this.value,{forceRedirect:!0})})}}function at(){n(".widget-hotel-transfers .read-more-btn").each(function(){var t=n(this),i=t.parents(".widget-hotel-transfers").find(".hotels-container"),r;i.length&&(i.css({"max-height":"1000vh",transition:"none"}),r=i.height(),i.css({"max-height":"",transition:""}),r<=550?t.hide():t.is(":visible")||t.show())})}function ti(n,t,i){var s=i,f,r,e,o,h,c,u;return!0&&(s=jQuery("<div>",{"class":"explorer-card-container"+(n.IsFeatured?" featured-post":"")})),f=jQuery("<a>",{href:n.Url||"javascript:void(0)"}),s.append(f),r=n.IsFeatured?n.FullHeightImage||n.FullWidthImage:n.FullWidthImage,e=jQuery("<div>",{"class":"explorer-card"}),f.append(e),o=jQuery("<img>",{"class":"bg-image"}),e.css("background-image","url('"+r+"')"),o.attr("src",r),o.attr("alt",n.Title),{0:0,1:1,2:1,3:2,4:2}[t]===0&&(o.addClass("visible-xs"),h=jQuery("<img>",{"class":"bg-image hidden-xs"}),e.css("background-image","url('"+r+"')"),h.attr("src",r),h.attr("alt",n.Title)),c=jQuery("<div>",{"class":"caption-bar card-link"}),f.append(c),u=jQuery("<div>",{"class":"caption-title"}),c.append(u),u.append('<div class="date">'+n.Date+"<\/div>"),n.Translation?u.append('<div class="title" bablic-exclude>'+n.Title+"<\/div>"):u.append('<div class="title">'+n.Title+"<\/div>"),s}function vt(){var i,r;(t.markers||"").length&&(i=t.markers[0],i.map.setZoom(i.zoom),i.center&&i.map.setCenter(i.center));for(r in t.markers)i=t.markers[r],i.marker.setIcon(i.icon);o.find(".teaser-image").empty();o.removeClass("show");n(".map-loc-list").show()}function ii(t,i){if(i=="OK"){n("#from-results").text(n("select#from").val());n("#to-results").text(n("select#to").val());n("#distance-results").text(t.rows[0].elements[0].distance.text+" / "+Math.round(t.rows[0].elements[0].distance.value*.000621371).toLocaleString("en-us")+" mi");n("#pricing-panel").addClass("in");var r=n("#drivingDirections a:first").data("href");n("#drivingDirections a:first").attr("href",r+"&saddr="+n("select#from").val()+"&daddr="+n("select#to").val());n("#drivingDirections").show()}else console.log("Error: "+i)}function bt(){if(!pt){var i=n(t).scrollTop(),r=n(t).height();i>=yt-r&&(n.getScript("//assets.juicer.io/embed.js"),pt=!0)}}var ft,l,ot,gt,st,g,r,ht,y,ct,p,v,w,b,s,k,nt,tt,o,it,rt,ri,ut,kt;n.urlParam=function(n){var i=new RegExp("[?&]"+n+"=([^&#]*)").exec(t.location.href);return i==null?null:decodeURI(i[1])||0};jQuery(".main-content table:not(.table-responsive>table)").wrap("<div class='table-responsive'><\/div>");ft=function(){var n=t,r="inner";return"innerWidth"in t||(r="client",n=i.documentElement||i.body),{width:n[r+"Width"],height:n[r+"Height"]}};l=jQuery(".header-search");jQuery(".search-icon").click(function(n){n.preventDefault();l.css("opacity",0).show().animate({opacity:1});l.find("input[type=text]:first").focus()});n("body").click(function(t){var i=n(t.target);!l.is(":visible")||i.hasClass("search-icon")||i.hasClass("fa-search")||i.hasClass("header-search")||i.parent().hasClass("smart-search-wrapper")||dt()});n(i).ready(function(){t.setTimeout("deferIframe();",8e3)});var u=jQuery(".widget-jumplinks:first"),f=jQuery("#header"),e=jQuery(".collapsed-nav:first"),h=jQuery("#bookNowPopup"),c=jQuery(".book-now"),d=!1,a=jQuery(".book-now:not(.hidden-lg)"),et=!a.hasClass("is-agent");!et&&a.attr("agenthref")&&(a.attr("href",a.attr("agenthref")),jQuery(".book-now.hidden-lg").attr("href",a.attr("agenthref")),jQuery(".book-now.hidden-lg").attr("target",a.attr("target")));n(i).click(function(t){var i=n(t.target);i.closest("#bookNowPopup").length||i.hasClass("book-now")||c&&c.hasClass("booknow-open")&&(c.removeClass("booknow-open"),h&&h.removeClass("open"))});jQuery("#header-navbar-collapse").on("show.bs.collapse",function(){c.hasClass("booknow-open")&&(c.removeClass("booknow-open"),h.removeClass("open"));jQuery("html, header").addClass("flyout-open")});jQuery("#header-navbar-collapse").on("shown.bs.collapse",function(){});jQuery("#header-navbar-collapse").on("hidden.bs.collapse",function(){jQuery(this).find(".second-level.submenu-open").removeClass("submenu-open");c.hasClass("booknow-open")?(h.css({position:"absolute","z-index":998,top:f.offset().top+f.height()+"px",width:"100%",left:0}),h.addClass("open")):h.removeClass("open")});jQuery("#header-navbar-collapse").on("hide.bs.collapse",function(){jQuery("html, header").removeClass("flyout-open")});if(f.find(".nav .top-menu-item.dropdown-submenu>a").click(function(n){ft().width<=991&&(n.preventDefault(),jQuery(this).siblings(".second-level:first").addClass("submenu-open"),f.stop().animate({scrollTop:0},250,"swing",function(){}))}),f.find(".nav .top-menu-item.dropdown-submenu .second-level-back").click(function(){jQuery(this).parents(".second-level:first").removeClass("submenu-open")}),c.length&&h.length&&et&&(h.find(".close").click(function(){c.removeClass("booknow-open");h.removeClass("open")}),c.click(function(n){n.preventDefault();t.scrollTo({top:0,left:0,behavior:"smooth"});c.toggleClass("booknow-open");jQuery("#header-navbar-collapse").hasClass("in")?jQuery("#header-navbar-collapse").collapse("hide"):c.hasClass("booknow-open")?(h.css({position:"absolute","z-index":998,top:f.offset().top+f.height()+"px",width:"100%",left:0}),h.addClass("open")):h.removeClass("open")})),u.length&&(ot=u.find(".jumplinks-list:first"),gt=jQuery("[data-jumplink]").filter(function(n,t){var u=jQuery(t).data("jumplink")&&jQuery(t).attr("id"),r,i;if(!u)return!1;r=jQuery("<a>",{href:"#"+jQuery(t).attr("id"),text:jQuery(t).data("jumplink")});i=jQuery("<li>");i.append(r);ot.append(i)}),u.show(),jQuery("body").data("enablejumplink"))){e.css({position:"fixed","margin-top":-e.outerHeight()+"px"});st=n('<div class="affix-HeaderHeight-fix">').height(f.outerHeight(!0));f.css({position:"absolute","margin-top":0});f.after(st);u.on("affix.bs.affix",function(){if(u.stop(!0),u.css({position:"fixed",top:e.outerHeight(),left:0}),n(".affix-height-fix").length<1){var t=n('<div class="affix-height-fix">').height(u.outerHeight(!0));u.after(t)}else n(".affix-height-fix").height(u.outerHeight(!0)),u.after(n(".affix-height-fix"))});u.on("affix-top.bs.affix",function(){u.stop(!0);n(".affix-height-fix").remove();u.css({position:"relative",top:""})});u.affix({offset:{top:function(){return(n(".affix-height-fix").length?n(".affix-height-fix").position().top:u.position().top)-+e.outerHeight()}}});e.click(function(){u.hasClass("affix")&&u.animate({top:0},{duration:200,queue:!1});e.animate({marginTop:-e.outerHeight()},{queue:!1,duration:200,complete:function(){e.hide();f.css({position:"fixed"});f.css({marginTop:-f.outerHeight()});f.show();u.hasClass("affix")&&u.animate({top:f.outerHeight()},{duration:300,queue:!1,complete:function(){u.hasClass("affix")||u.css({position:"relative",top:""})}});f.animate({marginTop:0},{duration:300,queue:!1,complete:function(){d=!0}})}})});g=undefined;jQuery(t).scroll(function(){jQuery(t).scrollTop()>=f.outerHeight()+100?f.data("isfixed")||(f.data("isfixed",!0),f.css({position:"absolute","margin-top":0}),e.show(),e.animate({marginTop:0},{queue:!1,complete:function(){}})):f.data("isfixed")&&(f.data("isfixed",!1),e.animate({marginTop:-e.outerHeight()},{queue:!1,duration:200,complete:function(){e.hide();f.css({marginTop:0,position:"absolute"});f.show()}}));clearTimeout(g);g=setTimeout(function(){d&&(d=!1,u.hasClass("affix")&&u.animate({top:0},{duration:200,queue:!1}),f.animate({marginTop:-f.outerHeight()},{duration:200,queue:!1,complete:function(){f.css({position:"absolute","margin-top":0});e.show();e.animate({marginTop:0},{queue:!1,complete:function(){}});u.hasClass("affix")&&u.animate({top:e.outerHeight()},{queue:!1,complete:function(){u.hasClass("affix")||u.css({position:"relative",top:""})}})}}))},0)})}if(jQuery(".gallery-widget").length&&(r="",r+='<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">',r+='    <div class="pswp__bg"><\/div>',r+='    <div class="pswp__scroll-wrap">',r+='        <div class="pswp__container">',r+='            <div class="pswp__item"><\/div>',r+='            <div class="pswp__item"><\/div>',r+='            <div class="pswp__item"><\/div>',r+="        <\/div>",r+='        <div class="pswp__ui pswp__ui--hidden">',r+='            <div class="pswp__top-bar">',r+='                <div class="pswp__counter"><\/div>',r+='                <button class="pswp__button pswp__button--close" title="Close (Esc)"><\/button>',r+='                <button class="pswp__button pswp__button--share" title="Share"><\/button>',r+='                <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"><\/button>',r+='                <button class="pswp__button pswp__button--zoom" title="Zoom in/out"><\/button>',r+='                <div class="pswp__preloader">',r+='                    <div class="pswp__preloader__icn">',r+='                        <div class="pswp__preloader__cut">',r+='                            <div class="pswp__preloader__donut"><\/div>',r+="                        <\/div>",r+="                    <\/div>",r+="                <\/div>",r+="            <\/div>",r+='            <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">',r+='                <div class="pswp__share-tooltip"><\/div>',r+="            <\/div>",r+='            <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)"><\/button>',r+='            <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)"><\/button>',r+='            <div class="pswp__caption">',r+='               <div class="pswp__caption__center"><\/div>',r+="            <\/div>",r+="        <\/div>",r+="    <\/div>",r+="<\/div>",jQuery("body").append(r),ht=function(n){for(var e,h,f,c=function(n){for(var s=n.childNodes,l=s.length,h=[],r,t,c,i,u=0,f=0,e=0;e<l;e++)if(r=s[e],r.nodeType===1){t=r.children[0].children[0];var a=t.getAttribute("data-origsrc"),c=t.getAttribute("data-origsize"),o=c&&c.split(";");(o||"").length>1?(u=o[0],f=o[1]):t.getAttribute("src")&&(u=t.naturalWidth||t.width||u,f=t.naturalHeight||t.height||f);i={src:a,w:u||1260,h:f||850};i.title=jQuery(t).data("title");t.children.length>0&&(i.msrc=t.getAttribute("src"));i.el=r;h.push(i)}return h},o=function o(n,t){return n&&(t(n)?n:o(n.parentNode,t))},l=function(n){var e=n.target||n.srcElement,i=o(e,function(n){return jQuery(n).hasClass("gallery-cell")}),t;if(i){var h=i.parentNode,r=i.parentNode.childNodes,c=r.length,f=0,u;for(t=0;t<c;t++)if(r[t].nodeType===1){if(r[t]===i){u=f;break}f++}return u>=0&&s(u,h),!1}},a=function(){var f=t.location.hash.substring(1),n={},r,i,u;if(f.length<5)return n;for(r=f.split("&"),i=0;i<r.length;i++)r[i]&&((u=r[i].split("="),u.length<2)||(n[u[0]]=u[1]));return n.gid&&(n.gid=parseInt(n.gid,10)),n},s=function(n,r,u,f){var l=i.querySelectorAll(".pswp")[0],h,e,o,s;if(o=c(r),e={galleryUID:r.getAttribute("data-pswp-uid"),getThumbBoundsFn:function(n){var u=o[n].el.getElementsByTagName("img")[0],f=t.pageYOffset||i.documentElement.scrollTop,r=u.getBoundingClientRect();return{x:r.left,y:r.top+f,w:r.width}}},f)if(e.galleryPIDs){for(s=0;s<o.length;s++)if(o[s].pid==n){e.index=s;break}}else e.index=parseInt(n,10)-1;else e.index=parseInt(n,10);isNaN(e.index)||(u&&(e.showAnimationDuration=0),h=new PhotoSwipe(l,PhotoSwipeUI_Default,o,e),h.init())},u=i.querySelectorAll(n),r=0,v=u.length;r<v;r++)if(u[r].setAttribute("data-pswp-uid",r+1),e=jQuery(u[r]).data("customflickity"),e){h=jQuery(u[r]).flickity(e);h.on("staticClick.flickity",function(n,t,i){i&&l({target:i})})}f=a();f.pid&&f.gid&&s(f.pid,u[f.gid-1],!0,!0)},ht(".gallery-widget [data-customflickity]")),y=jQuery("#interactiveMapBanner"),y.length){if(ct=y.data("destinations"),p=Object.create(null),n.each(ct,function(t,i){var u=i.Row,r=Object.create(null);n.each(u,function(n,t){if(t.Key=="PageName"){r.title=t.Value;var i=ni(t.Value.trim().toLowerCase()).replace(/\W/g,"_");r.id=i;p[i]=r}else r[t.Key]=t.Value})}),v=y.find("svg:first"),!v.length)return;for(w in p)v.find("#"+w).click(function(){t.location=p[jQuery(this).attr("id")].NodeAliasPath}),v.find("#"+w).css("cursor","pointer"),v.find("#"+w).hover(function(){jQuery(this).find(".section").find("path").css({fill:"#3f7bb7"});jQuery(this).find(".circles").css("opacity","1");jQuery(this).find(".circle").css({fill:"#6595c5",opacity:"1"});jQuery(this).find(".innercircle").css({fill:"#ffffff",opacity:"1"});jQuery(this).find(".caption").css("opacity","1");jQuery(this).find(".caption").find("path").css("fill","#ffffff")},function(){jQuery(this).find(".section").find("path").css({fill:""});jQuery(this).find(".circles").css("opacity","");jQuery(this).find(".circle").css({fill:"",opacity:""});jQuery(this).find(".innercircle").css({fill:"",opacity:""});jQuery(this).find(".caption").css("opacity","");jQuery(this).find(".caption").find("path").css("fill","")})}jQuery(".map-carousel").each(function(n,t){function h(n){var t=f[n],e;t&&(e=r.find("[data-index="+n+"]"),e.length?(r.find("svg").hide(),e.show()):t.mapimage&&jQuery.get(t.mapimage,function(t){var i=jQuery(t).find("svg"),u,e;if(i.attr("data-index",n),i=i.removeAttr("xmlns:a"),!i.attr("viewBox")&&i.attr("height")&&i.attr("width")&&i.attr("viewBox","0 0 "+i.attr("height")+" "+i.attr("width")),!r.find("[data-index="+n+"]").length){r.find("svg").hide();r.append(i);for(u in f)e=f[u],e.pinid&&function(){var n=u,t=i.find("#"+e.pinid);t.click(function(){o.flickity("select",n)})}()}},"xml"),c.text(t.title),l.text(t.content),t.linktitle&&t.link?(u.text(t.linktitle),u.attr("href",t.link),u.show()):u.hide(),i.show())}var e=jQuery(t).children(":first"),s=e.data("customflickity"),o;if(s){var i=jQuery(t).find(".map-overlay:first"),r=i.find(".map-graphics:first"),c=i.find(".map-title:first"),l=i.find(".map-content:first"),u=i.find(".map-link:first"),f=Object.create(null);jQuery(e).children().each(function(n,t){var i=jQuery(t);f[n]={title:i.data("overlay-title"),content:i.data("overlay-content"),linktitle:i.data("overlay-linktitle"),link:i.data("overlay-link"),pinid:i.data("overlay-pinid"),mapimage:i.data("overlay-map")}});o=e.flickity(s);h(0);o.on("change.flickity",function(n,t){h(t)})}});n("#videoModal").on("show.bs.modal",function(t){var f=n(t.relatedTarget).data("video"),r=n("<div>"),i,u;r.addClass("iframe-wrapper embed-responsive embed-responsive-16by9");i=n("<iframe>");i.addClass("embed-responsive-item");i.attr("src",f+"?enablejsapi=1&autoplay=1&rel=0");i.attr("allowfullscreen","true");i.attr("allow","vr; autoplay; fullscreen");i.appendTo(r);u=n(this);u.find(".iframe-ph").replaceWith(r)});n("#videoModal").on("hidden.bs.modal",function(){var t=n("<div>"),i;t.addClass("iframe-ph");i=n(this);i.find(".iframe-wrapper").replaceWith(t)});n('a[href^="#"]').click(function(t){var i=jQuery(this).attr("href"),r,f;!i||i.length<3||(t.preventDefault(),r=jQuery(i),r.length&&(f=u.length?e.outerHeight()+u.outerHeight():0,n("html, body").animate({scrollTop:r.offset().top-f})))});b=jQuery(".btn-back-to-top:first");n(t).scroll(function(){var i=n(t).scrollTop();i>=300?b.addClass("enabled"):b.removeClass("enabled")});b.click(function(t){t.preventDefault();n("html, body").animate({scrollTop:0})});t.bablic?setTimeout(lt):i.addEventListener("bablicload",function(){setTimeout(lt,500)});jQuery(".selectpicker:not(#languageSelector, #languageSelectorBottom)").addClass("form-control").selectpicker("setStyle","btn-select");n(".cocoen").cocoen();n(".widget-specs .read-more-btn").click(function(){n(".widget-specs .below-read-more").toggleClass("expanded");var t=n(this);return t.toggleClass("expanded"),t.hasClass("expanded")?t.text("Read less"):t.text("Read more"),!1});n(".widget-intro .read-more").click(function(){n(".widget-intro .fade-abstract").toggleClass("expanded");var t=n(this);return t.toggleClass("expanded"),t.hasClass("expanded")?t.text("Read less"):t.text("Read more"),!1});n(".widget-video-grid .read-more-btn").click(function(){var t=n(this);return t.parents(".widget-video-grid").find(".video-grid").toggleClass("expanded"),t.toggleClass("expanded"),t.hasClass("expanded")?t.text("Show less"):t.text("Show more"),!1});n(".widget-hot-deals .read-more-btn").click(function(){var t=n(this);return t.parents(".widget-hot-deals").find(".hot-deals-container").toggleClass("expanded"),t.toggleClass("expanded"),t.hasClass("expanded")?t.text("Show less"):t.text("Show more"),!1});at();jQuery(t).resize(function(){at()});n(".widget-hotel-transfers .read-more-btn").click(function(){var t=n(this);return t.parents(".widget-hotel-transfers").find(".hotels-container").toggleClass("expanded"),t.toggleClass("expanded"),t.hasClass("expanded")?t.text("Show less"):t.text("Show more"),!1});n(".widget-travel-tips .read-more-btn").click(function(){var t=n(this);return t.parents(".widget-travel-tips").find(".tips-container").toggleClass("expanded"),t.toggleClass("expanded"),t.hasClass("expanded")?t.text("Show less"):t.text("Show more"),!1});s=n(".widget-highlight-carousel .carousel-container").flickity({adaptiveHeight:matchMedia("(max-width: 992px)").matches,cellSelector:".carousel-cell",cellAlign:"center",contain:!0,imagesLoaded:!0,lazyLoad:!0,bgLazyLoad:1,autoplay:!1,pageDots:!1});s.find(".prev-day-button").click(function(){return s.flickity("previous"),!1});s.find(".next-day-button").click(function(){return s.flickity("next"),!1});k=s.data("flickity");s.on("select.flickity",function(n,t){k.slides[t-1]?s.find(".prev-day-button").removeAttr("disabled"):s.find(".prev-day-button").attr("disabled",!0);k.slides[t+1]?s.find(".next-day-button").removeAttr("disabled"):s.find(".next-day-button").attr("disabled",!0)});nt=s.find(".flickity-page-dots");tt=nt.find(".dot");s.on("select.flickity",function(){tt.filter(".is-selected").removeClass("is-selected");tt.eq(k.selectedIndex).addClass("is-selected")});nt.on("click",".dot",function(){var t=n(this).index();s.flickity("select",t)});n(".nav-tabs").not(".dropdown-mode").each(function(){n(this).find("li:first a").tab("show")});n(".nav-tabs.dropdown-mode ul").each(function(){var t=n(this).find("li:first a");t.tab("show");n(this).parents(".dropdown").find(".tab-dropdown-toggle").text(t.text())});n('a[data-toggle="tab"]').on("shown.bs.tab",function(){t.dispatchEvent(new Event("resize"))});n('.nav-tabs.dropdown-mode ul a[data-toggle="tab"]').on("shown.bs.tab",function(){n(this).parents(".dropdown").find(".tab-dropdown-toggle").text(n(this).text())});jQuery(".blog-listing").each(function(n,t){function h(n){var t,o;f.parent().hide();l.show();c.hide();i.category?i.featured&&(i.featuredBak=i.featured,i.featured=undefined):i.featured||(i.featured=i.featuredBak);t=r.find(".cards:last");o=r.find(".result-fix:first");n&&(i.offset=0,i.recalcOffset=!1,e=0,u=0,s=undefined,t=r.find(".cards:last"),o=r.find(".result-fix:first"),n&&(t.data("isFeatured",!1),t.data("offsetRecalc",!1),r.find(".cards").remove(),t=jQuery("<div>",{"class":"cards"}),t.insertBefore(o)));jQuery.post("/canadreamapi/Blog",i,function(n){var r=(n.Cards||"").length&&n.Cards[0].IsFeatured,h,v;if(r&&!t.data("isFeatured")?t.data("isFeatured",1):r=t.data("isFeatured"),n.Cards&&n.Cards.length>0){for(h=0;h<n.Cards.length;h++)v=ti(n.Cards[h],e,s),s=v,r&&u%5==0&&(u=0),e>0&&u%(r?5:6)==0&&(t=jQuery("<div>",{"class":"cards"}),t.insertBefore(o),r=!1),t.append(v),e++,u++;i.recalcOffset===!1&&r===!0?(i.offset+=n.Cards.length-1,i.recalcOffset=!0):i.offset+=n.Cards.length}else c.show();n.MorePages&&!a&&f.parent().show();l.hide();n.Debug&&console.log(n.Debug)}).fail(function(n){console.log(n.statusText)})}var r=jQuery(t),i={path:r.data("path"),featured:r.data("featured"),pagesize:r.data("pagesize")||6,offset:0,recalcOffset:!1},f=r.find(".showMeMore:first"),c=r.find(".no-results:first"),l=r.find(".loading:first"),a=r.data("disableloadmore"),o;i.loadfeaturedfrompath=r.data("loadfeaturedfrompath")?!0:!1;o=r.find(".filters:first");o.find("a").click(function(){jQuery(this).parent().hasClass("active")||(o.find("li").removeClass("active"),jQuery(this).parent().addClass("active"),i.category=jQuery(this).data("id"),h(!0))});f.parent().hide();var e=0,u=0,s=undefined;h();f.click(function(n){n.preventDefault();h()})});n(".route-map").click(function(){n(this).find(".route-map-iframe").addClass("active")}).mouseleave(function(){n(this).find(".route-map-iframe").removeClass("active")});o=n("#map-loc-details-panel");n(".map-loc-select").click(function(){var i=n(this),r;t.markers&&(r=n.grep(t.markers,function(n){return n.id===i.attr("id")})[0],r&&google.maps.event.trigger(r.marker,"click"));var u=i.data("image"),e=i.data("name"),f=i.data("address"),s=i.data("province"),h=i.data("na-phone"),c=i.data("intl-phone"),l=i.data("hours"),a=i.find("div.description:first").html(),v=i.data("link");o.find(".teaser-image").empty();u&&o.find(".teaser-image").html("<img src='"+u+"' class='img-responsive'>");o.find(".province").empty().text(s);o.find(".name").empty().text(e);o.find(".addr").empty().text(f);o.find(".phone").empty().html("N. America: "+h+"<br>International: "+c);o.find(".hours").empty().html(l);o.find(".desc").empty().html(a);o.find(".btn-driving-directions").attr("href","https://maps.google.com/maps?t=m&hl=en-US&gl=US&mapclient=embed&daddr=Canadream%2C+"+f);o.find(".btn-learn-more").attr("href",v);o.addClass("show");n(".map-loc-list").hide()});n(".map-loc-select").hover(function(){var r=n(this),i;t.markers&&(i=n.grep(t.markers,function(n){return n.id===r.attr("id")})[0],i&&google.maps.event.trigger(i.marker,"mouseover"))});n(".map-loc-select").mouseout(function(){var r=n(this),i;t.markers&&(i=n.grep(t.markers,function(n){return n.id===r.attr("id")})[0],i&&google.maps.event.trigger(i.marker,"mouseout"))});n("#pickup-link").click(function(n){o.is(":visible")&&(n.preventDefault(),vt())});o.find(".close").click(vt);n("[data-toggle='tooltip']").tooltip({trigger:"manual",html:!0}).on("mouseenter",function(){var t=this;n(this).tooltip("show");n(".tooltip").on("mouseleave",function(){n(t).tooltip("hide")})}).on("mouseleave",function(){var t=this;setTimeout(function(){n(".tooltip:hover").length||n(t).tooltip("hide")},300)});it=!1;rt=!1;n("select#from").on("changed.bs.select",function(){it=!0;rt&&n("#distance-calc").removeAttr("disabled")});n("select#to").on("changed.bs.select",function(){rt=!0;it&&n("#distance-calc").removeAttr("disabled")});n("#distance-calc").click(function(){var t=n("select#from").val(),i=n("select#to").val(),r=new google.maps.DistanceMatrixService;return r.getDistanceMatrix({origins:[t],destinations:[i],travelMode:"DRIVING"},ii),!1});n(".search-row .btn-search").click(function(){n(this).closest(".searchBox").addClass("searching")});n(".brochure-selection select").on("loaded.bs.select",function(){var t=n(this);t.parents(".brochure-selection").find("a.btn-submit").attr("href",t.val())}).on("changed.bs.select",function(){var t=n(this);t.parents(".brochure-selection").find("a.btn-submit").attr("href",t.val())});jQuery(".online-form .bs-date-wrap.input-calendar-icon>input").datepicker({format:"dd/mm/yyyy",autoclose:!0});var yt=0,pt=!1,wt=n(".juicer-feed");if(n(i).ready(function(){t.setTimeout("deferIframe();",12e3);wt.length&&(yt=wt.offset().top,n(t).scroll(bt),bt())}),ri=new LazyLoad({elements_selector:".lazy"}),t.mobilecheck=function(){var n=!1;return function(t){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))&&(n=!0)}(navigator.userAgent||navigator.vendor||t.opera),n},!t.mobilecheck())n('a[href^="tel:"]').on("click",function(n){n.preventDefault()});n(".panel").focusin(function(){n(this).closest(".panel").css("border-color","#00a9ff")}).focusout(function(){n(this).closest(".panel").css("border-color","#e9ebf1")});ut=new ClipboardJS(".btn-copy");ut.on("success",function(t){n(t.target).tooltip("show");console.log(t)});ut.on("error",function(n){console.log(n)});n(".promo-code").on("shown.bs.tooltip",function(t){setTimeout(function(){n(t.target).tooltip("hide")},500)});kt=n(".home-flickity-carousel");kt.on("select.flickity",function(){var t=Flickity.data(".home-flickity-carousel");t.player.state!=="playing"&&n(this).addClass("autoplay-stopped")})}),function(n){"use strict";var t=angular.module("app",["ngAnimate"]);t.config(["$compileProvider",function(n){n.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|chrome-extension|tel|javascript|instagram):/)}]);t.filter("rawHtml",["$sce","$compile",function(n){return function(t){return t=t||"",n.trustAsHtml(t)}}]).filter("substring",["$sce","$compile",function(){return function(n,t){return n=n||"",n.substring(0,t)}}]);t.directive("compiledHtml",["$compile","$parse",function(n,t){return{link:function(i,r,u){i.$watch(u.content,function(){r.html(t(u.content)(i));n(r.contents())(i)},!0)}}}]);t.animation(".animate-panel",function(){return{addClass:function(t,i,r){if(!t.hasClass("animate-on-hide")){r();return}if(i.indexOf("ng-hide")>=0){t.removeClass("ng-hide");var u=n(t).data("duration")?parseFloat(n(t).data("duration")):1;t.animate({opacity:"0"},u*100,function(){t.addClass("ng-hide");jQuery(window).resize();r()})}else r()},removeClass:function(t,i,r){if(i.indexOf("ng-hide")>=0){if(t.hasClass("animate-on-hideonly")){r();return}var u=n(t).data("duration")?parseFloat(n(t).data("duration")):1;t.animate({opacity:"1"},u*100,function(){jQuery(window).resize();r()})}else r()}}})}(jQuery),function(n){"use strict";angular.module("app").controller("bookingStep1Ctrl",["$element","$scope",function(t,i){function r(n){return("0"+n).slice(-2)}function u(n){return r(n.getDate())+"/"+r(n.getMonth()+1)+"/"+n.getFullYear()}i.pickupdatepicker=jQuery("#appointmentDate");i.pickupdatepicker.datepicker({format:"dd/mm/yyyy",startDate:u(new Date),autoclose:!0});n('input[type="submit"]',n(t)).click(function(t){t.preventDefault();var r=n("#appointmentDate").val(),u=n("#make").val(),f=n("#model").val(),e=n("#year").val(),o=n("#kms").val(),s=n("#name").val(),h=n("#email").val(),c=n("#tel").val(),l=n("#location").val(),a={date:r,make:u,model:f,year:e,kms:o,name:s,email:h,tel:c,location:l},i="/service/service-request/?"+n.param(a);return console.log(i),window.location=i,!1})}]);angular.module("app").controller("bookingStep2Ctrl",["$element","$scope",function(t,i){function o(n){return("0"+n).slice(-2)}function s(n){return o(n.getDate())+"/"+o(n.getMonth()+1)+"/"+n.getFullYear()}var r,h,e;i.pickupdatepicker=jQuery("#AppointmentDate input");r=n.urlParam("date");h=s(new Date);r!=null&&(h=decodeURIComponent(r));i.pickupdatepicker.datepicker({format:"dd/mm/yyyy",startDate:s(new Date),autoclose:!0});var c=n.urlParam("make"),l=n.urlParam("model"),a=n.urlParam("year"),v=n.urlParam("kms"),y=n.urlParam("name"),p=n.urlParam("email"),w=n.urlParam("tel"),u=n.urlParam("location");if(r!=null){var f=decodeURIComponent(r).match(/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/),b=new Date(f[3],f[2]-1,f[1]);i.pickupdatepicker.datepicker("setDate",b)}c!=null&&n('#Make input[type="text"]').val(c);l!=null&&n('#Model input[type="text"]').val(l);a!=null&&n('#Year input[type="number"]').val(parseInt(a,10));v!=null&&n('#Kms input[type="number"]').val(parseInt(v,10));y!=null&&(e=decodeURIComponent(y),n('#FirstName input[type="text"]').val(e.split(" ")[0]),n('#LastName input[type="text"]').val(e.split(" ").pop()));p!=null&&n('#Email input[type="email"]').val(decodeURIComponent(p));w!=null&&n('#Phone input[type="tel"]').val(w);u!=null&&(n('#Location select option[value="'+u+'"]').attr("selected","selected"),n('#Location select option[value="'+u+'"]').siblings().removeAttr("selected"),n(".selectpicker").selectpicker("refresh"))}])}(jQuery),function(n){"use strict";angular.module("app").controller("bookNowPopupCtrl",["$scope","$timeout","$http","$element",function(t,i,r,u){function f(n){return("0"+n).slice(-2)}function e(n){return f(n.getDate())+"/"+f(n.getMonth()+1)+"/"+n.getFullYear()}function c(n){return n.getFullYear()+f(n.getMonth()+1)+f(n.getDate())}var l="https://bookings.canadream.com/CoraRest/CoraRest.dll/StartNewBooking?",s,h,o;t.selectedVehicle=null;t.selectedChildren=0;t.selectedAdults=2;t.selectedPickup=null;t.selectedPickupDate=new Date;t.selectedDropoff=null;t.selectedDropoffDate=new Date;t.maxDropoffDate=new Date((new Date).getTime()+63072e6);t.bookingError="";s=u.data("pickuplocations");t.allPickupLocations=[];n.each(s,function(i,r){var f=r.Row,u=Object.create(null);n.each(f,function(n,t){u[t.Key=="CoraId"?"Key":"Value"]=t.Value});t.allPickupLocations.push(u)});h=u.data("vehicles");t.allVehicles=[];n.each(h,function(i,r){var f=r.Row,u=Object.create(null);n.each(f,function(n,t){u[t.Key]=t.Value;t.Key=="CoraId"&&(u.Key=t.Value);t.Key=="ProductName"&&(u.Value=t.Value)});t.allVehicles.push(u)});t.items=[];t.pickupdatepicker=jQuery(u).find(".bookpickupdate:first");t.dropoffdatepicker=jQuery(u).find(".bookdropoffdate:first");t.wasSearch=!1;t.selectVehicle=function(n){t.selectedVehicle=n};t.selectChild=function(n){t.selectedChildren=n};t.selectAdult=function(n){t.selectedAdults=n};t.selectPickup=function(n){t.selectedPickup=n;t.selectedDropoff||(t.selectedDropoff=n)};t.selectDropoff=function(n){t.selectedDropoff=n};t.search=function(){if(t.selectedPickup)if(t.selectedPickupDate)if(t.selectedDropoff)if(t.selectedDropoffDate)if(t.selectedDropoffDate<=t.selectedPickupDate)t.bookingError="Please ensure the Dropoff date is after the Pickup date";else{t.bookingError="";var n=l+"PickupLocation="+t.selectedPickup.Key+"&DropoffLocation="+t.selectedDropoff.Key+"&PickupDate="+c(t.selectedPickupDate)+"&DropoffDate="+c(t.selectedDropoffDate);t.selectedVehicle&&(n+="&Product="+t.selectedVehicle.Key);r({method:"GET",url:n}).then(function(n){var i,r,u;n.data&&n.data.Error?t.bookingError=n.data.Error:n.data&&n.data.SessionId&&(i="",r="",window.bablic&&(i=window.bablic.getLocale(),i&&(r="&locale="+i)),u="https://bookings.canadream.com/Cora/Booking-Details/?SessionId="+n.data.SessionId+r,jQuery("body").data("isagent")?window.open(u,"_blank"):window.location.href=u)},function(n){console.log("Login Error");console.log(n)})}else t.bookingError="Please select a Dropoff Date";else t.bookingError="Please select a Dropoff Location";else t.bookingError="Please select a Pickup Date";else t.bookingError="Please select a Pickup Location"};t.init=function(){t.selectedPickupDate=null;t.pickupdatepicker.val("");t.selectedDropoffDate=null;t.dropoffdatepicker.val("");r({method:"GET",url:"/CanaDreamCMS/Handlers/MaxBookableDate.ashx"}).then(function(n){n.data&&o(new Date(n.data.maxdateyear,n.data.maxdatemonth-1,n.data.maxdateday))},function(){o(new Date((new Date).getTime()+63072e6))})};o=function(n){t.pickupdatepicker.datepicker({format:"dd/mm/yyyy",startDate:e(new Date),endDate:e(new Date(n.getTime()-2592e5)),autoclose:!0,disableTouchKeyboard:!0}).on("changeDate",function(i){t.selectedPickupDate=i.date;var r=new Date(t.selectedPickupDate.getTime()+6048e5);t.dropoffdatepicker.datepicker("setStartDate",new Date(t.selectedPickupDate.getTime()+2592e5));(!t.selectedDropoffDate||t.selectedDropoffDate<r)&&(r>n?(t.dropoffdatepicker.datepicker("setDate",n),t.selectedDropoffDate=n):(t.dropoffdatepicker.datepicker("setDate",r),t.selectedDropoffDate=r))});t.dropoffdatepicker.datepicker({format:"dd/mm/yyyy",startDate:e(new Date),endDate:e(new Date(n.getTime())),autoclose:!0,disableTouchKeyboard:!0}).on("changeDate",function(n){t.selectedDropoffDate=n.date})};t.init()}])}(jQuery),function(n){"use strict";angular.module("app").controller("hotDealCtrl",["$scope","$http","$element",function(t,i,r){function f(n){return("0"+n).slice(-2)}function s(n){return n.getFullYear()+f(n.getMonth()+1)+f(n.getDate())}function e(n){var t;if(n&&n!=null)if(typeof n=="string"){if(t=/(\d{4})-(\d{1,2})-(\d{1,2})/gi.exec(n),t&&t.length>3)return new Date(parseInt(t[1]),parseInt(t[2])-1,parseInt(t[3]),0,0,0,0)}else if(!isNaN(n))return new Date(n.getFullYear(),n.getMonth(),n.getDate(),0,0,0,0);return null}function h(i){i&&(i.length==1?(jQuery(r).find(".hotdealpickuplocations-dropdown:first").hide().siblings(".btn-select").addClass("disabled"),t.selectedPickup=i[0]):n.each(i,function(n,i){t.PickupLocations.push(i)}))}function c(i){i&&(i.length==1?(jQuery(r).find(".hotdealdropofflocations-dropdown:first").hide().siblings(".btn-select").addClass("disabled"),t.selectedDropoff=i[0]):n.each(i,function(n,i){t.DropoffLocations.push(i)}))}function l(i){i&&(i.length==1?(jQuery(r).find(".hotdealproduct-dropdown:first").hide().siblings(".btn-select").addClass("disabled"),t.selectedVehicle=i[0]):n.each(i,function(n,i){t.Products.push(i)}))}var u=r.data("hotdealid"),o;u||(u=0);o="https://bookings.canadream.com/CoraRest/CoraRest.dll/StartNewBooking?";t.showHotDeal=!1;t.hotDealError=!1;t.hotDealErrorMsg="";t.selectedVehicle=null;t.selectedChildren=0;t.selectedAdults=2;t.selectedPickup=null;t.selectedPickupDate=null;t.selectedDropoff=null;t.selectedDropoffDate=null;t.PickupLocations=[];t.DropoffLocations=[];t.Products=[];t.Adults=[1,2,3,4,5,6];t.Children=[0,1,2];t.RequestNightsMin=7;t.pickupdatepicker=jQuery(r).find(".hotdealpickupdate:first");t.dropoffdatepicker=jQuery(r).find(".hotdealdropoffdate:first");t.bookingError="";t.selectPickup=function(n){t.selectedPickup=n;u!=0||t.selectedDropoff||(t.selectedDropoff=n)};t.selectDropoff=function(n){t.selectedDropoff=n};t.selectAdult=function(n){t.selectedAdults=n};t.selectChild=function(n){t.selectedChildren=n};t.selectVehicle=function(n){t.selectedVehicle=n};t.bookNow=function(){if(t.selectedPickup)if(t.selectedPickupDate)if(t.selectedDropoff)if(t.selectedDropoffDate)if(t.selectedDropoffDate<=t.selectedPickupDate)t.bookingError="Please ensure the Dropoff date is after the Pickup date";else{t.bookingError="";var n=o;u&&u>0&&(n+="PkgId="+u+"&");n+="PickupLocation="+t.selectedPickup.LocationId+"&DropoffLocation="+t.selectedDropoff.LocationId+"&PickupDate="+s(t.selectedPickupDate)+"&DropoffDate="+s(t.selectedDropoffDate);t.selectedVehicle&&(n+="&Product="+t.selectedVehicle.ProductId);i({method:"GET",url:n}).then(function(n){var i,r,u;n.data&&n.data.Error?t.bookingError=n.data.Error:n.data&&n.data.SessionId&&(i="",r="",window.bablic&&(i=window.bablic.getLocale(),i&&(r="&locale="+i)),u="https://bookings.canadream.com/Cora/Booking-Details/?SessionId="+n.data.SessionId+r,jQuery("body").data("isagent")?window.open(u,"_blank"):window.location.href=u)},function(n){console.log("Login Error");console.log(n)})}else t.bookingError="Please select a Dropoff Date";else t.bookingError="Please select a Dropoff Location";else t.bookingError="Please select a Pickup Date";else t.bookingError="Please select a Pickup Location"};t.init=function(){t.selectedPickupDate=null;t.pickupdatepicker.val("");t.selectedDropoffDate=null;t.dropoffdatepicker.val("");var n="/CanaDreamCMS/Handlers/HotDeals.ashx?pkgid="+u;i({method:"GET",url:n}).then(function(n){t.showHotDeal=!0;jQuery(r).children("div.book-widget-content").show();h(n.data.PickupLocations);c(n.data.DropoffLocations);l(n.data.Products);t.MinNights=parseInt(n.data.MinNights);t.pickupdatepicker.datepicker({format:"dd/mm/yyyy",autoclose:!0,disableTouchKeyboard:!0,startDate:e(n.data.MinStartDate),endDate:e(n.data.MaxStartDate)}).on("changeDate",function(i){var f,u,r;t.selectedPickupDate=i.date;f=new Date(t.selectedPickupDate.getTime()+t.MinNights*864e5);u=e(n.data.MaxReturnDate);t.dropoffdatepicker.datepicker("setStartDate",f);t.selectedDropoffDate||(r=new Date(t.selectedPickupDate.getTime()+6048e5),r>u&&(r=u),t.dropoffdatepicker.datepicker("setDate",r),t.selectedDropoffDate=r)});t.dropoffdatepicker.datepicker({format:"dd/mm/yyyy",autoclose:!0,disableTouchKeyboard:!0,endDate:e(n.data.MaxReturnDate)}).on("changeDate",function(n){t.selectedDropoffDate=n.date})},function(n){t.hotDealError=!0;jQuery(r).children("div:last").show();t.hotDealErrorMsg="Sorry.  This feature is temporarily unavailable.";console.log("Service Error");console.log(n)})};t.init()}])}(jQuery),function(){"use strict";angular.module("app").controller("hotDealsListingCtrl",["$scope","$timeout","$http","$element",function(n,t,i,r){n.allMonths=r.data("months");n.allPickupLocations=r.data("pickuplocations");n.allVehicleTypes=r.data("vehicletypes");var u=Object.create(null);u.onlyHotDeals=r.data("onlyhotdeals");u.path=r.data("path");u.classNames=r.data("classnames");n.items=[];n.wasSearch=!1;n.selectMonth=function(t,i){n.selectedMonth=t;n.selectedMonth&&(n.selectedMonth.Key=i+1);n.wasSearch=!1};n.selectVehicleType=function(t){n.selectedVehType=t;n.wasSearch=!1};n.selectRegion=function(t){n.selectedRegion=t;n.wasSearch=!1};n.search=function(t){n.isLoading||(t&&(n.items=[],u.month=n.selectedMonth&&n.selectedMonth.Key||"",u.region=n.selectedRegion&&n.selectedRegion.Value||"",u.vehicleType=n.selectedVehType&&n.selectedVehType.Key||""),u.offset=(n.items||"").length,n.isLoading=!0,i({method:"POST",url:"/canadreamapi/HotDealsListing",data:angular.toJson(u),headers:{"Content-Type":"application/json"}}).then(function(i){i&&i.data&&(i.data.Cards||"").length&&(n.items=t?i.data.Cards:n.items.concat(i.data.Cards));n.moreItems=i&&i.data&&i.data.MorePages;n.wasSearch=!0;n.isLoading=!1}))};n.init=function(){u.pageSize=r.data("pagesize")||6;n.search(!0)};n.init()}])}(jQuery),function(n){"use strict";angular.module("app").controller("itineraryListingCtrl",["$scope","$timeout","$http","$location","$element",function(t,i,r,u,f){function s(n,t){for(var r,u=n.split("&"),i=0;i<u.length;i++)if(r=u[i].split("="),decodeURIComponent(r[0])==t)return decodeURIComponent(r[1]);return undefined}var o,e;t.allRegions=f.data("regions");t.allDurations=f.data("durations");o=f.data("seasons");t.allSeasons=[];n.each(o,function(i,r){var f=r.Row,u=Object.create(null);n.each(f,function(n,t){u[t.Key=="Title"?"Value":"Key"]=t.Value});t.allSeasons.push(u)});e=Object.create(null);t.items=[];t.selectDuration=function(n){t.isLoading||(t.selectedDuration=n,t.search(!0))};t.selectRegion=function(n){t.isLoading||(t.selectedRegion=n,t.search(!0))};t.selectSeason=function(n){t.isLoading||(t.selectedSeason=n,n?u.hash("season="+n.Value.trim().toLowerCase()):u.hash("all-seasons"),t.search(!0))};t.search=function(n){t.isLoading||(n&&(t.items=[]),e.offset=(t.items||"").length,e.duration=t.selectedDuration&&t.selectedDuration.Key||"",e.region=t.selectedRegion&&t.selectedRegion.Key||"",e.season=t.selectedSeason&&t.selectedSeason.Key||"",t.isLoading=!0,r({method:"POST",url:"/canadreamapi/ItinerariesListing",data:angular.toJson(e),headers:{"Content-Type":"application/json"}}).then(function(i){i&&i.data&&(i.data.Cards||"").length&&(t.items=n?i.data.Cards:t.items.concat(i.data.Cards));t.moreItems=i&&i.data&&i.data.MorePages;t.isLoading=!1}).catch(function(n){console.log(n);alert("An error has occurred!");t.isLoading=!1}))};t.init=function(){var r,n,i;e.pageSize=f.data("pagesize")||6;r=u.hash();n=s(r,"season");n&&(n=n.trim().toLowerCase(),i=undefined,angular.forEach(t.allSeasons,function(t){i||(t&&t.Value&&t.Value.trim().toLowerCase())!=n||(i=t)}),i&&(t.selectedSeason=i));t.search(!0)};t.init()}])}(jQuery),function(n){"use strict";angular.module("app").controller("rentRVCtrl",["$scope","$timeout","$http","$element",function(t,i,r,u){function s(){var n=window,t="inner";return"innerWidth"in window||(t="client",n=document.documentElement||document.body),{width:n[t+"Width"],height:n[t+"Height"]}}function o(n,t,i,r){n.animate({bottom:i+"px"},t,function(){r&&r()})}function f(n,t,i,r,u){r===0?n.css("opacity","1"):n.css("opacity","0");n.animate({bottom:i,opacity:r},t,function(){u&&u()})}function e(t){if(n(t+" .pholder",n(u)).each(function(){n(this).height(0)}),!(s().width<=767)){var i=0;n(t+":visible",n(u)).each(function(){var t=n(this).find(".pholder").offset().top;t>i&&(i=t)});n(t,n(u)).each(function(){n(this).find(".pholder").height(i-n(this).find(".pholder").offset().top)})}}t.isinit=!1;t.products=Object.create(null);t.isoverflow=!1;t.initComparePanel=function(){var r=n(u).find(".animate-compare-bar:first"),i=n(u).find(".animate-compare-content:first"),e=.4;t.getProductsCount()&&t.getProductsCount()&&(f(i,0,-70,0),o(r,.3,0,function(){f(i,e,0,1)}))};t.getProductsCount=function(){return Object.keys(t.products).length};t.toggleProd=function(i){t.products||(t.products=Object.create(null));var h=n(u).find(".animate-compare-bar:first"),r=n(u).find(".animate-compare-content:first"),c=n(u).find(".animate-compare-bar:first, .animate-compare-content:first"),s=-20,e=100;t.products[i]?t.getProductsCount()-1?f(r,e,s,0,function(){t.$apply(function(){delete t.products[i];t.isoverflow=!1;f(r,e+.2,0,1)})}):o(h,300,-60,function(){t.$apply(function(){delete t.products[i];f(r,0,0,1);t.isoverflow=!1})}):t.getProductsCount()?f(r,e,s,0,function(){t.$apply(function(){var n=t.getProductsCount()===3;n?t.isoverflow=!0:t.products[i]=!0;f(r,e+.2,0,1)})}):(t.products[i]=!0,f(r,0,s,0),f(c,300,0,1))};t.isLoading=!1;t.compareProducts=[];t.compare=function(){var n,i;t.showcompare=!0;t.isLoading=!0;n=[];for(i in t.products)n.push(i);t.compareProducts=[];r.post("/CanaDreamCMS/Handlers/RVCompare.ashx",{ids:n}).then(function(n){t.compareProducts=n&&n.data;setTimeout(function(){t.alignAllContainers()})}).then(function(){t.isLoading=!1})};t.alignAllContainers=function(){e(".details-container");e(".section1-container");e(".section2-container");e(".section3-container");e(".section4-container")};t.init=function(){i(function(){t.isinit=!0});t.initComparePanel()};t.init()}])}(jQuery),function(n){"use strict";angular.module("app").controller("rvRentalCtrl",["$scope","$http","$element",function(t,i,r){function u(n){return("0"+n).slice(-2)}function f(n){return u(n.getDate())+"/"+u(n.getMonth()+1)+"/"+n.getFullYear()}function h(n){return n.getFullYear()+u(n.getMonth()+1)+u(n.getDate())}var o=r.data("vehicleid"),c="https://bookings.canadream.com/CoraRest/CoraRest.dll/StartNewBooking?",s,e;t.showRvRental=!1;t.rvRentalError=!1;t.rvRentalErrorMsg="";t.selectedVehicle=null;t.selectedChildren=0;t.selectedAdults=2;t.selectedPickup=null;t.selectedPickupDate=null;t.selectedDropoff=null;t.selectedDropoffDate=null;t.maxDropoffDate=new Date((new Date).getTime()+63072e6);s=r.data("pickuplocations");t.Adults=[1,2,3,4,5,6];t.Children=[0,1,2];t.pickupdatepicker=jQuery(r).find(".rvrentalpickupdate:first");t.dropoffdatepicker=jQuery(r).find(".rvrentaldropoffdate:first");t.bookingError="";t.allPickupLocations=[];n.each(s,function(i,r){var f=r.Row,u=Object.create(null);n.each(f,function(n,t){u[t.Key=="CoraId"?"Key":"Value"]=t.Value});t.allPickupLocations.push(u)});t.selectPickup=function(n){t.selectedPickup=n;t.selectedDropoff||(t.selectedDropoff=n)};t.selectDropoff=function(n){t.selectedDropoff=n};t.selectAdult=function(n){t.selectedAdults=n};t.selectChild=function(n){t.selectedChildren=n};t.bookNow=function(){if(t.selectedPickup)if(t.selectedPickupDate)if(t.selectedDropoff)if(t.selectedDropoffDate)if(t.selectedDropoffDate<=t.selectedPickupDate)t.bookingError="Please ensure the Dropoff date is after the Pickup date";else{t.bookingError="";var n=c+"PickupLocation="+t.selectedPickup.Key+"&DropoffLocation="+t.selectedDropoff.Key+"&PickupDate="+h(t.selectedPickupDate)+"&DropoffDate="+h(t.selectedDropoffDate);n+="&Product="+o;i({method:"GET",url:n}).then(function(n){var i,r,u;n.data&&n.data.Error?t.bookingError=n.data.Error:n.data&&n.data.SessionId&&(i="",r="",window.bablic&&(i=window.bablic.getLocale(),i&&(r="&locale="+i)),u="https://bookings.canadream.com/Cora/Booking-Details/?SessionId="+n.data.SessionId+r,jQuery("body").data("isagent")?window.open(u,"_blank"):window.location.href=u)},function(n){console.log("Login Error");console.log(n)})}else t.bookingError="Please select a Dropoff Date";else t.bookingError="Please select a Dropoff Location";else t.bookingError="Please select a Pickup Date";else t.bookingError="Please select a Pickup Location"};t.init=function(){t.selectedPickupDate=null;t.pickupdatepicker.val("");t.selectedDropoffDate=null;t.dropoffdatepicker.val("");o&&(t.showRvRental=!0,jQuery(r).children("div.book-widget-content").show());i({method:"GET",url:"/CanaDreamCMS/Handlers/MaxBookableDate.ashx"}).then(function(n){n.data&&e(new Date(n.data.maxdateyear,n.data.maxdatemonth-1,n.data.maxdateday))},function(){e(new Date((new Date).getTime()+63072e6))})};e=function(n){t.pickupdatepicker.datepicker({format:"dd/mm/yyyy",startDate:f(new Date),endDate:f(new Date(n.getTime()-2592e5)),autoclose:!0,disableTouchKeyboard:!0}).on("changeDate",function(n){t.selectedPickupDate=n.date;var i=new Date(t.selectedPickupDate.getTime()+6048e5);i>new Date(2021,3,4)&&(i=new Date(2021,3,4));t.dropoffdatepicker.datepicker("setStartDate",new Date(t.selectedPickupDate.getTime()+2592e5));t.selectedDropoffDate||(t.dropoffdatepicker.datepicker("setDate",i),t.selectedDropoffDate=i)});t.dropoffdatepicker.datepicker({format:"dd/mm/yyyy",startDate:f(new Date),endDate:f(new Date(n.getTime())),autoclose:!0,disableTouchKeyboard:!0}).on("changeDate",function(n){t.selectedDropoffDate=n.date})};t.init()}])}(jQuery),function(){"use strict";angular.module("app").controller("rvSalesHomeCtrl",["$scope","$timeout","$http","$element",function(n,t,i,r){n.PromoOfferGuid=r.data("promoofferguid");n.url="/CanaDreamCMS/Handlers/RVSales.ashx?";n.allRVTypes=[];n.allLocations=[];n.allMinPrices=[];n.allMaxPrices=[];n.selectedRVType=null;n.selectedLocation=null;n.selectedMinPrice=null;n.selectedMaxPrice=null;n.selectRVType=function(t){n.selectedRVType=t};n.selectLocation=function(t){n.selectedLocation=t};n.selectMinPrice=function(t){n.selectedMinPrice=t};n.selectMaxPrice=function(t){n.selectedMaxPrice=t};n.search=function(){var i={rvType:n.selectedRVType,location:n.selectedLocation,minPrice:n.selectedMinPrice,maxPrice:n.selectedMaxPrice},t="/rv-sales/listing/#search";n.selectedRVType&&(t+="/rvtype="+n.selectedRVType.Value);n.selectedLocation&&(t+="/location="+n.selectedLocation.Value);n.selectedMinPrice&&(t+="/minprice="+n.selectedMinPrice.Value);n.selectedMaxPrice&&(t+="/maxprice="+n.selectedMaxPrice.Value);window.location.href=t};n.init=function(){i({method:"GET",url:n.url+"action=rvtypes"}).then(function(t){n.allRVTypes=t.data},function(n){console.log("RV Types Error");console.log(n)});i({method:"GET",url:n.url+"action=locations"}).then(function(t){n.allLocations=t.data},function(n){console.log("Locations Error");console.log(n)});i({method:"GET",url:n.url+"action=minprices"}).then(function(t){n.allMinPrices=t.data},function(n){console.log("Min Prices Error");console.log(n)});i({method:"GET",url:n.url+"action=maxprices"}).then(function(t){n.allMaxPrices=t.data},function(n){console.log("Max Prices Error");console.log(n)})};n.init()}])}(jQuery),function(){"use strict";angular.module("app").controller("rvSalesBannerWholesaleCtrl",["$scope","$timeout","$http","$element",function(n,t,i,r){n.PromoOfferGuid=r.data("promoofferguid");n.url="/CanaDreamCMS/Handlers/RVSales.ashx?";n.allRVTypes=[];n.selectedRVType=null;n.selectRVType=function(t){n.selectedRVType=t};n.search=function(){var i={rvType:n.selectedRVType},t="/wholesale/listing/#search";n.selectedRVType&&(t+="/rvtype="+n.selectedRVType.Value);window.location.href=t};n.init=function(){i({method:"GET",url:n.url+"action=wholesalervtypes"}).then(function(t){n.allRVTypes=t.data},function(n){console.log("RV Types Error");console.log(n)})};n.init()}])}(jQuery),function(n){"use strict";angular.module("app").controller("rvSalesListingCtrl",["$scope","$timeout","$http","$element","RVSales",function(t,i,r,u,f){if(t.PromoOfferGuid=u.data("promoofferguid"),t.rvSales={isLoading:!0},t.items=[],t.start=0,t.end=1e3,t.pageSize=1e3,t.url="/CanaDreamCMS/Handlers/RVSales.ashx?",t.hasPromo=!0,t.allRVTypes=[],t.allLocations=[],t.allMinPrices=[],t.allMaxPrices=[],t.selectedRVType=null,t.selectedLocation=null,t.selectedMinPrice=null,t.selectedMaxPrice=null,t.selectedRVTypeHash=null,t.selectedLocationHash=null,t.selectedMinPriceHash=null,t.selectedMaxPriceHash=null,t.selectRVType=function(n){t.rvSales.isLoading||(t.selectedRVType=n)},t.selectLocation=function(n){t.rvSales.isLoading||(t.selectedLocation=n)},t.selectMinPrice=function(n){t.rvSales.isLoading||(t.selectedMinPrice=n)},t.selectMaxPrice=function(n){t.rvSales.isLoading||(t.selectedMaxPrice=n)},t.getStartEnd=function(){(!t.end||isNaN(t.end))&&(t.end=0);t.start=t.end+1;t.end+=t.pageSize;return{start:t.start,end:t.end}},t.getSleeps=function(n){var t="n/a";return(n.SleepAdultCount||n.SleepChildCount)&&(t=((n.SleepAdultCount?n.SleepAdultCount:0)+(n.SleepChildCount?n.SleepChildCount:0)).toString()),t},t.getSeatbelts=function(n){var t="n/a";return n.SeatbeltCount&&(t=n.SeatbeltCount.toString()),t},t.getLength=function(n){var t="n/a";return n.ExtLengthImperial?t=n.ExtLengthImperial:n.ExtLength&&(t=n.ExtLength),t},t.getHeight=function(n){var t="n/a";return n.IntHeightImperial?t=n.IntHeightImperial:n.IntHeight&&(t=n.IntHeight),t},t.getColumnCss=function(n){return n.IsPromoOffer?"col-xs-12 col-md-8 col-lg-6 rv-ad no-animate promo-offer-html":"col-xs-12 col-sm-6 col-md-4 col-lg-3 rv-cell no-animate"},t.getThumb=function(n){if(n&&n.DefaultImageId)return"https://bookings.canadream.com/CORARest/CORARest.dll/GetRvSalesImage?Id="+n.DefaultImageId+"&H=440"},t.search=function(){t.rvSales.isLoading=!0;var n="#search";t.selectedRVType&&(n+="/rvtype="+t.selectedRVType.Value);t.selectedLocation&&(n+="/location="+t.selectedLocation.Value);t.selectedMinPrice&&(n+="/minprice="+t.selectedMinPrice.Value);t.selectedMaxPrice&&(n+="/maxprice="+t.selectedMaxPrice.Value);window.location.hash=n;t.doSearch()},t.hashChanged=function(){var n,i,r,u;t.rvSales.isLoading=!0;t.setSearchHashFilters();t.selectedRVType=null;t.selectedLocation=null;t.selectedMinPrice=null;t.selectedMaxPrice=null;t.selectedRVTypeHash&&(n=t.allRVTypes.find(function(n){return n.Value===t.selectedRVTypeHash}),t.selectedRVType=n);t.selectedLocationHash&&(i=t.allLocations.find(function(n){return n.Value===t.selectedLocationHash}),t.selectedLocation=i);t.selectedMinPriceHash&&(r=t.allMinPrices.find(function(n){return n.Value===t.selectedMinPriceHash}),t.selectedMinPrice=r);t.selectedMaxPriceHash&&(u=t.allMaxPrices.find(function(n){return n.Value===t.selectedMaxPriceHash}),t.selectedMaxPrice=u);t.doSearch()},t.doSearch=function(){var n={rvType:t.selectedRVType,location:t.selectedLocation,minPrice:t.selectedMinPrice,maxPrice:t.selectedMaxPrice};t.rvSales=new f(r,u,t.url+"promoofferguid="+t.PromoOfferGuid+"&",n);t.start=1;t.end=t.pageSize;t.rvSales.nextPage({start:t.start,end:t.end})},t.setSearchHashFilters=function(){var r,i,n;if(window.location.hash)for(t.selectedRVTypeHash=null,t.selectedLocationHash=null,t.selectedMinPriceHash=null,t.selectedMaxPriceHash=null,r=window.location.hash.split("/"),i=0;i<r.length;i++)if(r[i].indexOf("=")>0&&(n=r[i].split("="),n.length>1))switch(n[0]){case"rvtype":t.selectedRVTypeHash=n[1];break;case"location":t.selectedLocationHash=n[1];break;case"minprice":t.selectedMinPriceHash=n[1];break;case"maxprice":t.selectedMaxPriceHash=n[1]}},t.init=function(){r({method:"GET",url:t.url+"action=rvtypes"}).then(function(n){if(t.allRVTypes=n.data,t.selectedRVTypeHash){var i=t.allRVTypes.find(function(n){return n.Value===t.selectedRVTypeHash});t.selectedRVType=i}},function(n){console.log("RV Types Error");console.log(n)});r({method:"GET",url:t.url+"action=locations"}).then(function(n){if(t.allLocations=n.data,t.selectedLocationHash){var i=t.allLocations.find(function(n){return n.Value===t.selectedLocationHash});t.selectedLocation=i}},function(n){console.log("Locations Error");console.log(n)});r({method:"GET",url:t.url+"action=minprices"}).then(function(n){if(t.allMinPrices=n.data,t.selectedMinPriceHash){var i=t.allMinPrices.find(function(n){return n.Value===t.selectedMinPriceHash});t.selectedMinPrice=i}},function(n){console.log("Min Prices Error");console.log(n)});r({method:"GET",url:t.url+"action=maxprices"}).then(function(n){if(t.allMaxPrices=n.data,t.selectedMaxPriceHash){var i=t.allMaxPrices.find(function(n){return n.Value===t.selectedMaxPriceHash});t.selectedMaxPrice=i}},function(n){console.log("Max Prices Error");console.log(n)});t.setSearchHashFilters();window.setTimeout(function(){var n={rvType:t.selectedRVType,location:t.selectedLocation,minPrice:t.selectedMinPrice,maxPrice:t.selectedMaxPrice};t.rvSales=new f(r,u,t.url+"promoofferguid="+t.PromoOfferGuid+"&",n);t.rvSales.nextPage({start:t.start,end:t.end})},500)},t.init(),"onhashchange"in window)n(window).on("hashchange",function(){t.rvSales.isLoading||t.hashChanged()})}]);angular.module("app").factory("RVSales",function(){var n=function(n,t,i,r){this.http=n;this.htmlElement=t;this.items=[];this.busy=!1;this.atEnd=!1;this.noResults=!1;this.total=0;this.isLoading=!0;this.ErrorMsg="";this.url=i;this.rvType=r.rvType;this.location=r.location;this.minPrice=r.minPrice;this.maxPrice=r.maxPrice;this.start=r.start;this.end=r.end};return n.prototype.nextPage=function(n){if(!this.busy){this.busy=!0;this.htmlElement.find(".results-matches").hide();var t="action=search&timestamp="+(new Date).getTime();n&&(t+="&start="+n.start);n&&(t+="&end="+n.end);this.rvType&&(t+="&rvtype="+this.rvType.Value);this.location&&(t+="&location="+this.location.Value);this.minPrice&&(t+="&minprice="+this.minPrice.Value);this.maxPrice&&(t+="&maxprice="+this.maxPrice.Value);this.http({method:"GET",url:this.url+t}).then(function(n){var t=n.data.Data,i;if(this.total=n.data.TotalResults,t&&t.length>0)for(i=0;i<t.length;i++)this.items.push(t[i]);else this.noResults=!0;this.busy=!1;this.isLoading=!1;n.data.MoreResults||(this.atEnd=!0);this.htmlElement.find(".rvsales-listing").show();this.htmlElement.find(".rvsales-loading").hide();this.htmlElement.find(".results-matches").show()}.bind(this),function(n){console.log("General Error");console.log(n);this.ErrorMsg="Sorry.  This feature is temporarily unavailable.";this.noResults=!0;this.busy=!1;this.isLoading=!1;this.htmlElement.find(".rvsales-listing").show();this.htmlElement.find(".rvsales-loading").hide()}.bind(this))}},n})}(jQuery),function(n){"use strict";angular.module("app").controller("rvSalesTopPicksCtrl",["$scope","$timeout","$http","$element","RVTopPicks",function(t,i,r,u,f){if(t.PromoOfferGuid=u.data("promoofferguid"),t.rvSales={isLoading:!0},t.items=[],t.start=0,t.end=1e3,t.pageSize=1e3,t.url="/CanaDreamCMS/Handlers/RVSales.ashx?istoppick=true&",t.hasPromo=!0,t.allRVTypes=[],t.allLocations=[],t.allMinPrices=[],t.allMaxPrices=[],t.selectedRVType=null,t.selectedLocation=null,t.selectedMinPrice=null,t.selectedMaxPrice=null,t.selectedRVTypeHash=null,t.selectedLocationHash=null,t.selectedMinPriceHash=null,t.selectedMaxPriceHash=null,t.selectRVType=function(n){t.rvSales.isLoading||(t.selectedRVType=n)},t.selectLocation=function(n){t.rvSales.isLoading||(t.selectedLocation=n)},t.selectMinPrice=function(n){t.rvSales.isLoading||(t.selectedMinPrice=n)},t.selectMaxPrice=function(n){t.rvSales.isLoading||(t.selectedMaxPrice=n)},t.getStartEnd=function(){(!t.end||isNaN(t.end))&&(t.end=0);t.start=t.end+1;t.end+=t.pageSize;return{start:t.start,end:t.end}},t.getSleeps=function(n){var t="n/a";return(n.SleepAdultCount||n.SleepChildCount)&&(t=((n.SleepAdultCount?n.SleepAdultCount:0)+(n.SleepChildCount?n.SleepChildCount:0)).toString()),t},t.getSeatbelts=function(n){var t="n/a";return n.SeatbeltCount&&(t=n.SeatbeltCount.toString()),t},t.getLength=function(n){var t="n/a";return n.ExtLengthImperial?t=n.ExtLengthImperial:n.ExtLength&&(t=n.ExtLength),t},t.getHeight=function(n){var t="n/a";return n.IntHeightImperial?t=n.IntHeightImperial:n.IntHeight&&(t=n.IntHeight),t},t.getColumnCss=function(n){return n.IsPromoOffer?"col-xs-12 col-md-8 col-lg-6 rv-ad no-animate promo-offer-html":"col-xs-12 col-sm-6 col-md-4 col-lg-3 rv-cell no-animate"},t.getThumb=function(n){if(n&&n.DefaultImageId)return"https://bookings.canadream.com/CORARest/CORARest.dll/GetRvSalesImage?Id="+n.DefaultImageId+"&H=440"},t.search=function(){t.rvSales.isLoading=!0;var n="#search";t.selectedRVType&&(n+="/rvtype="+t.selectedRVType.Value);t.selectedLocation&&(n+="/location="+t.selectedLocation.Value);t.selectedMinPrice&&(n+="/minprice="+t.selectedMinPrice.Value);t.selectedMaxPrice&&(n+="/maxprice="+t.selectedMaxPrice.Value);window.location.hash=n;t.doSearch()},t.hashChanged=function(){var n,i,r,u;t.rvSales.isLoading=!0;t.setSearchHashFilters();t.selectedRVType=null;t.selectedLocation=null;t.selectedMinPrice=null;t.selectedMaxPrice=null;t.selectedRVTypeHash&&(n=t.allRVTypes.find(function(n){return n.Value===t.selectedRVTypeHash}),t.selectedRVType=n);t.selectedLocationHash&&(i=t.allLocations.find(function(n){return n.Value===t.selectedLocationHash}),t.selectedLocation=i);t.selectedMinPriceHash&&(r=t.allMinPrices.find(function(n){return n.Value===t.selectedMinPriceHash}),t.selectedMinPrice=r);t.selectedMaxPriceHash&&(u=t.allMaxPrices.find(function(n){return n.Value===t.selectedMaxPriceHash}),t.selectedMaxPrice=u);t.doSearch()},t.doSearch=function(){var n={rvType:t.selectedRVType,location:t.selectedLocation,minPrice:t.selectedMinPrice,maxPrice:t.selectedMaxPrice};t.rvSales=new RVSales(r,u,t.url+"promoofferguid="+t.PromoOfferGuid+"&",n);t.start=1;t.end=t.pageSize;t.rvSales.nextPage({start:t.start,end:t.end})},t.setSearchHashFilters=function(){var r,i,n;if(window.location.hash)for(t.selectedRVTypeHash=null,t.selectedLocationHash=null,t.selectedMinPriceHash=null,t.selectedMaxPriceHash=null,r=window.location.hash.split("/"),i=0;i<r.length;i++)if(r[i].indexOf("=")>0&&(n=r[i].split("="),n.length>1))switch(n[0]){case"rvtype":t.selectedRVTypeHash=n[1];break;case"location":t.selectedLocationHash=n[1];break;case"minprice":t.selectedMinPriceHash=n[1];break;case"maxprice":t.selectedMaxPriceHash=n[1]}},t.init=function(){t.setSearchHashFilters();t.rvSales=new f(r,u,t.url);t.rvSales.nextPage({start:t.start,end:t.end})},t.init(),"onhashchange"in window)n(window).on("hashchange",function(){t.rvSales.isLoading||t.hashChanged()})}]);angular.module("app").factory("RVTopPicks",function(){var n=function(n,t,i){this.http=n;this.htmlElement=t;this.items=[];this.busy=!1;this.atEnd=!1;this.noResults=!1;this.total=0;this.isLoading=!0;this.ErrorMsg="";this.url=i;this.start=0;this.end=100};return n.prototype.nextPage=function(n){if(!this.busy){this.busy=!0;this.htmlElement.find(".results-matches").hide();var t="action=toppick&timestamp="+(new Date).getTime();n&&(t+="&start="+n.start);n&&(t+="&end="+n.end);this.http({method:"GET",url:this.url+t}).then(function(n){var t=n.data.Data,i;if(this.total=n.data.TotalResults,t&&t.length>0)for(i=0;i<t.length;i++)this.items.push(t[i]);else this.noResults=!0;this.busy=!1;this.isLoading=!1;n.data.MoreResults||(this.atEnd=!0);this.htmlElement.find(".rvsales-listing").show();this.htmlElement.find(".rvsales-loading").hide();this.htmlElement.find(".results-matches").show();window.setTimeout("$('.rv-top-picks-carousel').flickity({ 'cellAlign': 'center', 'wrapAround': '> 5', 'prevNextButtons': true, 'adaptiveHeight': true})",250)}.bind(this),function(n){console.log("General Error");console.log(n);this.ErrorMsg="Sorry.  This feature is temporarily unavailable.";this.noResults=!0;this.busy=!1;this.isLoading=!1;this.htmlElement.find(".rvsales-listing").show();this.htmlElement.find(".rvsales-loading").hide()}.bind(this))}},n})}(jQuery),function(n){"use strict";angular.module("app").controller("rvSalesWholesaleListingCtrl",["$scope","$timeout","$http","$element","RVSalesWholesale",function(t,i,r,u,f){if(t.PromoOfferGuid=u.data("promoofferguid"),t.rvSales={isLoading:!0},t.items=[],t.start=0,t.end=100,t.pageSize=100,t.url="/CanaDreamCMS/Handlers/RVSales.ashx?",t.hasPromo=!0,t.allRVTypes=[],t.selectedRVType=null,t.selectedRVTypeHash=null,t.selectRVType=function(n){t.rvSales.isLoading||(t.selectedRVType=n)},t.getStartEnd=function(){(!t.end||isNaN(t.end))&&(t.end=0);t.start=t.end+1;t.end+=t.pageSize;return{start:t.start,end:t.end}},t.getSleeps=function(n){var t="n/a";return(n.SleepAdultCount||n.SleepChildCount)&&(t=((n.SleepAdultCount?n.SleepAdultCount:0)+(n.SleepChildCount?n.SleepChildCount:0)).toString()),t},t.getSeatbelts=function(n){var t="n/a";return n.SeatbeltCount&&(t=n.SeatbeltCount.toString()),t},t.getLength=function(n){var t="n/a";return n.ExtLengthImperial?t=n.ExtLengthImperial:n.ExtLength&&(t=n.ExtLength),t},t.getHeight=function(n){var t="n/a";return n.IntHeightImperial?t=n.IntHeightImperial:n.IntHeight&&(t=n.IntHeight),t},t.getColumnCss=function(n){return n.IsPromoOffer?"col-xs-12 col-md-8 col-lg-6 rv-ad no-animate promo-offer-html":"col-xs-12 col-sm-6 col-md-4 col-lg-3 rv-cell no-animate"},t.getThumb=function(n){if(n&&n.DefaultImageId)return"https://bookings.canadream.com/CORARest/CORARest.dll/GetRvSalesImage?Id="+n.DefaultImageId+"&H=440"},t.search=function(){t.rvSales.isLoading=!0;var n="#search";t.selectedRVType&&(n+="/rvtype="+t.selectedRVType.Value);window.location.hash=n;t.doSearch()},t.hashChanged=function(){if(t.rvSales.isLoading=!0,t.setSearchHashFilters(),t.selectedRVType=null,t.selectedRVTypeHash){var n=t.allRVTypes.find(function(n){return n.Value===t.selectedRVTypeHash});t.selectedRVType=n}t.doSearch()},t.doSearch=function(){var n={rvType:t.selectedRVType};t.rvSales=new f(r,u,t.url+"promoofferguid="+t.PromoOfferGuid+"&",n);t.start=1;t.end=t.pageSize;t.rvSales.nextPage({start:t.start,end:t.end})},t.setSearchHashFilters=function(){var i,n,r;if(window.location.hash)for(t.selectedRVTypeHash=null,i=window.location.hash.split("/"),n=0;n<i.length;n++)if(i[n].indexOf("=")>0&&(r=i[n].split("="),r.length>1))switch(r[0]){case"rvtype":t.selectedRVTypeHash=r[1]}},t.init=function(){r({method:"GET",url:t.url+"action=wholesalervtypes"}).then(function(n){if(t.allRVTypes=n.data,t.selectedRVTypeHash){var i=t.allRVTypes.find(function(n){return n.Value===t.selectedRVTypeHash});t.selectedRVType=i}},function(n){console.log("RV Types Error");console.log(n)});t.setSearchHashFilters();window.setTimeout(function(){var n={rvType:t.selectedRVType};t.rvSales=new f(r,u,t.url+"promoofferguid="+t.PromoOfferGuid+"&",n);t.rvSales.nextPage({start:t.start,end:t.end})},500)},t.init(),"onhashchange"in window)n(window).on("hashchange",function(){t.rvSales.isLoading||t.hashChanged()})}]);angular.module("app").factory("RVSalesWholesale",function(){var n=function(n,t,i,r){this.http=n;this.htmlElement=t;this.items=[];this.busy=!1;this.atEnd=!1;this.noResults=!1;this.total=0;this.isLoading=!0;this.ErrorMsg="";this.url=i;this.rvType=r.rvType;this.start=r.start;this.end=r.end};return n.prototype.nextPage=function(n){if(!this.busy){this.busy=!0;this.htmlElement.find(".results-matches").hide();var t="action=searchwholesale&timestamp="+(new Date).getTime();n&&(t+="&start="+n.start);n&&(t+="&end="+n.end);this.rvType&&(t+="&rvtype="+this.rvType.Value);this.http({method:"GET",url:this.url+t}).then(function(n){var t=n.data.Data,i;if(this.total=n.data.TotalResults,t&&t.length>0)for(i=0;i<t.length;i++)this.items.push(t[i]);else this.noResults=!0;this.busy=!1;this.isLoading=!1;n.data.MoreResults||(this.atEnd=!0);this.htmlElement.find(".rvsales-listing").show();this.htmlElement.find(".rvsales-loading").hide();this.htmlElement.find(".results-matches").show()}.bind(this),function(n){console.log("General Error");console.log(n);this.ErrorMsg="Sorry.  This feature is temporarily unavailable.";this.noResults=!0;this.busy=!1;this.isLoading=!1;this.htmlElement.find(".rvsales-listing").show();this.htmlElement.find(".rvsales-loading").hide()}.bind(this))}},n})}(jQuery),function(n){"use strict";angular.module("app").controller("rvSalesDetailsCtrl",["$scope","$timeout","$http","$element",function(t,i,r,u){function e(){if(!jQuery(".pswp:first").length){var n="";n+='<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">';n+='    <div class="pswp__bg"><\/div>';n+='    <div class="pswp__scroll-wrap">';n+='        <div class="pswp__container">';n+='            <div class="pswp__item"><\/div>';n+='            <div class="pswp__item"><\/div>';n+='            <div class="pswp__item"><\/div>';n+="        <\/div>";n+='        <div class="pswp__ui pswp__ui--hidden">';n+='            <div class="pswp__top-bar">';n+='                <div class="pswp__counter"><\/div>';n+='                <button class="pswp__button pswp__button--close" title="Close (Esc)"><\/button>';n+='                <button class="pswp__button pswp__button--share" title="Share"><\/button>';n+='                <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"><\/button>';n+='                <button class="pswp__button pswp__button--zoom" title="Zoom in/out"><\/button>';n+='                <div class="pswp__preloader">';n+='                    <div class="pswp__preloader__icn">';n+='                        <div class="pswp__preloader__cut">';n+='                            <div class="pswp__preloader__donut"><\/div>';n+="                        <\/div>";n+="                    <\/div>";n+="                <\/div>";n+="            <\/div>";n+='            <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">';n+='                <div class="pswp__share-tooltip"><\/div>';n+="            <\/div>";n+='            <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)"><\/button>';n+='            <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)"><\/button>';n+='            <div class="pswp__caption">';n+='               <div class="pswp__caption__center"><\/div>';n+="            <\/div>";n+="        <\/div>";n+="    <\/div>";n+="<\/div>";jQuery("body").append(n)}}t.baseImgUrl="https://bookings.canadream.com/CORARest/CORARest.dll/GetRvSalesImage?";t.unitId=u.data("unitid");t.price=u.data("price");var f=n.map(u.data("rvimages").split(","),function(n){return parseInt(n,10)});t.rvImages=[];angular.forEach(f,function(n){t.rvImages.push({src:t.baseImgUrl+"Id="+n,msrc:t.baseImgUrl+"Id="+n+"&h=300"})});t.selectedImage=t.rvImages&&t.rvImages[0];t.loanCalc={Years:10,Rate:6,Amount:t.price,Monthly:0,ErrorMsg:""};t.loanCalcYears=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25];t.calculateLoan=function(n){n.preventDefault();var r=parseInt(t.loanCalc.Years),i=parseFloat(t.loanCalc.Rate),u=parseFloat(t.loanCalc.Amount);isNaN(i)?t.loanCalc.ErrorMsg="Rate must be a percentage":i<0||i>30?t.loanCalc.ErrorMsg="Rate must be between 0 and 30%":(t.loanCalc.Monthly=i/1200*u/(1-Math.pow(1+i/1200,-Math.abs(r)*12)),console.log(t.loanCalc.Monthly))};t.init=function(){e()};t.init();t.openPhotoSwipe=function(n){for(var r=[],i=0;i<t.rvImages.length;i++)r.push({src:t.rvImages[i].src,msrc:t.rvImages[i].msrc,w:800,h:600});var f=document.querySelectorAll(".pswp")[0],e={index:n,galleryUID:jQuery(u).attr("id"),getThumbBoundsFn:function(n){var e=t.rvImages.indexOf(t.selectedImage),r=e==n?jQuery(u).find(".main-view")[0]:jQuery(u).find(".image-nav-item:eq("+n+") .image-nav-item-inner")[0],f,i;return n>0&&!r&&(r=jQuery(u).find(".image-nav-item:last .image-nav-item-inner")[0]),f=window.pageYOffset||document.documentElement.scrollTop,i=r.getBoundingClientRect(),{x:i.left,y:i.top+f,w:i.width}}},o=new PhotoSwipe(f,window.PhotoSwipeUI_Default,r,e);o.init()};t.selectImage=function(n,i,r){r?t.openPhotoSwipe(i):t.selectedImage=n}}]);angular.module("app").controller("loanCalculatorCtrl",["$scope","$element",function(n){n.Message="One";n.Message2="Two";n.loanCalc={Years:10,Rate:6,Amount:0,Monthly:0,ErrorMsg:""};n.loanCalcYears=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25];n.calculateLoan=function(t){console.log("Calculating");t.preventDefault();var r=parseInt(n.loanCalc.Years),i=parseFloat(n.loanCalc.Rate),u=parseFloat(n.loanCalc.Amount);isNaN(i)?n.loanCalc.ErrorMsg="Rate must be a percentage":i<0||i>30?n.loanCalc.ErrorMsg="Rate must be between 0 and 30%":(n.loanCalc.Monthly=i/1200*u/(1-Math.pow(1+i/1200,-Math.abs(r)*12)),console.log(n.loanCalc.Monthly))};n.init=function(){console.log("Calculator Loading...")};n.init()}])}(jQuery),function(){"use strict";angular.module("app").controller("rvSalesMoreCtrl",["$scope","$timeout","$http","$element",function(n,t,i,r){n.UnitId=r.data("unitid");n.isLoading=!0;n.items=[];n.url="/CanaDreamCMS/Handlers/RVSales.ashx?";n.getSleeps=function(n){var t="n/a";return(n.SleepAdultCount||n.SleepChildCount)&&(t=((n.SleepAdultCount?n.SleepAdultCount:0)+(n.SleepChildCount?n.SleepChildCount:0)).toString()),t};n.getSeatbelts=function(n){var t="n/a";return n.SeatbeltCount&&(t=n.SeatbeltCount.toString()),t};n.getLength=function(n){var t="n/a";return n.ExtLengthImperial?t=n.ExtLengthImperial:n.ExtLength&&(t=n.ExtLength),t};n.getHeight=function(n){var t="n/a";return n.IntHeightImperial?t=n.IntHeightImperial:n.IntHeight&&(t=n.IntHeight),t};n.getThumb=function(n){if(n&&n.DefaultImageId)return"https://bookings.canadream.com/CORARest/CORARest.dll/GetRvSalesImage?Id="+n.DefaultImageId+"&H=440"};n.search=function(){n.rvSales.isLoading=!0;var t={rvType:n.selectedRVType,location:n.selectedLocation,minPrice:n.selectedMinPrice,maxPrice:n.selectedMaxPrice};n.rvSales=new RVSales(i,r,n.url+"promoofferguid="+n.PromoOfferGuid+"&",t);n.start=1;n.end=n.pageSize;n.rvSales.nextPage({start:n.start,end:n.end})};n.init=function(){i({method:"GET",url:n.url+"action=morervs&unitid="+n.UnitId}).then(function(t){n.items=t.data.Data;r.find(".morervs-listing").show();r.find(".morervs-loading").hide()},function(n){console.log("General Error");console.log(n);r.find(".morervs-listing").show();r.find(".morervs-loading").hide()})};n.init()}])}(jQuery),function(){"use strict";angular.module("app").controller("rvSalesFormCtrl",["$scope","$timeout","$http","$element",function(n,t,i,r){n.unitId=r.data("unitid");n.url="/CanaDreamCMS/Handlers/RVSales.ashx?";n.init=function(){i({method:"GET",url:n.url+"action=details&unitid="+n.unitId}).then(function(n){r.find(".unitname .form-control").val(n.data.KenticoName).prop("readonly","readonly");console.log(r.find(".unitname"));console.log(n.data.KenticoName)},function(n){console.log("RV Details Error");console.log(n)})};n.init()}])}(jQuery),function(n){"use strict";angular.module("app").controller("wholeSaleLoginCtrl",["$scope","$timeout","$http","$element",function(t,i,r,u){t.lookupsUrl="/CanaDreamCMS/Handlers/HotDeals.ashx?";t.errorMessage="";t.successMessage="";t.loginForm={Ajax:1,RaNum:"",LastName:"",Location:"",DatePickup:"",Pw:!1};t.pickupdatepicker=null;t.location="Location";t.allLocations=[];t.selectLocation=function(n){t.selectedLocation=n;t.loginForm.Location=n.LocationId};t.login=function(){if(t.errorMessage="",t.loginForm.LastName)if(t.loginForm.RaNum)if(t.loginForm.Location)if(t.loginForm.DatePickup){var n="https://sys.canadream.com/CoraV3/CoraWeb.dll/AdvanceCheckIn?Ajax="+t.loginForm.Ajax+"&RaNum="+t.loginForm.RaNum+"&LastName="+t.loginForm.LastName+"&Location="+t.loginForm.Location+"&DatePickup="+t.loginForm.DatePickup+"&pw="+t.loginForm.Pw;r({method:"GET",url:n}).then(function(n){n.data&&n.data.Error?t.errorMessage=n.data.Error:n.data.Success&&n.data.RedirectURL&&(window.location.href=n.data.RedirectURL,t.successMessage="Loading...")},function(n){console.log("Login Error");console.log(n)})}else t.errorMessage="Pickup Date is required.";else t.errorMessage="Location is required.";else t.errorMessage="Booking Reference (RA) is required.";else t.errorMessage="LastName is required."};t.init=function(){r({method:"GET",url:t.lookupsUrl+"action=locations"}).then(function(n){t.allLocations=n.data},function(n){console.log("Locations Error");console.log(n)});t.pickupdatepicker=n('input[name="ws_login_pickup_date"]',n(u));t.pickupdatepicker.datepicker({format:"dd/mm/yyyy",autoclose:!0,disableTouchKeyboard:!0});n(".dropdown-pickup-location a",n(u)).click(function(){t.location=n(this).text();t.loginForm.Location=n(this).data("locationid")})};t.init()}])}(jQuery),function(){"use strict";angular.module("app").controller("clubDestinationsCtrl",["$scope","$timeout","$http","$element",function(n,t,i,r){n.destinationid=r.data("destinationid");n.items=[];n.start=1;n.end=6;n.pageSize=6;n.total=0;n.noResults=!1;n.ErrorMsg="";n.moreResults=!1;n.url="/CanaDreamCMS/Handlers/ClubDestinations.ashx?";n.getThumb=function(n){if(n&&n.PrimaryImageId)return"https://bookings.canadream.com/CoraRest/CoraRest.dll/GetClubImage?Id="+n.PrimaryImageId};n.load=function(){var t=n.url+"destinationid="+n.destinationid+"&action=list&start="+n.start+"&end="+n.end;i({method:"GET",url:t}).then(function(t){var i,u;if(r.find(".club-load-more").show(),i=t.data.Data,n.total=t.data.TotalResults,i&&i.length>0){for(u=0;u<i.length;u++)n.items.push(i[u]);n.moreResults=t.data.MoreResults;n.start+=n.pageSize;n.end+=n.pageSize}else n.noResults=!0,n.moreResults=!1;r.find(".club-listing").show();r.find(".club-loading").hide()},function(t){console.log("General Error");console.log(t);n.ErrorMsg="Sorry.  This feature is temporarily unavailable.";n.noResults=!0;r.find(".club-listing").show();r.find(".club-loading").hide()})};n.init=function(){n.load()};n.init()}])}(jQuery),function(){"use strict";angular.module("app").controller("agentPortalLoginCtrl",["$scope","$timeout","$http","$element",function(n,t,i,r){var f=jQuery(r).data("iswholesale"),e=f?"/CanaDreamCMS/Handlers/WholesaleLogin.ashx":"/CanaDreamCMS/Handlers/AgentPortalLogin.ashx",o="/CanaDreamCMS/Handlers/AgentPortalLogin.ashx?ForgotPassword";n.errorMessage="";n.successMessage="";n.loginForm={UserName:"",Password:"",ForgotUserName:""};n.isLoading=!1;n.isEmailing=!1;n.isShowForgotLogin=!1;n.login=function(){n.successMessage="";n.errorMessage="";n.isLoading=!1;n.loginForm.UserName?n.loginForm.Password?(n.isLoading=!0,i.post(e,{UserName:n.loginForm.UserName,Password:n.loginForm.Password}).then(function(t){t&&t.data&&t.data.Status==1?window.location=jQuery(r).data("redirecturl")||"/":n.errorMessage=t&&t.data&&t.data.Message||"Sorry we could not authenticate you."}).then(function(){n.isLoading=!1})):n.errorMessage="Password is required.":n.errorMessage="Username is required."};n.toggleIsShowForgotLogin=function(){return n.isShowForgotLogin=!n.isShowForgotLogin,!1};n.forgotLogin=function(){n.successMessage="";n.errorMessage="";n.isEmailing=!1;n.loginForm.ForgotUserName?(n.isEmailing=!0,i.post(o,{UserName:n.loginForm.ForgotUserName}).then(function(t){t&&t.data&&t.data.Success?(n.successMessage=t.data.Message,n.isShowForgotLogin=!1):n.errorMessage=t.data.ErrorMessage}).then(function(){n.isEmailing=!1})):n.errorMessage="Username is required."};n.init=function(){};n.init()}])}(jQuery)