function pushToPriceCalculations(n,t,i){priceCalculations[n]==undefined&&(priceCalculations[n]=[]);priceCalculations[n][t]=i}function loadGoogleMapsViaJsApi(n,t){$("#map_canvas").gmap("set","bounds",null);$("#map_canvas").gmap().bind("init",function(){$("#map_canvas").gmap("addMarker",{position:n+","+t,bounds:!0});$("#map_canvas").gmap("option","zoom",15)})}function openPromo(n){$("[name='promoDetails']").slideUp();$("[name='openPromo']").slideDown();$("#promodetails-"+n).css("display")=="none"&&($("#promodetails-"+n).slideDown(),$("#openPromo-"+n).hide())}function loadSupplierDetailSearchForm(){$("#childCountSD").val(childCount)}function loadSelector(){selectorUrl=Inntopia.AppPath+"/widgets/selector/html/"+salesId+"/"+language;$.get(selectorUrl,function(n){$("#sidebarSelector").html(n);$("#sidebarSelector").show()})}function hideAlerts(){$(".alert").hide()}function closeDetails(n){$("#showDetails-"+n).html('<i class="icon-chevron-right"><\/i>');$("#details-"+n).slideUp()}function goToPackage(n,t,i,r,u,f,e,o,s){var c,l,h,a;blockInntopiaUI();c=r.split(" ");l=u.split(" ");r=c[0];u=l[0];h=getLodgingComponents(n,s);h.length>0&&(i=h[0].productId,t=h[0].supplierId);a=Inntopia.AppPath+"/Package/PackageBuilder/"+salesId+"/"+language+"/?packageid="+n+"&defaultProducts="+t+","+i+"|&startDate="+r+"&endDate="+u+"&adultCount="+f+"&childCount="+e+"&childAgeArray="+o;window.location=a}function getLodgingComponents(n,t){return lodgingComponents.filter(function(i){return i.packageId==n&&i.promoDetails==t})}function setItineraryLoading(){$("#itinerary").html(' <div class="well text-center"><img src="'+Inntopia.AppPath+'/Images/wait.gif"/><\/div>')}function itineraryPackageAdd(n,t,i,r,u,f){var e,s;u==1?(r=lastItemJSON,n=lastSupplierId,t=lastProductId,i=lastPackageId):(lastItemJSON=r,lastSupplierId=n,lastProductId=t,lastPackageId=i);let o=1,h=moment(arrivalDate),c=moment(departureDate);for(o=c.diff(h,"days"),setItineraryLoading(),quantity=$("#qty-"+n+"-"+t+"-"+i).val(),e=0;e<r.length;e++)s=r[e].Quantity,r[e].Quantity=s*quantity;f!=undefined?$(f).button("loading"):$("#btn-"+n+"-"+t+"-"+i).button("loading");Inntopia.GetSessionId().done(function(e){var s={sessionId:e,itineraryItems:JSON.stringify(r),packageId:i,salesId:salesId,language:language,overrideAction:u};InntopiaCart.addItemsToCart(s,function(){f!=undefined?$(f).button("reset"):$("#btn-"+n+"-"+t+"-"+i).button("reset");$.unblockUI()},function(n,t){$.each(t,function(){this.item_category=="1"&&(this.price=this.price/o,this.quantity=this.quantity*o)});googleAnalyticsFour.pushAddToCart("listings-supplierdetail",n,t)})})}function updateChildCountSD(){var t=$('input[name="childCountSD"]').val(),i=[],n;if(t>0)for(n=0;n<t;n++){let t=$('input[id="childAgeSD_'+n+'"]').val();t!=""&&t!=null&&(i[n]=t)}if(Inntopia.requireChildAge&&t!=="0")for($("#childrenAgesSD").html(childAgesLabel+"<br />"),n=0;n<t;n++)addChildSD='<input type="number" class="input-mini" id="childAgeSD_'+n+'"  size="2" name="childAgeSD" min="0" max="21" step="1"><\/input>',$("#childrenAgesSD").append(addChildSD),$('input[id="childAgeSD_'+n+'"]').val(i[n]),$("#childAgesDisplayLabelSD").html(childAgesLabel);else $("#childrenAgesSD").html(""),$("#childAgesDisplayLabelSD").html("")}function getComponentPrice(n,t,i,r,u,f,e,o,s,h,c){var l=i.split(" "),a=r.split(" ");if(hiddenPromos.filter(function(t){return t.id==n}).length>0){$("#promo-"+n).hide();return}activeAPricingConnections=activeAPricingConnections+1;$.ajax({type:"GET",url:"/Ecomm/json/productpriceavailability/"+salesId,dataType:"json",cache:!0,data:{startDate:l[0],endDate:a[0],adultCount:u,childCount:f,supplierId:e,productId:o,packageId:s,quantity:h,language:language,componentId:c},success:function(i){if(i.length===0||i[0].Price===null){hiddenPromos.push({id:n});return}$("#promo-"+n).show();$("#price-"+t).html(Inntopia.FormatPrice(i[0].CurrencyAware_TotalRequestedQuantityPrice.QuoteAmount,i[0].CurrencyAware_Info,!1));i[0].Price===i[0].OriginalPrice?$("#oPrice-"+t).hide():$("#oPrice-"+t).html(Inntopia.FormatPrice(i[0].CurrencyAware_TotalRequestedQuantityOriginalPrice.QuoteAmount,i[0].CurrencyAware_Info,!1));pushToPriceCalculations(n,t,{price:i[0].CurrencyAware_TotalRequestedQuantityPrice.QuoteAmount,originalPrice:i[0].CurrencyAware_TotalRequestedQuantityOriginalPrice.QuoteAmount,currencyAwareInfo:i[0].CurrencyAware_Info})},complete:function(){activeAPricingConnections=activeAPricingConnections-1}})}function calculateAndShowSavings(){let n;Object.keys(priceCalculations).forEach(function(t){let i=priceCalculations[t],r=0,f=0;if(Object.keys(i).forEach(function(t){if(i[t]!==undefined&&i[t].currencyAwareInfo!==undefined){r+=i[t].price;f+=i[t].originalPrice;var u=i[t].currencyAwareInfo;if(n&&u.CurrencyCode!==pageLoadCurrencyCode){InntopiaNotification.error("Currency Changed","Your selected currency changed while loading this page.  Please refresh the page.");minPrice="";return}n=u}}),n===undefined){$("#promo-"+t).hide();return}var e=f-r,u=r/lengthOfStay;e<=0?$("#save2-"+t).hide():($("#save2-"+t).show(),$("#savings2-"+t).html(Inntopia.FormatPrice(e,n,!1)));$("#pernight-"+t).html(Inntopia.FormatPrice(u,n,!1));$("#promo-"+t).attr("data-price",u);$("#btnTotalPrice-"+t).html(Inntopia.FormatPrice(r,n,!1));$("#promo-"+t).show();(minPrice==""||Number(u)<Number(minPrice))&&(minPrice=u,minPriceDisplayed=Inntopia.FormatPrice(minPrice,n,!0))})}function showProductDetails(n,t,i,r){$.ajax({type:"GET",cache:!1,url:"/Ecomm/Listings/ProductDetail/"+salesId+"/",data:{supplierId:n,productId:t,arrivalDate:r,Language:language,isOpaque:isOpaque},success:function(n){$("#details-"+i).html(n)}})}function itineraryLodgingAdd(n,t,i,r,u){quantity=$("#qty-"+n+"-"+t+"-"+i).val();$("#btn-"+n+"-"+t+"-"+i).button("loading");let f=loadGtmLodgingProducts(n,t,quantity),e=[];e.push(f.gaFourProducts);Inntopia.GetSessionId().done(function(o){var s={sessionId:o,supplierId:n,productId:t,salesId:salesId,language:language,arrivalDate:arrivalDate,departureDate:departureDate,quantity:Number(quantity),adultCount:r,childCount:u,childAgeArray:childAges,packageId:i,packageComponentId:packageComponentId};InntopiaCart.addItemToCart(s,function(){$("#btn-"+n+"-"+t+"-"+i).button("reset")},function(n){googleAnalyticsFour.pushAddToCart("listings-supplierdetail",n,e)},f.gtmProducts)})}function loadGtmLodgingProducts(n,t,i){var r=$("#product-"+n+"-"+t),f,e;let u=$(".product-row-"+n+"-"+t);f="Lodging";e={name:r.data("name"),id:n+"-"+t,price:r.data("price"),brand:r.data("supplier-name"),category:f,list:"SupplierDetail",position:r.data("position-order"),quantity:i};let o=moment(arrivalDate),s=moment(departureDate),h=s.diff(o,"days"),c={item_id:t.toString(),item_name:r.data("name"),categoryId:r.data("category"),price:parseFloat(u.data("price")),quantity:parseInt(i*h,10),item_brand:r.data("supplier-id")+"-"+r.data("supplier-name"),coupon:"",variant:u.data("package-id")||null};return{gtmProducts:e,gaFourProducts:c}}var filterWidget=new function(){this.initialize=function(n,t){t||(t=[]);this.createPriceSlider(n,t);localStorage.filterData!=undefined&&(searchFilterHelper.checkWidgetFilters(JSON.parse(localStorage.filterData)),n?searchFilterHelper.filterSupplierDetailPage(JSON.parse(localStorage.filterData)):searchFilterHelper.filterLodging(t),localStorage.removeItem("filterData"));n&&$("#searchFilters").show();filterWidget.changeFiltersOpenerIcon();$("#searchFilters label").click(function(){var n="#"+$(this).next().attr("id");$(n+" input:checked").length===0&&n!=="#priceFilter"&&n!="#currency-dropdown"&&($(n).slideToggle(),$(n+"Opener").hasClass("icon-chevron-down")?$(n+"Opener").attr("class","icon-chevron-right"):$(n+"Opener").attr("class","icon-chevron-down"))});$("#searchFilters label").each(function(){var n="#"+$(this).next().attr("id");n!=="#priceFilter"&&n!=="#currency-dropdown"&&($(n+" input").length==0&&$(n+"Label").hide(),$(n+" input:checked").length==0&&$(n).hide())});$("#searchFilters input").click(function(){n?searchFilterHelper.filterSupplierDetailPageFromFilterWidget():searchFilterHelper.filterLodging(t)})};this.createPriceSlider=function(n,t){$("#priceSlider").slider({min:0,max:1e10,range:!0,values:[0,1e10]});n?($("#priceFilter").show(),$("#priceFilterLabel").show(),filterWidget.setMinMaxPriceLodgingDetail()):($("#priceFilter").hide(),$("#priceFilterLabel").hide());$("#priceSlider").on("slide",function(){var n=$("#priceSlider").slider("values");$("#minPriceLabel").html(n[0].toLocaleString(Window.language));$("#maxPriceLabel").html(n[1].toLocaleString(Window.language))});$("#priceSlider").on("slidechange",function(){var i=$("#priceSlider").slider("values");$("#minPriceLabel").html(i[0].toLocaleString(Window.language));$("#maxPriceLabel").html(i[1].toLocaleString(Window.language));n?searchFilterHelper.filterSupplierDetailPageFromFilterWidget():searchFilterHelper.filterLodging(t)})};this.setMinMaxPriceLodging=function(){var t=null,n=null;$("#supplierList li").each(function(){(Number($(this).data("minPrice"))<Number(t)||t==null)&&(t=$(this).data("minPrice"));(Number($(this).data("maxPrice"))>Number(n)||n==null)&&(n=$(this).data("maxPrice"))});this.populatePriceSlider(n)};this.setMinMaxPriceLodgingDetail=function(){var n=null;$(".supplierDetailProducts").each(function(){(Number($(this).data("price"))>Number(n)||n==null)&&(n=$(this).data("price"))});this.populatePriceSlider(n)};this.populatePriceSlider=function(n){$("#priceSlider").slider("option","min",0);$("#priceSlider").slider("option","max",Number(n));$("#minPriceLabel").html("0");$("#maxPriceLabel").html(Number(n).toFixed(0).toLocaleString(Window.language))};this.changeFiltersOpenerIcon=function(){$("#unitTypeFilters input").length==0&&$("#unitTypeFiltersLabel").hide();$("#unitTypeFilters input:checked").length==0?$("#unitTypeFilters").hide():$("#unitTypeFiltersOpener").attr("class","icon-chevron-down");$("#propertyAmenityFilters input").length==0&&$("#propertyAmenityFiltersLabel").hide();$("#propertyAmenityFilters input:checked").length==0?$("#propertyAmenityFilters").hide():$("#propertyAmenityFiltersOpener").attr("class","icon-chevron-down");$("#unitAmenityFilters input").length==0&&$("#unitAmenityFiltersLabel").hide();$("#unitAmenityFilters input:checked").length==0?$("#unitAmenityFilters").hide():$("#unitAmenityFiltersOpener").attr("class","icon-chevron-down");$("#bedroomFilters input").length==0&&$("#bedroomFiltersLabel").hide();$("#bedroomFilters input:checked").length==0?$("#bedroomFilters").hide():$("#bedroomFiltersOpener").attr("class","icon-chevron-down");$("#neighborhoodFilters input").length==0&&$("#neighborhoodFiltersLabel").hide();$("#neighborhoodFilters input:checked").length==0?$("#neighborhoodFilters").hide():$("#neighborhoodFiltersOpener").attr("class","icon-chevron-down");$("#unitRatingFilters input").length==0&&$("#unitRatingFiltersLabel").hide();$("#unitRatingFilters input:checked").length==0?$("#unitRatingFilters").hide():$("#unitRatingFiltersOpener").attr("class","icon-chevron-down")}},searchFilterHelper=new function(){this.filterData;this.filterSupplierDetailPageFromFilterWidget=function(){searchFilterHelper.initializeLodgingFilterData([]);searchFilterHelper.filterSupplierDetailPage(searchFilterHelper.filterData)};this.filterSupplierDetailPage=function(t){if(t){var i=$(".supplierDetailProducts");i.each(function(){var i=n($(this),t);i?$(this).hide():$(this).show()})}};this.checkWidgetFilters=function(n){$("#priceSlider").slider("option","values",[n.minPrice,n.maxPrice]);$("#minPriceLabel").html(n.minPrice.toLocaleString(Window.language));$("#maxPriceLabel").html(Math.round(Math.min(n.maxPrice,$("#priceSlider").slider("values")[1])).toLocaleString(Window.language));n.unitTypeFilters.forEach(function(n){$('#unitTypeFilters input[value="'+n+'"]').prop("checked",!0)});n.propertyAmenityFilters.forEach(function(n){$('#propertyAmenityFilters input[value="'+n+'"]').prop("checked",!0)});n.unitAmenityFilters.forEach(function(n){$('#unitAmenityFilters input[value="'+n+'"]').prop("checked",!0)});n.bedroomFilters.forEach(function(n){$('#bedroomFilters input[value="'+n+'"]').prop("checked",!0)});n.neighborhoodFilters.forEach(function(n){$('#neighborhoodFilters input[value="'+n+'"]').prop("checked",!0)});n.unitRatingFilters.forEach(function(n){$('#unitRatingFilters input[value="'+n+'"]').prop("checked",!0)})};this.filterLodging=function(n){typeof inntopiamaps!="undefined"&&inntopiamaps.clearMarkers();searchFilterHelper.initializeLodgingFilterData(n);$("#supplierList li:not(.marketingTileRowTile)").each(function(){for(var u,i=$(this).data("supplierId"),n=0,r=!0,f=$(this).data("att"),o=$(this).data("latLng"),e=$(this).data("hastripadvisor"),t=0;t<searchFilterHelper.filterData.propertyAmenityFilters.length;t++)f.indexOf(searchFilterHelper.filterData.propertyAmenityFilters[t])==-1&&(r=!1);r==!1?(n=0,$("#productList_"+i+" tr").each(function(){$(this).hide()})):Lodging.isStayPage()?n=searchFilterHelper.filterStayPage($(this),searchFilterHelper.filterData):(u=$("#productList_"+i+" tr"),n=searchFilterHelper.filterLodgingPage(u,e,searchFilterHelper.filterData));n==0&&dateless==!1?$(this).hide():($(this).show(),typeof inntopiamaps!="undefined"&&inntopiamaps.addMapMarker(this),searchFilterHelper.filterData.numberMatches=searchFilterHelper.filterData.numberMatches+1)});adjustMargins();$("#numberMatches").html(searchFilterHelper.filterData.numberMatches);searchFilterHelper.filterData.numberMatches==0&&percentageSearched==100?$("#noMatches").fadeIn():$("#noMatches").hide();typeof inntopiamaps!="undefined"&&inntopiamaps.postFilterProcessing()};this.initializeLodgingFilterData=function(n){var t=$("#priceSlider").slider("values");searchFilterHelper.filterData={numberMatches:0,minPrice:t[0],maxPrice:Number(t[1])+.99,unitTypeFilters:[],unitAmenityFilters:[],propertyAmenityFilters:[],bedroomFilters:[],neighborhoodFilters:[],unitRatingFilters:[]};n.length>0&&$.each(n,function(n,t){unitTypeFilters.push(t);$("#unitTypeFilters").show();$("#unitTypeFiltersOpener").attr("class","icon-chevron-down");$("input[name="+t+"]").prop("checked",!0)});$("#unitTypeFilters input:checked").each(function(){val=$("input[name="+this.name+"]").val();searchFilterHelper.filterData.unitTypeFilters.push(val)});$("#unitAmenityFilters input:checked").each(function(){searchFilterHelper.filterData.unitAmenityFilters.push($(this).val())});$("#bedroomFilters input:checked").each(function(){searchFilterHelper.filterData.bedroomFilters.push($(this).val())});$("#neighborhoodFilters input:checked").each(function(){searchFilterHelper.filterData.neighborhoodFilters.push($(this).val())});$("#unitRatingFilters input:checked").each(function(){searchFilterHelper.filterData.unitRatingFilters.push($(this).val())});$("#propertyAmenityFilters input:checked").each(function(){searchFilterHelper.filterData.propertyAmenityFilters.push($(this).val())})};this.filterLodgingPage=function(t,i,r){var u=0;return t.each(function(){var f=3,t=!1;i&&(f=2);n($(this),r)?t=!0:u>=f?t=!0:(t=!1,u=u+1);t==!0?$(this).hide():$(this).show()}),u};this.filterStayPage=function(t,i){var r=n(t,i);return r?0:1};var n=function(n,t){for(var u=n.data("att"),f=n.data("price"),r=!1,e=!0,o=!1,s=!1,h=!1,c=!1,i=0;i<t.unitAmenityFilters.length;i++)u.indexOf(t.unitAmenityFilters[i])==-1&&(e=!1);for(i=0;i<t.unitTypeFilters.length;i++)u.indexOf(t.unitTypeFilters[i])!=-1&&(o=!0);try{for(i=0;i<t.bedroomFilters.length;i++)u.indexOf(t.bedroomFilters[i])!=-1&&(s=!0)}catch(l){}for(i=0;i<t.neighborhoodFilters.length;i++)u.indexOf(t.neighborhoodFilters[i])!=-1&&(h=!0);for(i=0;i<t.unitRatingFilters.length;i++)u.indexOf(t.unitRatingFilters[i])!=-1&&(c=!0);return t.unitTypeFilters.length>0&&o==!1?r=!0:t.unitAmenityFilters.length>0&&e==!1?r=!0:t.bedroomFilters.length>0&&s==!1?r=!0:t.neighborhoodFilters.length>0&&h==!1?r=!0:t.unitRatingFilters.length>0&&c==!1?r=!0:(Number(f)>Number(t.maxPrice)||Number(f)<Number(t.minPrice))&&(r=!0),r}};$(document).ready(function(){var n,t;filterWidget.initialize(!0);n=TranslateErrorString("BookNowLabel");t=TranslateErrorString("BookFromText");$(document).ajaxComplete(function(){activeAPricingConnections==0&&(calculateAndShowSavings(),Number(minPrice)==0?$("#bookNow").html(n+"!"):$("#bookNow").html(t+" "+minPriceDisplayed+"!"));hiddenPromos.forEach(function(n){$("#promo-"+n.id).hide()})});$(document).one("ajaxStop",function(){googleAnalyticsFour.pushSuppDetItemListView("listings-supplierdetail")});$("#checkAvailability").click(function(){var t,h,c;$("#formError").html("");var f=$("#arrivalDate").val(),e=$("#departureDate").val(),r=$("#adultCount").val(),i=$("#childCountSD").val(),o=[],u=new Date,s=new Date(f),l=new Date(e),n=!1;if(f==""?($("#formError").html('<div class="text-error">'+TranslateErrorString("ArrivalDate")+"<\/div>"),n=!0):r==""?($("#formError").html('<div class="text-error">'+TranslateErrorString("NumAdults")+"<div>"),n=!0):isNaN(r)?($("#formError").html('<div class="text-error">'+TranslateErrorString("NumAdults")+"<div>"),n=!0):isNaN(i)?($("#formError").html('<div class="text-error">'+TranslateErrorString("NumChildren")+"<div>"),n=!0):e==""?($("#formError").html('<div class="text-error">'+TranslateErrorString("DepartureDate")+"<div>"),n=!0):Number(i)+Number(r)===0&&($("#formError").html('<div class="text-error">'+TranslateErrorString("NumAdults")+"<div>"),n=!0),language!="en-us"?(u=new Date,todayInEuropeanFormat=u.getDate()+"/"+(u.getMonth()+1)+"/"+u.getFullYear(),s<todayInEuropeanFormat&&($("#arrivalDate_@cat.SuperCategoryId").parent().after('<div class="text-error">'+TranslateErrorString("ArrivalDateAfterToday")+"<\/div>"),n=!0)):s<u&&($("#arrivalDate_@cat.SuperCategoryId").parent().after('<div class="text-error">'+TranslateErrorString("ArrivalDateAfterToday")+"<\/div>"),n=!0),s>=l&&($("#formError").html('<div class="text-error">'+TranslateErrorString("DateBeforeDate")+"<div>"),n=!0),Inntopia.requireChildAge&&i>0)for(t=0;t<i;t++){let i=$('input[id="childAgeSD_'+t+'"]').val();isNaN(i)||i===""?($("#childAgeSD_"+t).after("<div class='text-error'>"+TranslateErrorString("NumChildrenAgeRequired")+"<div>"),n=!0):i>21?($("#childAgeSD_"+t).after("<div class='text-error'>"+TranslateErrorString("NumChildrenAgeTooOld")+"<div>"),n=!0):o[t]=i}n===!1&&(setDefaultsCookie(f,e,r,i,o,null,null,null,null,null),blockInntopiaUI(),h=Inntopia.AppPath+"/listings/supplierdetail/"+salesId+"/"+language+"/?supplierid="+supplierId+"&arrivaldate="+f+"&departuredate="+e+"&adultcount="+r+"&childCount="+i+"&childagearray="+o+"#Availability",c=location.pathname+location.search+location.hash,c==h?location.reload(!0):location.replace(h))});arrivalDate.length===0?($("#searchDatesDisplay").hide(),$("#productList").hide()):resultsCount===0?($("#notAvailable").show(),$("#changeDatesForm").slideDown(),$("#searchDatesDisplay").hide()):$("#changeDatesForm").hide();$("#changeDates").click(function(){loadSupplierDetailSearchForm();$("#changeDatesForm").slideDown({complete:function(){hydrateDatepicker("#arrivalDatePicker",arrivalDate);hydrateDatepicker("#departureDatePicker",departureDate)}});$("#searchDatesDisplay").hide()});makeDatepickers("arrivalDate","departureDate",language,BASE_PATH,null);Inntopia.SetDisplayDatesUi();InntopiaCart.loadItinerary();loadSelector();ref=document.referrer;ref.toLowerCase().indexOf("/shop/lodging")!=-1&&$("#back").html('<a href="javascript:history.go(-1)">&lt;&lt;'+TranslateErrorString("BackToResultsText")+"<\/a>");$("a:not([href^='javascript'])").on("click",function(n){var t=$($.attr(this,"href"));return $(n.target).parents(".carousel").length>0?!0:(t.length>0&&$("html, body").animate({scrollTop:t.offset().top},500),!1)});updateChildCountSD();$('input[name="childCountSD"]').change(function(){updateChildCountSD()})})