'use strict';var XF=window.XF||{};void 0===window.jQuery&&(jQuery=$={}); !function(g,q,t){XF.activate?console.error("XF core has been double loaded"):(XF.browser||(XF.browser={browser:"",version:0,os:"",osVersion:null}),function(){var a=function(){var f=t.createElement("fake"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},d;for(d in e)if(void 0!==f.style[d])return{end:e[d]};return!1}();g.support.transition=a;g.support.transition&&(g.event.special.xfTransitionEnd={bindType:a.end, delegateType:a.end,handle:function(f){if(g(f.target).is(this))return f.handleObj.handler.apply(this,arguments)}});var b=g("html").attr("dir");a="normal";if(b&&"RTL"==b.toUpperCase()){b=g('
MMMMMMMMMM
');var c=b[0];b.appendTo("body");0=e&&-.5<=e)||"auto"!==d&& (e=c.bottom-f.bottom-parseInt(d,10),.5>=e&&-.5<=e))return a=b,!1}});return a},onTransitionEnd:function(a,b){var c=!1,f=this;this.one("xfTransitionEnd",function(){if(!c)return c=!0,b.apply(this,arguments)});setTimeout(function(){c||f.trigger("xfTransitionEnd")},a+10);return this},autofocus:function(){var a=g(this);XF.isIOS()?a.is(":focus")||(a.addClass("is-focused"),a.on("blur",function(){a.removeClass("is-focused")})):a.focus();return this},normalizedScrollLeft:function(a){var b=g.support.scrollLeftType; if("undefined"!==typeof a){for(var c=0;cc?-c:0;case "inverted":return b=a.scrollWidth-c-a.offsetWidth,.5>b?0:b;default:return c}},focusNext:function(){var a=g('input:not([type="hidden"]), select, textarea, a, button').filter(":visible");return a.eq(a.index(this)+1).focus()}, retinaFix:function(){if(2<=q.devicePixelRatio)this.find("img[srcset]").one("load",function(a){g(this).prop("srcset",g(this).attr("srcset"))});return this}}),function(){function a(e){if(!g.support.transition)return 0;var d=e[0];if(!(d&&d instanceof q.Element))return 0;e=e.css("transition-duration");d=0;e&&e.match(/^(\+|-|)([0-9]*\.[0-9]+|[0-9]+)(ms|s)/i)&&(d=("-"==RegExp.$1?-1:1)*parseFloat(RegExp.$2)*("ms"==RegExp.$3.toLowerCase()?1:1E3));return d}function b(e,d,h){var k=[];g.isFunction(d)&&(d=d.call(e[0], 0,e[0].className));d=g.trim(d).split(/\s+/);e=" "+e[0].className+" ";for(var m,l=0;l=m)e[l](d),r();else{e.hasClass("is-transitioning")&&e.trigger("xfTransitionEnd");e.addClass("is-transitioning"); if(e.css("transition-property").match(/(^|\s|,)-xf-(width|height)($|\s|,)/)){r=RegExp.$2;var x=f[r],v=e.css(x),y=v[r],w="transition."+r,u=e.data(w),z=n.style,B=z.transition||z["-webkit-transition"]||z["-moz-transition"]||z["-o-transition"]||"",A;if(void 0===u)for(u={},A=0;A|\|)/)){if("<"==c[1])return b.findExtended(a);"|"==c[1]&&(a=a.substr(1));return b.find(a)}return g(a)},isElementVisible:function(a){a=a[0].getBoundingClientRect(); return 0<=a.top&&0<=a.left&&a.bottom<=g(q).height()&&a.right<=g(q).width()},layoutChange:function(){XF._layoutChangeTriggered||(XF._layoutChangeTriggered=!0,setTimeout(function(){XF._layoutChangeTriggered=!1;g(t.body).trigger("sticky_kit:recalc").trigger("xf:layout")},0))},_layoutChangeTriggered:!1,updateAvatars:function(a,b,c){g(".avatar").each(function(){var f=g(this),e=f.find("img, span").first(),d="avatar-u"+a+"-",h=f.hasClass("avatar--updateLink")?f.find(".avatar-update"):null;if((c||!e.hasClass(".js-croppedAvatar"))&& e.is('[class^="'+d+'"]')){if(e.hasClass(d+"s"))e=g(b.s);else if(e.hasClass(d+"m"))e=g(b.m);else if(e.hasClass(d+"l"))e=g(b.l);else if(e.hasClass(d+"o"))e=g(b.o);else return;f.html(e.html());e.hasClass("avatar--default")?(f.addClass("avatar--default"),e.hasClass("avatar--default--dynamic")?f.addClass("avatar--default--dynamic"):e.hasClass("avatar--default--text")?f.addClass("avatar--default--text"):e.hasClass("avatar--default--image")&&f.addClass("avatar--default--image")):f.removeClass("avatar--default avatar--default--dynamic avatar--default--text avatar--default--image"); f.attr("style",e.attr("style"));h&&f.append(h)}})},updateVisitorCounts:function(a,b,c){a&&"public"==XF.getApp()&&(XF.badgeCounterUpdate(g(".js-badge--conversations"),a.conversations_unread),XF.badgeCounterUpdate(g(".js-badge--alerts"),a.alerts_unviewed),XF.config.visitorCounts.title_count&&XF.pageTitleCounterUpdate(a.total_unread),XF.config.visitorCounts.icon_indicator&&XF.faviconUpdate(a.total_unread),b&&(XF.appBadgeUpdate(a.total_unread),XF.CrossTab.trigger("visitorCounts",a),XF.LocalStorage.setJson("visitorCounts", {time:c||Math.floor((new Date).getTime()/1E3)-1,conversations_unread:a.conversations_unread,alerts_unviewed:a.alerts_unviewed,total_unread:a.total_unread})))},updateVisitorCountsOnLoad:function(a){var b=XF.getLocalLoadTime(),c=XF.LocalStorage.getJson("visitorCounts");c&&c.time&&c.time>b&&(a.conversations_unread=c.conversations_unread,a.alerts_unviewed=c.alerts_unviewed,a.total_unread=c.total_unread);XF.updateVisitorCounts(a,!0,b)},badgeCounterUpdate:function(a,b){a.length&&(a.attr("data-badge",b), "0"!=String(b)?a.addClass("badgeContainer--highlighted"):a.removeClass("badgeContainer--highlighted"))},shouldCountBeShown:function(a){return 0").on("load",function(){var k=XF.faviconDraw(this);k&&h.attr("href",k)}).attr("src",e)):d&&h.attr("href",d).removeData("original-href")})}}},faviconDraw:function(a){var b=a.naturalWidth,c=a.naturalHeight;c=g("").attr({width:b,height:c});var f=c[0].getContext("2d"), e=b/(32/6),d=2*Math.PI;f.drawImage(a,0,0);f.beginPath();f.arc(e,e,e,0,d,!1);f.fillStyle="#E03030";f.fill();f.lineWidth=b/16;f.strokeStyle="#EAEAEA";f.stroke();f.closePath();try{return c[0].toDataURL("image/png")}catch(h){return null}},appBadgeUpdate:function(a){"setAppBadge"in navigator&&!navigator.webdriver&&!navigator.userAgent.match(/Chrome-Lighthouse|Googlebot|AdsBot-Google|Mediapartners-Google/i)&&(a=parseInt(String(a).replace(/[,. ]/g,"")),navigator.setAppBadge(a))},unparseBbCode:function(a){var b= g(t.createElement("div"));b.html(a);b.find(".js-noSelectToQuote").each(function(){g(this).remove()});g.each(["B","I","U","S"],function(c,f){b.find(f).each(function(){g(this).replaceWith("["+f+"]"+g(this).html()+"[/"+f+"]")})});b.find(".bbCodeBlock--quote").each(function(){var c=g(this),f=c.find(".bbCodeBlock-expandContent");f.length?c.replaceWith("
[QUOTE]"+f.html()+"[/QUOTE]
"):f.find(".bbCodeBlock-expand").remove()});b.find(".bbCodeBlock--code").each(function(){var c=g(this);if(!c.find(".bbCodeCode"))return!0; var f=c.find(".bbCodeCode code");if(!f.length)return!0;var e=f.attr("class");e=(e=e?e.match(/language-(\S+)/):null)?e[1]:null;f.removeAttr("class");c.replaceWith(f.first().attr("data-language",e||"none"))});b.find(".bbCodeBlock--unfurl").each(function(){var c=g(this).data("url");g(this).replaceWith("[URL unfurl=true]"+c+"[/URL]")});b.find('div[style*="text-align"]').each(function(){var c=g(this).css("text-align").toUpperCase();g(this).replaceWith("["+c+"]"+g(this).html()+"[/"+c+"]")});b.find("div[data-media-site-id][data-media-key], form[data-media-site-id][data-media-key]").each(function(){var c= g(this).data("media-site-id"),f=g(this).data("media-key");if(!c||!f)return!0;g(this).replaceWith("[MEDIA="+c+"]"+f+"[/MEDIA]")});b.find(".bbCodeSpoiler").each(function(){var c="";var f=g(this).find(".bbCodeSpoiler-button");if(f.length){var e=g(this).find(".bbCodeSpoiler-content").html();f=f.find(".bbCodeSpoiler-button-title");f.length&&(c='="'+f.text()+'"');g(this).replaceWith("[SPOILER"+c+"]"+e+"[/SPOILER]")}});b.find(".bbCodeInlineSpoiler").each(function(){var c=g(this).html();g(this).replaceWith("[ISPOILER]"+ c+"[/ISPOILER]")});return b.html()},hideOverlays:function(){g.each(XF.Overlay.cache,function(a,b){b.hide()})},hideTooltips:function(){g.each(XF.TooltipTrigger.cache,function(a,b){b.hide()})},hideParentOverlay:function(a){a=a.closest(".overlay-container");a.length&&a.data("overlay")&&a.data("overlay").hide()},getStickyHeaderOffset:function(){var a,b=0;for(a=0;a").prop({src:n,async:!1});r.on("load error",function(x){r.off("load error");c()});h.appendChild(r[0])}(p):e?function(n){var r=t.createElement("script");m.push(r);r.onreadystatechange=f;r.onerror=function(){r.onreadystatechange=null;r.onerror=null;c()};r.src=n}(p):g.ajax({url:p,dataType:"script",cache:!0,global:!1}).always(c))}!k&&b&&b()},ajax:function(a,b,c,f,e){"function"==typeof c&&void 0===f&&(f=c,c={});c=c||{};var d=!0,h=!0,k=!0;e&&(e.skipDefault&& (h=d=!1,delete e.skipDefault),e.skipDefaultSuccessError&&(h=!1,delete e.skipDefaultSuccessError),e.skipDefaultSuccess&&(d=!1,delete e.skipDefaultSuccess),e.skipError&&(k=!1,delete e.skipError));var m=function(n,r,x){g(t).trigger("ajax:before-success",[n,r,x]);h&&XF.defaultAjaxSuccessError(n,r,x)||d&&XF.defaultAjaxSuccess(n,r,x)||f&&f(n,r,x)},l=function(n,r,x){if(n.readyState)try{var v=g.parseJSON(n.responseText);m(v,"",n)}catch(y){XF.defaultAjaxError(n,r,x)}};c=XF.dataPush(c,"_xfRequestUri",q.location.pathname+ q.location.search);c=XF.dataPush(c,"_xfWithData",1);XF.config.csrf&&(c=XF.dataPush(c,"_xfToken",XF.config.csrf));var p=q.FormData&&c instanceof FormData;a=g.extend(!0,{cache:!0,data:c||{},dataType:"json",beforeSend:function(n,r){g(t).trigger("ajax:send",[n,r])},error:k?l:null,success:m,complete:function(n,r){g(t).trigger("ajax:complete",[n,r])},timeout:"get"===a?3E4:6E4,type:a,url:b,processData:p?!1:!0},e);p&&(a.contentType=!1);switch(a.dataType){case "html":case "json":case "xml":a.data=XF.dataPush(a.data, "_xfResponseType",a.dataType)}"json"!=a.dataType&&(d=!1);return g.ajax(a)},dataPush:function(a,b,c){a&&"string"!=typeof a?void 0!==a[0]?a.push({name:b,value:c}):q.FormData&&a instanceof FormData?a.append(b,c):a[b]=c:(a=String(a),a+="&"+encodeURIComponent(b)+"="+encodeURIComponent(c));return a},defaultAjaxSuccessError:function(a,b,c){if("object"!=typeof a)return XF.alert("Response was not JSON."),!0;a.html&&a.html.templateErrors&&(b="Errors were triggered when rendering this template:",a.html.templateErrorDetails&& (b+="\n* "+a.html.templateErrorDetails.join("\n* ")),console.error(b));return a.errorHtml?(XF.setupHtmlInsert(a.errorHtml,function(f,e){e=e.h1||e.title||XF.phrase("oops_we_ran_into_some_problems");XF.overlayMessage(e,f)}),!0):a.errors?(XF.alert(a.errors),!0):a.exception?(XF.alert(a.exception),!0):!1},defaultAjaxSuccess:function(a,b,c){a&&"ok"==a.status&&a.message&&XF.flashMessage(a.message,3E3);return!1},defaultAjaxError:function(a,b,c){switch(b){case "abort":return;case "timeout":XF.alert(XF.phrase("server_did_not_respond_in_time_try_again")); return;case "notmodified":case "error":if(!a||!a.responseText)return}console.error("PHP: "+a.responseText);XF.alert(XF.phrase("oops_we_ran_into_some_problems_more_details_console"))},activate:function(a){XF.addExtraPhrases(a);XF.IgnoreWatcher.refresh(a);XF.Element.initialize(a);XF.DynamicDate.refresh(a);XF.ExpandableContent.checkSizing(a);XF.UnfurlLoader.activateContainer(a);XF.KeyboardShortcuts.initializeElements(a);XF.FormInputValidation.initializeElements(a);var b=a instanceof g?a.get(0):a;q.FB&& setTimeout(function(){FB.XFBML.parse(b)},0);g(t).trigger("xf:reinit",[a])},getDefaultFormData:function(a,b,c,f){var e;b&&b.length&&b.attr("name")&&(e=b.attr("name"));c&&"multipart/form-data"===a.attr("enctype")&&console.error("JSON serialized forms do not support the file upload-style enctype.");if(q.FormData&&!c){var d=new FormData(a[0]);e&&d.append(e,b.attr("value"));a.find('input[type="file"]').each(function(){var p=g(this);if(0===p.prop("files").length)try{d.delete(p.attr("name"))}catch(n){}})}else{if(c){a= a.is("form")?g(a[0].elements):a;var h,k=[],m=[];if(f){"string"===typeof f&&(f=f.split(","));var l=[];g.each(f,function(p,n){"number"===typeof p?l.push(XF.regexQuote(g.trim(n))):l.push(XF.regexQuote(g.trim(p)))});l.length&&(h=new RegExp("^("+l.join("|")+")(\\[|$)"))}a.each(function(p,n){(p=n.name)&&"_xf"!==p.substring(0,3)?!h||h.test(p)?k.push(n):m.push(n):m.push(n)});d=g(m).serializeArray();f=g(k).serializeJSON();d.unshift({name:c,value:JSON.stringify(f)})}else d=a.serializeArray();e&&d.push({name:e, value:b.attr("value")})}return d},scriptMatchRegex:/]*)>([\s\S]*?)<\/script>/ig,setupHtmlInsert:function(a,b,c){if("string"===typeof a||a instanceof g)a={content:a};if("object"==typeof a&&a.content){var f=arguments;XF.Loader.load(a.js,a.css,function(){var e,d=a.jsInline||[],h=a.content,k="string"==typeof h,m=f[2]?!0:!1;if(a.cssInline)for(e=0;e"+a.cssInline[e]+"").appendTo("head");if(k){var l;h=g.trim(h);if(!m)for(;e=XF.scriptMatchRegex.exec(h);){var p= !1;if(l=e[1].match(/(^|\s)type=("|'|)([^"' ;]+)/))switch(l[3].toLowerCase()){case "text/javascript":case "text/ecmascript":case "application/javascript":case "application/ecmascript":p=!0}else p=!0;p&&(d.push(e[2]),h=h.replace(e[0],""))}h=h.replace(/