if(typeof HC=="undefined"||HC==null)var HC={SR:{}};(function(n,t,i){function gt(n){var t;n=n||{};r=$.extend(!0,{},r,n);t=HC.QS.getQueryParameterValue("scroll");t&&$(window).scrollTop(parseInt(t,10));ti();l(function(){var t=$("#hc_f_sr_lowAvailability_searchradius"),n;t.length>0&&(n=$.parseJSON(t[0].innerHTML),n&&pt(n.Radius))});it();di(n.$resultsWrapper);w||($.extend(n,{liClass:"hc_sri_photos_",dtClass:"hc_sri_photos",imageExpanded:ni}),HC.SpriteGallery.init(n.$resultsWrapper,n));HC.SR.UI.initSearchResultsFloat();ct(hi);ht();ir();HC.SR.Sorting.setOnSortChangeBegin(function(n){n&&n!=="Popularity"&&wt()});new HC.SR.Paging(n.$resultsWrapper)}function ni(){HC.GoogleUA.trackEvent("SearchResultItem","Photo","Hover")}function ti(){u.isHistoryEnabled&&(u.init({getState:function(){return{query:f({queryOnly:!0})}},setState:function(n){n&&n.query&&n.query!==p&&(p=n.query,h(p))}}),l(tt))}function tt(n){var t=HC.SR.Paging.getPageIndex();u.isInitialStateSet()?nt!==t?u.addNewEntry(n):n&&u.updateEntry(n):u.setInitialState();nt=t}function it(n,t){t=t||{};window.clearTimeout(s);ft()?(o=0,pi()):(t=$.extend({appendHash:!1,displayFiltering:!1,queryOnly:!0},t),n=n||f(t),s=window.setTimeout(function(){o+=1;h(n,t)},bt),a=!1)}function h(n,t){var i,f,u;t=t||{};t=$.extend({displayFiltering:!0,appendHash:!0,displayType:"loading",replaceUrl:!0},t);i={};i[t.displayType]=!0;i.zIndex=100;f=t.pageReload?r.parentPage:r.ajaxPage;u=function(){return f+"?"+n};t.pageReload?(n=HC.QS.remQStringName(n,"scroll"),t.replaceUrl?window.location.replace(u()):window.location=u()):$.ajax({mode:"sync",port:"searchresults",url:u(),type:"get",dataType:"text",cache:!1}).done(function(i){ii(n,t,i)}).fail(function(){/&errorreload=true/g.test(location.search)||c({pageReload:!0,displayFiltering:!1,additionalParams:"&errorreload=true"})});!r.hideFilteringMessage&&t.displayFiltering&&HC.Common.Status.DisplayFiltering(i)}function ii(n,t,i){if(typeof i!="undefined"){var r=$("#SearchResultsBody")[0];r.innerHTML=i;t.displayFiltering&&HC.Common.Status.HideFiltering();typeof t.scrollTop!="undefined"&&$(window).scrollTop(t.scrollTop);t.appendHash&&ut(f({queryOnly:!0}));t.displayFiltering=!1;it(n,t);ht(t)}}function c(n){n=n||{};n.queryOnly=!0;rt();var t=f(n);h(t,n)}function rt(n){n=n||{};n=$.extend({cancelCompleteChecks:!0},n);n.cancelCompleteChecks&&s&&(window.clearTimeout(s),o=0)}function ut(n){var i=location.href,f=i.indexOf("#");u.isInitialStateSet()?(f!==-1&&(i=i.substring(0,f)),tt(i+"#"+n)):location.replace("#"+n);t.setReturnUrl(r.parentPage+"?"+n)}function ft(){var t,n;return n=$("#SearchResultsHolder").attr("data-isComplete"),t=typeof n=="undefined"?!0:n==="true"?!0:!1,t||o>=kt}function ri(){var n,t,i;a=!0;n=$("#hc_f_sr_map_json");n.length>0&&(t=$.parseJSON(n[0].innerHTML),d=t,i=b(),HC.publish("HC_SR_ResultsDataChange",t,i))}function b(){var n=$("#SearchResultsHolder");return{isComplete:n.attr("data-iscomplete"),pageNumber:n.attr("data-pagenumber"),pages:n.attr("data-totalpages"),hasResults:n.attr("data-hasresults"),totalFilteredResults:n.attr("data-totalfilteredresults"),totalPages:n.attr("data-totalPages"),hotelsAvailableTranslation:n.attr("data-hotelsavailabletranslation"),propertiesAvailableTranslation:n.attr("data-propertiesavailabletranslation")}}function et(n){var i=k().data,t;return t=HC._.filter(i,function(t){return t.fileName===n}),t[0]?$.extend(!0,{},t[0]):null}function ot(n){$.extend(!0,r,n)}function f(n){var t;return n=n||{},n.excludeDates=r.excludeDates,t=HC.Common.GenerateQueryString(n),t+="&"+HC.SR.Paging.GenerateQueryString(),typeof n.includeTaxesInTotal!="undefined"&&(t+="&includeTaxesInTotal="+(n.includeTaxesInTotal?"1":"0")),r.disableSort||(t+="&"+HC.SR.Sorting.GenerateQueryString()),r.disableFilters||(t+="&"+HC.SR.Filter.GenerateQueryString()),t+="&"+HC.SR.UI.generateQueryString(n),r.hotelId&&(t+="&HotelID="+r.hotelId.join(",")),n.queryOnly||(t=r.parentPage+"?"+t),t+="&mapState="+encodeURIComponent(HC.SR.Map.getState()),r.providerRateFilter&&(t+="&onlyproviders="+r.providerRateFilter),n.additionalParams&&(t+=n.additionalParams),(w||(w=$("#SearchResultsBody").attr("data-show-new-sri")))&&(t+="&isNewSRIDesignTarget=true"),v&&(t=v(t)),t}function ui(n){v=n}function fi(n){HC.subscribe("HC_SR_HotelSelected",n)}function st(n){g||(HC.publish("HC_SR_HotelSelected",et(n)),g=!0)}function ei(n){HC.subscribe("HC_SR_ProviderSelected",n)}function oi(n,t,i){HC.publish("HC_SR_ProviderSelected",n,t,et(i))}function ht(n){var t=b();n&&$.extend(t,n);ri();HC.publish("HC_SR_ResultsUpdated",t)}function ct(n){return HC.subscribe("HC_SR_ResultsUpdated",n),n}function si(n){HC.unsubscribe("HC_SR_ResultsUpdated",n)}function hi(){var n=$("#hc_f_sr_filter_hotelCounts"),t;n.length>0&&(t=$.parseJSON(n[0].innerHTML),HC.publish("HC_SR_CountsUpdated",t))}function ci(n){HC.subscribe("HC_SR_DestinationClicked",n)}function li(n){HC.unsubscribe("HC_SR_DestinationClicked",n)}function ai(n){HC.subscribe("HC_SR_ResultsDataChange",n)}function vi(){return a}function yi(n,t){l(t)}function l(n){return HC.subscribe("HC_SR_SearchComplete",n)}function pi(){HC.publish("HC_SR_SearchComplete");dt=!0}function wi(n){HC.unsubscribe("HC_SR_SearchComplete",n)}function bi(n){HC.subscribe("HC_SR_CountsUpdated",n)}function k(){return d}function ki(n){var t=[];return $("div.hc_sri").slice(0,n).each(function(){t.push($(this).data("hotelid"))}),t}function di(n){HC.SR.GoogleUA.setupSriTracking(n);n.on("mousedown","[data-providercode] a",function(){var n=$(this).data("providercode"),t=$(this).data("providername"),i=$(this).closest("[data-filename]").data("filename");oi(n,t,i)});n.on("mousedown","[data-browse-item] a",function(){var n=$(this).closest("[data-filename]").data("filename");st(n)})}function gi(t,i,r){var u;r=r||{};i&&nr()&&($(t).attr("target","_blank"),r.noDisplayFiltering=!0);n.isDeviceCategoryTablet()&&(r.append=null);u=$(t).closest("[fn]").attr("fn");lt(u,t,null,r)}function nr(){return y!==undefined?y:n.isDeviceCategoryDesktop()&&n.isWebBrowserTypeChrome()}function lt(n,t,i,r){var u;r=r||{};u=at(n,t,i);u+=r.append?"&"+r.append:"";t.href=u;$(t).click(function(){e||HC.Common.DeviceIsIos()||r.noDisplayFiltering||HC.Common.Status.DisplayFiltering({loadingHotel:!0})});st(n)}function at(n,t,i){var f=r.excludeDates?"/Hotel?":"/Hotel/Search?",u=vt(n);return i&&!r.excludeDestination&&(u=HC.QS.remQStringName(u,"destination"),u=HC.QS.setQStringName(u,"destination",[i])),r.excludeDestination&&(u=HC.QS.remQStringName(u,"destination")),f+u}function vt(n){var t,i,u;return t=f({seperate:!0}),i=t.substring(t.indexOf("?")+1),ut(i),u=HC.Common.GenerateHotelQueryString(n,{excludeDates:r.excludeDates}),HC.QS.setQStringName(u,"returnPath",[t])}function tr(n,t,i){var r,u,o;HC.publish("HC_SR_DestinationClicked",t);i=i||{};i=$.extend({excludeRadius:!0,scroll:0},i);HC.Common.fields.destination=t;HC.SR.Paging.SetPageIndex(0);ot({disableFilters:!0});o=f(i);n.href=o;n.onclick=function(){e||HC.Common.Status.DisplayFiltering({loading:!0})};r=$(n).data("track-destination");u=$(n).dataClosest("track-category");yt(r,u)}function yt(n,t){n&&t&&(t=t.split(","),t.length===2?HC.Common.TrackEvent(t[0],t[1],n):HC.Common.TrackEvent(t[0],n))}function pt(n,t){t=t||{};t=$.extend({displayType:"loading"},t);HC.Common.fields.radius=n;HC.SR.Paging.SetPageIndex(0);c(t);n||(n="0");HC.Common.TrackEvent("Change Radius",n)}function ir(){$(document).keydown(function(n){n.keyCode==17&&(e=!0);n.metaKey==!0&&(e=!0)});$(document).keyup(function(n){n.keyCode==17&&(e=!1)});$(document).mousedown(function(n){n.which==2&&(e=!0)})}function wt(n){HC.Cookies.remove("profile");n===!0&&c({pageReload:!0})}function rr(){return r.datedPage}function ur(n){n!=undefined&&(y=n)}function fr(n){var t=$(n),i=t.find("[data-ratingpopup]"),u=t.data("hotelid"),f=t.data("culture"),r=i.find("[data-loading-spinner]");r.show();er(u,f).done(function(n){i.first().html(n)}).fail(function(){r.hide()});HC.Common.TrackEvent("SearchResultItem","GuestRatingHover")}function er(t,r){return $.ajax({url:"/Hotel/Ratings",type:"get",data:{hotelID:t,languageCode:n.languageCode,culture:r,cdnKey:i.getCdnKey()}})}var a=!1,d={},o=0,s=null,bt=1e3,kt=30,v=null,e=!1,r={ajaxPage:"/Hotels/SearchResults",parentPage:"/Hotels/Search",excludeDates:!1,datedPage:!1,hideFilteringMessage:!1},g=!1,dt=!1,y,nt,p,u,w=!1;(function(){function t(t,i){n&&window.history[i?"replaceState":"pushState"](n.getState(),document.title,t)}function r(t){this.isHistoryEnabled()&&(n=t,window.addEventListener("popstate",function(t){n.setState&&n.setState(t.state)}))}function f(n){t(n)}function e(n){t(n,!0)}function o(){t(null,!0);i=!0}var i=!1,n;u={init:r,addNewEntry:f,updateEntry:e,setInitialState:o,isHistoryEnabled:function(){return window.history.replaceState},isInitialStateSet:function(){return this.isHistoryEnabled()&&i}}})();HC.SR={InitialLoad:gt,setOptions:ot,setSearchComplete:yi,addSearchCompleteSubscriber:l,removeSearchCompleteCallback:wi,addResultsDataChangeSubscriber:ai,addResultsUpdatedSubscriber:ct,unsubscribeFromResultsUpdated:si,addHotelCountsUpdatedSubscriber:bi,setsearchDestinationClickedCallback:ci,removeSearchDestinationClickedCallback:li,subscribeHotelSelected:fi,subscribeProviderSelected:ei,getResultsData:k,getHotelsJson:k,hasSearchingCompleted:ft,getHotelsForRetargeting:ki,getSearchDataAttributes:b,areResultsLoaded:vi,Search:c,LoadResults:h,cancelSearch:rt,SetCustomQueryParser:ui,SearchDestinationClicked:tr,LinkClicked:gi,SetRadius:pt,LinkClickedCommon:lt,getLinkClickedHref:vt,getClickedLinkUrl:at,RemoveSearchProfile:wt,isDatedPage:rr,setGlobalOpenInNewTab:ur,getSearchQuery:f,trackEvent:yt,getRatingPopup:fr}})(HC.UserContext,HC.MainNavigation,HC.Common);HC.namespace("HC.SR.GoogleUA"),function(n,t,i){function e(){i.hasSearchingCompleted()&&f();i.setSearchComplete("googleUa",function(){f()});i.subscribeHotelSelected(u);i.subscribeProviderSelected&&i.subscribeProviderSelected(function(n,t,i){u(i)})}function u(n){t.sendHotelProductClick(n,r,i.isDatedPage())}function f(){var n=i.getHotelsJson().data;n&&t.sendHotelsImpression(n,r,i.isDatedPage())}function o(n){n.on("mousedown.srigoogle","[p]",s)}function s(){var n={"1":"Photo","2":"Hotel Name","3":"Price","4":"Map","5":"Features","6":"Reviews","7":"Photos","8":"More Details","9":"Select/Check Prices","10":"Room Type","11":"Room Type Price","12":"Compare x Websites","13":"View all rooms"}[$(this).attr("p")];n&&HC.Common.TrackEvent("SearchResultItem",n)}var r="Search Results";$.extend(HC.SR.GoogleUA,{setupSriTracking:o});$(function(){e()})}(HC.UserContext,HC.GoogleUA,HC.SR),function(){function s(){HC.SR.addResultsUpdatedSubscriber(c)}function h(n){$.extend(t,n)}function c(n){l(n);t.updateBreadCrumbCount&&p(n);t.showNumberOfAvailableHotels&&w(n);HC.SpriteGallery.resetImageCache()}function l(n){v();y(n);HC.publish("HC_SR_UI_RefreshSections",n)}function a(n){HC.subscribe("HC_SR_UI_RefreshSections",n)}function v(){var n,t;n=$("#hc_sr_expand_descload");t=$("#hc_sr_expand_desc");n.length>0?(t.html(n.html()),t.show()):t.hide();n=$("#hc_sr_expand_topload");n.length>0&&(t=$("#hc_sr_expand_top"),t.html(n.html()))}function y(n){n.hasResults==="true"?$("#hc_sr_sort").show():$("#hc_sr_sort").hide()}function p(n){var t=$("#hc_bc").find("li"),i,r,u;t.length>=1&&(i=t[t.length-1],(n.isComplete==="true"||n.hasResults==="true")&&(r=$(i).find("span"),u=n.hotelsAvailableTranslation,r.length>0?$(r).text(u):$(i).append("<span>"+u+"<\/span>")))}function w(n){var u=t.container?$(t.container):$(document),i=u.find('[data-section="propertiesAvailable"]'),r;i.length>0&&(n.isComplete==="true"||n.hasResults==="true")&&(r=n.propertiesAvailableTranslation,i.html('&nbsp;<span class="hc-availablehotels">'+r+"<\/span>"))}function b(){function e(f){function o(){var o=t.scrollTop(),f;o>r||(r=o,f=o-n.offset().top,f<0?f=0:f+=u,e!==null&&(window.clearTimeout(e),e=null),e=window.setTimeout(function(){n.stop(!0).animate({height:f+"px"},300);i&&i()},300),f===0&&t.unbind("scroll.resultsfloat"))}var e=null;r=t.scrollTop();$(n).height(f+u);$(window).scrollTop(r);t.unbind("scroll.resultsfloat");t.bind("scroll.resultsfloat",o)}var f=$("#hc_r_3"),t=$(window),r,u=20;n=$("<div/>").css({width:"10px",height:"0"});f.prepend(n);HC.SR.Filter.AddFilterChangedSubscriber(function(){var i,r=t.scrollTop();i=r-n.offset().top;r>0&&e(i)})}function k(n){i=n}function d(n,t){$("#hc_sr_expand_top").toggle();var i=$("#hc_sr_expand_top").is(":visible")?t:n;$("#hc_sr_expand_desc #hc_sr_expand_changeRadius").html(i)}function g(t){var i;return t.scroll===0||t.scroll?i=t.scroll:(i=$(window).scrollTop(),n&&n.length>0&&(i=i-n.height(),i=i<0?0:i)),"scroll="+i}function nt(n,t){r=n;t&&u();HC.SR.addResultsUpdatedSubscriber(u)}function u(n){n&&n.isComplete!=="false"?rt():(tt(),ut())}function tt(){$("#"+r).show()}function it(){$("#"+r).hide()}function o(){it();HC.SR.unsubscribeFromResultsUpdated(u)}function rt(){clearTimeout(e);o()}function ut(){f||(e=window.setTimeout(function(){o()},7e3),f=!0)}var f=!1,n,i,r,e,t={updateBreadCrumbCount:!0,showNumberOfAvailableHotels:!1};HC.SR.UI={initSearchResultsFloat:b,setSearchResultsFloatFinishedCallback:k,toggleExpandSearchBarTop:d,generateQueryString:g,AddRefreshSectionsSubscriber:a,initializeLoadingResultsSpinner:nt,setOptions:h};s()}(),function(){HC.SR.Sorting={_currentSortField:null,_currentSortAscending:null,_currentSortElement:null,_parentElement:null,_onSortChangeBeginCallback:null,_sessionStorage:null,_pendingTracking:null,_isSortBarExperimentActive:!1,_fieldMappings:{Rating:{toggle:!0,defaultAscending:!1},Distance:{toggle:!1,defaultAscending:!0},MinRate:{toggle:!0,defaultAscending:!0},ConsumerRating:{toggle:!1,defaultAscending:!1},Popularity:{toggle:!1,defaultAscending:!1}},IsSortBarExperimentActive:function(){return this._isSortBarExperimentActive},Init:function(n){this._currentSortField=n.currentField;this._currentSortAscending=n.currentAscending;this._parentElement=n.parentElement;this.SetHandlers(n);this._sessionStorage=window.sessionStorage;this._isSortBarExperimentActive=n.isSortBarExperimentActive===!0},OnChange:function(n,t,i){var r=HC.SR.Sorting,f=r._fieldMappings[t],u;if(this._onSortChangeBeginCallback&&this._onSortChangeBeginCallback(t),r._currentSortField==t)if(f.toggle)u=!r._currentSortAscending;else return!1;else u=f.defaultAscending;r._currentSortField=t;r._currentSortAscending=u;r._isSortBarExperimentActive&&(r.UpdateText(n,r._currentSortAscending,r._currentSortField),$(n).append('<span class="hc-sortoptions__loading"><\/span>'));r.HighlightSelected(n,r._currentSortAscending);HC.SR.Paging.SetPageIndex(0);(i===null||i===undefined||i)&&HC.SR.Search({displayType:"sorting"});HC.Common.TrackEvent("Sort",r.GenerateStringRepresentation())},setOnSortChangeBegin:function(n){this._onSortChangeBeginCallback=n},UpdateText:function(n,t,i){var u="SortBarRecommended",f="SortBarPrice",e="SortBarStars",r=$(this._parentElement);i==="Popularity"?u="SortBarRecommendedByUs":i==="MinRate"?f=t?"SortBarPriceLowToHigh":"SortBarPriceHighToLow":i==="Rating"&&(e=t?"SortBarStarsLowToHigh":"SortBarStarsHighToLow");r.find('[data-field="Popularity"]').html(HC.Translations.get(u));r.find('[data-field="MinRate"]').html(HC.Translations.get(f));r.find('[data-field="Rating"]').html(HC.Translations.get(e))},HighlightSelected:function(n,t){var i=HC.SR.Sorting;i._isSortBarExperimentActive?($(this._parentElement).find(".hc-sortoptions__itemlink--selected").removeClass("hc-sortoptions__itemlink--selected hc-sortoptions__itemlink--ascending hc-sortoptions__itemlink--descending"),$(n).addClass(t?"hc-sortoptions__itemlink--ascending":"hc-sortoptions__itemlink--descending").addClass("hc-sortoptions__itemlink--selected")):($(this._parentElement).find(".hc_selected").removeClass("hc_selected hc_t_order_asc hc_t_order_dec"),$(n).parent().addClass(t?"hc_t_order_asc":"hc_t_order_dec").addClass("hc_selected"))},GenerateStringRepresentation:function(){var n=this._currentSortAscending?"asc":"desc";return this._currentSortField+"-"+n},GenerateQueryString:function(){return"sort="+this.GenerateStringRepresentation()},SetActiveSort:function(n,t){this._currentSortField=n;this._currentSortAscending=t;var i=$(this._parentElement).find('li[data-field="'+n+'"]').children()[0];i&&this.HighlightSelected(i,t)},SetHandlers:function(n){var i=HC.SR.Sorting,t=$(n.parentElement).find("[data-field='Distance']"),r;t.length>0&&(r=function(){t.hcToolTip("close");i.OnChange(t,"Distance",!1)},i.ConfigureTooltipAndCallback(t,n.distanceTooltipContentSelector,HC.SR.setsearchDestinationClickedCallback,HC.SR.removeSearchDestinationClickedCallback,r))},ConfigureTooltipAndCallback:function(n,t,i,r,u){n.hcToolTip({type:"popover",activation:"click",content:$(t),delay:50,fadeIn:50,positionOffset:{top:8,left:0},detachToolTip:!1,onShow:function(){i(u)},onClose:function(n){r(u,n)}});HC.SR.UI.setSearchResultsFloatFinishedCallback(function(){n.hcToolTip("close")})}}}(),function(n,t,i){function u(n){r=n}function f(){return r}function e(){return r.pageIndex}function o(u,f){r.pageIndex=f;n.fields.paging=!0;t.GetSRLayout()==="hc_sr_map"?i.Search({displayType:"paging"}):i.Search({scrollTop:0,displayType:"paging"});l()}function s(){var n=r,t="pageSize="+n.pageSize;return t+("&pageIndex="+n.pageIndex)}function h(n){r.pageIndex=n}function c(n){return HC.subscribe("HC_SR_PAGING_PageReloaded",n)}function l(){HC.publish("HC_SR_PAGING_PageReloaded")}var r;HC.SR.Paging=function(t,i){i=i||"";t.on("mousedown.paging","[data-pageindex]",function(){var t=$(this).dataClosest("pagetype"),r=f().pageIndex+1,u=$(this).dataClosest("pageindex")+1+" "+($(this).dataClosest("paging")||""),e=$(this).attr("title")||"",o=$(this).dataClosest("totalpages");n.TrackEvent(i+"Page",[t,r,u,e,o].join("|"))})};$.extend(HC.SR.Paging,{setFields:u,GenerateQueryString:s,ReloadPage:o,SetPageIndex:h,getPageIndex:e,subscribePageReload:c})}(HC.Common,HC.Design,HC.SR),function(n,t){function vt(){a=n.areResultsLoaded();n.addHotelCountsUpdatedSubscriber(function(t){a=n.areResultsLoaded();tt=t;bt(function(){gt();dt();pt(yt)})})}function yt(n){var i,r=$(n).closest('[data-section="filterPanel"]');i=r.hasClass("hc_m_hide")?"filter open":"filter closed";t.logExperimentEvent(i)}function pt(n){$('[data-section="filterHeading"] a').mousedown(function(){n(this)})}function wt(n){$.extend(!0,i,n)}function bt(n){nt?n():g.push(n)}function kt(n,t){var i=$($.trim(n));t.find('[data-section="fieldset"]').first().replaceWith(i);y(t);p(i);w("chains")}function y(n){var t=n.find('[data-section="fieldset"]').first().data("count");t>0?n.show():n.hide()}function ft(){$("#hc_filter_chains").find('[data-item-container="cb"]').removeClass("hc_hide");$("#hc_evt_filter_showAllChains").hide()}function p(n){var t,i,r;(t=n.find("input[type=checkbox]"),r=t.length,a&&!v.layoutUpdated&&r!==0)&&(i=$("#hc_evt_filter_showAllChains"),r>5?i.show():i.hide(),t=t.filter(":gt(4):checked"),t.length>0&&ft(),v.layoutUpdated=!0)}function dt(){var n=et(),i=n.counts.starRating,r=n.counts.facility,u=n.counts.propertyType,f=n.counts.theme,o=n.counts.price,s=n.counts.guestRating,h=n.counts.hotelChain,c=n.counts.deals,t;ti();i&&e(i,"starRating");u&&e(u,"propertyType");f&&e(f,"theme");r&&e(r,"facility");s&&e(s,"guestRating");o&&(e(o,"price"),b($("#hc_filter_price")));h&&e(h,"chains");c!==undefined&&e(c,"deals");t=$("#hc_filter_chains");y(t);p(t)}function gt(){it||($.each(rt,w),it=!0)}function w(n){var t,r,i;i={};t=$("#"+rt[n]);r=t.find('[data-item-container="cb"]');r.each(function(){var t,n,r;n=$(this).find('input[type="checkbox"]');r=$(this).find('[data-section="hotelCount"]');t=n.val();i[t]={checkboxSection:$(this),checkbox:n,countSpan:r}});c[n]={filterSection:t,valueMapping:i}}function e(n,t){var i=c[t].valueMapping;$.each(i,function(t,i){var r,u,f=0;r=i.countSpan;u=n[t];typeof u!="undefined"&&(f=u);r.text(f+"");r.data("hotel-count",f)});ni(t)}function ni(n){var t=c[n].valueMapping;$.each(t,function(n,t){var r,i;i=t.checkbox;r=t.countSpan.data("hotel-count")>0;r?i.is(":disabled")&&(ri(i),i.data("prevstate")==="checked"&&i.prop("checked",!0)):(fi(i),i.is(":checked")?(i.data("prevstate","checked"),i.prop("checked",!1)):i.data("prevstate",""),l(i,!1))})}function ti(){if(i.showSoldOut!==!0){var n=et(),r=n.counts.availableFacility,u=n.counts.availableTheme,f=n.counts.availablePropertyType,e=n.html.availableHotelChain,o=n.counts.availableGuestRating,h=n.counts.availableStarRating,c=n.counts.availablePrice,l=n.counts.availableDeals,t;o&&s("guestRating",o);h&&s("starRating",h);c&&s("price",c);r&&s("facility",r);u&&s("theme",u);f&&s("propertyType",f);l&&s("deals",l);t=$("#hc_filter_chains");typeof e!="undefined"?kt(e,t):(y(t),p(t))}}function s(n,t){var u,i,r;a&&(i=0,r=c[n],u=r.valueMapping,$.each(u,function(n,r){var u,e,f;u=t[n];f=u&&u>0;e=f?"show":"hide";r.checkboxSection[e]();i+=f?u:0}),r.filterSection[i===0?"hide":"show"]())}function et(){return tt}function ii(n){var t=n.parent().find('[data-section="hotelCount"]').data("hotelCount");return t===0?!1:!0}function ri(n){n.closest('[data-item-container="cb"]').removeClass("hc_disabled");n.prop("disabled",!1)}function b(){var u=!1,n,t=null,i=null,r;if((typeof c.price=="undefined"&&w("price"),n=c.price.filterSection.find("input[type=checkbox]"),n.length!==0)&&(n.each(function(n){var r=$(this),f;if(ii(r))r.closest('[data-item-container="cb"]').removeClass("hc_disabled");else return;f=ui(r.val());ot(f[0])?(u?i=n:t=n,u=!0,r.prop("checked",!0),l(r,!0)):(r.prop("checked",!1),l(r,!1))}),t!==null&&i!==null&&i-t>1))for(r=t+1;r<i;r++)n.eq(r).prop("checked",!0).closest('[data-item-container="cb"]').addClass("hc_disabled").addClass("hc_selected")}function ui(n){var t=[],i;return n?typeof n!="number"&&n.indexOf("-")>0?(i=n.split("-"),t.push(parseInt(i[0],10)),t.push(parseInt(i[1],10)),t):[n,null]:t}function ot(n){var r=i.priceRange.lowRate,t=i.priceRange.highRate;return r==null&&t==null?!1:!n&&n!==0?!1:(r||(r=0),t&&t!==-1||(t=999999999999),n=parseInt(n,10),r=parseInt(r,10),t=parseInt(t,10),n>=r&&n<t)?!0:!1}function l(n,t){var i=n.closest('[data-item-container="cb"]');t?i.addClass("hc_selected"):i.removeClass("hc_selected")}function fi(n){n.prop("disabled",!0).closest('[data-item-container="cb"]').addClass("hc_disabled")}function h(n){var t;return $.each(n,function(n,i){n==0?t=i:t+=","+i}),t}function o(n,t){var r=n.find("input:checked"),i=[];return r.each(function(){var n=$(this).val().split(",");$.each(n,function(n,r){t&&(r=parseInt(r,10));i.push(r)})}),i}function ei(){var n="",t=oi();return t!=""&&(n="closed="+t),n}function oi(){var n="";return $('[data-section="filterPanel"]').filter(".hc_m_hide").each(function(){n+=$(this).attr("i")+","}),n!=""&&(n=n.substring(0,n.length-1)),n}function r(n){n=n||{};n=$.extend({displayType:"filtering"},n);HC.SR.Paging.SetPageIndex(0);HC.SR.Search(n);$.each(d,function(n,t){t()})}function si(){$.each(g,function(n,t){t()});nt=!0}function hi(n){d.push(n)}function ci(){var n=i,t="",r;return $.isEmptyObject(n)?"":(t=n.hotelName?"showSoldOut=true":"showSoldOut="+n.showSoldOut,n.priceRange.lowRate!==null&&(t+="&lowRate="+k(n.priceRange.lowRate)),n.priceRange.highRate!==null&&(t+="&highRate="+k(n.priceRange.highRate)),$.each(n.stars,function(n,i){i!=0&&(t+="&star"+i+"=true")}),n.hotelName&&(t+="&hotelName="+encodeURIComponent(n.hotelName)),n.facilities.length>0&&(t+="&facilities="+h(n.facilities)),n.propertyType.length>0&&(t+="&propertyType="+h(n.propertyType)),n.themes.length>0&&(t+="&themes="+h(n.themes)),n.guestRatings.length>0&&(t+="&guestRatings="+h(n.guestRatings)),n.hotelChains.length>0&&(t+="&chain="+h(n.hotelChains)),n.deals.length>0&&(t+="&deals="+h(n.deals)),r=ei(),r!=""&&(t+="&"+r),t)}function li(n){var t=i.priceRange;st(n);b(n);r();u("Price",t.lowRate+" - "+t.highRate)}function st(n){var r=null,u=null,i=o(n),f,e,t;i.length!==0&&(f=i[0],e=i[i.length-1],t=f.split("-"),r=parseInt(t[0],10),t=e.split("-"),t.length===2&&(u=parseInt(t[1],10)));ht(r,u)}function ht(n,t){var r=i.priceRange;r.lowRate=n;r.highRate=t}function k(n){var t=HC.DateSelection.convertToDateObject(HC.Common.fields.checkin),i=HC.DateSelection.convertToDateObject(HC.Common.fields.checkout);return n*HC.DateSelection.numberOfDays(t,i)}function ai(n){HC.Common.fields.currencyCode=n;i.priceRange.lowRate=null;i.priceRange.highRate=null;r({pageReload:!0,displayFiltering:!1})}function vi(n){var t=o($(n).parents("fieldset"),!0);i.stars=t;r();u("StarRating",h(t))}function ct(n){var t=n.value;i.hotelName=n.value;r();u("HotelName",t)}function yi(n){$("#"+n).val("");i.hotelName="";r()}function pi(n){var t,i;t=$("#"+n);i=t.closest("form");i.submit(function(n){n.stopPropagation();n.preventDefault();ct(t[0])})}function wi(n){var t=o($(n).parents("fieldset"),!0);i.deals=t;r();n&&n.checked&&u("Deals",n.value)}function bi(n){var t=o($(n).parents("fieldset"),!0);i.facilities=t;r();n&&n.checked&&u("Features",n.value)}function ki(n){var t=o($(n).parents("fieldset"),!0);i.hotelChains=t;r();n&&n.checked&&u("hotelChains",n.valuel)}function di(n){var t=o($(n).parents("fieldset"),!0);i.guestRatings=t;r();n.checked&&u("GuestRating",n.value)}function gi(n){var t=o($(n).parents("fieldset"),!0);i.themes=t;r();n&&n.checked&&u("Theme",n.value)}function nr(n){var t=o($(n).parents("fieldset"),!0);i.propertyType=t;r();n&&n.checked&&u("PropertyType",n.value)}function u(n,i){arguments.length==2?t.TrackEvent("Filter",n,i):t.TrackEvent("Filter",n);t.logExperimentEvent("filter clicked")}function tr(){u("Reset");var n=ir();return HC.SR.LoadResults(n,{pageReload:!0}),!1}function ir(){return HC.Common.GenerateQueryString()}function f(n){return n.length>0}function rr(n){return n.lowRate||n.highRate}function lt(n){var t=ut[n],r=i[t.filterName];return typeof r=="undefined"?!1:t.checkUsage(r)}function ur(n,t,r){var f=!1,u;r=r||{};at[n]=t;lt(n)||$.each(i.closedPanels,function(t,i){if(n===i)return f=!0,!1});f&&t.addClass("hc_m_hide");sr(t);fr(t,r);u=t.find('[data-action="hidefilter"]');u.length>0&&u.click(function(){t.hide()})}function fr(n,t){t.activeType=="check"?er(n,t):t.activeType=="text"&&or(n,t)}function er(n,t){var i=n.find('[data-item-container="cb"]').find("input[type=checkbox]");i.each(function(){l($(this),this.checked==t.activeValue)});$(document).ready(function(){i.each(function(){$(this).click(function(){l($(this),this.checked==t.activeValue)})})})}function or(n){var r=n.find("[data-section=name_input]"),i=n.find("input[type=text]"),t;l($(i),$(i).val()!="");t=function(){$(i).val()===""?r.removeClass("hc_selected"):r.addClass("hc_selected")};t();$(document).ready(function(){$(i).keyup(function(n){n.keyCode==13&&t()});n.find("[data-section=name_reset]").click(function(){t()});n.find("[data-section=name_submit]").click(function(){t()})})}function sr(n){n.find('[data-section="filterHeading"] a').bind("click",function(){HC.Design.ToggleModuleContent(n)});n.on("mouseenter mouseleave",'[data-item-container="cb"]',function(){$(this).hasClass("hc_disabled")||$(this).toggleClass("hc_hover")})}function hr(n){var t=$(n).parents(".hc_m_content");t.find("[data-displaytype]").toggle();$(n).parent("[data-displaytype]").data("displaytype")==="all"&&$("html, body").animate({scrollTop:t.offset().top-100},600)}function cr(n){var t=$("#hc_filter_facilities"),i=$(".hc_f_wrapFacility",t),r=i.height();n!=null&&n?($(".hc_show",t).removeClass("hc_show").addClass("hc_hide"),$("#hc_filter_facilities_link_all").show(),$("#hc_filter_facilities_link").hide(),i.removeClass("hc_scroll")):($(".hc_hide",t).removeClass("hc_hide").addClass("hc_show"),$("#hc_filter_facilities_link_all").hide(),$("#hc_filter_facilities_link").show(),i.css("height",r).addClass("hc_scroll"))}function lr(){var n=!1;return $.each(ut,function(t){if(lt(t))return n=!0,!1}),n}function ar(){return!!i.priceRange&&(i.priceRange.lowRate!==null||i.priceRange.highRate!==null)}function vr(){return i}var i={},d=[],g=[],nt=!1,v,a=!1,tt={},c={},it=!1,rt={starRating:"hc_filter_hotelRating",propertyType:"hc_filter_property",theme:"hc_filter_themes",facility:"hc_filter_facilities",guestRating:"hc_filter_guestRating",price:"hc_filter_price",chains:"hc_filter_chains",deals:"hc_filter_deals"},ut={1:{filterName:"location",checkUsage:f},2:{filterName:"priceRange",checkUsage:rr},3:{filterName:"stars",checkUsage:f},4:{filterName:"hotelName",checkUsage:f},5:{filterName:"facilities",checkUsage:f},6:{filterName:"themes",checkUsage:f},7:{filterName:"propertyType",checkUsage:f},8:{filterName:"guestRatings",checkUsage:f},9:{filterName:"hotelChains",checkUsage:f},10:{filterName:"deals",checkUsage:f}},at=[];v={layoutUpdated:!1};HC.SR.Filter={setFields:wt,publishFiltersRendered:si,AddFilterChangedSubscriber:hi,GenerateQueryString:ci,ChangeCurrency:ai,SetPriceRange:li,renderPriceRanges:b,adjustPriceRange:st,setPriceRangeValues:ht,SetStarRatings:vi,SetHotelName:ct,ResetNameFilter:yi,HotelNameSearch:pi,SetDeals:wi,SetFacilities:bi,SetHotelChains:ki,SetGuestRatings:di,SetHotelThemes:gi,SetPropertyTypes:nr,ResetAllFilters:tr,SetupFilter:ur,ShowAllPlaces:hr,ShowAllFacilities:cr,ShowAllChains:ft,AreFiltersBeingUsed:lr,isInPriceRange:ot,isPriceRangeSet:ar,totalPrice:k,getFields:vr};vt()}(HC.SR,HC.Common),function(n,t,i){function vt(){var n,t=HC.Map,i=HC.QS.GetQSVal("mapDisplayMode");i&&(a=i,HC.Map.setOptions({target:"_blank",headingAsLink:!0,displayFilterMsg:!1}));HC.Map.addBoundaryHotelsQueryProxy(it);HC.SR.addResultsDataChangeSubscriber(vi);t.HotelRatesProxy.addBasicSearchCriteriaQueryProxy(function(){return n=HC.Common.GenerateQueryString({excludeDestination:!0}),n+=at()});t.HotelRatesProxy.addSearchCriteriaQueryProxy(function(){return n=HC.Common.GenerateQueryString()});t.addInfoWindowOpenSubscriber(ct);t.addInfoWindowCloseSubscriber(lt);HC.Map.setHotelSelectProxy(ht);$(function(){HC.Map.addInitCompleteSubscriber&&HC.Map.addInitCompleteSubscriber(yt)});rt();HC.SR.Paging.subscribePageReload(function(){w=0})}function yt(){window.setTimeout(function(){HC.Map.isPopupOpen()||tt||HC.Map.openFirstHotel()},50)}function it(n){return n+at()}function rt(){HC.Map.HotelRatesProxy.addProgressSubscriber(ft);HC.Map.HotelRatesProxy.addPricesUpdatedSubscriber(function(n,t){ft(n,t,!0)});HC.Map.addShowBoundaryHotelProxy(ut)}function ut(n){var i;if(!t.isPriceRangeSet())return!0;if(i=HC.Map.HotelRatesProxy.getRate(n.id),i&&i.value!==null){if(i.value)return!!t.isInPriceRange(et(i.value))}else return!1;return!1}function ft(n,i,r){t.isPriceRangeSet()&&$.each(i,function(n,i){i.value&&t.isInPriceRange(et(i.value))?HC.Map.showBoundaryHotel(n):HC.Map[r?"removeBoundaryHotel":"hideBoundaryHotel"](n)})}function et(n){return Math.round(n/pt())}function pt(){var n,t;return h!==null?h:(n=HC.DateSelection.convertToDateObject(HC.Common.fields.checkin),t=HC.DateSelection.convertToDateObject(HC.Common.fields.checkout),h=HC.DateSelection.numberOfDays(n,t))}function wt(n){return HC.subscribe("HC_SR_MAP_MapExpanded",n)}function bt(n){return HC.subscribe("HC_SR_MAP_MapContracted",n)}function kt(){HC.publish("HC_SR_MAP_MapExpanded")}function dt(){HC.publish("HC_SR_MAP_MapContracted")}function ot(){$("#SearchResultsHolder").find(".hc_sr_summary").find("a.map-marker-icon").css("display","inline-block")}function st(){var i,n={},t;b();ti();$("#hc_map_main").addClass("expanded");ot();w=window.pageYOffset;window.scrollTo(0,0);f.disconnectedMap?y?HC.Map.show({forceBoundaryRefresh:!0}):(n.useAlternateBoundaryIcon=!0,t=HC.QS.GetQSVal("boundaryHotelsDisplaySize"),t&&(n.boundaryHotelsDisplaySize=parseInt(t,10)),HC.Map.setOptions(n),$.ajaxHC({url:"/Map/LocationRadius/?destination="+HC.Common.getCurrentDestination(),noPayload:!0,dataType:"json"}).done(function(n){HC.Map.setHotelJson({data:[],center:{lat:n.Latitude,lng:n.Longitude,landmark:n.IsLandmark,name:n.Name}});HC.Map.setOptions({ignoreHotelCheck:!0});HC.Map.setRadius(n.Radius.Metres);HC.Map.show();y=!0;ni()})):HC.SR.areResultsLoaded()?HC.Map.show({forceBoundaryRefresh:!0}):i=HC.SR.addSearchCompleteSubscriber(function(){HC.Map.show();HC.SR.removeSearchCompleteCallback(i)});r=!0;HC.Map.setMapVisible(!0);kt()}function gt(n){y?n():HC.subscribe("HC.SR.Map.disconnectedInit",n)}function ni(){HC.publish("HC.SR.Map.disconnectedInit")}function ti(){var n,t;d||($(document).mousedown(function(i){var r=i.target;r.nodeName.toLowerCase()!=="html"&&$(r).parents("body").length!==0&&(n=$(r).closest("#hc_map_full"),t=$(r).closest("#hc_evt_settings_buttons").length,n.length===0&&c(t))}),d=!0)}function b(){var i=null,t;u=$("#hc_map_full");t=ii();a&&a==="mapOnly"&&(t=ri(u));u.removeClass("hc_hide");u.width(t.width);u.height(t.height);u.css({top:t.top+"px",left:t.left+"px"});o?u.css("padding-bottom","5px"):u.css("padding-bottom","auto");HC.Map.triggerMapResize();n.IsTouchDevice()&&$("#SearchResultsBody").hide();g||($(window).resize(function(){i!==null&&window.clearTimeout(i);i=window.setTimeout(function(){r&&b()},100)}),g=!0)}function ii(){var n,t,i;return n=$("#hc_r_hd").height()||0,t=o?30:f.disconnectedMap?30:70,i=$(window).height()-t-n,{height:i,width:$(window).width()-30,top:n+10,left:"10"}}function ri(){return $("body").css({"background-image":"none"}),{height:$(window).height()-10,width:$(window).width()-10,top:0,left:0}}function ui(n){r&&!n&&window.scrollTo(0,w);fi();$("#hc_map_main").removeClass("expanded");$(".hc_sr_summary a.map-marker-icon").css("display","none");r=!1;HC.Map.setMapVisible(!1);dt()}function fi(){$("#hc_map_full").addClass("hc_hide");n.IsTouchDevice()&&$("#SearchResultsBody").show()}function s(){st();$.each(l,function(n,t){$(t.expand).hide();$(t.contract).show()})}function c(n){ui(n);$.each(l,function(n,t){$(t.expand).show();$(t.contract).hide()})}function ei(){var t,n,i;t=$("#hc_map_main_ft");$(t).find(".paginationListWrap").remove();n=$("#pagination").find(".paginationListWrap").clone();i=n.find("ul");i.attr("id","HC_paging_top");new HC.SR.Paging(n,"map");n.appendTo(t)}function oi(){var r,n,u=HC.QS,f={},t,i=null;(r=u.GetQSVal("mapState"),n=u.GetQSVal("expanded",r),n==="1")&&(t=parseInt(u.GetQSVal("zoom",r)),isNaN(t)||(f.zoom=t),n=u.GetQSVal("center",r).split(","),n.length===2&&(i={lat:parseFloat(n[0]),lng:parseFloat(n[1])},f.center=i),n=parseInt(u.GetQSVal("selectedId",r),10),n&&!isNaN(n)&&(f.selectedId=n,tt=!0),!t||isNaN(t)||!i||isNaN(i.lat)||isNaN(i.lng)||($.extend(f,{center:i,zoom:t}),HC.Map.setState(f)),s())}function ht(n,t,i,r,u){return HC.SR.getClickedLinkUrl(n,t,u)}function ct(n,t){e&&e.removeClass("hc_map_active");t||(e=$("#searchResultMarkerIcon"+n),e.addClass("hc_map_active"))}function lt(){e&&e.removeClass("hc_map_active")}function si(){var n,t,i;return n="expanded=0",r&&(t=HC.Map.getState(),t&&(i=t.center,n="expanded=1",n+="&zoom="+t.zoom,n+="&center="+encodeURIComponent(i.lat+","+i.lng),t.selectedId&&(n+="&selectedId="+t.selectedId))),n}function hi(n,t,i){if(f.disconnectedMap){ci(n,i);return}s();HC.Map.openHotelInfoWindow(n);t&&HC.Map.show()}function ci(n,t){var r=HC.SR.getHotelsJson().data,i=HC._.find(r,function(t){return t.id+""===n});s();gt(function(){HC.Map.setCenter(i.lat,i.lng).resetHighlightedMarkers().addBoundaryHotel(i,t).openHotelInfoWindow(n)})}function li(n){l.push(n);$(n.expand).mousedown(function(n){s();n.stopPropagation()});$(n.contract).mousedown(function(n){c();n.stopPropagation()});n.toggle&&$(n.toggle).mousedown(function(n){r?c():s();n.stopPropagation()})}function at(){if(p)return p();var n=i.remQStringName(t.GenerateQueryString(),["showSoldOut","lowRate","highRate"]);return n?"&"+n:""}function ai(n){p=n}function vi(n,t){var i=t.pages==="1",u=HC.QS.GetQSVal("mapState"),e=HC.QS.GetQSVal("expanded",u);f.disconnectedMap&&e!=="1"||(f.disconnectedMap||HC.Map.setHotelJson(n),k||(oi(),k=!0),v!==null&&window.clearTimeout(v),v=window.setTimeout(function(){ei();r&&ot();r&&o!==i&&(o=i,b());o=i},500))}function yi(n,t){t=t||{};HC.SR.Filter=null;HC.Map.setOptions(t);HC.Map.setHotelSelectProxy(pi);nt=$(n)}function pi(n,t,i,r){var u=r.hotel.data,e=u.id,f=nt.find('[data-hotelid="'+e+'"]');return f.length>0?f.data("href"):"/Hotel?fileName="+u.fileName}function wi(n){f=$.extend({},f,n)}var l=[],r=!1,e=null,k=!1,d=!1,g=!1,u=null,o=!1,a,nt,v=null,y=!1,tt=!1,f={disconnectedMap:!1},p,h=null,w=0;HC.SR.Map={setOptions:wi,addExpandContractElements:li,openHotelInfoWindow:hi,contractMap:c,getState:si,expandMap:st,subscribeMapExpanded:wt,subscribeMapContracted:bt,hotelSelectProxy:ht,infoWindowOpenSubscriber:ct,infoWindowCloseSubscriber:lt,showBoundaryHotelProxy:ut,boundaryHotelsQueryProxy:it,initBasicMap:yi,addFilterQueryProxy:ai,initPriceFiltering:rt};vt()}(HC.Common,HC.SR.Filter,HC.QS);HC.namespace("HC.Map.Filter.Models"),function(){function i(i,u){function p(n){$.extend(e,{starRatings:new r(n.starRatings,n.ratingDescriptions),priceRanges:new f(n.priceRanges,n.priceDescriptions,n.lastPriceRangeValue),propertyTypes:new o(n.propertyTypes),guestRatings:new h(n.guestRatings,n.guestRatingsDescriptions),facilities:new l(n.facilities),themes:new v(n.themes)})}function s(){return{starRatings:e.starRatings,priceRanges:e.priceRanges,propertyTypes:e.propertyTypes,guestRatings:e.guestRatings,facilities:e.facilities,themes:e.themes}}function w(){return y}function c(){var n=[];return $.each(s(),function(t,i){$.each(i.getItems(),function(t,i){i.selected()&&n.push(i)})}),n}function b(){var n=c();return n.length>1&&n.push({getSummary:w,isClearAll:!0}),n}function k(i){if(i.isClearAll){d();return}a(i);u(i);n(i.getFilterName(),"clear");t("clear")}function d(){var i=c();$.each(i,function(n,t){a(t);u(t)});t("Clear All");n("Clear All")}function a(n){n.clear?n.clear():n.selected(!1)}function g(t){var i=!t.visible();t.visible(i);n(t.getItems()[0].getFilterName(),i?"Open":"Close")}var e=this,y=i.clearAll;$.extend(this,{starRatings:null,priceRanges:null,propertyTypes:null,guestRatings:null,facilities:null,themes:null,getFilters:s,expandContract:g,summaryItemClicked:k});p(i);this.allItems=ko.computed(b)}function r(n,t){function f(n){i=HC._.map(n.Items,function(n){return new u(n,t[n.Value])});r.canShowStarRating(n.CanShowStarRating).items(i)}function e(){var n="";return $.each(i,function(){n+=this.buildQuery()+"&"}),n.slice(0,-1)}function o(){return r.items()}var r=this,i;$.extend(this,{canShowStarRating:ko.observable(""),items:ko.observableArray([]),visible:ko.observable(!0),buildQuery:e,getItems:o});f(n)}function u(n,t){function r(n){i.selected(n.IsSelected).value(n.Value).normalisedValue(n.Rating.NormalisedValue).starRating(n.Rating.Value).selfRated(n.Rating.IsSelfRated)}function u(){var n="star"+i.normalisedValue();return i.selected()?n+"=true":n+"=false"}function f(){return"hc_filter_hotelRating"}function e(){return'<span class="hc-hotelrating hc-hotelrating--{1}" title="{2}"><span class="hc-hotelrating__value hc-hotelrating__value--{0}"><\/span><\/span>'.replace("{0}",i.value()).replace("{1}",i.selfRated()?"self":"star").replace("{2}",i.description)}function o(){return"Star Rating"}var i=this;$.extend(this,{selected:ko.observable(!1),value:ko.observable("0"),normalisedValue:ko.observable(1),starRating:ko.observable(1),selfRated:ko.observable(!0),description:t,isStarRating:!0,buildQuery:u,getIdForSection:f,getSummary:e,getFilterName:o});r(n)}function f(n,t,i){function s(n){var i=HC._.map(n,function(n,i){return new e(n,t[n.Value],i,r)});r.ranges(i);f()}function h(){return""}function u(){return HC._.filter(r.ranges(),function(n){return n.selected()})}function c(){return setTimeout(function(){o();f()},0),!0}function f(){var n=u(),t,i;if($.each(r.ranges(),function(n,t){t.disabled(!1)}),!(n.length<2))for(t=n[0].index+1,i=n[n.length-1].index;t<i;)r.ranges()[t].selected(!0).disabled(!0),t++}function o(){var n=l();HC.SR.Filter.setPriceRangeValues(n.lowRate,n.highRate)}function l(){var n=u(),t=r.ranges(),f=null,e=null,i;return n.length!==0&&(i=HC._.last(n).index,f=t[n[0].index].priceFrom,i!==t.length-1&&(e=t[i].priceTo)),{lowRate:f,highRate:e}}function a(){return r.ranges()}var r=this;$.extend(this,{ranges:ko.observableArray([]),buildQuery:h,visible:ko.observable(!0),clicked:c,getItems:a,setPriceFilterValues:o,setInbetweenRanges:f});s(n)}function e(n,t,i,r){function f(n){u.value(n.Value).selected(n.IsSelected);u.priceFrom=n.PriceFrom;u.priceTo=n.PriceTo}function e(){return"hc_filter_price"}function o(){return u.description}function s(){return"Price"}function h(){u.selected(!1);setTimeout(function(){r.setPriceFilterValues();r.setInbetweenRanges()},0)}var u=this;$.extend(this,{description:t,value:ko.observable(""),selected:ko.observable(!1),priceFrom:0,priceTo:0,index:i,disabled:ko.observable(!1),clear:h,getIdForSection:e,getSummary:o,getFilterName:s});f(n)}function o(n){function i(n){var i=HC._.map(n,function(n){return n.IsSelected&&t.visible(!0),new s(n)});t.types(i)}function r(){var i=HC._.filter(t.types(),function(n){return n.selected()}),n=HC._.map(i,function(n){return n.value()}).join(",");return n?"propertyType="+n:""}function u(){return t.types()}var t=this;$.extend(this,{types:ko.observableArray([]),visible:ko.observable(!1),buildQuery:r,getItems:u});i(n)}function s(n){function i(n){t.description(n.Text).value(n.Value).selected(n.IsSelected)}function r(){return"hc_filter_property"}function u(){return t.description()}function f(){return"Property Type"}var t=this;$.extend(this,{description:ko.observable(""),value:ko.observable(""),selected:ko.observable(!1),getIdForSection:r,getSummary:u,getFilterName:f});i(n)}function h(n,t){function r(n){var r=HC._.map(n,function(n){return n.IsSelected&&i.visible(!0),new c(n,t[n.DisplayRating])});i.ratings(r)}function u(){var t=HC._.filter(i.ratings(),function(n){return n.selected()}),n=HC._.map(t,function(n){return n.value()}).join(",");return n?"guestRatings="+n:""}function f(){return i.ratings()}var i=this;$.extend(this,{ratings:ko.observableArray([]),visible:ko.observable(!1),buildQuery:u,getItems:f});r(n)}function c(n,t){function r(n,t){i.value(n.Value).description(t).selected(n.IsSelected)}function u(){return"hc_filter_guestRating"}function f(){return i.description()}function e(){return"Guest Rating"}var i=this;$.extend(this,{description:ko.observable(""),value:ko.observable(""),selected:ko.observable(!1),getIdForSection:u,getSummary:f,getFilterName:e});r(n,t)}function l(n){function i(n){var i=HC._.map(n,function(n){return n.IsSelected&&t.visible(!0),new a(n)});t.facilities(i)}function r(){var i=HC._.filter(t.facilities(),function(n){return n.selected()}),n=HC._.map(i,function(n){return n.value()}).join(",");return n?"facilities="+n:""}function u(){return t.facilities()}var t=this;$.extend(this,{facilities:ko.observableArray([]),visible:ko.observable(!1),buildQuery:r,getItems:u});i(n)}function a(n){function i(n){t.value(n.Value).description(n.Text).selected(n.IsSelected)}function r(){return"hc_filter_facilities"}function u(){return t.description()}function f(){return"Property Feature"}var t=this;$.extend(this,{value:ko.observable(""),description:ko.observable(""),selected:ko.observable(""),getIdForSection:r,getSummary:u,getFilterName:f});i(n)}function v(n){function i(n){var i=HC._.map(n,function(n){return n.IsSelected&&t.visible(!0),new y(n)});t.themes(i)}function r(){var i=HC._.filter(t.themes(),function(n){return n.selected()}),n=HC._.map(i,function(n){return n.value()}).join(",");return n?"themes="+n:""}function u(){return t.themes()}var t=this;$.extend(this,{themes:ko.observableArray([]),visible:ko.observable(!1),buildQuery:r,getItems:u});i(n)}function y(n){function i(n){t.value(n.Value).description(n.Text).selected(n.IsSelected)}function r(){return"hc_filter_themes"}function u(){return t.description()}function f(){return"Theme"}var t=this;$.extend(this,{value:ko.observable(""),description:ko.observable(""),selected:ko.observable(""),getIdForSection:r,getSummary:u,getFilterName:f});i(n)}function t(n){setTimeout(function(){HC.Common.logExperimentEvent("9334 | "+n)},1e3)}function n(n,t){setTimeout(function(){HC.GoogleUA.trackEvent("mapFilter",n,t)},1e3)}$.extend(HC.Map.Filter.Models,{FilterViewModel:i})}();HC.namespace("HC.Map.Filter"),function(n,t,i){function b(n){r=n;at();st(n.filterTemplate,n.data);$(function(){it()});t.addFilterQueryProxy(lt);t.subscribeMapExpanded(tt);HC.Map.addInfoWindowOpenSubscriber(ut);HC.Map.addInfoWindowCloseSubscriber(ft);r.refineSection.on("click",h)}function h(){var n;f=!f;k(f);n=f?"Filter Panel Expand":"Filter Panel Contract";p(n);w(n)}function k(n){var t=r.filterTemplate;t[n?"addClass":"removeClass"]("hc-mapfilters--expanded");n?d():nt()}function d(){v(!1);a();r.mainSection.slideDown()}function a(){var t=r.mapContainer.height(),i=r.refineSection.outerHeight(),n=t-50-i-r.filterTemplate.position().top;e&&(n-=e.height());r.mainSection.css({"max-height":n+"px"})}function g(){clearTimeout(l);f&&(l=setTimeout(a,300))}function nt(){r.mainSection.slideUp().promise().done(function(){v(!0)})}function v(n){o&&(e.find("[data-section-minimal]")[n?"show":"hide"](),e.find("[data-section-summary]")[n?"removeClass":"addClass"]("hc_map_infowindow_summary_collapsed"))}function tt(){rt();ot()}function it(){var n={3:u.starRatings,2:u.priceRanges,7:u.propertyTypes,8:u.guestRatings,5:u.facilities,6:u.themes};$("#hc_refinePrices").on("click.mainfilter",'input[type="checkbox"]',function(){if(!s){var i=$(this).val(),r=$(this).closest("[i]"),u=r.attr("i"),t=n[u];t&&t.getItems&&HC._.find(t.getItems(),function(n){return n.value()===i}).selected(this.checked)}})}function rt(){c||(r.filterTemplate.css({position:"absolute"}).show(),r.mapContainer.append(r.filterTemplate),r.summaryHolder.replaceWith(r.summarySection),HC.Map.stopBackgroundScroll(r.mainSection),$(window).resize(g),c=!0)}function ut(n,t,i){e||(e=i.on("click.infowindowfilter",et));e.appendTo(r.filterTemplate).css({position:"relative",top:"15px",left:0});o=!0;f&&h()}function ft(){o=!1}function et(n){f&&!$(n.target).hasClass("hc_t_remove")&&(h(),n.preventDefault())}function ot(){r.filterTemplate.css({top:"65px",left:i.IsRtl()?"auto":"20px",right:i.IsRtl()?"20px":"auto"})}function st(t,i){u=new n.FilterViewModel(i,y);ko.applyBindings(u,t[0]);t.on("click.mapfilter",'input[type="checkbox"]',function(){y.apply(this)})}function y(n){var t=this;HC.Map.updateBoundaryHotels();setTimeout(function(){ht(t,n)},2e3)}function ht(n,t){var i=t||ko.dataFor(n),u=$("#"+i.getIdForSection()),r=u.find('input[value="'+i.value()+'"]');HC.SR.setOptions({hideFilteringMessage:!0});s=!0;r.click();s=!1;HC.SR.setOptions({hideFilteringMessage:!1});r[0].checked&&(p("| "+i.getFilterName()),w(i.getFilterName(),i.value()))}function ct(){var n="";return $.each(u.getFilters(),function(){var t=this.buildQuery();n+=t?t+"&":""}),n.slice(0,-1)}function lt(){var n=ct();return n?"&"+n:""}function at(){vt();yt()}function p(n){setTimeout(function(){HC.Common.logExperimentEvent("9334 | "+n)},1e3)}function w(n,t){setTimeout(function(){HC.GoogleUA.trackEvent("mapFilter",n,t)},1e3)}function vt(){function t(t,i){n(t,i)}function i(t,i){n(t,i)}function n(n,t){var r=t(),i=r.selfRated()?"hc_rating_t_self":"hc_rating_t_star",u=parseFloat(r.starRating()),f=Math.floor(u);i+=" hc_rating_"+f;u-f>0&&(i+="half");$(n).removeClass().addClass(i)}ko.bindingHandlers.renderStarRatingFilter={init:t,update:i}}function yt(){function n(n,t){var i=t();$(n)[ko.unwrap(i)?"show":"hide"]()}function t(n,t){var i=t();$(n)[ko.unwrap(i)?"slideDown":"slideUp"]()}ko.bindingHandlers.slide={init:n,update:t}}var u,r,c=!1,f=!1,o=!1,e=null,l,s=!1;$.extend(HC.Map.Filter,{init:b})}(HC.Map.Filter.Models,HC.SR.Map,HC.Common),function(n){function i(n,i,r){t=n;i&&i!=="True"&&e(r)}function r(){var i=t;window.setTimeout(function(){var n=i.indexOf("?")>=0?"&":"?";window.location=i+n+"mapState=expanded%3D1"},0);n.TrackEvent("LandingPageMap","Open")}function u(){HC.Common.blinkModule("#hc-searchbox",!1,".hc-page--placelanding")}function f(n){HC.Common.Popups.bestPriceGuaranteePopup();n.stopPropagation()}function e(n){$(document).ready(function(){var t=n.absolutePath.replace("index",Math.floor(Math.random()*4));$(n.imageHolder).css("background","url("+t+") no-repeat center top")})}var t=null;HC.LandingPage={init:i,landingPageMapClicked:r,searchBoxBlink:u,bestPriceGuaranteePopup:f}}(HC.Common),function(n,t){typeof define=="function"&&define.amd?define(["jquery"],function(){return t.apply(n,arguments)}):typeof module=="object"&&module.exports?module.exports=t.call(n,require("jquery")):t.call(n,n.jQuery)}(typeof global=="object"?global:this,function(n){function ut(n){return n.match(/\D+$/)}function ft(t,i,r,u){var o;if(r!="d"&&k(t)){var f=nt.exec(i),c=t.css(r)==="auto"?0:t.css(r),s=typeof c=="string"?a(c):c,v=typeof i=="string"?a(i):i,e=u===!0?0:s,l=t.is(":hidden"),h=t.translation();return r=="left"&&(e=parseInt(s,10)+h.x),r=="right"&&(e=parseInt(s,10)+h.x),r=="top"&&(e=parseInt(s,10)+h.y),r=="bottom"&&(e=parseInt(s,10)+h.y),f||i!="show"?f||i!="hide"||(e=0):(e=1,l&&(elem=t[0],elem.style&&(display=elem.style.display,n._data(elem,"olddisplay")||display!=="none"||(display=elem.style.display=""),display===""&&n.css(elem,"display")==="none"&&n._data(elem,"olddisplay",ct(elem.tagName)),(display===""||display==="none")&&(elem.style.display=n._data(elem,"olddisplay")||"")),t.css("opacity",0))),f?(o=parseFloat(f[2]),f[1]&&(o=(f[1]==="-="?-1:1)*o+parseInt(e,10)),f[3]&&f[3]!="px"&&(o=o+f[3]),o):e}}function et(n,t,i){return i===!0||l===!0&&i!==!1&&b?"translate3d("+n+"px, "+t+"px, 0)":"translate("+n+"px,"+t+"px)"}function ot(t,i,r,e,o,s,c,l){var p=t.data(u),w=p&&!f(p)?p:n.extend(!0,{},it),v=o,d=n.inArray(i,h)>-1;if(d){var y=w.meta,k=a(t.css(i))||0,b=i+"_o";v=o-k;y[i]=v;y[b]=t.css(i)=="auto"?0+v:k+v||0;w.meta=y;c&&v===0&&(v=0-y[b],y[i]=v,y[b]=0)}return t.data(u,st(t,w,i,r,e,v,s,c,l))}function st(n,t,i,u,f,e,o,s,h){var w=!1,b=o===!0&&s===!0,l;t=t||{};t.original||(t.original={},w=!0);t.properties=t.properties||{};t.secondary=t.secondary||{};var k=t.meta,p=t.original,c=t.properties,d=t.secondary;for(l=r.length-1;l>=0;l--){var a=r[l]+"transition-property",v=r[l]+"transition-duration",y=r[l]+"transition-timing-function";i=b?r[l]+"transform":i;w&&(p[a]=n.css(a)||"",p[v]=n.css(v)||"",p[y]=n.css(y)||"");d[i]=b?et(k.left,k.top,h):e;c[a]=(c[a]?c[a]+",":"")+i;c[v]=(c[v]?c[v]+",":"")+u+"ms";c[y]=(c[y]?c[y]+",":"")+f}return t}function ht(n){for(var t in n)if((t=="width"||t=="height")&&(n[t]=="show"||n[t]=="hide"||n[t]=="toggle"))return!0;return!1}function f(n){for(var t in n)return!1;return!0}function ct(n){n=n.toUpperCase();var t={LI:"list-item",TR:"table-row",TD:"table-cell",TH:"table-cell",CAPTION:"table-caption",COL:"table-column",COLGROUP:"table-column-group",TFOOT:"table-footer-group",THEAD:"table-header-group",TBODY:"table-row-group"};return typeof t[n]=="string"?t[n]:"block"}function a(n){return parseFloat(n.replace(ut(n),""))}function k(n){var t=!0;return n.each(function(n,i){return t=t&&i.ownerDocument}),t}function lt(t,i,r){if(!k(r))return!1;var u=n.inArray(t,d)>-1;return(t=="width"||t=="height"||t=="opacity")&&parseFloat(i)===parseFloat(r.css(t))&&(u=!1),u}var v=n.fn.animate,y=n.fn.stop,d=["top","right","bottom","left","opacity","height","width"],h=["top","right","bottom","left"],r=["-webkit-","-moz-","-o-",""],g=["avoidTransforms","useTranslate3d","leaveTransforms"],nt=/^([+-]=)?([\d+-.]+)(.*)$/,tt=/([A-Z])/g,it={secondary:{},meta:{top:0,right:0,bottom:0,left:0}},c="px",u="jQe",t="cubic-bezier(",i=")",p=null,o=!1,rt=document.body||document.documentElement,s=rt.style,e="webkitTransitionEnd oTransitionEnd transitionend",w=s.WebkitTransition!==undefined||s.MozTransition!==undefined||s.OTransition!==undefined||s.transition!==undefined,b="WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix,l=b;n.expr&&n.expr.filters&&(p=n.expr.filters.animated,n.expr.filters.animated=function(t){return n(t).data("events")&&n(t).data("events")[e]?!0:p.call(this,t)});n.extend({toggle3DByDefault:function(){return l=!l},toggleDisabledByDefault:function(){return o=!o},setDisabledByDefault:function(n){return o=n}});n.fn.translation=function(){var n,t,i;if(!this[0])return null;var e=this[0],u=window.getComputedStyle(e,null),f={x:0,y:0};if(u)for(n=r.length-1;n>=0;n--)if(t=u.getPropertyValue(r[n]+"transform"),t&&/matrix/i.test(t)){i=t.replace(/^matrix\(/i,"").split(/, |\)$/g);f={x:parseInt(i[4],10),y:parseInt(i[5],10)};break}return f};n.fn.animate=function(s,l,a,y){s=s||{};var k=!(typeof s.bottom!="undefined"||typeof s.right!="undefined"),p=n.speed(l,a,y),b=0,d=function(){b--;b===0&&typeof p.complete=="function"&&p.complete.apply(this,arguments)},nt=typeof s.avoidCSSTransitions!="undefined"?s.avoidCSSTransitions:o;return nt===!0||!w||f(s)||ht(s)||p.duration<=0||p.step?v.apply(this,arguments):this[p.queue===!0?"queue":"each"](function(){var o=n(this),l=n.extend({},p),ut=function(t){var a=o.data(u)||{original:{}},f={},l,v,i,y;if(t.eventPhase==2){if(s.leaveTransforms!==!0){for(l=r.length-1;l>=0;l--)f[r[l]+"transform"]="";if(k&&typeof a.meta!="undefined")for(v=0;i=h[v];++v)y=a.meta[i+"_o"],typeof y!="undefined"&&(f[i]=y+c,n(this).css(i,f[i]))}o.unbind(e).css(a.original).css(f).data(u,null);s.opacity==="hide"&&(elem=o[0],elem.style&&(display=n.css(elem,"display"),display==="none"||n._data(elem,"olddisplay")||n._data(elem,"olddisplay",display),elem.style.display="none"),o.css("opacity",""));d.call(this)}},it={bounce:t+"0.0, 0.35, .5, 1.3"+i,linear:"linear",swing:"ease-in-out",easeInQuad:t+"0.550, 0.085, 0.680, 0.530"+i,easeInCubic:t+"0.550, 0.055, 0.675, 0.190"+i,easeInQuart:t+"0.895, 0.030, 0.685, 0.220"+i,easeInQuint:t+"0.755, 0.050, 0.855, 0.060"+i,easeInSine:t+"0.470, 0.000, 0.745, 0.715"+i,easeInExpo:t+"0.950, 0.050, 0.795, 0.035"+i,easeInCirc:t+"0.600, 0.040, 0.980, 0.335"+i,easeInBack:t+"0.600, -0.280, 0.735, 0.045"+i,easeOutQuad:t+"0.250, 0.460, 0.450, 0.940"+i,easeOutCubic:t+"0.215, 0.610, 0.355, 1.000"+i,easeOutQuart:t+"0.165, 0.840, 0.440, 1.000"+i,easeOutQuint:t+"0.230, 1.000, 0.320, 1.000"+i,easeOutSine:t+"0.390, 0.575, 0.565, 1.000"+i,easeOutExpo:t+"0.190, 1.000, 0.220, 1.000"+i,easeOutCirc:t+"0.075, 0.820, 0.165, 1.000"+i,easeOutBack:t+"0.175, 0.885, 0.320, 1.275"+i,easeInOutQuad:t+"0.455, 0.030, 0.515, 0.955"+i,easeInOutCubic:t+"0.645, 0.045, 0.355, 1.000"+i,easeInOutQuart:t+"0.770, 0.000, 0.175, 1.000"+i,easeInOutQuint:t+"0.860, 0.000, 0.070, 1.000"+i,easeInOutSine:t+"0.445, 0.050, 0.550, 0.950"+i,easeInOutExpo:t+"1.000, 0.000, 0.000, 1.000"+i,easeInOutCirc:t+"0.785, 0.135, 0.150, 0.860"+i,easeInOutBack:t+"0.680, -0.550, 0.265, 1.550"+i},w={},et=it[l.easing||"swing"]?it[l.easing||"swing"]:l.easing||"swing",a,nt,tt,y,rt;for(a in s)n.inArray(a,g)===-1&&(nt=n.inArray(a,h)>-1,tt=ft(o,s[a],a,nt&&s.avoidTransforms!==!0),lt(a,tt,o)?ot(o,a,l.duration,et,tt,nt&&s.avoidTransforms!==!0,k,s.useTranslate3d):w[a]=s[a]);return o.unbind(e),y=o.data(u),!y||f(y)||f(y.secondary)?l.queue=!1:(b++,o.css(y.properties),rt=y.secondary,setTimeout(function(){o.bind(e,ut).css(rt)})),f(w)||(b++,v.apply(o,[w,{duration:l.duration,easing:n.easing[l.easing]?l.easing:n.easing.swing?"swing":"linear",complete:d,queue:l.queue}])),!0})};n.fn.animate.defaults={};n.fn.stop=function(t,i,o){return w?(t&&this.queue([]),this.each(function(){var v=n(this),s=v.data(u),l,h,p,a,w;if(s&&!f(s)){if(h={},i){if(h=s.secondary,!o&&typeof s.meta.left_o!==undefined||typeof s.meta.top_o!==undefined)for(h.left=typeof s.meta.left_o!==undefined?s.meta.left_o:"auto",h.top=typeof s.meta.top_o!==undefined?s.meta.top_o:"auto",l=r.length-1;l>=0;l--)h[r[l]+"transform"]=""}else if(!f(s.secondary)&&(p=window.getComputedStyle(v[0],null),p))for(a in s.secondary)if(s.secondary.hasOwnProperty(a)&&(a=a.replace(tt,"-$1").toLowerCase(),h[a]=p.getPropertyValue(a),!o&&/matrix/i.test(h[a])))for(w=h[a].replace(/^matrix\(/i,"").split(/, |\)$/g),h.left=parseFloat(w[4])+parseFloat(v.css("left"))+c||"auto",h.top=parseFloat(w[5])+parseFloat(v.css("top"))+c||"auto",l=r.length-1;l>=0;l--)h[r[l]+"transform"]="";v.unbind(e);v.css(s.original).css(h).data(u,null)}else y.apply(v,[t,i])}),this):y.apply(this,[t,i])}}),function(n,t){function f(){function l(i,f,h){r=i[0].height;u=i[0].width;n=i[0].getContext("2d");o=Math.round(c*f/100);t={x:u/2,y:r/2};e=h;s=f}function a(){n.clearRect(0,0,u,r)}function v(t,i,r){var u=n.createLinearGradient(0,0,0,t);return u.addColorStop(0,i),u.addColorStop(1,r),u}function y(){a();var n=o*Math.PI/180;f&&f();p(n,v(r,"#eff3f6","#d7dee6"));w();b(n);k()}function p(i,r){var u=Math.PI*.72;n.beginPath();n.strokeStyle=r;n.lineWidth=16;n.arc(t.x-1,t.y+8.5,t.y,u,i+u,!0);n.stroke()}function w(){var t=new Image;t.src="/Images/hc_bg_lowavail_mask.png";n.drawImage(t,0,0,u,r)}function b(i){n.save();n.translate(t.x-1,t.y+7);n.rotate(i+2.2);n.translate(-t.x+1,-t.y-7);var r=new Image;r.src="/Images/hc_bg_lowavail_pointer.png";n.drawImage(r,t.x-1,t.y+7);n.restore()}function k(){var i=Math.round(s),u={text:i,font:"bold 1.5em arial,helvetica,sans-serif",calculateWidth:function(){return n.measureText(i).width*-1},calculateXaxisPosition:function(n){return e?t.x+n/2+5:t.x+n/2-5}},f={text:"%",font:"normal 0.9em arial,helvetica,sans-serif",calculateWidth:function(n){return n*-1},calculateXaxisPosition:function(n){return e?t.x-n/2-5:t.x+n/2-5}},r;n.fillStyle="#4e4e4e";r=h(u);h(f,r)}function h(i,r){n.font=i.font;var u=i.calculateWidth(r);return n.fillText(i.text,i.calculateXaxisPosition(u),t.y+14),u}function d(n){f=n}var r=0,u=0,n,o=0,t={x:0,y:0},f=null,c=282.6,e=!1,s=0;i={init:l,setDrawingStartedCallback:d,draw:y}}function e(n,t){var i,r=location.hash?location.hash.substr(1):location.search.substr(1);i=HC.QS.setQStringName(r,"checkin",[n]);i=HC.QS.setQStringName(i,"checkout",[t]);i=HC.QS.setQStringName(i,"pageIndex",[0]);window.location=window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:"")+location.pathname+"?"+i}function r(n,t){var i=new Image;t&&(i.onload=t);i.src=n}function o(){i.draw()}function u(n){t.AreFiltersBeingUsed()?n.hide():n.show()}function s(n,e){var s=$("#hc_evt_lowAvail");u(s);t.AddFilterChangedSubscriber(function(){u(s)});f();i.init($("#hc_evt_lowAvail_canvas"),n,e);i.setDrawingStartedCallback(function(){s.find(".hc_lowAvail_gauge").css("visibility","visible")});r("/Images/hc_bg_lowavail_mask.png",o);r("/Images/hc_bg_lowavail_pointer.png")}var i;HC.LowAvailability={init:s,search:e}}(HC.Common,HC.SR.Filter),function(n,t){function r(t){var r=!1;n.AreFiltersBeingUsed()||(r=!0);r=r&&t&&i.length>0&&t.hasResults==="true"&&t.pageNumber==="1"?!0:!1;r?i.show():i.hide()}function u(u){i=u;r();n.AddFilterChangedSubscriber(function(){r()});t.AddRefreshSectionsSubscriber(function(n){r(n)})}var i;HC.RelatedDestinations={init:u}}(HC.SR.Filter,HC.SR.UI);HC.namespace("HC.PlaceLanding"),function(){function t(t){$.each(t,function(n,t){t.Position=n+1});n=t;HC.publish("HC.PlaceLanding.hotelsUpdated",n)}function i(t){n?t(n):HC.subscribe("HC.PlaceLanding.hotelsUpdated",t)}function r(n){HC.subscribe("HC.PlaceLanding.hotelSelected",n)}function u(n){var t=$(n).data("filename"),i=f(t);HC.publish("HC.PlaceLanding.hotelSelected",$.extend(!0,{},i))}function f(t){return HC._.filter(n,function(n){return n.FileName===t})[0]}var n;$.extend(HC.PlaceLanding,{setHotelsJson:t,subscribeHotelsLoaded:i,subscribeHotelSelected:r,hotelSelectedCallback:u})}();HC.namespace("HC.PlaceLanding"),function(){function n(n){n.on("click","[data-filename] a",function(){var n=$(this).closest("[data-filename]");t.hotelSelectedCallback(n)})}var t=$.extend(HC.PlaceLanding,{setupPopularHotels:n})}();HC.namespace("HC.PlaceLanding.GoogleUA"),function(n,t){function u(){n.subscribeHotelsLoaded(f);n.subscribeHotelSelected(e)}function r(n){return{fileName:n.FileName,index:n.Position-1}}function f(n){var u=HC._.map(n,r);t.sendHotelsImpression(u,i,!1)}function e(n){t.sendHotelProductClick(r(n),i,!1)}var i="Popular Hotels";u()}(HC.PlaceLanding,HC.GoogleUA);
/*!
 * Knockout JavaScript library v3.4.0
 * (c) Steven Sanderson - http://knockoutjs.com/
 * License: MIT (http://www.opensource.org/licenses/mit-license.php)
 */
(function(){var n=!0;(function(t){var u=this||eval("this"),i=u.document,e=u.navigator,r=u.jQuery,f=u.JSON;(function(n){typeof define=="function"&&define.amd?define(["exports","require"],n):typeof exports=="object"&&typeof module=="object"?n(module.exports||exports):n(u.ko={})})(function(o,s){function nt(n,t){var i=n===null||typeof n in ft;return i?n===t:!1}function et(n,i){var r;return function(){r||(r=h.utils.setTimeout(function(){r=t;n()},i))}}function ot(n,t){var i;return function(){clearTimeout(i);i=h.utils.setTimeout(n,t)}}function st(n){var t=this;return n&&h.utils.objectForEach(n,function(n,i){var r=h.extenders[n];typeof r=="function"&&(t=r(t,i)||t)}),t}function ht(n,t){t&&t!==w?t==="beforeChange"?this._limitBeforeChange(n):this._origNotifySubscribers(n,t):this._limitChange(n)}function ct(n,t){t!==null&&t.dispose&&t.dispose()}function lt(n,t){var i=this.computedObservable,r=i[c];r.isDisposed||(this.disposalCount&&this.disposalCandidates[t]?(i.addDependencyTracking(t,n,this.disposalCandidates[t]),this.disposalCandidates[t]=null,--this.disposalCount):r.dependencyTracking[t]||i.addDependencyTracking(t,n,r.isSleeping?{_target:n}:i.subscribeToDependency(n)))}function yt(n){h.bindingHandlers[n]={init:function(t,i,r,u,f){var e=function(){var t={};return t[n]=i(),t};return h.bindingHandlers.event.init.call(this,t,e,r,u,f)}}}function ut(n,t,i,r){h.bindingHandlers[n]={init:function(n,u,f,e,o){var c,s;return h.computed(function(){var l=h.utils.unwrapObservable(u()),f=!i!=!l,e=!s,a=e||t||f!==c;a&&(e&&h.computedContext.getDependenciesCount()&&(s=h.utils.cloneNodes(h.virtualElements.childNodes(n),!0)),f?(e||h.virtualElements.setDomNodeChildren(n,h.utils.cloneNodes(s)),h.applyBindingsToDescendants(r?r(o,l):o,n)):h.virtualElements.emptyNode(n),c=f)},null,{disposeWhenNodeIsRemoved:n}),{controlsDescendantBindings:!0}}};h.expressionRewriting.bindingRewriteValidators[n]=!1;h.virtualElements.allowedBindings[n]=!0}var h=typeof o!="undefined"?o:{},ft,w,a,y,v,p,b,c,tt,it,rt,k,d,g;h.exportSymbol=function(n,t){for(var i=n.split("."),r=h,u=0;u<i.length-1;u++)r=r[i[u]];r[i[i.length-1]]=t};h.exportProperty=function(n,t,i){n[t]=i};h.version="3.4.0";h.exportSymbol("version",h.version);h.options={deferUpdates:!1,useOnlyNativeEvents:!1};h.utils=function(){function c(n,t){for(var i in n)n.hasOwnProperty(i)&&t(i,n[i])}function a(n,t){if(t)for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);return n}function v(n,t){return n.__proto__=t,n}function tt(n,t){if(h.utils.tagNameLower(n)!=="input"||!n.type||t.toLowerCase()!="click")return!1;var i=n.type;return i=="checkbox"||i=="radio"}function it(n,t,i){var r;t&&(typeof n.classList=="object"?(r=n.classList[i?"add":"remove"],h.utils.arrayForEach(t.match(s),function(t){r.call(n.classList,t)})):typeof n.className.baseVal=="string"?w(n.className,"baseVal",t,i):w(n,"className",t,i))}function w(n,t,i,r){var u=n[t].match(s)||[];h.utils.arrayForEach(i.match(s),function(n){h.utils.addOrRemoveItem(u,n,r)});n[t]=u.join(" ")}var y={__proto__:[]}instanceof Array,b=!n&&typeof Symbol=="function",l={},p={},k=e&&/Firefox\/2/i.test(e.userAgent)?"KeyboardEvent":"UIEvents",s;l[k]=["keyup","keydown","keypress"];l.MouseEvents=["click","dblclick","mousedown","mouseup","mousemove","mouseover","mouseout","mouseenter","mouseleave"];c(l,function(n,t){if(t.length)for(var i=0,r=t.length;i<r;i++)p[t[i]]=n});var d={propertychange:!0},o=i&&function(){for(var n=3,r=i.createElement("div"),u=r.getElementsByTagName("i");r.innerHTML="<!--[if gt IE "+ ++n+"]><i><\/i><![endif]-->",u[0];);return n>4?n:t}(),g=o===6,nt=o===7;return s=/\S+/g,{fieldsIncludedWithJsonPost:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],arrayForEach:function(n,t){for(var i=0,r=n.length;i<r;i++)t(n[i],i)},arrayIndexOf:function(n,t){if(typeof Array.prototype.indexOf=="function")return Array.prototype.indexOf.call(n,t);for(var i=0,r=n.length;i<r;i++)if(n[i]===t)return i;return-1},arrayFirst:function(n,t,i){for(var r=0,u=n.length;r<u;r++)if(t.call(i,n[r],r))return n[r];return null},arrayRemoveItem:function(n,t){var i=h.utils.arrayIndexOf(n,t);i>0?n.splice(i,1):i===0&&n.shift()},arrayGetDistinctValues:function(n){var i,t,r;for(n=n||[],i=[],t=0,r=n.length;t<r;t++)h.utils.arrayIndexOf(i,n[t])<0&&i.push(n[t]);return i},arrayMap:function(n,t){var r,i,u;for(n=n||[],r=[],i=0,u=n.length;i<u;i++)r.push(t(n[i],i));return r},arrayFilter:function(n,t){var r,i,u;for(n=n||[],r=[],i=0,u=n.length;i<u;i++)t(n[i],i)&&r.push(n[i]);return r},arrayPushAll:function(n,t){if(t instanceof Array)n.push.apply(n,t);else for(var i=0,r=t.length;i<r;i++)n.push(t[i]);return n},addOrRemoveItem:function(n,t,i){var r=h.utils.arrayIndexOf(h.utils.peekObservable(n),t);r<0?i&&n.push(t):i||n.splice(r,1)},canSetPrototype:y,extend:a,setPrototypeOf:v,setPrototypeOfOrExtend:y?v:a,objectForEach:c,objectMap:function(n,t){var r,i;if(!n)return n;r={};for(i in n)n.hasOwnProperty(i)&&(r[i]=t(n[i],i,n));return r},emptyDomNode:function(n){while(n.firstChild)h.removeNode(n.firstChild)},moveCleanedNodesToContainerElement:function(n){for(var t=h.utils.makeArray(n),f=t[0]&&t[0].ownerDocument||i,u=f.createElement("div"),r=0,e=t.length;r<e;r++)u.appendChild(h.cleanNode(t[r]));return u},cloneNodes:function(n,t){for(var r,i=0,f=n.length,u=[];i<f;i++)r=n[i].cloneNode(!0),u.push(t?h.cleanNode(r):r);return u},setDomNodeChildren:function(n,t){if(h.utils.emptyDomNode(n),t)for(var i=0,r=t.length;i<r;i++)n.appendChild(t[i])},replaceDomNodes:function(n,t){var r=n.nodeType?[n]:n,f,e,i,u;if(r.length>0){for(f=r[0],e=f.parentNode,i=0,u=t.length;i<u;i++)e.insertBefore(t[i],f);for(i=0,u=r.length;i<u;i++)h.removeNode(r[i])}},fixUpContinuousNodeArray:function(n,t){if(n.length){for(t=t.nodeType===8&&t.parentNode||t;n.length&&n[0].parentNode!==t;)n.splice(0,1);while(n.length>1&&n[n.length-1].parentNode!==t)n.length--;if(n.length>1){var i=n[0],r=n[n.length-1];for(n.length=0;i!==r;)n.push(i),i=i.nextSibling;n.push(r)}}return n},setOptionNodeSelectionState:function(n,t){o<7?n.setAttribute("selected",t):n.selected=t},stringTrim:function(n){return n===null||n===t?"":n.trim?n.trim():n.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},stringStartsWith:function(n,t){return(n=n||"",t.length>n.length)?!1:n.substring(0,t.length)===t},domNodeIsContainedBy:function(n,t){if(n===t)return!0;if(n.nodeType===11)return!1;if(t.contains)return t.contains(n.nodeType===3?n.parentNode:n);if(t.compareDocumentPosition)return(t.compareDocumentPosition(n)&16)==16;while(n&&n!=t)n=n.parentNode;return!!n},domNodeIsAttachedToDocument:function(n){return h.utils.domNodeIsContainedBy(n,n.ownerDocument.documentElement)},anyDomNodeIsAttachedToDocument:function(n){return!!h.utils.arrayFirst(n,h.utils.domNodeIsAttachedToDocument)},tagNameLower:function(n){return n&&n.tagName&&n.tagName.toLowerCase()},catchFunctionErrors:function(n){return h.onError?function(){try{return n.apply(this,arguments)}catch(t){h.onError&&h.onError(t);throw t;}}:n},setTimeout:function(n,t){return setTimeout(h.utils.catchFunctionErrors(n),t)},deferError:function(n){setTimeout(function(){h.onError&&h.onError(n);throw n;},0)},registerEventHandler:function(n,t,i){var u=h.utils.catchFunctionErrors(i),s=o&&d[t],f,e;if(h.options.useOnlyNativeEvents||s||!r)if(s||typeof n.addEventListener!="function")if(typeof n.attachEvent!="undefined")f=function(t){u.call(n,t)},e="on"+t,n.attachEvent(e,f),h.utils.domNodeDisposal.addDisposeCallback(n,function(){n.detachEvent(e,f)});else throw new Error("Browser doesn't support addEventListener or attachEvent");else n.addEventListener(t,u,!1);else r(n).bind(t,u)},triggerEvent:function(n,t){var f,o,e;if(!(n&&n.nodeType))throw new Error("element must be a DOM node when calling triggerEvent");if(f=tt(n,t),h.options.useOnlyNativeEvents||!r||f)if(typeof i.createEvent=="function")if(typeof n.dispatchEvent=="function")o=p[t]||"HTMLEvents",e=i.createEvent(o),e.initEvent(t,!0,!0,u,0,0,0,0,0,!1,!1,!1,!1,0,n),n.dispatchEvent(e);else throw new Error("The supplied element doesn't support dispatchEvent");else if(f&&n.click)n.click();else if(typeof n.fireEvent!="undefined")n.fireEvent("on"+t);else throw new Error("Browser doesn't support triggering events");else r(n).trigger(t)},unwrapObservable:function(n){return h.isObservable(n)?n():n},peekObservable:function(n){return h.isObservable(n)?n.peek():n},toggleDomNodeCssClass:it,setTextContent:function(n,i){var r=h.utils.unwrapObservable(i),u;(r===null||r===t)&&(r="");u=h.virtualElements.firstChild(n);!u||u.nodeType!=3||h.virtualElements.nextSibling(u)?h.virtualElements.setDomNodeChildren(n,[n.ownerDocument.createTextNode(r)]):u.data=r;h.utils.forceRefresh(n)},setElementName:function(n,t){if(n.name=t,o<=7)try{n.mergeAttributes(i.createElement("<input name='"+n.name+"'/>"),!1)}catch(r){}},forceRefresh:function(n){if(o>=9){var t=n.nodeType==1?n:n.parentNode;t.style&&(t.style.zoom=t.style.zoom)}},ensureSelectElementIsRenderedCorrectly:function(n){if(o){var t=n.style.width;n.style.width=0;n.style.width=t}},range:function(n,t){var r,i;for(n=h.utils.unwrapObservable(n),t=h.utils.unwrapObservable(t),r=[],i=n;i<=t;i++)r.push(i);return r},makeArray:function(n){for(var i=[],t=0,r=n.length;t<r;t++)i.push(n[t]);return i},createSymbolOrString:function(n){return b?Symbol(n):n},isIe6:g,isIe7:nt,ieVersion:o,getFormFields:function(n,t){for(var r=h.utils.makeArray(n.getElementsByTagName("input")).concat(h.utils.makeArray(n.getElementsByTagName("textarea"))),f=typeof t=="string"?function(n){return n.name===t}:function(n){return t.test(n.name)},u=[],i=r.length-1;i>=0;i--)f(r[i])&&u.push(r[i]);return u},parseJson:function(n){return typeof n=="string"&&(n=h.utils.stringTrim(n),n)?f&&f.parse?f.parse(n):new Function("return "+n)():null},stringifyJson:function(n,t,i){if(!f||!f.stringify)throw new Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");return f.stringify(h.utils.unwrapObservable(n),t,i)},postJson:function(n,t,r){var l,o,s,f,u,a,e;r=r||{};var v=r.params||{},y=r.includeFields||this.fieldsIncludedWithJsonPost,p=n;if(typeof n=="object"&&h.utils.tagNameLower(n)==="form")for(l=n,p=l.action,o=y.length-1;o>=0;o--)for(s=h.utils.getFormFields(l,y[o]),f=s.length-1;f>=0;f--)v[s[f].name]=s[f].value;t=h.utils.unwrapObservable(t);u=i.createElement("form");u.style.display="none";u.action=p;u.method="post";for(a in t)e=i.createElement("input"),e.type="hidden",e.name=a,e.value=h.utils.stringifyJson(h.utils.unwrapObservable(t[a])),u.appendChild(e);c(v,function(n,t){var r=i.createElement("input");r.type="hidden";r.name=n;r.value=t;u.appendChild(r)});i.body.appendChild(u);r.submitter?r.submitter(u):u.submit();setTimeout(function(){u.parentNode.removeChild(u)},0)}}}();h.exportSymbol("utils",h.utils);h.exportSymbol("utils.arrayForEach",h.utils.arrayForEach);h.exportSymbol("utils.arrayFirst",h.utils.arrayFirst);h.exportSymbol("utils.arrayFilter",h.utils.arrayFilter);h.exportSymbol("utils.arrayGetDistinctValues",h.utils.arrayGetDistinctValues);h.exportSymbol("utils.arrayIndexOf",h.utils.arrayIndexOf);h.exportSymbol("utils.arrayMap",h.utils.arrayMap);h.exportSymbol("utils.arrayPushAll",h.utils.arrayPushAll);h.exportSymbol("utils.arrayRemoveItem",h.utils.arrayRemoveItem);h.exportSymbol("utils.extend",h.utils.extend);h.exportSymbol("utils.fieldsIncludedWithJsonPost",h.utils.fieldsIncludedWithJsonPost);h.exportSymbol("utils.getFormFields",h.utils.getFormFields);h.exportSymbol("utils.peekObservable",h.utils.peekObservable);h.exportSymbol("utils.postJson",h.utils.postJson);h.exportSymbol("utils.parseJson",h.utils.parseJson);h.exportSymbol("utils.registerEventHandler",h.utils.registerEventHandler);h.exportSymbol("utils.stringifyJson",h.utils.stringifyJson);h.exportSymbol("utils.range",h.utils.range);h.exportSymbol("utils.toggleDomNodeCssClass",h.utils.toggleDomNodeCssClass);h.exportSymbol("utils.triggerEvent",h.utils.triggerEvent);h.exportSymbol("utils.unwrapObservable",h.utils.unwrapObservable);h.exportSymbol("utils.objectForEach",h.utils.objectForEach);h.exportSymbol("utils.addOrRemoveItem",h.utils.addOrRemoveItem);h.exportSymbol("utils.setTextContent",h.utils.setTextContent);h.exportSymbol("unwrap",h.utils.unwrapObservable);Function.prototype.bind||(Function.prototype.bind=function(n){var t=this,i;return arguments.length===1?function(){return t.apply(n,arguments)}:(i=Array.prototype.slice.call(arguments,1),function(){var r=i.slice(0);return r.push.apply(r,arguments),t.apply(n,r)})});h.utils.domData=new function(){function r(r,f){var e=r[n],o=e&&e!=="null"&&i[e];if(!o){if(!f)return t;e=r[n]="ko"+u++;i[e]={}}return i[e]}var u=0,n="__ko__"+(new Date).getTime(),i={};return{get:function(n,i){var u=r(n,!1);return u===t?t:u[i]},set:function(n,i,u){if(u!==t||r(n,!1)!==t){var f=r(n,!0);f[i]=u}},clear:function(t){var r=t[n];return r?(delete i[r],t[n]=null,!0):!1},nextKey:function(){return u+++n}}};h.exportSymbol("utils.domData",h.utils.domData);h.exportSymbol("utils.domData.clear",h.utils.domData.clear);h.utils.domNodeDisposal=new function(){function i(i,r){var u=h.utils.domData.get(i,n);return u===t&&r&&(u=[],h.utils.domData.set(i,n,u)),u}function o(i){h.utils.domData.set(i,n,t)}function u(n){var t=i(n,!1),r;if(t)for(t=t.slice(0),r=0;r<t.length;r++)t[r](n);h.utils.domData.clear(n);h.utils.domNodeDisposal.cleanExternalData(n);f[n.nodeType]&&s(n)}function s(n){for(var t,i=n.firstChild;t=i;)i=t.nextSibling,t.nodeType===8&&u(t)}var n=h.utils.domData.nextKey(),e={1:!0,8:!0,9:!0},f={1:!0,9:!0};return{addDisposeCallback:function(n,t){if(typeof t!="function")throw new Error("Callback must be a function");i(n,!0).push(t)},removeDisposeCallback:function(n,t){var r=i(n,!1);r&&(h.utils.arrayRemoveItem(r,t),r.length==0&&o(n))},cleanNode:function(n){var t,i,r;if(e[n.nodeType]&&(u(n),f[n.nodeType]))for(t=[],h.utils.arrayPushAll(t,n.getElementsByTagName("*")),i=0,r=t.length;i<r;i++)u(t[i]);return n},removeNode:function(n){h.cleanNode(n);n.parentNode&&n.parentNode.removeChild(n)},cleanExternalData:function(n){r&&typeof r.cleanData=="function"&&r.cleanData([n])}}};h.cleanNode=h.utils.domNodeDisposal.cleanNode;h.removeNode=h.utils.domNodeDisposal.removeNode;h.exportSymbol("cleanNode",h.cleanNode);h.exportSymbol("removeNode",h.removeNode);h.exportSymbol("utils.domNodeDisposal",h.utils.domNodeDisposal);h.exportSymbol("utils.domNodeDisposal.addDisposeCallback",h.utils.domNodeDisposal.addDisposeCallback);h.exportSymbol("utils.domNodeDisposal.removeDisposeCallback",h.utils.domNodeDisposal.removeDisposeCallback),function(){function l(n){var t=n.match(/^<([a-z]+)[ >]/);return t&&c[t[1]]||s}function a(n,t){t||(t=i);var e=t.parentWindow||t.defaultView||u,c=h.utils.stringTrim(n).toLowerCase(),r=t.createElement("div"),f=l(c),a=f[0],s="ignored<div>"+f[1]+n+f[2]+"<\/div>";for(typeof e.innerShiv=="function"?r.appendChild(e.innerShiv(s)):(o&&t.appendChild(r),r.innerHTML=s,o&&r.parentNode.removeChild(r));a--;)r=r.lastChild;return h.utils.makeArray(r.lastChild.childNodes)}function v(n,t){var u,i;if(r.parseHTML)return r.parseHTML(n,t)||[];if(u=r.clean([n],t),u&&u[0]){for(i=u[0];i.parentNode&&i.parentNode.nodeType!==11;)i=i.parentNode;i.parentNode&&i.parentNode.removeChild(i)}return u}var s=[0,"",""],n=[1,"<table>","<\/table>"],f=[3,"<table><tbody><tr>","<\/tr><\/tbody><\/table>"],e=[1,"<select multiple='multiple'>","<\/select>"],c={thead:n,tbody:n,tfoot:n,tr:[2,"<table><tbody>","<\/tbody><\/table>"],td:f,th:f,option:e,optgroup:e},o=h.utils.ieVersion<=8;h.utils.parseHtmlFragment=function(n,t){return r?v(n,t):a(n,t)};h.utils.setHtml=function(n,i){var f,u;if(h.utils.emptyDomNode(n),i=h.utils.unwrapObservable(i),i!==null&&i!==t)if(typeof i!="string"&&(i=i.toString()),r)r(n).html(i);else for(f=h.utils.parseHtmlFragment(i,n.ownerDocument),u=0;u<f.length;u++)n.appendChild(f[u])}}();h.exportSymbol("utils.parseHtmlFragment",h.utils.parseHtmlFragment);h.exportSymbol("utils.setHtml",h.utils.setHtml);h.memoization=function(){function i(){return((1+Math.random())*4294967296|0).toString(16).substring(1)}function u(){return i()+i()}function r(n,t){var i;if(n)if(n.nodeType==8)i=h.memoization.parseMemoText(n.nodeValue),i!=null&&t.push({domNode:n,memoId:i});else if(n.nodeType==1)for(var u=0,f=n.childNodes,e=f.length;u<e;u++)r(f[u],t)}var n={};return{memoize:function(t){if(typeof t!="function")throw new Error("You can only pass a function to ko.memoization.memoize()");var i=u();return n[i]=t,"<!--[ko_memo:"+i+"]-->"},unmemoize:function(i,r){var u=n[i];if(u===t)throw new Error("Couldn't find any memo with ID "+i+". Perhaps it's already been unmemoized.");try{return u.apply(null,r||[]),!0}finally{delete n[i]}},unmemoizeDomNodeAndDescendants:function(n,t){var f=[],u,o,i,e;for(r(n,f),u=0,o=f.length;u<o;u++)i=f[u].domNode,e=[i],t&&h.utils.arrayPushAll(e,t),h.memoization.unmemoize(f[u].memoId,e),i.nodeValue="",i.parentNode&&i.parentNode.removeChild(i)},parseMemoText:function(n){var t=n.match(/^\[ko_memo\:(.*?)\]$/);return t?t[1]:null}}}();h.exportSymbol("memoization",h.memoization);h.exportSymbol("memoization.memoize",h.memoization.memoize);h.exportSymbol("memoization.unmemoize",h.memoization.unmemoize);h.exportSymbol("memoization.parseMemoText",h.memoization.parseMemoText);h.exportSymbol("memoization.unmemoizeDomNodeAndDescendants",h.memoization.unmemoizeDomNodeAndDescendants);h.tasks=function(){function o(){var i,u,f;if(n)for(i=n,u=0;t<n;)if(f=r[t++]){if(t>i){if(++u>=5e3){t=n;h.utils.deferError(Error("'Too much recursion' after processing "+u+" task groups."));break}i=n}try{f()}catch(e){h.utils.deferError(e)}}}function s(){o();t=n=r.length=0}function c(){h.tasks.scheduler(s)}var f,r=[],n=0,e=1,t=0;return f=u.MutationObserver?function(n){var t=i.createElement("div");return new MutationObserver(n).observe(t,{attributes:!0}),function(){t.classList.toggle("foo")}}(s):i&&"onreadystatechange"in i.createElement("script")?function(n){var t=i.createElement("script");t.onreadystatechange=function(){t.onreadystatechange=null;i.documentElement.removeChild(t);t=null;n()};i.documentElement.appendChild(t)}:function(n){setTimeout(n,0)},{scheduler:f,schedule:function(t){return n||c(),r[n++]=t,e++},cancel:function(i){var u=i-(e-n);u>=t&&u<n&&(r[u]=null)},resetForTesting:function(){var i=n-t;return t=n=r.length=0,i},runEarly:o}}();h.exportSymbol("tasks",h.tasks);h.exportSymbol("tasks.schedule",h.tasks.schedule);h.exportSymbol("tasks.runEarly",h.tasks.runEarly);h.extenders={throttle:function(n,t){n.throttleEvaluation=t;var i=null;return h.dependentObservable({read:n,write:function(r){clearTimeout(i);i=h.utils.setTimeout(function(){n(r)},t)}})},rateLimit:function(n,t){var i,r,u;typeof t=="number"?i=t:(i=t.timeout,r=t.method);n._deferUpdates=!1;u=r=="notifyWhenChangesStop"?ot:et;n.limit(function(n){return u(n,i)})},deferred:function(n,i){if(i!==!0)throw new Error("The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.");n._deferUpdates||(n._deferUpdates=!0,n.limit(function(i){var r;return function(){h.tasks.cancel(r);r=h.tasks.schedule(i);n.notifySubscribers(t,"dirty")}}))},notify:function(n,t){n.equalityComparer=t=="always"?null:nt}};ft={undefined:1,boolean:1,number:1,string:1};h.exportSymbol("extenders",h.extenders);h.subscription=function(n,t,i){this._target=n;this.callback=t;this.disposeCallback=i;this.isDisposed=!1;h.exportProperty(this,"dispose",this.dispose)};h.subscription.prototype.dispose=function(){this.isDisposed=!0;this.disposeCallback()};h.subscribable=function(){h.utils.setPrototypeOfOrExtend(this,a);a.init(this)};w="change";a={init:function(n){n._subscriptions={};n._versionNumber=1},subscribe:function(n,t,i){var r=this,f,u;return i=i||w,f=t?n.bind(t):n,u=new h.subscription(r,f,function(){h.utils.arrayRemoveItem(r._subscriptions[i],u);r.afterSubscriptionRemove&&r.afterSubscriptionRemove(i)}),r.beforeSubscriptionAdd&&r.beforeSubscriptionAdd(i),r._subscriptions[i]||(r._subscriptions[i]=[]),r._subscriptions[i].push(u),u},notifySubscribers:function(n,t){if(t=t||w,t===w&&this.updateVersion(),this.hasSubscriptionsForEvent(t))try{h.dependencyDetection.begin();for(var u=this._subscriptions[t].slice(0),r=0,i;i=u[r];++r)i.isDisposed||i.callback(n)}finally{h.dependencyDetection.end()}},getVersion:function(){return this._versionNumber},hasChanged:function(n){return this.getVersion()!==n},updateVersion:function(){++this._versionNumber},limit:function(n){var t=this,e=h.isObservable(t),r,u,i,o="beforeChange",f;t._origNotifySubscribers||(t._origNotifySubscribers=t.notifySubscribers,t.notifySubscribers=ht);f=n(function(){t._notificationIsPending=!1;e&&i===t&&(i=t());r=!1;t.isDifferent(u,i)&&t._origNotifySubscribers(u=i)});t._limitChange=function(n){t._notificationIsPending=r=!0;i=n;f()};t._limitBeforeChange=function(n){r||(u=n,t._origNotifySubscribers(n,o))}},hasSubscriptionsForEvent:function(n){return this._subscriptions[n]&&this._subscriptions[n].length},getSubscriptionsCount:function(n){if(n)return this._subscriptions[n]&&this._subscriptions[n].length||0;var t=0;return h.utils.objectForEach(this._subscriptions,function(n,i){n!=="dirty"&&(t+=i.length)}),t},isDifferent:function(n,t){return!this.equalityComparer||!this.equalityComparer(n,t)},extend:st};h.exportProperty(a,"subscribe",a.subscribe);h.exportProperty(a,"extend",a.extend);h.exportProperty(a,"getSubscriptionsCount",a.getSubscriptionsCount);h.utils.canSetPrototype&&h.utils.setPrototypeOf(a,Function.prototype);h.subscribable.fn=a;h.isSubscribable=function(n){return n!=null&&typeof n.subscribe=="function"&&typeof n.notifySubscribers=="function"};h.exportSymbol("subscribable",h.subscribable);h.exportSymbol("isSubscribable",h.isSubscribable);h.computedContext=h.dependencyDetection=function(){function f(){return++u}function i(i){t.push(n);n=i}function r(){n=t.pop()}var t=[],n,u=0;return{begin:i,end:r,registerDependency:function(t){if(n){if(!h.isSubscribable(t))throw new Error("Only subscribable things can act as dependencies");n.callback.call(n.callbackTarget,t,t._id||(t._id=f()))}},ignore:function(n,t,u){try{return i(),n.apply(t,u||[])}finally{r()}},getDependenciesCount:function(){if(n)return n.computed.getDependenciesCount()},isInitial:function(){if(n)return n.isInitial}}}();h.exportSymbol("computedContext",h.computedContext);h.exportSymbol("computedContext.getDependenciesCount",h.computedContext.getDependenciesCount);h.exportSymbol("computedContext.isInitial",h.computedContext.isInitial);h.exportSymbol("ignoreDependencies",h.ignoreDependencies=h.dependencyDetection.ignore);y=h.utils.createSymbolOrString("_latestValue");h.observable=function(n){function t(){return arguments.length>0?(t.isDifferent(t[y],arguments[0])&&(t.valueWillMutate(),t[y]=arguments[0],t.valueHasMutated()),this):(h.dependencyDetection.registerDependency(t),t[y])}return t[y]=n,h.utils.canSetPrototype||h.utils.extend(t,h.subscribable.fn),h.subscribable.fn.init(t),h.utils.setPrototypeOfOrExtend(t,v),h.options.deferUpdates&&h.extenders.deferred(t,!0),t};v={equalityComparer:nt,peek:function(){return this[y]},valueHasMutated:function(){this.notifySubscribers(this[y])},valueWillMutate:function(){this.notifySubscribers(this[y],"beforeChange")}};h.utils.canSetPrototype&&h.utils.setPrototypeOf(v,h.subscribable.fn);p=h.observable.protoProperty="__ko_proto__";v[p]=h.observable;h.hasPrototype=function(n,i){return n===null||n===t||n[p]===t?!1:n[p]===i?!0:h.hasPrototype(n[p],i)};h.isObservable=function(n){return h.hasPrototype(n,h.observable)};h.isWriteableObservable=function(n){return typeof n=="function"&&n[p]===h.observable?!0:typeof n=="function"&&n[p]===h.dependentObservable&&n.hasWriteFunction?!0:!1};h.exportSymbol("observable",h.observable);h.exportSymbol("isObservable",h.isObservable);h.exportSymbol("isWriteableObservable",h.isWriteableObservable);h.exportSymbol("isWritableObservable",h.isWriteableObservable);h.exportSymbol("observable.fn",v);h.exportProperty(v,"peek",v.peek);h.exportProperty(v,"valueHasMutated",v.valueHasMutated);h.exportProperty(v,"valueWillMutate",v.valueWillMutate);h.observableArray=function(n){if(n=n||[],typeof n!="object"||!("length"in n))throw new Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");var t=h.observable(n);return h.utils.setPrototypeOfOrExtend(t,h.observableArray.fn),t.extend({trackArrayChanges:!0})};h.observableArray.fn={remove:function(n){for(var u,r=this.peek(),i=[],f=typeof n=="function"&&!h.isObservable(n)?n:function(t){return t===n},t=0;t<r.length;t++)u=r[t],f(u)&&(i.length===0&&this.valueWillMutate(),i.push(u),r.splice(t,1),t--);return i.length&&this.valueHasMutated(),i},removeAll:function(n){if(n===t){var i=this.peek(),r=i.slice(0);return this.valueWillMutate(),i.splice(0,i.length),this.valueHasMutated(),r}return n?this.remove(function(t){return h.utils.arrayIndexOf(n,t)>=0}):[]},destroy:function(n){var i=this.peek(),u=typeof n=="function"&&!h.isObservable(n)?n:function(t){return t===n},t,r;for(this.valueWillMutate(),t=i.length-1;t>=0;t--)r=i[t],u(r)&&(i[t]._destroy=!0);this.valueHasMutated()},destroyAll:function(n){return n===t?this.destroy(function(){return!0}):n?this.destroy(function(t){return h.utils.arrayIndexOf(n,t)>=0}):[]},indexOf:function(n){var t=this();return h.utils.arrayIndexOf(t,n)},replace:function(n,t){var i=this.indexOf(n);i>=0&&(this.valueWillMutate(),this.peek()[i]=t,this.valueHasMutated())}};h.utils.canSetPrototype&&h.utils.setPrototypeOf(h.observableArray.fn,h.observable.fn);h.utils.arrayForEach(["pop","push","reverse","shift","sort","splice","unshift"],function(n){h.observableArray.fn[n]=function(){var t=this.peek(),i;return this.valueWillMutate(),this.cacheDiffForKnownOperation(t,n,arguments),i=t[n].apply(t,arguments),this.valueHasMutated(),i===t?this:i}});h.utils.arrayForEach(["slice"],function(n){h.observableArray.fn[n]=function(){var t=this();return t[n].apply(t,arguments)}});h.exportSymbol("observableArray",h.observableArray);b="arrayChange";h.extenders.trackArrayChanges=function(n,t){function s(){var e,t;r||(r=!0,e=n.notifySubscribers,n.notifySubscribers=function(n,t){return t&&t!==w||++u,e.apply(this,arguments)},t=[].concat(n.peek()||[]),i=null,f=n.subscribe(function(r){if(r=[].concat(r||[]),n.hasSubscriptionsForEvent(b))var f=c(t,r);t=r;i=null;u=0;f&&f.length&&n.notifySubscribers(f,b)}))}function c(t,r){return(!i||u>1)&&(i=h.utils.compareArrays(t,r,n.compareArrayOptions)),i}if(n.compareArrayOptions={},t&&typeof t=="object"&&h.utils.extend(n.compareArrayOptions,t),n.compareArrayOptions.sparse=!0,!n.cacheDiffForKnownOperation){var r=!1,i=null,f,u=0,e=n.beforeSubscriptionAdd,o=n.afterSubscriptionRemove;n.beforeSubscriptionAdd=function(t){e&&e.call(n,t);t===b&&s()};n.afterSubscriptionRemove=function(t){o&&o.call(n,t);t!==b||n.hasSubscriptionsForEvent(b)||(f.dispose(),r=!1)};n.cacheDiffForKnownOperation=function(n,t,f){function c(n,t,i){return l[l.length]={status:n,value:t,index:i}}var e,y;if(r&&!u){var l=[],o=n.length,a=f.length,s=0;switch(t){case"push":s=o;case"unshift":for(e=0;e<a;e++)c("added",f[e],s+e);break;case"pop":s=o-1;case"shift":o&&c("deleted",n[s],s);break;case"splice":var v=Math.min(Math.max(0,f[0]<0?o+f[0]:f[0]),o),p=a===1?o:Math.min(v+(f[1]||0),o),w=v+a-2,d=Math.max(p,w),b=[],k=[];for(e=v,y=2;e<d;++e,++y)e<p&&k.push(c("deleted",n[e],e)),e<w&&b.push(c("added",f[y],e));h.utils.findMovesInArrayComparison(k,b);break;default:return}i=l}}}};c=h.utils.createSymbolOrString("_state");h.computed=h.dependentObservable=function(i,r,u){function f(){if(arguments.length>0){if(typeof o=="function")o.apply(e.evaluatorFunctionTarget,arguments);else throw new Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");return this}return h.dependencyDetection.registerDependency(f),(e.isStale||e.isSleeping&&f.haveDependenciesChanged())&&f.evaluateImmediate(),e.latestValue}if(typeof i=="object"?u=i:(u=u||{},i&&(u.read=i)),typeof u.read!="function")throw Error("Pass a function that returns the value of the ko.computed");var o=u.write,e={latestValue:t,isStale:!0,isBeingEvaluated:!1,suppressDisposalUntilDisposeWhenReturnsFalse:!1,isDisposed:!1,pure:!1,isSleeping:!1,readFunction:u.read,evaluatorFunctionTarget:r||u.owner,disposeWhenNodeIsRemoved:u.disposeWhenNodeIsRemoved||u.disposeWhenNodeIsRemoved||null,disposeWhen:u.disposeWhen||u.disposeWhen,domNodeDisposalCallback:null,dependencyTracking:{},dependenciesCount:0,evaluationTimeoutInstance:null};return f[c]=e,f.hasWriteFunction=typeof o=="function",h.utils.canSetPrototype||h.utils.extend(f,h.subscribable.fn),h.subscribable.fn.init(f),h.utils.setPrototypeOfOrExtend(f,l),u.pure?(e.pure=!0,e.isSleeping=!0,h.utils.extend(f,at)):u.deferEvaluation&&h.utils.extend(f,vt),h.options.deferUpdates&&h.extenders.deferred(f,!0),n&&(f._options=u),e.disposeWhenNodeIsRemoved&&(e.suppressDisposalUntilDisposeWhenReturnsFalse=!0,e.disposeWhenNodeIsRemoved.nodeType||(e.disposeWhenNodeIsRemoved=null)),e.isSleeping||u.deferEvaluation||f.evaluateImmediate(),e.disposeWhenNodeIsRemoved&&f.isActive()&&h.utils.domNodeDisposal.addDisposeCallback(e.disposeWhenNodeIsRemoved,e.domNodeDisposalCallback=function(){f.dispose()}),f};var l={equalityComparer:nt,getDependenciesCount:function(){return this[c].dependenciesCount},addDependencyTracking:function(n,t,i){if(this[c].pure&&t===this)throw Error("A 'pure' computed must not be called recursively");this[c].dependencyTracking[n]=i;i._order=this[c].dependenciesCount++;i._version=t.getVersion()},haveDependenciesChanged:function(){var n,t,i=this[c].dependencyTracking;for(n in i)if(i.hasOwnProperty(n)&&(t=i[n],t._target.hasChanged(t._version)))return!0},markDirty:function(){this._evalDelayed&&!this[c].isBeingEvaluated&&this._evalDelayed()},isActive:function(){return this[c].isStale||this[c].dependenciesCount>0},respondToChange:function(){this._notificationIsPending||this.evaluatePossiblyAsync()},subscribeToDependency:function(n){if(n._deferUpdates&&!this[c].disposeWhenNodeIsRemoved){var t=n.subscribe(this.markDirty,this,"dirty"),i=n.subscribe(this.respondToChange,this);return{_target:n,dispose:function(){t.dispose();i.dispose()}}}return n.subscribe(this.evaluatePossiblyAsync,this)},evaluatePossiblyAsync:function(){var n=this,t=n.throttleEvaluation;t&&t>=0?(clearTimeout(this[c].evaluationTimeoutInstance),this[c].evaluationTimeoutInstance=h.utils.setTimeout(function(){n.evaluateImmediate(!0)},t)):n._evalDelayed?n._evalDelayed():n.evaluateImmediate(!0)},evaluateImmediate:function(n){var i=this,t=i[c],r=t.disposeWhen;if(!t.isBeingEvaluated&&!t.isDisposed){if(t.disposeWhenNodeIsRemoved&&!h.utils.domNodeIsAttachedToDocument(t.disposeWhenNodeIsRemoved)||r&&r()){if(!t.suppressDisposalUntilDisposeWhenReturnsFalse){i.dispose();return}}else t.suppressDisposalUntilDisposeWhenReturnsFalse=!1;t.isBeingEvaluated=!0;try{this.evaluateImmediate_CallReadWithDependencyDetection(n)}finally{t.isBeingEvaluated=!1}t.dependenciesCount||i.dispose()}},evaluateImmediate_CallReadWithDependencyDetection:function(n){var r=this,i=r[c],f=i.pure?t:!i.dependenciesCount,e={computedObservable:r,disposalCandidates:i.dependencyTracking,disposalCount:i.dependenciesCount},u;h.dependencyDetection.begin({callbackTarget:e,callback:lt,computed:r,isInitial:f});i.dependencyTracking={};i.dependenciesCount=0;u=this.evaluateImmediate_CallReadThenEndDependencyDetection(i,e);r.isDifferent(i.latestValue,u)&&(i.isSleeping||r.notifySubscribers(i.latestValue,"beforeChange"),i.latestValue=u,i.isSleeping?r.updateVersion():n&&r.notifySubscribers(i.latestValue));f&&r.notifySubscribers(i.latestValue,"awake")},evaluateImmediate_CallReadThenEndDependencyDetection:function(n,t){try{var i=n.readFunction;return n.evaluatorFunctionTarget?i.call(n.evaluatorFunctionTarget):i()}finally{h.dependencyDetection.end();t.disposalCount&&!n.isSleeping&&h.utils.objectForEach(t.disposalCandidates,ct);n.isStale=!1}},peek:function(){var n=this[c];return(n.isStale&&!n.dependenciesCount||n.isSleeping&&this.haveDependenciesChanged())&&this.evaluateImmediate(),n.latestValue},limit:function(n){h.subscribable.fn.limit.call(this,n);this._evalDelayed=function(){this._limitBeforeChange(this[c].latestValue);this[c].isStale=!0;this._limitChange(this)}},dispose:function(){var n=this[c];!n.isSleeping&&n.dependencyTracking&&h.utils.objectForEach(n.dependencyTracking,function(n,t){t.dispose&&t.dispose()});n.disposeWhenNodeIsRemoved&&n.domNodeDisposalCallback&&h.utils.domNodeDisposal.removeDisposeCallback(n.disposeWhenNodeIsRemoved,n.domNodeDisposalCallback);n.dependencyTracking=null;n.dependenciesCount=0;n.isDisposed=!0;n.isStale=!1;n.isSleeping=!1;n.disposeWhenNodeIsRemoved=null}},at={beforeSubscriptionAdd:function(n){var i=this,t=i[c],r;!t.isDisposed&&t.isSleeping&&n=="change"&&(t.isSleeping=!1,t.isStale||i.haveDependenciesChanged()?(t.dependencyTracking=null,t.dependenciesCount=0,t.isStale=!0,i.evaluateImmediate()):(r=[],h.utils.objectForEach(t.dependencyTracking,function(n,t){r[t._order]=n}),h.utils.arrayForEach(r,function(n,r){var f=t.dependencyTracking[n],u=i.subscribeToDependency(f._target);u._order=r;u._version=f._version;t.dependencyTracking[n]=u})),t.isDisposed||i.notifySubscribers(t.latestValue,"awake"))},afterSubscriptionRemove:function(n){var i=this[c];i.isDisposed||n!="change"||this.hasSubscriptionsForEvent("change")||(h.utils.objectForEach(i.dependencyTracking,function(n,t){t.dispose&&(i.dependencyTracking[n]={_target:t._target,_order:t._order,_version:t._version},t.dispose())}),i.isSleeping=!0,this.notifySubscribers(t,"asleep"))},getVersion:function(){var n=this[c];return n.isSleeping&&(n.isStale||this.haveDependenciesChanged())&&this.evaluateImmediate(),h.subscribable.fn.getVersion.call(this)}},vt={beforeSubscriptionAdd:function(n){(n=="change"||n=="beforeChange")&&this.peek()}};h.utils.canSetPrototype&&h.utils.setPrototypeOf(l,h.subscribable.fn);tt=h.observable.protoProperty;h.computed[tt]=h.observable;l[tt]=h.computed;h.isComputed=function(n){return h.hasPrototype(n,h.computed)};h.isPureComputed=function(n){return h.hasPrototype(n,h.computed)&&n[c]&&n[c].pure};h.exportSymbol("computed",h.computed);h.exportSymbol("dependentObservable",h.computed);h.exportSymbol("isComputed",h.isComputed);h.exportSymbol("isPureComputed",h.isPureComputed);h.exportSymbol("computed.fn",l);h.exportProperty(l,"peek",l.peek);h.exportProperty(l,"dispose",l.dispose);h.exportProperty(l,"isActive",l.isActive);h.exportProperty(l,"getDependenciesCount",l.getDependenciesCount);h.pureComputed=function(n,t){return typeof n=="function"?h.computed(n,t,{pure:!0}):(n=h.utils.extend({},n),n.pure=!0,h.computed(n,t))};h.exportSymbol("pureComputed",h.pureComputed),function(){function i(r,f,e){var s,o;return(e=e||new n,r=f(r),s=typeof r=="object"&&r!==null&&r!==t&&!(r instanceof RegExp)&&!(r instanceof Date)&&!(r instanceof String)&&!(r instanceof Number)&&!(r instanceof Boolean),!s)?r:(o=r instanceof Array?[]:{},e.save(r,o),u(r,function(n){var u=f(r[n]),s;switch(typeof u){case"boolean":case"number":case"string":case"function":o[n]=u;break;case"object":case"undefined":s=e.get(u);o[n]=s!==t?s:i(u,f,e)}}),o)}function u(n,t){var i,r;if(n instanceof Array){for(i=0;i<n.length;i++)t(i);typeof n.toJSON=="function"&&t("toJSON")}else for(r in n)t(r)}function n(){this.keys=[];this.values=[]}var r=10;h.toJS=function(n){if(arguments.length==0)throw new Error("When calling ko.toJS, pass the object you want to convert.");return i(n,function(n){for(var t=0;h.isObservable(n)&&t<r;t++)n=n();return n})};h.toJSON=function(n,t,i){var r=h.toJS(n);return h.utils.stringifyJson(r,t,i)};n.prototype={constructor:n,save:function(n,t){var i=h.utils.arrayIndexOf(this.keys,n);i>=0?this.values[i]=t:(this.keys.push(n),this.values.push(t))},get:function(n){var i=h.utils.arrayIndexOf(this.keys,n);return i>=0?this.values[i]:t}}}();h.exportSymbol("toJS",h.toJS);h.exportSymbol("toJSON",h.toJSON),function(){var n="__ko__hasDomDataOptionValue__";h.selectExtensions={readValue:function(i){switch(h.utils.tagNameLower(i)){case"option":return i[n]===!0?h.utils.domData.get(i,h.bindingHandlers.options.optionValueDomDataKey):h.utils.ieVersion<=7?i.getAttributeNode("value")&&i.getAttributeNode("value").specified?i.value:i.text:i.value;case"select":return i.selectedIndex>=0?h.selectExtensions.readValue(i.options[i.selectedIndex]):t;default:return i.value}},writeValue:function(i,r,u){var e,f,s,o;switch(h.utils.tagNameLower(i)){case"option":switch(typeof r){case"string":h.utils.domData.set(i,h.bindingHandlers.options.optionValueDomDataKey,t);n in i&&delete i[n];i.value=r;break;default:h.utils.domData.set(i,h.bindingHandlers.options.optionValueDomDataKey,r);i[n]=!0;i.value=typeof r=="number"?r:""}break;case"select":for((r===""||r===null)&&(r=t),e=-1,f=0,s=i.options.length;f<s;++f)if(o=h.selectExtensions.readValue(i.options[f]),o==r||o==""&&r===t){e=f;break}(u||e>=0||r===t&&i.size>1)&&(i.selectedIndex=e);break;default:(r===null||r===t)&&(r="");i.value=r}}}}();h.exportSymbol("selectExtensions",h.selectExtensions);h.exportSymbol("selectExtensions.readValue",h.selectExtensions.readValue);h.exportSymbol("selectExtensions.writeValue",h.selectExtensions.writeValue);h.expressionRewriting=function(){function e(n){if(h.utils.arrayIndexOf(u,n)>=0)return!1;var t=n.match(f);return t===null?!1:t[1]?"Object("+t[1]+")"+t[2]:n}function i(n){var r=h.utils.stringTrim(n),l,f,i,v;r.charCodeAt(0)===123&&(r=r.slice(1,-1));var y=[],o=r.match(t),e,u=[],a=0;if(o)for(o.push(","),l=0;f=o[l];++l){if(i=f.charCodeAt(0),i===44){if(a<=0){y.push(e&&u.length?{key:e,value:u.join("")}:{unknown:e||u.join("")});e=a=0;u=[];continue}}else if(i===58){if(!a&&!e&&u.length===1){e=u.pop();continue}}else i===47&&l&&f.length>1?(v=o[l-1].match(s),v&&!c[v[0]]&&(r=r.substr(r.indexOf(f)+1),o=r.match(t),o.push(","),l=-1,f="/")):i===40||i===123||i===91?++a:i===41||i===125||i===93?--a:e||u.length||i!==34&&i!==39||(f=f.slice(1,-1));u.push(f)}return y}function l(n,t){function u(n,t){function l(i){return i&&i.preprocess?t=i.preprocess(t,n,u):!0}var i;if(!c){if(!l(h.getBindingHandler(n)))return;r[n]&&(i=e(t))&&f.push("'"+n+"':function(_z){"+i+"=_z}")}s&&(t="function(){return "+t+" }");o.push("'"+n+"':"+t)}t=t||{};var o=[],f=[],s=t.valueAccessors,c=t.bindingParams,l=typeof n=="string"?i(n):n;return h.utils.arrayForEach(l,function(n){u(n.key||n.unknown,n.value)}),f.length&&u("_ko_property_writers","{"+f.join(",")+" }"),o.join(",")}var u=["true","false","null","undefined"],f=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,n=",\"'{}()/:[\\]",o="[^\\s:,/][^"+n+"]*[^\\s"+n+"]",t=RegExp("\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|/(?:[^/\\\\]|\\\\.)*/w*|"+o+"|[^\\s]","g"),s=/[\])"'A-Za-z0-9_$]+$/,c={"in":1,"return":1,"typeof":1},r={};return{bindingRewriteValidators:[],twoWayBindings:r,parseObjectLiteral:i,preProcessBindings:l,keyValueArrayContainsKey:function(n,t){for(var i=0;i<n.length;i++)if(n[i].key==t)return!0;return!1},writeValueToProperty:function(n,t,i,r,u){if(n&&h.isObservable(n))h.isWriteableObservable(n)&&(!u||n.peek()!==r)&&n(r);else{var f=t.get("_ko_property_writers");f&&f[i]&&f[i](r)}}}}();h.exportSymbol("expressionRewriting",h.expressionRewriting);h.exportSymbol("expressionRewriting.bindingRewriteValidators",h.expressionRewriting.bindingRewriteValidators);h.exportSymbol("expressionRewriting.parseObjectLiteral",h.expressionRewriting.parseObjectLiteral);h.exportSymbol("expressionRewriting.preProcessBindings",h.expressionRewriting.preProcessBindings);h.exportSymbol("expressionRewriting._twoWayBindings",h.expressionRewriting.twoWayBindings);h.exportSymbol("jsonExpressionRewriting",h.expressionRewriting);h.exportSymbol("jsonExpressionRewriting.insertPropertyAccessorsIntoJson",h.expressionRewriting.preProcessBindings),function(){function n(n){return n.nodeType==8&&u.test(t?n.text:n.nodeValue)}function r(n){return n.nodeType==8&&o.test(t?n.text:n.nodeValue)}function f(t,i){for(var u=t,f=1,e=[];u=u.nextSibling;){if(r(u)&&(f--,f===0))return e;e.push(u);n(u)&&f++}if(!i)throw new Error("Cannot find closing comment tag to match: "+t.nodeValue);return null}function e(n,t){var i=f(n,t);return i?i.length>0?i[i.length-1].nextSibling:n.nextSibling:null}function c(t){var i=t.firstChild,u=null,f;if(i)do u?u.push(i):n(i)?(f=e(i,!0),f?i=f:u=[i]):r(i)&&(u=[i]);while(i=i.nextSibling);return u}var t=i&&i.createComment("test").text==="<!--test-->",u=t?/^<!--\s*ko(?:\s+([\s\S]+))?\s*-->$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,o=t?/^<!--\s*\/ko\s*-->$/:/^\s*\/ko\s*$/,s={ul:!0,ol:!0};h.virtualElements={allowedBindings:{},childNodes:function(t){return n(t)?f(t):t.childNodes},emptyNode:function(t){var r,i,u;if(n(t))for(r=h.virtualElements.childNodes(t),i=0,u=r.length;i<u;i++)h.removeNode(r[i]);else h.utils.emptyDomNode(t)},setDomNodeChildren:function(t,i){var u,r,f;if(n(t))for(h.virtualElements.emptyNode(t),u=t.nextSibling,r=0,f=i.length;r<f;r++)u.parentNode.insertBefore(i[r],u);else h.utils.setDomNodeChildren(t,i)},prepend:function(t,i){n(t)?t.parentNode.insertBefore(i,t.nextSibling):t.firstChild?t.insertBefore(i,t.firstChild):t.appendChild(i)},insertAfter:function(t,i,r){r?n(t)?t.parentNode.insertBefore(i,r.nextSibling):r.nextSibling?t.insertBefore(i,r.nextSibling):t.appendChild(i):h.virtualElements.prepend(t,i)},firstChild:function(t){return n(t)?!t.nextSibling||r(t.nextSibling)?null:t.nextSibling:t.firstChild},nextSibling:function(t){return(n(t)&&(t=e(t)),t.nextSibling&&r(t.nextSibling))?null:t.nextSibling},hasBindingValue:n,virtualNodeBindingValue:function(n){var i=(t?n.text:n.nodeValue).match(u);return i?i[1]:null},normaliseVirtualElementDomStructure:function(n){var t,i,u,r;if(s[h.utils.tagNameLower(n)]&&(t=n.firstChild,t))do if(t.nodeType===1&&(i=c(t),i))for(u=t.nextSibling,r=0;r<i.length;r++)u?n.insertBefore(i[r],u):n.appendChild(i[r]);while(t=t.nextSibling)}}}();h.exportSymbol("virtualElements",h.virtualElements);h.exportSymbol("virtualElements.allowedBindings",h.virtualElements.allowedBindings);h.exportSymbol("virtualElements.emptyNode",h.virtualElements.emptyNode);h.exportSymbol("virtualElements.insertAfter",h.virtualElements.insertAfter);h.exportSymbol("virtualElements.prepend",h.virtualElements.prepend);h.exportSymbol("virtualElements.setDomNodeChildren",h.virtualElements.setDomNodeChildren),function(){function t(n,t,r){var u=n+(r&&r.valueAccessors||"");return t[u]||(t[u]=i(n,r))}function i(n,t){var i=h.expressionRewriting.preProcessBindings(n,t),r="with($context){with($data||{}){return{"+i+"}}}";return new Function("$context","$element",r)}var n="data-bind";h.bindingProvider=function(){this.bindingCache={}};h.utils.extend(h.bindingProvider.prototype,{nodeHasBindings:function(t){switch(t.nodeType){case 1:return t.getAttribute(n)!=null||h.components.getComponentNameForNode(t);case 8:return h.virtualElements.hasBindingValue(t);default:return!1}},getBindings:function(n,t){var i=this.getBindingsString(n,t),r=i?this.parseBindingsString(i,t,n):null;return h.components.addBindingsForCustomElement(r,n,t,!1)},getBindingAccessors:function(n,t){var i=this.getBindingsString(n,t),r=i?this.parseBindingsString(i,t,n,{valueAccessors:!0}):null;return h.components.addBindingsForCustomElement(r,n,t,!0)},getBindingsString:function(t){switch(t.nodeType){case 1:return t.getAttribute(n);case 8:return h.virtualElements.virtualNodeBindingValue(t);default:return null}},parseBindingsString:function(n,i,r,u){try{var e=t(n,this.bindingCache,u);return e(i,r)}catch(f){f.message="Unable to parse bindings.\nBindings value: "+n+"\nMessage: "+f.message;throw f;}}});h.bindingProvider.instance=new h.bindingProvider}();h.exportSymbol("bindingProvider",h.bindingProvider),function(){function v(n){return function(){return n}}function i(n){return n()}function s(n){return h.utils.objectMap(h.dependencyDetection.ignore(n),function(t,i){return function(){return n()[i]}})}function y(n,t,i){return typeof n=="function"?s(n.bind(null,t,i)):h.utils.objectMap(n,v)}function p(n,t){return s(this.getBindings.bind(this,n,t))}function w(n){var t=h.virtualElements.allowedBindings[n];if(!t)throw new Error("The binding '"+n+"' cannot be used with virtual elements");}function c(n,t,i){var r,u=h.virtualElements.firstChild(t),f=h.bindingProvider.instance,e=f.preprocessNode;if(e){while(r=u)u=h.virtualElements.nextSibling(r),e.call(f,r);u=h.virtualElements.firstChild(t)}while(r=u)u=h.virtualElements.nextSibling(r),l(n,r,i)}function l(n,t,i){var u=!0,r=t.nodeType===1,f;r&&h.virtualElements.normaliseVirtualElementDomStructure(t);f=r&&i||h.bindingProvider.instance.nodeHasBindings(t);f&&(u=a(t,null,n,i).shouldBindDescendants);u&&!o[h.utils.tagNameLower(t)]&&c(n,t,!r)}function b(n){var i=[],r={},t=[];return h.utils.objectForEach(n,function u(f){if(!r[f]){var e=h.getBindingHandler(f);e&&(e.after&&(t.push(f),h.utils.arrayForEach(e.after,function(i){if(n[i])if(h.utils.arrayIndexOf(t,i)!==-1)throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+t.join(", "));else u(i)}),t.length--),i.push({key:f,handler:e}));r[f]=!0}}),i}function a(n,r,u,e){var v=h.utils.domData.get(n,f),o,c,l,k;if(!r){if(v)throw Error("You cannot apply bindings multiple times to the same element.");h.utils.domData.set(n,f,!0)}if(!v&&e&&h.storedBindingContextForNode(n,u),r&&typeof r!="function")o=r;else{var y=h.bindingProvider.instance,d=y.getBindingAccessors||p,s=h.dependentObservable(function(){return o=r?r(u,n):d.call(y,n,u),o&&u._subscribable&&u._subscribable(),o},null,{disposeWhenNodeIsRemoved:n});o&&s.isActive()||(s=null)}if(o){l=s?function(n){return function(){return i(s()[n])}}:function(n){return o[n]};function a(){return h.utils.objectMap(s?s():o,i)}a.get=function(n){return o[n]&&i(l(n))};a.has=function(n){return n in o};k=b(o);h.utils.arrayForEach(k,function(i){var e=i.handler.init,s=i.handler.update,r=i.key;n.nodeType===8&&w(r);try{typeof e=="function"&&h.dependencyDetection.ignore(function(){var i=e(n,l(r),a,u.$data,u);if(i&&i.controlsDescendantBindings){if(c!==t)throw new Error("Multiple bindings ("+c+" and "+r+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");c=r}});typeof s=="function"&&h.dependentObservable(function(){s(n,l(r),a,u.$data,u)},null,{disposeWhenNodeIsRemoved:n})}catch(f){f.message='Unable to process binding "'+r+": "+o[r]+'"\nMessage: '+f.message;throw f;}})}return{shouldBindDescendants:c===t}}function n(n){return n&&n instanceof h.bindingContext?n:new h.bindingContext(n)}var o,f,e;h.bindingHandlers={};o={script:!0,textarea:!0,template:!0};h.getBindingHandler=function(n){return h.bindingHandlers[n]};h.bindingContext=function(n,i,r,u){function s(){var o=l?n():n,t=h.utils.unwrapObservable(o);return i?(i._subscribable&&i._subscribable(),h.utils.extend(f,i),e&&(f._subscribable=e)):(f.$parents=[],f.$root=t,f.ko=h),f.$rawData=o,f.$data=t,r&&(f[r]=t),u&&u(f,i,t),f.$data}function c(){return o&&!h.utils.anyDomNodeIsAttachedToDocument(o)}var f=this,l=typeof n=="function"&&!h.isObservable(n),o,e=h.dependentObservable(s,null,{disposeWhen:c,disposeWhenNodeIsRemoved:!0});e.isActive()&&(f._subscribable=e,e.equalityComparer=null,o=[],e._addNode=function(n){o.push(n);h.utils.domNodeDisposal.addDisposeCallback(n,function(n){h.utils.arrayRemoveItem(o,n);o.length||(e.dispose(),f._subscribable=e=t)})})};h.bindingContext.prototype.createChildContext=function(n,t,i){return new h.bindingContext(n,this,t,function(n,t){n.$parentContext=t;n.$parent=t.$data;n.$parents=(t.$parents||[]).slice(0);n.$parents.unshift(n.$parent);i&&i(n)})};h.bindingContext.prototype.extend=function(n){return new h.bindingContext(this._subscribable||this.$data,this,null,function(t,i){t.$rawData=i.$rawData;h.utils.extend(t,typeof n=="function"?n():n)})};f=h.utils.domData.nextKey();e=h.utils.domData.nextKey();h.storedBindingContextForNode=function(n,t){if(arguments.length==2)h.utils.domData.set(n,e,t),t._subscribable&&t._subscribable._addNode(n);else return h.utils.domData.get(n,e)};h.applyBindingAccessorsToNode=function(t,i,r){return t.nodeType===1&&h.virtualElements.normaliseVirtualElementDomStructure(t),a(t,i,n(r),!0)};h.applyBindingsToNode=function(t,i,r){var u=n(r);return h.applyBindingAccessorsToNode(t,y(i,u,t),u)};h.applyBindingsToDescendants=function(t,i){(i.nodeType===1||i.nodeType===8)&&c(n(t),i,!0)};h.applyBindings=function(t,i){if(!r&&u.jQuery&&(r=u.jQuery),i&&i.nodeType!==1&&i.nodeType!==8)throw new Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");i=i||u.document.body;l(n(t),i,!0)};h.contextFor=function(n){switch(n.nodeType){case 1:case 8:var i=h.storedBindingContextForNode(n);if(i)return i;if(n.parentNode)return h.contextFor(n.parentNode)}return t};h.dataFor=function(n){var i=h.contextFor(n);return i?i.$data:t};h.exportSymbol("bindingHandlers",h.bindingHandlers);h.exportSymbol("applyBindings",h.applyBindings);h.exportSymbol("applyBindingsToDescendants",h.applyBindingsToDescendants);h.exportSymbol("applyBindingAccessorsToNode",h.applyBindingAccessorsToNode);h.exportSymbol("applyBindingsToNode",h.applyBindingsToNode);h.exportSymbol("contextFor",h.contextFor);h.exportSymbol("dataFor",h.dataFor)}(),function(n){function u(t,i){return t.hasOwnProperty(i)?t[i]:n}function f(n,t){var f=u(i,n),o;f?f.subscribe(t):(f=i[n]=new h.subscribable,f.subscribe(t),e(n,function(t,u){var e=!!(u&&u.synchronous);r[n]={definition:t,isSynchronousComponent:e};delete i[n];o||e?f.notifySubscribers(t):h.tasks.schedule(function(){f.notifySubscribers(t)})}),o=!0)}function e(n,i){t("getConfig",[n],function(r){r?t("loadComponent",[n,r],function(n){i(n,r)}):i(null,null)})}function t(i,r,u,f){var e,o,s,c;if(f||(f=h.components.loaders.slice(0)),e=f.shift(),e)if(o=e[i],o){if(s=!1,c=o.apply(e,r.concat(function(n){s?u(null):n!==null?u(n):t(i,r,u,f)})),c!==n&&(s=!0,!e.suppressLoaderExceptions))throw new Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.");}else t(i,r,u,f);else u(null)}var i={},r={};h.components={get:function(n,t){var i=u(r,n);i?i.isSynchronousComponent?h.dependencyDetection.ignore(function(){t(i.definition)}):h.tasks.schedule(function(){t(i.definition)}):f(n,t)},clearCachedDefinition:function(n){delete r[n]},_getFirstResultFromLoaders:t};h.components.loaders=[];h.exportSymbol("components",h.components);h.exportSymbol("components.get",h.components.get);h.exportSymbol("components.clearCachedDefinition",h.components.clearCachedDefinition)}(),function(){function l(n,i,u,f){var o={},l=2,e=function(){--l==0&&f(o)},s=u.template,c=u.viewModel;s?r(i,s,function(t){h.components._getFirstResultFromLoaders("loadTemplate",[n,t],function(n){o.template=n;e()})}):e();c?r(i,c,function(i){h.components._getFirstResultFromLoaders("loadViewModel",[n,i],function(n){o[t]=n;e()})}):e()}function a(n,t,r){var u,f;typeof t=="string"?r(h.utils.parseHtmlFragment(t)):t instanceof Array?r(t):c(t)?r(h.utils.makeArray(t.childNodes)):t.element?(u=t.element,v(u)?r(o(u)):typeof u=="string"?(f=i.getElementById(u),f?r(o(f)):n("Cannot find element with ID "+u)):n("Unknown element type: "+u)):n("Unknown template value: "+t)}function e(n,i,r){if(typeof i=="function")r(function(n){return new i(n)});else if(typeof i[t]=="function")r(i[t]);else if("instance"in i){var u=i.instance;r(function(){return u})}else"viewModel"in i?e(n,i.viewModel,r):n("Unknown viewModel value: "+i)}function o(n){switch(h.utils.tagNameLower(n)){case"script":return h.utils.parseHtmlFragment(n.text);case"textarea":return h.utils.parseHtmlFragment(n.value);case"template":if(c(n.content))return h.utils.cloneNodes(n.content.childNodes)}return h.utils.cloneNodes(n.childNodes)}function v(n){return u.HTMLElement?n instanceof HTMLElement:n&&n.tagName&&n.nodeType===1}function c(n){return u.DocumentFragment?n instanceof DocumentFragment:n&&n.nodeType===11}function r(n,t,i){typeof t.require=="string"?s||u.require?(s||u.require)([t.require],i):n("Uses require, but no AMD loader is present"):i(t)}function f(n){return function(t){throw new Error("Component '"+n+"': "+t);}}var n={},t;h.components.register=function(t,i){if(!i)throw new Error("Invalid configuration for "+t);if(h.components.isRegistered(t))throw new Error("Component "+t+" is already registered");n[t]=i};h.components.isRegistered=function(t){return n.hasOwnProperty(t)};h.components.unregister=function(t){delete n[t];h.components.clearCachedDefinition(t)};h.components.defaultLoader={getConfig:function(t,i){var r=n.hasOwnProperty(t)?n[t]:null;i(r)},loadComponent:function(n,t,i){var u=f(n);r(u,t,function(t){l(n,u,t,i)})},loadTemplate:function(n,t,i){a(f(n),t,i)},loadViewModel:function(n,t,i){e(f(n),t,i)}};t="createViewModel";h.exportSymbol("components.register",h.components.register);h.exportSymbol("components.isRegistered",h.components.isRegistered);h.exportSymbol("components.unregister",h.components.unregister);h.exportSymbol("components.defaultLoader",h.components.defaultLoader);h.components.loaders.push(h.components.defaultLoader);h.components._allRegisteredComponents=n}(),function(){function t(t,i){var u=t.getAttribute("params");if(u){var e=n.parseBindingsString(u,i,t,{valueAccessors:!0,bindingParams:!0}),f=h.utils.objectMap(e,function(n){return h.computed(n,null,{disposeWhenNodeIsRemoved:t})}),r=h.utils.objectMap(f,function(n){var i=n.peek();return n.isActive()?h.computed({read:function(){return h.utils.unwrapObservable(n())},write:h.isWriteableObservable(i)&&function(t){n()(t)},disposeWhenNodeIsRemoved:t}):i});return r.hasOwnProperty("$raw")||(r.$raw=f),r}return{$raw:{}}}h.components.getComponentNameForNode=function(n){var t=h.utils.tagNameLower(n);if(h.components.isRegistered(t)&&(t.indexOf("-")!=-1||""+n=="[object HTMLUnknownElement]"||h.utils.ieVersion<=8&&n.tagName===t))return t};h.components.addBindingsForCustomElement=function(n,i,r,u){var f,e;if(i.nodeType===1&&(f=h.components.getComponentNameForNode(i),f)){if(n=n||{},n.component)throw new Error('Cannot use the "component" binding on a custom element matching a component');e={name:f,params:t(i,r)};n.component=u?function(){return e}:e}return n};var n=new h.bindingProvider;h.utils.ieVersion<9&&(h.components.register=function(n){return function(t){return i.createElement(t),n.apply(this,arguments)}}(h.components.register),i.createDocumentFragment=function(n){return function(){var t=n(),i=h.components._allRegisteredComponents;for(var r in i)i.hasOwnProperty(r)&&t.createElement(r);return t}}(i.createDocumentFragment))}(),function(n){function i(n,t,i){var r=t.template,u;if(!r)throw new Error("Component '"+n+"' has no template");u=h.utils.cloneNodes(r);h.virtualElements.setDomNodeChildren(i,u)}function r(n,t,i,r){var u=n.createViewModel;return u?u.call(n,r,{element:t,templateNodes:i}):r}var t=0;h.bindingHandlers.component={init:function(u,f,e,o,s){var c,l,a=function(){var n=c&&c.dispose;typeof n=="function"&&n.call(c);c=null;l=null},v=h.utils.makeArray(h.virtualElements.childNodes(u));return h.utils.domNodeDisposal.addDisposeCallback(u,a),h.computed(function(){var o=h.utils.unwrapObservable(f()),e,y,p;if(typeof o=="string"?e=o:(e=h.utils.unwrapObservable(o.name),y=h.utils.unwrapObservable(o.params)),!e)throw new Error("No component name specified");p=l=++t;h.components.get(e,function(t){if(l===p){if(a(),!t)throw new Error("Unknown component '"+e+"'");i(e,t,u);var f=r(t,u,v,y),o=s.createChildContext(f,n,function(n){n.$component=f;n.$componentTemplateNodes=v});c=f;h.applyBindingsToDescendants(o,u)}})},null,{disposeWhenNodeIsRemoved:u}),{controlsDescendantBindings:!0}}};h.virtualElements.allowedBindings.component=!0}();it={"class":"className","for":"htmlFor"};h.bindingHandlers.attr={update:function(n,i){var r=h.utils.unwrapObservable(i())||{};h.utils.objectForEach(r,function(i,r){r=h.utils.unwrapObservable(r);var u=r===!1||r===null||r===t;u&&n.removeAttribute(i);h.utils.ieVersion<=8&&i in it?(i=it[i],u?n.removeAttribute(i):n[i]=r):u||n.setAttribute(i,r.toString());i==="name"&&h.utils.setElementName(n,u?"":r.toString())})}},function(){h.bindingHandlers.checked={after:["value","attr"],init:function(n,i,r){function l(){var l=n.checked,o=y?f():l,t,s;h.computedContext.isInitial()||(!e||l)&&(t=h.dependencyDetection.ignore(i),u?(s=a?t.peek():t,c!==o?(l&&(h.utils.addOrRemoveItem(s,o,!0),h.utils.addOrRemoveItem(s,c,!1)),c=o):h.utils.addOrRemoveItem(s,o,l),a&&h.isWriteableObservable(t)&&t(s)):h.expressionRewriting.writeValueToProperty(t,r,"checked",o,!0))}function v(){var t=h.utils.unwrapObservable(i());n.checked=u?h.utils.arrayIndexOf(t,f())>=0:s?t:f()===t}var f=h.pureComputed(function(){return r.has("checkedValue")?h.utils.unwrapObservable(r.get("checkedValue")):r.has("value")?h.utils.unwrapObservable(r.get("value")):n.value}),s=n.type=="checkbox",e=n.type=="radio";if(s||e){var o=i(),u=s&&h.utils.unwrapObservable(o)instanceof Array,a=!(u&&o.push&&o.splice),c=u?f():t,y=e||u;e&&!n.name&&h.bindingHandlers.uniqueName.init(n,function(){return!0});h.computed(l,null,{disposeWhenNodeIsRemoved:n});h.utils.registerEventHandler(n,"click",l);h.computed(v,null,{disposeWhenNodeIsRemoved:n});o=t}}};h.expressionRewriting.twoWayBindings.checked=!0;h.bindingHandlers.checkedValue={update:function(n,t){n.value=h.utils.unwrapObservable(t())}}}();rt="__ko__cssValue";h.bindingHandlers.css={update:function(n,t){var i=h.utils.unwrapObservable(t());i!==null&&typeof i=="object"?h.utils.objectForEach(i,function(t,i){i=h.utils.unwrapObservable(i);h.utils.toggleDomNodeCssClass(n,t,i)}):(i=h.utils.stringTrim(String(i||"")),h.utils.toggleDomNodeCssClass(n,n[rt],!1),n[rt]=i,h.utils.toggleDomNodeCssClass(n,i,!0))}};h.bindingHandlers.enable={update:function(n,t){var i=h.utils.unwrapObservable(t());i&&n.disabled?n.removeAttribute("disabled"):i||n.disabled||(n.disabled=!0)}};h.bindingHandlers.disable={update:function(n,t){h.bindingHandlers.enable.update(n,function(){return!h.utils.unwrapObservable(t())})}};h.bindingHandlers.event={init:function(n,t,i,r,u){var f=t()||{};h.utils.objectForEach(f,function(f){typeof f=="string"&&h.utils.registerEventHandler(n,f,function(n){var o,s=t()[f],e,c;if(s){try{e=h.utils.makeArray(arguments);r=u.$data;e.unshift(r);o=s.apply(r,e)}finally{o!==!0&&(n.preventDefault?n.preventDefault():n.returnValue=!1)}c=i.get(f+"Bubble")!==!1;c||(n.cancelBubble=!0,n.stopPropagation&&n.stopPropagation())}})})}};h.bindingHandlers.foreach={makeTemplateValueAccessor:function(n){return function(){var i=n(),t=h.utils.peekObservable(i);return!t||typeof t.length=="number"?{foreach:i,templateEngine:h.nativeTemplateEngine.instance}:(h.utils.unwrapObservable(i),{foreach:t.data,as:t.as,includeDestroyed:t.includeDestroyed,afterAdd:t.afterAdd,beforeRemove:t.beforeRemove,afterRender:t.afterRender,beforeMove:t.beforeMove,afterMove:t.afterMove,templateEngine:h.nativeTemplateEngine.instance})}},init:function(n,t){return h.bindingHandlers.template.init(n,h.bindingHandlers.foreach.makeTemplateValueAccessor(t))},update:function(n,t,i,r,u){return h.bindingHandlers.template.update(n,h.bindingHandlers.foreach.makeTemplateValueAccessor(t),i,r,u)}};h.expressionRewriting.bindingRewriteValidators.foreach=!1;h.virtualElements.allowedBindings.foreach=!0;k="__ko_hasfocusUpdating";d="__ko_hasfocusLastValue";h.bindingHandlers.hasfocus={init:function(n,t,i){var r=function(r){var u,f,e;if(n[k]=!0,u=n.ownerDocument,"activeElement"in u){try{f=u.activeElement}catch(o){f=u.body}r=f===n}e=t();h.expressionRewriting.writeValueToProperty(e,i,"hasfocus",r,!0);n[d]=r;n[k]=!1},u=r.bind(null,!0),f=r.bind(null,!1);h.utils.registerEventHandler(n,"focus",u);h.utils.registerEventHandler(n,"focusin",u);h.utils.registerEventHandler(n,"blur",f);h.utils.registerEventHandler(n,"focusout",f)},update:function(n,t){var i=!!h.utils.unwrapObservable(t());n[k]||n[d]===i||(i?n.focus():n.blur(),!i&&n[d]&&n.ownerDocument.body.focus(),h.dependencyDetection.ignore(h.utils.triggerEvent,null,[n,i?"focusin":"focusout"]))}};h.expressionRewriting.twoWayBindings.hasfocus=!0;h.bindingHandlers.hasFocus=h.bindingHandlers.hasfocus;h.expressionRewriting.twoWayBindings.hasFocus=!0;h.bindingHandlers.html={init:function(){return{controlsDescendantBindings:!0}},update:function(n,t){h.utils.setHtml(n,t())}};ut("if");ut("ifnot",!1,!0);ut("with",!0,!1,function(n,t){return n.createChildContext(t)});g={};h.bindingHandlers.options={init:function(n){if(h.utils.tagNameLower(n)!=="select")throw new Error("options binding applies only to SELECT elements");while(n.length>0)n.remove(0);return{controlsDescendantBindings:!0}},update:function(n,i,r){function y(){return h.utils.arrayFilter(n.options,function(n){return n.selected})}function w(n,t,i){var r=typeof t;return r=="function"?t(n):r=="string"?n[t]:i}function nt(i,f,s){var c,l,a;return s.length&&(u=!e&&s[0].selected?[h.selectExtensions.readValue(s[0])]:[],o=!0),c=n.ownerDocument.createElement("option"),i===g?(h.utils.setTextContent(c,r.get("optionsCaption")),h.selectExtensions.writeValue(c,t)):(l=w(i,r.get("optionsValue"),i),h.selectExtensions.writeValue(c,h.utils.unwrapObservable(l)),a=w(i,r.get("optionsText"),l),h.utils.setTextContent(c,a)),[c]}function b(t,i){if(o&&e)h.selectExtensions.writeValue(n,h.utils.unwrapObservable(r.get("value")),!0);else if(u.length){var f=h.utils.arrayIndexOf(u,h.selectExtensions.readValue(i[0]))>=0;h.utils.setOptionNodeSelectionState(i[0],f);o&&!f&&h.dependencyDetection.ignore(h.utils.triggerEvent,null,[n,"change"])}}var k=n.length==0,s=n.multiple,c=!k&&s?n.scrollTop:null,f=h.utils.unwrapObservable(i()),e=r.get("valueAllowUnset")&&r.has("value"),d=r.get("optionsIncludeDestroyed"),p={},l,a,u=[],o,v;e||(s?u=h.utils.arrayMap(y(),h.selectExtensions.readValue):n.selectedIndex>=0&&u.push(h.selectExtensions.readValue(n.options[n.selectedIndex])));f&&(typeof f.length=="undefined"&&(f=[f]),a=h.utils.arrayFilter(f,function(n){return d||n===t||n===null||!h.utils.unwrapObservable(n._destroy)}),r.has("optionsCaption")&&(l=h.utils.unwrapObservable(r.get("optionsCaption")),l!==null&&l!==t&&a.unshift(g)));o=!1;p.beforeRemove=function(t){n.removeChild(t)};v=b;r.has("optionsAfterRender")&&typeof r.get("optionsAfterRender")=="function"&&(v=function(n,i){b(n,i);h.dependencyDetection.ignore(r.get("optionsAfterRender"),null,[i[0],n!==g?n:t])});h.utils.setDomNodeChildrenFromArrayMapping(n,a,nt,p,v);h.dependencyDetection.ignore(function(){if(e)h.selectExtensions.writeValue(n,h.utils.unwrapObservable(r.get("value")),!0);else{var t;t=s?u.length&&y().length<u.length:u.length&&n.selectedIndex>=0?h.selectExtensions.readValue(n.options[n.selectedIndex])!==u[0]:u.length||n.selectedIndex>=0;t&&h.utils.triggerEvent(n,"change")}});h.utils.ensureSelectElementIsRenderedCorrectly(n);c&&Math.abs(c-n.scrollTop)>20&&(n.scrollTop=c)}};h.bindingHandlers.options.optionValueDomDataKey=h.utils.domData.nextKey();h.bindingHandlers.selectedOptions={after:["options","foreach"],init:function(n,t,i){h.utils.registerEventHandler(n,"change",function(){var u=t(),r=[];h.utils.arrayForEach(n.getElementsByTagName("option"),function(n){n.selected&&r.push(h.selectExtensions.readValue(n))});h.expressionRewriting.writeValueToProperty(u,i,"selectedOptions",r)})},update:function(n,t){if(h.utils.tagNameLower(n)!="select")throw new Error("values binding applies only to SELECT elements");var i=h.utils.unwrapObservable(t()),r=n.scrollTop;i&&typeof i.length=="number"&&h.utils.arrayForEach(n.getElementsByTagName("option"),function(n){var t=h.utils.arrayIndexOf(i,h.selectExtensions.readValue(n))>=0;n.selected!=t&&h.utils.setOptionNodeSelectionState(n,t)});n.scrollTop=r}};h.expressionRewriting.twoWayBindings.selectedOptions=!0;h.bindingHandlers.style={update:function(n,i){var r=h.utils.unwrapObservable(i()||{});h.utils.objectForEach(r,function(i,r){r=h.utils.unwrapObservable(r);(r===null||r===t||r===!1)&&(r="");n.style[i]=r})}};h.bindingHandlers.submit={init:function(n,t,i,r,u){if(typeof t()!="function")throw new Error("The value for a submit binding must be a function");h.utils.registerEventHandler(n,"submit",function(i){var r,f=t();try{r=f.call(u.$data,n)}finally{r!==!0&&(i.preventDefault?i.preventDefault():i.returnValue=!1)}})}};h.bindingHandlers.text={init:function(){return{controlsDescendantBindings:!0}},update:function(n,t){h.utils.setTextContent(n,t())}};h.virtualElements.allowedBindings.text=!0,function(){if(u&&u.navigator)var i=function(n){if(n)return parseFloat(n[1])},o=u.opera&&u.opera.version&&parseInt(u.opera.version()),r=u.navigator.userAgent,s=i(r.match(/^(?:(?!chrome).)*version\/([^ ]*) safari/i)),c=i(r.match(/Firefox\/([^ ]*)/));if(h.utils.ieVersion<10)var f=h.utils.domData.nextKey(),e=h.utils.domData.nextKey(),l=function(n){var t=this.activeElement,i=t&&h.utils.domData.get(t,e);i&&i(n)},a=function(n,t){var i=n.ownerDocument;h.utils.domData.get(i,f)||(h.utils.domData.set(i,f,!0),h.utils.registerEventHandler(i,"selectionchange",l));h.utils.domData.set(n,e,t)};h.bindingHandlers.textInput={init:function(i,r,u){var p=i.value,v,y,e=function(f){clearTimeout(v);y=v=t;var e=i.value;p!==e&&(n&&f&&(i._ko_textInputProcessedEvent=f.type),p=e,h.expressionRewriting.writeValueToProperty(r(),u,"textInput",e))},l=function(t){if(!v){y=i.value;var r=n?e.bind(i,{type:t.type}):e;v=h.utils.setTimeout(r,4)}},w=h.utils.ieVersion==9?l:e,b=function(){var n=h.utils.unwrapObservable(r());if((n===null||n===t)&&(n=""),y!==t&&n===y){h.utils.setTimeout(b,4);return}i.value!==n&&(p=n,i.value=n)},f=function(n,t){h.utils.registerEventHandler(i,n,t)};n&&h.bindingHandlers.textInput._forceUpdateOn?h.utils.arrayForEach(h.bindingHandlers.textInput._forceUpdateOn,function(n){n.slice(0,5)=="after"?f(n.slice(5),l):f(n,e)}):h.utils.ieVersion<10?(f("propertychange",function(n){n.propertyName==="value"&&w(n)}),h.utils.ieVersion==8&&(f("keyup",e),f("keydown",e)),h.utils.ieVersion>=8&&(a(i,w),f("dragend",l))):(f("input",e),s<5&&h.utils.tagNameLower(i)==="textarea"?(f("keydown",l),f("paste",l),f("cut",l)):o<11?f("keydown",l):c<4&&(f("DOMAutoComplete",e),f("dragdrop",e),f("drop",e)));f("change",e);h.computed(b,null,{disposeWhenNodeIsRemoved:i})}};h.expressionRewriting.twoWayBindings.textInput=!0;h.bindingHandlers.textinput={preprocess:function(n,t,i){i("textInput",n)}}}();h.bindingHandlers.uniqueName={init:function(n,t){if(t()){var i="ko_unique_"+ ++h.bindingHandlers.uniqueName.currentIndex;h.utils.setElementName(n,i)}}};h.bindingHandlers.uniqueName.currentIndex=0;h.bindingHandlers.value={after:["options","foreach"],init:function(n,t,i){var o,c,s;if(n.tagName.toLowerCase()=="input"&&(n.type=="checkbox"||n.type=="radio")){h.applyBindingAccessorsToNode(n,{checkedValue:t});return}var r=["change"],u=i.get("valueUpdate"),f=!1,e=null;u&&(typeof u=="string"&&(u=[u]),h.utils.arrayPushAll(r,u),r=h.utils.arrayGetDistinctValues(r));o=function(){e=null;f=!1;var r=t(),u=h.selectExtensions.readValue(n);h.expressionRewriting.writeValueToProperty(r,i,"value",u)};c=h.utils.ieVersion&&n.tagName.toLowerCase()=="input"&&n.type=="text"&&n.autocomplete!="off"&&(!n.form||n.form.autocomplete!="off");c&&h.utils.arrayIndexOf(r,"propertychange")==-1&&(h.utils.registerEventHandler(n,"propertychange",function(){f=!0}),h.utils.registerEventHandler(n,"focus",function(){f=!1}),h.utils.registerEventHandler(n,"blur",function(){f&&o()}));h.utils.arrayForEach(r,function(t){var i=o;h.utils.stringStartsWith(t,"after")&&(i=function(){e=h.selectExtensions.readValue(n);h.utils.setTimeout(o,0)},t=t.substring(5));h.utils.registerEventHandler(n,t,i)});s=function(){var r=h.utils.unwrapObservable(t()),c=h.selectExtensions.readValue(n),o,u,f;if(e!==null&&r===e){h.utils.setTimeout(s,0);return}o=r!==c;o&&(h.utils.tagNameLower(n)==="select"?(u=i.get("valueAllowUnset"),f=function(){h.selectExtensions.writeValue(n,r,u)},f(),u||r===h.selectExtensions.readValue(n)?h.utils.setTimeout(f,0):h.dependencyDetection.ignore(h.utils.triggerEvent,null,[n,"change"])):h.selectExtensions.writeValue(n,r))};h.computed(s,null,{disposeWhenNodeIsRemoved:n})},update:function(){}};h.expressionRewriting.twoWayBindings.value=!0;h.bindingHandlers.visible={update:function(n,t){var i=h.utils.unwrapObservable(t()),r=!(n.style.display=="none");i&&!r?n.style.display="":!i&&r&&(n.style.display="none")}};yt("click");h.templateEngine=function(){};h.templateEngine.prototype.renderTemplateSource=function(){throw new Error("Override renderTemplateSource");};h.templateEngine.prototype.createJavaScriptEvaluatorBlock=function(){throw new Error("Override createJavaScriptEvaluatorBlock");};h.templateEngine.prototype.makeTemplateSource=function(n,t){if(typeof n=="string"){t=t||i;var r=t.getElementById(n);if(!r)throw new Error("Cannot find template with ID "+n);return new h.templateSources.domElement(r)}if(n.nodeType==1||n.nodeType==8)return new h.templateSources.anonymousTemplate(n);throw new Error("Unknown template type: "+n);};h.templateEngine.prototype.renderTemplate=function(n,t,i,r){var u=this.makeTemplateSource(n,r);return this.renderTemplateSource(u,t,i,r)};h.templateEngine.prototype.isTemplateRewritten=function(n,t){return this.allowTemplateRewriting===!1?!0:this.makeTemplateSource(n,t).data("isRewritten")};h.templateEngine.prototype.rewriteTemplate=function(n,t,i){var r=this.makeTemplateSource(n,i),u=t(r.text());r.text(u);r.data("isRewritten",!0)};h.exportSymbol("templateEngine",h.templateEngine);h.templateRewriting=function(){function r(n){for(var i,r,u,f=h.expressionRewriting.bindingRewriteValidators,t=0;t<n.length;t++)if(i=n[t].key,f.hasOwnProperty(i))if(r=f[i],typeof r=="function"){if(u=r(n[t].value),u)throw new Error(u);}else if(!r)throw new Error("This template engine does not support the '"+i+"' binding within its templates");}function n(n,t,i,u){var f=h.expressionRewriting.parseObjectLiteral(n),e,o;return r(f),e=h.expressionRewriting.preProcessBindings(f,{valueAccessors:!0}),o="ko.__tr_ambtns(function($context,$element){return(function(){return{ "+e+" } })()},'"+i.toLowerCase()+"')",u.createJavaScriptEvaluatorBlock(o)+t}var t=/(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,i=/<!--\s*ko\b\s*([\s\S]*?)\s*-->/g;return{ensureTemplateIsRewritten:function(n,t,i){t.isTemplateRewritten(n,i)||t.rewriteTemplate(n,function(n){return h.templateRewriting.memoizeBindingAttributeSyntax(n,t)},i)},memoizeBindingAttributeSyntax:function(r,u){return r.replace(t,function(){return n(arguments[4],arguments[1],arguments[2],u)}).replace(i,function(){return n(arguments[1],"<!-- ko -->","#comment",u)})},applyMemoizedBindingsToNextSibling:function(n,t){return h.memoization.memoize(function(i,r){var u=i.nextSibling;u&&u.nodeName.toLowerCase()===t&&h.applyBindingAccessorsToNode(u,n,r)})}}}();h.exportSymbol("__tr_ambtns",h.templateRewriting.applyMemoizedBindingsToNextSibling),function(){function o(n){return h.utils.domData.get(n,i)||{}}function s(n,t){h.utils.domData.set(n,i,t)}var n,i;h.templateSources={};var r=1,u=2,f=3,e=4;h.templateSources.domElement=function(n){if(this.domElement=n,n){var t=h.utils.tagNameLower(n);this.templateType=t==="script"?r:t==="textarea"?u:t=="template"&&n.content&&n.content.nodeType===11?f:e}};h.templateSources.domElement.prototype.text=function(){var n=this.templateType===r?"text":this.templateType===u?"value":"innerHTML",t;if(arguments.length==0)return this.domElement[n];t=arguments[0];n==="innerHTML"?h.utils.setHtml(this.domElement,t):this.domElement[n]=t};n=h.utils.domData.nextKey()+"_";h.templateSources.domElement.prototype.data=function(t){if(arguments.length===1)return h.utils.domData.get(this.domElement,n+t);h.utils.domData.set(this.domElement,n+t,arguments[1])};i=h.utils.domData.nextKey();h.templateSources.domElement.prototype.nodes=function(){var n=this.domElement,i,r,u;if(arguments.length==0)return i=o(n),r=i.containerData,r||(this.templateType===f?n.content:this.templateType===e?n:t);u=arguments[0];s(n,{containerData:u})};h.templateSources.anonymousTemplate=function(n){this.domElement=n};h.templateSources.anonymousTemplate.prototype=new h.templateSources.domElement;h.templateSources.anonymousTemplate.prototype.constructor=h.templateSources.anonymousTemplate;h.templateSources.anonymousTemplate.prototype.text=function(){var n,i;if(arguments.length==0)return n=o(this.domElement),n.textData===t&&n.containerData&&(n.textData=n.containerData.innerHTML),n.textData;i=arguments[0];s(this.domElement,{textData:i})};h.exportSymbol("templateSources",h.templateSources);h.exportSymbol("templateSources.domElement",h.templateSources.domElement);h.exportSymbol("templateSources.anonymousTemplate",h.templateSources.anonymousTemplate)}(),function(){function i(n,t,i){for(var u,r=n,f=h.virtualElements.nextSibling(t);r&&(u=r)!==f;)r=h.virtualElements.nextSibling(u),i(u,r)}function f(n,t){if(n.length){var r=n[0],u=n[n.length-1],f=r.parentNode,e=h.bindingProvider.instance,o=e.preprocessNode;if(o){if(i(r,u,function(n,t){var f=n.previousSibling,i=o.call(e,n);i&&(n===r&&(r=i[0]||t),n===u&&(u=i[i.length-1]||f))}),n.length=0,!r)return;r===u?n.push(r):(n.push(r,u),h.utils.fixUpContinuousNodeArray(n,f))}i(r,u,function(n){(n.nodeType===1||n.nodeType===8)&&h.applyBindings(t,n)});i(r,u,function(n){(n.nodeType===1||n.nodeType===8)&&h.memoization.unmemoizeDomNodeAndDescendants(n,[t])});h.utils.fixUpContinuousNodeArray(n,f)}}function r(n){return n.nodeType?n:n.length>0?n[0]:null}function e(t,i,u,e,o){var s,c;o=o||{};var v=t&&r(t),l=(v||u||{}).ownerDocument,a=o.templateEngine||n;if(h.templateRewriting.ensureTemplateIsRewritten(u,a,l),s=a.renderTemplate(u,e,o,l),typeof s.length!="number"||s.length>0&&typeof s[0].nodeType!="number")throw new Error("Template engine must return an array of DOM nodes");c=!1;switch(i){case"replaceChildren":h.virtualElements.setDomNodeChildren(t,s);c=!0;break;case"replaceNode":h.utils.replaceDomNodes(t,s);c=!0;break;case"ignoreTargetNode":break;default:throw new Error("Unknown renderMode: "+i);}return c&&(f(s,e),o.afterRender&&h.dependencyDetection.ignore(o.afterRender,null,[s,e.$data])),s}function o(n,t,i){return h.isObservable(n)?n():typeof n=="function"?n(t,i):n}function s(n,i){var r=h.utils.domData.get(n,u);r&&typeof r.dispose=="function"&&r.dispose();h.utils.domData.set(n,u,i&&i.isActive()?i:t)}var n,u;h.setTemplateEngine=function(i){if(i!=t&&!(i instanceof h.templateEngine))throw new Error("templateEngine must inherit from ko.templateEngine");n=i};h.renderTemplate=function(i,u,f,s,c){if(f=f||{},(f.templateEngine||n)==t)throw new Error("Set a template engine before calling renderTemplate");if(c=c||"replaceChildren",s){var l=r(s),a=function(){return!l||!h.utils.domNodeIsAttachedToDocument(l)},v=l&&c=="replaceNode"?l.parentNode:l;return h.dependentObservable(function(){var n=u&&u instanceof h.bindingContext?u:new h.bindingContext(h.utils.unwrapObservable(u)),t=o(i,n.$data,n),a=e(s,c,t,n,f);c=="replaceNode"&&(s=a,l=r(s))},null,{disposeWhen:a,disposeWhenNodeIsRemoved:v})}return h.memoization.memoize(function(n){h.renderTemplate(i,u,f,n,"replaceNode")})};h.renderTemplateForEach=function(n,i,r,u,s){var c,l=function(t,i){c=s.createChildContext(t,r.as,function(n){n.$index=i});var u=o(n,t,c);return e(null,"ignoreTargetNode",u,c,r)},a=function(n,t){f(t,c);r.afterRender&&r.afterRender(t,n);c=null};return h.dependentObservable(function(){var n=h.utils.unwrapObservable(i)||[],f;typeof n.length=="undefined"&&(n=[n]);f=h.utils.arrayFilter(n,function(n){return r.includeDestroyed||n===t||n===null||!h.utils.unwrapObservable(n._destroy)});h.dependencyDetection.ignore(h.utils.setDomNodeChildrenFromArrayMapping,null,[u,f,l,r,a])},null,{disposeWhenNodeIsRemoved:u})};u=h.utils.domData.nextKey();h.bindingHandlers.template={init:function(n,t){var i=h.utils.unwrapObservable(t()),u,f,r;if(typeof i=="string"||i.name)h.virtualElements.emptyNode(n);else if("nodes"in i){if(u=i.nodes||[],h.isObservable(u))throw new Error('The "nodes" option must be a plain, non-observable array.');r=h.utils.moveCleanedNodesToContainerElement(u);new h.templateSources.anonymousTemplate(n).nodes(r)}else f=h.virtualElements.childNodes(n),r=h.utils.moveCleanedNodesToContainerElement(f),new h.templateSources.anonymousTemplate(n).nodes(r);return{controlsDescendantBindings:!0}},update:function(n,t,i,r,u){var l=t(),a,f=h.utils.unwrapObservable(l),e=!0,c=null,o,v,y;typeof f=="string"?(o=l,f={}):(o=f.name,"if"in f&&(e=h.utils.unwrapObservable(f["if"])),e&&"ifnot"in f&&(e=!h.utils.unwrapObservable(f.ifnot)),a=h.utils.unwrapObservable(f.data));"foreach"in f?(v=e&&f.foreach||[],c=h.renderTemplateForEach(o||n,v,f,n,u)):e?(y="data"in f?u.createChildContext(a,f.as):u,c=h.renderTemplate(o||n,y,f,n)):h.virtualElements.emptyNode(n);s(n,c)}};h.expressionRewriting.bindingRewriteValidators.template=function(n){var t=h.expressionRewriting.parseObjectLiteral(n);return t.length==1&&t[0].unknown?null:h.expressionRewriting.keyValueArrayContainsKey(t,"name")?null:"This template engine does not support anonymous templates nested within its templates"};h.virtualElements.allowedBindings.template=!0}();h.exportSymbol("setTemplateEngine",h.setTemplateEngine);h.exportSymbol("renderTemplate",h.renderTemplate);h.utils.findMovesInArrayComparison=function(n,t,i){if(n.length&&t.length)for(var o,r,f,e,u=o=0;(!i||u<i)&&(f=n[o]);++o){for(r=0;e=t[r];++r)if(f.value===e.value){f.moved=e.index;e.moved=f.index;t.splice(r,1);u=r=0;break}u+=r}};h.utils.compareArrays=function(){function r(r,u,f){return f=typeof f=="boolean"?{dontLimitMoves:f}:f||{},r=r||[],u=u||[],r.length<u.length?i(r,u,n,t,f):i(u,r,t,n,f)}function i(n,t,i,r,u){for(var p=Math.min,it=Math.max,l=[],c=n.length,f,a=t.length,rt=a-c||1,w=c+a+1,o,v,b,k,d,g,e=0;e<=c;e++)for(v=o,l.push(o=[]),b=p(a,e+rt),k=it(0,e-1),f=k;f<=b;f++)f?e?n[e-1]===t[f-1]?o[f]=v[f-1]:(d=v[f]||w,g=o[f-1]||w,o[f]=p(d,g)+1):o[f]=f+1:o[f]=e+1;var s=[],y,nt=[],tt=[];for(e=c,f=a;e||f;)y=l[e][f]-1,f&&y===l[e][f-1]?nt.push(s[s.length]={status:i,value:t[--f],index:f}):e&&y===l[e-1][f]?tt.push(s[s.length]={status:r,value:n[--e],index:e}):(--f,--e,u.sparse||s.push({status:"retained",value:t[f]}));return h.utils.findMovesInArrayComparison(tt,nt,!u.dontLimitMoves&&c*10),s.reverse()}var n="added",t="deleted";return r}();h.exportSymbol("utils.compareArrays",h.utils.compareArrays),function(){function r(n,i,r,u,f){var e=[],o=h.dependentObservable(function(){var t=i(r,f,h.utils.fixUpContinuousNodeArray(e,n))||[];e.length>0&&(h.utils.replaceDomNodes(e,t),u&&h.dependencyDetection.ignore(u,null,[r,t,f]));e.length=0;h.utils.arrayPushAll(e,t)},null,{disposeWhenNodeIsRemoved:n,disposeWhen:function(){return!h.utils.anyDomNodeIsAttachedToDocument(e)}});return{mappedNodes:e,dependentObservable:o.isActive()?o:t}}var n=h.utils.domData.nextKey(),i=h.utils.domData.nextKey();h.utils.setDomNodeChildrenFromArrayMapping=function(u,f,e,o,s){function et(n,t){c=d[t];nt!==t&&(it[n]=c);c.indexObservable(nt++);h.utils.fixUpContinuousNodeArray(c.mappedNodes,u);y.push(c);p.push(c)}function w(n,t){if(n)for(var i=0,r=t.length;i<r;i++)t[i]&&h.utils.arrayForEach(t[i].mappedNodes,function(r){n(r,i,t[i].arrayEntry)})}var b,k,l,rt,ot,v,ut;f=f||[];o=o||{};var st=h.utils.domData.get(u,n)===t,d=h.utils.domData.get(u,n)||[],ht=h.utils.arrayMap(d,function(n){return n.arrayEntry}),ct=h.utils.compareArrays(ht,f,o.dontLimitMoves),y=[],g=0,nt=0,tt=[],p=[],a=[],it=[],ft=[],c;for(l=0;b=ct[l];l++){k=b.moved;switch(b.status){case"deleted":k===t&&(c=d[g],c.dependentObservable&&(c.dependentObservable.dispose(),c.dependentObservable=t),h.utils.fixUpContinuousNodeArray(c.mappedNodes,u).length&&(o.beforeRemove&&(y.push(c),p.push(c),c.arrayEntry===i?c=null:a[l]=c),c&&tt.push.apply(tt,c.mappedNodes)));g++;break;case"retained":et(l,g++);break;case"added":k!==t?et(l,k):(c={arrayEntry:b.value,indexObservable:h.observable(nt++)},y.push(c),p.push(c),st||(ft[l]=c))}}for(h.utils.domData.set(u,n,y),w(o.beforeMove,it),h.utils.arrayForEach(tt,o.beforeRemove?h.cleanNode:h.removeNode),l=0,rt=h.virtualElements.firstChild(u);c=p[l];l++){for(c.mappedNodes||h.utils.extend(c,r(u,e,c.arrayEntry,s,c.indexObservable)),ut=0;v=c.mappedNodes[ut];rt=v.nextSibling,ot=v,ut++)v!==rt&&h.virtualElements.insertAfter(u,v,ot);!c.initialized&&s&&(s(c.arrayEntry,c.mappedNodes,c.indexObservable),c.initialized=!0)}for(w(o.beforeRemove,a),l=0;l<a.length;++l)a[l]&&(a[l].arrayEntry=i);w(o.afterMove,it);w(o.afterAdd,ft)}}();h.exportSymbol("utils.setDomNodeChildrenFromArrayMapping",h.utils.setDomNodeChildrenFromArrayMapping);h.nativeTemplateEngine=function(){this.allowTemplateRewriting=!1};h.nativeTemplateEngine.prototype=new h.templateEngine;h.nativeTemplateEngine.prototype.constructor=h.nativeTemplateEngine;h.nativeTemplateEngine.prototype.renderTemplateSource=function(n,t,i,r){var e=!(h.utils.ieVersion<9),o=e?n.nodes:null,u=o?n.nodes():null,f;return u?h.utils.makeArray(u.cloneNode(!0).childNodes):(f=n.text(),h.utils.parseHtmlFragment(f,r))};h.nativeTemplateEngine.instance=new h.nativeTemplateEngine;h.setTemplateEngine(h.nativeTemplateEngine.instance);h.exportSymbol("nativeTemplateEngine",h.nativeTemplateEngine),function(){h.jqueryTmplTemplateEngine=function(){function t(){if(n<2)throw new Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");}function u(n,t,i){return r.tmpl(n,t,i)}var n=this.jQueryTmplVersion=function(){if(!r||!r.tmpl)return 0;try{if(r.tmpl.tag.tmpl.open.toString().indexOf("__")>=0)return 2}catch(n){}return 1}();this.renderTemplateSource=function(n,f,e,o){var s,h;o=o||i;e=e||{};t();s=n.data("precompiled");s||(h=n.text()||"",h="{{ko_with $item.koBindingContext}}"+h+"{{/ko_with}}",s=r.template(null,h),n.data("precompiled",s));var l=[f.$data],a=r.extend({koBindingContext:f},e.templateOptions),c=u(s,l,a);return c.appendTo(o.createElement("div")),r.fragments={},c};this.createJavaScriptEvaluatorBlock=function(n){return"{{ko_code ((function() { return "+n+" })()) }}"};this.addTemplate=function(n,t){i.write("<script type='text/html' id='"+n+"'>"+t+"<\/script>")};n>0&&(r.tmpl.tag.ko_code={open:"__.push($1 || '');"},r.tmpl.tag.ko_with={open:"with($1) {",close:"} "})};h.jqueryTmplTemplateEngine.prototype=new h.templateEngine;h.jqueryTmplTemplateEngine.prototype.constructor=h.jqueryTmplTemplateEngine;var n=new h.jqueryTmplTemplateEngine;n.jQueryTmplVersion>0&&h.setTemplateEngine(n);h.exportSymbol("jqueryTmplTemplateEngine",h.jqueryTmplTemplateEngine)}()})})()})();HC.namespace("HC.SR_15633"),function(n,t){function e(r){var u=t.isWebBrowserTypeInternetExplorer()?s:o;i=r||{};n.addResultsUpdatedSubscriber(u);n.addResultsUpdatedSubscriber(c)}function o(){var t=n.getResultsData();t.data.forEach(function(n){var r=u[n.id],t=i.resultsHolder.find('[data-hotelid="'+n.id+'"] [data-sri-gallery]'),e;r?t.replaceWith(r):(e=$.extend({},f),new HC.SlideGallery(t,n.images,e),u[n.id]=t)})}function s(){var t=n.getResultsData();t.data.forEach(function(n){var t=$.extend({},f,{position:r[n.id]||0}),u=i.resultsHolder.find('[data-hotelid="'+n.id+'"] [data-sri-gallery]'),e=new HC.SlideGallery(u,n.images,t);e.addPositionChangeSubscriber(function(t){r[n.id]=t})})}function h(n,t){var i=$(this);return i.stop().animate({rotation:n},{duration:t,step:function(n){i.css({display:"inline-block",transform:"rotate("+n+"deg)","-webkit-transform":"rotate("+n+"deg)","-ms-transform":"rotate("+n+"deg)"})}}),i}function c(){$("[data-secretdeals]").on("mouseenter",function(){var n=$(this).find("[data-lockedprice]");n.rotate=h;n.rotate(-25,250);setTimeout(function(){n.rotate(25,250)},250);setTimeout(function(){n.rotate(-25,250)},500);setTimeout(function(){n.rotate(25,250)},750);setTimeout(function(){n.rotate(0,175)},1e3)})}var i,r={},u={},f={liClass:"hc-searchresultitem__galleryitem",onlyShowFirst:!0,useDisabledNavButtons:!0,disabledNavButtonsClass:"hc-searchresultitem__gallerybutton--disabled"};$.extend(HC.SR_15633,{init:e})}(HC.SR,HC.UserContext);