(function(n){function s(t){return n(t).filter(function(){return n(this).is(":appeared")})}function e(){var n,e,t,u;for(f=!1,n=0,e=r.length;n<e;n++)t=s(r[n]),t.trigger("appear",[t]),i[n]&&(u=i[n].not(t),u.trigger("disappear",[u])),i[n]=t}function h(n){r.push(n);i.push()}var r=[],u=!1,f=!1,o={interval:250,force_process:!1},t=n(window),i=[];n.expr[":"].appeared=function(i){var r=n(i);if(!r.is(":visible"))return!1;var u=t.scrollLeft(),f=t.scrollTop(),e=r.offset(),o=e.left,s=e.top;return s+r.height()>=f&&s-(r.data("appear-top-offset")||0)<=f+t.height()&&o+r.width()>=u&&o-(r.data("appear-left-offset")||0)<=u+t.width()?!0:!1};n.fn.extend({appear:function(t){var i=n.extend({},o,t||{}),s=this.selector||this,r;return u||(r=function(){f||(f=!0,setTimeout(e,i.interval))},n(window).scroll(r).resize(r),u=!0),i.force_process&&setTimeout(e,i.interval),h(s),n(s)}});n.extend({force_appear:function(){return u?(e(),!0):!1}})})(function(){return typeof module!="undefined"?require("jquery"):jQuery}());
/*!
* Stickyfill – `position: sticky` polyfill
* v. 2.0.2 | https://github.com/wilddeer/stickyfill
* MIT License
*/
!function(n,t){"use strict";function c(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function");}function u(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i])}function f(n){return parseFloat(n)||0}function h(n){for(var t=0;n;)t+=n.offsetTop,n=n.offsetParent;return t}function l(){function s(){n.pageXOffset!=r.left?(r.top=n.pageYOffset,r.left=n.pageXOffset,e.refreshAll()):n.pageYOffset!=r.top&&(r.top=n.pageYOffset,r.left=n.pageXOffset,i.forEach(function(n){return n._recalcPosition()}))}function o(){h=setInterval(function(){i.forEach(function(n){return n._fastCheck()})},500)}function c(){clearInterval(h)}s();n.addEventListener("scroll",s);n.addEventListener("resize",e.refreshAll);n.addEventListener("orientationchange",e.refreshAll);var h=void 0,u=void 0,f=void 0;"hidden"in t?(u="hidden",f="visibilitychange"):"webkitHidden"in t&&(u="webkitHidden",f="webkitvisibilitychange");f?(t[u]||o(),t.addEventListener(f,function(){t[u]?c():o()})):o()}var a=function(){function n(n,t){for(var i,r=0;r<t.length;r++)i=t[r],i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(n,i.key,i)}return function(t,i,r){return i&&n(t.prototype,i),r&&n(t,r),t}}(),o=!1;n.getComputedStyle?!function(){var n=t.createElement("div");["","-webkit-","-moz-","-ms-"].some(function(t){try{n.style.position=t+"sticky"}catch(n){}return""!=n.style.position})&&(o=!0)}():o=!0;var v="undefined"!=typeof ShadowRoot,r={top:null,left:null},i=[],s=function(){function e(n){if(c(this,e),!(n instanceof HTMLElement))throw new Error("First argument must be HTMLElement");if(i.some(function(t){return t._node===n}))throw new Error("Stickyfill is already applied to this node");this._node=n;this._stickyMode=null;this._active=!1;i.push(this);this.refresh()}return a(e,[{key:"refresh",value:function(){var i,r,p,w,c;if(!o&&!this._removed&&(this._active&&this._deactivate(),i=this._node,r=getComputedStyle(i),!isNaN(parseFloat(r.top))&&"table-cell"!=r.display&&"none"!=r.display)){this._active=!0;var a=i.parentNode,s=v&&a instanceof ShadowRoot?a.host:a,e=i.getBoundingClientRect(),y=s.getBoundingClientRect(),l=getComputedStyle(s);this._parent={node:s,styles:{position:s.style.position},offsetHeight:s.offsetHeight};this._offsetToWindow={left:e.left,right:t.documentElement.clientWidth-e.right};this._offsetToParent={top:e.top-y.top-f(l.borderTopWidth),left:e.left-y.left-f(l.borderLeftWidth),right:-e.right+y.right-f(l.borderRightWidth)};this._styles={position:i.style.position,top:i.style.top,bottom:i.style.bottom,left:i.style.left,right:i.style.right,width:i.style.width,marginTop:i.style.marginTop,marginLeft:i.style.marginLeft,marginRight:i.style.marginRight};p=f(r.top);this._limits={start:e.top+n.pageYOffset-p,end:y.top+n.pageYOffset+s.offsetHeight-f(l.borderBottomWidth)-i.offsetHeight-p-f(r.marginBottom)};w=l.position;"absolute"!=w&&"relative"!=w&&(s.style.position="relative");c=this._clone={};c.node=t.createElement("div");u(c.node.style,{width:e.right-e.left+"px",height:e.bottom-e.top+"px",marginTop:r.marginTop,marginBottom:r.marginBottom,marginLeft:r.marginLeft,marginRight:r.marginRight,cssFloat:r.cssFloat,padding:0,border:0,borderSpacing:0,fontSize:"1em",position:"static"});a.insertBefore(c.node,i);c.docOffsetTop=h(c.node);this._recalcPosition()}}},{key:"_recalcPosition",value:function(){if(this._active&&!this._removed){var n=r.top<=this._limits.start?"start":r.top>=this._limits.end?"end":"middle";if(this._stickyMode!=n){switch(n){case"start":u(this._node.style,{position:"absolute",left:this._offsetToParent.left+"px",right:this._offsetToParent.right+"px",top:this._offsetToParent.top+"px",bottom:"auto",width:"auto",marginLeft:0,marginRight:0,marginTop:0});break;case"middle":u(this._node.style,{position:"fixed",left:this._offsetToWindow.left+"px",right:this._offsetToWindow.right+"px",top:this._styles.top,bottom:"auto",width:"auto",marginLeft:0,marginRight:0,marginTop:0});break;case"end":u(this._node.style,{position:"absolute",left:this._offsetToParent.left+"px",right:this._offsetToParent.right+"px",top:"auto",bottom:0,width:"auto",marginLeft:0,marginRight:0})}this._stickyMode=n}}}},{key:"_fastCheck",value:function(){this._active&&!this._removed&&(Math.abs(h(this._clone.node)-this._clone.docOffsetTop)>1||Math.abs(this._parent.node.offsetHeight-this._parent.offsetHeight)>1)&&this.refresh()}},{key:"_deactivate",value:function(){var n=this;this._active&&!this._removed&&(this._clone.node.parentNode.removeChild(this._clone.node),delete this._clone,u(this._node.style,this._styles),delete this._styles,i.some(function(t){return t!==n&&t._parent&&t._parent.node===n._parent.node})||u(this._parent.node.style,this._parent.styles),delete this._parent,this._stickyMode=null,this._active=!1,delete this._offsetToWindow,delete this._offsetToParent,delete this._limits)}},{key:"remove",value:function(){var n=this;this._deactivate();i.some(function(t,r){if(t._node===n._node)return i.splice(r,1),!0});this._removed=!0}}]),e}(),e={stickies:i,Sticky:s,addOne:function(n){if(!(n instanceof HTMLElement)){if(!n.length||!n[0])return;n=n[0]}for(var t=0;t<i.length;t++)if(i[t]._node===n)return i[t];return new s(n)},add:function(n){if(n instanceof HTMLElement&&(n=[n]),n.length){for(var t=[],u=function(r){var u=n[r];return u instanceof HTMLElement?i.some(function(n){if(n._node===u)return t.push(n),!0})?"continue":void t.push(new s(u)):(t.push(void 0),"continue")},r=0;r<n.length;r++)u(r);return t}},refreshAll:function(){i.forEach(function(n){return n.refresh()})},removeOne:function(n){if(!(n instanceof HTMLElement)){if(!n.length||!n[0])return;n=n[0]}i.some(function(t){if(t._node===n)return t.remove(),!0})},remove:function(n){if(n instanceof HTMLElement&&(n=[n]),n.length)for(var r=function(t){var r=n[t];i.some(function(n){if(n._node===r)return n.remove(),!0})},t=0;t<n.length;t++)r(t)},removeAll:function(){for(;i.length;)i[0].remove()}};o||l();"undefined"!=typeof module&&module.exports?module.exports=e:n.Stickyfill=e}(window,document),function(n,t,i){function c(t){n.removeHotel(t,function(){r.isInWishlist=!1;u();f()})}function l(t){n.addHotel(t,function(){r.isInWishlist=!0;u();f(!1)})}function e(){var n=$(r.wishlistContainer);a(n)}function o(){var n=$(r.wishlistContainer);u();s(n)}function u(){var n=$(r.wishlistContainer);r.isInWishlist===!0?n.find("a").addClass("hc-savebutton__link--selected"):n.find("a").removeClass("hc-savebutton__link--selected")}function f(n){var t,i=$(r.wishlistContainer);t=r.isInWishlist===!0?n?r.translations.RemoveFromWishlist:r.translations.AddedToWishlist:r.translations.AddToWishlist;i.find("a").html(t+'<span class="hc-savebutton__icon"><\/span>')}function s(){f(!1)}function a(n){f(n,!0)}function v(n){var t;h(n);t=$(r.wishlistContainer);s();u();t.hover(function(){e(t)},function(){o(t)}).click(function(){r.isInWishlist===!0?c(r.hotelId):l(r.hotelId)}).focusin(function(){e(t)}).focusout(function(){o(t)})}function h(n){r=$.extend({},r,n)}function y(n){var i="";i=t.setQStringName(i,"fileName",[n]);i=t.setQStringName(i,"languageCode",[HC.gLanguageCode]);location.href="/Hotel?"+i}function p(n,t){n.href=t}function w(n){var t="/Hotel?";return t+="fileName="+n,r.returnPath&&(t+="&returnPath="+encodeURIComponent(r.returnPath)),t}function b(n){var t;return t="/Hotel/Search?"+i.GenerateQueryString({excludeFilename:!0}),t+="&fileName="+n,r.returnPath&&(t+="&returnPath="+encodeURIComponent(r.returnPath)),t}function k(){return r.isSearchedHotelPage}function d(n,t){var i="<a href='/ProviderRedirect.ashx?key="+n+"'";i+=" target='_blank' rel='nofollow'>"+t+"<\/a>";document.write(i)}function g(n){document.write(n)}function nt(){return r.isSearchedHotelPage}function tt(){var n=$("html, body"),t=$("#hc_htl_reviews");n.animate({scrollTop:t.offset().top-n.offset().top+n.scrollTop()})}var r={isSearchedHotelPage:!1,returnPath:null};HC.Hotel={setOptions:h,generateHotelLink:w,generateSearchedHotelLink:b,isSearchedHotelPage:k,getHotelUrl:d,formatHotelDescription:g,intializeWishlistState:v,gotoHotel:y,redirectClicked:p,isDatedPage:nt,showReviews:tt}}(HC.Wishlist,HC.QS,HC.Common,HC.GoogleUA);HC.namespace("HC.Hotel"),function(n){function t(t,i){return n.ajaxHC({url:"/Hotel/ReviewerSentiments",data:{reviewerTypeID:t,hotelID:i},noPayload:!0})}n.extend(HC.Hotel,{getReviewerSentiments:t})}(jQuery);HC.namespace("HC.Hotel.UI"),function(n,t,i,r,u){function c(n){var t=o+"|"+n;i.trackEvent("Exp|Hotel Page Reviews",t)}function s(n,t){t.find("[data-reviewer-type]").hide();t.find('[data-reviewer-type="'+n+'"]').show()}function l(t){e=t;s(t.selectedReviewerTypeId,t.topCommentsContainer);n(t.reviewerTypesContainer).focus(function(){o=n(this).val()});n(t.reviewerTypesContainer).change(function(){var i=n(this).find("option:selected").val();s(i,t.topCommentsContainer);c(i);o=i});f=t.customerReviewsContainer;t.isMobile||h()}function h(){var t=f.find("[data-culture]").data("culture");return n.ajaxHC({url:"/Hotel/Reviews",data:{hotelID:e.hotelId,languageCode:r.languageCode,culture:t,cdnKey:u.getCdnKey()},cache:!0}).done(a)}function a(n){f.html(n.sections.content);y()}function v(){var i=f,t=i.find("[data-verifiedstaytooltip]"),r=i.find("[data-verifiedstayicon]"),u=i.find("[data-verifiedstayiconhelp]"),o=i.find("[data-verifiedstayclose]");if(t.close=function(){this.stop().fadeOut("fast")},t.open=function(){this.stop().fadeIn("fast")},t&&(u||r)&&o){if(e.tooltipEvent==="hover")u&&u.hcToolTip({type:"popover",activation:"hover",position:{elementBeingPositioned:"right top",targetElement:"right bottom"},arrowPosition:{elementBeingPositioned:"center bottom",targetElement:"center bottom",collision:"flip flip"},content:t,delay:50,fadeIn:50,positionOffset:{top:8,left:10},arrowPositionOffset:{top:11,left:0},detachToolTip:!1,collision:"flipfit flipfit",autoRtl:!0}),r&&r.hcToolTip({type:"popover",activation:"hover",position:{elementBeingPositioned:"right top",targetElement:"right bottom"},arrowPosition:{elementBeingPositioned:"center bottom",targetElement:"center bottom",collision:"flip flip"},content:t,delay:50,fadeIn:50,positionOffset:{top:8,left:0},arrowPositionOffset:{top:11,left:0},detachToolTip:!1,collision:"flipfit flipfit"});else r.on("click",function(n){var i,r;n.stopPropagation();t.is(":visible")?t.close():(i={visibility:"hidden",display:"block"},t.css(i),t.position({of:n.target,my:"left-10 top+10",at:"left bottom",collision:"flipfit flipfit"}),r={visibility:"visible",display:"block"},t.css(r),t.open())});o.on("click",function(){t.close()});n("body").on("click",function(){t.close()})}}function y(){var n=f.find("[data-comments]");k(f);f.on("click","[data-commentbutton]",function(){b(f,this)});f.on("click","[data-hidereviews]",function(){p(f)});return v(),n.each(function(){w(this,f)})}function p(n){var t=n.find("[data-review-isverified=False]");t.toggle()}function w(t){var i=n(t),r=i.parent().find("[data-morebutton]"),u=i.attr("class").split(" ")[0]+"--shrunk";i.height()>e.height&&(r.show(),i.addClass(u))}function b(t,i){var r=n(i).closest("[data-review]").find("[data-comments]"),u=r.attr("class").split(" ")[0]+"--shrunk";return r.toggleClass(u),n(i).siblings().first().toggle(),n(i).toggle(),!1}function k(n){var t=n.find("[data-review]:first");t.attr("data-appear-top-offset",t.height()*-1);t.appear();t.on("appear",function(){HC.Common.logExperimentEvent("reviewsSeen");t.unbind("appear")});f.on("click","[data-morebutton]",function(){HC.GoogleUA.trackEvent("userReviews","moreReviews")});f.on("click","[data-hidereviews]",function(){var n=this.checked?"verified":"unverified";HC.GoogleUA.trackEvent("ReviewCheck",n)})}function d(){if(e.isLoaded)return!1;e.isLoaded=!0;h()}function g(){var t=n("html, body"),i=n("#hc_evt_reviewsContainer");if(t.animate({scrollTop:i.offset().top-t.offset().top+t.scrollTop()}),i.hasClass("hc_selected"))return!1;n("[data-track=Accordian-Reviews]").focus().click()}var o,f,e;n.extend(HC.Hotel.UI,{initCustomerReviews:l,loadMobileReviews:d,showMobileReviews:g})}(jQuery,HC.Hotel,HC.GoogleUA,HC.UserContext,HC.Common);HC.namespace("HC.Hotel.GoogleUA"),function(n,t,i){function r(){i.sendHotelProductDetail(t.isDatedPage())}n(r)}(jQuery,HC.Hotel,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.HotelLists=function(n,t,i,r){function y(t){var i=n(this).data(),r=i.selected?"RemoveHotel":"AddHotel",f={"hc_f.hotelID":s,"hc_f.listID":i.listId};t.preventDefault();n.post("/HotelList/"+r,f).then(a).then(function(){HC.publish("HC_HotelLists_"+r,f);i.selected?u.find("[data-button-text]").text(o===0?e.Save:e.Saved):u.find("[data-button-text]").text(e.Remove);o===0?u.find("a").removeClass("hc-savebutton__link--selected"):u.find("a").addClass("hc-savebutton__link--selected")})}function p(t){var i=n(t),r=i.data("success"),u=i.data("list-id");r&&(c().then(function(){f.find('[data-list-id="'+u+'"]').flash()}),f.hcToolTip("close","hotelListCreate"))}function a(t){var i=n(t);o=i.data("item-count");f.data("loaded")?f.find("ul").html(i.find("ul").html()):(f.html(t),f.data("loaded",!0));HC.publish("HC.HotelLists.Refresh",s,o)}function w(n){HC.subscribe("HC.HotelLists.Refresh",n)}function c(){return n.get("/HotelList/Lists",{hotelID:s}).then(a)}function b(){var t=n.extend({},v,{content:f},l);t.onShow=function(){u.addClass("hc_open")};t.onClose=function(){u.removeClass("hc_open")};u.hcToolTip(t,"userHotelLists")}function k(){var t=function(i){i.preventDefault();f.on("click","[data-list-id]",y);f.on("mouseenter mouseleave","li.hc_selected a",function(t){t.type==="mouseenter"?(u.find("[data-button-text]").text(e.Remove),n(this).find("span.hc_t_tick_v2").removeClass("hc_t_tick_v2").addClass("hc_t_remove_v2")):(u.find("[data-button-text]").text(o===0?e.Save:e.Saved),n(this).find("span.hc_t_remove_v2").removeClass("hc_t_remove_v2").addClass("hc_t_tick_v2"))});c().then(function(){b();u.hcToolTip("show","userHotelLists")});HC.subscribe("HC.HotelList.Summary.Refresh",c);u.unbind("click",t)};u.bind("click",t)}function d(){r.setupAjaxSubmit(h,{successCallback:p,replaceForm:!1});i.initCreateListModal(f,h)}function g(n){s=n.hotelId;u=n.buttonContainer;f=n.hotelListContainer;h=n.createListContainer;e=n.translations;l=n.hotelListsTooltipOptions;d();k()}var s,u,f,h,e,o=0,v={type:"popover",activation:"click",delay:50,fadeIn:50,stopAutoCloseOnSelf:!0,arrowPosition:{elementBeingPositioned:"left bottom",targetElement:"left bottom"},position:{elementBeingPositioned:"left top",targetElement:"left bottom"},positionOffset:{top:5,left:0},arrowPositionOffset:{left:20},autoRtl:!0},l={};return{init:g,subscribeHotelListsRefresh:w}}(jQuery,HC.Common,HC.HotelListTooltips,HC.Ajax),function(n,t,i,r,u){function b(){var t,r;HC.Map.HotelRatesProxy.addBasicSearchCriteriaQueryProxy(function(){return t=i.GenerateQueryString({excludeDestination:!0})});HC.Map.HotelRatesProxy.addSearchCriteriaQueryProxy(function(){return t=i.GenerateQueryString()});HC.Map.setHotelSelectProxy(v);HC.Map.setCompareAllProxy(y);r=n.GetQSVal("mapState");r==="expanded"&&$(function(){p(!0)})}function k(n,t,i,u){return t?r.generateSearchedHotelLink(n):u==="photo"||u==="name"?(window.scrollTo(0,0),"javascript:void(0)"):s}function d(n,t,i){return t?r.generateHotelLink(n):(i==="photo"||i==="name"?window.scrollTo(0,0):u.bookNowButtonClicked(),"javascript:void(0)")}function v(n,t,i,u){return r.isSearchedHotelPage()?k(n,u.boundaryHotel,t,i):d(n,u.boundaryHotel,i)}function y(n){return n.currentHotel()?(o(),HC.RatesList.positionRatesTable("rates"),!1):!0}function p(){h?(l=window.pageYOffset,window.scrollTo(0,0),$("#hc_map_full").show(),w(),rt()):($("#hc_htl_map").show(),t.sectionFocus("map"));HC.Map.show(!0)}function w(){var t=null,i=$("#hc_map_full"),n=g();ft();i.removeClass("hc_hide").width(n.width).height(n.height).css({top:n.top+"px",left:n.left+"px"}).css("padding-bottom","5px");HC.Map.triggerMapResize();c||($(window).resize(function(){t!==null&&window.clearTimeout(t);t=window.setTimeout(function(){f&&w()},100)}),c=!0);f=!0;et()}function g(){var n=$("#hc_r_hd").height()||0,t=$(window).height()-30-n;return{height:t,width:$(window).width()-30,top:n+10,left:"10"}}function nt(n){s=n}function tt(){h=!0}function o(n){f&&!n&&window.scrollTo(0,l);it();$("#hc_map_main").removeClass("expanded");f=!1;HC.Map.setMapVisible(!1)}function it(){$("#hc_map_full").addClass("hc_hide")}function rt(){HC.Map.setCenter(e.lat,e.lng);HC.Map.openHotelInfoWindow(e.id)}function ut(n){e=n.data[0];HC.Map.setHotelJson(n)}function ft(){var n,t;a||($(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&&o(t))}),a=!0)}function et(){HC.publish("HC_SR_MAP_MapExpanded")}var s=null,h=!1,c=!1,f=!1,l=0,e=null,a=null;HC.Hotel.Map={showMap:p,setMainHotelRedirection:nt,hotelSelectProxy:v,compareAllProxy:y,setLiteboxExperiment:tt,contractMap:o,setHotelJson:ut};b()}(HC.QS,HC.Design,HC.Common,HC.Hotel,HC.SearchBox),function(n,t,i,r){function tt(){return e}function vt(n){var i=10,t=n.split(",");return t.length>1&&!isNaN(t[1])&&(i=parseInt(t[1])),{section:t[0],offset:i}}function it(t){var r,u,f,i,e;(u=n.GetQSVal("position")||t,u)&&(r=vt(u.toLowerCase()),f={rates:"hc_htl_pm_rates",reviews:"hc_htl_reviews"},i=f[r.section],i)&&$(function(){HC._.isFunction(i)?i():HC.PopoverManager.isPopoverActive()?HC.PopoverManager.refreshPopover():window.setTimeout(function(){e=$("#"+i);$("html, body").animate({scrollTop:e.offset().top-r.offset},500)},200)})}function yt(n,t){a=n;y=t||"/Hotel/SearchResults";it()}function pt(){$("#ratesSearchResultsHolder").attr("data-isComplete")!=="true"?et():(e=!0,ft());ut();ht(!0);tt()&&o.init();HC.RatesList.addResultsUpdatedSubscriber(function(){o.init();o.ratesListUpdated();ht(!1)});$("body").hasClass("hc_ab_17817")&&(v(ct),bt());$("body").hasClass("hc_ab_18105")&&wt()}function wt(){$("[data-destinatioinput]").on("click",function(){$("[data-hidewhenminimised]").slideDown()})}function bt(){$("[data-dealsrow]").on("click",function(){nt=!0;r.trackEvent("SearchedHotel | PriceMatrix","DealClicked",g)});rt()}function rt(){g++;nt||setTimeout(function(){rt()},1e3)}function ut(){var n=$("#ratesSearchResultsHolder");n.data("iscomplete")&&!n.data("hasresults")&&$("#hc_providerLogos").removeClass("hc_hide")}function ft(){var n=$("#ratesSearchResultsHolder"),u=n.attr("data-lowestRate"),t=$('[data-section="pricealertstatus"]'),f=n.attr("data-translations"),i,r;u||kt();HC.Map.updatePartialHotel({id:a,priceFormatted:n.attr("data-lowestRateFormatted"),price:parseInt(u,10)});HC.Hotel.Map.setMainHotelRedirection(n.attr("data-lowestRateRedirection"));f&&(r=jQuery.parseJSON(f),r&&HC.Translations.set(r));t.length>0&&(i=n.find('[data-section="pricealertresult"]'),i.length>0?i.detach().appendTo(t.empty()).show():t.hide());ui()}function kt(){var i=HC.QS.GetQSVal("returnPath"),r=HC.QS.GetQSVal("noRedirect"),n=HC.Common.fields&&HC.Common.fields.returnPath,t;!i&&n&&r!=="true"&&(t=n+"&hotelID="+a+"&showSoldOut=true",window.location.replace(t))}function et(n){var t=$("#ratesSearchResultsHolder");t.attr("data-isComplete")==="true"||f>l?(e=!0,ft(),f=0,window.setTimeout(function(){$("#hc_sr_progress").hide()},100),ut(),u!=null&&window.clearTimeout(u)):(u=window.setTimeout(function(){ot(n)},at),e=!1)}function ot(n){var t,i;n=n||{};n.queryOnly=!0;n.displayFiltering=!1;t=HC.Common.GenerateQueryString(n);t+="&fileName="+HC.Common.fields.fileName;typeof n.includeTaxesInTotal!="undefined"&&(t+="&includeTaxesInTotal="+(n.includeTaxesInTotal?"1":"0"));HC.Common.fields.priceAlertStatus&&(t+="&highlightAlertPrice=true&priceAlert="+HC.Common.fields.priceAlertStatus);n.returnPath&&(t+="&returnPath="+encodeURIComponent(n.returnPath));(k||(k=$("[data-newpricematrix]").length))&&(t+="&showNewPriceMatrix=true");(d||(d=$("body").hasClass("hc_ab_18105")))&&(t+="&showPriceAboveTheFold=true");i=y+"?"+t;i+="&r="+Math.random();f===l&&(i+="&FinalRequest=true");$.ajaxHC({url:i,mode:"sync",port:"searchresults",type:"get",dataType:"text"}).done(function(i){i&&(console.log(i.sections.normal),f++,$("#searchResultsHolder")[0].innerHTML=i.sections.normal[0].outerHTML,$("body").hasClass("hc_ab_18105")&&($("#searchResultsAboveTheFoldHolder")[0].innerHTML=i.sections.abovethefold[0].outerHTML),ti(i.sections.normal),ni($("#hc_htl_availability")),et(t,n))}).fail(function(){u!=null&&window.clearTimeout(u);/&errorreload=true/g.test(location.search)||window.location.replace(window.location.href+"&errorreload=true")})}function dt(){return $("#ratesSearchResultsHolder").attr("data-isComplete")=="true"||f>l}function gt(n){window.open("/ProviderRedirect.ashx?key="+n)}function ni(n){if(!(n.length<=0)){var r=$("#"+n.attr("data-searchBoxParent")),u=n.attr("data-searchBoxInstance"),t=$("#HC_DateSelection_"+n.attr("data-checkinContainerSuffix")),i=$("#HC_DateSelection_"+n.attr("data-checkoutContainerSuffix"));new HC.DateSelection.DateSelect(t);new HC.DateSelection.DateSelect(i);t=n.find('[data-section="checkin"]');i=n.find('[data-section="checkout"]');HC.DateSelection.Alternates.setupVersion1(t);HC.DateSelection.Alternates.setupVersion1(i);HC.RoomConfig_9493.isTestActive()&&HC.RoomConfig_9493.init($(".hc_evt_roomsGuests"),"standard");new HC.SearchBox.SearchBoxInstance(r,u,!1)}}function v(n){HC.subscribe("HC_RatesList_ResultsUpdated",n)}function ti(n){HC.publish("HC_RatesList_ResultsUpdated",$(n).data())}function ii(n){HC.unsubscribe("HC_RatesList_ResultsUpdated",n)}function ri(n,t){c(t)}function c(n){HC.subscribe("HC_RatesList_SearchComplete",n)}function ui(){HC.publish("HC_RatesList_SearchComplete",vi())}function fi(n){HC.unsubscribe("HC_RatesList_SearchComplete",n)}function ei(n,t,i){s=n;p=t;w=i;v(hi);c(ci);si();oi()}function oi(){function n(){$("#"+p).data("hasresults")?s.show():s.hide()}c(function(){n()})}function si(){b=window.setTimeout(function(){st()},7e3)}function hi(n){n.hasresults&&s.show()}function st(){$("#"+w).hide()}function ci(){clearTimeout(b);st()}function li(){o.buttonClicked()}function ht(n){n&&t.addPreferenceChangedCallback(ai);t.init($("#hc_htl_pm_rates_content"))}function ai(n){u!=null&&window.clearTimeout(u);e=!1;f=0;ot({includeTaxesInTotal:n.includeTaxesInTotal})}function vi(){var n=$("#ratesSearchResultsHolder");return n.attr("data-lowestRate")}function yi(){function f(){var t=$("[data-filtersinclusions]").data("filtersinclusions"),i=t.map(function(t,i){var u="Other",r;return i===0&&(u="FreeCancellation"),i===1&&(u="PayLater"),r={name:t,count:ko.computed(function(){return n.roomsToShow().filter(function(i){return n.roomsToShow()[i].inclusions.indexOf(t)>-1}).length},this),trackingKey:u},r.initialLength=null,r.visible=ko.computed(function(){return r.initialLength||(r.initialLength=r.count())>0},this),r.text=ko.computed(function(){return r.name+" ("+r.count()+")"}),r});n.inclusions(i)}function t(){return n.roomsToShow(n.rooms()),n.selectedInclusions().length>0&&n.roomsToShow(n.rooms().filter(function(t){for(var r=n.rooms()[t],i=0;i<n.selectedInclusions().length;i++)if(r.inclusions.indexOf(n.selectedInclusions()[i])===-1)return!1;return!0})),o(n.roomsToShow.slice()),n.inclusions.valueHasMutated(),!0}function e(n,i){return $(".hc-ratesmatrix").fadeTo(250,.5,function(){$(".hc-ratesmatrix").fadeTo(250,1)}),r.trackEvent("SearchedHotelPage | MatrixFilter",n.trackingKey,$(i.target)[0].checked?"On":"Off"),HC.Common.logExperimentEvent("17817-Filter_"+n.trackingKey),t(),!0}function o(t){n.showMoreButton(t.length>n.maximumToShow[n.maximumToShowIndex]);$("#newPriceMatrix [data-pricematrixroom]").hide();var i=t.splice(0,n.maximumToShow[n.maximumToShowIndex]);i.forEach(function(n){n.row.show()})}function u(){return $("#newPriceMatrix [data-pricematrixroom]").map(function(n,t){return{row:$(t),inclusions:JSON.parse($(t).attr("data-pricematrixroom"))}})}function s(){n.maximumToShowIndex<n.maximumToShow.length&&n.maximumToShowIndex++;r.trackEvent("SearchedHotelPage | PriceMatrix",n.maximumToShowIndex===1?"ShowMore":"ShowAll");HC.Common.logExperimentEvent("17817-Show_"+(n.maximumToShowIndex===1?"More":"All"));t()}function h(){return ko.computed(function(){var t=n.roomsToShow&&n.roomsToShow().length;return n.maximumToShowIndex===0&&t>=n.maximumToShow[1]?i.get("NewPriceMatrixShowMoreText"):i.get("NewPriceMatrixShowAllText").replace("[dealsCount]",t)})}function c(){n.rooms(u());n.setInclusions();n.applyFilters()}function l(){var t=n.inclusions();for(var i in t)if(t[i].count()>0)return!0;return!1}function a(){return n.rooms().length===n.roomsToShow().length?n.rooms().length:n.roomsToShow().length+"/"+n.rooms().length}var n=this;$.extend(n,{inclusions:ko.observableArray([]),selectedInclusions:ko.observableArray([]),roomsToShow:ko.observableArray([]),rooms:ko.observableArray(u()),showMoreButton:ko.observable(!0),setInclusions:f,applyFilters:t,filterSelected:e,showMore:s,maximumToShowIndex:0,maximumToShow:[10,20,Number.MAX_VALUE],updateMatrix:c});n.showMoreText=h();n.visible=ko.computed(l);n.showingNumber=ko.computed(a)}function ct(){setTimeout(function(){h||(h=new yi);ko.applyBindings(h,document.getElementById("newPriceMatrix"));h.updateMatrix();lt()},100)}function lt(){$("[data-secretdeals]").on("mouseenter",function(){var n=$(this).find("[data-lockedprice]");n.rotate=pi;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)})}function pi(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 wi(){$("html, body").animate({scrollTop:$("#PriceMatrix").offset().top},500)}var e=!1,f=0,at=1e3,l=30,u=null,a=null,y=null,s,p,w,b,o,k,d,h,g=0,nt=!1;(function(){function l(){n=$("#hc_htl_pm_rates_content").find("tr")}function h(){return u?n.length:i?f*2:f}function e(){var t=h();n&&n.filter(function(n){return n<=t}).removeClass("hc_hide")}function a(){var t=h();n&&n.filter(function(n){return n>t}).addClass("hc_hide")}function v(){return(t=$("#hc_ratesList_showMore").find(".hc_tbl_tr_showMore"),t.length===0)?!1:!0}function c(){t.hide()}function s(){!u&&n&&(i&&t.find("a").text($("#hc_ratesList_showAll").text()),n.filter(":not(.hc_hide)").last().after(t),t.show())}function y(){c();i=!0;e();n.length>f*2&&!u&&(t.data("operation","All"),s())}function p(){u=!0;c();e()}function w(){var n=t.data("operation");if(n==="More"&&!i){y();r.trackEvent("SearchedHotelPage | PriceMatrix","ShowMore");HC.Common.logExperimentEvent("17817-Show_More");return}r.trackEvent("SearchedHotelPage | PriceMatrix","ShowAll");HC.Common.logExperimentEvent("17817-Show_All");p()}function b(){e();s()}function k(){v()&&(l(),a(),s())}var t,f=10,i=!1,u=!1,n;o={buttonClicked:w,ratesListUpdated:b,init:k}})();HC.RatesList={init:yt,initialLoad:pt,setSearchComplete:ri,addSearchCompleteSubscriber:c,removeSearchCompleteCallback:fi,addResultsUpdatedSubscriber:v,unsubscribeFromResultsUpdated:ii,isSearchCompleted:tt,hasSearchingCompleted:dt,openHotelUrl:gt,initializeResultsSummary:ei,revealNextDeals:li,positionRatesTable:it,initPriceMatrixFilter:ct,setupSecretDealsAnimation:lt,scrollToPriceMatrix:wi}}(HC.QS,HC.PricePreferences,HC.Translations,HC.GoogleUA),function(){function u(i){var r=$(i).find("[data-bookbyphone-modalcontents]").wrap("<div/>").parent();n.html(r.html());$(t).find("[data-bookbyphone-button]").hcToolTip({type:"popover",stopAutoCloseOnSelf:!0,activation:"click",delay:50,fadeIn:50,closeOnResize:!1,content:$(n),detachToolTip:!1,position:{elementBeingPositioned:"center",targetElement:"center",useViewPortToPosition:!0},isModal:!0});n.find("[data-bookbyphone-modalcontents]").show()}function f(){return(i=$(h+" tr"),i.length>0)?!0:!1}function c(){return $(r).length>0?!0:!1}function e(t){if(f()){var r=n.find("[data-bookbyphone-rooms]");$(r).html(i.filter("[data-providercode="+t+"]").clone().removeClass("hc_hide"));$(r).show()}}function o(){$(t).find("[data-bookbyphone-button]").show()}function l(n){HC.RatesList.setSearchComplete("BookByPhone",function(){c()&&f()&&(o(),u(n),e(s()))})}function s(){return n.find("[data-bookbyphone-modalcontents]").data("bookbyphoneProvidercode")}function a(i,f){t=i;n=$("<div id='hc_evt_bookByPhoneModal'><\/div>");f?$(function(){o();u(t);e(s())}):l(r)}var t,i,n,r="#hc_evt_bookByPhoneResults",h="#hc_htl_pm_rates_content";HC.BookByPhone={init:a}}(),function(){function i(t){n.find("a").text(t)}function r(r,u){n=$(r).find("[data-book]");n.click(function(){HC.SearchBox.bookNowButtonClicked(t)});i(u)}function u(n){t=n}var n,t="#hc_hotelPageSearch";HC.BookNow={init:r,setTargetId:u,setText:i}}(),function(){function i(t){n={stickyElement:$("[data-sticky]"),stickTo:"top",stickMargin:"10px",alignTo:"bottom",alignToElement:$("#hc_r_3")};t&&$.extend(n,t)}function t(){var t=$(document).height()-n.alignToElement.position()[n.stickTo]-n.alignToElement.outerHeight(!0)-n.alignToElement.offset()[n.stickTo];n.stickyElement.css("margin-"+n.alignTo,t+"px")}function r(r){$(function(){i(r);n.stickyElement.css("position","-webkit-sticky").css("position","sticky").css(n.stickTo,n.stickMargin);Stickyfill.add(n.stickyElement);t();$(window).resize(t);$(document).resize(t)})}var n;HC.Sticky={init:r}}();HC.namespace("HC.OthersViewed"),function(n){function i(i,r){$.each(r,function(n,t){t.index=n});n.sendHotelsImpression(r,t,!1);i.on("mousedown.othersviewed","a",function(){var i=$(this).dataClosest("filename"),u=n.getHotelByFileName(r,i);n.sendHotelProductClick(u,t,!1)})}var t="Others Viewed";$.extend(HC.OthersViewed,{setHotelJson:i})}(HC.GoogleUA,HC._);HC=HC||{},function(n,t,i,t){function ot(n){st(n);lt();u.wrongDates!==!0||r===!0?ht():it(!0);a&&a()}function st(n){s=n.buttonContainer;f=n.priceAlertContainer;tt=n.priceAlertTooltipOptions;r=n.isAlertActive;k=n.isAuthenticated;u=n.data}function ht(){return $.ajaxHC({url:"/PriceAlert/Popup",data:{hotelID:u.hotelID}}).done(nt)}function nt(n){f.html(n.sections.content);t.addSearchCompleteSubscriber(vt);HC.publish("HC.PriceAlert.Refresh",u.hotelID,r)}function it(){return v=!0,$.ajaxHC({url:"/PriceAlert/WrongDates"}).done(ct)}function ct(n){f.html(n.sections.content);v=!1;HC.publish("HC.PriceAlert.WrongDates.Refresh",!0,r)}function lt(){s.bind("click",at)}function at(i){r!==!0&&n.local(d)&&k&&u.wrongDates!==!0?y(i):r===!0||t.isSearchCompleted()===!0&&v===!1?e(i):(ft(),e(null,null,!0))}function vt(t){var i=!1;u.minimumRate=t;t>0||r==!0?yt():(o&&(i=o.is(":visible")),rt().then(function(){n.local(l,null);i===!0&&e(null,null,!0)}))}function yt(){var i=n.local(l),t=!1;i===u.hotelID&&k&&(r!==!0?y():t=!0,n.local(l,null),HC.GoogleUA.resetRegistrationType());e(null,!t)}function rt(){return g=!0,$.ajaxHC({url:"/PriceAlert/NoRates"}).done(pt)}function pt(n){f.html(n.sections.content);g=!1;HC.publish("HC.PriceAlert.NoDeals.Refresh",u.hotelID,r)}function wt(){var t=$.extend({},et,{content:f},tt);t.onShow=function(){s.addClass("hc_open")};t.onClose=function(){s.removeClass("hc_open")};u.minimumRate==0?(t.stopAutoCloseOnSelf=!0,t.keepAlive=!0):(t.stopAutoCloseOnSelf=n.local(c)!==null,t.keepAlive=n.local(c)!==null);s.hcToolTip(t,b)}function bt(){f.off(".pricealert");f.on("click.pricealert","[data-priceaction]",kt)}function kt(){var i={setAlert:li,closePrompt:ai,signUp:yi,deleteAlert:y},r=$(this).data("priceaction"),n=r.split(","),t=i[n[0]];t&&t.apply(this,n.slice(1))}function dt(n){HC.subscribe("HC.PriceAlert.Refresh",n)}function gt(n){HC.unsubscribe("HC.PriceAlert.Refresh",n)}function ni(n){HC.subscribe("HC.PriceAlert.NoDeals.Refresh",n)}function ti(n){HC.unsubscribe("HC.PriceAlert.NoDeals.Refresh",n)}function ut(n){HC.subscribe("HC.PriceAlert.WrongDates.Refresh",n)}function ii(n){HC.unsubscribe("HC.PriceAlert.WrongDates.Refresh",n)}function e(t,i,u){var e=f.find("[data-section-pricealertprompt]").is(":visible");p();(r===!0&&i!==!0&&!e||r===!0&&i===!0&&e||!n.local(c)&&r!==!0&&i===!0||t&&r!==!0||a||u)&&(ri(),wt(),vi(),bt())}function ri(){var n=$(document).outerWidth()-$(window).width();$(document).scrollTop(0);$(document).scrollLeft(n)}function y(){r===!0||t.isSearchCompleted()===!0?u.minimumRate>0||r===!0?(ei(),$.ajaxHC({url:"/PriceAlert/"+fi(),type:"post",data:ui()}).done(si)):rt().then(function(){e(!0)}):(ft(),n.local(l,Number(u.hotelID)),e(null,null,!0))}function ui(){var n=r===!0?{hotelId:u.hotelID}:u;return u.isActive=!r,oi(n)}function fi(){return r===!0?"Delete":"Create"}function ei(){n.local(c)||w();r===!0||n.local(d)||n.local(d,!0)}function oi(n){var t={};return Object.keys(n).map(function(i){t["hc_f."+i.substr(0,1).toUpperCase()+i.substr(1)]=n[i]}),t}function si(n){ci();HC.publish("HC.PriceAlert.Refresh",u.hotelID,r);u.wrongDates!==!0?nt(n):it();e()}function hi(n){r=n}function ci(){r=!(r===!0)}function li(n){p();y(n);w()}function ai(){p();w();HC.GoogleUA.trackEvent("priceAlert","noThanks")}function p(){s.hcToolTip("remove",b)}function vi(){s.hcToolTip("show",b)}function yi(){w();p();n.local(l,Number(u.hotelID));i.showRegistration("priceAlert");HC.GoogleUA.setRegistrationType("pricealert")}function w(){n.local(c,!0)}function ft(){if(o=f.find("[data-section-spinner]"),o){var n=o.data("loadingclass");f.addClass(n);t.addSearchCompleteSubscriber(h);ut(h);o.show()}}function h(n){if(g!==!0&&v!==!0){var i=o.data("loadingclass");f.removeClass(i);o.hide();t.removeSearchCompleteCallback(h);ti(h);ii(h);n===!0&&e(null,null,!0)}else ni(h),ut(h)}function pi(n){n!==0&&(a=function(){$.ajaxHC({url:"/PriceAlert/ShowPriceAlertPopupVariation",data:{variation:n}}).done(function(n){nt(n);e(undefined,!0)})})}var s,f,tt,et={type:"popover",activation:"manual",delay:50,fadeIn:50,stopAutoCloseOnSelf:!0,keepAlive:!1,collision:"fit",autoRtl:!0,remainOpen:!0,relatedElements:["#registrationComplete"]},u,b="userPriceAlerts",k,a,o,c="priceAlert_alertPromoShown",l="priceAlert_hotelIdToSet",d="priceAlert_userCreatedAlert",g=!1,v=!1,r;HC.PriceAlert={init:ot,subscribeHotelAlertRefresh:dt,unsubscribeHotelAlertRefresh:gt,setAlertState:hi,showPriceAlertPopupVariation:pi}}(HC.StorageManager,HC.RatesList,HC.MainNavigation,HC.RatesList),function(n,t,i,r,u){function h(n,t){if(e=n,f=t,!t.isAuthenticated)e.on("click.wishlist","[data-hotelshare-save]",a);o();s(t.isAlertActive)}function c(n){$.extend(n,{buttonContainer:e.find("[data-hotelshare-save]"),hotelListsTooltipOptions:{collision:"fit",position:{elementBeingPositioned:"center top",targetElement:"center bottom",useViewPortToPosition:!1},arrowPosition:{elementBeingPositioned:"center bottom",targetElement:"center bottom",collision:"none flip"},positionOffset:{top:3,left:0},arrowPositionOffset:{top:3,left:0}}});i.init(n);i.subscribeHotelListsRefresh(function(n,t){n===f.hotelId&&(f.isSaved=t>0,o())})}function l(n){$.extend(n,{buttonContainer:e.find("[data-hotelshare-alert]"),priceAlertTooltipOptions:{collision:"fit",position:{elementBeingPositioned:"center top",targetElement:"center bottom",useViewPortToPosition:!1},arrowPosition:{elementBeingPositioned:"center bottom",targetElement:"center bottom",collision:"none flip"},positionOffset:{top:9,left:0},arrowPositionOffset:{top:9,left:0}}});r.init(n);r.subscribeHotelAlertRefresh(function(n,t){n==f.hotelId&&s(t)})}function a(){var n=f.isSaved?t.removeHotel:t.addHotel;n(f.hotelId);f.isSaved=!f.isSaved;o()}function o(){$(e).find("[data-hotelshare-save]").removeClass("hc-hoteloptions__icon--save hc-hoteloptions__icon--saved").addClass(f.isSaved?"hc-hoteloptions__icon--saved":"hc-hoteloptions__icon--save");v()}function s(n){$(e).find("[data-hotelshare-alert]").removeClass("hc-hoteloptions__icon--alertactive hc-hoteloptions__icon--alert").addClass(n===!0?"hc-hoteloptions__icon--alertactive":"hc-hoteloptions__icon--alert");y(n)}function v(){var n=f.translations;$(e).find("[data-hotelshare-save]").attr("title",f.isSaved?n.remove:n.save)}function y(n){var t=f.translations;$(e).find("[data-hotelshare-alert]").attr("title",n?t.alertSet:t.saveAlert)}function p(){n.getLastInstance().emailPopup()}function w(){f.isSaved||u.blinkModule(".hc_config_nav_wishlist")}var e,f;HC.HotelShare={init:h,initHotelLists:c,initPriceAlert:l,emailPopup:p,flashListIconMenu:w}}(HC.Social,HC.Wishlist,HC.HotelLists,HC.PriceAlert,HC.Common);