function GetCurrentLanguage(n="en"){var t=$("body").data("lang");return(t==null||t=="")&&(t=n),t}function SetupBookingUI(){function r(n,t,i,r=""){var o=t.closest(".bookingContainer"),e=o.find(".colNoResortMessage"),f=t.find(".search_all");e.addClass("hidden");t.removeClass("hidden");f.attr("destination-id",n);i=="simpleColumn"&&(f=t.find(">.search_all"),r!=""&&t.find(".menu ul").html(r),!t.find(".colNoResortMessage").length>0&&t.find(".menu ul").append(e[0].outerHTML),f.removeClass("hidden"),t.find(".menu").removeClass("hidden"),u(f));t.find(".menuItem.resort").not(".hidden").length<1&&f.hasClass("hidden")&&t.find(".colNoResortMessage").removeClass("hidden")}function u(n){var r=n.closest(".bookingContainer"),i=n.closest(".parentMenuItem").find(".menuItem.resort"),e=n.attr("destination-id"),u=r.find("[role='menuitem'][data-destinationid= "+e+"]"),f=r.find("#compactBookingPackage"),t="land";return i.removeClass("hidden"),n.removeClass("hidden"),f&&f.is(":checked")&&(t="package"),(t!="land"||u.hasClass("landItem"))&&(t!="package"||u.hasClass("packageItem"))||n.addClass("hidden"),t=="land"&&i.each(function(){$(this).not(".landItem").addClass("hidden")}),t=="package"&&i.each(function(){$(this).not(".packageItem").addClass("hidden")}),!0}var i=$(".dynamicBookingButton").attr("data-ClosePopup"),t,n;SetupA11y();$(".tabbedResortSelect").chosen({disable_search:!0});$(".tabbedBrandSelect").chosen({disable_search:!0});$(".tabbedTravelSelect").chosen({disable_search:!0});$(".tabbedAdults").chosen({disable_search:!0});$(".tabbedChild").chosen({disable_search:!0});SetupRoomTemplateUI();$("#bookingModalContainer").each(function(){var t=$(this),n=t.find(".bookingContainer"),u=n.find(".destInput"),e=n.hasClass("lightBookingContainer"),o,f;t.length>0?u.length>0||e&&!n.closest(".bookingBarLightBlock-container").hasClass("hidden")?(o=t.find(".title").text(),t.attr("aria-label",o),f="",f=u.length>0?".destInput":n.find(".column:not(.hidden) .bookingFormSubmit").first(),$(".dynamicBookingButton").magnificPopup({items:[{src:"#bookingModalContainer",type:"inline"}],closeBtnInside:!0,focus:f,showCloseBtn:!0,autoFocusLast:!0,tClose:i,callbacks:{open:function(){var s=$(this.st.el),h,c,l;let i=s.attr("data-resortId");i||(i=u.attr("data-resortId"));let t=s.attr("data-destinationId");t||(t=u.attr("data-destinationId"));h=$("#bookingModalContainer").find(".compactBookingItems");i&&i.length>0&&t.length>0&&window.resorts.toggleResortSelection&&($(this.content).find(".compactBookingContainer").attr("data-masterlevel")=="True"&&$(this.st.el).closest(".resortgridblock")?(c=n.find(".spinner"),l={destinationID:t,brandID:null,languageID:GetCurrentLanguage()},getString="/ResortsDestBookingEng/GetResorts",$.post(getString,l).done(function(n){r(t,h,"simpleColumn",n);window.resorts.toggleResortSelection(t,i)}).always(function(){c.addClass("hidden");$("#bookingModalContainer").find(".menu ul .spinner").addClass("hidden")})):window.resorts.toggleResortSelection(t,i));var e=$(this.content),o=e.find(".mfp-close"),v=e.find(".column-left .bookingFormSubmit"),a=e.find(".column-right .bookingFormSubmit");o.attr("aria-hidden","true");e.on("keydown",f,function(n){o.attr("aria-hidden","false");a.attr("aria-hidden","false");n.shiftKey&&n.keyCode==9&&(n.preventDefault(),$(n.target).parents(".column").hasClass("column-left")?o.focus():$(n.target).parents(".column").hasClass("column-right")?v.focus():$(n.target).hasClass("mfp-close")&&a.focus())})},close:function(){var n=$(this.content),t=n.find(".mfp-close"),i=n.find(".column-right .bookingFormSubmit");t.attr("aria-hidden","true");i.attr("aria-hidden","true")}}})):e&&n.closest(".bookingBarLightBlock-container").hasClass("hidden")?$(".dynamicBookingButton").addClass("hidden"):$(".dynamicBookingButton").magnificPopup({items:[{src:"#bookingModalContainer",type:"inline"}],closeBtnInside:!0,showCloseBtn:!0,autoFocusLast:!0,tClose:i}):$(".dynamicBookingButton").addClass("hidden")});$(".dynamicBookingButton").on("keydown",function(n){(n.which==13||n.which==32)&&$(this).click()});$(".bookingBarBlock-container").each(function(){var n=new Waypoint.Sticky({element:$(this).parent(".resortsbookingblock")})});$(".bookingBarDestBlock-container").each(function(){var n=new Waypoint.Sticky({element:$(this).parent(".resortsdestbookingblock")})});$(".resortsdestbookingblock .bookingBarLightBlock-container").each(function(){var n=document.documentElement.clientWidth||window.innerWidth,t;n>=768&&(t=new Waypoint.Sticky({element:$(this).parent(".resortsdestbookingblock")}))});$(".tabLandOnly, .tabPackage").on("keypress",function(n){var t=n.which;t==13&&$(this).click()});$(".tabbedResortSelect").trigger("chosen:updated");$(".tabbedBrandSelect").trigger("chosen:updated");$('input[name="dateRange"]').val("");t=$(".compactPointsWrapper");n=$(".compactPointsWrapper input");$(".compactBookingLand").on("click",function(){var i=$(this);SwapLandPackage(i,"land");$(".compactAirportRow").css("display","none");$("#compactTravelerRoomSelectWrapper").click(function(){$("#compactTravelerRoomSelectWindow").addClass("opened")});$(".compactRoomSelectWindow").click(function(){$("#compactTravelerRoomSelectWindow").removeClass("opened")});n&&!n.hasClass("blockedPointsWrapper")&&(n.removeAttr("disabled"),t.removeClass("disabledPointsWrapper"))});$(".compactBookingPackage").on("click",function(){var i=$(this);SwapLandPackage(i,"package");$(".compactAirportRow").css("display","block");n&&!n.hasClass("blockedPointsWrapper")&&(n.attr("disabled",!0),t.addClass("disabledPointsWrapper"),n.prop("checked",!1))});$(".tabbedTravelSelect").on("change",function(){var n=$(this),r=$(n).val();if(r&&r!=""){var t=$(".pointsWrapper"),i=$(".pointsWrapper input"),u=$(n).val().toLowerCase();u!="land"||t.hasClass("blockedPointsWrapper")?(i.attr("disabled",!0),t.addClass("disabledPointsWrapper"),i.prop("checked",!1)):(i.removeAttr("disabled"),t.removeClass("disabledPointsWrapper"));SwapLandPackage(n,u)}});$(".tabbedResortSelect, .tabbedBrandSelect").on("change",function(){ResetRoomsDiv($(this).data("bookingguid"))});$(".tabLandOnly").on("click",function(){var t=$(this).siblings("li"),n=$(this);n[0].setAttribute("aria-selected",!0);n[0].setAttribute("aria-expanded",!0);t[0].setAttribute("aria-selected",!1);t[0].setAttribute("aria-expanded",!1);$(this).children("input")[0].checked=!0;$(".tabAirportRow").css("display","none");SwapLandPackage(n,"land")});$(".tabPackage").on("click",function(){var t=$(this).siblings("li"),n=$(this);n[0].setAttribute("aria-selected",!0);n[0].setAttribute("aria-expanded",!0);t[0].setAttribute("aria-selected",!1);t[0].setAttribute("aria-expanded",!1);$(this).children("input")[0].checked=!0;$(".tabAirportRow").css("display","block");SwapLandPackage(n,"package")});$(".bookingPopupOpen").on("click",function(){var t=$(this),i=$(this).parent().data("blockid"),r=$("div").find(".bookingContainer[data-bookingguid='"+i+"']"),n=r.find(".travelerRoomSelectPopupWrapper"),u=n.find(".roomSelectWindow");n.toggleClass("opened");u.on("click",function(){t.focus();t.attr("aria-expanded","false");n.removeClass("opened")});n.hasClass("opened")?($(this).attr("aria-expanded","true"),$(this).next().find("a").first().focus()):($(this).attr("aria-expanded","false"),$(this).focus())});$(".tabbedTravelSelect").trigger("change");$(".tabLandOnly").trigger("click");$(".compactBookingLand").trigger("click");ApplyBrandConfig();$(".bookingBarBlock-container").each(function(){FirstRoom($(this))});$(".bookingBarDestBlock-container").each(function(){FirstRoom($(this))});$(".compactBookingBlock-container").each(function(){FirstRoom($(this))});$(".tabbedBookingBlock-container").each(function(){FirstRoom($(this))});$(".bookingModal").attr("aria-modal","true").attr("role","dialog").attr("aria-labelledby",$(".compactBookingItem").find("h2").attr("id"))}function FirstRoom(n){var t=n.find(".travelerRoomSelectWindow");t.length>0&&t.find("[id*=addRoom]").trigger("click")}function SetupDestinationDropdown(){$(".bookingContainer").each(function(){var h,c;if(!$(this).hasClass("lightBookingContainer")){var n=$(this),e=n.find(".columnTwo"),t=n.find(".destInput"),u=n.find(".dropdownContainer"),o="",i=n.find(".accordion"),l=n.find(".accordion.multiColumns"),a=l.find(".accordion-content"),v=n.find(".accordion.simpleColumn"),s=v.find(".accordion-content"),y=s.find(".menuItem"),f,r=n.attr("data-uiconfig");r!=undefined&&($.isArray(r)?f[0]=r[0]:f=JSON.parse(r));n.attr("data-masterlevel")=="False"&&(f[0]!=undefined&&f[0].EnableRoomsGuestOption==!1||f!=undefined&&f.EnableRoomsGuestOption==!1)&&(n.find(".tabTravelerRoomSelectPopupWrapper").addClass("hidden"),n.find(".compactTravelerRoomSelectPopupWrapper").addClass("hidden"),n.find(".stickyTravelerRoomSelectPopupWrapper").addClass("hidden"));t.attr("data-preselected")!=""&&($currentResortID=n.find(".resort[resort-id='"+t.attr("data-preselected")+"']").first(),$currentResortID.length>0&&p($currentResortID,!0));n.attr("data-masterlevel")=="True"&&(h=n.find(".menuItem.search_all"),h.each(function(){$(this).attr("data-uiconfig",r)}),t.attr("data-uiconfig",r));a.each(function(){$(this).children().length>0&&$(this).parent().addClass("hasChildren")});s.each(function(){$(this).find(">.menuItem:not(.search_all)").length>0&&$(this).parent().addClass("hasChildren")});$(".destSelectInnerWrapper",n).on("click",".destInput",function(){if(u.hasClass("hidden")){u.removeClass("hidden");$(this).attr("aria-expanded","true");var n=i.find("li.parentMenuItem");firstDestHeadline=n.find(".accordion-headline").first();firstDestHeadline.focus()}else u.addClass("hidden"),$(this).attr("aria-expanded","false");b($(this));$(".parentMenuItem",u).each(function(){$(this).hasClass("hasChildren")||$(this).find(".accordion-headline").removeAttr("aria-expanded")})});$(".accordion-content",n).on("click",'[role="option"]',function(){p($(this))});$(".columnTwo .menubar",n).on("click",'[role="option"]',function(){p($(this))});function rt(n){var r=n.closest(".bookingContainer"),t=r.find(".compactTabbedTravelSelect"),f=n.attr("destination-id"),u=r.find("[role='menuitem'][data-destinationid= "+f+"]");let i=n;n.hasClass("resort")?i=n:u.length&&(i=u);t.find(".compactBookingLand").parent().show();t.find(".compactBookingPackage").parent().show();i.hasClass("landItem")||(t.find(".compactBookingLand").parent().hide(),t.find(".compactBookingPackage").attr("checked",!0),t.find(".compactBookingLand").attr("checked",!1));i.hasClass("packageItem")||(t.find(".compactBookingPackage").parent().hide(),t.find(".compactBookingLand").attr("checked",!0),t.find(".compactBookingPackage").attr("checked",!1))}function ut(n){var r=n.closest(".bookingContainer"),t=r.find(".tabbedTravelSelect"),f=n.attr("destination-id"),u=r.find("[role='menuitem'][data-destinationid= "+f+"]");t.find("option").show();let i=n;n.hasClass("resort")?i=n:u.length&&(i=u);i.hasClass("landItem")||t.find("option.land").hide();i.hasClass("packageItem")||t.find("option.package").hide();t.trigger("chosen:updated")}function p(i,f=false){var a,e,o,v,y,s,p,w;i.attr("aria-selected")=="false"?i.attr("aria-selected","true"):i.attr("aria-selected","false");var k=i.text().replace(/\r?\n|\r/g," "),l=k.replace(/\s\s+/g," "),h="",c="true";i.hasClass("resort")?(h=i.attr("resort-id"),c=i.attr("data-bwp-enabled")):h=i.attr("destination-id");t.val(l);(!f||$(".mfp-content .compactBookingBlock-container").is(":visible"))&&(t.val("").focus().val(l),t[0].selectionStart=0,t[0].selectionEnd=0);a=i.attr("data-uiconfig");t.attr("data-uiconfig",a);i.hasClass("resort")?(t.attr("data-selectedType","resort"),t.attr("data-resortID",h),v=i.attr("destination-id"),t.attr("data-destinationID",v),y=i.attr("brand-id"),t.attr("data-brandID",y),d(c,i)):(t.attr("data-selectedType","destination"),t.attr("data-destinationID",h),t.removeAttr("data-resortID"),n.attr("data-masterlevel")=="False"?(t.attr("data-brandID",i.attr("data-brandID")),t.attr("data-brandName",i.attr("data-brandName"))):t.removeAttr("data-brandID"),d(c,i));f||(u.addClass("hidden"),t.attr("aria-expanded","false"),b(i),t.focus());ut(i);rt(i);$blockID=n.attr("data-bookingguid");t.attr("data-uiconfig")!=undefined?(s=t.attr("data-uiconfig"),s!=undefined&&($.isArray(s)?e[0]=s[0]:e=JSON.parse(s)),r!=undefined&&($.isArray(r)?o[0]=r[0]:o=JSON.parse(r)),s!=undefined&&(e[0]!=undefined&&e[0].EnableRoomsGuestOption==!1||e!=undefined&&e.EnableRoomsGuestOption==!1?(n.find(".tabTravelerRoomSelectPopupWrapper").addClass("hidden"),n.find(".compactTravelerRoomSelectPopupWrapper").addClass("hidden"),n.find(".stickyTravelerRoomSelectPopupWrapper").addClass("hidden")):(n.find(".tabTravelerRoomSelectPopupWrapper").removeClass("hidden"),n.find(".compactTravelerRoomSelectPopupWrapper").removeClass("hidden"),n.find(".stickyTravelerRoomSelectPopupWrapper").removeClass("hidden")))):r!=undefined&&(o[0]!=undefined&&o[0].EnableRoomsGuestOption||o!=undefined&&o.EnableRoomsGuestOption==!1?(n.find(".tabTravelerRoomSelectPopupWrapper").addClass("hidden"),n.find(".compactTravelerRoomSelectPopupWrapper").addClass("hidden"),n.find(".stickyTravelerRoomSelectPopupWrapper").addClass("hidden")):(n.find(".tabTravelerRoomSelectPopupWrapper").removeClass("hidden"),n.find(".compactTravelerRoomSelectPopupWrapper").removeClass("hidden"),n.find(".stickyTravelerRoomSelectPopupWrapper").removeClass("hidden")));ResetRoomsDiv($blockID);t.removeClass("error");t.removeAttr("aria-describedby");t.removeAttr("aria-invalid");p=n.find(".labelWrapper");w=n.find("#destError_"+$blockID);w.addClass("hidden");p.removeClass("hidden")}function ft(){var t=$(".compactPointsWrapper"),n=$(".compactPointsWrapper input");n.removeAttr("disabled");t.removeClass("disabledPointsWrapper");n.removeClass("blockedPointsWrapper")}function d(n,t){var u=$(t).parents(".content-container"),f=u.find(".compactPointsWrapper"),r=u.find(".compactPointsWrapper input"),i=u.find(".pointsWrapper"),e=u.find(".pointsWrapper input");JSON.parse(n.toLowerCase())?f.length>0?(r.removeAttr("disabled"),f.removeClass("disabledPointsWrapper"),r.removeClass("blockedPointsWrapper")):i.length>0?(e.removeAttr("disabled"),i.removeClass("disabledPointsWrapper"),i.removeClass("blockedPointsWrapper")):ft():i.length>0?(e.attr("disabled",!0),i.addClass("disabledPointsWrapper"),i.addClass("blockedPointsWrapper"),e.prop("checked",!1)):f.length>0&&(r.attr("disabled",!0),f.addClass("disabledPointsWrapper"),r.addClass("blockedPointsWrapper"),r.prop("checked",!1))}$(this).parent(".mfp-content")&&(c=p.bind(this),window.resorts=(Object.assign({},window.resorts),{},{toggleResortSelection:function(n,t){var i=$(".mfp-content").find(".bookingContainer").filter(function(){return!$(this).hasClass("lightBookingContainer")}),r=i.find('.resort[resort-id="'.concat(t,'"]')).first();c(r,!0)}}));$(".accordion",n).each(function(){var n=$(this).data("toggleopen")=="True"?0:!1;$(this).accordion({collapsible:!0,active:n,heightStyle:"content",icons:{header:"ui-icon-caret-1-s",activeHeader:"ui-icon-caret-1-n"}})});$(".accordion .ui-accordion-header",n).on("click",function(){k($(this))});function k(r){var c=r.parent(),it=i.parent(),u=$(c).data("destinationid"),rt=$(r).closest(".bookingContainer"),p,b,k,l,a,h,v,tt;if(!r.parent().hasClass("hasChildren")&&i.hasClass("simpleColumn")||i.hasClass("multiColumns")){var y=r.text(),o="",f="";i.hasClass("multiColumns")?(o="multiColumns",f=e,r.next().find(".menuItem").removeClass("active")):(o="simpleColumn",f=r.next(),p=s.find(".menuGroup"),p.addClass("hidden"),b=f.find(".menuGroup"),b.toggleClass("hidden"),r.next().find(".search_all").attr("destination-id",u));n.attr("data-masterlevel")=="False"?(k=c.find(".menuItem"),l="",k.each(function(){l+=+ ","+$(this).attr("id")}),w(u,y,f,o,l)):r.hasClass("region-active")||(w(u,y,f,o),rt.find(".region-active").removeClass("region-active"),r.addClass("region-active"))}else $searchAllItem=r.next().find(">.search_all"),$searchAllItem.attr("id",u),r.next().find(".search_all").attr("destination-id",u),g($searchAllItem);if(r.parent().hasClass("hasChildren")&&i.hasClass("simpleColumn")&&(a=r.next(),a.find(".menuItem:not('search_all')").removeClass("active"),a.find(".menuGroup").addClass("hidden")),t.attr("data-destinationType","0"),i[0].style.height=h+"px",h=i.attr("data-initialH"),r.hasClass("ui-state-active")){var ut=i.offset().top-document.body.scrollTop,ft=c.offset().top-document.body.scrollTop,d=0,nt=i.find(".ui-accordion-content-active").first();r.next().attr("id")!=nt.attr("id")&&(d=nt.height());v=ft-ut-d;tt=parseFloat(h)+parseFloat(v);i[0].style.height=tt+"px"}else i[0].style.height=h+"px";it.animate({scrollTop:v},"slow")}$(".accordion.multiColumns .menuItem",n).on("click",function(){var n=$(this),u=n.closest(".bookingContainer"),i,r;n.parent().find(".menuItem").removeClass("active");i=n.data("destinationid");r=n.text();u.find(".region-active").removeClass("region-active");n.hasClass("active")?n.removeClass("active"):(w(i,r,e),n.addClass("active"));t.attr("data-destinationType","1")});y.on("click",function(){var u=$(this).closest(".bookingContainer"),i,r;$(this).parent().find(".menuItem").removeClass("active");u.find(".region-active").removeClass("region-active");$(this).hasClass("search_all")||(i=$(this).parent().find(".menuGroup"),subregionID=$(this).data("destinationid"),r=$(this).text(),$(this).after(i),n.attr("data-masterlevel")=="True"&&i.find(".menu ul").html(""),i.hasClass("hidden")?w(subregionID,r,i,"simpleColumn"):i.toggleClass("hidden"),$(this).addClass("active"),t.attr("data-destinationType","1"));$(this).attr("aria-selected")?$(this).attr("aria-selected","false"):$(this).attr("aria-selected","true")});function w(t,i,r,u,f){var o=r.parents(".bookingContainer"),e,s,h;n.attr("data-masterlevel")=="True"?(e=o.find(".spinner"),u=="simpleColumn"?(r.find(".menu ul").html(e[0].outerHTML),r.find(".menu ul .spinner").removeClass("hidden"),r.removeClass("hidden"),s=r.find(".search_all"),s.addClass("hidden")):(e.removeClass("hidden"),o.find(".menubar .menu").addClass("hidden"),o.find(".colDefaultMessage").addClass("hidden")),h={destinationID:t,brandID:null,languageID:GetCurrentLanguage()},getString="/ResortsDestBookingEng/GetResorts",$.post(getString,h).done(function(n){nt(t,i,r,u,n,f)}).always(function(){e.addClass("hidden");u=="simpleColumn"&&r.find(".menu ul .spinner").addClass("hidden")})):nt(t,i,r,u,"",f)}function et(t){var u=t.closest(".bookingContainer"),r=u.find(".menuItem.resort"),o=t.attr("destination-id"),e=u.find("[role='menuitem'][data-destinationid= "+o+"]"),f=u.find(".tabbedTravelSelect").val(),i="land";return n.attr("data-masterlevel")=="False"?r.each(function(){$(this).hasClass("active-resort")&&$(this).removeClass("hidden")}):r.removeClass("hidden"),t.removeClass("hidden"),f&&f!=""&&(i=f.toLowerCase()),(i!="land"||e.hasClass("landItem"))&&(i!="package"||e.hasClass("packageItem"))||t.addClass("hidden"),i=="land"&&r.each(function(){$(this).not(".landItem").addClass("hidden")}),i=="package"&&r.each(function(){$(this).not(".packageItem").addClass("hidden")}),!0}function g(t){var u=t.closest(".bookingContainer"),r=t.closest(".parentMenuItem").find(".menuItem.resort"),o=t.attr("destination-id"),f=u.find("[role='menuitem'][data-destinationid= "+o+"]"),s=u.find("#compactBookingLand"),e=u.find("#compactBookingPackage"),i="land";return n.attr("data-masterlevel")=="False"?r.each(function(){$(this).hasClass("active-resort")&&$(this).removeClass("hidden")}):r.removeClass("hidden"),t.removeClass("hidden"),e&&e.is(":checked")&&(i="package"),(i!="land"||f.hasClass("landItem"))&&(i!="package"||f.hasClass("packageItem"))||t.addClass("hidden"),i=="land"&&r.each(function(){$(this).not(".landItem").addClass("hidden")}),i=="package"&&r.each(function(){$(this).not(".packageItem").addClass("hidden")}),!0}function nt(t,i,r,u,f="",e){var c=r.closest(".bookingContainer"),h=c.find(".colNoResortMessage"),o=r.find(".search_all"),l=o.data("text"),s;h.addClass("hidden");r.removeClass("hidden");o.html(l+" "+i);o.attr("destination-id",t);n.attr("data-masterlevel")=="False"&&(s=r.find(".menuItem.resort"),s.addClass("hidden"),s.removeClass("active-resort"),s.each(function(){($(this).attr("destination-id")==t||typeof e!="undefined"!=""&&e.includes($(this).attr("destination-id")))&&($(this).removeClass("hidden"),$(this).addClass("active-resort"))}));u=="simpleColumn"?(o=r.find(">.search_all"),f!=""&&r.find(".menu ul").html(f),!r.find(".colNoResortMessage").length>0&&r.find(".menu ul").append(h[0].outerHTML),o.removeClass("hidden"),r.find(".menu").removeClass("hidden"),g(o)):(f!=""&&r.find(".menuGroup").html(f),r.find(".menubar .menu").removeClass("hidden"),r.find(".colDefaultMessage").addClass("hidden"),et(o));r.find(".menuItem.resort").not(".hidden").length<1&&o.hasClass("hidden")&&r.find(".colNoResortMessage").removeClass("hidden")}function b(n){var t=n.closest(".bookingContainer"),r;i.accordion("option","active",".ui-accordion-header");i.hasClass("multiColumns")?(n.next().find(".menuItem").removeClass("active"),t.find(".colDefaultMessage").removeClass("hidden"),t.find(".colNoResortMessage").addClass("hidden"),t.find(".menu").addClass("hidden")):(r=n.next(),r.find(".menuItem:not('search_all')").removeClass("active"),r.find(".menuGroup").addClass("hidden"));t.find(".region-active").removeClass("region-active")}$(".error-msg",n).on("mouseover",function(){var n=$(this).text(),t=$(this).width()>$(this).parent().width();t&&$(this).attr("title",n)});$(".error-msg",n).on("mouseout",function(){$(this).attr("title","")});$(".destSelectInnerWrapper",n).on("keydown",".destInput",function(n){(n.keyCode==40||n.keyCode==13)&&this.click()});$(".destSelectOuterWrapper",n).on("keydown",function(n){n.keyCode===27&&(u.addClass("hidden"),t.attr("aria-expanded","false"),b($(this)),t.focus())});$('[role="option"]',n).on("keydown",function(n){n.keyCode===13&&$(this).click()});$(".accordion .ui-state-active",n).on("keydown",function(n){n.keyCode===27&&k($(this))});$(".accordion .ui-accordion-header",n).on("keydown",function(n){n.keyCode==13&&k($(this))});$(".accordion.multiColumns .ui-accordion-header",n).on("keydown",function(n){n.keyCode==39&&(o=$(this),tt());it($(this),n)});$(".accordion.multiColumns .menuItem",n).on("keydown",function(n){n.keyCode==39&&(o=$(this),tt())});$(".accordion.multiColumns .accordion-content",n).on("keydown",".menuItem",function(n){var i,t;n.keyCode==13&&(i=$(this),i.focus(),$(this).click());n.which==38&&($(this).removeClass("active"),$(this).prev().hasClass("menuItem")&&!$(this).prev().hasClass("hidden")?$(this).prev().focus():$(this).parent().prev().focus());n.which==40&&($(this).removeClass("active"),$(this).next().hasClass("menuItem")&&!$(this).next().hasClass("hidden")?$(this).next().focus():(t=$(this).closest(".hasChildren").next(),t.length>0&&t.find(".accordion-headline").focus()));n.preventDefault()});$(".accordion.simpleColumn .ui-accordion-header",n).on("keydown",function(n){it($(this),n)});$(".accordion.simpleColumn .accordion-content",n).on("keydown",".menuItem",function(n){var r="",k,i,l,a,c,v,d,u,e,y,f,t,g,p,nt,w,b,s,o,h;if($(this).attr("aria-selected","false"),n.which==38)if($(this).removeClass("active"),$(this).attr("aria-selected",!1),k=$(this).closest(".parentMenuItem"),i=$(this).prev(),$(this).hasClass("parentMenuItemOption")&&$(this).hasClass("ui-state-active"))$(i).prev().focus(),$(i).attr("aria-selected",!0);else if($(this).hasClass("subregion"))if($(i).hasClass("menuGroup")&&!$(i).hasClass("hidden")){for(l=$(i).find(".menuItem"),a="",t=0;t<l.length;t++)$(l[t]).hasClass("hidden")||(a=l[t]);$(a).focus();$(a).attr("aria-selected",!0)}else $(i).hasClass("menuGroup")&&$(i).hasClass("hidden")?$(i).prev().hasClass("subregion")&&($(i).prev().focus(),$(i).attr("aria-selected",!0)):i.hasClass("subregion")?($(i).focus(),$(i).attr("aria-selected",!0)):i.hasClass("search_all")&&!i.hasClass("hidden")?($(i).focus(),$(i).attr("aria-selected",!0)):($(this).parent().prev().focus(),$(this).parent().prev().attr("aria-selected",!0));else if($(this).hasClass("menuItem")&&!$(this).hasClass("search_all")){for(f=$(this).prevAll(),c="",t=0;t<f.length;t++)if(!$(f[t]).hasClass("hidden")){c=f[t];break}$(c).length>0?($(c).attr("aria-selected",!0),$(c).focus()):k.hasClass("hasChildren")?$(this).parent().parent().data("subregioncount")==0?($(this).attr("aria-selected",!1),$(this).parents(".menuGroup").prev().focus()):(d=$(this).parents(".menuGroup").find(".search_all"),$(d).hasClass("hidden")?($(this).attr("aria-selected",!1),$(this).parents(".menuGroup").prev().focus()):$(d).focus()):(v=k.find(".accordion-content>.search_all"),$(v).hasClass("hidden")?$(this).parents(".parentMenuItem").find(".parentMenuItemOption").focus():($(v).attr("aria-selected",!0),$(v).focus()))}else $(this).parent().hasClass("menuGroup")?$(this).parent().prev().focus():$(this).parent().prev().focus();if(n.which==40)if($(this).hasClass("search_all")&&!$(this).next().hasClass("subregion")){for(u=$(this).parents(".parentMenuItem").find("li.menuItem"),e="",t=0;t<u.length;t++)if(!$(u[t]).hasClass("hidden")&&!$(u[t]).hasClass("search_all")){e=u[t];break}$(this).removeClass("active");$(this).attr("aria-selected",!1);$(e).focus();$(e).attr("aria-selected",!0)}else if($(this).hasClass("subregion")&&$(this).next().hasClass("menuGroup")&&!$(this).next().hasClass("hidden")){for(u=$(this).next().find(".menuItem"),e="",$(this).removeClass("active"),$(this).attr("aria-selected",!1),t=0;t<$(u).length;t++)if(!$(u[t]).hasClass("hidden")){e=u[t];break}r=$(e);r.focus()}else if($(this).next().hasClass("menuItem"))if($(this).next().hasClass("hidden")){for(y="",f=$(this).nextAll(),t=0;t<f.length;t++)if(!$(f[t]).hasClass("hidden")){y=f[t];break}y.length==0?(g=$(this).parents(".menuGroup").next(".subregion"),g.length>0?$(this).parents(".menuGroup").next(".subregion").focus():$(this).parents(".parentMenuItem").next(".parentMenuItem").find(".accordion-headline").focus()):$(y).focus()}else $(this).removeClass("active"),$(this).attr("aria-selected",!1),r=$(this).next(),r.focus();else $(this).next().hasClass("menuGroup")&&$(this).next().is(":not(.hidden)")?(s=$(this).next(),p=s.find(".menuItem").first(),p.hasClass("search_all")&&p.is(":not(.hidden)")?($(this).removeClass("active"),$(this).attr("aria-selected",!1),r=p,r.focus()):(nt=$(this).next().find(".menu ul"),w=nt.find(".menuItem.resort").first(),$(this).removeClass("active"),$(this).attr("aria-selected",!1),r=w,r.focus())):$(this).next().hasClass("menu")?(w=$(this).next().find(".menuItem.resort").first(),$(this).removeClass("active"),$(this).attr("aria-selected",!1),r=w,r.focus()):(o=$(this).parents(".menuGroup").prev(),$(this).next().hasClass("colNoResortMessage")&&o.hasClass("subregion")?(s=$(this).parents(".menuGroup"),b=s.next(),b.length>0?(o.removeClass("active"),$(this).removeClass("active"),$(this).attr("aria-selected",!1),b.focus(),b.attr("aria-selected",!0)):(h=$(this).closest(".parentMenuItem").next(),h.length>0&&($(this).removeClass("active"),$(this).attr("aria-selected",!1),r=h.find(".accordion-headline"),r.focus()))):$(this).hasClass("subregion")&&$(this).next().hasClass("menuGroup")&&$(this).next().hasClass("hidden")&&$(this).next().next().length?(s=$(this).next(),o=$(s).next(),o.length>0&&($(this).removeClass("active"),$(this).attr("aria-selected",!1),$(this).parents(".menuGroup").prev().removeClass("active"),o.focus(),o.attr("aria-selected",!0))):(h=$(this).closest(".parentMenuItem").next(),h.length>0?($(this).removeClass("active"),$(this).attr("aria-selected",!1),r=h.find(".accordion-headline"),r.focus()):($(this).focus(),$(this).attr("aria-selected",!0))));n.keyCode==13&&(r=$(this),$(this).click());r!=""&&$(r).attr("aria-selected","true");n.preventDefault()});function tt(){for(var r=e.find(".menubar"),t=r.find(".menuItem"),i="",n=0;n<t.length;n++)if(!$(t[n]).hasClass("hidden")){i=t[n];break}i.focus()}$(".columnTwo .menubar",n).on("keydown","[role=option]",function(n){n.keyCode==37&&o.focus();n.keyCode==13&&this.click();ot($(this),n)});function ot(n,t){var i,f,u,r;if(t.which==38)if(n.hasClass("menuItem resort")&&n.index()==0)n.parent().parent().find(".menuItem.search_all").focus();else{for(i=n.prev();i.hasClass("hidden");)n=n.prev(),i=n.prev();i.length?$(i).focus():(f=n.parents(".menu"),n=f.find(".menuItem.search_all"),n.focus())}if(t.which==40)if(n.next().hasClass("menuGroup")){for(u="",r=0;r<n.next().find(".menuItem.resort").length;r++)if(!$(n.next().find(".menuItem.resort")[r]).hasClass("hidden")){u=n.next().find(".menuItem.resort")[r];break}$(u).focus()}else{while(n.next().hasClass("hidden"))n=n.next();n.next().focus()}t.preventDefault()}function it(n,t){var o=n.next(),u,f,r,i;if(n.attr("aria-selected","false"),t.which==40&&o.find(".menuItem").length>0){for(u=n.next().find(".menuItem"),f="",i=0;i<u.length;i++)if(!$(u[i]).hasClass("hidden")){f=u[i];break}$(f).focus();$(f).attr("aria-selected","true")}var s=n.parent().prev(),h=s,e=h.find(".menuItem");if(t.which==38&&e.length>0){for(r="",i=0;i<e.length;i++)$(e[i]).hasClass("hidden")||(r=e[i]);$(r).parents(".menuGroup").hasClass("hidden")||$(r).parents(".accordion-content").attr("aria-hidden")!="false"?$(r).parents(".menuGroup").prev(".subregion").focus():($(r).attr("aria-selected",!0),$(r).focus())}t.preventDefault()}$(".dateRangePicker").on("click",function(n){var t=$(".destSelectOuterWrapper");t===n.target||t.has(n.target).length||b($(this))})}})}function SetupA11y(){function t(t){var i=$(".travelerRoomSelectPopupWrapper"),r;i===t.target||i.has(t.target).length||(n.parent().removeClass("opened"),n.attr("aria-expanded","false"));i=$(".destSelectOuterWrapper");i===t.target||i.has(t.target).length||(r=i.find(".accordion"),r.each(function(){var n=$(this),t,u,r;n.hasClass("ui-widget")&&($(".dropdownContainer",i).addClass("hidden"),$(".destInput",i).attr("aria-expanded","false"),n.accordion("option","active",".ui-accordion-header"),n.hasClass("multiColumns")?(t=i.find(".columnTwo"),u=i.find(".accordion-content"),u.find(".menuItem").removeClass("active"),t.find(".colDefaultMessage").removeClass("hidden"),t.find(".menu").addClass("hidden")):(r=i.find(".accordion-content"),r.find(".menuItem:not('search_all')").removeClass("active"),r.find(".menuGroup").addClass("hidden")))}))}var i=$(".travelerRoomSelectPopupWrapper"),n=$(".travelerRoomSelectPopupWrapper>.bookingPopupOpen");n.on("keydown",function(n){(n.keyCode==40||n.keyCode==13)&&this.click()});i.on("keydown",function(t){t.keyCode===27&&(n.parent().removeClass("opened"),n.attr("aria-expanded","false"))});$(".roomSelectWindow").on("keydown",function(n){n.keyCode==13&&this.click()});$(document).on("click",function(n){t(n)});$(".dateRangePicker").on("click",function(n){t(n)})}function ApplyBrandConfig(){var n=$(".bookingContainer");n.hasClass("lightBookingContainer")||n.each(function(){var n=$(this),i=n.find(".destInput"),t=n.data("uiconfig");t[0].ShowDepartureDropdown==!1&&(n.find(".tabAirportRow").addClass("hidden"),n.find(".compactAirportRow").addClass("hidden"));n.attr("data-masterlevel")=="False"&&t[0].EnableRoomsGuestOption==!1&&(n.find(".tabTravelerRoomSelectPopupWrapper").addClass("hidden"),n.find(".compactTravelerRoomSelectPopupWrapper").addClass("hidden"),n.find(".stickyTravelerRoomSelectPopupWrapper").addClass("hidden"));i.length<1&&t[0].EnablePromoCode==!1&&n.find(".promoCodeWrapper").addClass("hidden")})}function ResetRoomsDiv(n){var u=$(".bookingContainer[data-bookingguid='"+n+"']"),f=u.find(".destInput"),r=0,t,i=f.attr("data-uiconfig");i===undefined&&(i=u.attr("data-uiconfig"));i!="undefined"&&(t=$.isArray(i)?i[0]:JSON.parse(i),t!="undefined"&&t[0]===undefined&&(t[0]=t),t[0]!="undefined"&&t[0].MaxRooms!="undefined"?r=t[0].MaxRooms:t!="undefined"&&t.MaxRooms!="undefined"&&(r=t.MaxRooms));$(".bookingContainer[data-bookingguid='"+n+"'] .room").each(function(){$(this).remove()});ResetOccupanciesData(n);$("#addRoom_"+n).trigger("click");r>1&&$("#addRoom_"+n).removeClass("hidden")}function SetupRoomTemplateUI(){$("[id*=addRoom]").on("click",function(){RoomTemplateAddRoom($(this))});$("[id*=addRoom]").on("keydown",function(n){n.keyCode==13&&this.click()})}function RoomTemplateAddRoom(n){var r=n.data("blockid"),f=$("div").find(".bookingContainer[data-bookingguid='"+r+"']"),t=f.find(".room:last-child").data("room-num"),e=f.data("uiconfig"),o="",i=GetResortUIConfig(r),l=$(".bookingContainer[data-bookingguid='"+r+"']"),a=l.parent(),u,s,h,c;i!="undefined"&&i[0]===undefined&&(i[0]=i);(i!="undefined"&&i.EnableChildOption!=undefined&&i.EnableChildOption==!1||i.EnableChildOption==undefined&&e!=undefined&&e[0].EnableChildOption==!1)&&(o="hidden");t==null&&(t=0);u=i[0].MaxRooms;(u<1||u>4)&&(u=4);t>=u?n.addClass("hidden"):t+1==u&&n.addClass("hidden");s={blockid:r,roomindex:t+1,hidechildren:o};h=f.find(".rooms");$("#roomTemplate").tmpl(s).appendTo(h);SetupRoomButtonEvents(r,t+1);SetupRemoveRoomUI(r,t+1);c=f.find(".room[data-room-num='"+(t+1)+"']");updateOccupanciesData(r,t+1,c);n.parent().find(".room").last().find("a").first().focus()}function SetupRoomButtonEvents(n,t){SetupAdultButtonEvents(n,t);SetupChildButtonEvents(n,t)}function SetupChildButtonEvents(n,t){var i=$(".bookingContainer[data-bookingguid='"+n+"'] .room[data-room-num='"+t+"'] .travelerSelection .children .plus-icon a"),r=$(".bookingContainer[data-bookingguid='"+n+"'] .room[data-room-num='"+t+"'] .travelerSelection .children .minus-icon a");i.on("click",function(){ChildButtonPlusIconEvents($(this),n,t)});r.on("click",function(){ChildButtonMinusIconEvents($(this),n,t)});r.on("keydown",function(n){var e;if(n.keyCode==13)this.click();else if(n.keyCode==9){var u=$(this).data("blockid"),o=$(this).data("room-num"),s=$("div").find(".bookingContainer[data-bookingguid='"+u+"']"),h=s.find(".room[data-room-num='"+o+"']"),c=h.find("[id*=children_selected_room]"),f=parseInt(c.text()),t=GetResortUIConfig(u);if(t!="undefined"&&t[0]===undefined&&(t[0]=t),e=t[0].MaxChildren,f<=0){r.attr("aria-disabled","true");i.attr("aria-disabled","false");return}r.attr("aria-disabled","false");f>=e?i.attr("aria-disabled","true"):i.attr("aria-disabled","false")}});i.on("keydown",function(n){var e;if(n.keyCode==13)this.click();else if(n.shiftKey&&n.keyCode==9){var u=$(this).data("blockid"),o=$(this).data("room-num"),s=$("div").find(".bookingContainer[data-bookingguid='"+u+"']"),h=s.find(".room[data-room-num='"+o+"']"),c=h.find("[id*=children_selected_room]"),f=parseInt(c.text()),t=GetResortUIConfig(u);if(t!="undefined"&&t[0]===undefined&&(t[0]=t),e=t[0].MaxChildren,f>=e){i.attr("aria-disabled","true");r.attr("aria-disabled","false");return}i.attr("aria-disabled","false");f<=0?r.attr("aria-disabled","true"):r.attr("aria-disabled","false")}})}function ChildButtonPlusIconEvents(n,t,i){var t=n.data("blockid"),e=n.data("room-num"),w=$("div").find(".bookingContainer[data-bookingguid='"+t+"']"),u=w.find(".room[data-room-num='"+e+"']"),o=u.find(".childAgeSelection"),s=u.find(".children .minus-icon a.minus-a"),l=u.find("[id*=children_selected_room]"),r=parseInt(l.text()),b=u.find("[id*=adults_selected_room]"),k=parseInt(b.text()),f=GetResortUIConfig(t),a,v,y,h;if(f!="undefined"&&f[0]===undefined&&(f[0]=f),a=f[0].MaxGuestsPerRoom,v=f[0].MaxChildren,r>=v||a<=r+k){n.attr("aria-disabled","true");s.attr("aria-disabled","false");return}n.attr("aria-disabled","false");r>0?s.attr("aria-disabled","false"):s.attr("aria-disabled","true");y={blockid:t,roomindex:e,childindex:r+1};$("#childAgeTemplate").tmpl(y).appendTo(o);h=u.find(".childAges");h!=null&&h.addClass("opened");l.text(r+1);updateOccupanciesData(t,e,u);const d=$(".childAgeSelect").chosen({disable_search:!0}),c=d.last().next();c.find("input").on("blur.chosen",function(){$("body").hasClass("mobile")&&c.hasClass("chosen-container-active")&&(c.trigger("mouseleave.chosen"),setTimeout(()=>{$(this).blur()},100))});AddChildrenAges(t,e,r+1);$(".childAgeSelect[data-room-num='"+i+"']").on("change",function(){var t=n.data("blockid"),i=n.data("room-num"),r=$("div").find(".bookingContainer[data-bookingguid='"+t+"']"),u=r.find(".room[data-room-num='"+i+"']");updateOccupanciesData(t,i,u)});var g=r+1,p="div_room"+e+"_child"+g,nt=o.find("[id*="+p+"]").find(".chosen-results"),tt=o.find("[id*="+p+"]").find(".childLabel").text(),it=tt+" "+o.parent().find("label").first().text();nt.attr("title",it)}function ChildButtonMinusIconEvents(n,t){var t=n.data("blockid"),f=n.data("room-num"),c=$("div").find(".bookingContainer[data-bookingguid='"+t+"']"),u=c.find(".room[data-room-num='"+f+"']"),e=u.find(".children .plus-icon a.plus-a"),s=u.find("[id*=children_selected_room]"),i=parseInt(s.text()),r=GetResortUIConfig(t),h,o;if(r!="undefined"&&r[0]===undefined&&(r[0]=r),h=r[0].MaxChildren,i<=0){n.attr("aria-disabled","true");e.attr("aria-disabled","false");return}n.attr("aria-disabled","false");i>=h?e.attr("aria-disabled","true"):e.attr("aria-disabled","false");$("div#div_room"+f+"_child"+i+"_age_"+t).remove();o=u.find(".childAges");o!=null&&i-1==0&&o.removeClass("opened");s.text(i-1);updateOccupanciesData(t,f,u)}function SetupAdultButtonEvents(n,t){var i=$(".bookingContainer[data-bookingguid='"+n+"'] .room[data-room-num='"+t+"'] .travelerSelection .adults .plus-icon a"),r=$(".bookingContainer[data-bookingguid='"+n+"'] .room[data-room-num='"+t+"'] .travelerSelection .adults .minus-icon a");i.on("click",function(t){AdultButtonPlusIconEvents($(this),n,t)});i.on("keydown",function(n){n.keyCode==13&&this.click()});r.on("click",function(){AdultButtonMinusIconEvents($(this),n)});r.on("keydown",function(n){n.keyCode==13&&this.click()})}function AdultButtonPlusIconEvents(n,t){var t=n.data("blockid"),o=n.data("room-num"),h=$("div").find(".bookingContainer[data-bookingguid='"+t+"']"),u=h.find(".room[data-room-num='"+o+"']"),f=u.find(".adults .minus-icon a.minus-a"),s=u.find("[id*=adults_selected_room]"),r=parseInt(s.text()),e,i;selectedChildren=u.find("[id*=children_selected_room]");e=parseInt(selectedChildren.text());i=GetResortUIConfig(t);i!="undefined"&&i[0]===undefined&&(i[0]=i);var c=i[0].MaxAdults,l=i[0].MaxGuestsPerRoom,a=e?e+r:r;if(r>=c||l<=a){n.attr("aria-disabled","true");f.attr("aria-disabled","false");return}n.attr("aria-disabled","false");r>0?f.attr("aria-disabled","false"):f.attr("aria-disabled","true");s.text(r+1);updateOccupanciesData(t,o,u)}function AdultButtonMinusIconEvents(n,t){var t=n.data("blockid"),e=n.data("room-num"),h=$("div").find(".bookingContainer[data-bookingguid='"+t+"']"),r=h.find(".room[data-room-num='"+e+"']"),u=r.find(".adults .plus-icon a.plus-a"),o=r.find("[id*=adults_selected_room]"),f=parseInt(o.text()),i=GetResortUIConfig(t),s;if(i!="undefined"&&i[0]===undefined&&(i[0]=i),s=i[0].MaxAdults,f<=1){n.attr("aria-disabled","true");u.attr("aria-disabled","false");return}n.attr("aria-disabled","false");f>=s?u.attr("aria-disabled","true"):u.attr("aria-disabled","false");o.text(f-1);updateOccupanciesData(t,e,r)}function GetResortUIConfig(n){var t,i=$(".bookingContainer[data-bookingguid='"+n+"']"),f=i.parent(),r,u;return(f.hasClass("bookingBarBlock-container")?(r=i.find(".tabbedResortSelect"),r.length==0&&(r=i.find(".tabbedBrandSelect")),t=$("option:selected",r).attr("data-uiconfig")):(u=i.find(".destInput"),t=u.attr("data-uiconfig"),t===undefined&&(t=i.attr("data-uiconfig"))),$.isArray(t))?t[0]:JSON.parse(t)}function SetupRemoveRoomUI(){$(".removeRoom").on("click",function(n){RemoveRoom($(this),n)});$(".removeRoom").on("keydown",function(n){n.keyCode==13&&this.click()})}function RemoveRoom(n,t){var i,u,o,s,h;t!=undefined&&t.stopPropagation();var r=n.data("blockid"),f=n.data("room-num"),e=$("div").find(".bookingContainer[data-bookingguid='"+r+"']"),c=e.find(".room[data-room-num='"+f+"']");c.remove();i=GetResortUIConfig(r);i!="undefined"&&i[0]===undefined&&(i[0]=i);u=i[0].MaxRooms;(u<1||u>4)&&(u=4);f==u&&$("#addRoom_"+r).removeClass("hidden");removeFromOccupancyData(r,f);updateOccupanciesTotal(r);o=parseInt(n.data("room-num"));s=o-1;o>2?(h=e.find(".removeRoom[data-room-num='"+s+"']"),h.focus()):e.find(".travelerRoomSelectPopupWrapper .roomSelectWindow").focus()}function SwapLandPackage(n,t){var i=$(n).parents(".bookingContainer"),r=$(i).find(".tabbedResortSelect"),u=$(i).find(".tabbedBrandSelect");SwapLandPackageForDropdown(r,t);SwapLandPackageForDropdown(u,t)}function SwapLandPackageForDropdown(n,t){t=="land"?($(n).find("option:not(.landItem)").hide(),$(n).find("option.landItem").show(),$(n).find("option:selected").hasClass("landItem")||$(n).val(""),$(n).trigger("chosen:updated")):t=="package"&&($(n).find("option:not(.packageItem)").hide(),$(n).find("option.packageItem").show(),$(n).find("option:selected").hasClass("packageItem")||$(n).val(""),$(n).trigger("chosen:updated"))}function ResetOccupanciesData(n){var u=$("div").find(".bookingContainer[data-bookingguid='"+n+"']"),i=u.find(".room");for(let n=0;n<i.length;n++){var t=$(i[n]),f=t.find("[id*=adults_selected_room]"),e=t.find("[id*=children_selected_room]"),o=t.attr("data-room-num"),s="",r=[],t={};t.id=o;t.adults=f.text();t.children=e.text();t.ages=s;r.push(t)}$("#OccupanciesData_"+n).val(JSON.stringify(r));updateOccupanciesTotal(n)}function updateOccupanciesData(n,t,i){var h=$("#OccupanciesData_"+n).val(),o=i.find("[id*=adults_selected_room]"),e=i.find("[id*=children_selected_room]"),u="",c=0,l,f,s,r;if(o.text()=="0"&&e.text()=="0"){removeFromOccupancyData(n,t);return}e.text()!="0"&&(l=i.find(".childAgeSelect"),$.each(l,function(){var n=$(this);u+=n.val()==""||n.val()==null?"0;":n.val()+";";c++}),u=u.slice(0,-1));f=[];h!=""?(f=JSON.parse(h),s=!1,$.each(f,function(n,i){if(i.id==t){s=!0;i.adults=o.text();i.children=e.text();i.ages=u;i.numberOfAges=c;return}}),s||(r={},r.id=t,r.adults=o.text(),r.children=e.text(),r.ages=u,f.push(r))):(r={},r.id=t,r.adults=o.text(),r.children=e.text(),r.ages=u,f.push(r));$("#OccupanciesData_"+n).val(JSON.stringify(f));updateOccupanciesTotal(n)}function updateOccupanciesTotal(n){var r=0,u=0,f=0,t=$("div").find(".bookingContainer[data-bookingguid='"+n+"']"),o,i,s;$(".bookingContainer[data-bookingguid='"+n+"'] [id*=adults_selected_room]").each(function(){f+=parseInt($(this).text())});$(".bookingContainer[data-bookingguid='"+n+"'] [id*=children_selected_room]").each(function(){u+=parseInt($(this).text())});r=u+f;o=t.find("[id*=numberOfGuestsTotal]");o.text(r);i=$(".bookingContainer[data-bookingguid='"+n+"']").find(".room:last-child").data("room-num");s=t.find("[id*=numberOfRoomsTotal]");s.text(i);t.attr("data-totalAdult",f);t.attr("data-totalChildren",u);t.attr("data-totalRooms",i);var e=t.find(".bookingPopupOpen"),h=e.data("room"),c=e.data("guest");selectButtonLabel=i+" "+h+" & "+r+" "+c;e.attr("aria-label",selectButtonLabel)}function removeFromOccupancyData(n,t){var i=$("#OccupanciesData_"+n).val(),r=[];if(i!=""){r=JSON.parse(i);var u=$.grep(r,function(n){return n.id!=t});$("#OccupanciesData_"+n).val(JSON.stringify(u))}}function AddChildrenAges(n,t,i){var r=GetResortUIConfig(n),f=0,u;for(r!="undefined"&&r[0]===undefined&&(r[0]=r),r[0]!="undefined"&&r[0].MaxChildAge!=null&&(f=r[0].MaxChildAge),u=0;u<=f;u++)$("#select_"+t+"_child"+i+"_age_"+n).append(new Option(u,u));$("#select_"+t+"_child"+i+"_age_"+n).trigger("chosen:updated")}function InitializeBooking(){$(".bookingFormSubmit").on("click",function(){var n=$(this).parents(".bookingContainer"),t=$(this).parents(".column");if(t.hasClass("land")?n.attr("data-activeTravelType","Land"):n.attr("data-activeTravelType","Package"),validateControls(n)){let t={text:n.attr("data-loaderAriaText"),loaderImageSrc:n.attr("data-loaderImage"),type:"BusyLoader"};$("body").showSpinner(t);n.hasClass("lightBookingContainer")?GTMCheckAvailabilityLightWidget(n):GTMCheckAvailability(n);BookingRouter2(n)}});$(".bookingFormSubmit").on("keydown",function(n){n.keyCode==13&&this.click()})}function GTMCheckAvailability(n){var t,c,f,e,w;try{if(window.dataLayer!=null){t="land";n.hasClass("stickyBookingContainer")?(t=n.find('select[name="packageType"]').val(),t==null&&(t="land")):(c=n.data("bookingguid"),t=n.find('input:checked[name="packageType_'+c+'"]').val());f="";n.find('select[name="brandID"]').length&&(f=n.find('select[name="brandID"] option:selected').text());e="";n.find('select[name="resortID"]').length&&(e=n.find('select[name="resortID"] option:selected').text());var s=!1,l="",o=n.find("input.destInput"),i="YYYY/MM/DD",a="",v="",y="",p="",l="";o.length&&(w=o.attr("data-selectedtype"),w=="destination"?l=o.val():(e=o.val(),f=""),a=n.attr("data-totaladult"),v=n.attr("data-totalchildren"),y=n.attr("data-totalrooms"),p=n.find(".promoCodeWrapper input").val(),n.find(".pointsWrapper input").prop("checked")?s=!0:n.find(".compactPointsWrapper input").prop("checked")&&(s=!0),n.find(".hasDatepicker").attr("data-date-format").length&&(i=n.find(".hasDatepicker").attr("data-date-format")));var r=n.find('input[name="dateRange"]').val(),u=r!=""?moment(r.split(" - ")[0],i):moment().format(i),h=r!=""&&r.indexOf("-")>-1?moment(r.split(" - ")[1],i):u!=""?moment(u).add(3,"days").format(i):moment().add(3,"days").format(i),b=(moment(h).diff(moment(u),"days")>0?moment(h).diff(moment(u),"days"):3).toString();GTMPushEvent(JSON.stringify({event:"checkAvailability",checkAvailability:{tripType:t,Brand:f,Resort:e,Destination:l,checkInDate:moment(u).format("YYYY/MM/DD"),checkOutDate:moment(h).format("YYYY/MM/DD"),totalNights:b,numberAdults:a,numberChildren:v,numberRooms:y,PromoCode:p,widget:GetWidgetVersion(n),book_with_points:s}}))}}catch(k){console&&console.log("Error with GTM checkAvailability method")}}function GTMCheckAvailabilityLightWidget(n){try{if(window.dataLayer!=null){var t=n.attr("data-brandname"),i=n.attr("data-activetraveltype"),r=n.attr("data-resortName");GTMPushEvent(JSON.stringify({event:"checkAvailability",checkAvailability:{tripType:i,Brand:t,Resort:r,widget:"Light Booking"}}))}}catch(u){console&&console.log("Error with GTM checkAvailability method")}}function GTMPushEvent(n){try{if(window.dataLayer!=null){var t=JSON.parse(n);(window.dataLayer=window.dataLayer||[]).push(t)}}catch(i){console&&console.log("Error with GTM PushEvent")}}function GetWidgetVersion(n){return n.find("input.destInput").length?"Destination Booking":n.hasClass("lightBookingContainer")?"Light Booking":"Old Booking [Depracated]"}function validateControls(n){var o=!0,u=!0,f=!0,s=n.data("bookingguid"),t="",e,v;if($(n).find(".required").each(function(){var t=$(n).find("#"+$(this).data("errorplaceholder"));$(this).val()==null||$(this).val()==""?(t.addClass("error"),o=!1):t.removeClass("error")}),$(n).find(".destInput").length){var i=n.find(".destInput"),h=n.find(".destSelectInnerWrapper .labelWrapper"),c=n.find("#destError_"+s);i.val().length>0?(f=!0,i.removeClass("error"),c.addClass("hidden"),h.removeClass("hidden")):(f=!1,i.addClass("error"),c.removeClass("hidden"),h.addClass("hidden"),t==""&&(t=i,t.focus()));BookingErrorMsg(i,f)}if($(n).find(".promoCodeWrapper").length){var r=$(n).find(".promoCodeWrapper input"),l=n.find(".promocode"),a=n.find("#promoCodeError_"+s);r.val().length>0&&(e=$(n).find(".promoCodeWrapper"),v=/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]+/,!v.test(r.val())&&r.val().trim().length<50?(u=!0,e.removeClass("error"),a.addClass("hidden"),l.removeClass("hidden")):(u=!1,e.addClass("error"),a.removeClass("hidden"),l.addClass("hidden"),t==""&&(t=r,t.focus(),t.select())),BookingErrorMsg(r,u))}return o&&u&&f}function BookingErrorMsg(n,t){if(t)n.removeAttr("aria-describedby"),n.removeAttr("aria-invalid");else{var i=n.prev().attr("id");n.attr("aria-describedby",i);n.attr("aria-invalid","true")}}function BookingRouter2(n){var r="land",o,e,u,t,f,s,i,h,c;n.hasClass("stickyBookingContainer")?r=n.find('select[name="packageType"]').val():(o=n.data("bookingguid"),r=n.find('input:checked[name="packageType_'+o+'"]').val());e="";u=n.find("input.destInput");u.length?(t=u.attr("data-brandID"),t==undefined&&(t=""),f=u.attr("data-resortID"),e=u.attr("data-destinationID")):n.hasClass("lightBookingContainer")?(t=n.attr("data-brandID"),f=n.attr("data-resortID"),r=n.attr("data-activeTravelType")):(t="",n.find('select[name="brandID"]').length&&(t=n.find('select[name="brandID"]').val()),f="",n.find('select[name="resortID"]').length&&(f=n.find('select[name="resortID"]').val()));s=n.data("masterlevel");s.toLowerCase()==="true";i=$("body").data("lang");(i==null||i=="")&&(i="en");u.length?(h=u.attr("data-selectedtype"),h=="destination"?DestinationBookingRouter(t,e,r,i,n):BrandBookingRouter(t,f,r,i,n)):n.hasClass("lightBookingContainer")?(c=n.data("location"),BrandBookingRouter(t,f,r,i,n,c)):BrandBookingRouter(t,f,r,i,n)}function BrandBookingRouter(n,t,i,r,u){var l="MM/DD/YYYY",e="YYYY/MM/DD",a="",v="",y="",p="",d=u.data("masterlevel").toLowerCase()==="true",w=$(u).hasClass("lightBookingContainer"),o="",b=Boolean(u.find("input.destInput").length),s,f,h,c,k;w?(i=="Package"&&u.data("params").Package&&(o=u.data("params").Package),i=="Land"&&u.data("params").Land&&(o=u.data("params").Land)):(s=u.find('input[name="dateRange"]'),b&&$(u).find(".hasDatepicker").attr("data-date-format").length>0&&(e=$(u).find(".hasDatepicker").attr("data-date-format")),s.length&&(f=s.val(),f!=""&&(a=moment(f.split(" - ")[0],e).format(l)),f.split(" - ").length>1&&(v=moment(f.split(" - ")[1],e).format(l))),h=$(u).find("[id*=OccupanciesData]"),h.length&&(y=h.val()),c=$(u).find('input[name="promoCode"]'),c.length&&(p=c.val()));k=$(u.find(".pointsWrapper input")).prop("checked")||$(u.find(".compactPointsWrapper input")).prop("checked")?!0:!1;$.post("/resortsdestbookingeng/withresortdata",{brandID:n,resortID:t,packageType:i,languageID:r,isDestinationBookingWidget:b,isMasterLevel:d,isLightBooking:w,lightBookingExtraParams:o,usePoints:k,startDate:a,endDate:v,occupancies:y,promoCode:p}).done(function(n,t){var i,r,u;n!=null&&t=="success"?(window.dataLayer!=null&&n.EngineType!="Redirect"&&(n.Endpoint=GTMDecorateUrl(n.Endpoint)),n.EngineType==="Redirect"?$(location).attr("href",n.Endpoint):(i=document.createElement("form"),i.method=n.Method,r=!1,u=!0,n.Endpoint&&n.Endpoint.length>0&&(u=!1,r=n.Domain.slice(-1)!="/"&&n.Endpoint.slice(0,1)!="/"),i.action=n.Protocol+n.Domain+(r?"/":"")+(u?"":n.Endpoint),n.Parameters&&Object.keys(n.Parameters).forEach(function(t){var r=$('<input type="hidden">').attr({name:t,value:n.Parameters[t]});$(i).append(r)}),document.body.appendChild(i),i.submit())):$("body").hideSpinner()}).fail(function(){$("body").hideSpinner()})}function DestinationBookingRouter(n,t,i,r,u){var l="MM/DD/YYYY",e="YYYY/MM/DD",a="",v="",y="",p="",w=Boolean(u.find("input.destInput").length),b=u.find('input[name="dateRange"]'),f,o,s,h,c;w&&$(u).find(".hasDatepicker").attr("data-date-format").length>0&&(e=$(u).find(".hasDatepicker").attr("data-date-format"));b.length&&(f=b.val(),f!=""&&(a=moment(f.split(" - ")[0],e).format(l)),f.split(" - ").length>1&&(v=moment(f.split(" - ")[1],e).format(l)));o=$(u).find("[id*=OccupanciesData]");o.length&&(y=o.val());s=$(u).find('input[name="promoCode"]');s.length&&(p=s.val());h=u.data("masterlevel").toLowerCase()==="true";c=$(u.find(".pointsWrapper input")).prop("checked")||$(u.find(".compactPointsWrapper input")).prop("checked")?!0:!1;$.post("/resortsdestbookingeng/withdestinationdata",{destinationID:t,tripType:i,languageID:r,brandID:n,isDestinationBookingWidget:w,isMasterLevel:h,usePoints:c,startDate:a,endDate:v,occupancies:y,promoCode:p}).done(function(n,t){var r,u,f,i;n!=null&&t=="success"?(window.dataLayer!=null&&n.EngineType!="Redirect"&&(n.Endpoint=GTMDecorateUrl(n.Endpoint)),n.EngineType==="Redirect"?$(location).attr("href",n.Endpoint):(r=document.createElement("form"),r.method=n.Method,u=!1,f=!0,n.Endpoint&&n.Endpoint.length>0&&(f=!1,u=n.Domain.slice(-1)!="/"&&n.Endpoint.slice(0,1)!="/"),h&&c?(i=n.Protocol+n.Domain+(u?"/":"")+(f?"":n.Endpoint),n.Parameters&&(Object.keys(n.Parameters).forEach(function(t){i=i.includes("?")?i+"&"+t+"="+n.Parameters[t]:i+"?"+t+"="+n.Parameters[t]}),window.location=i)):(r.action=n.Protocol+n.Domain+(u?"/":"")+(f?"":n.Endpoint),n.Parameters&&Object.keys(n.Parameters).forEach(function(t){var i=$('<input type="hidden">').attr({name:t,value:n.Parameters[t]});$(r).append(i)}),document.body.appendChild(r),r.submit()))):$("body").hideSpinner()}).fail(function(){$("body").hideSpinner()})}$(document).ready(function(){SetupBookingUI();SetupDestinationDropdown()});var initialized=!1;$(document).ready(function(){initialized||(initialized=!0,InitializeBooking())});$(window).bind("pageshow",function(n){n.originalEvent.persisted&&$("body").hideSpinner();initialized||(initialized=!0,InitializeBooking())})