function InitAccountMenu(){$(".account-trigger").on("click",function(n){n.preventDefault();$(".menu.show").not("#account-menu").removeClass("show");$("#account-menu").toggleClass("show");$("#nav-trigger").prop("checked",!1)})}function InitMenuCloseEvents(){$(".body").on("click",function(){$(".menu.show").removeClass("show");$("#nav-trigger").prop("checked",!1)});$("#nav-trigger").on("click",function(){$(".menu.show").removeClass("show")})}function InitEmailSubscriptionForms(){function t(n){return/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(n)}function n(){var i=$(".frmEmailList"),r=$(i).find('input[type="email"]').val(),u=$(i).find("button"),n,f;if(!t(r))return alert("Please enter a valid email address."),!1;n=[];n[0]=1;f={email:r,lists:n};$.ajax({type:"POST",url:"https://www.stardock.com/accounts/ws/mailinglist.asmx/Add",contentType:"application/json; charset=utf-8",dataType:"json",data:JSON.stringify(f),success:function(n){n.d==0&&$.featherlight("#subscribesuccess",{variant:"formresponse"});$(u).removeAttr("disabled")},beforeSend:function(){$(u).attr("disabled","disabled")}})}$('.frmEmailList > input[type="email"]').keypress(function(t){t.which==13&&(t.preventDefault(),n())});$(".frmEmailList > button").click(function(t){t.preventDefault();n()})}function InitSidebar(){InitSidebar_Twitch()}var trackOutboundLink,StardockHub;!function(n){"use strict";function t(n,i){if(!(this instanceof t)){var r=new t(n,i);return r.open(),r}this.id=t.id++;this.setup(n,i);this.chainCallbacks(t._callbackChain)}function e(n,t){var r={};for(var i in n)i in t&&(r[i]=n[i],delete n[i]);return r}function o(n,t){var u={},e=new RegExp("^"+t+"([A-Z])(.*)"),r,i,f;for(r in n)i=r.match(e),i&&(f=(i[1]+i[2].replace(/([A-Z])/g,"-$1")).toLowerCase(),u[f]=n[r]);return u}if("undefined"==typeof n)return void("console"in window&&window.console.info("Too much lightness, Featherlight needs jQuery."));var i=[],r=function(t){return i=n.grep(i,function(n){return n!==t&&n.$instance.closest("body").length>0})},s={allowfullscreen:1,frameborder:1,height:1,longdesc:1,marginheight:1,marginwidth:1,name:1,referrerpolicy:1,scrolling:1,sandbox:1,src:1,srcdoc:1,width:1},u={keyup:"onKeyUp",resize:"onResize"},h=function(i){n.each(t.opened().reverse(),function(){if(!i.isDefaultPrevented()&&!1===this[u[i.type]](i))return(i.preventDefault(),i.stopPropagation(),!1)})},f=function(i){if(i!==t._globalHandlerInstalled){t._globalHandlerInstalled=i;var r=n.map(u,function(n,i){return i+"."+t.prototype.namespace}).join(" ");n(window)[i?"on":"off"](r,h)}};t.prototype={constructor:t,namespace:"featherlight",targetAttr:"data-featherlight",variant:null,resetCss:!1,background:null,openTrigger:"click",closeTrigger:"click",filter:null,root:"body",openSpeed:250,closeSpeed:250,closeOnClick:"background",closeOnEsc:!0,closeIcon:"&#10005;",loading:"",persist:!1,otherClose:null,beforeOpen:n.noop,beforeContent:n.noop,beforeClose:n.noop,afterOpen:n.noop,afterContent:n.noop,afterClose:n.noop,onKeyUp:n.noop,onResize:n.noop,type:null,contentFilters:["jquery","image","html","ajax","iframe","text"],setup:function(t,i){"object"!=typeof t||t instanceof n!=!1||i||(i=t,t=void 0);var r=n.extend(this,i,{target:t}),u=r.resetCss?r.namespace+"-reset":r.namespace,f=n(r.background||['<div class="'+u+"-loading "+u+'">','<div class="'+u+'-content">','<button class="'+u+"-close-icon "+r.namespace+'-close" aria-label="Close">',r.closeIcon,"<\/button>",'<div class="'+r.namespace+'-inner">'+r.loading+"<\/div>","<\/div>","<\/div>"].join("")),e="."+r.namespace+"-close"+(r.otherClose?","+r.otherClose:"");return r.$instance=f.clone().addClass(r.variant),r.$instance.on(r.closeTrigger+"."+r.namespace,function(t){var i=n(t.target);("background"===r.closeOnClick&&i.is("."+r.namespace)||"anywhere"===r.closeOnClick||i.closest(e).length)&&(r.close(t),t.preventDefault())}),this},getContent:function(){var e,u;if(this.persist!==!1&&this.$content)return this.$content;var r=this,f=this.constructor.contentFilters,o=function(n){return r.$currentTarget&&r.$currentTarget.attr(n)},s=o(r.targetAttr),t=r.target||s||"",i=f[r.type];if(!i&&t in f&&(i=f[t],t=r.target&&s),t=t||o("href")||"",!i)for(e in f)r[e]&&(i=f[e],t=r[e]);return!i&&(u=t,t=null,n.each(r.contentFilters,function(){return i=f[this],i.test&&(t=i.test(u)),!t&&i.regex&&u.match&&u.match(i.regex)&&(t=u),!t}),!t)?("console"in window&&window.console.error("Featherlight: no content filter found "+(u?' for "'+u+'"':" (no target specified)")),!1):i.process.call(r,t)},setContent:function(t){var i=this;return t.is("iframe")&&i.$instance.addClass(i.namespace+"-iframe"),i.$instance.removeClass(i.namespace+"-loading"),i.$instance.find("."+i.namespace+"-inner").not(t).slice(1).remove().end().replaceWith(n.contains(i.$instance[0],t[0])?"":t),i.$content=t.addClass(i.namespace+"-inner"),i},open:function(t){var r=this,u;return(r.$instance.hide().appendTo(r.root),!(t&&t.isDefaultPrevented()||r.beforeOpen(t)===!1))&&(t&&t.preventDefault(),u=r.getContent(),u)?(i.push(r),f(!0),r.$instance.fadeIn(r.openSpeed),r.beforeContent(t),n.when(u).always(function(n){r.setContent(n);r.afterContent(t)}).then(r.$instance.promise()).done(function(){r.afterOpen(t)})):(r.$instance.detach(),n.Deferred().reject().promise())},close:function(t){var i=this,u=n.Deferred();return i.beforeClose(t)===!1?u.reject():(0===r(i).length&&f(!1),i.$instance.fadeOut(i.closeSpeed,function(){i.$instance.detach();i.afterClose(t);u.resolve()})),u.promise()},resize:function(n,t){if(n&&t){this.$content.css("width","").css("height","");var i=Math.max(n/(parseInt(this.$content.parent().css("width"),10)-1),t/(parseInt(this.$content.parent().css("height"),10)-1));i>1&&(i=t/Math.floor(t/i),this.$content.css("width",""+n/i+"px").css("height",""+t/i+"px"))}},chainCallbacks:function(t){for(var i in t)this[i]=n.proxy(t[i],this,n.proxy(this[i],this))}};n.extend(t,{id:0,autoBind:"[data-featherlight]",defaults:t.prototype,contentFilters:{jquery:{regex:/^[#.]\w/,test:function(t){return t instanceof n&&t},process:function(t){return this.persist!==!1?n(t):n(t).clone(!0)}},image:{regex:/\.(png|jpg|jpeg|gif|tiff|bmp|svg)(\?\S*)?$/i,process:function(t){var f=this,u=n.Deferred(),i=new Image,r=n('<img src="'+t+'" alt="" class="'+f.namespace+'-image" />');return i.onload=function(){r.naturalWidth=i.width;r.naturalHeight=i.height;u.resolve(r)},i.onerror=function(){u.reject(r)},i.src=t,u.promise()}},html:{regex:/^\s*<[\w!][^<]*>/,process:function(t){return n(t)}},ajax:{regex:/./,process:function(t){var i=n.Deferred(),r=n("<div><\/div>").load(t,function(n,t){"error"!==t&&i.resolve(r.contents());i.fail()});return i.promise()}},iframe:{process:function(t){var i=new n.Deferred,r=n("<iframe/>"),u=o(this,"iframe"),f=e(u,s);return r.hide().attr("src",t).attr(f).css(u).on("load",function(){i.resolve(r.show())}).appendTo(this.$instance.find("."+this.namespace+"-content")),i.promise()}},text:{process:function(t){return n("<div>",{text:t})}}},functionAttributes:["beforeOpen","afterOpen","beforeContent","afterContent","beforeClose","afterClose"],readElementConfig:function(t,i){var u=this,f=new RegExp("^data-"+i+"-(.*)"),r={};return t&&t.attributes&&n.each(t.attributes,function(){var e=this.name.match(f),t,i;if(e){if(t=this.value,i=n.camelCase(e[1]),n.inArray(i,u.functionAttributes)>=0)t=new Function(t);else try{t=JSON.parse(t)}catch(o){}r[i]=t}}),r},extend:function(t,i){var r=function(){this.constructor=t};return r.prototype=this.prototype,t.prototype=new r,t.__super__=this.prototype,n.extend(t,this,i),t.defaults=t.prototype,t},attach:function(t,i,r){var u=this;"object"!=typeof i||i instanceof n!=!1||r||(r=i,i=void 0);r=n.extend({},r);var e,s=r.namespace||u.defaults.namespace,f=n.extend({},u.defaults,u.readElementConfig(t[0],s),r),o=function(o){var h=n(o.currentTarget),c=n.extend({$source:t,$currentTarget:h},u.readElementConfig(t[0],f.namespace),u.readElementConfig(o.currentTarget,f.namespace),r),s=e||h.data("featherlight-persisted")||new u(i,c);"shared"===s.persist?e=s:s.persist!==!1&&h.data("featherlight-persisted",s);c.$currentTarget.blur&&c.$currentTarget.blur();s.open(o)};return t.on(f.openTrigger+"."+f.namespace,f.filter,o),o},current:function(){var n=this.opened();return n[n.length-1]||null},opened:function(){var t=this;return r(),n.grep(i,function(n){return n instanceof t})},close:function(n){var t=this.current();if(t)return t.close(n)},_onReady:function(){var t=this;t.autoBind&&(n(t.autoBind).each(function(){t.attach(n(this))}),n(document).on("click",t.autoBind,function(i){if(!i.isDefaultPrevented()){var r=t.attach(n(i.currentTarget));r(i)}}))},_callbackChain:{onKeyUp:function(t,i){return 27===i.keyCode?(this.closeOnEsc&&n.featherlight.close(i),!1):t(i)},beforeOpen:function(t,i){return this._previouslyActive=document.activeElement,this._$previouslyTabbable=n("a, input, select, textarea, iframe, button, iframe, [contentEditable=true]").not("[tabindex]").not(this.$instance.find("button")),this._$previouslyWithTabIndex=n("[tabindex]").not('[tabindex="-1"]'),this._previousWithTabIndices=this._$previouslyWithTabIndex.map(function(t,i){return n(i).attr("tabindex")}),this._$previouslyWithTabIndex.add(this._$previouslyTabbable).attr("tabindex",-1),document.activeElement.blur&&document.activeElement.blur(),t(i)},afterClose:function(t,i){var r=t(i),u=this;return this._$previouslyTabbable.removeAttr("tabindex"),this._$previouslyWithTabIndex.each(function(t,i){n(i).attr("tabindex",u._previousWithTabIndices[t])}),this._previouslyActive.focus(),r},onResize:function(n,t){return this.resize(this.$content.naturalWidth,this.$content.naturalHeight),n(t)},afterContent:function(n,t){var i=n(t);return this.$instance.find("[autofocus]:not([disabled])").focus(),this.onResize(t),i}}});n.featherlight=t;n.fn.featherlight=function(n,i){return t.attach(this,n,i),this};n(document).ready(function(){t._onReady()})}(jQuery);trackOutboundLink=function(n,t){gtag("event","click",{event_category:"outbound",event_label:n,transport_type:"beacon",event_callback:function(){t?window.open(n,t):document.location=n}})};$(function(){InitAccountMenu();InitMenuCloseEvents();InitEmailSubscriptionForms();InitSidebar()});$(function(){});$(function(){StardockHub.InitWebsockets();setTimeout(function(){StardockHub.updateNotificationMenu},4e3)});StardockHub={notificationMessageCount:0,notificationSubscriptionCount:0,notificationCartCount:0,isFastSpringInitialized:!1,isRunning:!1,isOn:!0,isLoggedOn:!1,hubConnection:{},InitWebsockets:function(){StardockHub.isFastSpringInitialized=typeof fastspring!="undefined";setTimeout(function(){StardockHub.hubConnection=$.connection("/sockets");sdHubProxy=$.connection.stardockWebsiteSharedHub;sdHubProxy.client.cart_Changed=function(n){StardockHub.onCart_Changed(n,!0)};sdHubProxy.client.stopClient=function(){StardockHub.hubConnection.stop()};StardockHub.isLoggedOn=StardockHub.IsSignedIn();StardockHub.isLoggedOn==!0&&(StardockHub.isLoggedOn=!0,sdHubProxy.client.subscriptionUnreadCount_Changed=function(n){StardockHub.onSubscriptionUnreadCount_Changed(n,!0)},sdHubProxy.client.privateMessageUnreadCount_Changed=function(n){StardockHub.onPrivateMessageUnreadCount_Changed(n,!0)});StardockHub.StartHubConnection(!0);$.connection.hub.disconnected(function(){StardockHub.isRunning=!1;StardockHub.isOn&&setTimeout(function(){StardockHub.StartHubConnection(!1)},6e4)})},1)},IsSignedIn:function(){return $("#account-trigger").hasClass("loggedin")||$(".account-trigger").hasClass("loggedin")||$("#listatus").hasClass("loggedin")?!0:!1},StartHubConnection:function(n,t){var i;i=arguments[2];$.connection.hub.start().done(function(){StardockHub.isOn=!0;StardockHub.CompleteInitialization(n);typeof t=="function"&&t(i);i})},StopHubConnection:function(){(StardockHub.isOn=!1,StardockHub.isRunning)&&$.connection.hub.stop()},ReduceConnections:function(){StardockHub.isLoggedOn||setTimeout(function(){StardockHub.StopHubConnection()},4e3)},CompleteInitialization:function(n){StardockHub.isRunning=!0;n&&(StardockHub.isLoggedOn&&(StardockHub.UpdateSubscriptionCount(),StardockHub.UpdateMessageCount()),StardockHub.isFastSpringInitialized&&fsInitializeCarts())},AddToCart:function(n){if(!StardockHub.isRunning){StardockHub.StartHubConnection(!1,StardockHub.AddToCart,n);return}sdHubProxy.server.addToCart(n).done(function(){})},GetCart:function(n){if(!StardockHub.isRunning){StardockHub.StartHubConnection(!1,StardockHub.GetCart,n);return}sdHubProxy.server.getCart().done(function(t){n(t)})},UpdateCart:function(n){if(!StardockHub.isRunning){StardockHub.StartHubConnection(!1,StardockHub.UpdateCart,n);return}sdHubProxy.server.updateCart(n).done(function(){})},UpdateSubscriptionCount:function(){if(!StardockHub.isRunning){StardockHub.StartHubConnection(!1,StardockHub.UpdateSubscriptionCount);return}sdHubProxy.server.getSubscriptionCount().done(function(n){StardockHub.onSubscriptionUnreadCount_Changed(n,!1)})},UpdateMessageCount:function(){if(!StardockHub.isRunning){StardockHub.StartHubConnection(!1,StardockHub.UpdateMessageCount);return}sdHubProxy.server.getPrivateMessageCount().done(function(n){StardockHub.onPrivateMessageUnreadCount_Changed(n,!1)})},onCart_Changed:function(n){StardockHub.isFastSpringInitialized&&fsMergeCarts(global_fastSpringData,n)},onSubscriptionUnreadCount_Changed:function(n,t){var i=$("#subscription_count");n>0?(i.text(n),i.addClass("show"),t&&(i.addClass("new"),setTimeout(function(){i.removeClass("new")},1500))):(i.text(""),i.removeClass("show"));n>0?$(".subscriptioncount").html("(<b>"+n+"<\/b>)"):$(".subscriptioncount").html("");StardockHub.notificationSubscriptionCount=n;StardockHub.updateNotificationMenu()},onPrivateMessageUnreadCount_Changed:function(n,t){var i=$("#message_count");n>0?(i.text(n),i.addClass("show"),t&&(i.addClass("new"),setTimeout(function(){i.removeClass("new")},1500))):(i.text(""),i.removeClass("show"));n>0?$(".messagecount").html("(<b>"+n+"<\/b>)"):$(".messagecount").html("");StardockHub.notificationMessageCount=n;StardockHub.updateNotificationMenu()},updateNotificationMenu:function(){StardockHub.notificationCartCount=$("#cart-trigger").children("span").hasClass("show")?1:0;StardockHub.hasNotifications()?$("#notification-form").hasClass("show")||$("#notification-form").addClass("show"):$("#notification-form").hasClass("show")||$("#notification-form").removeClass("show")},hasNotifications:function(){return StardockHub.notificationMessageCount>0||StardockHub.notificationSubscriptionCount>0||StardockHub.notificationCartCount>0?!0:!1}}