(function(n){n.AccountExist=n.MasterView.extend({el:".m_account_exist",init:function(){var t=this;t.$el.modal("show");t.renderView();_utils.submitForm(n.$body,"#webbookLogin_lightbox",{before:function(){return t.validateForm()}});$("#forgotPassword-lightbox").on("click",function(){t.$el.modal("hide");$('a[href="#forgotPassword"]').click()});this.initFormValidation();n.socialmedia.pageInit()},cleanup:function(){this.undelegateEvents()},renderView:function(){var i=n.templates[this.model.tpl],r=this.$el.find(".tpl_header-target"),t={};return t.loginTypeStena=this.model.loginType,this.model.tpl.indexOf("active")>0&&(t.loginTypeStena?t.userName=this.model.userName:(t.anySocialLogin=this.model.anySocialLogin,t.domain=this.model.domain,t.showFacebookSocialLogin=this.model.showFacebookSocialLogin,t.showGoogleSocialLogin=this.model.showGoogleSocialLogin,t.showLiveSocialLogin=this.model.showLiveSocialLogin,t.facebookOAuthUrl=this.model.facebookOAuthUrl,t.googleOAuthUrl=this.model.googleOAuthUrl,t.liveOAuthUrl=this.model.liveOAuthUrl,t.facebookProvider=this.model.facebookProvider,t.googleProvider=this.model.googleProvider,t.liveProvider=this.model.liveProvider,t.facebookAppId=this.model.facebookAppId,t.googleAppId=this.model.googleAppId,t.liveAppId=this.model.liveAppId)),this.render(r,i,t),_utils.renderToolTips(this.$el),this},render:function(n,t,i){n.html(t(i))},initFormValidation:function(){this.form=_utils.initValidation(this.el,{addClassRules:!0})},validateForm:function(){var n=this.form.validate();return n?(this.validationStatus=this.options.validationHandler.exec(n,{el:this.el,calloutPosition:"bottom"}),!1):!0}})})(window.STENA=window.STENA||{}),function(n,t,i){n.ActivityCalendarNew=n.ActivityCalendarNew||{};n.ActivityCalendarNew={el:".m_activity_calendar",activityObjects:[],availiableFerries:[],globalWeekdayFilter:[],globalTypeFilter:[],globalFerryFilter:[],globalThemeFilter:[],globalDefaultStartDate:null,globalDefaultEndDate:null,globalStartDate:null,globalEndDate:null,container:null,usingModal:!1,addFerryNameToHeader:!1,availiableFilters:["ferry","theme","date_from","date_to","weekdays","category","hide_filter"],weekdays:[],categories:[],ferries:[],reloadActivities:!1,init:function(){var n=this;t(this.el).length>0&&t(this.el).hasClass("new_activity_calendar")&&(t("#no-activity-objects").addClass("hide"),n.loadActivities(),n.container=t("html, body"))},initFromCalendarSpot:function(n){var i=this,r=t("#activityCalendarModalWindowOverlay"),u=t("#activityCalendarModalWindow");n&&n.indexOf("http")===-1&&(n=window.location.origin+n);r&&u&&(r.removeClass("hide"),r.addClass("show"),u.load(n+" .new_activity_calendar",function(t,r){if(r==="success"){var u=n&&n.split("?")[1];i.loadActivities(u)}}),i.usingModal=!0,i.container=t("#activityCalendarModalWindow"))},calculateWidth:function(){var n=t(".activity-calender-container").innerWidth();n<700?t(".activity-calender-container").addClass("medium"):n>=700&&t(".activity-calender-container").addClass("large")},loadActivities:function(n){var i,r,u,f;t(".activity-calender-container").addClass("hide");t(".weekdays-filter-area, .category-filter-area, .ferry-filter-area").removeClass("hide");t("#loader").removeClass("hide");i=this;i.addFerryNameToHeader=!1;i.activityObjects=[];r=i.getUrlParams(n);u=i.getCurrentLanguage();f="?lang="+u+i.prepareParameters(r);const e="/services/ActivityCalendarService.aspx"+f;t.ajax({cache:!1,url:e,dataType:"json",success:function(n){i.setUpContext(n);i.activityObjects=n.activities.map(function(n){return{cmsname:n.cmsName,title:n.name,type:n.category,dataType:n.categoryKey,image:n.imageSrc,keywords:[],startDate:new Date(n.startDate),endDate:new Date(n.endDate),weekday:n.weekdays.map(function(n){return n.code}),desc:n.description,ref:null,events:n.events,ferries:n.ferries.map(function(n){return n.code}),theme:n.theme||null,themeKey:n.themeKey,schedule:n.schedule,readMoreURL:n.readMoreUrl&&n.readMoreUrl.Url?n.readMoreUrl:null}});i.setDefaultDates();var r=t("#activitycalendar-datepicker").datepicker().data("datepicker");r&&(r.selectedDates=[new Date(n.filter.dateFrom),new Date(n.filter.dateTo)])}}).done(function(){i.reloadActivities||i.setupEvents();t("#loader").addClass("hide");t(".activity-calender-container").removeClass("hide");i.calculateWidth();i.createObjects()}).fail(function(){console.log("--Error loading activities")})},prepareParameters:function(n){var i=this,r="";return n.hide_filter&&n.hide_filter==="true"&&t("#filter-search-area").addClass("filter-area-hide"),n.ferry&&(r+="&ferry="+n.ferry,t(".ferry-filter-area").addClass("hide"),t(".filter-type.ferry-filter-area").remove(),i.addFerryNameToHeader=!0),n.date_from&&i.reloadActivities===!1&&(r+="&date_from="+n.date_from,t(".filter-type.date-range").remove()),n.date_to&&i.reloadActivities===!1&&(r+="&date_to="+n.date_to,t(".filter-type.date-range").remove()),n.weekdays&&(r+="&weekday="+n.weekdays,t(".filter-type.weekdays-filter-area").remove()),n.category&&(r+="&category="+n.category,t(".filter-type.category-filter-area").remove()),n.theme&&(r+="&theme="+n.theme,t(".filter-type.theme-filter-area").remove()),i.reloadActivities&&(r+="&date_from="+i.toISODate(i.globalStartDate)+"&date_to="+i.toISODate(i.globalEndDate)),r},getCurrentLanguage:function(){return t(".m_activity_calendar.new_activity_calendar").data("lang")},scrollToElement:function(n){var i=this,r=!1,u=0,f;t(window).width()<768&&(r=!0);f=r?-90:0;n.length&&(u=i.usingModal?n.offset().top-i.container.offset().top+this.container.scrollTop():n.offset().top,i.container.stop().animate({scrollTop:u+f+"px"},500))},setUpContext:function(n){this.addFerryNameToHeader&&n.context.ferries[0]&&(t("#additional-header").text(" "+n.context.ferries[0].name),t("#additional-header").removeClass("hide"));this.globalDefaultStartDate=new Date(n.filter.dateFrom);this.globalDefaultEndDate=new Date(n.filter.dateTo);document.getElementById("date-span")&&(document.getElementById("date-span").innerHTML=n.filter.displayDateFrom+" - "+n.filter.displayDateTo);this.clearAllFilters();this.clearSearch();this.ferries=n.context.ferries;this.categories=n.context.categories;this.weekdays=n.context.weekdays;this.themes=n.context.themes;this.generateFilter(this.ferries,"ferry",t("#ferries-holder"));this.generateFilter(this.categories,"type",t("#types-holder"));this.generateFilter(this.weekdays,"weekday",t("#weekdays-holder"));this.generateFilter(this.themes,"theme",t("#themes-holder"))},setupEvents:function(){var n=this,i;t("#filter-btn").off().click(function(){n.showFilter()});t("#filter-btn-close").off().click(function(){n.hideFilter()});t(".clearDatesLink").off().click(function(){n.handleFilter("clearDates")});t("#active-filters").on("click","a.fliterOption",function(n){var t=n.currentTarget;document.getElementById(t.getAttribute("data-id")).click()});t("#active-filters").on("click","a#clearSearch",function(){n.handleFilter("clearSearch")});t("#clear-all-link").off().click(function(){n.handleFilter("clearAll")});t("#search-box").on("focus",function(){n.SearchFocus()});t("#search-box").on("keyup",function(){n.handleFilter("search")});t("#weekdays-holder").on("click","li .weekday-filter",function(){n.handleFilter("weekday")});t("#types-holder").on("click","li .type-filter",function(){n.handleFilter("type")});t("#ferries-holder").on("click","li .ferry-filter",function(){n.handleFilter("ferry")});t("#themes-holder").on("click","li .theme-filter",function(){n.handleFilter("theme")});t("#close-dialog").off().click(function(){n.closeDialog()});t("#activity-schedule").on("click",".schedule-month-header",function(){var n=t(this).hasClass("active");t(".schedule-month-header").removeClass("active");t(".schedule-month-body").addClass("closed");t(".arrow.active").removeClass("active");n||(t(this).addClass("active"),t(this).children(".arrow").addClass("active"),t(this).next(".schedule-month-body").removeClass("closed"))});i={language:n.getCurrentLanguage(),toggleSelected:!1,autoClose:!0,range:!0,startDate:n.globalDefaultStartDate,endDate:n.globalDefaultEndDate,minDate:new Date,classes:"activityPicker",multipleDatesSeparator:" - ",onSelect:function(t,i){if(i){if(i.length===1&&(n.globalStartDate=new Date(i[0]),n.globalEndDate=null),i.length===2&&(n.globalStartDate=i[0],n.globalEndDate=new Date(i[1].setSeconds(i[1].getSeconds()+86399)),n.getDateWithoutTime(n.globalStartDate)<n.getDateWithoutTime(n.globalDefaultStartDate)||n.getDateWithoutTime(n.globalEndDate)>n.getDateWithoutTime(n.globalDefaultEndDate)))return n.reloadActivities=!0,n.loadActivities(),!1;n.handleFilter("date")}},onHide:function(i){var r=i,u;r.selectedDates.length===1&&(r.selectedDates[1]=r.selectedDates[0],n.globalEndDate=new Date(n.globalStartDate),n.globalEndDate.setHours(23,59,0,0),u=t("#activitycalendar-datepicker").datepicker().data("datepicker"),u.update("minRange",n.globalStartDate),u.update("maxRange",n.globalEndDate),t(".-range-from-").addClass("-range-to-"),n.handleFilter("date"))}};t("#activitycalendar-datepicker").datepicker(i)},setDefaultDates:function(){var t,n;this.globalStartDate=null;this.globalEndDate=null;t=document.getElementById("activitycalendar-datepicker");t&&(t.value="");n=document.getElementById("label-clearDates");n&&n.parentNode.removeChild(n);this.checkFilterLabels(null)},SearchFocus:function(){this.hideFilter()},createObjects:function(){var i,n;if(this.activityObjects!==null&&this.activityObjects.length>0){if(t("#no-activity-objects").addClass("hide"),i=document.getElementById("activity-objects"),i)for(i.innerHTML="",n=0;n<this.activityObjects.length;n++){var r=document.createElement("li"),s=this.activityObjects[n].cmsname||"",h=this.activityObjects[n].ferries||"",f=this.activityObjects[n].title||"",e=this.activityObjects[n].type||"",c=this.activityObjects[n].image||"",o=this.activityObjects[n].theme||"",l=this.activityObjects[n].themekey||"",u="<a href=\"javascript:void(0);\" data-event='ev' data-evcategory='ActivityCalendar' data-evlabel='"+s+"|"+h+"|"+e+"|"+l+'\'><div class="img-holder"><img src ="'+c+'" alt="'+f+'" /><\/div>';o&&(u+='<span class="tag">'+o+"<\/span>");u+="<h4>"+f+"<span>"+e+"<\/span><\/h4><\/a>";r.innerHTML=u;r.setAttribute("class","activity-object");r.setAttribute("id","activityObj"+n);this.activityObjects[n].ref="activityObj"+n;i.appendChild(r)}}else this.hideFilter(),t("#no-activity-objects").removeClass("hide"),t(".weekdays-filter-area, .category-filter-area, .ferry-filter-area").addClass("hide");this.initiateClickEventOnbjects()},generateFilter:function(n,t,i){var r,u,f;for(i.empty(),r=0;r<n.length;r++)u=n[r],f='<li><input type="checkbox" name="'+t+'" class="'+t+'-filter" id="'+t+"-"+(r+1)+'" dataLabel="'+u.name+'" value="'+u.code+'"><label for="'+t+"-"+(r+1)+'"><span class="checkmark"><\/span>'+u.name+"<\/label><\/li>",u.code&&i.append(f);n.length===0?i.closest(".filter-type").addClass("hide"):i.closest(".filter-type").removeClass("hide")},initiateClickEventOnbjects:function(){var n=this;t("li.activity-object").off().click(function(i){n.show(i.currentTarget.id,t(this),n)})},closeDialog:function(){var n=this;t("li.activity-object.dimmed").removeClass("dimmed");t("#activity-dialog").removeClass("active");n.scrollToElement(t("li.current-activity"));setTimeout(function(){t("#selected-activity-dialog").remove();t("li.current-activity").removeClass("current-activity")},500)},show:function(n,i,r){var u,f,e,c,l;for(t("#selected-activity-dialog").remove(),t("li.current-activity").removeClass("current-activity"),t("li.activity-object").addClass("dimmed"),u=0;u<r.activityObjects.length;u++)if(r.activityObjects[u].ref===n){var y=r.activityObjects[u].title,p=r.activityObjects[u].type,w=r.activityObjects[u].image,a=r.activityObjects[u].desc,o=r.activityObjects[u].readMoreURL||null;o&&(a+="<br /><a class='btn btn-normal btn-success btn-has-arrow' href='"+o.Url+"' target='"+o.Target+"'>"+o.Text+"<span class='arrow arrow74'><\/span><\/a>");var b=document.getElementById("dialog-title"),k=document.getElementById("dialog-type"),d=document.getElementById("dialog-body"),g=document.getElementById("dialog-image");b.innerHTML=y;k.innerHTML=p;d.innerHTML=a;g.setAttribute("src",w);f="";e=!1;r.activityObjects[u].schedule.Months.forEach(function(n){f+="<div class='schedule-month-header"+(e?"":" active")+"'>"+n.Label+"<span class='arrow"+(e?"":" active")+"'><\/span><\/div>";f+="<div class='schedule-month-body"+(e?" closed":"")+"'>";e=!0;n.Ferries.forEach(function(n){f+="<div class='schedule-ferry'>"+n.FerryName+"<\/div>";f+="<ul class='schedule-occasions'>";n.Occasions.forEach(function(n){f+="<li class='schedule-occasion'>"+n.OccasionDate+", "+n.OccasionWeekday+"<span>"+n.OccasionTimes+"<\/span><\/li>"});f+="<\/ul>"});f+="<\/div>"});c=document.getElementById("activity-schedule");c.innerHTML=f}var h=t("ul li.activity-object"),v=r.calculateActivityItemsInRow(),nt=i.index(),s=Math.ceil((nt+1)/v)*v;s=h.length<s?h.length:s;l=h.eq(s-1);i.addClass("current-activity");i.removeClass("grayscale");t("<li id='selected-activity-dialog' class='animate-this'><\/li>").insertAfter(l);t("#activity-dialog").clone(!0).addClass("inline-dialog").appendTo(t("#selected-activity-dialog"));setTimeout(function(){t(".inline-dialog").addClass("active");r.scrollToElement(t("li#selected-activity-dialog"))},100)},handleFilter:function(n){var i=!0,r=!1;switch(n){case"ferry":this.handleFerries();break;case"theme":this.handleThemes();break;case"weekday":this.handleWeekdays();break;case"type":this.handleTypes();break;case"date":this.handleDate();r=!0;break;case"search":this.doSearch();i=!1;break;case"clearSearch":i=!1;this.clearSearch();break;case"clearDates":i=!1;this.setDefaultDates();this.doFiltering();break;case"clearAll":i=!1;this.clearSearch();this.setDefaultDates();this.clearAllFilters()}i&&(r?this.renderActiveDates():(t("#"+event.target.attributes.id.nodeValue).addClass("Checked"),this.renderActiveFilter(event.target.attributes.id.nodeValue,event.target.attributes.dataLabel.nodeValue,event.target.checked)),this.doFiltering())},clearAllFilters:function(){var t,i,n,f,r,u;for(this.globalWeekdayFilter=[],this.globalTypeFilter=[],this.globalFerryFilter=[],this.globalThemeFilter=[],this.doFiltering(),t=document.getElementById("active-filters"),t&&t.classList.remove("show"),i=t&&t.querySelectorAll("div")||[],n=0;n<i.length;n++)f=i[n],r=f.attributes.id.nodeValue,r.indexOf("Dates")===-1&&(r=r.substring(6),u=document.getElementById(r),u&&(u.checked=!1)),i[n].parentNode.removeChild(i[n])},handleWeekdays:function(){for(var r=document.getElementById("weekdays-holder"),t=r.querySelectorAll('input[type="checkbox"]:checked'),i=[],n=0;n<t.length;n++)i[n]=t[n].value;this.globalWeekdayFilter=i},handleTypes:function(){for(var r=document.getElementById("types-holder"),t=r.querySelectorAll('input[type="checkbox"]:checked'),i=[],n=0;n<t.length;n++)i[n]=t[n].value;this.globalTypeFilter=i},handleFerries:function(){for(var r=document.getElementById("ferries-holder"),t=r.querySelectorAll('input[type="checkbox"]:checked'),i=[],n=0;n<t.length;n++)i[n]=t[n].value;this.globalFerryFilter=i},handleThemes:function(){for(var r=document.getElementById("themes-holder"),t=r.querySelectorAll('input[type="checkbox"]:checked'),i=[],n=0;n<t.length;n++)i[n]=t[n].value;this.globalThemeFilter=i},handleDate:function(){},doFiltering:function(){var i=function(n,t){return function(i){for(var r=0;r<n.length;r++)if(i[t].indexOf(n[r])>=0)return!0;return!1}},h=function(n,t){return function(i){var u=function(i){return n<=i&&i<=t},f,r,e;if(i.events.length>1){for(f=!1,r=0;r<i.events.length;r++)e=new Date(i.events[r].startDate),u(e)&&(f=!0);return f}return u(i.startDate)||u(i.endDate)||n<i.startDate&&t>i.endDate||n>i.startDate&&t<i.endDate}},n=this.activityObjects,e,r,o,u,t,f,s;for(this.globalWeekdayFilter.length&&(n=this.activityObjects.filter(i(this.globalWeekdayFilter,"weekday"))),this.globalTypeFilter.length&&(n=n.filter(i(this.globalTypeFilter,"dataType"))),this.globalFerryFilter.length&&(n=n.filter(i(this.globalFerryFilter,"ferries"))),this.globalThemeFilter.length&&(n=n.filter(i(this.globalThemeFilter,"themeKey"))),e=this.globalStartDate||this.globalDefaultStartDate,r=this.globalEndDate||this.globalDefaultEndDate,r.setHours(23,59,0,0),e!==null&&r!==null&&(n=n.filter(h(e,r))),o=document.getElementById("activity-objects"),u=o&&o.querySelectorAll(".activity-object")||[],t=0;t<u.length;t++)u[t].style.visibility="hidden",u[t].style.display="none";for(f=0;f<n.length;f++)s=document.getElementById(n[f].ref),s.style.visibility="visible",s.style.display="inline-block"},doSearch:function(){var v=this,y=function(n){var t=new RegExp(n,"i");return function(n){var i=n.keywords;return i.push(n.type),i.push(n.title),t.test(i.join(" "))}},r=this.activityObjects,c=document.getElementById("search-box"),u="",n,f,o,e,i,s;c&&(u=c.value,r=r.filter(y(u)));var l=document.getElementById("activity-objects"),h=l&&l.querySelectorAll(".activity-object")||[],a=document.getElementById("active-filters");for(n=0;n<h.length;n++)h[n].style.visibility="hidden",h[n].style.display="none";for(f=0;f<r.length;f++)o=document.getElementById(r[f].ref),o.style.visibility="visible",o.style.display="inline-block";e=document.getElementById("label-Search");e&&e.parentElement.removeChild(e);u.length>0&&(i=document.createElement("div"),i.className="btn-continue",i.setAttribute("id","label-Search"),s="",s=u+'<a id="clearSearch"><img src="/assets/img/activity-calendar/close-btn.png" alt="Delete filter" /><\/a>',i.innerHTML=s,a.appendChild(i),t("#clearSearch").off().click(function(){v.handleFilter("clearSearch")}));this.checkFilterLabels(a)},clearSearch:function(){var n=document.getElementById("search-box");n&&(n.value="");this.doSearch();this.checkFilterLabels(null)},renderActiveDates:function(){var r=document.getElementById("active-filters"),o=this,n=document.createElement("div"),i,u;n.className="btn-continue";n.setAttribute("id","label-clearDates");var s=this.globalStartDate===null?null:new Date(this.globalStartDate.getTime()-this.globalStartDate.getTimezoneOffset()*6e4).toISOString(),f=this.globalEndDate===null?null:new Date(this.globalEndDate.getTime()-this.globalEndDate.getTimezoneOffset()*6e4).toISOString(),e="";e=f!==null&&this.globalStartDate<this.globalEndDate&&s.substr(0,10)!==f.substr(0,10)?t("#activitycalendar-datepicker").val()+'<a id="clearDatesFilter"><img src="/assets/img/activity-calendar/close-btn.png" alt="Delete filter" /><\/a>':t("#activitycalendar-datepicker").val()+'<a id="clearDatesFilter"><img src="/assets/img/activity-calendar/close-btn.png" alt="Delete filter" /><\/a>';n.innerHTML=e;i=document.getElementById("label-clearDates");typeof i!="undefined"&&i!==null&&(u=document.getElementById("label-clearDates"),u.parentNode.removeChild(i));r.appendChild(n);t("#clearDatesFilter").off().click(function(){o.handleFilter("clearDates")});this.checkFilterLabels(r)},renderActiveFilter:function(n,t,i){var f=document.getElementById("active-filters"),r,e,o,u;i?(r=document.createElement("div"),r.className="btn-continue",r.setAttribute("id","label-"+n),e=t+'<a data-id="'+n+'" class="fliterOption"><img src="/assets/img/activity-calendar/close-btn.png" alt="Delete filter" /><\/a>',r.innerHTML=e,o=document.getElementById("label-"+n),o||f.appendChild(r)):(u=document.getElementById("label-"+n),u&&u.parentNode.removeChild(u));this.checkFilterLabels(f)},checkFilterLabels:function(n){var t=n,i;n||(t=document.getElementById("active-filters"));t&&(i=t.querySelectorAll("div"),i.length?t.classList.add("show"):t.classList.remove("show"))},showFilter:function(){var n=document.getElementById("filter-search-area");n.classList.add("show-filter")},hideFilter:function(){var n=document.getElementById("filter-search-area");n.classList.remove("show-filter")},getSpotParameters:function(){return t(".m_activity_calendar.new_activity_calendar").data("params")},calculateActivityItemsInRow:function(){var n=0;return t("ul li.activity-object").each(function(){if(t(this).prev().length>0){if(t(this).position().top!==t(this).prev().position().top)return!1;n++}else n++}),n},getUrlParams:function(n){var u=n||window.location.search.slice(1),c=new RegExp(this.availiableFilters.join("|")).test(u),t,o,e;if(u&&c||(u=this.getSpotParameters()),t={},u)for(u=u.split("#")[0],o=u.split("&"),e=0;e<o.length;e++){var s=o[e].split("="),h=i,r=s[0].replace(/\[\d*\]/,function(n){return h=n.slice(1,-1),""}),f=typeof s[1]=="undefined"?!0:s[1];r=r.toLowerCase();f=f.toLowerCase();t[r]?(typeof t[r]=="string"&&(t[r]=[t[r]]),typeof h=="undefined"?t[r].push(f):t[r][h]=f):t[r]=f}return t},getDateWithoutTime:function(n){return n.setHours(0,0,0,0)},toISODate:function(n){function t(n){return n<10?"0"+n:n}return n.getFullYear()+"-"+t(n.getMonth()+1)+"-"+t(n.getDate())}}}(window.STENA=window.STENA||{},jQuery),function(n,t){n.AmendmentLightbox=n.MasterView.extend({el:".m_amendment_lightbox",init:function(){var e=this,i,r,u,f,n;this.$el.modal("show");this.resetEmailAddress();this.renderView();this.model.on("change",this.renderView,this);this.$el.one("hide",function(){e.cleanup()}).one("shown",function(){e._lightBoxOpen=!0});if(this.instanceTabs(),i=this.options.open,i){for(r=0,u=!1,n=0;this.amendTabs.$tabPages.length>=n;n++)f=t(this.amendTabs.$tabPages[n]),u=(f.attr("style")||"").indexOf("display: none")===-1,u&&f.find("."+i+"-container").length>0&&(r=n);this.amendTabs.showTabContent(r)}},instanceTabs:function(){this.amendTabs=new n.widgets.tabmenu({el:this.el,hover:!1,ignoreMouseLeave:!0,tipPosition:"right"})},events:{"click .js-confirm-cancellation":"cancel","click .js-confirm-checkin":"checkin","click .js-confirm-sendEmail":"sendEmail","click #resend-email-btn":"resendEmailHolder","click #resend-email-btn-close":"resendEmailHolder"},resendEmailHolder:function(){t("#resend-email-holder").slideToggle("slow");t("#resend-email-btn").fadeToggle("slow")},cleanup:function(){this.undelegateEvents();this.model.off("change",this.renderView)},bookingOptions:function(){return this.model.getBookingOptions()},renderView:function(){var t=this.bookingOptions(),i=this.model.getData(),b=this.options,u,f,e,o,s,h,c,l,a,v,y,p,w,r;if(i.EmailAddress=this.updateEmailAddress(i.EmailAddress),u=n.templates.header_amendment_lightbox,f=this.$el.find(".tpl_header-target"),this.render(f,u,i),t.HasError)return this.$el.addClass("has-error"),!1;if(this.$el.removeClass("has-error"),this.model.isCancelled()?this.$el.addClass("is-cancelled"):this.$el.removeClass("is-cancelled"),this.model.isCheckedIn()?this.$el.addClass("is-checkedin"):this.$el.removeClass("is-checkedin"),t.CanCancel?(e=n.templates.cancel_booking,o=this.$el.find(".tpl_cancelBooking-target"),this.show(".cancel-container"),this.render(o,e,i)):this.hide(".cancel-container"),s=n.templates.summary,h=this.$el.find(".tpl_summary-target"),this.show(".summary-container"),this.render(h,s,i),t.CanCheckIn?(c=n.templates.checkin_booking,l=this.$el.find(".tpl_checkinBooking-target"),this.show(".checkin-container"),this.render(l,c,i)):this.hide(".checkin-container"),t.CanView||this.hide(".view-booking"),t.CanPay){a=n.templates.pay_booking;v=this.$el.find(".tpl_payBooking-target");this.show(".pay-container");this.render(v,a,i);y=this.$el.find(".pay-container");y.find("a.btn-success").off().on("click",self,function(){sessionStorage.setItem("PaymentTimerExpires",-1)})}else this.hide(".pay-container");return t.CanEdit?(p=n.templates.edit_booking,w=this.$el.find(".tpl_editBooking-target"),this.show(".change-container"),this.render(w,p,i)):this.hide(".change-container"),t.CanView||t.CanEdit||t.CanCheckIn||t.CanCancel?(this.hide(".not-viewable-online-message"),this.show(".js-infotext")):(this.show(".not-viewable-online-message"),this.hide(".js-infotext")),r=this.options.open,r==="edit"||r==="cancel"||r==="checkin"&&(this.hide(".cancel-container"),this.hide(".change-container")),this.instanceTabs(),this.handleNotRefundableMessage(i),this},render:function(n,t,i){n.html(t(i))},handleNotRefundableMessage:function(t){if(t.ShowRefundableAmountMessage)var i=new n.GentleWarning({el:this.$el.find("div.cancel-container .m_gentle-warning"),header:null,info:t.NotFullyRefundableText})},updateEmailAddress:function(n){var i=t('input[id$="emailAddressId"]',self.$el).val();return i?i:n},resetEmailAddress:function(){var n=t('input[id$="emailAddressId"]',self.$el);n&&n.val("")},show:function(n){return this.$el.find(n).show(),this},hide:function(n){return this.$el.find(n).hide(),this},cancel:function(){var t=this,n=this.$el.find(".cancel-container").find(".modal");if(n.length>0){n.removeClass("_hide");n.find("a.remove-booking-ok").off().on("click",t,function(i){t.performCancel(i);n.addClass("_hide")});n.find(".close-modal").off().on("click",t,function(){n.addClass("_hide")})}return!1},performCancel:function(t){var i=this;return n.Wrapper.freezeUI({showOverlay:!0}),this.XHR=i.options.model.cancel({onComplete:function(){n.Wrapper.unFreezeUI()}}),t.preventDefault(),!1},checkin:function(t){var i=this;return n.Wrapper.freezeUI({showOverlay:!0}),this.XHR=this.options.model.checkin({onComplete:function(){n.Wrapper.unFreezeUI()},departureId:t.currentTarget.id}),t.preventDefault(),!1},sendEmail:function(i){var r=this,u=t('input[id$="emailAddressId"]',r.$el).val();return n.Wrapper.freezeUI({showOverlay:!0}),this.XHR=this.options.model.sendEmail({onComplete:function(){n.Wrapper.unFreezeUI()},emailAddress:u}),i.preventDefault(),!1}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.CustomerService=n.MasterView.extend({el:".m_customer_service",init:function(){var n=this;t(window).on("BookingModel:ready",function(){n.bootstrap()})},bootstrap:function(){}})}(window.STENA=window.STENA||{},jQuery),function(n,t,i){n.DestinationNavigation=n.MasterView.extend({el:".m_destination_navigation",init:function(){var n=this,i=!1;_utils.on("change:responsive",function(r){_utils.layoutTabsEvenly({tabsElem:n.$el.find(".level2"),hasDividers:!0,parentHasBorders:!0,callback:function(){n.instanceMeganav();n.fadeTabsIn()}});n.layoutMeganav();n.addSubMenuIcon(r);setTimeout(function(){t(".nav-item").mouseenter(function(){n.megaNavTabs.currentSubItem=this;n.positionMeganav.apply(this)})},0);i=!0})},instanceMeganav:function(){var i=this;this.megaNavTabs=new n.widgets.tabmenu({el:".m_destination_navigation .level2",hover:!0,hideAll:!0,tip:!0,ajax:!0,onLoaded:function(n,t){i.positionMeganav(t)},after:function(i,r,u){n.IE8&&t(u.$items[i]).find(".meganav-content").focus()},fx:{type:"meganav",duration:0,direction:"up",container:this.$el,delay:250}})},fadeTabsIn:function(){this.$el.find(".level2 > ul > li").css({opacity:"1"});this.$el.find(".level2 > ul > li").css({visibility:"visible"});this.moduleReady=!0},layoutMeganav:function(){var i=this.$el.find(".level2 > .js-ajax-tabs"),t=i.outerHeight()-32,r=this.$el.find(".meganav-content > .white-tip"),e=this.$el.find(".meganav-content > .white-tip-border"),o=parseInt(r.css("top"))+t,u=this.$el.find(".meganav-content"),s=this.$el.find(".vertical-line"),f=this.$el.find(".level2 .nav-item");t!==0&&i.length>0&&(f.css("height","32px"),n.$body.find(".topnav").css({marginBottom:"40px"}));u.css("margin-top",t)},positionMeganav:function(){var n=t(this);this.megaNavTabs&&this.megaNavTabs.currentSubItem&&(n=t(this.megaNavTabs.currentSubItem));var r=n.position(),f=n.outerWidth(),e=t(".m_destination_navigation").width()+20,h=n.find(".meganav-content"),c=parseInt(h.css("left"),10),u=h.outerWidth(),o="auto",s=5;u+s>=t(".m_destination_navigation").width()&&(o=s+"px");u==null&&u==i&&(u=e);isNaN(c)||r.left+u>e||n.hasClass("last-child")?(n.find(".meganav-content").css({position:"absolute",top:r.top+30+"px",left:o,right:s+"px"}),n.find(".white-tip").css({position:"absolute",top:r.top+-5+"px",left:"auto",right:e-(r.left+f/2)-30+"px"}).show(),n.find(".white-tip-border").css({position:"absolute",top:r.top+-5+"px",left:"auto",right:e-(r.left+f/2)-30+"px"}).show()):(t(".meganav-content").css({position:"absolute",top:r.top+30+"px",left:r.left+5+"px",right:o}).show(),n.find(".white-tip").css({position:"absolute",top:r.top+-2+"px",left:f/2-10+"px"}).show(),n.find(".white-tip-border").css({position:"absolute",top:r.top+-5+"px",left:f/2-10+"px"}).show())},addSubMenuIcon:function(n){t(".m_destination_navigation .level2 .meganav-content").parent().find("a").children(".small-arrow-down").css("display",n.size==="full"?"none":"block");t(".m_destination_navigation .level2 .meganav-content").parent().find("a").addClass("hasChildren")}})}(window.STENA=window.STENA||{},jQuery),function(n){n.GentleWarning=n.MasterView.extend({template:n.templates.gentle_warning,init:function(){var t=this,n=this.options,i=n.BookingLayer;if(this.el=n.el,this.data={header:n.header,info:n.info},n.hideMessageEvent)i.on(n.hideMessageEvent,function(){t.$el.addClass(n.toggleClass||"hide")});if(n.showMessageEvent)i.on(n.showMessageEvent,function(){t.$el.removeClass(n.toggleClass||"hide")});this.render()},render:function(){return this.$el.html(this.template(this.data)),this}})}(window.STENA=window.STENA||{}),function(n,t){n.Kiosk={setup:function(){var n=this;setTimeout(n.init,100)},init:function(){var i=n.Kiosk,u,r;i.addScrollbarStyle();i.disableLinks();u=["text","password","email","number","search","url","tel","textarea"];r=t("body");r.on("click",function(n){r.hasClass("activeKeyboard")&&i.dispatchLostFocusEvent();u.indexOf(n.target.type)>-1&&i.dispatchGotFocusEvent(n)})},disableLinks:function(){t(".departures").on("click",".ferry a, .description ul li a",function(n){return n.preventDefault(),!1})},addScrollbarStyle:function(){var n=document.createElement("style");n.type="text/css";n.innerHTML="::-webkit-scrollbar { width: 65px; } ::-webkit-scrollbar-track { background: #f1f1f1; } ::-webkit-scrollbar-thumb { background: #c0c0c0; border: 10px solid transparent; background-clip: content-box; } ::-webkit-scrollbar-button:vertical:start { border-left: 33px solid transparent; border-right: 33px solid transparent; border-bottom: 50px solid #c0c0c0; height: 50px; background: #f1f1f1; } ::-webkit-scrollbar-button:vertical:end { border-left: 33px solid transparent; border-right: 33px solid transparent; border-top: 50px solid #c0c0c0; height: 50px; background: #f1f1f1; }";document.getElementsByTagName("head")[0].appendChild(n)},dispatchGotFocusEvent:function(n){var i,r,u,f;if(t("body").addClass("activeKeyboard"),i=t(n.target),i.hasClass("hasDatepicker"))return!1;r=t(".main-col1").length?t(".main-col1"):t("#whitelabel-find-and-book3");u=r.height();r.css("min-height",u+400+"px");t("html, body").animate({scrollTop:t(i).offset().top-100},200);f=new CustomEvent("inputGotFocus",{detail:{id:i.attr("id"),type:i.attr("type")?i.attr("type"):"text"}});dispatchEvent(f)},dispatchLostFocusEvent:function(){var n,i,r;t("body").removeClass("activeKeyboard");n=t(".main-col1").length?t(".main-col1"):t("#whitelabel-find-and-book3");i=n.height();n.css("min-height",i-400+"px");r=new CustomEvent("inputLostFocus",{detail:{id:"",type:"text"}});dispatchEvent(r)},invalidateBookingModel:function(){console.log("Not in kiosk.")}};var i=_utils.getDeviceType();i==="kiosk"&&(n.Kiosk.setup(),n.Kiosk.invalidateBookingModel=function(){var n=STENA.BookingModel.BookingLayer;n.setStepAndCurrentAction("PaymentDetails","CancelPaymentFromKiosk").syncModel(n.attributes,{forceRequest:!0,freezeUI:!1,onError:function(){console.log("Fail!")},onSuccess:function(){console.log("Ok!")}})})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.Lightbox=n.MasterView.extend({el:".m_lightbox",init:function(){var n=this;this.options.$modal.on("show",function(){n.resetModal()});this.$emailField=this.$el.find("input.email");this.$agentidField=this.$el.find("input.agentid");this.$el.on({keydown:function(t){if(t.keyCode===13)return t.preventDefault(),n.prepareUserModel(),!1}},".js-forgot-pass-detail")},events:{"click #submitForgotPassword":"prepareUserModel"},resetModal:function(){this.$el.find(".js-hide-on-success").show();this.$el.find(".js-show-on-success").hide();this.options.$modal.find(".disclaimer").hide().html("").end().find("input").val("");this.resetUserModel()},prepareUserModel:function(){var r=!1,u=!1,f,i;t("#submitForgotPassword").attr("data-isagent")=="True"?r=!0:t("#submitForgotPassword").attr("data-isbusinesscustomer")=="True"&&(u=!0);f=this;i=this.$el.find("#submitForgotPassword");n.Wrapper.handleLoading(i);this.options.userModel.getUserModel({onSuccess:function(){n.$window.trigger("loading:complete");f.submit(i,r,u)}})},resetUserModel:function(){return this.options.userModel.setValue({GetForgotPasswordEmail:null,Email:null,GetEmailResult:null,GetForgotPasswordAgentId:null,GetForgotPasswordAgentUser:null,ErrorMessage:null,SuccessMessage:null}),this.options.userModel},submit:function(t,i,r){var u=this;i?(this.options.userModel.setValue("AgentPartId",this.$agentidField.val()),this.options.userModel.setValue("GetForgotPasswordEmail",!1),this.options.userModel.setValue("GetForgotPasswordAgentId",!0),this.options.userModel.setValue("GetForgotPasswordAgentUser",!1)):r?(this.options.userModel.setValue("Email",this.$emailField.val()),this.options.userModel.setValue("GetForgotPasswordEmail",!1),this.options.userModel.setValue("GetForgotPasswordAgentId",!1),this.options.userModel.setValue("GetForgotPasswordAgentUser",!0)):(this.options.userModel.setValue("Email",this.$emailField.val()),this.options.userModel.setValue("GetForgotPasswordEmail",!0),this.options.userModel.setValue("GetForgotPasswordAgentId",!1),this.options.userModel.setValue("GetForgotPasswordAgentUser",!1));n.Wrapper.handleLoading(t,i);n.Wrapper.freezeUI();this.options.userModel.save(this.options.userModel.getCredentials(i,r),{success:function(t,i){u.render(i);u.resetUserModel();n.Wrapper.unFreezeUI();n.$window.trigger("loading:complete")}})},_messageMap:{IdNotExisting:{cssClass:"validation-error"},ProfileHasNoEmail:{cssClass:"validation-error"},ProfileNotFound:{cssClass:"validation-error"},FailedCreateNewPassword:{cssClass:"validation-error"},noResponse:{cssClass:"validation-error"},Error:{cssClass:"validation-error"},EmailNotFound:{cssClass:"validation-error"},Ok:{success:!0,cssClass:"validation-success"}},render:function(n){n=n||{};var t=this.$el.find(".disclaimer"),i=n.GetEmailResult||"noResponse";t.removeClass("validation-error validation-success").addClass(this._messageMap[i].cssClass);this._messageMap[i].success&&(this.$el.find(".js-hide-on-success").hide(),this.$el.find(".js-show-on-success").show());n.GetEmailResult=="Ok"?t.show().html(n.SuccessMessage):t.show().html(n.ErrorMessage)}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.Login=n.MasterView.extend({el:".m_login",init:function(){var i=this,r,u,f;if(this.$el.hasClass("_01")){t('a[id$="lnkFaceBookPage"]',this.$el).off("click").on("click",function(i){i.preventDefault();n.socialmedia.openAuthDialog(t(this))});t('a[id$="lnkGooglePage"]',this.$el).off("click").on("click",function(i){i.preventDefault();n.socialmedia.openAuthDialog(t(this))});t('a[id$="lnkLivePage"]',this.$el).off("click").on("click",function(i){i.preventDefault();n.socialmedia.openAuthDialog(t(this))});if(this.$el.find(".login-stena").length===1){this.$el.find(".login-stena").on({click:function(){return i.validateForm()}});this.$el.on({change:function(n){i.options.userModel.setValue(n.currentTarget.name,n.currentTarget.value)},paste:function(n){i.options.userModel.setValue(n.currentTarget.name,n.currentTarget.value)},cut:function(n){i.options.userModel.setValue(n.currentTarget.name,n.currentTarget.value)},blur:function(n){i.options.userModel.setValue(n.currentTarget.name,n.currentTarget.value)},keyup:function(e){var key,valid,loginScript;return i.options.userModel.setValue(e.currentTarget.name,e.currentTarget.value),key=e.keyCode||e.which,key===13?(e.preventDefault(),valid=i.validateForm(),valid&&(loginScript=i.$el.find(".login-stena").attr("href"),eval(loginScript)),!1):void 0}},".pass-details")}else if(this.$el.find(".login-agent").length===1){this.$el.find(".login-agent").on({click:function(){return i.validateForm()}});this.$el.on({keyup:function(n){var r=n.keyCode||n.which,t;if(r===13)return n.preventDefault(),t=i.validateForm(),t&&typeof window.__doPostBack!="undefined"&&window.__doPostBack(i.$el.find(".login-agent").prop("name"),""),!1}},"._groupMainAgentLogin");t(".login-text").remove()}}else if(this.$el.hasClass("_02")){r=t('input[id^="RememberMe"]',this.$el);u=r.prop("checked");i.options.userModel.setValue("RememberMe",u);f=t('label[for="'+r.prop("id")+'"]',this.$el);r.checkboxradio({label:f.text()});r.on("change",function(n){i.options.userModel.setValue("RememberMe",t(n.target).prop("checked"))});t("#lnkFacebookMenu",this.$el).off("click").on("click",function(i){i.preventDefault();n.socialmedia.openAuthDialog(t(this))});t("#lnkGoogleMenu",this.$el).off("click").on("click",function(i){i.preventDefault();n.socialmedia.openAuthDialog(t(this))});t("#lnkLiveMenu",this.$el).off("click").on("click",function(i){i.preventDefault();n.socialmedia.openAuthDialog(t(this))});this.$el.find(".login-stena").first().on({click:function(n){var r=i.validateForm();n.preventDefault();r&&i.login(t(n.currentTarget))}});this.$el.on({change:function(n){i.options.userModel.setValue(n.currentTarget.name,n.currentTarget.value)},paste:function(n){i.options.userModel.setValue(n.currentTarget.name,n.currentTarget.value)},cut:function(n){i.options.userModel.setValue(n.currentTarget.name,n.currentTarget.value)},blur:function(n){i.options.userModel.setValue(n.currentTarget.name,n.currentTarget.value)},keypress:function(n){i.options.userModel.setValue(n.currentTarget.name,n.currentTarget.value);var t=n.keyCode||n.which;t===13&&(n.preventDefault(),n.stopPropagation())},keyup:function(n){var t,r;return i.options.userModel.setValue(n.currentTarget.name,n.currentTarget.value),t=n.keyCode||n.which,t===13?(n.preventDefault(),r=i.validateForm(),r&&i.login(i.$el.find(".login-stena").first()),!1):void 0}},".pass-details")}this.handleForgotPassword();this.initFormValidation();this.responsiveValidation()},initFormValidation:function(){this.form=_utils.initValidation(this.el,{scope:this.$el.find(".js-validationscope"),addClassRules:!0})},validateForm:function(){var n=this.form.validate();return n?(this.validationStatus=this.options.validationHandler.exec(n,{el:this.el,calloutPosition:"bottom"}),!1):!0},handleForgotPassword:function(){var f="";t("#lnkAgentForgotPassword").attr("data-usertype")=="agent"&&(f="&isAgent=1");t("#lnkBusinessCustomerForgotPassword").attr("data-usertype")=="agent"&&(f="&isBusinessCustomer=1");var o=this,u="#forgotPassword",c="/GeneralAjaxPage.aspx?sublayoutID=%7b9AFED25F-B604-45D9-B9FC-0D6B0AD24F2F%7d"+f,e="forgotPasswordContainer",s='a[href="'+u+'"]',i,r,h=function(){r.modal("show");n.Wrapper.unFreezeUI();o.$el.on({click:function(){r.modal("show")}},s)};this.$el.find(s).one({click:function(){i=n.$body.find("#"+e);r=i.find(u);n.Wrapper.freezeUI({showOverlay:!0});i.length===0?(n.$body.append('<div id="'+e+'"/>'),i=n.$body.find("#"+e),i.load(c+" "+u,function(){r=i.find(u);var t=new n.Lightbox({$modal:r,userModel:o.options.userModel});h()})):h()}})},login:function(t){var i=this;n.Wrapper.handleLoading(_utils.isJquery(t));i.options.userModel.save(i.options.userModel.getCredentials(),{success:function(t,r){r.LoggInResult==="Logged in"?(i.options.validationHandler&&i.options.validationHandler.clear(),window.location.href.indexOf("web-verification")!==-1||(r.LoyaltyMemberLoggedIn&&n.BookingModel?n.BookingModel.BookingLayer.setStepAndCurrentAction(!1,"LoyaltyMemberLoggedIn").syncModel(n.BookingModel.BookingLayer.attributes,{onSuccess:function(){var n=r&&r.Email;STENA.AdobeLaunch&&STENA.AdobeLaunch.setSessionItem(STENA.AdobeLaunch.sessionStorageEmail,n);i.reloadOrRedirect(r)}}):i.reloadOrRedirect(r))):(i.options.validationHandler||(i.options.validationHandler=new n.ValidationHandler({listenOnForms:!0})),i.options.validationHandler.exec([r.LoggInResult],{el:i.el,calloutPosition:"bottom"}));n.$window.trigger("loading:complete")},error:function(){}})},reloadOrRedirect:function(n){window.location.href.indexOf("book")!==-1?window.location.reload(!0):window.location.replace(n.MyPageUrl)},responsiveValidation:function(){_utils.isInResponsiveMode()&&t("#main_1_maincol1_0_divLoginError").appendTo("#main_1_maincol1_0_pnlCustomerLogin")}})}(window.STENA=window.STENA||{},jQuery),function(n,t,i){n.ManageBookings=n.MasterView.extend({el:".m_manage_bookings",init:function(){var n=this;this.$el.on({click:function(i){i.preventDefault();Modernizr.sessionstorage&&window.sessionStorage.removeItem("topLogin");n.logout(t(i.currentTarget));STENA.AdobeLaunch&&STENA.AdobeLaunch.loggedOut()}},".logout-stena");this.$el.on({click:function(i){i.preventDefault();n.gotomypage(t(i.currentTarget))}},".mypages-stena")},gotomypage:function(t){window.location.assign(t.attr("href"));n.Wrapper.handleLoading(_utils.isJquery(t))},logout:function(t){var r=this;this.options.userModel.logout();n.Wrapper.handleLoading(_utils.isJquery(t));r.options.userModel.save(r.options.userModel.getCredentials(),{wait:!0,success:function(t,r){n.$window.trigger("loading:complete");r.LoggedIn||(r.LoyaltyMemberLoggedOut&&n.BookingModel?n.BookingModel.BookingLayer.setStepAndCurrentAction(!1,"LoyaltyMemberLoggedOut").syncModel(n.BookingModel.BookingLayer.attributes,{onSuccess:function(){window.location.reload(!0)}}):r.LogOutReturnUrl!==i?window.location.assign(r.LogOutReturnUrl):window.location.reload(!0))},error:function(){}})}})}(window.STENA=window.STENA||{},jQuery),function(n){n.MegaNavigation=n.MasterView.extend({el:".m_meganavigation",init:function(){this.$el.find(".route-page:last").css("display","block");this.instanceTabs()},instanceTabs:function(){this.routesTabs=new n.widgets.tabmenu({el:this.el,hover:!0,ignoreMouseLeave:!0,tipPosition:"right"})}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.m_lffBestPrice=n.MasterView.extend({el:".m_lffBestPrice",tripType:"Efp",direction:"Out",routeCode:"GOFR",template:n.templates.lff_best_price,init:function(){var n=this;n.data=t(this.el).data();n.loadData()},events:{"click td.price":"book"},loadData:function(){var r=this,i=this.data,n="/book/SailingsFares/GetLowestFares";n+="?routecode="+i.routecode;n+="&triptype="+i.triptype;n+="&productcode="+i.productcode;n+="&months="+i.months;t.ajax({url:n,type:"GET",contentType:"application/json; charset=UTF-8",dataType:"json",success:function(n){var t=n.LowFares;t&&(_.first(t).isFirst=!0,_.last(t).isLast=!0);r.render(t)}})},render:function(n){t(".m_lffBestPrice").html(this.template(n))},book:function(n){var i=t(n.currentTarget),r=i.data("date");window.location.href="/book?tripType="+this.tripType+"&IsLowFaresFinder=1&depDateOut="+r+"&routeOut="+this.routeCode},loadLowFares:function(n,i){var r=this,f,u;r.options.callback=i;f=n;r.options.BookingLayer.set("TripType",r.tripType);u=this.options.BookingLayer.get("LegsForCurrentAction")||[];t.inArray(r.direction,u)===-1&&(u.push(r.direction),this.options.BookingLayer.set("LegsForCurrentAction",u));r.options.BookingLayer.setStepAndCurrentAction("SailingsFaresByTripType","LoadLowFares").syncModel(r.options.BookingLayer.attributes,{syncInterval:200,loader:r.$el.find("td.price"),onSuccess:function(){}})}})}(window.STENA=window.STENA||{},jQuery);!function(n,t,i){var e=3,y=20,s=9,c=1,p=4,l,f,r,a,u,v=(window.location.hostname.match(/(stenaline\.|stenaline-|stena-line\.|stena-line-)(.*)$/)||[null,null,"se"])[2],o=function(n){return window.decodeURIComponent(window.localStorage.getItem(n)||"")},w=function(){return window.location.protocol+"//"},h=function(n){return"http://sembo.stenaline."+v+n},b="/book/jsonsessionless/lastBookingDate",k=h("/mvc/LocationBrowser/GetLocationsForCountryIncludingPopular?countryCode="),d=h("/mvc/LocationBrowser/GetCountriesIncludingPopular"),g=h("/accommodation/categorizedautocompletesuggestions?term="),nt="http://sembo.stenaline."+v+"/stenalinehotelandferrysearch.aspx";t.widget("custom.sembocomplete",t.ui.autocomplete,{_renderMenu:function(n,t){var r=this,i="";_.each(t,function(t){t.category!==i&&(n.append("<li class='ui-autocomplete-category sembo-destination-category' data-ui-autocomplete-item><div class='strike'><span>"+t.category+"<\/span><\/div><\/li>"),i=t.category);r._renderItem(n,t).data("ui-autocomplete-item",t)})}});n.m_semboFindAndBook=Backbone.View.extend({events:{"mouseenter .checkin-tooltip":"tooltip","change #outward-routes":"selectOutwardRoute","change #return-routes":"selectReturnRoute","click  #show-sembo-suggestions-again":"showSemboSuggestionsAgain","click  #show-sembo-suggestions":"showSemboSuggestions","change #outward-date":"selectOutwardDate","change #return-date":"selectReturnDate","change #roomCount":"selectRoomCount","change #sembo-search-destinations":"checkSearchDestinationsNotBlank","change .adult-count":"setRoomAdults","change .child-count":"setRoomChildren","change .child-age":"setRoomChildrenAge","change .cartype":"setVehicleType","change .caramount":"setVehicleCount","click  #sembo-search-redirect":"search"},id:"sembo-find-and-book-template",tagName:"div",templateId:"sembo_find_and_book",initialize:function(){f=require("querystring");r=this.getPrepopulateValues();l=r.destinationPageId;u=function(n){return Handlebars.helpers.getAppText(n).toString()};this.model=new Backbone.Model(_.bind(function(){return{roomCount:1,nocar:!r.vehicleCode,vehicleCount:r.vehicleCount,roomsAllowed:this.roomsAllowed(c),passengersInRooms:this.passengersInRooms(),roomsSelected:this.roomsSelected(c),loading:!0,showSemboSuggestions:!1,canSearch:!1,routesOut:[],routesHome:[],outwardDate:new Date,returnDate:new Date,vehicles:[],responsiveMode:_utils.isInResponsiveMode(),numberOfVehiclesList:_(_.range(1,10)).map(function(n){return{code:n,text:n,selected:n===r.vehicleCount}})}},this)());this.template=n.templates[this.templateId];_.bindAll(this);this.getBookingModel(function(n){return function(){n.prepopulateModel();n.model.bind("change",n.render);n.model.set("loading",!1);t(document).off("mouseup keyup",n.semboSuggestionsLostFocus);t(document).on("mouseup keyup",n.semboSuggestionsLostFocus)}}(this))},checkSearchDestinationsNotBlank:function(n){n.target.value||this.model.set("searchDestination","")},getBookingModel:function(t){function u(){o--;o||t()}var f=this.model,i=this,o=2,e;n.getJSON("/book/jsonsessionless/ListSemboVehicles",function(n){f.set("vehicles",_(n).map(function(n){return n.selected=n.code===r.vehicleCode,n}));u()},"SemboFindAndBook-ListSemboVehicles");(n.bookingPageName||"").indexOf("SailingsFaresPage")>-1?(i.populateRoutes(n.BookingModel.UiLayer.getRoutes(n.tripTypeEnum.Efp),f),e=n.BookingModel.UiLayer.get("LastBookingDateForAllEfpRoutes"),_.isEmpty(e)?i.setLastBookingDates(u):(i.setLastBookingDateObj(e),u())):n.getJSON("/book/jsonsessionless/bookingmodel?inittype=findandbook&destpageid="+l,function(n){i.setAppTextIfMissing(n.UiLayer.Content.AppTexts);i.populateRoutes(n.UiLayer.RouteDateByTripType.Efp.Routes,f);i.setLastBookingDates(u)},"SemboFindAndBook-Init")},setLastBookingDates:function(t){var i=this;return n.getJSON(b,function(n){return i.setLastBookingDateObj(n),typeof t!="undefined"&&t(),!0},"SemboFindAndBook-GetLastBookingDate"),!1},setLastBookingDateObj:function(n){var t=_.map(n.split("-"),function(n){return parseInt(n,10)});a=new Date(t[0],t[1]-1,t[2])},populateRoutes:function(n,t){_.each(this.filteredRoutes(n),function(n){_(["routesOut","routesHome"]).each(function(i){t.get(i).push({code:n.Value,returnCode:n.ReturnRouteCode,text:n.Text,selectable:!n.IsOptGroup})})})},filteredRoutes:function(n){function i(){return r(_.reduce(n,function t(n,i){return i.IsOptGroup?(t.currentGroup=i.Text,n[t.currentGroup]=t.groupCount=0):i.ExcludeSembo||(n[t.currentGroup]++,n[i.Value]=i),n},{}))}function r(n){var t,i;for(t in n)i=n[t].ReturnRouteCode,i&&!n[i]&&delete n[t];return n}var t=i();return _.filter(n,function(n){return n.IsOptGroup?t[n.Text]:t[n.Value]})},setAppTextIfMissing:function(t){n.AppText||(n.AppText=t)},getPrepopulateValues:function(){var t={},i=f.parse(n.setModelUrl.toBase()),u,e,r;return _.each(["routeOut","routeHome","SemboDestination"],function(n){t[n]=i[n]}),t.destinationPageId=i.destPageId,t.destinationPageId||(t.destinationPageId=window.localStorage.getItem("destinationPageId")),t.routeOut||t.routeHome||(u=f.parse(o("routeStorage_"+t.destinationPageId)),t.routeOut=u.routeOut,t.routeHome=u.routeHome),t.dateOut=i.depDateOut,t.dateHome=i.depDateHome,t.dateOut||t.dateHome||(e=f.parse(o("dateStorage")),t.dateOut=e.depDateOut,t.dateHome=e.depDateHome),t.vehicleCode=i.vehicleCode,t.vehicleCode?t.vehicleCount=0:(r=f.parse(o("partyCompStorage")).vehicles,r&&(t.vehicleCode=r.split(",")[0].split(":")[0],t.vehicleCount=parseInt(r.split(":")[1],10))),t.passengers=f.parse(o("partyCompStorage")).passengers,t},adultsCountForRoom:function(n){var t=this.passengersInRoomsOrDefault()[0];return{get:function(){return t[n]},set:function(i){t[n]=i}}},childrenCountForRoom:function(n){var t=this.passengersInRoomsOrDefault()[1];return{get:function(){return t[n]},set:function(i){t[n]=i}}},childAge:function(n,t){var i=this.passengersInRoomsOrDefault()[2][n];return{get:function(){return i[t]},set:function(n){i[t]=n}}},passengersInRoomsOrDefault:function(){var n=this.model&&(n=this.model.get("passengersInRooms"));return n||(n=this.passengersInRooms()),n},passengersInRooms:function(){var o=e,h=s,n=function(n){for(var t=[];n--;)t.push(i);return t},t=n(e),r=n(e),u=function(){return n(s)},f=_(_.range(0,e)).map(u);return[t,r,f]},setRoomAdults:function(n){var t=parseInt(n.target.getAttribute("data-room"),10);this.adultsCountForRoom(t).set(parseInt(n.target.value,10));this.populateRoomsSelected()},setRoomChildren:function(n){var t=parseInt(n.target.getAttribute("data-room"),10);this.childrenCountForRoom(t).set(parseInt(n.target.value,10));this.populateRoomsSelected()},setRoomChildrenAge:function(n){var t=parseInt(n.target.getAttribute("data-room"),10),i=parseInt(n.target.getAttribute("data-child"),10);this.childAge(t,i).set(parseInt(n.target.value,10));this.populateRoomsSelected()},populateRoomsSelected:function(){this.model.set("roomsSelected",this.roomsSelected(this.model.get("roomCount")))},prepopulateModel:function(){this.prepopulateDates();this.prepopulateRoutes();this.prepopulatePassengersInFirstRoom();this.prepopulateVehicles();this.prepopulateSemboDestination()},prepopulateRoutes:function(){var t=r.routeOut,n;t&&(this.setRouteSelected("routesOut")(t),this.model.set("routeCodeOut",t));n=r.routeHome;t&&!n&&(n=_.find(this.model.get("routesOut"),function(n){return n.code===t}).returnCode);n&&(this.setRouteSelected("routesHome")(n),this.model.set("routeCodeHome",n))},prepopulatePassengersInFirstRoom:function(){var t=r.passengers,n=this,i;t&&(i=function(t){return(t==="CHILD"||t==="INFANT"?n.childrenCountForRoom:n.adultsCountForRoom).apply(n,[0])},_.each(t.split(";"),function(n){var t=n.split(":"),u=t[0],f=parseInt(t[1],10),r=i(u);r.set((r.get()||0)+f)}));this.populateRoomsSelected()},prepopulateVehicles:function(){r.vehicleCode&&(-1===_.indexOf(_.pluck(this.model.get("vehicles"),"code"),r.vehicleCode)&&(r.vehicleCode="NoSelection",r.vehicleCount=0,this.model.set("nocar",!0)),this.model.set({vehicleCode:r.vehicleCode,vehicleCount:r.vehicleCount}))},prepopulateSemboDestination:function(){var n=r.SemboDestination;n&&this.model.set("searchDestination",{code:null,text:n})},prepopulateDates:function(){var n=new Date(Date.parse(r.dateOut)),i=new Date(Date.parse(r.dateHome)),u=new Date;!isNaN(n.getTime())&&n>u&&(t("#outward-date").data("datepicker").selectDate(n),this.model.set("outwardDate",n));!isNaN(i.getTime())&&i>u&&(t("#return-date").data("datepicker").selectDate(i),this.model.set("returnDate",i))},selectRoomCount:function(n){var t=parseInt(n.target.value,10);this.model.set({roomCount:t,roomsSelected:this.roomsSelected(t),roomsAllowed:this.roomsAllowed(t)})},roomsAllowed:function(n){return _(_.range(1,e+1)).map(function(t,i){return{text:t,selected:n-1===i}})},roomsSelected:function(n){return _(_.range(1,n+1)).map(_.bind(function(n,t){return{index:t,text:n,adults:this.passengers(1,t,this.adultsCountForRoom(t).get(),u("SemboFindAndBook.Adult"),u("SemboFindAndBook.Adults")),children:this.passengers(0,t,this.childrenCountForRoom(t).get(),u("SemboFindAndBook.Child"),u("SemboFindAndBook.Children")),childrenAges:this.childrenAges(t,u("SemboFindAndBook.Year"),u("SemboFindAndBook.Years")),hasChildren:this.childrenCountForRoom(t).get()>0}},this))},passengers:function(n,t,i,r,u){return _(_.range(n,s+1)).map(_.bind(function(n){return{text:n,selected:i===n,type:n===1?r:u}},this))},childrenAges:function(n,t,i){var r=this;return _(_.range(1,1+(r.childrenCountForRoom(n).get()||0))).map(function(u,f){return{roomIndex:n,index:f,right:f%2!=0,ages:_(_.range(0,y+1)).map(function(u){return{text:u,selected:r.childAge(n,f).get()===u,type:u===1?t:i}})}})},formatDate:function(n){var t=function(n){return n<10?"0"+n:n};return n.getFullYear()+"-"+t(n.getMonth()+1)+"-"+t(n.getDate())},selectOutwardDate:function(n){this.model.set("outwardDate",t(n.target).data("datepicker").selectedDates[0]);this.ensureCorrectDates("outwardDate")},setVehicleType:function(n){var i=t(n.target).val();this._selectSelected(this.model.get("vehicles"),i);this.model.set("nocar",!i);this.model.set("vehicleCode",i);i&&!this.model.get("vehicleCount")&&this.model.set("vehicleCount",1);i&&i!=="NoSelection"||this.model.set("vehicleCount",0);this._selectSelected(this.model.get("numberOfVehiclesList"),this.model.get("vehicleCount"))},setVehicleCount:function(n){var i=parseInt(t(n.target).val(),10);this._selectSelected(this.model.get("numberOfVehiclesList"),i);this.model.set("vehicleCount",i)},_selectSelected:function(n,t){_.each(n,function(n){n.selected=n.code===t})},selectReturnDate:function(n){this.model.set("returnDate",t(n.target).data("datepicker").selectedDates[0]);this.ensureCorrectDates("returnDate")},ensureCorrectDates:function(n){var t=this.getDateElements(),i;t&&t.outwardDate>t.returnDate?(t.outward.data("datepicker").date=t[n],t["return"].data("datepicker").date=t[n]):t&&t.outwardDate-t.returnDate==0&&(i=new Date,i.setDate(t.outwardDate.getDate()+1),t["return"].data("datepicker").date=i)},getDateElements:function(n){var r=function(n){return n.data("datepicker").selectedDates[0]},t=this.$("#outward-date"),i=this.$("#return-date");if(n||!!t.val()&&!!i.val())return{outward:t,outwardDate:r(t),"return":i,returnDate:r(i)}},populateSuggestions:function(n){if(n){var r=n[0],i=n[1],u=n[2];t("#"+i).empty();_(r[i]).each(function(n){var f=n.name||n.country,r=t('<tr data-event="ev" data-evcategory="semboSelectTravelDestination" data-evlabel="'+f+'"><\/tr>');r.bind("click",function(n,t,i,r){return function(){u(n,t,i,r)}}(n.code,n.name,n.country,n.region));r.append("<td>"+n.name+"<\/td>");t("#"+i).append(r)})}},selectCountry:function(n){var i=this.selectDestination,r=this.populateSuggestions,t=this;t.model.set("semboLoading",!0);this.semboRequest(k+window.encodeURIComponent(n)).then(function(n){t.model.set("semboLoading",!1);t.$("#sembo-country-suggestions").hide();t.$("#sembo-location-suggestions").show();_([[n,"popularLocations",i],[n,"allLocations",i]]).each(r)})},selectDestination:function(n,t,i,r){var u=i?[t,r,i].join(", "):t,f=this.$("#sembo-search-destinations");f.val(u);this.model.set({showSemboSuggestions:!1,searchDestination:{code:n,text:u}});this.trackGtmEvent("semboSearchDestination",u)},showSemboSuggestions:function(){var t,n;if(this.model.set("showSemboSuggestions",!this.model.get("showSemboSuggestions")),t=this.model.get("showSemboSuggestions"),t){var i=this.selectCountry,r=this.populateSuggestions,u=this.$("#sembo-suggestions");this.$("#sembo-location-suggestions").hide();this.$("#sembo-country-suggestions").show();n=this;n.model.set("semboLoading",!0);this.semboRequest(d).then(function(t){n.model.set({semboLoading:!1,dontShowSemboAllCountries:t.allCountries.length<=p});var u=[[t,"popularCountries",i]];n.model.get("dontShowSemboAllCountries")||u.unshift([t,"allCountries",i]);_(u).each(r)})}},semboSuggestionsLostFocus:function(n){var t=this.$("#sembo-suggestions");t.has(n.target).length===0&&this.hideSemboSuggestions()},hideSemboSuggestions:function(){this.model.set("showSemboSuggestions",!1)},showSemboSuggestionsAgain:function(){this.hideSemboSuggestions();this.$("#show-sembo-suggestions").trigger("click")},setRouteSelected:function(n){return function(t){return function(i){_.each(t.get(n),function(n){n.selected=n.code===i})}}(this.model)},selectOutwardRoute:function(n){var t=n.target.value,i=n.target[n.target.selectedIndex].getAttribute("data-return");this.setRouteSelected("routesOut")(t);this.setRouteSelected("routesHome")(i);this.model.set({routeCodeOut:t,routeCodeHome:i});this.trackGtmEvent("outwardRouteSelected",t);this.trackGtmEvent("homewardRouteSelected",i)},selectReturnRoute:function(n){var t=n.target.value;this.setRouteSelected("routesHome")(t);this.model.set({routeCodeHome:t},{silent:!1});this.trackGtmEvent("homewardRouteSelected",t)},trackGtmEvent:function(t,i,r,u){if(n.Trackers.analyticsCookiesBody)try{i=i||"";r=r||"";u=u||"myClickEvent";n.$window.trigger(n.Trackers.analyticsCookiesBody.id+":gtmEvent",{pageName:"FindAndBookFerryAccommodation",eventName:u,eventValue:r,eventLabel:i,eventCategory:t,legName:""})}catch(f){}},search:function(n){if(!this.model.get("canSearch")){n.preventDefault();return}window.location.href=this.buildSemboLandingPage()},createBuilder:function(){function n(t){n.result+=t}return n.result="",n},buildSemboLandingPage:function(){var n=this.createBuilder(),u=require("cookie-cutter").get("_bt_zanpid"),i,r;return i=this.formatDate(t("#outward-date").data("datepicker").selectedDates[0]),r=this.formatDate(t("#return-date").data("datepicker").selectedDates[0]),n(nt),n("?SearchQuery="),n(window.encodeURIComponent(this.model.get("searchDestination").text)),n("&Pax="+this.buildRoomString()),n("&HotelCheckInDate="+i),n("&HotelCheckOutDate="+(r||i)),n("&OutboundSloopRouteCode="+this.model.get("routeCodeOut")),n("&OutboundDepartureDate="+i),n("&HomeboundSloopRouteCode="+this.model.get("routeCodeHome")),n("&HomeboundDepartureDate="+r),this.model.get("vehicleCount")&&(n("&SloopVehicleCode="+this.model.get("vehicleCode")),n("&NumberOfVehicles="+this.model.get("vehicleCount"))),u&&n("&zanpid="+u),n.result},buildRoomString:function(){var n=this.createBuilder(),t=this;return _.times(this.model.get("roomCount"),function(i){n("r");_.times(t.adultsCountForRoom(i).get(),function(){n("p")});_.times(t.childrenCountForRoom(i).get(),function(r){n("p");n(t.childAge(i,r).get())})}),n.result},checkCanSearch:function(){var n=!0,t=this.model,r=this;return n&&(n=!!this.$("#sembo-search-destinations").val()),n&&(n=!!t.get("returnDate")&&!!t.get("routeCodeHome")),n&&(n=!!t.get("outwardDate")&&!!t.get("routeCodeOut")),n&&(n=!(t.get("vehicleCode")===i)&&!(t.get("vehicleCode")==="NoSelection")),n&&function(){_.times(t.get("roomCount"),function(t){n&&(n=r.adultsCountForRoom(t).get());_.times(r.childrenCountForRoom(t).get(),function(i){var u=r.childAge(t,i).get();n&&(n=u>=0)})})}(),this.model.set("canSearch",n),n},render:function(n){var r=t("#outward-date").data("datepicker"),f,e,u,i;r&&r.destroy();r=t("#return-date").data("datepicker");r&&r.destroy();n&&n.changed&&_.keys(n.changed).length===1&&(n.changed.outwardDate||n.changed.returnDate)&&setTimeout(_.bind(function(){t(".datepicker.active").removeClass("active")},this),100);this.checkCanSearch();f=this.model.toJSON();f.model=this.model;e=this.template(f);u=window.document.activeElement;u&&(u=u.id);this.$el.html(e);this.decorate();i=this.getDateElements(!0);i.outward&&(i.outward.data("datepicker").selectDate(this.model.get("outwardDate")),i["return"]&&i["return"].data("datepicker").update("minDate",this.model.get("outwardDate")));i["return"]&&i["return"].data("datepicker").selectDate(this.model.get("returnDate"));this.ensureCorrectDates("returnDate");t("#sembo-find-and-book-template .header-bar").off("click.sembofnb").on("click.sembofnb",function(){t("#sembo-find-and-book-template").toggleClass("opened")});return this.showHideHeader(),this},showHideHeader:function(){var n=t(".m_sembo-find-and-book .h2.header-bar"),i=t(".m_find_and_book_tabs");i.length>0&&_utils.isInResponsiveMode()&&n.addClass("_hide")},decorate:function(){var n=this;this.customSelect();this.generateIds();this.autocomplete();this.datepicker();this.tooltip();this.checkScreenWidth(this);_utils.on("change:responsive",function(){n.checkScreenWidth(n)})},customSelect:function(){this.$(".custom-select > select").parent().each(function(){t(this).customSelect()})},generateIds:function(){var n=0,t="sembo-find-and-book";this.$el.find("*").each(function(){this.id||(this.id=t+(++n).toString(36))})},autocomplete:function(){var n=this.$("#sembo-search-destinations");n.sembocomplete({close:_.bind(function(){this.selectDestination(null,n.val())},this),open:function(){var r=t(".ui-autocomplete:visible"),u=function(t){return t.replace(new RegExp("("+n.val().replace(/\W/g,"")+")","ig"),"<strong>$1<\/strong>")},i;r.find("li").removeClass("sembo-destination-item").addClass("sembo-destination-item");i=n.width();i+=parseInt(t("#sembo-search-destinations").css("padding-left").replace("px",""))+parseInt(t("#sembo-search-destinations").css("padding-right").replace("px",""));r.width(i).find("li a").each(function(){var n=t(this).html();t(this).html(u(n))})},source:_.bind(function(n,t){var i=window.encodeURIComponent(n.term);if(i)return this.semboRequest(g+i).pipe(t)},this)})},datepicker:function(){var t=this.$(".c_date-picker");t.find("input").data("minDate",new Date);t.find("input").data("maxDate",a);n.widgets.datepicker.createDatepicker(t)},tooltip:function(){var t=this.$(".checkin-tooltip");t.each(function(){n.widgets.tooltip.createToolTip(this)})},semboRequest:function(n){var i=w()+window.location.hostname+"/book/jsonsessionless/semborequest?uri="+window.encodeURIComponent(n);return t.getJSON(i).pipe(function(n){return JSON.parse(n)})},checkScreenWidth:function(){_utils.isInResponsiveMode()?(t(".m_sembo-find-and-book .c_date-picker .label span").removeClass("calender-icon").addClass("arrow18"),t(".m_sembo-find-and-book .c_date-picker.gutter32 .label span").removeClass("arrow18").addClass("arrow19"),t(".m_sembo-find-and-book .c_date-picker .calender-icon").length<1)&&t(".m_sembo-find-and-book .c_date-picker").append('<span class="calender-icon calender-icon-added"><\/span>'):(t(".m_sembo-find-and-book .c_date-picker .calender-icon-added").remove(),t(".m_sembo-find-and-book .c_date-picker .label span").addClass("calender-icon").removeClass("arrow18"),t(".m_sembo-find-and-book .c_date-picker.gutter32 .label span").addClass("arrow18").removeClass("arrow19"));_utils.moveSemboFindAndBook()}})}(window.STENA=window.STENA||{},jQuery,undefined),function(n,t){n.Prenavigation=n.MasterView.extend({defaults:{Email:"",BookingReference:"",BookingRefEmail:""},el:".m_prenavigation",templates:{loggedIn:"manage_bookings_logged_in",notLoggedIn:""},loadUserModel:!0,manageBookingsText:"",init:function(){var n=this;this.userModel=this.options.userModel;this.templates.notLoggedIn=this.$el.find(".tpl-not-logged-in").html();this.manageBookingsText=this.$el.find(".manage-bookings .profile-name").html();this.instancePrenav();this.bindEvents();this.checkIfSearchFieldExists();this.setupChangeLanguageResp();this.setupExtraResp();this.userModel.getUserModel({onSuccess:function(){n.loadUserModel=!1}})},bindEvents:function(){var n=this;this.userModel.on("change:LoggedIn",function(t,i){n.handleLoginTemplating(i)})},instancePrenav:function(){var i=this,n="";t(".m_prenavigation .prenav .nav-item a").click(function(){var r=this.firstChild.textContent,i;r!=n&&(n=r,t(".m_prenavigation .prenav .nav-item").removeClass("open"));t(this).parent().toggleClass("open");i=Math.round(t(this).parent().outerWidth()/2)+10;t(this).parent().find(".nav-content-item .tip-border").css("right",i+"px");t(this).parent().find(".nav-content-item .tip").css("right",i+"px")});t(".m_prenavigation .prenav .nav-item span.close-btn").click(function(){t(this).parent().parent().removeClass("open")})},getUserModel:function(n,t,i){var r=this;i.eq(n).hasClass("manage-bookings")&&r.loadUserModel&&r.userModel.getUserModel({onSuccess:function(){r.loadUserModel=!1}})},handleLoginTemplating:function(n){n?this.setLoginTemplate():this.setLogoutTemplate();this.renderManageBooking()},setLoginTemplate:function(){this.template=n.templates[this.templates.loggedIn](this.userModel.attributes)},setLogoutTemplate:function(){this.template=this.templates.notLoggedIn},renderManageBooking:function(){var i=this;if(this.$el.find(".tpl_manageBookings_target").html(this.template).removeClass("loading"),_utils.renderToolTips(this.$el),this.userModel.isLoggedIn())this.userModel.isLoggedIn()&&(this.manageBookingsModule=new n.ManageBookings({userModel:this.userModel}),this.changeManageBookingsNavText(this.userModel.getValue("LoggedInName")),t(".manage-bookings, .login-icon").addClass("logged-in"),STENA.isLoggedInAsAgent==="true"?t(".login-icon a").attr("href","/agent"):t(".login-icon a").attr("href","/my-pages"),this.displayLoginCallout());else{this.loginModule=new n.Login({el:".m_login._02",userModel:this.userModel,validationHandler:this.options.validationHandler});this.changeManageBookingsNavText(this.manageBookingsText);t(".manage-bookings.logged-in").removeClass("logged-in");t(".login-icon a").on("updatelink",function(){t(".login-icon a").attr("href","/login"+(window.location.href.indexOf("book")!==-1?"?returnUrl="+window.location.pathname+window.location.hash.replace("#","%23"):""))});t(".login-icon a").trigger("updatelink")}t(".m_view_booking").each(function(){new n.ViewBooking({el:this,collection:new n.AmendmentDataCollection,validationHandler:i.options.validationHandler})})},displayLoginCallout:function(){var n=require("cookie-cutter"),i,r,u,f;if(!n.get("pay_attention_to_mypages")&&location.pathname.indexOf("Confirm")<0){if(i=t(".login-icon").attr("data-callouttimeout"),!i||isNaN(i))return;if(t(".login-icon.logged-in").is(":visible"))r=t(".login-icon.logged-in").offset(),u=t("#login-icon-callout"),u.show().offset({top:r.top+44,left:r.left-57}),setTimeout(function(){u.hide();n.set("pay_attention_to_mypages",!0)},i);else{if(f=t(".tpl_manageBookings_target").parent(),!n.get("loginPageReloadDone")){n.set("loginPageReloadDone",!0);return}f.show();setTimeout(function(){f.hide();n.set("pay_attention_to_mypages",!0)},i)}}},changeManageBookingsNavText:function(n){this.$el.find(".manage-bookings .profile-name").html(n)},checkIfSearchFieldExists:function(){t(".m_prenavigation").find(".search-field").length==0&&t(".prenav").children(".nav").css("padding-top","46px")},setupChangeLanguageResp:function(){function i(){n.toggle()}var n=t(".language");_utils.isInResponsiveMode()&&(n.closest(".nav-content-item").addClass("responsive change-language"),n.find("li").removeClass("span4"),t(".change-language").click(i),t(".icon-flag").closest(".no-follow").hide())},setupExtraResp:function(){function r(){_utils.getResponsiveMode()!="phone"&&n.hide();n.toggle()}function u(t){n[t.size!=="phone"?"show":"hide"]();n.css("display")==="none"&&n.find("a").removeClass(function(n,t){return(t.match(/btn[^ ]*/g)||[]).join(" ")})}var n=t(".m_extra_top_menu"),i;if(t("body").hasClass("p_001")){i=t(".responsive");n.closest(".nav-content-item").addClass("responsive extra");i.find(".row").removeClass("bottom10").addClass("bottom0");i.find("ul").removeClass("bottom10 top10").addClass("bottom0 top0");t(".no-follow").find(".arrow").addClass("arrow216");_utils.on("change:responsive",u);_utils.isInResponsiveMode()&&t(".extra").closest(".nav-item").click(r)}}})}(window.STENA=window.STENA||{},jQuery),function(n){n.Remarketing=n.MasterView.extend({el:".m_remarketing",template:n.templates.remarketing_lightbox,events:{"click .btn-pay":"toPayment"},init:function(){var n=this,t=n.options.BookingLayer,r=n.options.UiLayer,i,u;if((!t||!t.getIsAmendment())&&(!r||!r.getIsAgentBooking())&&Modernizr.sessionstorage&&Modernizr.localstorage){var f=require("cookie-cutter"),o=t&&t.getReservationCode(),e=f.get("remarketingUnpaidBooking");if(e){if(i=JSON.parse(e),i.resCode===o)return;u=this.checkReservation(i);u.done(function(){n.options.paymentLink&&n.initLightbox()});f.set("remarketingUnpaidBooking","",{expires:new Date(0)})}}},initLightbox:function(){this.target=this.$(".tpl_header-target");this.target.html(this.template({price:this.options.price,departures:this.options.departures,depositpaid:this.options.depositpaid}));this.$el.modal("show");this.render();n.$window.trigger("lightbox:show","RemarketingBoxShown")},toPayment:function(){sessionStorage.setItem("PaymentTimerExpires",-1);window.location.href=this.options.paymentLink},checkReservation:function(n){var t=this,i="/book/checkout/RemarketingCandidate?SalesOwner="+n.salesOwner+"&lang="+n.language+"&ResCode="+n.resCode;return $.get(i,function(i){if(i&&i.status==="success"&&i.data&&i.data.Status){window.location.origin||(window.location.origin=window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:""));var r=window.location.origin+"/book/Amendment?SalesOwner="+n.salesOwner+"&lang="+n.language+"&anonymousUserEmail="+n.email+"&ResCode="+n.resCode+"&activeStep=PayReservation";_.each(i.data.Departures,function(n,t){_.extend(n,{out:t===0})});t.options.paymentLink=r;t.options.price=i.data.Price;t.options.departures=i.data.Departures;t.options.depositpaid=i.data.DepositPaid}})}})}(window.STENA=window.STENA||{}),function(n,t){n.Search=n.MasterView.extend({el:".m_search",init:function(){var i=this,r;this.$el.on({focus:function(){i.$el.find(".top-search-result-wrapper").css({display:"block"})},blur:function(){setTimeout(function(){i.$el.find(".top-search-result-wrapper").css({display:"none"});i.$el.removeClass("search-focused")},200)}},"input");this.$el.on({click:function(){i.$el.hasClass("search-focused")||(i.$el.addClass("search-focused"),i.$el.find("input").focus())}});r=t('input[id$="tbSearch"]',this.$el);r.on("keyup paste",function(){var i=t(this).val(),u=t(this),r;i.length>1&&n.SearchCompliantString&&(r=n.SearchCompliantString.SearchQuery+i,t.ajax({url:"/services/SearchService.asmx/Search",type:"POST",contentType:"application/json; charset=UTF-8",dataType:"json",data:'{ "request": { "Url": "'+r+'"} }',success:function(n){var t,i;try{n.d.List.length>0&&(t=jQuery.parseJSON(n.d.List),t.length>1&&(i=t[1],u.autocomplete({source:i})))}catch(r){}}}))})}})}(window.STENA=window.STENA||{},jQuery),function(n){n.ViewBooking=n.MasterView.extend({init:function(){this.instanceTabs();this.bindEvents();this.initFormValidation()},instanceTabs:function(){new n.widgets.tabmenu({el:this.el,hover:!1,ignoreMouseLeave:!0,tipPosition:"right"})},bindEvents:function(){var n=this,t=function(t){var i=n.validateForm();return t.preventDefault(),i&&n.requestBooking(),!1};this.$el.find(".bookingref-stena").on({click:function(n){t(n)}});this.$el.on({keyup:function(n){n.keyCode===13&&t(n)}},".input-details")},initFormValidation:function(){this.form=_utils.initValidation(this.el,{scope:this.$el,addClassRules:!0})},validateForm:function(){var n=this.form.validate();return n?(this.validationStatus=this.options.validationHandler.exec(n,{el:this.el,calloutPosition:"bottom"}),!1):!0},requestBooking:function(){var r=this,u=this.$el.find("input.js-email"),t=this.$el.find("input.js-rescode"),i=this.$el.data();n.Wrapper.freezeUI({showOverlay:!0});this.options.collection.addModel({reservationCode:_utils.trim(t.val()),email:_utils.trim(u.val()),salesOwner:i.salesowner,language:i.lang,onSuccess:function(i){r.model=i;n.Wrapper.unFreezeUI();var u=new n.AmendmentLightbox({model:i});i.getError()||t.val("")}})}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.AccommodationList=n.MasterView.extend({el:".m_accommodation_list",init:function(){var i=t(this.options.el),n;i.data("initialized")||(i.data("initialized",!0),n=this,this.$el.find(".expandable").expander({slicePoint:200,expandText:n.$el.data("readmore"),userCollapseText:n.$el.data("readless")}))}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.AccomodationSpot=n.MasterView.extend({el:".m_accomodation_spot",init:function(){var n=t(this.options.el),i;n.data("initialized")||(n.data("initialized",!0),i=this,this.$el.find(".expandable").expander({slicePoint:200,expandText:i.$el.data("readmore"),userCollapseText:i.$el.data("readless")}),(n.is(":empty")||t.trim(n.text()).length===0)&&n.remove())}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.ActivityCalendar=n.MasterView.extend({el:".m_activity_calendar",init:function(){var n=this,i;n.initJsScrollPane();n.adjustItemHeight();i=t('select[id$="ddMonth"]',n.$el).val();i!==""&&(n.filterContent(),n.adjustJsScrollBar());n.$el.find("select.activities").bind("change",function(){n.filterContent();n.adjustJsScrollBar()});n.$el.find("select.months").bind("change",function(){n.filterContent();n.adjustJsScrollBar()})},isElementAChildToActivityCalendar:function(){var n=this.$el.closest(".m_activity_calendar").not("#activityCalendarModalWindowOverlay");return n&&n.length>0||!1},filterContent:function(){var n=this,i=n.$el.find("select.activities").val(),r=n.$el.find("select.months").val();this.$el.find(".showcase-list-item-category").each(function(){var n=t(this);n.show();i&&n.data("tags").indexOf(i)==-1?n.hide():n.show()});this.$el.find(".showcase-list-item").each(function(){var n=t(this);r&&n.data("month").indexOf(r)==-1?n.hide():(n.hide(),n.find(".showcase-list-item-category").each(function(){var i=t(this);i.css("display")=="block"&&n.show()}))});t(".showcase-list-item").hasClass("left20")&&this.isElementAChildToActivityCalendar()&&(t(".showcase-list-item").removeClass("left20"),t(".showcase-list-item:visible").first().addClass("left20"))},initJsScrollPane:function(){this.isElementAChildToActivityCalendar()&&t(".showcase-list-item:visible").first().addClass("left20");t(".scroll-pane").jScrollPane();t(".jspVerticalBar").remove();t(".jspDrag").append('<div class="arrow71"><\/div><div class="arrow210"><\/div>');t(".jspContainer").height(t(".jspContainer").height()+50)},adjustJsScrollBar:function(){t(".scroll-pane").jScrollPane();t(".jspDrag").append('<div class="arrow71"><\/div><div class="arrow210"><\/div>');t(".jspVerticalBar").remove()},adjustItemHeight:function(){var n=-1;t(".calendar-content").each(function(){n=n>t(this).height()?n:t(this).height()});t(".calendar-content").each(function(){t(this).height(n)})}})}(window.STENA=window.STENA||{},jQuery),function(n){n.AgentBookings=n.MasterView.extend({el:".m_agent_bookings",init:function(){if(this.$el.parents(".m_my_pages").length==0&&this.$el.find(".m_my_bookings").length>0)var t=new n.MyBookings({collection:new n.AmendmentDataCollection})}})}(window.STENA=window.STENA||{},jQuery),function(n){function i(i){if(t()){var f=i||"Book now",r=n('<div class="booking-button"><a href="book" class="btn-success">'+f+"<\/a><\/div>");n("#SiteWrapper > .topnav").after(r);r.on("click",u)}}function t(){return document.querySelector(".tpl_sembo-find-and-book")||document.querySelector(".m_find_and_book")}function r(){var n=t();n&&window.scrollBy(0,n.getBoundingClientRect().top-41)}function u(n){n.preventDefault();r()}STENA.bookNow={init:i}}(jQuery),function(n){function t(){i();var t=n('<div class="booking-button"><a href="http://extranet.stenalinefreight.com/Extranet" class="btn-success btn-book-freight">Extranet login<\/a><\/div>');n("#SiteWrapper > .topnav").after(t)}function i(){n(".m_prenavigation .login-icon").hide()}/stenalinefreight/i.test(location.hostname)&&n(t)}(jQuery),function(n,t){n.Breadcrumb=n.MasterView.extend({el:".m_breadcrumb",init:function(){var n=this;this.data=this.getMetaData();this.initSocialPlugins(this.data)},update:function(n){this.data&&n===this.data||(this.initSocialPlugins(n),this.data=n)},getMetaData:function(t){t=t||n.$body;var i=t.data("meta")?t.data():!1;return i||(i=t.find("[data-meta]").eq(0).data()),i?i:!1},initSocialPlugins:function(n){this.initFacebook(n);this.initTwitter(n);this.initGPlus(n);this.initPinterest()},initFacebook:function(n){if(!n||!window.FB)return!1;this.$fbContainer=this.$fbContainer||this.$el.find(".fb-share-container");!function(n){n.$fbContainer.height(20)}(this);this.$fbBtn=this.$fbBtn||this.$fbContainer.find(".fb-like");this.$metatags=this.$metatags||t("meta");var i=this,u={"og:title":n.meta_title,"og:url":n.meta_url,"og:description":n.meta_desc,"og:image":n.meta_img},r=function(n){var t=i.$fbBtn.attr("fb-xfbml-state")==="rendered";t?n&&n():setTimeout(function(){r(n)},50)};this.$fbContainer.removeClass("has-facebook-btn");_.each(u,function(n,t){n&&i.$metatags.filter('[property="'+t+'"]').attr("content",n)});this.$fbBtn.attr("data-href",window.location.protocol+"//"+window.location.hostname+n.meta_url);FB.XFBML.parse(this.$fbContainer[0]);r(function(){i.$fbContainer.addClass("has-facebook-btn")})},initTwitter:function(n){if(!n||!window.twttr)return!1;var t=this,i=n.meta_url||window.location.href,u=n.meta_title?n.meta_title+" "+i:i,r=function(){t.$twitterContainer=t.$twitterContainer||t.$el.find(".twitter-share-container");t.$twitterContainer.removeClass("has-twitter-btn").html("");twttr.widgets.createShareButton(i,t.$twitterContainer[0],function(){t.$twitterContainer.addClass("has-twitter-btn")},{text:u,hashtag:"#stenaline",count:"horizontal",counturl:i,lang:STENA.localeSocialMedia})};twttr.ready===!0?r():twttr.ready(r)},initGPlus:function(n){if(!n||!window.gapi)return!1;this.$gplusBtn=this.$gplusBtn||this.$el.find(".g-plusone");var i=this,t=n.meta_url||window.location.href;gapi.plusone.render(this.$gplusBtn[0],{href:t})},initPinterest:function(){t("#pinit").click(function(){t("#pinmarklet").remove();var n=document.createElement("script");n.setAttribute("type","text/javascript");n.setAttribute("charset","UTF-8");n.setAttribute("id","pinmarklet");n.setAttribute("src","http://assets.pinterest.com/js/pinmarklet.js?r="+Math.random()*99999999);document.body.appendChild(n)})}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.BusinessCustomerReg=n.MasterView.extend({el:".m_business_customer_reg",init:function(){var i=this,n;this.initFormValidation();n=t(".diffVisitAddress-cb");this.checkCheckboxValue(n);n.on("change",function(){i.checkCheckboxValue(t(this))});this.expose("business_customer_reg",{showValidations:function(n,t){this.validateForm(!1,{scope:this.$el.find(t.scope),validations:n,calloutPosition:t.calloutPosition})},reInitForms:function(){this.init()}})},checkCheckboxValue:function(n){n.is(":checked")?t(".diffVisitAddress-div").show():t(".diffVisitAddress-div").hide()},initFormValidation:function(){this.businessCustomerRegistrationform=_utils.initValidation(this.el,{scope:this.$el.find(".js-validationscope"),addClassRules:!0})},validateForm:function(n,t){return validations=t.validations||n.validate(),validations?(this.validationStatus=this.options.validationHandler.exec(validations,{el:t.scope[0],calloutPosition:"bottom"}),!1):!0}})}(window.STENA=window.STENA||{},jQuery),function(n){n.BusinessCustomerUsers=n.MasterView.extend({el:".m_business_customer_users",init:function(){var n=this;this.initFormValidation();this.handleSubmission();this.expose("business_customer_users",{showValidations:function(n,t){this.validateForm(!1,{scope:this.$el.find(t.scope),validations:n,calloutPosition:t.calloutPosition})},reInitForms:function(){this.init()}})},initFormValidation:function(){var n=this.$el.find("#addUsersFormArea")},handleSubmission:function(){var t=this;_utils.submitForm(n.$body,null,{ignoreKeyboard:!0,before:function(n){var t=$(n.currentTarget).data("validateref")}})},validateForm:function(n,t){return validations=t.validations||n.validate(),validations?(this.validationStatus=this.options.validationHandler.exec(validations,{el:t.scope[0],calloutPosition:t.calloutPosition||"top"}),!1):!0}})}(window.STENA=window.STENA||{}),function(n){n.CabinList=n.MasterView.extend({el:".m_cabin_list",init:function(){this.carousel=n.carousels[this.$el.find(".carousel").data("id")+"_"];this.carousel&&(this.slider=this.carousel.data("flexslider"),this.slider?(this.slidesAll=this.slider.find(".slide:not(.clone)"),this.slidesImg=this.slidesAll.find(".media.spot-img").closest(".slide"),this.slidesVideo=this.slidesAll.find(".media.spot-video").closest(".slide"),this.slidesPanorama=this.slidesAll.find(".media.panorama").closest(".slide"),this.sliderInitTabs()):this.$el.addClass("less-than-two-slides"));this.removeEmptyLabels();this.$(".js-popup-image").magnificPopup({type:"image",gallery:{enabled:!0}});this.$(".js-popup-video").magnificPopup({type:"iframe"})},sliderInitTabs:function(){var t=this,r=t.slidesAll.length,u=t.slidesImg.length,f=t.slidesVideo.length,e=t.slidesPanorama.length,i=t.$el.find(".mini-gallery-tabs li");if(r===u||r===f||r===e){i.parent().remove();return}t.tabIndexImg=-1;t.tabIndexPanorama=-1;t.tabIndexVideo=-1;u===0?(i.eq(0).remove(),i.eq(1).addClass("first").addClass("two-buttons-width"),i.eq(2).addClass("two-buttons-width"),t.tabIndexPanorama=0,t.tabIndexVideo=1):e===0?(i.eq(1).remove(),i.eq(0).addClass("two-buttons-width"),i.eq(2).addClass("two-buttons-width"),t.tabIndexImg=0,t.tabIndexVideo=1):f===0?(i.eq(2).remove(),i.eq(1).addClass("last").addClass("two-buttons-width"),i.eq(0).addClass("two-buttons-width"),t.tabIndexImg=0,t.tabIndexPanorama=1):(t.tabIndexImg=0,t.tabIndexPanorama=1,t.tabIndexVideo=2);t.tabs=new n.widgets.tabmenu({el:t.$el,hover:!1,ignoreMouseLeave:!0,before:function(n){if(t.$el.find(".mini-gallery-tabs li").eq(n).hasClass("current"))return!1;var i=!0;t.slider.pause();switch(n){case t.tabIndexImg:t.sliderFilterOnMediaType(".media.spot-img",t.slidesImg);i=t.slidesImg.length>1;break;case t.tabIndexPanorama:t.sliderFilterOnMediaType(".media.spot-panorama",t.slidesPanorama);i=t.slidesPanorama.length>1;break;case t.tabIndexVideo:t.sliderFilterOnMediaType(".media.spot-video",t.slidesVideo);i=t.slidesVideo.length>1}i?this.$el.removeClass("less-than-two-slides"):this.$el.addClass("less-than-two-slides");t.slider.play()},after:function(){var n=t.$el.find(".carousel li.slide");t.$(".js-popup-image",n).magnificPopup({type:"image",gallery:{enabled:!0}});t.$(".js-popup-video",n).magnificPopup({type:"iframe"})}})},sliderFilterOnMediaType:function(n,t){var r=this,f=0,i,u;if(r.slider.find(n).length===0){for(i=0;i<t.length;i++)r.slider.addSlide(t.eq(i),i);while(r.slider.count>t.length)r.slider.removeSlide(r.slider.count-1)}else while(r.slider.count>t.length)for(u=r.slider.find(".slide:not(.clone)"),i=f;i<u.length;i++)if(u.eq(i).find(n).length===0){r.slider.removeSlide(i);f=i;break}},removeEmptyLabels:function(){var n=$(".label-container");n.each(function(){var n=$(this);$.trim(n.text()).length==0?n.remove():$(".label-container").addClass("bottom15")})}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.ChatBot=n.MasterView.extend({el:".m_chat_bot_stina",init:function(){var n=this,t=window.navigator.userAgent,i=/MSIE|Trident/.test(t);this.ifOnIosDevice()&&this.iOSversion()>=11.3&&this.hideKeyboard();!i&&(!this.ifOnIosDevice()||this.ifOnIosDevice()&&this.iOSversion()>=11.3)&&setTimeout(function(){n.showChatButton();n.$el.on("click",".chat-bot-stina-button",function(t){n.toogleStinaChatWindow(t)})},2e3)},showChatButton:function(){var n=document.querySelector(".chat-bot-stina-button"),t=document.querySelector(".m_chat_bot_stina");this.ifOnIosDevice("ipad")&&t&&(t.closest(".row").style.display="block");n&&n.classList.add("active")},ifOnIosDevice:function(n){var t=/iPhone|iPod|iPad/.test(navigator.userAgent)&&!window.MSStream;return n&&n.toLowerCase()==="ipad"&&(t=/iPad/.test(navigator.userAgent)&&!window.MSStream),n&&n.toLowerCase()==="iphone"&&(t=/iPhone/.test(navigator.userAgent)&&!window.MSStream),t},iOSversion:function(){var n=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);return n?parseInt(n[1],10):!1},hideKeyboard:function(){document.activeElement.blur();t("#inner-object")&&t("#inner-object").blur();t("input").blur()},toogleStinaChatWindow:function(n){n.preventDefault();var t=document.querySelector(".chat-bot-stina-button"),r=document.querySelector(".chat-bot-stina-button-open-text"),u=document.querySelector(".chat-bot-stina-button-closed-text"),i=document.querySelector(".chat_content-container"),f=document.querySelector(".chat-overlay");t.style.display==="block"||i.classList.contains("active")?(t&&t.setAttribute("data-evlabel","closing"),i&&i.classList.remove("active"),i&&i.classList.remove("in-focus"),u&&u.classList.remove("active"),r&&r.classList.add("active"),f&&f.classList.remove("active")):t&&t.style.display!=="none"&&(t&&t.setAttribute("data-evlabel","opening"),i&&i.classList.add("active"),r&&r.classList.remove("active"),u&&u.classList.add("active"),f&&f.classList.add("active"));this.ifOnIosDevice()&&this.iOSversion()>=11.3&&this.hideKeyboard()}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.ContactInfoSpot=n.MasterView.extend({el:".m_contact_info_spot",init:function(){var n=this;n.filterContent();n.$el.find("select.countries").bind("change",function(){n.filterContent()})},filterContent:function(){var i=this,n=i.$el.find("select.countries").val();this.$el.find(".showcase-list-item").each(function(){var i=t(this);n&&i.data("country").indexOf(n)==-1?i.hide():i.show()})}})}(window.STENA=window.STENA||{},jQuery),function(n){n.CreateExtraAccount=n.MasterView.extend({el:".m_create_extra_account",init:function(){var n=this;$(".divAddOffers").hide();$("body").addClass("extra-signup");$("form").attr("autocomplete","off");this.initFormValidation();this.disableLinksInModal();this.handleSubmission();this.restorePageIfNoActivity();this.expose("create_extra_account",{showValidations:function(n,t){this.validateForm(!1,{scope:this.$el.find(t.scope),validations:n,calloutPosition:t.calloutPosition})},reInitForms:function(){this.init()}});$(window).off("touchstart")},restorePageIfNoActivity:function(){var n=(new Date).getTime(),t=!1;$(document.body).bind("mousemove keypress touchend touchmove click",function(){n=(new Date).getTime();t=!0});setInterval(function(){(new Date).getTime()-n>=6e4&&t&&window.location.reload(!0)},1e3)},disableLinksInModal:function(){$("#globalLightBox").on("click",".modal-body a",function(n){return n.preventDefault(),!1})},HideEditForm:function(){var n=$('input[id*="cbAddDigitalConfirm"]',this.$el);n.on("change",function(){var n=$(this).prop("checked");n?$("#<%=divAddOffers.ClientID%>").show():$("#<%=divAddOffers.ClientID%>").hide()})},initFormValidation:function(){var t=this.$el.find("#createProfileForm"),n=this.$el.find("#createExtraForm");this.createExtraForm=_utils.initValidation(this.el,{scope:this.$el.find(".js-validationscope"),addClassRules:!0});this.createExtraForm=_utils.initValidation(n[0],{scope:n})},handleSubmission:function(){var t=this;_utils.submitForm(n.$body,null,{ignoreKeyboard:!0,before:function(n){var i=$(n.currentTarget).data("validateref");return t.validateForm(t[i],t[i].options)}})},validateForm:function(n,t){return validations=t.validations||n.validate(),validations?(this.validationStatus=this.options.validationHandler.exec(validations,{el:t.scope[0],calloutPosition:t.calloutPosition||"top"}),!1):!0}})}(window.STENA=window.STENA||{}),function(n,t){n.DealOfTheDaySpot=n.MasterView.extend({el:".m_deal_of_the_day_spot",init:function(){var n=this;t(function(){n.endTime=n.$el.data("endtime");var u=n.endTime.split(" "),i=u[0].split("-"),r=u[1].split(":"),f=new Date(i[0],i[1]-1,i[2],r[0],r[1],r[2]);t("#dealCountDown").countdown({until:f,format:"DHMS",layout:'<span class="days">{dn}<\/span> <span class="hours">{hn}<\/span> <span class="minutes">{mn}<\/span> <span class="seconds">{sn}<\/span>',alwaysExpire:!0,onExpiry:function(){t("#dealOfTheDaySpot").hide()}})})}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.ExtraOptIn=n.MasterView.extend({el:".m_extra_opt_in",init:function(){var e=t('input[id*="cbJoinConfirm"]',this.$el),o=t('input[id*="cbExtraConfirm"]',this.$el),i=n.ExtraOptInSettings,r=t('input[id*="cbAcceptEmailOffer"]',this.$el.context),u=t('input[id*="cbPhone1AcceptSmsOffer"]',this.$el.context),f=t('input[id*="cbAcceptPostOffer"]',this.$el.context);i&&e&&e.bind("change",function(){var n=t(this).prop("checked");i&&i.preselectemail&&r&&(r.prop("checked")||r.prop("checked","checked").button("refresh"),i.forceacceptemail&&r.prop("disabled",n).button("refresh"));i.preselectsms&&u&&!u.prop("checked")&&u.prop("checked","checked").button("refresh");i.preselectpostal&&f&&!f.prop("checked")&&f.prop("checked","checked").button("refresh")});i&&o&&o.bind("change",function(){var n=t(this).prop("checked");i.preselectemail&&r&&(r.prop("checked")||r.prop("checked","checked").button("refresh"),i.forceacceptemail&&r.prop("disabled",n).button("refresh"));i.preselectsms&&u&&!u.prop("checked")&&u.prop("checked","checked").button("refresh");i.preselectpostal&&f&&!f.prop("checked")&&f.prop("checked","checked").button("refresh")})}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.ExtraTopMenu=n.MasterView.extend({el:".m_extra_top_menu",init:function(){var n=this;t(window).on("BookingModel:ready",function(){n.bootstrap()})},bootstrap:function(){}})}(window.STENA=window.STENA||{},jQuery),function(n){n.FAQList=n.MasterView.extend({el:".m_FAQ_list",init:function(){}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.FilteringModule=n.MasterView.extend({el:".m_filtering_module",init:function(){var n=this;n.filterContent();n.filterHeaders();n.$el.find("select.routes").bind("change",function(){n.filterContent();n.filterHeaders()});n.$el.find("select.themes").bind("change",function(){n.filterContent();n.filterHeaders()})},filterContent:function(){var n=this,i=n.$el.find("select.routes").val(),r=n.$el.find("select.themes").val();this.$el.find(".showcase-list-item").each(function(){var n=t(this);i&&n.data("route").indexOf(i)==-1||r&&n.data("tags").indexOf(r)==-1?n.hide():n.show()})},filterHeaders:function(){var n=this,i=n.$el.find("select.routes").val(),r=n.$el.find("select.themes").val();this.$el.find(".h4").each(function(){var n=t(this);i&&n.data("route").indexOf(i)==-1||r&&n.data("tags").indexOf(r)==-1?n.hide():n.show()})}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.FindAndBookBase=Backbone.Model.extend({defaults:{},initialize:function(){},readyToSubmit:!1,hasPreloadedSailingsAtLeastOnce:!1,initCommon:function(){var i=this,r;_.extend(this,n.getViewHelper("FindAndBookUiHelper"));this.options.BookingLayer.set("TripType",this.tripType);this.options.BookingLayer.setActiveStep("FindAndBook");this.options.BookingLayer.url=STENA.modelUrl;this.options.UiLayer.url=STENA.modelUrl;this.bootstrap();r=this.options.BookingLayer.getVehicleAmount("Out");this.$outwardDetails=this.$el.find(".outward-details");r<1?this.$outwardDetails.find(".caravantrailer-container").hide():this.$outwardDetails.find(".caravantrailer-container").show();this.indicateChosenDatepicker();t("#selectRouteChooseTrip").off().click(function(){t(this).parent().addClass("open");i.initRouteSelector()});t("#selectRouteOutward").off().click(function(){t(this).parent().addClass("open");i.initRouteSelector();i.scrollToRouteInMenu("outward")});t("#selectRouteReturn").off().click(function(){t(this).parent().addClass("open");i.initRouteSelector();i.scrollToRouteInMenu("homeward")})},bootstrapCommon:function(){var i=this,r=this.options.BookingLayer,f=this.options.UiLayer,e,o,h,u,s;r.resetBookingSteps();this.$outwardDetails=this.$el.find(".outward-details");this.$returnDetails=this.$el.find(".return-details");this.$PassengersVehicles=this.$el.find(".step-passengers-and-vehicles");this.$datepicker=this.$el.find(".outward-date").datepicker({range:i.isRangeValid()});e=new Date(r.getDepartureIsoDate("Out",this.tripType));o=new Date(r.getDepartureIsoDate("Home",this.tripType));const c=[e,o];h=this.$datepicker.data("datepicker").selectDate(c);this.$datepickers=this.$el.find(".hasDatepicker");this.$datepicker.closest(".month-only").length&&i.convertDatePickerToMonthSelection();u=this.datepickerData("Out");this.tripType==="SpecialOffer"&&(s=this.datepickerData("Home"),u=i.mergeValidDates(u,s));this.updateDatepicker(u,this.$datepicker,"Out",this.tripType);this.$datepickers.attr("readonly",!0);t("input.fake-picker").click(function(){n.widgets.datepicker.handleFakePickerClicked(t(this).hasClass("outward")?"outward":"return",i.options.BookingLayer.getTripType());i.options.BookingLayer.getTripType()==="Transfer"?t("#ranged-datepicker-transfer").focus():t("#ranged-datepicker").focus()});r.getUseContractRate()&&this.$el.find('input[name="contractRate"]').customSelect("setValue",r.getUseContractRate());r.getCmsOfferCode()&&this.$el.find('input[name="offercode"]').customSelect("setValue",r.getCmsOfferCode());r.getCmsOfferCodeSecurityId()&&this.$el.find('input[name="offercodesecurityid"]').customSelect("setValue",r.getCmsOfferCodeSecurityId());this.$el.find('input[name="offercode"]').bind("keypress",function(n){var t=n.keyCode||n.which;t===13&&(n.preventDefault(),n.stopPropagation())});this.$el.find('input[name="offercodesecurityid"]').bind("keypress",function(n){var t=n.keyCode||n.which;t===13&&(n.preventDefault(),n.stopPropagation())});this.$el.find('input[name="offercode"]').bind("keyup",function(n){var t=n.keyCode||n.which;t===13&&i.$el.find(".continue .btn").focus().click()});this.$el.find('input[name="offercodesecurityid"]').bind("keyup",function(n){var t=n.keyCode||n.which;t===13&&i.$el.find(".continue .btn").focus().click()});this.renderProductDescription();this.handleReturnRoute(this.isReturnTripAllowed(),this.isReturnTripMandatory());this.handleOfferCodeVisibility(this.isOfferCodeAllowed(),this.isOfferCodeSecured(),!1);this.handleContractRateVisibility(this.isContractRateAllowed());r.on("change:RouteDateByTripType.Efp:Out",function(){i.setRouteSelectValue("Out",r.getRouteDate("Out",i.tripType).RouteCode)});r.on("change:RouteDateByTripType.Efp:Home",function(){i.setRouteSelectValue("Home",r.getRouteDate("Home",i.tripType).RouteCode)});r.on("FindAndBook:OnewayReturn",function(){var e={},f;document.getElementsByClassName("return-oneway-selection");var o=i.options.BookingLayer.getTripType(),n=null,u=null;t("#ranged-datepicker").length>0&&(n=t("#ranged-datepicker").data("datepicker"));t("#ranged-datepicker-transfer").length>0&&(u=t("#ranged-datepicker-transfer").data("datepicker"));f=!0;r.attributes.OneWay?(e=i.$el.find('[data-evcategory="onewaySelected"] > .ui-button-text'),n!==null&&(n.update({onSelect:n.opts.onSelect}),n.opts.range&&n.selectDate(n.selectedDates[0]),n.update("range",!1)),u!==null&&(u.update({onSelect:u.opts.onSelect}),u.opts.range&&u.selectDate(u.selectedDates[0]),u.update("range",!1))):(e=i.$el.find('[data-evcategory="returnSelected"] > .ui-button-text'),n!=null&&(n.opts.range||(f=!1),n.update("range",!0),f||n.selectDate([n.selectedDates[0],n.selectedDates[0]])),u!=null&&(u.opts.range||(f=!1),u.update("range",!0),f||u.selectDate([u.selectedDates[0],u.selectedDates[0]])));i.returnOnewaySelection({target:e})});r.on("PassengersVehicles:PassengersVehiclesChanged",function(){i.renderCustomerCategoriesView()});this.on("FindAndBook:UIupdate",function(){i.render();i.$el.hasClass("state-mini")&&r.validateThis("routeSelected",this.tripType)===!0&&i.displayAll()});this.on("FindAndBook:UIupdateafterDateChange",function(){r.validateThis("routeSelected",i.tripType)===!0&&(i.renderAfterDateChangeAndSync(),i.$el.hasClass("state-mini")&&i.displayAll())});this.$datepickers.off("change");this.$datepickers.on("change",function(n,t){i.setAndValidateDate(t);t.direction==="Out"&&(i.isDaytripVersion()||i.isCruiseVersion()||i.options.BookingLayer.getIsOneWay())&&i.options.BookingLayer.setDepartureDate(t.date,"Home")});this.$el.find('input[name="offercode"]').change(function(){r.set("CmsContext.OfferCode",null);r.set("CmsContext.OfferCodeSecurityId",null);i.$el.find("input[name=offercodesecurityid]").val(null);r.set("CmsContext.OfferCodeIsValid",!1);r.set("CmsContext.OfferCodeValidated",!1);f.setOfferCodeSecured(i.options.tripType,!1);f.set("ValidationMessages",[]);i.validateBookingData();i.handleOfferCodeVisibility(i.isOfferCodeAllowed(),i.isOfferCodeSecured(),!0)});this.$el.find('input[name="offercodesecurityid"]').change(function(){r.set("CmsContext.OfferCodeSecurityId",null);r.set("CmsContext.OfferCodeIsValid",!1);r.set("CmsContext.OfferCodeValidated",!1);f.set("ValidationMessages",[]);i.validateBookingData()});this.$el.find('input[name="contractRate"]').bind("change",function(n){n.preventDefault();r.set("CmsContext.UseContractRate",this.checked)});this.$el.find('input[name="useVat"]').bind("change",function(n){n.preventDefault();r.set("PriceSpecification.IsVatReservation",this.checked)});this.$el.on("change",'select[name="cartype"]',function(){i.hideCalloutAndContinue()});this.$el.on("change",'select[name="caravantrailer"]',function(){i.hideCalloutAndContinue()})},isRangeValid:function(){var n=this.options.BookingLayer.getTripType(),t=this.options.BookingLayer.getIsOneWay();if(t)return!1;switch(n){case"Efp":case"Transfer":case"SpecialOffer":return!0;case"Daytrip":case"Cruise":return!1}},hideCalloutAndContinue:function(){var n=t(".vehicle-info-callout");n.hide();this.toggleContinue(!0)},saveStateToSession:function(){var n=require("cookie-cutter");this.$el.find('input[name="ShowLowFareFinder"]').bind("change",function(){n.set("findAndBook_lowFareFinder",t(this).is(":checked"))});this.$el.find('.c_radio-button input[name*="one-way_return"]').bind("click",function(){n.set("findAndBook_one-way_return",t(this).attr("value"))})},setSessionState:function(){var n={},i=require("cookie-cutter"),u=this.$el.find('input[id*="ShowLowFareFinder"]',this.$el.context),r,t;this.$el.data("lowfaresfinder")||(n=i.get("findAndBook_lowFareFinder"),n&&(r=/true/i.test(n),this.$el.find('input[id*="ShowLowFareFinder"]').prop("checked",r).checkboxradio("refresh")));this.$el.find(".return-oneway-selection").length&&(n=i.get("findAndBook_one-way_return"),n&&(t=/true/i.test(n),this.options.BookingLayer["setAs"+(t?"OneWay":"Return")](),this.$el.find("span.oneway > input.ui-checkboxradio").prop("checked",t).checkboxradio("refresh"),this.$el.find("span.return > input.ui-checkboxradio").prop("checked",!t).checkboxradio("refresh")))},_selectToDate:function(n){var i=n.get(0).selectedIndex;return t(n.find("option")[i]).data("date")},selectOnewayReturn:function(n){_utils.isInPhoneResponsiveMode()?this.toggleOnewayReturn(n):this.setOnewaySelection(n)},toggleOnewayReturn:function(n){var i=!t(n.target).parent().data("return");t(n.target).parent().data("return",i);i?this.options.BookingLayer.setAsReturn().setStepAndCurrentAction("FindAndBook","OneWayOrReturn","Home").syncModel(this.options.BookingLayer.attributes,{forceRequest:!0}):this.options.BookingLayer.setAsOneWay().setStepAndCurrentAction("FindAndBook","OneWayOrReturn","Out").syncModel(this.options.BookingLayer.attributes,{forceRequest:!0})},setOnewaySelection:function(n){var r=this,i=t(n.target).parents("span").find("input").val();i=i||t(n.target).parents(".return-oneway-selection").find(".selected input").val();i==="false"&&this.options.BookingLayer.attributes.OneWay===!0?this.options.BookingLayer.setAsReturn().setStepAndCurrentAction("FindAndBook","OneWayOrReturn","Home").syncModel(this.options.BookingLayer.attributes,{forceRequest:!0}):i==="true"&&this.options.BookingLayer.attributes.OneWay===!1&&this.options.BookingLayer.setAsOneWay().setStepAndCurrentAction("FindAndBook","OneWayOrReturn","Out").syncModel(this.options.BookingLayer.attributes,{forceRequest:!0})},convertDatePickerToMonthSelection:function(){var r=this,f=function(t,u,f){return function(){var e=r._selectToDate(t);u.data("datepicker").selectDate(e);u.trigger("change",{date:e,direction:f});r._selectToDate(n)>r._selectToDate(i)&&(t===n?(i.val(n.val()),i.trigger("change")):(n.val(i.val()),n.trigger("change")))}},u="<select><\/select>",n=t(u),i=t(u);this.$datepicker.hide();this.$datepicker.after(n);this.$datepicker.data("select",n);this.$datepicker.closest(".c_date-picker").removeClass("span_2_5").addClass("select-month");n.bind("change",f(n,this.$datepicker,"Out"));n.customSelect();i.customSelect()},handleLFF:function(){var t,i;this.$el.find(".show-fares-by .c_checkbox").length?(t=this.$el.find(".show-fares-by .c_checkbox input:checked").length,n.IE8&&(t=!t),i=t?"month":"day",this.options.BookingLayer.setDayMonthView(i,this.tripType,"Out"),this.options.BookingLayer.setDayMonthView(i,this.tripType,"Home")):this.$el.data("lowfaresfinder")&&(this.options.BookingLayer.setDayMonthView("month",this.tripType,"Out"),this.options.BookingLayer.setDayMonthView("month",this.tripType,"Home"))},handleExternalChoosenRoute:function(i){function f(n,t,i){var r=i.split("external");return r.length===2&&(n[r[1]]=t),n}var r=_.reduce(i.data(),f,{}),u;if(!_.isEmpty(r))return t(".selector-box").removeClass("open"),u=n.templates.external_route_popup,t(u(r)).modal("show"),!0},datepickerData:function(n){return this.options.UiLayer.getDatePickerData(n)},updateDatepicker:function(t,i,r,u){var o=this,s=i.data("datepicker"),f=f={startDate:new Date(o.options.BookingLayer.getDepartureIsoDate("Out")),minDate:new Date(t.FirstDepartureDate),maxDate:new Date(t.LastDepartureDate),enableDates:t.BookableDates,disableDates:t.NotBookableDates,numberOfMonths:-1},l,e,h,c,a;r.toLowerCase()==="home"&&(l=new Date(o.options.BookingLayer.getDepartureIsoDate("Out")),l>f.minDate&&(f.minDate=l));i.hasClass("ranged-datepicker")?(e=this.getFirstBookableDate(s.selectedDates[0],f.disableDates||[]),e&&e.toDateString()!==new Date(o.options.BookingLayer.getDepartureIsoDate("Out")).toDateString()&&(this.options.BookingLayer.setDepartureDate(e,"Out",null,u),f.startDate=e),h=s.selectedDates[1]?this.getFirstBookableDate(s.selectedDates[1],f.disableDates||[]):e,h&&h.toDateString()!==new Date(o.options.BookingLayer.getDepartureIsoDate("Home")).toDateString()&&this.options.BookingLayer.setDepartureDate(h,"Home",null,u)):(c=this.getFirstBookableDate(s.selectedDates[0],f.disableDates||[]),c&&c.toDateString()!==new Date(o.options.BookingLayer.getDepartureIsoDate(r)).toDateString()&&(this.options.BookingLayer.setDepartureDate(c,r),f.startDate=e));this.options.BookingLayer.attributes.CmsContext.SelectedDate!==null&&(f.startDate=new Date(this.options.BookingLayer.attributes.CmsContext.SelectedDate));n.widgets.datepicker.update(i,f);a=i.data("select");a&&o.buildMonthSelection(a,t,f)},buildMonthSelection:function(n,i,r){var e=n.val(),f;n.find("option").remove();for(var o=(r||{}).lang||t("html").attr("lang"),s=t.fn.datepicker.language[o],u=new Date(i.FirstDepartureDate),h=new Date(i.LastDepartureDate);u<=h;)u.setDate(1),f=t("<option>"+s.monthsShort[u.getMonth()]+" "+u.getFullYear()+"<\/option>"),f.data("date",new Date(u)),n.append(f),u.setMonth(u.getMonth()+1);n.customSelect("setValue",{value:e,noTrigger:!0});n.trigger("change")},mergeValidDates:function(n,t){return t.BookableDates.length&&(n.BookableDates=_.union(n.BookableDates,t.BookableDates)),t.NotBookableDates.length&&(n.NotBookableDates=n.NotBookableDates.length?_.intersection(n.NotBookableDates,t.NotBookableDates):_.union(n.NotBookableDates,t.NotBookableDates)),n},renderProductDescription:function(n){var n=n||!1,t=this.$el.find(".product-description"),i=t.find(".description");this.isDaytripVersion()&&n?(t.show(),i.text(n)):t.remove()},setRouteSelectValue:function(n,t){if(t!=""&&t!=null){var i=n=="Out"?"outward-routes":"return-routes";this.$el.find(".c_select-menu select."+i).customSelect("setValue",{value:t,noTrigger:!0})}},setRouteValue:function(n,i){if(i){var r=this.getRouteDescription(i,n);r&&(n==="Out"?(t("#selectRouteOutward span.label-holder").html(this.renderSelectedRouteLabel(r)),this.selectRouteInMenu(i,"outward")):(t("#selectRouteReturn span.label-holder").html(this.renderSelectedRouteLabel(r)),this.selectRouteInMenu(i,"homeward")),this.hideRouteSelections())}},getRouteDescription:function(n,t){var i=this.findUIRoute(n,t);return i?i.Text:""},findUIRoute:function(t,i){return i==="Home"&&this.tripType===n.tripTypeEnum.SpecialOffer?_.find(this.options.UiLayer.getRoutes(this.options.BookingLayer.getTripType(),"SelectedProductRoutes"),function(n){return n.Value===t}):_.find(this.options.UiLayer.getRoutes(this.options.BookingLayer.getTripType()),function(n){return n.Value===t})},selectRouteInMenu:function(n,i){var r=t("."+i+" .window ul li.route[data-label-value='"+n+"']").first();t(".homeward .window ul li").removeClass("cannot-choose-route");r.hasClass("level-1")&&(t("."+i+" .window ul li.level-1").removeClass("hidden"),t("."+i+" .window ul li a.showMoreTripsLevel1").parent().addClass("hidden"),t(".selector-modal."+i+" ul").hasClass("level-1-open")||t(".selector-modal."+i+" ul").addClass("level-1-open"));r.hasClass("level-2")&&(t("."+i+" .window ul li.level-2").removeClass("hidden"),t("."+i+" .window ul li a.showMoreTripsLevel2").parent().addClass("hidden"),t(".selector-modal."+i+" ul").hasClass("level-2-open")||t(".selector-modal."+i+" ul").addClass("level-2-open"));r.addClass("choosen-route");this.hideRouteInMenu("","homeward")},hideRouteInMenu:function(n,i){var r=null,u;n==""?(u=t(".outward .window ul li.route.choosen-route").data("label-value"),r=t(".homeward .window ul li.route[data-label-value='"+u+"']")):r=t("."+i+" .window ul li.route[data-label-value='"+n+"']");r.addClass("cannot-choose-route")},scrollToRouteInMenu:function(n){var f=t("."+n+" .window ul li.route.choosen-route"),i=f.offset().top+40,r=window.innerHeight,u;i>r&&(u=i-r,t("html, body").animate({scrollTop:u},1e3,"easeOutExpo"))},render:function(){var u=this.$datepicker.is(":focus"),n=this.$datepicker.data("datepicker"),i=this.datepickerData("Out"),e=this.datepickerData("Home"),f=!n||!n.opts.minDate||!n.opts.maxDate||new Date(i.FirstDepartureDate).getTime()!==n.opts.minDate.getTime()||new Date(i.LastDepartureDate).getTime()!==n.opts.maxDate.getTime(),r;if(f&&(this.updateDatepicker(this.datepickerData("Out"),this.$datepicker,"Out",this.tripType),u&&this.$datepicker.blur()),r=this.tripType==="Efp"||this.tripType==="SpecialOffer",r?this.$el.find(".change-partysize a").show():this.$el.find(".change-partysize a").hide(),this.renderCustomerCategoriesView(),this.renderVehicleView(),this.handleDayMonthViewVisibility(),_utils.renderToolTips(this.$el),t("html").hasClass("oldie"))this.$el.find("a.standard").off("mouseenter.m_find_and_book_ferry mouseleave.m_find_and_book_ferry").on("mouseenter.m_find_and_book_ferry mouseleave.m_find_and_book_ferry",function(){t(this).toggleClass("hover")})},renderAfterDateChangeAndSync:function(){this.tripType!==n.tripTypeEnum.Efp&&(this.renderCustomerCategoriesView(),this.renderVehicleView(),_utils.renderToolTips(this.$el))},getBusinessCustomerPreselection:function(){var n=this.options.BookingLayer;return n.getCmsContext().UsageModeStr==="Agent"&&n.getCmsContext().AgentIsBusinessCustomer&&n.getCmsContext().AgentIsVatCustomer?!0:!1},renderVehicleView:function(){var i=this,u="change:PassengersVehicles:Out",f="change:PassengersVehicles:Home",r=this.options.BookingLayer,t=this.options.UiLayer,e=i.getBusinessCustomerPreselection();if(this.VehiclesOut)this.VehiclesOut.init();else{this.VehiclesOut=new n.VehicleView({el:this.$el.find(".tpl_vehicle-foot-findandbook-vertical-target").eq(1),direction:"Out",template:this.options.vehiclesTemplate,tripType:r.getTripType(),noSync:function(){},UiLayer:t,BookingLayer:r,preselectVat:e,fbselect:null});this.VehiclesOut.init();t.off(u);t.on(u,function(){i.VehiclesOut.init()})}if(this.isReturnTripAllowed()){if(this.VehiclesHome)this.VehiclesHome.init();else{this.VehiclesHome=new n.VehicleView({el:this.$el.find(".tpl_vehicle-foot-findandbook-vertical-target").eq(0),direction:"Home",template:this.options.vehiclesTemplate,tripType:r.getTripType(),noSync:function(){},UiLayer:t,BookingLayer:r,preselectVat:null,fbselect:null});this.VehiclesHome.init();t.off(f);t.on(f,function(){i.VehiclesHome.init()})}this.VehiclesHome.off("change");this.VehiclesHome.on("change",function(){i.updateHeight()})}this.VehiclesOut.off("change");this.VehiclesOut.on("change",function(){i.updateHeight()})},renderCustomerCategoriesView:function(){var t=this;this.CustomerCategoriesOut?this.CustomerCategoriesOut.render({categories:this.getCustomerCategories("Out"),legName:"Out",tabIndex:31}):this.CustomerCategoriesOut=new n.CommonRenderView({template:this.options.customerTemplate,el:this.$el.find(".tpl_outwardDetails-target"),data:{categories:this.getCustomerCategories("Out"),legName:"Out",tabIndex:31}});this.CustomerCategoriesOut.$el.find(".custom-select select").off("change");this.CustomerCategoriesOut.$el.find(".custom-select select").on("change",function(n){t.setAndValidatePassengerDetails(n,"Out")});if(this.isReturnTripAllowed()){this.CustomerCategoriesHome?this.CustomerCategoriesHome.render({categories:this.getCustomerCategories("Home"),legName:"Home",tabIndex:51}):(this.CustomerCategoriesHome=new n.CommonRenderView({template:this.options.customerTemplate,el:this.$el.find(".tpl_returnDetails-target"),data:{categories:this.getCustomerCategories("Home"),legName:"Home",tabIndex:51}}),this.resizeVerticalDividers(180));this.CustomerCategoriesHome.$el.find(".custom-select select").off("change");this.CustomerCategoriesHome.$el.find(".custom-select select").on("change",function(n){t.setAndValidatePassengerDetails(n,"Home")});_utils.renderSelectMenu(this.CustomerCategoriesHome.$el.find("select"))}_utils.renderSelectMenu(this.CustomerCategoriesOut.$el.find("select"));this.options.BookingLayer.isDifferentPartySize()&&this.$el.find(".hide-on-diff").hide();setTimeout(function(){t.resizeVerticalDividers();t.updateDifferentPartySizePosition();t.setInitialValues();_utils.reRenderToolTips()},20)},setAndValidatePassengerDetails:function(n,i){var e=t(n.target).attr("name"),r=t(n.target).find(":selected").val(),s=this,u,f,o;i=="Out"?u=this.$outwardDetails:i=="Home"&&(u=this.$returnDetails);switch(e){case"cartype":f=this.options.UiLayer.getVehicleByType(r,i);f&&r!="footPassengerCode"?this.options.BookingLayer.setVehicle(f,!0,i):r=="footPassengerCode"?this.options.BookingLayer.setVehicle(f,!1,i):(o={BookMultiple:!1,Description:"null",GeneralGenericID:"null",Type:"null"},this.options.BookingLayer.setVehicle(o,!1,i));break;case"caramount":this.options.BookingLayer.setVehicleAmount(parseInt(r),i);r>1?u.find(".caravantrailer-container").hide():u.find(".caravantrailer-container").show();break;case"caravantrailer":r!=0?this.options.BookingLayer.setTrailer(r,i):this.options.BookingLayer.setTrailer("null",i);break;default:this.options.BookingLayer.setPassengers(e,r,i)}this.updateContinueBtn()},updateContinueBtn:function(){this.readyToSubmit=this.options.BookingLayer.validateThis("customerCategories")===!0?!0:!1},setAndValidateChoosenRoute:function(n,t){var r=this.getRouteDescription(n,t),i=this.options.BookingLayer.getTripType();this.options.BookingLayer.setRoute(n,r,t,"PreferredRoute",i);this.options.BookingLayer.validateThis("routeSelected",i)===!0&&this.fetchNewPassengersDetails(t)},setAndValidateRouteSelection:function(n,i){var r=t(n.target).find(":selected"),u=this,f=r.data("opposite");this.options.BookingLayer.setRoute(r.val(),r.text(),i,"PreferredRoute",this.tripType);i=="Out"&&this.isReturnTripAllowed()&&(this.disableSameRoute(r.val()),setTimeout(function(){u.$el.find(".c_select-menu select.return-routes").customSelect("setValue",f)},50));this.options.BookingLayer.validateThis("routeSelected",this.tripType)===!0&&this.fetchNewPassengersDetails(i)},filteredUiLayer:function(){var n=this.getLayerFromSessionStorage("UiLayer");return delete n.RouteDateByTripType.Efp.ExternalRoutes,n=_.omit(n,["Content"]),_.omit(n,["RouteSpecificContent"])},disableSameRoute:function(n){var i=this;_.each(this.$el.find(".c_select-menu select.return-routes").find("option"),function(n,r){var u=t(n);u.hasClass("no-selection")||u.hasClass("select-group")||i.$el.find(".c_select-menu select.return-routes").customSelect("enableOption",r)});this.$el.find(".c_select-menu select.return-routes").customSelect("disableOption",n)},setInitialValues:function(){var n=this,t=this.options.BookingLayer.getSelectedPassengers(this.tripType);_.each(t.Home,function(t){t.Code&&n.$returnDetails.find('select[name="'+t.Code+'"]').customSelect("setValue",{value:t.NoOf,noTrigger:!0})});_.each(t.Out,function(t){t.Code&&n.$outwardDetails.find('select[name="'+t.Code+'"]').customSelect("setValue",{value:t.NoOf,noTrigger:!0})})},setPartySize:function(n){var t=this;t.options.BookingLayer.setPartySize(n)},renderSelectedRouteLabel:function(n){var i="",t;return n&&(t=n.split("-"),i=t.length===2?t[0]+'<span class="arrow"><\/span>'+t[1]:t[0]),i},initRouteSelector:function(){var n=this;t(".selector-modal .window h3 .closeSelectorBTN").off().click(function(){t(".selector-box").removeClass("open")});t(".selector-modal .bg").off().click(function(){t(".selector-box").removeClass("open")});t(".showMoreTripsLevel1").off().click(function(){var n=t(this).parent();n.siblings(".level-1").removeClass("hidden");n.addClass("hidden");n.parent().addClass("level-1-open")});t(".showMoreTripsLevel2").off().click(function(){var n=t(this).parent();n.siblings(".level-2").removeClass("hidden");n.addClass("hidden");n.parent().addClass("level-2-open")});t(".selector-modal ul li.route").off().click(function(){var i,f,r,e,o;if(n.handleExternalChoosenRoute(t(this)))return!1;i=t(this).attr("data-label-value");t(this).parent().parent().hasClass("outward-routes-target")?(t(".selector-modal ul li.route").removeClass("choosen-route"),f=t(this).attr("data-label-trip"),t("#selectRouteOutward span.label-holder").html(n.renderSelectedRouteLabel(f)),t("#selectedRoute").val(i),n.selectRouteInMenu(i,"outward"),n.setAndValidateChoosenRoute(i,"Out"),n.isReturnTripAllowed()&&(r=t(this).attr("data-label-returnvalue"),e=t(this).attr("data-label-value"),t("#selectRouteReturn span.label-holder").html(n.renderSelectedRouteLabel(n.getRouteDescription(r,"Home"))),n.selectRouteInMenu(r,"homeward"),n.hideRouteInMenu(e,"homeward"),n.setAndValidateChoosenRoute(r,"Home")),n.hideRouteSelections()):(o=t(this).attr("data-label-trip"),t("#selectRouteReturn span.label-holder").html(n.renderSelectedRouteLabel(o)),t(".selector-modal.homeward ul li.route").removeClass("choosen-route"),n.hideRouteSelections(),n.setAndValidateChoosenRoute(i,"Home"),t("#selectedRoute").val(i),n.selectRouteInMenu(i,"homeward"));var u=t(".m_find_and_book_tabs").offset().top,s=t(".m_find_and_book_tabs").height(),h=window.innerHeight;(u<window.pageYOffset||u+s>window.pageYOffset+h)&&t("html, body").animate({scrollTop:u},1e3,"easeOutExpo")})},hideRouteSelections:function(){t(".selector-box").removeClass("open");t("#selectRouteChooseTrip").hide();t("#no-route-selected").hide();this.hideRouteInMenu("","homeward");t("#selectRouteOutward").show();this.hasReturnLeg()&&t("#selectRouteOutward").show();t("#theForm").removeClass("minimized")},submit:function(i){var r=this,u=this.options.BookingLayer,f,e,o=i;if(r.handleLFF(),o.preventDefault(),r.handleOfferCodeVisibility(r.isOfferCodeAllowed(),r.isOfferCodeSecured(),!1),u.set("BookingDeviceCode",_utils.getDeviceType()),this.validateBookingData()){if(f=this.$el.find("input[name=offercode]").val(),e=this.$el.find("input[name=offercodesecurityid]").val(),u.setOfferCode(f),u.setOfferCodeSecurityId(e),u.setIsResponsive(_utils.isInResponsiveMode()),u.isDifferentPartySize()||(u.normalizeCustomerCategories(),u.normalizeVehiclesAndTrailers()),this.showCalloutForVehAndTrailComb())return;u.setStepAndCurrentAction("FindAndBook","Submit").syncModel(u.attributes,{master:!0,freezeUI:!0,cancelAll:!0,forceRequest:!0,setModel:this.options.UiLayer,activeStepOnSuccess:"SailingsFaresByTripType",trigger:"UIValidate",loader:this.$el.find(".continue .btn"),shouldFetchSailingsAtLoad:!0,onSuccess:function(i,u){if(u.UiLayer&&u.UiLayer.HasValidationMessages||(t("#bookingModelOnSubmit").val(JSON.stringify(r.getBookingModelFromSessionStorage())),t("#destPageIdOnSubmit").val(n.destinationPageId),t("#isInResponsiveMode").val(_utils.isInResponsiveMode()?"1":"0"),t("#submitBookingModelForm").submit()),u&&u.UiLayer&&u.UiLayer.RouteDateByTripType){var f=u.UiLayer.RouteDateByTripType[r.tripType].IsOfferCodeSecured;r.options.UiLayer.setOfferCodeSecured(r.tripType,f)}r.handleOfferCodeVisibility(r.isOfferCodeAllowed(),r.isOfferCodeSecured(),u.UiLayer&&u.UiLayer.HasValidationMessages);r.updateHeight()},hasValidations:function(){r.validateBookingData()}})}},getCustomerCategories:function(n){var r=this,t=this.getUserSelections(n),i=_.clone(this.options.UiLayer.getCustomerCategories(null,this.tripType));return i[n]&&_.each(i[n].slice(0),function(n){if(r._categoryHasBeenDisplayed[n.Code]||n.Code!=="SENIOR"&&n.Code!=="STUDENT")n._displayAsActionLink=!1;else if(t&&t.length>0){var i=_.filter(t.slice(0),function(t){if(t.Code===n.Code)return t});n._displayAsActionLink=i.length>0&&i[0].NoOf>0?!1:!0}else n._displayAsActionLink=!1}),i[n]},getUserSelections:function(n){var t=this.options.BookingLayer.getSelectedPassengers(this.tripType);return t[n]},isReturnTripAllowed:function(){return this.options.UiLayer.isReturnTripAllowed(this.tripType)},isReturnTripMandatory:function(){return this.options.UiLayer.isReturnTripMandatory(this.tripType)},isOfferCodeAllowed:function(){return this.options.BookingLayer.isOfferCodeAllowed(this.tripType)},isContractRateAllowed:function(){return this.options.UiLayer.isContractRateAllowed()},isOfferCodeSecured:function(){return this.$el.find("input[name=offercode]").val()==""?!1:this.options.UiLayer.isOfferCodeSecured(this.tripType)},isDaytripVersion:function(){return this.tripType==="Daytrip"},isCruiseVersion:function(){return this.tripType==="Cruise"},showCalloutForVehAndTrailComb:function(){var n=!this.vehicleInfoShown&&this.getRouteVehicleInfo();return n&&this.displayCallout(n),!!n},hasReturnLeg:function(){return!this.options.BookingLayer.attributes.OneWay},getRouteVehicleInfo:function(){var t;if(!n.RI||!n.RI.VechicleInformation)return!1;var i=JSON.parse(n.RI.VechicleInformation),f=this.isCalloutVehicleAndTrailer("Out")&&this.options.BookingLayer.getRouteCode("Out",this.tripType),e=this.hasReturnLeg()&&this.isCalloutVehicleAndTrailer("Home")?this.options.BookingLayer.getRouteCode("Home",this.tripType):null,r=i[f]||i[e],u=null;return r&&(t=r.split("|"),t.length===2&&(u={checkboxInfo:t[1],info:t[0]})),u},isCalloutVehicleAndTrailer:function(n){return this.options.BookingLayer.getVehicle(n).SelectedVehicle&&this.options.BookingLayer.getVehicle(n).SelectedVehicle.Callout||this.options.BookingLayer.getTrailer(n).SelectedTrailer&&this.options.BookingLayer.getTrailer(n).SelectedTrailer.Callout},displayCallout:function(i){var u=this,f=n.templates.vehicle_info_callout,r=t("#vehicle-info-callout").html(f(i)).find(".vehicle-info-callout");r.find("#vehicle-info-cb").change(function(){this.checked&&(setTimeout(function(){r.hide()},500),u.vehicleInfoShown=!0,u.toggleContinue(!0),t("a.btn-success").focus())});this.toggleContinue(!1);r.show();t(".vehicle-info-callout").focus()},toggleContinue:function(n){n?t(".continue-btn > .btn-disabled").removeClass("btn-disabled").addClass("btn-success"):t(".continue-btn > .btn-success").removeClass("btn-success").addClass("btn-disabled")},getBookingModelFromSessionStorage:function(){return{BookingLayer:this.getLayerFromSessionStorage("BookingLayer"),ContextLayer:this.getLayerFromSessionStorage("ContextLayer"),UiLayer:this.filteredUiLayer()}},getLayerFromSessionStorage:function(t){var i,u=t+"_"+n.sessionStorageKey,r=sessionStorage.getItem(u);if(r!=="undefined"&&r)try{i=JSON.parse(r)}catch(f){console.log("error when trying to parse layer to Json")}return i?(n.isAmendment&&n.bookingPageName!=="CheckoutPage-Amendment"&&t=="BookingLayer"&&(i.inSync=!0),i):{}},indicateChosenDatepicker:function(){t(".datepicker-enabled").click(function(n){t(".datepicker-enabled").find(".hasDatepicker").removeClass("blue-border");t(this).find(".hasDatepicker").addClass("blue-border");n.stopPropagation(clearBorder)});t("#ui-datepicker-div").click(function(n){t("#ui-datepicker-div").find(".datepicker-enabled").find(".hasDatepicker").removeClass("blue-border");t(this).find("#ui-datepicker-div").find(".hasDatepicker").addClass("blue-border");n.stopPropagation(clearBorder)});clearBorder=t(document).click(function(){t(".datepicker-enabled").find(".hasDatepicker").removeClass("blue-border")})},setAndValidateDate:function(n){this.options.BookingLayer.setDepartureDate(n.date,n.direction);this.trigger("FindAndBook:UIupdateafterDateChange")},renderRouteSelectMenus:function(){var u=this,r,t=[],i="notSet";r=this.options.UiLayer.getExternalRoutes(this.tripType);_.each(this.options.UiLayer.getRoutes(this.tripType),function(n){n.OptGroupName!==i&&(t=t.concat(_.where(r,{OptGroupName:i,ShouldDisplayAsInternalRouteInDropDown:!0})));i==="notSet"&&n.IsOptGroup&&(n.IsSelectedDestPage=!0);t.push(n);i=n.OptGroupName});this.routes=t.concat(_.where(r,{ShouldDisplayAsInternalRouteInDropDown:!1}));this.returnRoutes=this.tripType==n.tripTypeEnum.SpecialOffer?this.options.UiLayer.getRoutes(this.tripType,"SelectedProductRoutes"):this.routes;var e=u.getTemplateData(this.routes),o=u.getTemplateData(this.returnRoutes),f=n.templates.choose_route_option;this.$el.find(".outward-routes-target").html(f(e));this.$el.find(".homeward-routes-target").html(f(o));this.setRouteValue("Out",this.options.BookingLayer.getRouteDate("Out",this.tripType).RouteCode);this.setRouteValue("Home",this.options.BookingLayer.getRouteDate("Home",this.tripType).RouteCode);this.options.BookingLayer.validateThis("routeSelected",this.tripType)===!0&&this.trigger("FindAndBook:UIupdate")},getTemplateData:function(n){var t,i,r;return n.length>0&&(t=_.find(n,function(n){return!n.IsOptGroup&&n.IsSelectedDestPage}),_.each(n,function(n){if(n.Text&&!n.IsOptGroup){var i=n.Text.split("-");i.length===2&&(n.ShowSplittedRoutes=!0,n.TextFrom=i[0],n.TextTo=i[1])}n.ShowAll=t?!1:!0}),t&&(i=_.find(n,function(n){return n.IsReturnRoute==="Return"}),i&&(i.ShowReturnRouteSelector=!0),r=_.find(n,function(n){return n.IsOptGroup&&!n.IsSelectedDestPage}),r&&(r.ShowMoreRouteSelector=!0))),n},fetchNewPassengersDetails:function(n){var t=this,i=this.$el;this.options.BookingLayer.isDifferentPartySize()&&this.options.alignment=="horizontal"&&(this.$outwardDetails.css("top","-="+this.animationsObj.addHeight),this.animationsObj.addHeight=0);this.fetchPassengerDetailsPromise=this.options.BookingLayer.setStepAndCurrentAction("FindAndBook","PreferredRoute",n).syncModel(this.options.BookingLayer.attributes,{avoidSet:!0,wait:!0,master:!0,setModel:this.options.UiLayer,loader:i,onSuccess:function(){t.readyToSubmit=!1;t.updateContinueBtn();t.updateHeight();t.trigger("FindAndBook:UIupdate")},onError:function(){}})},getFirstBookableDate:function(n,t){var i=this.toISODate(n);return!t.length||!_.contains(t,i)?n:this.getFirstBookableDate(this.getNextDay(n),_.reject(t,function(n){return n<=i}))},getNextDay:function(n){var t=new Date(n);return new Date(t.setDate(t.getDate()+1))},toISODate:function(n){function t(n){return n<10?"0"+n:n}return n.getFullYear()+"-"+t(n.getMonth()+1)+"-"+t(n.getDate())}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.FindAndBookFerry=n.MasterView.extend({el:".m_find_and_book_ferry",animationsObj:{horizontal:{diffPartysizeAnimationShow:{top:"201",left:"-2px",paddingRight:"1",paddingBottom:"20",zIndex:"1",opacity:1},diffPartysizeAnimationHide:{top:"0",left:"1px",paddingRight:"0",paddingBottom:"0",zIndex:"-1",opacity:0}},vertical:{diffPartysizeAnimationShow:{left:"238"},diffPartysizeAnimationHide:{left:"0"}},addHeight:0},init:function(){this.tripType=this.options.tripType||"Efp";this.options.BookingLayer.prepareNewTripType(this.tripType);_.extend(this,new n.FindAndBookBase);_.extend(this,n.getViewHelper("FindAndBookUiHelper"));this.animations=this.animationsObj[this.options.alignment];this.initCommon()},bootstrap:function(){var r,i;t(".m_find_and_book_ferry .continue-btn").on("click","a",_.bind(this.submit,this));t(".m_find_and_book_ferry").on("click",".return-oneway-selection label",_.bind(this.selectOnewayReturn,this));t(".m_find_and_book_ferry").on("click","a.return-oneway-selection",_.bind(this.selectOnewayReturn,this));t(".m_find_and_book_ferry .outward-details .change-partysize").on("click",_.bind(this.togglePartySize,this));t(".m_find_and_book_ferry .return-details .change-partysize").on("click",_.bind(this.togglePartySize,this));t(".m_find_and_book_ferry").on("click",".extra-choice",_.bind(this.showExtraChoice,this));r=this;this.bootstrapCommon();this.animations.diffSlideElement=this.$returnDetails;this.$el.removeClass("loading");this.displayMini();i=this.$el.find(".c_select-menu select.outward-routes").val();i!=null&&this.disableSameRoute(i);this.saveStateToSession();this.setSessionState();this.trigger("FindAndBook:UIupdate");n.Tealium&&n.Tealium.PopulateUtagData&&(n.Tealium.PopulateUtagData(),window.utag.data=window.utag_data=window.utag_data||{},window.utag.view(_.extend(window.utag_data,{_tmContext_PageViewType:"findAndBookLoaded",_tmContext_EventName:""})));r.updateHeight()},validateBookingData:function(){var t="left",n,i,r;return _utils.isInResponsiveMode()&&(t="top"),n=this.options.BookingLayer.getModelValidations(["customerCategories","vehicleCategories"]),n&&(i=n.validations,r=n.type),this.validationStatus=this.options.validationHandler.exec(i,{el:this.el,type:r,calloutPosition:t}),this.validationStatus.resolved}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.FindAndBookTabs=n.MasterView.extend({el:".m_find_and_book_tabs",tabs:{},init:function(){var i=this,r=this.$el.find(".m_find_and_book_ferry"),e,u,f,o;r.length>0&&(e=r.data("triptype"),r.hasClass("_01")&&(this.tabs["tab-1"]=new n.FindAndBookFerry({BookingLayer:i.options.BookingLayer,UiLayer:i.options.UiLayer,el:".m_find_and_book_ferry._01",tripType:e,customerTemplate:"passenger_choices_vertical",vehiclesTemplate:"vehicle_foot_findandbook_vertical",alignment:"vertical",validationHandler:new n.ValidationHandler})));u=t(".m_find_and_book_ferry_accomodation");u.length&&(this.tabs["tab-2"]=new n.m_semboFindAndBook,u.html(this.tabs["tab-2"].render().el));f=this.$el.find(".m_find_and_book_transfer");f.length>0&&f.hasClass("_01")&&(this.tabs["tab-3"]=new n.FindAndBookTransfer({BookingLayer:i.options.BookingLayer,UiLayer:i.options.UiLayer,el:".m_find_and_book_transfer._01",customerTemplate:"passenger_choices_vertical",vehiclesTemplate:"vehicle_foot_findandbook_vertical",alignment:"vertical",validationHandler:new n.ValidationHandler}));o=_.keys(this.tabs).length>1;this.bootstrap(o);this.setTripTypeOnTab(this.$el.find("li.tab-link.current").attr("data-tab"))},hideTabs:function(){this.$el.find(".tabs").hide();_utils.isInResponsiveMode()||this.$el.find(".tab-content").show()},bootstrap:function(n){var t=this;n||this.hideTabs();this.events={"click ul.tabs li":"changeTab"};this.$el.find(".header-bar").click(function(){t.$el.toggleClass("opened")});_utils.moveFindAndBook()},changeTab:function(n){var i=t(n.target).closest("li"),u=i.closest(".m_find_and_book_tabs"),f=i.closest("ul"),r=i.attr("data-tab"),e=u.find("."+r);f.find("li").removeClass("current");u.find(".tab-content").removeClass("current");i.addClass("current");e.addClass("current");this.setTripTypeOnTab(r);this.tabs[r].render()},setTripTypeOnTab:function(n){var u=this.$el.find(".m_find_and_book_ferry"),t=this.options.BookingLayer,i=this.options.UiLayer,r=function(n){t.setTripType(n);t.set("BookingSteps.TripType",n);i.set("TripType",n);i.set("BookingSteps.TripType",n)};switch(n){case"tab-1":r(u.data("triptype"));break;case"tab-3":r("Transfer")}}});t(window).on("app:ready",function(){if(!_utils.isInResponsiveMode()){var n=t(".m_find_and_book_tabs .tabs");n.find(".tab-link").length>=2&&n.fadeIn(1e3)}});t(window).on("scroll",function(){if(_utils.isInResponsiveMode()&&t(".m_find_and_book_tabs").length){var n=t(".book-now-sticky"),i=t(".m_find_and_book_tabs").outerHeight(),r=t(".cookie-info-wrapper").height(),u=t(".responsive-header").height(),f=t(".book-now-sticky.js-scrolled");if(t(window).scrollTop()>i-20&&t(".cookie-info-wrapper").css("display")==="none"){n.addClass("js-scrolled");n.off().on("click",function(){t("html, body").animate({scrollTop:0},"slow")})}else if(t(window).scrollTop()>r+i-20&&t(".cookie-info-wrapper").css("display")==="block"){n.addClass("js-scrolled");f.css("top",u);n.off().on("click",function(){t("html, body").animate({scrollTop:0},"slow")})}else n.removeClass("js-scrolled")}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.FindAndBookTransfer=n.MasterView.extend({el:".m_find_and_book_transfer",init:function(){this.tripType=this.options.tripType||"Transfer";this.options.BookingLayer.prepareNewTripType(this.tripType,this.tripType);_.extend(this,new n.FindAndBookBase);_.extend(this,n.getViewHelper("FindAndBookUiHelper"));this.initCommon()},bootstrap:function(){var r,i;t(".m_find_and_book_transfer .return-oneway-selection label").on("click",_.bind(this.selectOnewayReturn,this));t(".m_find_and_book_transfer a.return-oneway-selection").on("click",_.bind(this.selectOnewayReturn,this));t(".m_find_and_book_transfer .extra-choice").on("click",_.bind(this.showExtraChoice,this));t(".m_find_and_book_transfer .continue-btn").on("click","a",_.bind(this.submit,this));r=this;this.bootstrapCommon();this.$el.removeClass("loading");this.displayTransfer(this.tripType,n.tripTypeEnum.Transfer);this.displayMini();this.renderTransferDestinationSelectMenus();this.bindEvents();i=this.$el.find(".c_select-menu select.outward-routes").val();i!=null&&this.disableSameRoute(i);this.saveStateToSession();this.setSessionState();this.trigger("FindAndBook:UIupdate");n.Tealium&&n.Tealium.PopulateUtagData&&(n.Tealium.PopulateUtagData(),window.utag.data=window.utag_data=window.utag_data||{},window.utag.view(_.extend(window.utag_data,{_tmContext_PageViewType:"findAndBookLoaded",_tmContext_EventName:""})));r.updateHeight()},bindEvents:function(){var n=this,i=this.$el.find(".c_select-menu select.outwardToFerry-transferDestinations"),r=this.$el.find(".c_select-menu select.outwardFromFerry-transferDestinations"),u=this.$el.find(".c_select-menu select.returnToFerry-transferDestinations"),f=this.$el.find(".c_select-menu select.returnFromFerry-transferDestinations"),t=i.val()||r.val()||u.val()||f.val();i.off("change");i.on("change",function(i){n.setAndValidateTransferDestinationSelection(i,"Out","ToFerry");t||_utils.scrollTo(n.el)});r.off("change");r.on("change",function(i){n.setAndValidateTransferDestinationSelection(i,"Out","FromFerry");t||_utils.scrollTo(n.el)});if(this.isReturnTripAllowed()){u.off("change");u.on("change",function(i){n.setAndValidateTransferDestinationSelection(i,"Home","ToFerry");t||_utils.scrollTo(n.el)});f.off("change");f.on("change",function(i){n.setAndValidateTransferDestinationSelection(i,"Home","FromFerry");t||_utils.scrollTo(n.el)})}},renderTransferDestinationSelectMenus:function(){var i=this,t;this.outwardTransferDestinationsToFerry=this.options.UiLayer.getTransferDestinations("TO_FERRY","Out");this.outwardTransferDestinationsFromFerry=this.options.UiLayer.getTransferDestinations("FROM_FERRY","Out");this.homewardTransferDestinationsToFerry=this.options.UiLayer.getTransferDestinations("TO_FERRY","Home");this.homewardTransferDestinationsFromFerry=this.options.UiLayer.getTransferDestinations("FROM_FERRY","Home");t=n.templates.select_menu_option_transfer_destinations;this.$el.find(".c_select-menu select.outwardToFerry-transferDestinations").html(t(this.outwardTransferDestinationsToFerry));this.$el.find(".c_select-menu select.outwardFromFerry-transferDestinations").html(t(this.outwardTransferDestinationsFromFerry));this.$el.find(".c_select-menu select.returnToFerry-transferDestinations").html(t(this.homewardTransferDestinationsToFerry));this.$el.find(".c_select-menu select.returnFromFerry-transferDestinations").html(t(this.homewardTransferDestinationsFromFerry));_utils.renderSelectMenu(i.$el.find(".c_select-menu select.outwardToFerry-transferDestinations"));_utils.renderSelectMenu(i.$el.find(".c_select-menu select.outwardFromFerry-transferDestinations"));_utils.renderSelectMenu(i.$el.find(".c_select-menu select.returnToFerry-transferDestinations"));_utils.renderSelectMenu(i.$el.find(".c_select-menu select.returnFromFerry-transferDestinations"));this.setTransferDestinationSelectValue("outwardToFerry-transferDestinations",this.options.BookingLayer.getRouteDate("Out",this.tripType).TransferRouteCodeToFerry);this.setTransferDestinationSelectValue("outwardFromFerry-transferDestinations",this.options.BookingLayer.getRouteDate("Out",this.tripType).TransferRouteCodeFromFerry);this.setTransferDestinationSelectValue("returnToFerry-transferDestinations",this.options.BookingLayer.getRouteDate("Home",this.tripType).TransferRouteCodeToFerry);this.setTransferDestinationSelectValue("returnFromFerry-transferDestinations",this.options.BookingLayer.getRouteDate("Home",this.tripType).TransferRouteCodeFromFerry);this.setRouteSelectValue("Out",this.options.BookingLayer.getRouteDate("Out",this.tripType).RouteCode)},setTransferDestinationSelectValue:function(n,t){t!=""&&t!=null&&this.$el.find(".c_select-menu select."+n).customSelect("setValue",{value:t,noTrigger:!0})},setAndValidateTransferDestinationSelection:function(n,i,r){var u=t(n.target).find(":selected"),f=this,e=u.data("opposite"),o=this.filteredUiLayer();this.options.BookingLayer.setTransferDestination(u.val(),u.text(),i,r,"PreferredRoute",this.tripType,o);i=="Out"&&r=="ToFerry"&&this.isReturnTripAllowed()&&(this.disableSameTransferDestination(u.val(),i,r),setTimeout(function(){f.$el.find(".c_select-menu select.returnFromFerry-transferDestinations").customSelect("setValue",e)},50));i=="Out"&&r=="FromFerry"&&this.isReturnTripAllowed()&&(this.disableSameTransferDestination(u.val(),i,r),setTimeout(function(){f.$el.find(".c_select-menu select.returnToFerry-transferDestinations").customSelect("setValue",e)},50));i=="Home"&&r==="ToFerry"&&this.disableSameTransferDestination(u.val(),i,r);i=="Home"&&r==="FromFerry"&&this.disableSameTransferDestination(u.val(),i,r);this.options.BookingLayer.validateThis("transferDestinationSelected",this.tripType)===!0&&(!_utils.isInResponsiveMode()||_utils.isInResponsiveMode()&&!this.options.BookingLayer.getCustomerCategories(i).length>0)&&this.fetchNewPassengersDetails();this.updateDatepicker(this.datepickerData("Out"),this.$datepicker,"Out")},disableSameTransferDestination:function(n,i,r){var u=this;i==="Out"&&r==="ToFerry"&&(_.each(this.$el.find(".c_select-menu select.outwardFromFerry-transferDestinations").find("option"),function(n,i){var r=t(n);r.hasClass("no-selection")||r.hasClass("select-group")||u.$el.find(".c_select-menu select.outwardFromFerry-transferDestinations").customSelect("enableOption",i)}),this.$el.find(".c_select-menu select.outwardFromFerry-transferDestinations").customSelect("disableOption",n));i==="Home"&&r==="ToFerry"&&(_.each(this.$el.find(".c_select-menu select.returnFromFerry-transferDestinations").find("option"),function(n,i){var r=t(n);r.hasClass("no-selection")||r.hasClass("select-group")||u.$el.find(".c_select-menu select.returnFromFerry-transferDestinations").customSelect("enableOption",i)}),this.$el.find(".c_select-menu select.returnFromFerry-transferDestinations").customSelect("disableOption",n))},validateBookingData:function(){var t="left",n,i,r;return _utils.isInResponsiveMode()&&(t="top"),n=this.options.BookingLayer.getModelValidations(["customerCategories","transferDestinations"]),n&&(i=n.validations,r=n.type),this.validationStatus=this.options.validationHandler.exec(i,{el:this.el,type:r,calloutPosition:t}),this.validationStatus.resolved}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.ViewHelpers=n.ViewHelpers||{};n.ViewHelpers.FindAndBookUiHelper={slideDownDuration:250,slideOutDuration:350,slideEasingIn:"easeInOutExpo",generalEasingIn:"easeInExpo",generalEasingOut:"easeOutExpo",resizeVerticalDividers:function(n){var t;this.options.alignment=="horizontal"&&(n?this.$el.find(".vertical-divider").animate({height:n},100,this.slideEasingIn):(t=this.$el.find(".vertical-divider").parents(".span23").outerHeight()-3,this.$el.find(".vertical-divider").animate({height:t},100,this.slideEasingIn)),this.$el.find(".end-step").height(this.$el.find(".mid-step").outerHeight()))},updateDifferentPartySizePosition:function(){if(this.options.alignment=="horizontal"){var n=this,t=this.$el.find(".span23").outerHeight()-21;this.animations.diffPartysizeAnimationShow.top=t;this.options.BookingLayer.isDifferentPartySize()&&(n.animations.diffSlideElement.animate({top:t},n.slideDownDuration,n.slideEasingIn),this.$el.find(".return-details .change-partysize a").html("&nbsp;"))}},displayMini:function(){this.$el.removeClass("state-all");this.$el.find(".show-extended-options").addClass("_hide");this.renderRouteSelectMenus();this.options.alignment=="horizontal"&&(this.$el.find(".step-mini").removeClass("init-load"),this.$el.find(".remove-after-init").remove(),this.render())},displayTransfer:function(n,t){var i,r;n.toLowerCase()==t.toLowerCase()?(i=this.$el.find(".non-transfer"),i.hide()):(r=this.$el.find(".transfer"),r.hide())},displayAll:function(){var n=this,i,r;this.$el.removeClass("state-mini");this.$el.hasClass("_01")?(this.$el.find(".step-mini").removeClass("init-load"),this.$el.find(".remove-after-init").remove()):this.$el.find(".disabled-overlay").remove();this.$el.hasClass("state-all")||(_utils.renderSelectMenu(this.$el),setTimeout(function(){n.$el.find(".show-extended-options").slideDown({duration:300,complete:function(){n.options.BookingLayer.isDifferentPartySize()&&n.$el.find(".change-partysize").length>0&&n.showDifferentPartySize();n.updateHeight();n.handleOptionsContainerVisibility()}}).addClass("all-options-shown").removeClass("_hide");n.$el.addClass("state-all");n.$el.removeClass("state-alle-mini")},100));i=t(".hide-return");r=this.$el.hasClass("m_find_and_book_ferry")?this.$el.find('.c_radio-button input[name="one-way_return_ferry"]:checked').val():this.$el.find('.c_radio-button input[name="one-way_return_transfer"]:checked').val();r==="true"?(this.$el.addClass("one-way"),i.hide()):(this.$el.removeClass("one-way"),i.show());this.updateContinueBtn();this.handleReturnRoute(this.isReturnTripAllowed(),this.isReturnTripMandatory())},togglePartySize:function(n){n&&n.preventDefault();this.$el.find(".different-party-size").length>0?this.hideDifferentPartySize():(this.options.BookingLayer.normalizeCustomerCategories(),this.options.BookingLayer.normalizeVehiclesAndTrailers(),this.showDifferentPartySize());this.render()},updateHeight:function(){if(this.options.alignment==="vertical"){var n=this.$el.find(".return-details"),t=this.$el.find(".outward-details"),i=n.parent().hasClass("collapsed"),u=t.height("auto").height(),f=i?u:n.height("auto").height(),r="270px";n.css({minHeight:r,visibility:i?"hidden":"visible"});t.css({minHeight:r})}},showDifferentPartySize:function(){var t=this;if(!this.isReturnTripAllowed())return!1;this.setPartySize(!0);this.$el.find(".step-passengers-and-vehicles").removeClass("collapsed");this.setInitialValues();this.options.alignment=="vertical"?(this.$outwardDetails.find(".change-partysize a").html("&nbsp;").addClass("no-underline"),this.$el.find(".return-details .change-partysize a").html(n.AppText.FindAndBook.SamePartySize).removeClass("no-underline")):(this.$returnDetails.find(".change-partysize a").html(n.AppText.FindAndBook.SamePartySize).removeClass("no-underline"),this.$outwardDetails.find(".change-partysize a").hide());this.$el.find(".hide-on-diff").slideUp();this.$el.find(".return-header-row").slideDown(t.slideDownDuration,t.slideEasing);this.$el.find(".outward-header-row").slideDown({duration:t.slideDownDuration,easing:t.slideEasingIn,complete:function(){t.resizeVerticalDividers();t.options.alignment=="horizontal"&&(t.animations.diffPartysizeAnimationShow.top=t.$el.find(".span23").outerHeight()-21,t.heightToSet=t.$el.find(">.row").outerHeight()-10,t.$el.animate({height:t.heightToSet*2},t.slideOutDuration,t.slideEasingIn));t.$el.find(".outwards-icon").css("display","inline-block");t.$el.find(".return-icon").css("display","inline-block");t.updateHeight();t.animations.diffSlideElement.addClass("shadow");t.animations.diffSlideElement.animate(t.animations.diffPartysizeAnimationShow,t.slideOutDuration,t.slideEasingIn,function(){t.$el.find(".return-details").addClass("different-party-size");t.$el.find(".step-passengers-and-vehicles").addClass("expanded");t.updateContinueBtn()})}})},hideDifferentPartySize:function(){var t=this;t.animations.diffSlideElement.removeClass("different-party-size");t.animations.diffSlideElement.removeClass("shadow");this.setPartySize(!1);t.animations.diffSlideElement.animate(t.animations.diffPartysizeAnimationHide,t.slideOutDuration,t.slideEasingIn,function(){t.$el.find(".return-header-row").slideUp(t.slideDownDuration,t.slideEasing);t.$el.find(".outwards-icon").hide();t.$el.find(".return-icon").hide();t.$el.find(".hide-on-diff").show("fast");t.options.alignment=="vertical"?(t.$outwardDetails.find(".change-partysize a").html(n.AppText.FindAndBook.DifferentPartySize).hide().removeClass("no-underline"),t.$outwardDetails.find(".change-partysize a").clearQueue(),t.options.BookingLayer.attributes.OneWay||t.$outwardDetails.find(".change-partysize a").show()):t.$outwardDetails.find(".change-partysize a").html(n.AppText.FindAndBook.DifferentPartySize).removeClass("no-underline");t.$el.find(".outward-header-row").slideUp({duration:t.slideDownDuration,easing:t.slideEasing,complete:function(){t.options.BookingLayer.normalizeCustomerCategories();t.options.BookingLayer.normalizeVehiclesAndTrailers();t.animations.diffSlideElement.find(".change-partysize a").addClass("no-underline");t.updateContinueBtn();t.options.alignment=="horizontal"&&t.$el.css("height","auto");t.resizeVerticalDividers();t.updateHeight()}});t.$el.find(".step-passengers-and-vehicles").removeClass("expanded").addClass("collapsed")})},handleReturnRoute:function(n,t){var i=this.$el.find(".js-hide-if-no-returnroute"),r=this.$el.find("input").filter("[data-type=out]").parent(),u=this.$el.find(".change-partysize");n||(i.remove(),u.remove());t||(i=this.$el.find(".js-hide-if-oneway-notallowed"),i.remove());this._handleCustomerCategoriesViews(n);this._layoutDatepicker(r,n)},handleOfferCodeVisibility:function(n,t,i){var u=this.$el.find(".step-options"),r=u.find('[name="offercode"]'),f=u.find('[name="offercodesecurityid"]'),e,o;return r.length===0?!1:n?(u.removeClass("_hide"),r.parent().removeClass("_hide"),e=_utils.getDeviceType()==="tablet",o=r.val()!=="",e&&o&&(r.closest(".row").removeClass("bottom"),r.closest("li").removeClass("show-extended-options")),this.handleSecurityCode(t,i,r,f),!0):(u.find(".row > div").length<=1?(u.addClass("_hide"),u.removeClass("show-extended-options")):r.closest(".row").addClass("_hide"),t&&f.val()!=""||(f.closest(".row").slideUp("fast"),f.closest(".row").addClass("_hide")),this.handleSecurityCode(t,i,r,f),!1)},handleSecurityCode:function(n,i,r,u){if(n||u.val()!=""){u.closest(".row").slideDown("fast");t(u).show();var f=this.$el.find(".step-options");f.show();i&&u.focus()}else i&&r.focus()},handleContractRateVisibility:function(n){var t=this.$el.find(".step-options"),i=t.find('[name="contractRate"]');return i.length===0?!1:n?(t.removeClass("_hide"),i.closest(".row").removeClass("_hide"),!0):!1},handleDayMonthViewVisibility:function(){var t=this.$el.find(".show-fares-by");t.length!==0&&(this.tripType!==n.tripTypeEnum.Efp&&(this.tripType!==n.tripTypeEnum.Cruise||!this.options.UiLayer.getEnableMonthView())&&(this.tripType!==n.tripTypeEnum.Daytrip||!this.options.UiLayer.getEnableMonthView())?t.closest(".row").addClass("_hide"):t.closest(".row").removeClass("_hide"))},handleOptionsContainerVisibility:function(){var n=this.$el.find(".step-options"),t=n.children(".row").not("._hide");t.length===0?n.hide():n.show()},_handleCustomerCategoriesViews:function(n){!n&&this.CustomerCategoriesHome&&this.CustomerCategoriesHome.remove()},_layoutDatepicker:function(n,t){t?n.addClass("icon-3").css({width:"80px"}):n.removeClass("icon-3").css({width:"190px"})},returnOnewaySelection:function(n){var u=n.target,i=this,r=this.$el.find(".hide-return"),f=u.closest(".c_radio-button");t(u).parents("span").addClass("selected").siblings().removeClass("selected");this.$el.is(":visible")?this.options.BookingLayer.attributes.OneWay?(setTimeout(function(){i.$el.addClass("one-way")},i.slideDownDuration+1),r.stop(!1,!1).slideUp({duration:i.slideDownDuration,easing:i.slideEasing,complete:function(){i.updateHeight()}}),this.options.BookingLayer.isDifferentPartySize&&i.$el.find(".change-partysize").length>0&&this.hideDifferentPartySize()):(this.$outwardDetails.find(".change-partysize a").css("display","block"),i.$el.removeClass("one-way"),r.stop(!1,!1).slideDown({duration:i.slideDownDuration,easing:i.slideEasing,complete:function(){i.updateHeight()}})):(i.$el.find('input[type="radio"]').removeAttr("checked").button("refresh"),this.$el.hasClass("m_find_and_book_ferry")?f.find('input[name="one-way_return_ferry"]').attr("checked","checked").button("refresh"):f.find('input[name="one-way_return_transfer"]').attr("checked","checked").button("refresh"),this.options.BookingLayer.attributes.OneWay?(i.$el.addClass("one-way"),r.hide(),i.updateHeight(),this.options.BookingLayer.isDifferentPartySize&&i.$el.find(".change-partysize").length>0&&this.hideDifferentPartySize()):(this.$outwardDetails.find(".change-partysize a").css("display","block"),i.$el.removeClass("one-way"),r.show(),i.updateHeight()));this.renderVehicleView()},_categoryHasBeenDisplayed:{},showExtraChoice:function(n){n.preventDefault();var e=this,r=t(n.currentTarget),i=t(n.currentTarget).data("showchoice"),u=r.data("trigger-elem"),f=this.$el.find(".row.select-"+i);this._categoryHasBeenDisplayed[i]=!0;f.show();this.$el.find("."+u).hide();this.updateHeight()}};n.getViewHelper=n.getViewHelper||function(t){return n.ViewHelpers[t]}}(window.STENA=window.STENA||{},jQuery),function(n,t){n.Footer=n.MasterView.extend({el:".m_footer",init:function(){t('a[class*="no-follow"]',this.$el).on("click",function(n){n.preventDefault()})}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.HubPage=n.MasterView.extend({el:".m_hub_page",init:function(){var n=this;t(window).on("BookingModel:ready",function(){n.bootstrap()})},bootstrap:function(){}})}(window.STENA=window.STENA||{},jQuery),function(n){n.MemberDataSpot=n.MasterView.extend({el:".m_member_data_spot",init:function(){}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.MyBookings=n.MasterView.extend({el:".m_my_bookings",init:function(){this.initSubViews();var i=this,u=this.$el.data(),f=t('input[id$="tbBookingRef"]',this.$el),e=t('input[id$="tbName"]',this.$el),r=t(".mypage-bookings li");f.on("keyup paste",function(){var f=this;setTimeout(function(){var o=t(f).val(),s,c,e,h;o.length>0?(i.hideAllRows(r),s=t(".booking-row"),s.length>0&&(c=i.findAndShowBookings(s,o),!c&&i.isValisResNo(o)&&(e=_.find(i.options.collection.models,function(n){return n.id===o}),h=t(".searchedBooking-row"),e?i.updateAndShowBooking(e.attributes,h.data()):(n.Wrapper.freezeUI({showOverlay:!0}),i.options.collection.remove(i.options.collection.models),i.options.collection.addModel({reservationCode:o,salesOwner:u.salesowner,language:u.lang,onSuccess:function(t){i.model=t;e=t.getData();e.ResCode&&(i.updateAndShowBooking(e,h.data()),i.views.searchBooking.setReservationCode(e.ResCode),n.Wrapper.unFreezeUI());n.Wrapper.unFreezeUI()}}))))):o.length==0&&i.showAllRows(r)},10)}).on("keypress",function(n){(n.keyCode==10||n.keyCode==13)&&n.preventDefault()});e.on("keyup paste",function(){var n=t(this).val(),u;n.length>0?(i.hideAllRows(r),u=t(".booking-row"),u.length>0&&_.each(u,function(i){var r=t(i),u=r.data();u.custname.toString().toUpperCase().indexOf(n.toUpperCase())!=-1&&r.show()})):n.length==0&&i.showAllRows(r)}).on("keypress",function(n){(n.keyCode==10||n.keyCode==13)&&n.preventDefault()})},hideAllRows:function(n){n.each(function(){this.style.display="none"})},showAllRows:function(n){n.each(function(){this.style.display=""})},findAndShowBookings:function(n,i){var r=!1;return _.each(n,function(n){var u=t(n),f=u.data();f.rescode.toString().indexOf(i)!=-1&&(u.show(),r=!0)}),r},isValisResNo:function(n){return isNaN(n)||n.length!=8?!1:!0},updateAndShowBooking:function(n,i){var r=n.ResCode;n.ResCode&&(n.IsCancelled&&i.cancelledtext&&(r=r+i.cancelledtext),t(".searchedBooking-row .booking-number").html(r),t(".searchedBooking-row .booking-agentname").html(n.Name),t(".searchedBooking-row .booking-routeOut").html(n.RouteOutShort),t(".searchedBooking-row .booking-timeOut").html(n.DepartureOutShort),t(".searchedBooking-row .booking-routeHome").html(n.RouteHomeShort),t(".searchedBooking-row .booking-timeHome").html(n.DepartureHomeShort),t(".searchedBooking-row").show())},initSubViews:function(){var i=this,u=this.$el.find(".booking-row"),r=this.$el.data();this.views={};u.length>0&&_.each(u,function(u){var e=t(u),f=e.data();i.views[f.rescode]=new n.MyBookingsRowView({el:u,collection:i.options.collection,reservationCode:f.rescode,salesOwner:r.salesowner,language:r.lang})});i.views.searchBooking=new n.MyBookingsRowView({el:t(".searchedBooking-row"),collection:i.options.collection,reservationCode:0,salesOwner:r.salesowner,language:r.lang})}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.MyBookingsRowView=n.MasterView.extend({init:function(){this.setEventBindings()},setEventBindings:function(){var i=this;this.$el.on({click:function(r){return n.Wrapper.freezeUI({showOverlay:!0}),i.model&&i.model.off("change",this.render),i.options.collection.addModel({reservationCode:i.options.reservationCode,salesOwner:i.options.salesOwner,language:i.options.language,onSuccess:function(u){i.model=u;n.Wrapper.unFreezeUI();var f=new n.AmendmentLightbox({model:u,row:i,open:t(r.currentTarget).data("amendmenttype")});u.on("change",i.render,i)}}),r.preventDefault(),!1}},".js-amend-booking")},render:function(){return this.model.isCancelled()?this.$el.addClass("is-cancelled"):this.$el.removeClass("is-cancelled"),this},setReservationCode:function(n){this.options.reservationCode=n}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.MyPages=n.MasterView.extend({el:".m_my_pages",init:function(){var i=this;t(".divAddOffers").hide();this.instanceTabs();this.alignMainCol2();this.toggleResponsiveMenu();this.$el.on({click:function(n){i.handleButtonLoaders(t(n.currentTarget))}},".js-confirm");this.initFormValidation();this.handleSubmission();this.expose("myPages",{showValidations:function(n,t){this.validateForm(!1,{scope:this.$el.find(t.scope),validations:n,calloutPosition:t.calloutPosition})},reInitForms:function(){this.initFormValidation();this.handleSubmission();this.handleForgotPassword();this.resetChecks();this.QAS=new n.m_qas}});i.$el.find("select.qasCountry").bind("change",function(){var n=this.value;i.handleQasButton(n)});this.handleForgotPassword()},HideEditForm:function(){var n=t('input[id*="cbAddDigitalConfirm"]',this.$el);n.bind("change",function(){var n=t(this).prop("checked");n?t("#<%=divAddOffers.ClientID%>").show():t("#<%=divAddOffers.ClientID%>").hide()})},ChangeDigitalCB:function(){var n=t('input[id*="cbAcceptEmailOffer"]',this.$el.context),i=t('input[id*="cbPhone1AcceptSmsOffer"]',this.$el.context),r=t('input[id*="cbDigitalConfirm"]',this.$el);r.bind("change",function(){var r=t(this).prop("checked");r||(n.prop("checked")&&n.prop("checked",!1).button("refresh"),i.prop("checked")&&i.prop("checked",!1).button("refresh"))})},resetChecks:function(){var u=t('input[id*="cbExtraConfirm"]',this.$el),o=t('input[id*="cbJoinConfirm"]',this.$el),i=t('input[id*="cbAcceptEmailOffer"]',this.$el.context),f=t('input[id*="cbPhone1AcceptSmsOffer"]',this.$el.context),e=t('input[id*="cbAcceptPostOffer"]',this.$el.context),r=n.ExtraOptInSettings;o.bind("change",function(){var n=t(this).prop("checked");u.prop("checked")?u.prop("checked",!1).button("refresh"):u.prop("checked","checked").button("refresh");r.preselectemail&&i&&(i.prop("checked")||i.prop("checked","checked").button("refresh"),r.forceacceptemail&&i.prop("disabled",n).button("refresh"));r.preselectsms&&f&&!f.prop("checked")&&f.prop("checked","checked").button("refresh");r.preselectpostal&&e&&!e.prop("checked")&&e.prop("checked","checked").button("refresh")})},handleForgotPassword:function(){var f=this,r="#forgotPassword",s="/GeneralAjaxPage.aspx?sublayoutID=%7b9AFED25F-B604-45D9-B9FC-0D6B0AD24F2F%7d",u="forgotPasswordContainer",e='a[href="'+r+'"]',t,i,o=function(){i.modal("show");n.Wrapper.unFreezeUI();f.$el.on({click:function(){i.modal("show")}},e)};this.$el.find(e).one({click:function(){t=n.$body.find("#"+u);i=t.find(r);n.Wrapper.freezeUI({showOverlay:!0});t.length===0?(n.$body.append('<div id="'+u+'"/>'),t=n.$body.find("#"+u),t.load(s+" "+r,function(){i=t.find(r);var u=new n.Lightbox({$modal:i,userModel:f.options.userModel});o()})):o()}})},handleQasButton:function(n){var i=t(".QasSelectCountries");t(".open-qas").hide();t(".open-qas-text").hide();i.each(function(){var i=t(this);t(i).children("option").each(function(){t(this).val().toUpperCase()===n.toUpperCase()&&(t(".open-qas").show(),t(".open-qas-text").show())})})},tabMap:{myBookings:function(){var t=new n.MyBookings({collection:new n.AmendmentDataCollection});delete this.tabMap.myBookings}},instanceTabs:function(){var t=this;this.mypagesTabs=new n.widgets.tabmenu({el:this.el,hover:!1,initTab:parseInt(this.$el.data("inittab"),10),ignoreMouseLeave:!0,tipPosition:"right",onInit:function(n,i){var r=i.$tabPages.eq(n).attr("id");r&&t.tabMap[r]&&t.tabMap[r].apply(t)},before:function(n,i,r){var u=r.$nextPage.attr("id");u&&t.tabMap[u]&&t.tabMap[u].apply(t)}})},events:{"click .change-password":"resetModal","click .delete-profile":"resetModal","click .edit-familiy-member":"editFamilyMember","click .confirm-change-password":"handleButtonLoaders","click .open-qas":"resetModal"},handleSubmission:function(){var i=this;_utils.submitForm(n.$body,null,{ignoreKeyboard:!0,before:function(n){var r=t(n.currentTarget).data("validateref");return i.validateForm(i[r],i[r].options)}})},initFormValidation:function(){var n=this.$el.find("#deleteProfileModal"),t=this.$el.find("#changePasswordModal"),i=this.$el.find("#addFamilyFormArea");this.myPageform=_utils.initValidation(this.el,{scope:this.$el.find(".js-mypages-validationscope"),addClassRules:!0});this.changePasswordForm=_utils.initValidation(t[0],{scope:t,calloutPosition:"bottom"});this.deleteProfileForm=_utils.initValidation(n[0],{scope:n,calloutPosition:"bottom"});this.addFamilyMemberForm=_utils.initValidation(i[0],{scope:i})},validateForm:function(n,t){return validations=t.validations||n.validate(),validations?(this.validationStatus=this.options.validationHandler.exec(validations,{el:t.scope[0],calloutPosition:t.calloutPosition||"top"}),!1):!0},handleButtonLoaders:function(t){n.Wrapper.handleLoading(t)},resetModal:function(n){var r=t(n.currentTarget),u=r.attr("href").replace("#",""),i=t("#"+u);i.find(".validation-error").hide();i.find("input[type=password]").val("");n.preventDefault()},editFamilyMember:function(n){n.preventDefault();this.editfamilyFold.overrrideToggle()},alignMainCol2:function(){t(".main-col2").addClass("top0")},toggleResponsiveMenu:function(){var n=t(".tab-id-2");n.children("li").addClass("show");n.addClass("menu-open")}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.m_qas=n.MasterView.extend({el:".m_qas",resultList:[],init:function(){var i=this,e=t('input[id$="bnSearch"]',this.$el),o=t('img[id$="imgLoading"]',this.$el),u=t('input[id$="bnUseAddress"]',this.$el),f=t('select[id$="lbAddressList"]',this.$el),r=t('span[id$="lbError"]',this.$el),s=t('span[id$="lbSuccess"]',this.$el),h=t('span[id$="lblResults"]',this.$el);n.m_qas_texts&&i.setCountryFields(n.m_qas_texts.startCountry);i.$el.on("change",'select[id$="ddQASCountries"]',function(){r.text("").parent().hide();var n=t(this).val();i.setCountryFields(n)});e.on("click",function(c){if(c.preventDefault(),!t(this).hasClass("btn-disabled")){t(this).addClass("btn-disabled");u.hasClass("btn-disabled")||u.addClass("btn-disabled");r.text("").parent().hide();s.text("").parent().hide();o.show();f.children().remove();i.resultList=[];var a=t('select[id$="ddQASCountries"]',i.$el).val(),p=t('input[id$="tbBuilding"]',i.$el).val(),w=t('input[id$="tbStreet"]',i.$el).val(),b=t('input[id$="tbTown"]',i.$el).val(),v=t('input[id$="tbQasPostalCode"]',i.$el).val(),l="",y="IRL";(v||a===y)&&(!p||(l=p),!w||a!==y||(l+=(l?", ":"")+w),!b||a!==y||(l+=(l?", ":"")+b),!v||(l+=(l?", ":"")+v));t.ajax({url:"/services/QasService.asmx/Search",type:"POST",contentType:"application/json; charset=UTF-8",dataType:"json",data:'{ "request": { "CountryCode": "'+a+'", "SearchString": "'+l+'", "PostCode": "'+v+'", "SalesOwnerId": "0", "SalesChannelCode": "PIB", "DialogueName": "EFP" } }',success:function(s){var v="",y,c,l,a;if(s.d.Result===0){if(y=n.m_qas_texts,c=s.d.List,c.length>0){for(l=0;l<c.length;l++)i.resultList.push(c[l]),f.append(t("<option>",{value:l,text:c[l].Preview}));u.removeClass("btn-disabled");y&&(v=y.searchresult+"("+c.length+")",h.text(v).parent().show())}}else if(a=n.m_qas_texts,a){switch(s.d.Result){case 5:r.text(a.toomanyresults).parent().show();break;case 6:r.text(a.nomatchingaddresses).parent().show();break;default:r.text(a.missingsearchquery).parent().show()}v=a.searchresult;h.text(v).parent().show()}e.removeClass("btn-disabled");o.hide()}})}});u.on("click",function(r){if(r.preventDefault(),!t(this).hasClass("btn-disabled")){s.text("").parent().hide();var e=t('select[id$="ddQASCountries"]',i.$el).val(),u=t("option:selected",f).prop("value");u!==""&&t.each(i.resultList,function(r){var f,o;if(r===parseInt(u)){i.fillForm(r,e);f=n.m_qas_texts;f&&(o=t(".qasModal"),o.hide());return}})}})},fillForm:function(n,i){var r=this,f=t(".qasAddress"),e=t(".qasPostalCode"),o=t(".qasPostalAddress"),s=t(".qasCountry"),u="";f.length!==0&&e.length!==0&&o.length!==0&&s.length!==0&&(r.resultList[n].Address1&&(u+=r.resultList[n].Address1),r.resultList[n].Address2&&(u+=", "+r.resultList[n].Address2),f.val(u),e.val(r.resultList[n].PostalCode),o.val(r.resultList[n].Town),s.customSelect("setValue",i))},setCountryFields:function(n){n==="IRL"?(t("#divQasStreet").show(),t("#divQasTown").show(),t("#divQasPostCode").hide()):(t("#divQasStreet").hide(),t("#divQasTown").hide(),t("#divQasPostCode").show())}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.m_scriptspot=n.MasterView.extend({el:".m_scriptspot",init:function(){},executeScript:function(n){t.each(n,function(n,t){_utils.executeStenaScript(t)})}})}(window.STENA=window.STENA||{},jQuery),function(n){n.PointsCalculator=n.MasterView.extend({el:".m_points_calculator",init:function(){var n=this},reInitAfterAsync:function(){n.Wrapper.renderCustomUI("#PointsCalculator")}})}(window.STENA=window.STENA||{},jQuery),function(n,t,i){n.ReviewForm=n.MasterView.extend({el:".m_review_form",init:function(){var i=t(this.options.el),n=this;this.getNickname();n.$el.on("click",'a[id$="btnSend"]',function(){n.sendForm()})},getNickname:function(){for(var u=document.getElementsByClassName("BVAuthorPath"),f,i,n,e,o,r=0;r<u.length;++r)f=u[r].value;for(i=document.getElementsByClassName("nicknameid"),n=0;n<i.length;++n)e=i[n].value;o=f+e;t.get(o,{},function(n){if(n.HasErrors==!1)for(result in n.Results)n.Results.hasOwnProperty(result)&&(document.getElementById("nickname").value=n.Results[result].UserNickname,document.getElementById("nickname").disabled=!0)})},sendForm:function(){for(var e="&Title="+document.getElementById("title").value,o="&ReviewText="+document.getElementById("review").value,s="&UserNickname="+document.getElementById("nickname").value,r=document.getElementsByClassName("BVSendPath"),u,f,n=0;n<r.length;++n)u=r[n].value;f=u+e+o+s;t.post(f,{},function(n){var r,o,u,f,e;if(n.HasErrors==!0){r="";for(o in n.FormErrors)if(n.FormErrors.hasOwnProperty(o)){u=n.FormErrors[o];for(f in u)u.hasOwnProperty(f)&&u[f].Message!=i&&(r=r+"<br/>"+u[f].Message)}for(e in n.Errors)n.Errors.hasOwnProperty(e)&&n.Errors[e].Message!=i&&(r=r+"<br/>"+n.Errors[e].Message);document.getElementById("litError").innerHTML=r;t("#errorDiv").removeClass("_hide")}else window._cc=window._cc||[],window._cc.push(["ci",{sid:"54b684cc-4b18-4193-be5f-9548d46cabaa"}]),window._cc.push(["cf",1022963]),window._cc.push(["run",("https:"==document.location.protocol?"https://":"http://")+"uk.cdn-net.com"]),window._cc.push(["ci",{tid:n.SubmissionId}]),window._cc.push(["csd",function(){t("#BVForm").addClass("_hide");t("#BVSent").removeClass("_hide")}])})}});t(document).ready(function(){var n=50;t("#textarea_feedback").html(n+" "+t("#textarea_feedback").data("text"));t("#review").keyup(function(){var r=t("#review").val().length,i=n-r;i<="0"?t("#textarea_feedback").html("OK"):t("#textarea_feedback").html(i+" "+t("#textarea_feedback").data("text"))})})}(window.STENA=window.STENA||{},jQuery),function(n){n.ReviewSpot=n.MasterView.extend({el:".m_review_spot",init:function(){this.$el.find(".expandable").expander({slicePoint:200,expandText:"Read more",userCollapseText:"Read less"})}})}(window.STENA=window.STENA||{},jQuery),function(n,t){var i=!0;window.renderMapQueue=[];var r=[],u=function(n){return function(){_.each(n,function(n){n.called||n.method.apply(n.instance);n.called=!0})}},f=u(renderMapQueue,!0),e=u(r);n.RouteMapSpot=n.MasterView.extend({el:".m_route_map_spot",template:n.templates.map_route_info_box,canvasWidth:0,initialize:function(){var e=t(this.options.el),u;e.data("initialized")||(e.data("initialized",!0),this.canvas=e.find(".map_canvas"),u=this,renderMapQueue.push({method:u.renderMap,instance:u}),r.push({method:u.renderInfoboxes,instance:u}),n.googleMapsInitialize=n.googleMapsInitialize||f,u.destinationPageID=u.$el.data("destpageid"),u.startCoordinates=u.$el.data("coordinate"),(u.startCoordinates||"").match(/\d/)||(u.startCoordinates="56.604862, 11.738892"),u.zoomLevel=u.$el.data("zoomlevel")||7,u.collection=new n.mapRouteLayerCollection,this.collection.fetch({success:function(){window.google&&window.google.maps?f():i&&(u.loadScript("https://maps.googleapis.com/maps/api/js?client=gme-stenalinescandinavia&sensor=true&v=3.13&callback=STENA.googleMapsInitialize"),i=!1)}}))},loadScript:function(n,t){var u=this,i=document.createElement("script"),r;typeof t=="function"&&(r=!1,i.onload=i.onreadystatechange=function(){r||this.readyState&&this.readyState!=="loaded"&&this.readyState!=="complete"||(r=!0,t())});i.type="text/javascript";i.src=n;document.body.appendChild(i)},renderMap:function(){function i(){var t=n.canvas.is(":visible");t!==i.visible&&window.google.maps.event.trigger(n.map,"resize");i.visible=n.canvas.is(":visible")}var n=this,r=n.getLatLngFromString(n.startCoordinates),u={zoomControl:!0,zoomControlOptions:{style:google.maps.ZoomControlStyle.LARGE,position:google.maps.ControlPosition.LEFT_TOP},streetViewControl:!1,mapTypeControl:!1,panControl:!1,zoom:n.zoomLevel,center:r,mapTypeId:google.maps.MapTypeId.ROADMAP},t;n.map=new google.maps.Map(n.canvas.get(0),u);t=document.createElement("div");n.fullScreenControl(t,n.map);t.index=1;n.map.controls[google.maps.ControlPosition.TOP_LEFT].push(t);this.canvasWidth=this.$el.width();n.canvas.height(n.canvasWidth);window.InfoBox?e():n.loadScript("https://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/src/infobox.js",e);setInterval(i,500)},renderInfoboxes:function(){var n=this,u={url:"/assets/img/sprite.png",size:new google.maps.Size(30,40),origin:new google.maps.Point(32,469),anchor:new google.maps.Point(20,25)},i=[],f=n.$el.find(".infobox-wrapper"),r=n.canvas.parent().prepend('<div class="route-list-container"><ul class="route-list"><\/ul><\/div>');_.each(n.collection.models,function(e){var c=!1,l,s;t.inArray(n.destinationPageID,e.get("DestinationPages"))>=0&&(c=r.find("ul").append('<li class="btn btn-normal btn-continue float-r">'+e.get("Name")+"<\/li>").children(":last"));var v=f.append(n.template(e.attributes)).children(":last"),h=n.getLatLngFromString(e.get("MarkerCoordinate")),o=[],a=e.get("Coordinates");for(l in a)s=n.getLatLngFromString(a[l]),s&&o.push(s);!h&&o.length>0&&(h=o[Math.floor(o.length/2)]);i.push(new n.StenaInfobox(n.map,i,r,c,v,h,o,u))});_utils.renderLegends(this.$el,!1,290)},getLatLngFromString:function(n){if(n){var t=n.split(", ")[0],i=n.split(", ")[1];if(t&&i)return new google.maps.LatLng(t,i)}},StenaInfobox:function(n,t,i,r,u,f,e,o){function h(){for(var t in s.allBoxes)s.allBoxes[t].close();s.$li&&s.$li.addClass("stenablue-light").removeClass("btn-continue").append('<span class="tip-left"><\/span>');s.marker&&(s.infobox.open(n,s.marker),n.panTo(f))}function c(){s.$li&&(s.$li.find(".tip-left").remove(),s.$li.removeClass("stenablue-light").addClass("btn-continue"));s.marker&&s.infobox.close(n,s.marker)}var s=this;if(s.allBoxes=t,s.$li=r,s.infobox=new InfoBox({content:u.get(0),disableAutoPan:!1,maxWidth:150,pixelOffset:new google.maps.Size(-145,12),zIndex:null,boxStyle:{width:"300px"},closeBoxMargin:"12px 4px 2px 2px",closeBoxURL:"/assets/img/close-cross-googlemaps.png",infoBoxClearance:new google.maps.Size(1,1)}),f&&(s.marker=new google.maps.Marker({position:f,map:n,icon:o}),google.maps.event.addListener(s.marker,"click",h)),e&&e.length>0&&(s.polyline=new google.maps.Polyline({path:e,strokeColor:"#0e3c89",strokeOpacity:.5,strokeWeight:5}),s.polyline.setMap(n)),google.maps.event.addListener(s.infobox,"closeclick",c),s.$li)s.$li.on("click",h);return{open:h,close:c}},fullScreenControl:function(n,i){var u=this,r;n.style.paddingLeft="3px";n.style.paddingTop="9px";r=document.createElement("div");r.style.cursor="pointer";r.style.backgroundImage="url('/assets/img/sprite.png')";r.style.backgroundPosition="0px -480px";r.style.width="30px";r.style.height="30px";r.title="Change the map size";n.appendChild(r);google.maps.event.addDomListener(r,"click",function(){t(".map-container").toggleClass("full-screen");t(".map-container").hasClass("full-screen")?u.canvas.css("height",""):u.canvas.height(u.canvasWidth);google.maps.event.trigger(i,"resize");window.location.hash="map-open"});t(window).on("hashchange",function(){window.location.hash!="#map-open"&&t(".map-container").hasClass("full-screen")&&(t(".map-container").removeClass("full-screen"),u.canvas.height(u.canvasWidth))})}})}(window.STENA=window.STENA||{},jQuery),function(n){n.RoutePlannerSpot=n.MasterView.extend({el:".m_route_planner_spot",init:function(){}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.RssFeedSpot=n.MasterView.extend({el:".m_rss_feed_spot",template:n.templates.rss_feed,init:function(){this.renderRss()},renderRss:function(){var i=this,f=this.$el.data(),r=f.rssfeed,e,n,u,o,s;if(r){e=i.$el.find(".tpl_rssFeed-target");try{n=t.parseXML(r);u=t(n)}catch(h){n=r;u=t(n)}o=i.getXMLTemplateData(u,f);s=i.template(o);e.html(s)}else t(".rss-error").show()},getDecodedString:function(n){var t=document.createElement("description");return t.innerHTML=n,t.innerText?t.innerText:n.replace("<!--[CDATA[","").replace("]]-->","")},getXMLTemplateData:function(n,i){var s=this,f={},e=[],o="",r="",u="";return n.find("item").each(function(){var n={},h,f;n.title=t(this).find("title").text();i.showpubdate==="True"&&(o=t(this).find("pubDate").text(),h=new Date(o),n.showpubdate=!0,n.date=h.toLocaleDateString(i.language));r=t(this).find("description").text();r===""&&(r=t(this).find("description").html());i.showpartdesc==="True"&&r&&!isNaN(i.numberofchars)&&i.numberofchars>0&&(r=r.slice(0,i.numberofchars)+"...");n.desc=s.getDecodedString(r);n.readmore=i.readmore;u=t(this).find("link").text();u===""&&(u=t(this).find("guid").text());n.link=u;f=t(this).find("enclosure");f.length>0&&(n.imageUrl=f[0].attributes.url.nodeValue);e.push(n)}),f.entries=e,f}});t(window).on("load",function(){t(".rss-wrapper").filter(":lt(2)").show().addClass("_visible")})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.RssJobsFeedSpot=n.MasterView.extend({el:".m_rss_jobs_feed_spot",template:n.templates.rss_jobs_feed,init:function(){this.renderRss()},renderRss:function(){var i=this,u=this.$el.data(),n=u.rssfeed,f,e,r,o,s;if(n){n=n.replace(/\'/g,'"');f=i.$el.find(".tpl_rssJobsFeed-target");try{r=t(t.parseXML(n))}catch(h){e=n;r=t(e)}o=i.getXMLTemplateData(r,u);s=i.template(o);f.html(s)}else t(".rss-error").show()},getXMLTemplateData:function(n,i){var r={},u=[],f="";return n.find("item").each(function(){var n={},r;n.title=t(this).find("title").text();n.country=t(this).find("country").text();n.areatwo=t(this).find("areatwo").text();f=t(this).find("pubDateTo").text();r=new Date(f);n.showpubdateTo=!0;n.dateTo=r.toLocaleDateString(i.language);n.link=t(this).find("linknode").text();u.push(n)}),r.entries=u,r}});t(window).on("load",function(){t(".rss-wrapper").filter(":lt(2)").show().addClass("_visible")})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.StandardList=n.MasterView.extend({el:".m_standard_list",init:function(){var n=this;t(window).on("BookingModel:ready",function(){n.bootstrap()})},bootstrap:function(){}})}(window.STENA=window.STENA||{},jQuery),function(n,t){n.TimeTableSpot=n.MasterView.extend({el:".m_time_table_spot",template:n.templates.time_table_departures,init:function(){var i=this,r=0;i.searchForDepartures(r);i.$el.on("change",'select[id$="ddRoutes"]',function(){i.searchForDepartures(r)});i.$el.on("change",'input[id$="tbSearchDate"]',function(){i.searchForDepartures(r)});i.$el.on("click",'input[id$="bnEarlierDepartures"]',function(){t(this).hasClass("btn-disabled")||i.searchForDepartures(-1)});i.$el.on("click",'input[id$="bnLaterDepartures"]',function(){i.searchForDepartures(1)});this.$el.hasClass("_02")&&(this.tabs=new n.widgets.tabmenu({el:this.el,hover:!1,ignoreMouseLeave:!0,tipPosition:"right"}));i.bootstrap()},searchForDepartures:function(n){var r=this,o=this.$el.data(),s=this.$el.find('select[id$="ddRoutes"]'),u=t('select[id$="ddRoutes"]',r.$el).val(),d=t("option:selected",s).prop("innerHTML"),g=this.$el.find(".spanTab1"),f=this.$el.find(".spanTab2"),h=this.$el.find(".tabs"),c=this.$el.find(".horizontal-divider"),l=this.$el.find(".vertical-divider"),a,v,y,w;if(g.prop("innerHTML",d),o.salesowner&&u){var p=r.$el.find(".tpl_timeTableDepartures-target"),b=n.toString(),i=t('input[id$="tbSearchDate"]',r.$el).data("datepicker").selectedDates[0],k="",e="";i?e=i.getFullYear()+"-"+(i.getMonth()+1)+"-"+i.getDate():(i=new Date,e=i.getFullYear()+"-"+(i.getMonth()+1)+"-"+(i.getDate()+1));a=[];_.each(s.find("option"),function(n){a.push({code:t(n).attr("value"),name:t(n).text()})});v=JSON.stringify(a);r.getSloopDepartures(o,p,v,u,e,k,b,!1);u!=="ALL"?(f.prop("hidden",!1),h.removeClass("hide"),c.removeClass("hide"),l.removeClass("hide"),y=u.substr(2)+u.substr(0,2),w=r.getSelectedRouteNameOpposite(s,y),f.prop("innerHTML",w),p=r.$el.find(".tpl_timeTableDeparturesOpposite-target"),r.getSloopDepartures(o,p,v,y,e,k,b,!0)):(f.prop("hidden",!0),h.addClass("hide"),c.addClass("hide"),l.addClass("hide"))}else f.prop("hidden",!0),h.addClass("hide"),c.addClass("hide"),l.addClass("hide")},getSelectedRouteNameOpposite:function(n,t){var i=_.find(n.find("option"),function(n){return n.value===t});return i?i.innerHTML:t},getSloopDepartures:function(n,i,r,u,f,e,o,s){var h=this,l=n.salesowner,a=n.ttmode,v=n.bookparam,c=i.find("td");c.css("opacity",.5);c.html("&nbsp;");t.ajax({url:"/services/TimeTableService.asmx/Search",type:"POST",contentType:"application/json; charset=UTF-8",dataType:"json",data:'{ "request": { "RouteList": '+r+', "Route": "'+u+'", "SearchDate": "'+f+'", "SearchTime": "'+e+'", "SalesOwnerId": "'+l+'", "DateDiff": "'+o+'", "TimeTableModeType": "'+a+'", "BookingDestParameters": "'+v+'"} }',success:function(t){var r,f,e;try{t.d.Result===0&&(r=t.d.List,f=h.getTemplateData(r,n),f.departures.length>0?(h.hideBlockMessage(s),e=h.template(f),i.html(e),h.updateDateAndButtons(t.d.SearchDate,t.d.ShowEarlierBtn),h.displayRouteMessage(r,u),h.reInitAfterAsync()):h.showBlockMessage(s))}catch(o){}c.css("opacity",1)}})},showBlockMessage:function(n){var t=this.getCurrentElement(n);t.find(".block-message").show();t.find(".departure-table").hide()},hideBlockMessage:function(n){var t=this.getCurrentElement(n);t.find(".block-message").hide();t.find(".departure-table").show()},getCurrentElement:function(n){return n?this.$el.find(".tab-2"):this.$el.find(".tab-1")},getTemplateData:function(n,t){var r={},i;return n.length>0&&(i=_.find(n,function(n){return n.AlternativeRoute===!0}),i&&(i.firstAlternativeRoute=!0,i.AlternativeRouteText=t.altroute),_.each(n,function(n){n.CallOutLeadText=t.callout;n.CallOutLeadTextCheckIn=t.calloutcheckin;n.BookNowText=t.booknow;n.CheckInInfo=t.vehcheckin.replace("%%CHECK_IN_TIME%%",n.VehCheckIn)+" "+t.passcheckin.replace("%%CHECK_IN_TIME%%",n.PassCheckIn)})),r.departures=n,r},updateDateAndButtons:function(n,i){var e=t('input[id$="tbSearchDate"]',self.$el),r=e.data("datepicker"),o=r.selectedDates[0]||r.opts.startDate,u=new Date(n),f=t('input[id$="bnEarlierDepartures"]',self.$el);o.getTime()!==u.getTime()&&r.selectDate(u);i!=="True"?f.addClass("btn-disabled"):f.removeClass("btn-disabled")},displayRouteMessage:function(n,i){this.$el.find(".showcase-list-item").each(function(){var u=t(this),r=u.data("route").indexOf(i)!=-1;r||_.each(n,function(n){return r=r||u.data("route").indexOf(n.RouteCode)!=-1,!r});r?u.show():u.hide()})},bootstrap:function(){this.events={"click ul.tabs li":"toggleTimetable"}},toggleTimetable:function(n){var i=t(n.target).closest("li"),r=i.closest(".row"),u=i.closest("ul"),f=i.attr("data-tab"),e=r.find("."+f);u.find("li").removeClass("current");r.find(".tab-content").removeClass("current");i.addClass("current");e.addClass("current")},reInitAfterAsync:function(){n.Wrapper.renderCustomUI(".m_time_table_spot");_utils.renderToolTips(".m_time_table_spot")}})}(window.STENA=window.STENA||{},jQuery),function(n){n.VrImage=n.MasterView.extend({el:".m_vr_image",init:function(){this.removeEmptyLabels();this.$(".js-popup-image").magnificPopup({type:"image",gallery:{enabled:!0}});this.$(".js-popup-video").magnificPopup({type:"iframe"})},removeEmptyLabels:function(){var n=$(".label-container");n.each(function(){var n=$(this);$.trim(n.text()).length==0?n.remove():$(".label-container").addClass("bottom15")})}})}(window.STENA=window.STENA||{},jQuery),function(n,t){function h(n,t){var r=this;i.overlayMapTypes.length&&i.overlayMapTypes.removeAt(0);jQuery_1_8_3(".date-link").removeClass("chosen");typeof t!="undefined"?jQuery_1_8_3("#step_"+n+"_"+t).addClass("chosen"):jQuery_1_8_3("#maplink").addClass("chosen");i.overlayMapTypes.insertAt(0,new e(new google.maps.Size(256,256),n,t));jQuery_1_8_3("#legend").attr("src",s[n])}function e(n,t,i){var r=this;this.tileSize=n;this.parameter=t;this.timestep=i;this.minYtile=[0,0,0,1,2,4,8,16,32,64,128,256,512,1024];this.maxYtile=[0,0,3,6,13,27,55,111,223,447,895,1791,3583,7167];this.numXTiles=[0,0,4,8,16,32,64,128,256,512,1024,2048,4096,8192]}var o="uhe7hg9",i,r={},c=0,s=[],u="",f,l;window.renderWeatherMapQueue=[];f=[];l=function(n){return function(){_.each(n,function(n){n.called||n.method.apply(n.instance);n.called=!0})}};e.prototype.getTile=function(n,t,i){var f=i.createElement("div"),r=n.x%this.numXTiles[t],u;return r<0&&(r=this.numXTiles[t]+r),u=n.y,u>=this.minYtile[t]&&u<=this.maxYtile[t]&&(this.parameter==6?(c!=t&&(c=t),jQuery_1_8_3.getJSON("http://gma.foreca.com/tilesym-json.php?x="+r+"&y="+u+"&z="+t+"&t="+this.timestep+"&cid="+o,function(n){drawSymbols(n)})):f.innerHTML='<img src="http://gma.foreca.com/tile.php?x='+r+"&y="+u+"&z="+t+"&t="+this.timestep+"&p="+this.parameter+"&cid="+o+'" />'),f};n.WeatherMapSpot=n.MasterView.extend({el:".m_weather_map_spot",template:n.templates.map_route_info_box,canvasWidth:0,updateDataInfo:function(){jQuery_1_8_3.getJSON("http://gma.foreca.com/info-json.php?lon="+i.getCenter().lng()+"&lat="+i.getCenter().lat()+"&cid="+o,function(n){jQuery_1_8_3.each(n,function(n,i){var o=[],e,l,a;if(n!="pid"){var o=i.UTC,w=i.Local,b=t("html").attr("lang"),k={weekday:"short",day:"numeric"},v=[],r,y,p;for(e=0;e<o.length;e++){r=w[e].toString();var d=r.substring(0,4),g=r.substring(4,6),nt=r.substring(6,8),c="";c=c.concat(d,"-",g,"-",nt);y=r.substring(8,10);p=r.substring(10,12);l=new Date(c);a=l.toLocaleDateString(b,k);v.push('<li id="step_'+n+"_"+o[e]+'" class="date-link float-l span3_5">'+a+" "+y+":"+p+"<\/li>")}f[n]=v;s[n]="../legends/"+i.pname+"-en.png";u==n&&(jQuery_1_8_3(".timestamps").html(f[u]),jQuery_1_8_3(".timestamps li").hover(function(){var n=jQuery_1_8_3(this).attr("id"),t=n.substring(5,7),i=n.substring(8);h(t,i)}))}})})},initialize:function(){var e=t(this.options.el),r,s,o;e.data("initialized")||(e.data("initialized",!0),this.canvas=e.find(".map_canvas"),r=this,renderWeatherMapQueue.push({method:r.renderMap,instance:r}),r.startCoordinates=r.$el.data("coordinate"),(r.startCoordinates||"").match(/\d/)||(r.startCoordinates="56.604862, 11.738892"),r.zoomLevel=7,r.collection=new n.mapRouteLayerCollection,jQuery_1_8_3(".param a").removeClass("selected"),jQuery_1_8_3(this).addClass("selected"),u="62",jQuery_1_8_3(".param a").click(function(){jQuery_1_8_3(".param a").removeClass("selected");jQuery_1_8_3(this).addClass("selected");u=jQuery_1_8_3(this).attr("id");typeof f[u]!="undefined"?(jQuery_1_8_3(".timestamps").html(f[u]),jQuery_1_8_3(".timestamps li").hover(function(){var n=jQuery_1_8_3(this).attr("id"),t=n.substring(5,7),i=n.substring(8);h(t,i)})):jQuery_1_8_3(".timestamps").html('<p style="color:red">Datalayer not available <\/p>')}),s=r.getLatLngFromString(r.startCoordinates),o={zoomControl:!0,zoomControlOptions:{style:google.maps.ZoomControlStyle.LARGE,position:google.maps.ControlPosition.LEFT_TOP},streetViewControl:!1,mapTypeControl:!1,panControl:!1,zoom:r.zoomLevel,center:s,mapTypeId:google.maps.MapTypeId.ROADMAP},i=new google.maps.Map(document.getElementById("map_canvas"),o),jQuery_1_8_3("#zoomlevel").html("zoom level:"+o.zoom),r.updateDataInfo())},loadScript:function(n,t){var u=this,i=document.createElement("script"),r;typeof t=="function"&&(r=!1,i.onload=i.onreadystatechange=function(){r||this.readyState&&this.readyState!=="loaded"&&this.readyState!=="complete"||(r=!0,t())});i.type="text/javascript";i.src=n;document.body.appendChild(i)},getLatLngFromString:function(n){if(n){var t=n.split(", ")[0],i=n.split(", ")[1];if(t&&i)return new google.maps.LatLng(t,i)}},drawSymbols:function(n){typeof n!="undefined"&&n!==null&&jQuery_1_8_3.each(n,function(n,t){var e=t.lat,o=t.lon,u=e+"_"+o,f,s;if(typeof r[u]!="undefined"&&r[u].setMap(null),f=t.symbol,s=t.temp,typeof f!="undefined"){var h="http://gma.foreca.com/symbols/"+f+".png",c=new google.maps.LatLng(e,o),l=new google.maps.Marker({position:c,map:i,icon:h});r[u]=l}})},removeSymbols:function(){for(var n in r)r[n].setMap(null),delete r[n]},getWeather:function(n,t){var r=this;i.overlayMapTypes.length&&i.overlayMapTypes.removeAt(0);jQuery_1_8_3(".date-link").removeClass("chosen");typeof t!="undefined"?jQuery_1_8_3("#step_"+n+"_"+t).addClass("chosen"):jQuery_1_8_3("#maplink").addClass("chosen");i.overlayMapTypes.insertAt(0,new e(new google.maps.Size(256,256),n,t));jQuery_1_8_3("#legend").attr("src",s[n])}})}(window.STENA=window.STENA||{},jQuery)