Seditio Source
Root |
./othercms/xenForo 2.2.8/js/xf/core/structure.min.js
'use strict';!function(f,m,q){XF._baseInserterOptions={after:null,append:null,before:null,prepend:null,replace:null,removeOldSelector:!0,animateReplace:!0,scrollTarget:null,href:null,afterLoad:null};XF.InserterClick=XF.Event.newHandler({eventNameSpace:"XFInserterClick",options:f.extend(!0,{},XF._baseInserterOptions),inserter:null,init:function(){this.inserter=new XF.Inserter(this.$target,this.options)},click:function(a){this.inserter.onEvent(a)}});XF.InserterFocus=XF.Element.newHandler({options:f.extend(!0,
{},XF._baseInserterOptions),inserter:null,init:function(){this.inserter=new XF.Inserter(this.$target,this.options);this.$target.one("focus",XF.proxy(this.inserter,"onEvent"))}});XF.Inserter=XF.create({options:f.extend(!0,{},XF._baseInserterOptions),$target:null,href:null,loading:!1,__construct:function(a,b){this.$target=a;this.options=f.extend(!0,{},this.options,b);(a=this.options.href||this.$target.data("inserter-href")||this.$target.attr("href"))?this.href=a:console.error("Target must have href")},
onEvent:function(a,b){a.preventDefault();if(!this.loading){this.loading=!0;a=f(this.options.replace);a.length&&a.addClassTransitioned("is-active");var c=this;XF.ajax("get",this.href,b||{},XF.proxy(this,"onLoad")).always(function(){c.loading=!1})}},onLoad:function(a){if(a.html){var b=this,c=this.options,d=c.scrollTarget,e=c.afterLoad,g;d&&(g=XF.findRelativeIf(d,this.$target));XF.setupHtmlInsert(a.html,function(h,k,l){b._applyChange(h,c.after,XF.proxy(b,"_applyAfter"));b._applyChange(h,c.append,XF.proxy(b,
"_applyAppend"));b._applyChange(h,c.before,XF.proxy(b,"_applyBefore"));b._applyChange(h,c.prepend,XF.proxy(b,"_applyPrepend"));b._applyChange(h,c.replace,XF.proxy(b,"_applyReplace"));l(!0);e&&e(a);return!1});XF.layoutChange();g&&g.length&&g[0].scrollIntoView(!0)}},_applyChange:function(a,b,c){if(b&&b.length){b=b.split(",");for(var d,e,g,h=0;h<b.length;h++)d=b[h].split(" with "),e=f.trim(d[0]),g=d[1]?f.trim(d[1]):e,e.length&&g.length&&(d=f(e).first(),g=a.is(g)?a:a.find(g).first(),c(e,d,g))}},_applyAfter:function(a,
b,c){b.length&&c.length&&(c.insertAfter(b),XF.activate(c),this._removeOldSelector(a,b))},_applyAppend:function(a,b,c){b.length&&c.length&&(a=c.children(),a.appendTo(b),XF.activate(a))},_applyBefore:function(a,b,c){b.length&&c.length&&(c.insertBefore(b),XF.activate(c),this._removeOldSelector(a,b))},_applyPrepend:function(a,b,c){b.length&&c.length&&(a=c.children(),a.prependTo(b),XF.activate(a))},_applyReplace:function(a,b,c){b.length&&(a=this.options.animateReplace,XF.isIOS()&&(a=!1),c.length&&(a&&
c.hide(),c.insertAfter(b)),a?b.xfFadeUp(null,function(){b.remove();c.length&&XF.activate(c);c.xfFadeDown(null,XF.layoutChange)}):(b.remove(),c.length&&XF.activate(c)))},_removeOldSelector:function(a,b){if(this.options.removeOldSelector){var c;(c=a.match(/^\.([a-z0-9_-]+)/i))&&b.removeClass(c[1])}}});XF.MenuClick=XF.Event.newHandler({eventNameSpace:"XFMenuClick",options:{menu:null,targetOpenClass:"is-menuOpen",openClass:"is-active",completeClass:"is-complete",zIndexRef:null,menuPosRef:null,arrowPosRef:null,
directionThreshold:.6},$menu:null,$menuPosRef:null,menuRef:null,$arrowPosRef:null,arrowRef:null,scrollFunction:null,isPotentiallyFixed:!1,menuIsUp:!1,menuWidth:0,menuHeight:0,init:function(){this.options.menu&&(this.$menu=XF.findRelativeIf(this.options.menu,this.$target));this.$menu&&this.$menu.length||(this.$menu=this.$target.nextAll("[data-menu]").first());if(this.$menu.length){this.$arrowPosRef=this.$menuPosRef=this.$target;if(this.options.menuPosRef){var a=XF.findRelativeIf(this.options.menuPosRef,
this.$target);if(a.length&&(this.$menuPosRef=a,this.options.arrowPosRef)){var b=XF.findRelativeIf(this.options.arrowPosRef,this.$target);b.closest(a).length&&(this.$arrowPosRef=b)}}this.$target.attr("aria-controls",this.$menu.xfUniqueId());this.$menu.find(".menu-arrow").length||this.$menu.prepend('<span class="menu-arrow" />');var c=this;this.$menu.data("menu-trigger",this).on("click","[data-menu-closer]",function(){c.close()}).on({"menu:open":function(){c.open(XF.Feature.has("touchevents"))},"menu:close":function(){c.close()},
"menu:reposition":function(){c.isOpen()&&c.reposition()},keydown:XF.proxy(this,"keyboardEvent")});a=this.$menu.closest(".tooltip");if(a.length)a.on("tooltip:hidden",XF.proxy(this,"close"));if(a=this.$menu.data("menu-builder"))if(XF.MenuBuilder[a])XF.MenuBuilder[a](this.$menu,this.$target,this);else console.error("No menu builder "+a+" found")}else console.error("No menu found for %o",this.$target[0])},click:function(a){if(!(a.ctrlKey||a.shiftKey||a.altKey)||!this.$target.attr("href")){var b=XF.isEventTouchTriggered(a),
c=!0;!b&&this.isOpen()&&(c=!1);c&&a.preventDefault();this.toggle(b,XF.NavDeviceWatcher.isKeyboardNav())}},isOpen:function(){return this.$target.hasClass(this.options.targetOpenClass)},toggle:function(a){this.isOpen()?this.close():this.open(a)},open:function(a){var b=this.$menu,c=this.$target,d=this.$menuPosRef,e=0;if(!this.isOpen()&&!b.hasClass("is-disabled")){b.appendTo("body");this.updateMenuDimensions();this.updatePositionReferences();var g=this;this.$target.hasFixableParent()&&(this.scrollFunction=
function(){c.is(":hidden")?g.close():g.repositionFixed(!0)},b.addClass("menu--potentialFixed"),f(m).onPassive("scroll",this.scrollFunction));if(this.options.zIndexRef){var h=XF.findRelativeIf(this.options.zIndexRef,c);h.length&&(e=XF.getElEffectiveZIndex(h))}XF.setRelativeZIndex(b,c,0,e);XF.MenuWatcher.onOpen(b,a);this.reposition();c.attr("aria-expanded","true").addClassTransitioned(this.options.targetOpenClass);b.attr("aria-hidden","false").addClassTransitioned(this.options.openClass,XF.proxy(function(){b.addClassTransitioned(this.options.completeClass)},
this));d.addClassTransitioned(this.options.targetOpenClass);this.$target.trigger("menu:opened",[b]);b.trigger("menu:opened");if(!XF.isIOS()||!this.isPotentiallyFixed)b.on("menu:complete",function(){setTimeout(function(){XF.autoFocusWithin(b,"[autofocus], [data-menu-autofocus]")},10)});if(b.data("href")){if(!b.data("menu-loading")){b.data("menu-loading",!0);var k=b.data("nocache")?!1:!0;XF.ajax("get",b.data("href"),{},function(l){k&&b.data("href",!1);l.html&&XF.setupHtmlInsert(l.html,function(n,p,
r){(p=b.data("load-target"))?b.find(p).first().empty().html(n):b.html(n);g.$target.trigger("menu:loaded",[n,b]);g.updateMenuDimensions();r();setTimeout(XF.proxy(g,"reposition"),0);g.$target.trigger("menu:complete",[b]);b.trigger("menu:complete")})},{cache:k}).always(function(){b.data("menu-loading",!1)})}}else this.$target.trigger("menu:complete",[b]),b.trigger("menu:complete")}},reposition:function(a,b){if(!this.$menu.data("ios-scroll-timeout")||a){this.updatePositionReferences();this.$menu.css({visibility:"hidden",
display:"block",position:"",top:"",bottom:"",left:"",right:""});a=f(m).viewport();var c={};c=this.getHorizontalPosition(a,c);c=this.getVerticalPosition(a,c,b);c.display="";c.visibility="";this.$menu.css(c)}},repositionFixed:function(a){var b=this.$menu;if(a&&XF.isIOS()){a=b.data("ios-scroll-timeout");var c=this;clearTimeout(a);a=setTimeout(function(){b.removeData("ios-scroll-timeout");c.reposition()},300);b.data("ios-scroll-timeout",a)}else{this.updatePositionReferences();var d=this.$target.data("menu-h");
a=b.data("menu-reset-timer");if(d&&this.menuRef.left==d[0]&&this.menuRef.width==d[1]){d=f(m).viewport();var e=this.$target.hasFixedParent()?"fixed":"absolute",g={top:parseInt(b.css("top"),10)};this.menuIsUp=this.$menu.hasClass("menu--up");a&&clearTimeout(a);"fixed"==e&&e!=b.css("position")?(g={"transition-property":"none","transition-duration":"0s"},g=this.getVerticalFixedPosition(d,g)):"absolute"==e&&(g={"transition-property":"none","transition-duration":"0s"},g=this.getVerticalAbsolutePosition(d,
g));b.css(g).toggleClass("menu--up",this.menuIsUp);a=setTimeout(function(){b.css({"transition-property":"","transition-duration":""})},250);b.data("menu-reset-timer",a)}else this.reposition()}},getHorizontalPosition:function(a,b){var c=!1,d=0;this.menuWidth>a.width?d=this.menuRef.left-a.left:this.menuRef.left+this.menuRef.width/2>a.width*this.options.directionThreshold?(d=0-this.menuWidth+this.menuRef.width,c=!0):this.menuRef.width>this.menuWidth&&(d=Math.floor((this.menuRef.width-this.menuWidth)/
2));d=Math.min(d,a.right-this.menuWidth-this.menuRef.left-5);d=Math.max(d,a.left-this.menuRef.left+5);b.left=this.menuRef.left+d;this.$target.data("menu-h",[this.menuRef.left,this.menuRef.width,d]);this.$menu.toggleClass("menu--left",!c).toggleClass("menu--right",c);a=Math.min(this.arrowRef.left-this.menuRef.left+this.arrowRef.width/2-d,this.menuWidth-20);this.$menu.find(".menu-arrow").css({top:"",left:a});return b},getVerticalPosition:function(a,b,c){this.menuIsUp=!1;b=!c&&this.$target.hasFixedParent()?
this.getVerticalFixedPosition(a,b):this.getVerticalAbsolutePosition(a,b);this.$menu.toggleClass("menu--up",this.menuIsUp);return b},getVerticalFixedPosition:function(a,b){b.top=Math.max(0,Math.round(this.menuRef.bottom)-a.top)-this.getTopShift();b.position="fixed";b.top+this.menuHeight+a.top>a.bottom&&this.menuRef.top-this.menuHeight>a.top?(b.top="",b.bottom=a.bottom-this.menuRef.top+5,this.menuIsUp=!0):this.menuIsUp=!1;return b},getVerticalAbsolutePosition:function(a,b){b.top=this.menuRef.bottom-
this.getTopShift();b.position="";b.top+this.menuHeight>a.bottom&&this.menuRef.top-this.menuHeight>a.top?(b.top="",b.bottom=a.height-this.menuRef.top+5,this.menuIsUp=!0):this.menuIsUp=!1;return b},getTopShift:function(){return this.$menu.hasClass("menu--structural")?parseInt(XF.config.borderSizeFeature,10):0},updateMenuDimensions:function(){this.menuWidth=this.$menu.outerWidth(!0);this.menuHeight=this.$menu.outerHeight(!0);return{menuWidth:this.menuWidth,menuHeight:this.menuHeight}},updatePositionReferences:function(){this.menuRef=
this.$menuPosRef.dimensions(!0);this.arrowRef=this.$arrowPosRef==this.$menuPosRef?this.menuRef:this.$arrowPosRef.dimensions(!0);return{menuRef:this.menuRef,arrowRef:this.arrowRef}},close:function(){if(this.isOpen()){var a=this.$menu;this.$target.attr("aria-expanded","false").removeClassTransitioned(this.options.targetOpenClass);a.attr("aria-hidden","true").removeClass(this.options.completeClass).removeClassTransitioned(this.options.openClass);this.$menuPosRef.removeClassTransitioned(this.options.targetOpenClass);
f(m).offPassive("scroll",this.scrollFunction);XF.MenuWatcher.onClose(a);this.$target.trigger("menu:closed",[a]);a.trigger("menu:closed")}},keyboardEvent:function(a){if(("ArrowUp"==a.key||"ArrowDown"==a.key)&&XF.Keyboard.isShortcutAllowed(q.activeElement)&&f(q.activeElement).closest(".menu").get(0)==this.$menu.get(0)){var b=f(q.activeElement),c=b.closest(".menu").find("a");b=c.index(b)+("ArrowUp"==a.key?-1:1);0>b?b=c.length-1:b>=c.length&&(b=0);f(c.get(b)).focus();a.preventDefault();return!1}}});XF.MenuWatcher=
function(){var a=f([]),b=null,c=!1,d=!1,e=function(k){d||h(k.target)},g=function(k){a.trigger("menu:reposition")},h=function(k){if(!c){c=!0;var l=f(k);a.each(function(){var n=f(this).data("menu-trigger"),p=n?n.$target:null;l.closest(this).length||p&&l.closest(p).length||n&&n.close()});c=!1}};return{onOpen:function(k,l){b||(b=f('<div class="menuOutsideClicker" />').on("click",e).insertBefore(k));a.length||(f(q).on("click",e),f(m).onPassive("resize",g),l&&b.addClass("is-active"));a=a.add(k)},onClose:function(k){a=
a.not(k);a.length||(f(q).off("click",e),f(m).offPassive("resize",g),b&&b.removeClass("is-active"));h(k)},closeAll:function(){c=!0;a.trigger("menu:close");c=!1},closeUnrelated:h,preventDocClick:function(){d=!0},allowDocClick:function(){d=!1}}}();XF.MenuBuilder={actionBar:function(a,b,c){var d=a.find(".js-menuBuilderTarget");b.closest(".actionBar-set").find(".actionBar-action--menuItem").each(function(){var e=f(this).clone();e.removeClass().addClass("menu-linkRow");d.append(e)});XF.activate(d)},dataList:function(a,
b,c){var d=a.find(".js-menuBuilderTarget");b.closest(".dataList-row").find(".dataList-cell--responsiveMenuItem").each(function(){f(this).clone().children().each(function(){var e=f(this);e.is("a")?e.removeClass().addClass("menu-linkRow"):e.wrap('<div class="menu-row"></div>');d.append(e)})});XF.activate(d)}};XF.MenuProxy=XF.Event.newHandler({eventNameSpace:"XFMenuProxy",options:{trigger:null},$trigger:null,init:function(){this.$trigger=XF.findRelativeIf(this.options.trigger,this.$target);if(!this.$trigger||
!this.$trigger.length)throw Error("Specified menu trigger not found");},click:function(a){setTimeout(XF.proxy(function(){this.$trigger.trigger("click",[a])},this),0)}});XF.OffCanvasClick=XF.Event.newHandler({eventNameSpace:"XFOffCanvasClick",options:{menu:null,openClass:"is-active"},$menu:null,init:function(){this.options.menu&&(this.$menu=XF.findRelativeIf(this.options.menu,this.$target));this.$menu&&this.$menu.length||(this.$menu=this.$target.nextAll("[data-menu]").first());if(this.$menu.length){this.$menu.on("click",
"[data-menu-close]",XF.proxy(this,"closeTrigger")).on("off-canvas:close",XF.proxy(this,"closeTrigger")).on("off-canvas:open",XF.proxy(this,"openTrigger"));var a=this.$menu.data("ocm-builder");if(a)if(XF.OffCanvasBuilder[a])XF.OffCanvasBuilder[a](this.$menu,this);else console.error("No off canvas builder "+a+" found")}else console.error("No menu found for %o",this.$target[0])},click:function(a){a.preventDefault();this.toggle()},isOpen:function(){return this.$menu.hasClass(this.options.openClass)},
toggle:function(){this.isOpen()?this.close():this.open()},openTrigger:function(a){a.preventDefault();this.open()},open:function(){if(!this.isOpen()){var a=this.$menu;this.addOcmClasses(a);a.attr("aria-hidden","false").trigger("off-canvas:opening");a.addClassTransitioned(this.options.openClass,function(){a.trigger("off-canvas:opened")});XF.Modal.open()}},addOcmClasses:function(a){var b=a.attr("data-ocm-class");b&&a.addClass(b);a.find("[data-ocm-class]").each(function(){var c=f(this);c.addClass(c.attr("data-ocm-class"))})},
removeOcmClasses:function(a){var b=a.attr("data-ocm-class");b&&a.removeClass(b);a.find("[data-ocm-class]").each(function(){var c=f(this);c.removeClass(c.attr("data-ocm-class"))})},closeTrigger:function(a,b){a.preventDefault();this.close(b&&b.instant)},close:function(a){if(this.isOpen()){var b=this.$menu,c=this;b.attr("aria-hidden","true").trigger("off-canvas:closing");b.removeClassTransitioned(this.options.openClass,function(){b.trigger("off-canvas:closed");c.removeOcmClasses(b)},a);XF.Modal.close()}}});
XF.OffCanvasBuilder={navigation:function(a,b){a.appendTo("body");var c=f('<ul class="offCanvasMenu-list" />');f(".js-offCanvasNavSource .p-navEl").each(function(){var d=f(this),e=d.hasClass("is-selected"),g=d.find(".p-navEl-link"),h=d.find("[data-menu]");d.data("has-children")&&!h.length&&(d=d.find('[data-xf-click~="menu"]').first().data("xf-click-handlers"))&&d.menu&&(h=d.menu.$menu);if(g.length){d=f('<div class="offCanvasMenu-linkHolder" />');var k=g.clone();g=f("<li />");k.removeClass("p-navEl-link p-navEl-link--menuTrigger p-navEl-link--splitMenu").addClass("offCanvasMenu-link");
!k.is("a")&&h.length&&k.attr("data-xf-click","menu-proxy").attr("data-trigger","< :up | .offCanvasMenu-link--splitToggle");d.html(k);e&&(g.addClass("is-selected"),d.addClass("is-selected"));g.html(d);if(h.length){k=f('<a class="offCanvasMenu-link offCanvasMenu-link--splitToggle" data-xf-click="toggle" data-target="< :up :next" role="button" tabindex="0" />');e&&k.addClass("is-active");d.append(k);var l=f('<ul class="offCanvasMenu-subList" />');e&&l.addClass("is-active");h.find(".menu-linkRow").each(function(){var n=
f(this),p=f("<li />");p.html(n.clone().removeClass("menu-linkRow").addClass("offCanvasMenu-link"));l.append(p)});g.append(l)}c.append(g)}});a=a.find(".js-offCanvasNavTarget").append(c);XF.activate(a)},sideNav:function(a,b){var c=a.find(".offCanvasMenu-content"),d=b.$target;c.find("[data-menu-close]").length||(b=c.find(".block-header").first(),b.length||(b=f('<div class="offCanvasMenu-header offCanvasMenu-header--separated offCanvasMenu-shown" />'),b.html(d.html()),c.prepend(b)),b.append('<a class="offCanvasMenu-closer" data-menu-close="true" role="button" tabindex="0" />'));
f(m).onPassive("resize",function(){d.is(":visible")||a.trigger("off-canvas:close")})},simple:function(a,b){a.appendTo("body");var c=f('<ul class="offCanvasMenu-list" />'),d=a.data("ocm-link-remove-class");f(a.data("ocm-link-target")).each(function(){var e=f(this),g=f('<div class="offCanvasMenu-linkHolder" />');e=e.clone().addClass("offCanvasMenu-link");var h=f("<li />");d&&e.removeClass(d);g.html(e);h.html(g);c.append(h)});a=a.find(".js-offCanvasTarget").append(c);XF.activate(a)}};XF.OverlayClick=
XF.Event.newHandler({eventNameSpace:"XFOverlayClick",options:{cache:!0,overlayConfig:{},forceFlashMessage:!1,followRedirects:!1,closeMenus:!0},overlay:null,loadUrl:null,loading:!1,visible:!1,init:function(){var a=this.getOverlayHtml();if(a)this.setupOverlay(new XF.Overlay(a,this.options.overlayConfig));else{a=this.getLoadUrl();if(!a)throw Error("Could not find an overlay for target");this.loadUrl=a}this.options.closeMenus&&XF.MenuWatcher.closeAll()},click:function(a){a.preventDefault();this.toggle()},
toggle:function(){this.overlay?this.overlay.toggle():this.show()},show:function(){if(this.overlay)this.overlay.show();else if(!this.loading){this.loading=!0;var a=this,b={cache:this.options.cache,beforeShow:function(c){a.overlay=c},init:XF.proxy(this,"setupOverlay")};this.options.followRedirects&&(b.onRedirect=function(c,d){a.options.forceFlashMessage?XF.flashMessage(c.message,1E3,function(){XF.redirect(c.redirect)}):XF.redirect(c.redirect)});(b=XF.loadOverlay(this.loadUrl,b,this.options.overlayConfig))?
b.always(function(){setTimeout(function(){a.loading=!1},300)}):this.loading=!1}},hide:function(){this.overlay&&this.overlay.hide()},getOverlayHtml:function(){var a=this.$target,b=a.data("target");if(b){var c=a.find(b).eq(0);c.length||(c=f(b).eq(0))}c&&c.length||(a=a.attr("href"))&&"#"==a.substr(0,1)&&(c=f(a).eq(0));c&&c.length&&!c.is(".overlay")&&(c=XF.getOverlayHtml(c));return c&&c.length?c:null},getLoadUrl:function(){var a=this.$target;return a.data("href")||a.attr("href")||null},setupOverlay:function(a){this.overlay=
a;var b=this;a.on({"overlay:shown":function(){b.visible=!0},"overlay:hidden":function(){b.visible=!1}});if(!this.options.cache&&this.loadUrl)a.on("overlay:hidden",function(){b.overlay=null});return this.overlay}});XF.OverlayClick.overlayCache={};XF.ToggleClick=XF.Event.newHandler({eventNameSpace:"XFToggleClick",options:{target:null,container:null,hide:null,activeClass:"is-active",activateParent:null,scrollTo:null},$toggleTarget:null,$toggleParent:null,toggleUrl:null,ajaxLoaded:!1,loading:!1,init:function(){this.$toggleTarget=
XF.getToggleTarget(this.options.target,this.$target);if(!this.$toggleTarget)return!1;this.options.activateParent&&(this.$toggleParent=this.$target.parent());this.toggleUrl=this.getToggleUrl()},click:function(a){a.preventDefault();this.$toggleTarget&&this.toggle()},isVisible:function(){return this.$toggleTarget.hasClass(this.options.activeClass)},isTransitioning:function(){return this.$toggleTarget.hasClass("is-transitioning")},toggle:function(){this.isVisible()?this.hide():this.show();this.$target.blur()},
load:function(){var a=this.toggleUrl,b=this;a&&!this.loading&&(this.loading=!0,XF.ajax("get",a,function(c){c.html&&XF.setupHtmlInsert(c.html,function(d,e,g){if(e=b.$toggleTarget.data("load-selector"))e=d.find(e).first(),e.length&&(d=e);b.ajaxLoaded=!0;b.$toggleTarget.append(d);XF.activate(d);g(!0);b.show();return!1})}).always(function(){b.ajaxLoaded=!0;b.loading=!1}))},hide:function(a){if(this.isVisible()&&!this.isTransitioning()){var b=this.options.activeClass;this.$toggleParent&&this.$toggleParent.removeClassTransitioned(b,
this.inactiveTransitionComplete,a);this.$toggleTarget&&this.$toggleTarget.removeClassTransitioned(b,this.inactiveTransitionComplete,a);this.$target.removeClassTransitioned(b,this.inactiveTransitionComplete,a)}},show:function(a){if(!this.isVisible()&&!this.isTransitioning()&&!this.getOtherToggles().filter(".is-transitioning").length)if(this.toggleUrl&&!this.ajaxLoaded)this.load();else{this.closeOthers();var b=this.options.activeClass;this.$toggleParent&&this.$toggleParent.addClassTransitioned(b,this.activeTransitionComplete,
a);this.$toggleTarget&&this.$toggleTarget.addClassTransitioned(b,this.activeTransitionComplete,a);this.$target.addClassTransitioned(b,this.activeTransitionComplete,a);this.hideSpecified();this.scrollTo();XF.autoFocusWithin(this.$toggleTarget,"[autofocus], [data-toggle-autofocus]")}},activeTransitionComplete:function(a){f(this).trigger("toggle:shown");XF.layoutChange()},inactiveTransitionComplete:function(a){f(this).trigger("toggle:hidden");XF.layoutChange()},closeOthers:function(){this.getOtherToggles().each(function(){var a=
f(this).data("xf-click-handlers");a||(a=XF.Event.initElement(this,"click"));a&&a.toggle&&a.toggle.hide(!0)})},hideSpecified:function(){var a=f(this.options.hide);a&&a.length&&a.hide()},scrollTo:function(){if(this.options.scrollTo){var a=this.$toggleTarget,b=a.offset().top;a=a.height();var c=f(m).height();XF.smoothScroll(a<c?b-(c/2-a/2):b)}},getToggleUrl:function(){var a=this.$toggleTarget,b;return a&&(b=a.data("href"))?"trigger-href"==b?this.$target.attr("href"):b:null},getContainer:function(){if(this.options.container){var a=
this.$target.closest(this.options.container);if(a.length)return a;console.error("Container parent not found: "+this.options.container)}return null},getOtherToggles:function(){var a=this.getContainer();return a&&a.length?a.find("[data-xf-click~=toggle]").not(this.$target[0]):f([])}});XF.getToggleTarget=function(a,b){a=a?XF.findRelativeIf(a,b):b.next();if(!a.length)throw Error("No toggle target for %o",b);return a};XF.ToggleStorage=XF.Element.newHandler({options:{storageType:"local",storageContainer:"toggle",
storageKey:null,storageExpiry:86400,target:null,container:null,hide:null,activeClass:"is-active",activateParent:null},targetId:null,storage:null,init:function(){var a=this.options.storageContainer;if(!a)throw Error("Storage container not specified for ToggleStorage handler");var b=this.options.storageKey;if(!b)throw Error("Storage key not specified for ToggleStorage handler");this.storage=XF.ToggleStorageData.getInstance(this.options.storageType);if(!this.storage)throw Error("Invalid storage type "+
this.options.storageType);b=this.storage.get(a,b,{allowExpired:!1,touch:!1});if(null!==b){var c=XF.getToggleTarget(this.options.target,this.$target);if(c.length){var d=this.options.activeClass;this.$target.toggleClass(d,b);c.toggleClass(d,b)}}this.storage.prune(a);this.$target.on("xf-click:after-click.XFToggleClick",XF.proxy(this,"updateStorage"))},updateStorage:function(){var a=this.options;this.storage.set(a.storageContainer,a.storageKey,this.$target.hasClass(a.activeClass),a.storageExpiry)}});
XF.ToggleStorageDataInstance=XF.create({storage:null,dataCache:{},syncTimers:{},pruneTimers:{},__construct:function(a){this.storage=a},getStorage:function(){return this.storage},get:function(a,b,c){c||(c={});var d=!0,e=!0;c.hasOwnProperty("allowExpired")&&(d=c.allowExpired);c.hasOwnProperty("touch")&&(e=c.touch);this.dataCache[a]||(this.dataCache[a]=this.storage.getJson(a));c=this.dataCache[a];if(!c.hasOwnProperty(b))return null;c=c[b];var g=Math.floor(Date.now()/1E3);if(!d&&c[0]+c[1]<g)return delete this.dataCache[a][b],
this.scheduleSync(a),null;e&&(c[0]=g,this.dataCache[a][b]=c,this.scheduleSync(a));return c[2]},set:function(a,b,c,d){this.dataCache[a]||(this.dataCache[a]={});d||(d=14400);var e=Math.floor(Date.now()/1E3);this.dataCache[a][b]=[e,d,c];this.scheduleSync(a)},remove:function(a,b){this.dataCache[a]||(this.dataCache[a]={});delete this.dataCache[a][b];this.scheduleSync(a)},prune:function(a,b){var c=this.pruneTimers[a],d=this,e=function(){clearTimeout(c);d.pruneTimers[a]=null;d.pruneInternal(a)};b?e():c||
(this.pruneTimers[a]=setTimeout(e,100))},pruneInternal:function(a){this.dataCache[a]||(this.dataCache[a]=this.storage.getJson(a));var b=this.dataCache[a],c=Math.floor(Date.now()/1E3),d=!1,e;for(e in b)if(b.hasOwnProperty(e)){var g=b[e];g[0]+g[1]<c&&(delete b[e],d=!0)}d&&(this.dataCache[a]=b,this.scheduleSync(a))},scheduleSync:function(a,b){var c=this.syncTimers[a],d=this,e=function(){clearTimeout(c);d.syncTimers[a]=null;d.syncToStorage(a)};b?e():c||(d.syncTimers[a]=setTimeout(e,100))},syncToStorage:function(a){if(this.dataCache[a]){var b=
this.dataCache[a];if(f.isEmptyObject(b))this.storage.remove(a);else if(this.storage.supportsExpiryDate()){var c=XF.getFutureDate(1,"year");this.storage.setJson(a,b,c)}else this.storage.setJson(a,b)}}});XF.ToggleStorageData=function(){var a={local:new XF.ToggleStorageDataInstance(XF.LocalStorage),cookie:new XF.ToggleStorageDataInstance(XF.Cookie)},b=a.local;return{getInstance:function(c){return a[c]},get:function(c,d,e){return b.get(c,d,e)},set:function(c,d,e,g){return b.set(c,d,e,g)},remove:function(c,
d){return b.remove(c,d)},prune:function(c,d){return b.prune(c,d)}}}();XF.ToggleClassClick=XF.Event.newHandler({eventNameSpace:"XFToggleClassClick",options:{class:null},init:function(){},click:function(a){this.options.class&&this.toggle()},toggle:function(){this.$target.toggleClass(this.options.class)}});XF.HScroller=XF.Element.newHandler({options:{scrollerClass:"hScroller-scroll",actionClass:"hScroller-action",autoScroll:".tabs-tab.is-active"},$scrollTarget:null,$goStart:null,$goEnd:null,init:function(){var a=
this.$target.find("."+this.options.scrollerClass).first();if(a.length){this.$scrollTarget=a;var b,c,d=this;a.on("mousedown.horizontalScroller",function(l){l.button||(b=l.clientX,c=!1,l.preventDefault(),XF.isEventTouchTriggered(l)&&(l=f(q.activeElement),l.is(":input")&&l.blur()),f(m).on("mouseup.horizontalScroller",function(n){f(m).off(".horizontalScroller");c&&n.preventDefault()}).on("mousemove.horizontalScroller",function(n){var p=b-n.clientX;0!=p&&(d.move(p)&&(c=!0),b=n.clientX)}))}).on("click.horizontalScroller",
function(l){c&&(l.preventDefault(),l.stopImmediatePropagation(),c=!1)}).on("scroll.horizontalScroller",XF.proxy(this,"updateScroll")).on("tab:click.horizontalScroller",function(l){c&&l.preventDefault()});var e=XF.measureScrollBar(null,"height");a.addClass("is-calculated");0!=e&&a.css("margin-bottom",parseInt(a.css("margin-bottom"),10)-e+"px");e=this.options.actionClass;this.$goStart=f('<i class="'+e+" "+e+'--start" aria-hidden="true" />').click(function(){d.step(-1)}).insertAfter(a);this.$goEnd=f('<i class="'+
e+" "+e+'--end" aria-hidden="true" />').click(function(){d.step(1)}).insertAfter(a);this.updateScroll();f(q.body).on("xf:layout",XF.proxy(this,"updateScroll"));var g;f(m).on("resize",function(){g&&clearTimeout(g);g=setTimeout(XF.proxy(d,"updateScroll"),100)});var h=a.find(this.options.autoScroll).first();if(h.length){e=this.$target.width();var k=h.position();h=h.outerWidth();k=k.left;h=k+h;XF.isRtl()?80>k&&a.normalizedScrollLeft(-h+e-50):h>e&&(h+80>e?a.normalizedScrollLeft(k-50):a.normalizedScrollLeft(k-
80))}}else console.error("no scroll target")},scrollToStart:function(){this.scrollTo(0)},scrollToEnd:function(){this.scrollTo(this.$scrollTarget[0].scrollWidth)},scrollTo:function(a){this.$scrollTarget.animate({scrollLeft:a},150)},move:function(a){var b=this.$scrollTarget,c=b.normalizedScrollLeft();XF.isRtl()&&(a*=-1);b.normalizedScrollLeft(c+a);return b.normalizedScrollLeft()!==c},step:function(a){var b=Math.max(125,Math.floor(.25*this.$scrollTarget.width())),c="+=";switch(f.support.scrollLeftType){case "inverted":case "negative":c=
"-="}this.scrollTo(c+a*b)},updateScroll:function(){var a=this.$scrollTarget[0],b=this.$scrollTarget.normalizedScrollLeft();a=a.offsetWidth+b+1<a.scrollWidth;this.$goStart[0<b?"addClass":"removeClass"]("is-active");this.$goEnd[a?"addClass":"removeClass"]("is-active")}});XF.ResponsiveDataList=XF.Element.newHandler({options:{headerRow:".dataList-row--header",headerCells:"th, td",rows:".dataList-row:not(.dataList-row--subSection, .dataList-row--header)",rowCells:"td",triggerWidth:"narrow"},$headerRow:null,
headerText:[],$rows:null,isResponsive:!1,init:function(){var a=this.$target.find(this.options.headerRow).first(),b=[];a.find(this.options.headerCells).each(function(){var c=f(this),d=c.text();c=parseInt(c.attr("colspan"),10);b.push(f.trim(d));if(1<c)for(d=1;d<c;d++)b.push("")});this.$headerRow=a;this.headerText=b;this.$rows=this.$target.find(this.options.rows);this.process();f(q).on("breakpoint:change",XF.proxy(this,"process"))},process:function(){var a=XF.Breakpoint.isAtOrNarrowerThan(this.options.triggerWidth);
a&&this.isResponsive||!a&&!this.isResponsive||(a?this.apply():this.remove())},apply:function(){var a=this;this.$rows.each(function(){a.processRow(f(this),!0)});this.$target.addClass("dataList--responsive");this.$headerRow.addClass("dataList-row--headerResponsive");this.isResponsive=!0},remove:function(){var a=this;this.$rows.each(function(){a.processRow(f(this),!1)});this.$target.removeClass("dataList--responsive");this.$headerRow.removeClass("dataList-row--headerResponsive");this.isResponsive=!1},
processRow:function(a,b){var c=0,d=this.headerText;a.find(this.options.rowCells).each(function(){var e=f(this);if(b){var g=d[c];g&&g.length&&!e.data("hide-label")?e.attr("data-cell-label",g):e.removeAttr("data-cell-label")}else e.removeAttr("data-cell-label");c++})}});XF.Sticky=XF.Element.newHandler({options:{parent:null,inner_scrolling:!0,sticky_class:"is-sticky",offset_top:null,spacer:null,bottoming:null,recalc_every:null},init:function(){"false"==this.options.spacer&&(this.options.spacer=!1);this.$target.stick_in_parent(this.options)}});
XF.StickyHeader=XF.Element.newHandler({options:{stickyClass:"is-sticky",stickyBrokenClass:"is-sticky-broken",stickyDisabledClass:"is-sticky-disabled",minWindowHeight:251},active:null,supportsSticky:!1,stickyBroken:!1,windowTooSmall:!1,init:function(){var a=this.$target.css("position");a="sticky"==a||"-webkit-sticky"==a;var b=!1;if(a){var c=m.navigator.userAgent,d=c.match(/Chrome\/(\d+)/);d&&60>parseInt(d[1],10)&&(b=!0,a=!1);(d=c.match(/ Edge\/(\d+)/))&&17<=parseInt(d[1],10)&&XF.isRtl()&&(b=!0,a=!1)}this.supportsSticky=
a;this.stickyBroken=b;this.update();f(m).on("resize.sticky-header",XF.proxy(this,"update"));XF.StickyHeader.cache.push(this)},update:function(){(this.windowTooSmall=f(m).height()<this.options.minWindowHeight)?!1!==this.active&&this._disable():this.active||this._enable()},_enable:function(){this.active=!0;var a=this.$target,b=this.options.stickyClass,c=this.options.stickyBrokenClass;a.removeClass(this.options.stickyDisabledClass);if(this.supportsSticky){var d=!1,e=parseInt(a.css("top"),10),g=XF.isIOS(),
h,k=function(l){var n=Math.floor(a[0].getBoundingClientRect().top);n<e||n==e&&0<m.scrollY?d||(a.addClass(b),XF.layoutChange(),d=!0):d&&(g&&l?(clearTimeout(h),h=setTimeout(function(){k(!1)},200)):(a.removeClass(b),XF.layoutChange(),d=!1))};f(m).on("scroll.sticky-header",function(){k(!0)});k(!1)}else this.stickyBroken&&setTimeout(function(){a.addClass(c)},0),a.stick_in_parent({sticky_class:b})},_disable:function(){this.active=!1;var a=this.$target,b=this.options.stickyClass,c=this.options.stickyBrokenClass,
d=this.options.stickyDisabledClass;this.supportsSticky?f(m).off("scroll.sticky-header"):a.trigger("sticky_kit:detach").removeData("sticky_kit");a.removeClass(b).removeClass(c).addClass(d)}});XF.StickyHeader.cache=[];XF.Tabs=XF.Element.newHandler({options:{tabs:".tabs-tab",panes:null,activeClass:"is-active",state:null,preventDefault:!0},initial:0,$tabs:null,$panes:null,$activeTab:null,$activePane:null,init:function(){var a=this.$target;var b=this.$tabs=a.find(this.options.tabs);a=this.options.panes?
XF.findRelativeIf(this.options.panes,a):a.next();a.is("ol, ul")&&(a=a.find("> li"));this.$panes=a;if(b.length!=a.length)console.error("Tabs and panes contain different totals: %d tabs, %d panes",b.length,a.length),console.error("Tabs: %o, Panes: %o",b,a);else{for(a=0;a<b.length;a++)if(b.eq(a).hasClass(this.options.activeClass)){this.initial=a;break}b.on("click",XF.proxy(this,"tabClick"));f(m).on("hashchange",XF.proxy(this,"onHashChange"));f(m).on("popstate",XF.proxy(this,"onPopState"));this.reactToHash()}},
getSelectorFromHash:function(){var a="";if(1<m.location.hash.length){var b=m.location.hash.replace(/[^a-zA-Z0-9_-]/g,"");b&&b.length&&(a="#"+b)}return a},reactToHash:function(){var a=this.getSelectorFromHash();a?this.activateTarget(a):this.activateTab(this.initial)},onHashChange:function(a){this.reactToHash()},onPopState:function(a){(a=a.originalEvent.state)&&a.id?this.activateTarget("#"+a.id,!1):a&&a.offset?this.activateTab(a.offset):this.activateTab(this.initial)},activateTarget:function(a){var b=
this.$tabs,c=!1,d=!1;if(a){try{var e=f(a);c=e&&0<e.length}catch(g){c=!1}if(c)for(c=0;c<b.length;c++)b.eq(c).is(a)&&(this.activateTab(c),d=!0)}d||this.activateTab(this.initial)},activateTab:function(a){var b=this.$tabs.eq(a),c=this.$panes.eq(a),d=this.options.activeClass;b.length&&c.length?(this.$tabs.filter("."+d).removeClass(d).attr("aria-selected","false").trigger("tab:hidden"),this.$panes.filter("."+d).removeClass(d).attr("aria-expanded","false").trigger("tab:hidden"),b.addClass(d).attr("aria-selected",
"true").trigger("tab:shown"),c.addClass(d).attr("aria-expanded","true").trigger("tab:shown"),XF.layoutChange(),c.data("href")&&!c.data("tab-loading")&&(c.data("tab-loading",!0),XF.ajax("get",c.data("href"),{},function(e){c.data("href",!1);if(e.html){var g=c.data("load-target"),h=c.data("source-selector");h&&(e.html.content=f(e.html.content).find(h));g?XF.setupHtmlInsert(e.html,c.find(g)):XF.setupHtmlInsert(e.html,c)}}).always(function(){c.data("tab-loading",!1)}))):console.error("Selected invalid tab "+
a)},tabClick:function(a){var b=a.currentTarget,c=this.$tabs.index(b);if(-1==c)console.error("Did not find clicked element (%o) in tabs",b);else{b=this.$tabs.eq(c);var d=f.Event("tab:click");b.trigger(d,this);if(!d.isDefaultPrevented()){this.options.preventDefault&&a.preventDefault();if(this.options.state)switch(a=m.location.href.split("#")[0],b.attr("id")?(a=a+"#"+b.attr("id"),b={id:b.attr("id")}):b={offset:c},this.options.state){case "replace":m.history.replaceState(b,"",a);break;case "push":m.history.pushState(b,
"",a)}this.activateTab(c)}}}});XF.PageJump=XF.Element.newHandler({options:{pageUrl:null,pageInput:"| .js-pageJumpPage",pageSubmit:"| .js-pageJumpGo",sentinel:"%page%"},$input:null,init:function(){var a=this;this.options.pageUrl?(this.$input=XF.findRelativeIf(this.options.pageInput,this.$target),this.$input.length?(this.$input.on("keyup",function(b){"Enter"==b.key&&(b.preventDefault(),a.go())}),XF.findRelativeIf(this.options.pageSubmit,this.$target).on("click",function(b){b.preventDefault();a.go()}),
this.$target.closest(".menu").on("menu:opened",function(){a.shown()})):console.error("No input provided to page jump")):console.error("No page-url provided to page jump")},shown:function(){this.$input.select()},go:function(){var a=parseInt(this.$input.val(),10);1>a&&(a=1);var b=this.options.pageUrl,c=this.options.sentinel,d=b.replace(c,a);d==b&&(d=b.replace(encodeURIComponent(c),a));XF.redirect(d)}});XF.QuickSearch=XF.Element.newHandler({options:{select:"| .js-quickSearch-constraint"},$select:null,
init:function(){this.$select=XF.findRelativeIf(this.options.select,this.$target);this.$select.on("change",XF.proxy(this,"updateSelectWidth"));this.updateSelectWidth()},updateSelectWidth:function(){if(this.$select.length){var a=f("<span />").addClass(this.$select.attr("class")).addClass("input--select"),b=this.$select.find("option:selected");b.length||(b=this.$select.find("option").first());a.text(b.text());a.css("display","inline");b=f("<div />");b.css({position:"absolute",top:-200,visibility:"hidden"});
b.css(XF.isRtl()?"right":"left",-9999);a.appendTo(b);b.appendTo("body");this.$select.css({width:a.outerWidth()+8,"flex-grow":0,"flex-shrink":0});b.remove()}}});XF.TouchProxy=XF.Element.newHandler({options:{allowed:":input, :checkbox, a, label, [data-tp-clickable], [data-tp-primary]"},active:!0,timer:null,$proxy:null,init:function(){var a=this;if("InputDeviceCapabilities"in m||"sourceCapabilities"in UIEvent.prototype)this.$target.click(function(c){var d=c.originalEvent;d&&d.sourceCapabilities&&d.sourceCapabilities.firesTouchEvents&&
a.handleTapEvent(c)});else if(XF.Feature.has("touchevents")){var b=!1;this.$target.on("touchstart",function(){b=!1}).on("touchmove",function(){b=!0}).on("touchend",function(c){b||a.handleTapEvent(c)})}},isClickable:function(a){a=f(a).closest(this.options.allowed);return!(!a.length||!this.$target.find(a).length)},handleTapEvent:function(a){this.getProxy().length&&this.active&&!this.isClickable(a.target)&&(a.preventDefault(),this.trigger())},getProxy:function(){if(!this.$proxy){var a=this.$target.find("[data-tp-primary]").first();
a.length||(a=this.$target.find("a[href]").first());this.$proxy=a}return this.$proxy},trigger:function(a){a=this.getProxy();if(a.length){this.timer&&clearTimeout(this.timer);this.active=!1;a[0].click?a[0].click():a.click();var b=this;this.timer=setTimeout(function(){b.active=!0},500)}}});XF.ShifterClick=XF.Event.newHandler({eventNameSpace:"XFShifterClick",options:{selector:null,dir:"up"},$element:null,init:function(){this.$element=this.$target.closest(this.options.selector)},click:function(a){"down"==
this.options.dir?this.$element.insertAfter(this.$element.next()):this.$element.insertBefore(this.$element.prev())}});XF.VideoInit=XF.Element.newHandler({options:{},video:null,loaded:!1,init:function(){XF.isIOS()&&(this.video=this.$target[0].cloneNode(!0),this.video.load(),this.video.addEventListener("loadeddata",XF.proxy(this,"hasLoaded")),this.video.addEventListener("seeked",XF.proxy(this,"hasSeeked")))},hasLoaded:function(){this.loaded||(this.loaded=!0,this.video.currentTime=0)},hasSeeked:function(){var a=
f("<canvas />")[0],b=this.$target.width(),c=this.$target.height(),d=a.getContext("2d");a.width=b;a.height=c;d.drawImage(this.video,0,0,b,c);if(a){var e=this;a.toBlob(function(g){g&&(g=URL.createObjectURL(g),e.$target.attr("poster",g))})}}});XF.RemoverClick=XF.Event.newHandler({eventNameSpace:"XFRemoverClick",options:{selector:null},$targetElement:null,init:function(){this.$targetElement=XF.findRelativeIf(this.options.selector,this.$target)},click:function(a){this.$targetElement.length&&(this.$targetElement.remove(),
XF.layoutChange())}});XF.DuplicatorClick=XF.Event.newHandler({eventNameSpace:"XFDuplicatorClick",options:{selector:null},$targetElement:null,init:function(){this.$targetElement=XF.findRelativeIf(this.options.selector,this.$target)},click:function(a){this.$targetElement.length&&(a=this.$targetElement.clone(!0).insertAfter(this.$targetElement),XF.layoutChange(),this.$targetElement.closest("[data-xf-init~=list-sorter]").length&&f(m).trigger("listSorterDuplication",a))}});XF.Event.register("click","inserter",
"XF.InserterClick");XF.Event.register("click","menu","XF.MenuClick");XF.Event.register("click","menu-proxy","XF.MenuProxy");XF.Event.register("click","off-canvas","XF.OffCanvasClick");XF.Event.register("click","overlay","XF.OverlayClick");XF.Event.register("click","toggle","XF.ToggleClick");XF.Event.register("click","toggle-class","XF.ToggleClassClick");XF.Event.register("click","shifter","XF.ShifterClick");XF.Event.register("click","remover","XF.RemoverClick");XF.Event.register("click","duplicator",
"XF.DuplicatorClick");XF.Element.register("focus-inserter","XF.InserterFocus");XF.Element.register("h-scroller","XF.HScroller");XF.Element.register("page-jump","XF.PageJump");XF.Element.register("quick-search","XF.QuickSearch");XF.Element.register("responsive-data-list","XF.ResponsiveDataList");XF.Element.register("sticky","XF.Sticky");XF.Element.register("sticky-header","XF.StickyHeader");XF.Element.register("tabs","XF.Tabs");XF.Element.register("toggle-storage","XF.ToggleStorage");XF.Element.register("touch-proxy",
"XF.TouchProxy");XF.Element.register("video-init","XF.VideoInit");f(q).on("xf:page-load-complete",function(){var a=m.location.hash.replace(/[^a-zA-Z0-9_-]/g,"");a&&(a=a?f("#"+a):f(),a.length&&(a=a.closest("[data-toggle-wrapper]"),a.length&&(a=a.find('[data-xf-click~="toggle"]').first(),a.length&&(a=XF.Event.getElementHandler(a,"toggle","click"))&&a.show(!0))))})}(jQuery,window,document);