diff --git a/.gitignore b/.gitignore index be217e55..37c30a2d 100644 --- a/.gitignore +++ b/.gitignore @@ -45,6 +45,10 @@ !/tests/widget-system/front-submit-editor-contract.test.cjs !/tests/widget-system/comment-smilies-removal-contract.test.cjs !/tests/widget-system/lightbox-contract.test.cjs +!/tests/widget-system/homepage-dom-contract.test.cjs +!/tests/widget-system/rehydrate-runtime-contract.test.cjs +!/tests/widget-system/global-dom-init-contract.test.cjs +!/tests/widget-system/public-bundle-parity-contract.test.cjs !/tests/widget-system/comment-children-list-reset-contract.test.cjs !/tests/widget-system/pay-card-contract.test.cjs !/tests/widget-system/circular-button-icon-margin-contract.test.cjs diff --git a/assets/js/aksrt-runtime.js b/assets/js/aksrt-runtime.js index 44f02898..60fc172d 100644 --- a/assets/js/aksrt-runtime.js +++ b/assets/js/aksrt-runtime.js @@ -269,64 +269,7 @@ }); }, true); - // ══════════════════════════════════════════════════════════════ - // §10.10a — 拦截 vendor 评论脚本 & 解绑 vendor ajax 委托 - // ══════════════════════════════════════════════════════════════ - // vendor 链路:loader.js(tbquire,改造版 RequireJS)→ main.min.js 检测到 - // #commentform/#postcomments 即 tbquire(["comment"]) 懒加载 comment.min.js; - // 检测到 .dropdown-code/.dropdown-image 即 tbquire(["input-expand"])。 - // AKSRT 自有评论脚本(comments/comment-tools/comment-fixed-input/ - // comment-move-form/comment-ajax)已承担全部行为,vendor comment.min.js 的 - // 7 条 body 委托会双路触发(提交 legacy action=submit_comment 无处理器, - // 即控制台「ajax请求错误」400 "0" 的来源;回复/排序/分页同理); - // vendor input-expand.min.js(表情/快捷回复旧链路,源文件已删除)同理不再下载。 - // - // 双层防御: - // 1) tbfine 预注册空 'comment'/'input-expand' 模块 → tbquire 不再下载; - // 2) 若模块抢在注册前加载,退化为对 7 条委托做幂等 .off。 - function stubVendorCommentModule() { - if (!(window.tbfine && window.tbquire && window.tbquire.defined)) return false; - try { - ['comment', 'input-expand'].forEach(function (name) { - if (!window.tbquire.defined(name)) { - window.tbfine(name, [], function () { return {}; }); - } - }); - return true; - } catch (e) { - return false; - } - } - - // main.min.js 的 body 级 legacy 委托同理摘除(vendor 只保留 UI 行为)。 - function unbindVendorAjaxDelegates() { - stubVendorCommentModule(); - if (!window.jQuery) return; - try { - var $body = jQuery('body'); - $body.off('click', '[data-action]'); - $body.off('click', '[ajax-action]'); - $body.off('click', '.wp-ajax-submit,[zibajax="submit"]'); - $body.off('click', '.initiate-checkin'); - $body.off('click', '.oauth-untying'); - // comment.min.js 的 7 条委托(legacy/js/comment.js 原始选择器) - $body.off('click', '[fixed-input]'); - $body.off('click', '.commentlist .pagenav a,.comment-orderby'); - $body.off('click', '.comment-edit-link,.comment-reply-link'); - $body.off('keydown', '#comment'); - $body.off('click', '.comment-trash-link'); - $body.off('click', '.comment-approve-link'); - $body.off('click', '#commentform #submit'); - } catch (e) { /* vendor 运行时未就绪时忽略 */ } - } - var unbindVendorAjaxLoop = function () { - unbindVendorAjaxDelegates(); - if (++unbindVendorAjaxLoop.tries >= 50) return; // ~10s @200ms 覆盖异步加载窗口 - setTimeout(unbindVendorAjaxLoop, 200); - }; - unbindVendorAjaxLoop.tries = 0; - unbindVendorAjaxLoop(); - + // Vendor modules are no longer dynamically loaded by the canonical frontend path. // ══════════════════════════════════════════════════════════════ // §10.11 — [data-action] / [ajax-action] universal buttons // ══════════════════════════════════════════════════════════════ @@ -533,13 +476,7 @@ // §10.11 — auto_fun: extended rehydration coverage // ══════════════════════════════════════════════════════════════ - aksrt.autoFun = function (root) { - root = root || document; - if (window.AksrtFrontend) { - AksrtFrontend.rehydrate(root, 'ajax'); - } - - // Tooltips + function initTooltips(root) { root.querySelectorAll('[data-tooltip]').forEach(function (el) { if (el.dataset.tooltipBound) return; el.dataset.tooltipBound = '1'; @@ -557,8 +494,9 @@ if (el._aksrtTooltip) { el._aksrtTooltip.remove(); el._aksrtTooltip = null; } }); }); + } - // Countdowns + function initCountdowns(root) { root.querySelectorAll('[data-countdown]').forEach(function (el) { if (el.dataset.countdownBound) return; el.dataset.countdownBound = '1'; @@ -572,6 +510,20 @@ el.textContent = (m < 10 ? '0' : '') + m + ':' + (s < 10 ? '0' : '') + s; }, 1000); }); + } + + AksrtFrontend.register('aksrt-tooltips', initTooltips); + AksrtFrontend.register('aksrt-countdowns', initCountdowns); + + aksrt.autoFun = function (root, reason) { + root = root || document; + reason = reason || 'ajax'; + if (!window.AksrtFrontend) return; + if (reason === 'init' && typeof AksrtFrontend.boot === 'function') { + AksrtFrontend.boot(root); + } else { + AksrtFrontend.rehydrate(root, reason); + } }; // ══════════════════════════════════════════════════════════════ @@ -590,7 +542,7 @@ // ── DOMContentLoaded ── function initRuntime() { - aksrt.autoFun(document); + aksrt.autoFun(document, 'init'); } if (document.readyState === 'loading') { diff --git a/assets/js/auth.js b/assets/js/auth.js index f02f864f..71974db6 100644 --- a/assets/js/auth.js +++ b/assets/js/auth.js @@ -8,6 +8,8 @@ var modal = null; var lastModalTrigger = null; var qrStates = []; + var globalEventsBound = false; + var oauthResultChecked = false; var oauthErrorMessages = { access_denied: '已取消第三方授权', cancelled: '已取消第三方授权', @@ -507,6 +509,17 @@ } function initRoot(root) { + root = root || document; + if (root.nodeType === 1 && root.matches('[data-aksrt-auth]')) { + initAuthRoot(root); + return; + } + if (root.querySelectorAll) root.querySelectorAll('[data-aksrt-auth]').forEach(initAuthRoot); + } + + function initAuthRoot(root) { + if (root.dataset.aksrtAuthInitialized === '1') return; + root.dataset.aksrtAuthInitialized = '1'; root.querySelectorAll('input').forEach(function (input) { if (!input.hasAttribute('placeholder')) input.setAttribute('placeholder', ' '); }); @@ -662,10 +675,14 @@ } } - function init() { - showOAuthResultToast(); - document.querySelectorAll('[data-aksrt-auth]').forEach(initRoot); + function initGlobal() { modal = document.querySelector('[data-auth-modal]'); + if (!oauthResultChecked) { + oauthResultChecked = true; + showOAuthResultToast(); + } + if (globalEventsBound) return; + globalEventsBound = true; document.addEventListener('click', function (event) { var trigger = event.target.closest('[data-aksrt-auth-required], .aksrt-login-trigger, #nav-login-btn, .signin-loader, .signup-loader, .qrcode-signin'); if (!trigger) return; @@ -673,17 +690,7 @@ var tab = trigger.classList.contains('signup-loader') ? 'signup' : (trigger.classList.contains('qrcode-signin') ? 'oauth' : 'signin'); openModal(tab, trigger.dataset.authRedirect || window.location.href, trigger); }); - if (modal) { - modal.addEventListener('click', function (event) { - if (event.target.closest('[data-auth-close]')) closeModal(true); - }); - document.addEventListener('keydown', handleModalKeydown); - if (modal.dataset.auto === '1' && Number(window.localStorage.getItem('aksrtAuthAutoUntil') || 0) < Date.now()) { - window.setTimeout(function () { - openModal(modal.querySelector('[data-aksrt-auth]').dataset.initialTab || 'signin', window.location.href, null); - }, Math.max(1, Number(modal.dataset.autoWait) || 5) * 1000); - } - } + document.addEventListener('keydown', handleModalKeydown); document.addEventListener('visibilitychange', function () { qrStates.forEach(function (state) { if (document.visibilityState !== 'visible') stopQr(state.root); @@ -692,6 +699,25 @@ }); } - if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); - else init(); + function initModal() { + if (!modal || modal.dataset.aksrtAuthModalInitialized === '1') return; + modal.dataset.aksrtAuthModalInitialized = '1'; + modal.addEventListener('click', function (event) { + if (event.target.closest('[data-auth-close]')) closeModal(true); + }); + if (modal.dataset.auto === '1' && Number(window.localStorage.getItem('aksrtAuthAutoUntil') || 0) < Date.now()) { + window.setTimeout(function () { + var root = modal.querySelector('[data-aksrt-auth]'); + if (root) openModal(root.dataset.initialTab || 'signin', window.location.href, null); + }, Math.max(1, Number(modal.dataset.autoWait) || 5) * 1000); + } + } + + if (window.AksrtFrontend && typeof window.AksrtFrontend.register === 'function') { + window.AksrtFrontend.register('aksrt-auth', function (root) { + initGlobal(); + initRoot(root); + initModal(); + }); + } }()); diff --git a/assets/js/author.js b/assets/js/author.js index ef37a4b1..e10c3b09 100644 --- a/assets/js/author.js +++ b/assets/js/author.js @@ -13,14 +13,30 @@ (function () { 'use strict'; + var globalEventsBound = false; + + function elementsIn(root, selector) { + var elements = []; + root = root || document; + if (root.nodeType === 1 && root.matches(selector)) elements.push(root); + if (root.querySelectorAll) root.querySelectorAll(selector).forEach(function (element) { elements.push(element); }); + return elements; + } + + function elementById(root, id) { + root = root || document; + if (root.nodeType === 1 && root.id === id) return root; + return root.querySelector ? root.querySelector('#' + id) : null; + } + function notifyLoadError() { if (typeof notyf === 'function') { notyf('加载失败,请重试', 'danger'); } } - function initPublicDashboards() { - document.querySelectorAll('.dashboard--public').forEach(function (root) { + function initPublicDashboards(scope) { + elementsIn(scope, '.dashboard--public').forEach(function (root) { if (root.dataset.aksrtAuthorBound === '1') return; root.dataset.aksrtAuthorBound = '1'; @@ -138,13 +154,13 @@ }); } - function initCoverUpload() { + function initCoverUpload(root) { var cfg = window.aksrtAuthorPage || {}; var upload = cfg.coverUpload || null; if (!upload || !upload.enabled || !upload.restUrl) return; - var btn = document.getElementById(upload.buttonId || 'aksrt-upload-bg-btn'); - var input = document.getElementById(upload.inputId || 'aksrt-bg-file-input'); + var btn = elementById(root, upload.buttonId || 'aksrt-upload-bg-btn'); + var input = elementById(root, upload.inputId || 'aksrt-bg-file-input'); if (!btn || !input || btn.dataset.aksrtCoverBound === '1') return; btn.dataset.aksrtCoverBound = '1'; @@ -238,13 +254,13 @@ }); } - function initAvatarUpload() { + function initAvatarUpload(root) { var upload = (window.aksrtUserCenter || {}).avatarUpload; if (!upload || !upload.enabled || !upload.restUrl) return; - var button = document.getElementById(upload.buttonId || 'aksrt-upload-avatar-btn'); - var input = document.getElementById(upload.inputId || 'aksrt-avatar-file-input'); - var image = document.getElementById(upload.imageId || 'aksrt-user-avatar-image'); + var button = elementById(root, upload.buttonId || 'aksrt-upload-avatar-btn'); + var input = elementById(root, upload.inputId || 'aksrt-avatar-file-input'); + var image = elementById(root, upload.imageId || 'aksrt-user-avatar-image'); if (!button || !input || button.dataset.aksrtAvatarBound === '1') return; button.dataset.aksrtAvatarBound = '1'; @@ -297,8 +313,8 @@ }); } - function initCoverMenus() { - document.querySelectorAll('[data-aksrt-menu]').forEach(function (menu) { + function initCoverMenus(root) { + elementsIn(root, '[data-aksrt-menu]').forEach(function (menu) { if (menu.dataset.aksrtMenuBound === '1') return; menu.dataset.aksrtMenuBound = '1'; var trigger = menu.querySelector('.aksrt-cover-menu__trigger'); @@ -320,34 +336,54 @@ } trigger.addEventListener('click', function () { panel.hidden ? open() : close(); }); menu.addEventListener('keydown', function (event) { if (event.key === 'Escape') { close(); trigger.focus(); } }); - document.addEventListener('pointerdown', function (event) { if (!menu.contains(event.target)) close(); }); }); } - function initProfileDetailsModal() { - var modal = document.getElementById('aksrt-profile-details-modal'); - if (!modal) return; + function initProfileDetailsModal(root) { + var modal = elementById(root, 'aksrt-profile-details-modal'); + if (!modal || modal.dataset.aksrtProfileModalBound === '1') return; + modal.dataset.aksrtProfileModalBound = '1'; var dialog = modal.querySelector('.aksrt-profile-details-modal__dialog'); var returnFocus = null; function close() { modal.hidden = true; if (returnFocus) returnFocus.focus(); } - document.querySelectorAll('[data-aksrt-profile-details]').forEach(function (button) { + elementsIn(root, '[data-aksrt-profile-details]').forEach(function (button) { button.addEventListener('click', function () { returnFocus = button; modal.hidden = false; if (dialog) dialog.focus(); }); }); modal.querySelectorAll('[data-aksrt-modal-close]').forEach(function (button) { button.addEventListener('click', close); }); - document.addEventListener('keydown', function (event) { if (event.key === 'Escape' && !modal.hidden) close(); }); } - function init() { - initPublicDashboards(); - initCoverMenus(); - initProfileDetailsModal(); - initCoverUpload(); - initAvatarUpload(); + function initGlobalEvents() { + if (globalEventsBound) return; + globalEventsBound = true; + document.addEventListener('pointerdown', function (event) { + document.querySelectorAll('[data-aksrt-menu]').forEach(function (menu) { + if (menu.contains(event.target)) return; + var panel = menu.querySelector('.aksrt-cover-menu__panel'); + var trigger = menu.querySelector('.aksrt-cover-menu__trigger'); + if (panel) panel.hidden = true; + if (trigger) trigger.setAttribute('aria-expanded', 'false'); + }); + }); + document.addEventListener('keydown', function (event) { + if (event.key !== 'Escape') return; + var modal = document.getElementById('aksrt-profile-details-modal'); + if (modal && !modal.hidden) { + var close = modal.querySelector('[data-aksrt-modal-close]'); + if (close) close.click(); + } + }); } - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', init); - } else { - init(); + function init(root) { + initGlobalEvents(); + initPublicDashboards(root); + initCoverMenus(root); + initProfileDetailsModal(root); + initCoverUpload(root); + initAvatarUpload(root); + } + + if (window.AksrtFrontend && typeof window.AksrtFrontend.register === 'function') { + window.AksrtFrontend.register('aksrt-author', init); } })(); diff --git a/assets/js/ban-appeal-page.js b/assets/js/ban-appeal-page.js index 74c750e8..157c24b2 100644 --- a/assets/js/ban-appeal-page.js +++ b/assets/js/ban-appeal-page.js @@ -9,9 +9,12 @@ if (window._win && window._win.ajax_url) return window._win.ajax_url; return '/wp-admin/admin-ajax.php'; } - function init() { - var form = document.querySelector('.aksrt-ban-appeal-form'); - if (!form) return; + function init(root) { + root = root || document; + var form = root.nodeType === 1 && root.matches('.aksrt-ban-appeal-form') + ? root : root.querySelector('.aksrt-ban-appeal-form'); + if (!form || form.dataset.aksrtBanAppealBound === '1') return; + form.dataset.aksrtBanAppealBound = '1'; form.addEventListener('submit', function (e) { e.preventDefault(); var btn = form.querySelector('button[type="submit"]'); @@ -32,6 +35,5 @@ .finally(function () { if (btn) btn.disabled = false; }); }); } - if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); - else init(); + window.AksrtFrontend.register('aksrt-ban-appeal-page', init); })(); diff --git a/assets/js/build/public.js b/assets/js/build/public.js index f2f13018..eb2dacd3 100644 --- a/assets/js/build/public.js +++ b/assets/js/build/public.js @@ -65,17 +65,8 @@ tbquire.config({ 'translate' : 'libs/translate.min', 'waterfall' : 'waterfall.min', 'enlighterjs' : 'enlighter/enlighterjs.min', - 'section-navs' : 'section-navs.min', - 'poster-share' : 'poster-share.min', - 'comment' : 'comment.min', - 'page-template' : 'page-template.min', - 'page-edit' : 'page-edit.min', - 'author' : 'author.min', - 'page-navs' : 'page-navs.min', - 'input-expand' : 'input-expand.min', 'mini-touch' : 'mini-touch.min', - 'mini-upload' : 'mini-upload.min', 'editextend' : 'editextend.min', 'petite-vue' : 'libs/petite-vue.iife', 'svg-icon' : 'svg-icon', @@ -133,8 +124,9 @@ tbquire.config({ * to initialize or re-initialize them on a given root element. * * Usage: - * AksrtFrontend.register('name', initFn); // Register a component - * AksrtFrontend.rehydrate(root, 'init'); // Initialize all components + * AksrtFrontend.register('name', initFn); // Register a component + * AksrtFrontend.boot(document); // One-time initial page load + * AksrtFrontend.rehydrate(root, 'ajax'); // Initialize dynamic content * * @package AKSRT * @since 5.0.0 @@ -143,7 +135,25 @@ tbquire.config({ 'use strict'; var _registry = []; - var _initialized = []; + var _booted = false; + var _bootRoot = null; + + function invoke(entry, root, reason) { + try { + entry.initFn(root, reason); + } catch (err) { + console.error('[AKSRT Rehydrate] Error initializing "' + entry.name + '":', err); + } + } + + function dispatch(root, reason, eventName) { + try { + root.dispatchEvent(new CustomEvent(eventName, { + bubbles: true, + detail: { reason: reason } + })); + } catch (e) { /* IE fallback */ } + } window.AksrtFrontend = { @@ -159,10 +169,26 @@ tbquire.config({ for (var i = 0; i < _registry.length; i++) { if (_registry[i].name === name) { _registry[i].initFn = initFn; + if (_booted) invoke(_registry[i], _bootRoot || document, 'init'); return; } } - _registry.push({ name: name, initFn: initFn }); + var entry = { name: name, initFn: initFn }; + _registry.push(entry); + if (_booted) invoke(entry, _bootRoot || document, 'init'); + }, + + /** + * Run the one-time initial page boot. + * + * @param {Element|Document} root The document root to initialize + */ + boot: function (root) { + if (_booted) return; + _booted = true; + _bootRoot = root || document; + this.rehydrate(_bootRoot, 'init'); + dispatch(_bootRoot, 'init', 'aksrt:ready'); }, /** @@ -180,21 +206,10 @@ tbquire.config({ reason = reason || 'init'; for (var i = 0; i < _registry.length; i++) { - var entry = _registry[i]; - try { - entry.initFn(root, reason); - } catch (err) { - console.error('[AKSRT Rehydrate] Error initializing "' + entry.name + '":', err); - } + invoke(_registry[i], root, reason); } - // Dispatch event so external scripts can hook in - try { - root.dispatchEvent(new CustomEvent('aksrt:rehydrated', { - bubbles: true, - detail: { reason: reason } - })); - } catch (e) { /* IE fallback */ } + dispatch(root, reason, 'aksrt:rehydrated'); }, /** @@ -202,6 +217,10 @@ tbquire.config({ */ getRegistered: function () { return _registry.map(function (r) { return r.name; }); + }, + + isBooted: function () { + return _booted; } }; @@ -543,64 +562,7 @@ tbquire.config({ }); }, true); - // ══════════════════════════════════════════════════════════════ - // §10.10a — 拦截 vendor 评论脚本 & 解绑 vendor ajax 委托 - // ══════════════════════════════════════════════════════════════ - // vendor 链路:loader.js(tbquire,改造版 RequireJS)→ main.min.js 检测到 - // #commentform/#postcomments 即 tbquire(["comment"]) 懒加载 comment.min.js; - // 检测到 .dropdown-code/.dropdown-image 即 tbquire(["input-expand"])。 - // AKSRT 自有评论脚本(comments/comment-tools/comment-fixed-input/ - // comment-move-form/comment-ajax)已承担全部行为,vendor comment.min.js 的 - // 7 条 body 委托会双路触发(提交 legacy action=submit_comment 无处理器, - // 即控制台「ajax请求错误」400 "0" 的来源;回复/排序/分页同理); - // vendor input-expand.min.js(表情/快捷回复旧链路,源文件已删除)同理不再下载。 - // - // 双层防御: - // 1) tbfine 预注册空 'comment'/'input-expand' 模块 → tbquire 不再下载; - // 2) 若模块抢在注册前加载,退化为对 7 条委托做幂等 .off。 - function stubVendorCommentModule() { - if (!(window.tbfine && window.tbquire && window.tbquire.defined)) return false; - try { - ['comment', 'input-expand'].forEach(function (name) { - if (!window.tbquire.defined(name)) { - window.tbfine(name, [], function () { return {}; }); - } - }); - return true; - } catch (e) { - return false; - } - } - - // main.min.js 的 body 级 legacy 委托同理摘除(vendor 只保留 UI 行为)。 - function unbindVendorAjaxDelegates() { - stubVendorCommentModule(); - if (!window.jQuery) return; - try { - var $body = jQuery('body'); - $body.off('click', '[data-action]'); - $body.off('click', '[ajax-action]'); - $body.off('click', '.wp-ajax-submit,[zibajax="submit"]'); - $body.off('click', '.initiate-checkin'); - $body.off('click', '.oauth-untying'); - // comment.min.js 的 7 条委托(legacy/js/comment.js 原始选择器) - $body.off('click', '[fixed-input]'); - $body.off('click', '.commentlist .pagenav a,.comment-orderby'); - $body.off('click', '.comment-edit-link,.comment-reply-link'); - $body.off('keydown', '#comment'); - $body.off('click', '.comment-trash-link'); - $body.off('click', '.comment-approve-link'); - $body.off('click', '#commentform #submit'); - } catch (e) { /* vendor 运行时未就绪时忽略 */ } - } - var unbindVendorAjaxLoop = function () { - unbindVendorAjaxDelegates(); - if (++unbindVendorAjaxLoop.tries >= 50) return; // ~10s @200ms 覆盖异步加载窗口 - setTimeout(unbindVendorAjaxLoop, 200); - }; - unbindVendorAjaxLoop.tries = 0; - unbindVendorAjaxLoop(); - + // Vendor modules are no longer dynamically loaded by the canonical frontend path. // ══════════════════════════════════════════════════════════════ // §10.11 — [data-action] / [ajax-action] universal buttons // ══════════════════════════════════════════════════════════════ @@ -807,13 +769,7 @@ tbquire.config({ // §10.11 — auto_fun: extended rehydration coverage // ══════════════════════════════════════════════════════════════ - aksrt.autoFun = function (root) { - root = root || document; - if (window.AksrtFrontend) { - AksrtFrontend.rehydrate(root, 'ajax'); - } - - // Tooltips + function initTooltips(root) { root.querySelectorAll('[data-tooltip]').forEach(function (el) { if (el.dataset.tooltipBound) return; el.dataset.tooltipBound = '1'; @@ -831,8 +787,9 @@ tbquire.config({ if (el._aksrtTooltip) { el._aksrtTooltip.remove(); el._aksrtTooltip = null; } }); }); + } - // Countdowns + function initCountdowns(root) { root.querySelectorAll('[data-countdown]').forEach(function (el) { if (el.dataset.countdownBound) return; el.dataset.countdownBound = '1'; @@ -846,6 +803,20 @@ tbquire.config({ el.textContent = (m < 10 ? '0' : '') + m + ':' + (s < 10 ? '0' : '') + s; }, 1000); }); + } + + AksrtFrontend.register('aksrt-tooltips', initTooltips); + AksrtFrontend.register('aksrt-countdowns', initCountdowns); + + aksrt.autoFun = function (root, reason) { + root = root || document; + reason = reason || 'ajax'; + if (!window.AksrtFrontend) return; + if (reason === 'init' && typeof AksrtFrontend.boot === 'function') { + AksrtFrontend.boot(root); + } else { + AksrtFrontend.rehydrate(root, reason); + } }; // ══════════════════════════════════════════════════════════════ @@ -864,7 +835,7 @@ tbquire.config({ // ── DOMContentLoaded ── function initRuntime() { - aksrt.autoFun(document); + aksrt.autoFun(document, 'init'); } if (document.readyState === 'loading') { @@ -2948,19 +2919,6 @@ tbquire.config({ } } - document.addEventListener('click', function (e) { - var trigger = e.target && e.target.closest ? e.target.closest('[fixed-input]') : null; - if (!trigger) return; - e.preventDefault(); - var targetSel = trigger.getAttribute('fixed-input') || '#respond'; - var panel = document.querySelector(targetSel); - var comments = document.getElementById('comments'); - if (comments && comments.scrollIntoView) { - comments.scrollIntoView({ behavior: 'smooth', block: 'start' }); - } - FixedInput(panel, 'show'); - }); - // Autoheight textareas. function bindAutoheight(ta) { if (!ta || ta.dataset.autoheightBound) return; @@ -2976,25 +2934,50 @@ tbquire.config({ resize(); } - function scan() { - document.querySelectorAll('textarea[autoheight], textarea.grin').forEach(bindAutoheight); + function scopeFor(root) { + return root && root.querySelectorAll ? root : document; } - document.addEventListener('DOMContentLoaded', scan); - if (window.AksrtFrontend && typeof window.AksrtFrontend.register === 'function') { - window.AksrtFrontend.register('aksrt-comment-fixed-input', function (root) { - scan(); - // Expose for submit hide. - root = root || document; - var respond = root.querySelector ? root.querySelector('#respond') : document.getElementById('respond'); - if (respond) { - respond.aksrtFixedInput = function (action) { - FixedInput(respond, action); - }; + function scan(root) { + var scope = scopeFor(root); + if (scope.nodeType === 1 && scope.matches('textarea[autoheight], textarea.grin')) { + bindAutoheight(scope); + } + scope.querySelectorAll('textarea[autoheight], textarea.grin').forEach(bindAutoheight); + } + + var globalsBound = false; + function bindGlobals() { + if (globalsBound) return; + globalsBound = true; + document.addEventListener('click', function (e) { + var trigger = e.target && e.target.closest ? e.target.closest('[fixed-input]') : null; + if (!trigger) return; + e.preventDefault(); + var targetSel = trigger.getAttribute('fixed-input') || '#respond'; + var panel = document.querySelector(targetSel); + var comments = document.getElementById('comments'); + if (comments && comments.scrollIntoView) { + comments.scrollIntoView({ behavior: 'smooth', block: 'start' }); } + FixedInput(panel, 'show'); }); } + window.AksrtFrontend.register('aksrt-comment-fixed-input', function (root, reason) { + bindGlobals(); + scan(root); + root = root || document; + var respond = root.nodeType === 1 && root.matches && root.matches('#respond') + ? root + : (root.querySelector ? root.querySelector('#respond') : document.getElementById('respond')); + if (respond) { + respond.aksrtFixedInput = function (action) { + FixedInput(respond, action); + }; + } + }); + window.AksrtFixedInput = FixedInput; })(); ; @@ -4241,6 +4224,18 @@ tbquire.config({ (function () { "use strict"; + var globalsBound = false; + + function scopeFor(root) { + return root && root.querySelectorAll ? root : document; + } + + function eachMatch(root, selector, callback) { + var scope = scopeFor(root); + if (scope.nodeType === 1 && scope.matches(selector)) callback(scope); + scope.querySelectorAll(selector).forEach(callback); + } + function renderGradientBackground(container) { if (!container || container.dataset.aksrtGradientState || typeof window.Grade !== "function") return; @@ -4269,26 +4264,15 @@ tbquire.config({ } function initGradientBackgrounds(root) { - var scope = root || document; - if (scope.nodeType === 1 && scope.matches(".gradient-bg")) { - renderGradientBackground(scope); - } - scope.querySelectorAll(".gradient-bg").forEach(renderGradientBackground); + eachMatch(root, ".gradient-bg", renderGradientBackground); } - document.addEventListener("lazyloaded", function (event) { - if (!(event.target instanceof Element) || !event.target.matches(".gradient-bg img")) return; - renderGradientBackground(event.target.closest(".gradient-bg")); - }, true); - function initPostThumbMedia(root) { - var scope = root || document; - - scope.querySelectorAll("[data-post-thumb-video]").forEach(function (box) { + eachMatch(root, "[data-post-thumb-video]", function (box) { if (box.dataset.aksrtThumbVideoBound === "1") return; - box.dataset.aksrtThumbVideoBound = "1"; var video = box.querySelector("video"); if (!video) return; + box.dataset.aksrtThumbVideoBound = "1"; function loadVideo() { if (!video.getAttribute("src") && video.dataset.src) { @@ -4319,25 +4303,17 @@ tbquire.config({ }); } - window.AksrtFrontend.register("aksrt-post-thumb-media", function (root) { - initPostThumbMedia(root); - initGradientBackgrounds(root); - }); - -})(); - -(function () { - "use strict"; - - function initSlideCovers() { - var covers = document.querySelectorAll(".single-cover--slide"); - covers.forEach(function (cover) { + function initSlideCovers(root) { + eachMatch(root, ".single-cover--slide", function (cover) { + if (cover.dataset.aksrtSlideCoverBound === "1") return; var slides = cover.querySelectorAll(".single-cover__slide"); var dots = cover.querySelectorAll(".single-cover__dot"); if (slides.length < 2) return; + cover.dataset.aksrtSlideCoverBound = "1"; var current = 0; var interval = 5000; + var timer = null; function goTo(idx) { slides[current].classList.remove("is-active"); @@ -4347,33 +4323,32 @@ tbquire.config({ if (dots[current]) dots[current].classList.add("is-active"); } - var timer = setInterval(function () { - goTo((current + 1) % slides.length); - }, interval); + function startTimer() { + timer = window.setInterval(function () { + goTo((current + 1) % slides.length); + }, interval); + } + startTimer(); dots.forEach(function (dot, i) { dot.addEventListener("click", function () { - clearInterval(timer); + window.clearInterval(timer); goTo(i); - timer = setInterval(function () { - goTo((current + 1) % slides.length); - }, interval); + startTimer(); }); }); }); } - if (document.readyState === "loading") { - document.addEventListener("DOMContentLoaded", initSlideCovers); - } else { - initSlideCovers(); - } -})(); + function bindGlobals() { + if (globalsBound) return; + globalsBound = true; -(function () { - "use strict"; + document.addEventListener("lazyloaded", function (event) { + if (!(event.target instanceof Element) || !event.target.matches(".gradient-bg img")) return; + renderGradientBackground(event.target.closest(".gradient-bg")); + }, true); - function initHiddenContent() { document.addEventListener("click", function (e) { var btn = e.target.closest(".aksrt-hidden-content__submit-btn"); if (!btn) return; @@ -4394,7 +4369,7 @@ tbquire.config({ var formData = new FormData(); formData.append("action", "aksrt_check_visibility"); - formData.append("_nonce", (window.aksrtData && aksrtData.visibilityNonce) || ""); + formData.append("_nonce", (window.aksrtData && window.aksrtData.visibilityNonce) || ""); formData.append("mode", mode); formData.append("pid", pid); if (password) formData.append("password", password); @@ -4402,7 +4377,7 @@ tbquire.config({ btn.disabled = true; btn.textContent = "..."; - fetch((window.aksrtData && aksrtData.ajaxUrl) || "/wp-admin/admin-ajax.php", { + fetch((window.aksrtData && window.aksrtData.ajaxUrl) || "/wp-admin/admin-ajax.php", { method: "POST", body: formData, credentials: "same-origin", @@ -4425,24 +4400,21 @@ tbquire.config({ }); }); - // Handle Enter key on password input document.addEventListener("keydown", function (e) { - if (e.key === "Enter" && e.target.classList.contains("aksrt-hidden-content__password-input")) { - e.preventDefault(); - var wrapper = e.target.closest(".aksrt-hidden-content--locked"); - if (wrapper) { - var btn = wrapper.querySelector(".aksrt-hidden-content__submit-btn"); - if (btn) btn.click(); - } - } + if (e.key !== "Enter" || !e.target.classList.contains("aksrt-hidden-content__password-input")) return; + e.preventDefault(); + var wrapper = e.target.closest(".aksrt-hidden-content--locked"); + var btn = wrapper ? wrapper.querySelector(".aksrt-hidden-content__submit-btn") : null; + if (btn) btn.click(); }); } - if (document.readyState === "loading") { - document.addEventListener("DOMContentLoaded", initHiddenContent); - } else { - initHiddenContent(); - } + window.AksrtFrontend.register("aksrt-misc", function (root, reason) { + bindGlobals(); + initPostThumbMedia(root); + initGradientBackgrounds(root); + initSlideCovers(root); + }); })(); ; @@ -4493,7 +4465,11 @@ tbquire.config({ } } - function initFollowButtons() { + var globalsBound = false; + + function initFollowButtons(root, reason) { + if (globalsBound) return; + globalsBound = true; document.addEventListener('click', function (event) { var button = event.target.closest('[data-aksrt-follow]'); if (!button) return; @@ -4541,11 +4517,7 @@ tbquire.config({ }); } - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', initFollowButtons); - } else { - initFollowButtons(); - } + window.AksrtFrontend.register('aksrt-follow', initFollowButtons); })(); ; @@ -4573,6 +4545,8 @@ tbquire.config({ var isAutoplay = false; var lastTrigger = null; var previousBodyOverflow = ''; + var globalsBound = false; + var scrollDirectionBound = false; var EXCLUDE_SEL = '.no-imgbox,.no-lightbox,.avatar,.img-icon,.avatar-badge,.aksrt-avatar,[data-no-lightbox],[data-aksrt-lightbox="0"]'; var TRIGGER_SEL = '[data-aksrt-lightbox="1"] img,.aksrt-lightbox-trigger img,.imgbox-container img,.comment-content .box-img'; var ANCHOR_TRIGGER_SEL = 'a[data-aksrt-lightbox-trigger]'; @@ -5048,7 +5022,9 @@ tbquire.config({ return openLightbox(item.fullSrc, item.caption, gallery.items, gallery.index, img); } - function initLightbox() { + function initLightbox(root, reason) { + if (globalsBound) return; + globalsBound = true; document.addEventListener('click', function (event) { if (!lightboxEnabled() || !(event.target instanceof Element)) return; @@ -5079,7 +5055,9 @@ tbquire.config({ // Scroll direction is handled by aksrt-runtime.js. Keep the prefixed // classes in sync for the remaining CSS consumers. - function initScrollDirection() { + function initScrollDirection(root, reason) { + if (scrollDirectionBound || !document.body) return; + scrollDirectionBound = true; var body = document.body; function sync() { @@ -5099,9 +5077,9 @@ tbquire.config({ }, { passive: true }); } - document.addEventListener('DOMContentLoaded', function () { - initLightbox(); - initScrollDirection(); + window.AksrtFrontend.register('aksrt-enhancements', function (root, reason) { + initLightbox(root, reason); + initScrollDirection(root, reason); }); })(); ; @@ -5118,11 +5096,27 @@ tbquire.config({ (function () { 'use strict'; - /* ============================================================ - * 1. 3D 悬停倾斜效果 (vanilla-tilt 轻量版) - * ============================================================ */ - function initTilt() { - document.querySelectorAll('[data-aksrt-tilt]').forEach(function (el) { + var animateObserver = null; + var rippleBound = false; + var stickyScrollBound = false; + var parallaxScrollBound = false; + var modalBound = false; + var stickyElements = []; + var parallaxElements = []; + var parallaxTicking = false; + + function scopeFor(root) { + return root && root.querySelectorAll ? root : document; + } + + function eachMatch(root, selector, callback) { + var scope = scopeFor(root); + if (scope.nodeType === 1 && scope.matches(selector)) callback(scope); + scope.querySelectorAll(selector).forEach(callback); + } + + function initTilt(root) { + eachMatch(root, '[data-aksrt-tilt]', function (el) { if (el.dataset.tiltInit) return; el.dataset.tiltInit = '1'; @@ -5167,232 +5161,186 @@ tbquire.config({ }); } - /* ============================================================ - * 2. 滚动触发动画 (IntersectionObserver) - * ============================================================ */ - function initScrollAnimations() { + function prepareAnimation(el) { + if (el.dataset.aksrtAnimateBound === '1') return; + el.dataset.aksrtAnimateBound = '1'; + var animation = el.dataset.aksrtAnimate || 'fadeInUp'; + el.style.opacity = '0'; + switch (animation) { + case 'fadeIn': el.style.transform = 'none'; break; + case 'fadeInUp': el.style.transform = 'translateY(30px)'; break; + case 'fadeInDown': el.style.transform = 'translateY(-30px)'; break; + case 'fadeInLeft': el.style.transform = 'translateX(-30px)'; break; + case 'fadeInRight': el.style.transform = 'translateX(30px)'; break; + case 'zoomIn': el.style.transform = 'scale(0.9)'; break; + default: el.style.transform = 'translateY(30px)'; + } + animateObserver.observe(el); + } + + function initScrollAnimations(root) { if (!('IntersectionObserver' in window)) { - // 不支持时直接显示所有元素 - document.querySelectorAll('[data-aksrt-animate]').forEach(function (el) { + eachMatch(root, '[data-aksrt-animate]', function (el) { el.style.opacity = '1'; el.style.transform = 'none'; }); return; } - var observer = new IntersectionObserver(function (entries) { - entries.forEach(function (entry) { - if (!entry.isIntersecting) return; - - var el = entry.target; - var animation = el.dataset.aksrtAnimate || 'fadeInUp'; - var delay = parseInt(el.dataset.aksrtAnimateDelay || '0', 10); - var duration = parseInt(el.dataset.aksrtAnimateDuration || '600', 10); - - setTimeout(function () { - el.style.transition = 'opacity ' + duration + 'ms ease, transform ' + duration + 'ms ease'; - el.style.opacity = '1'; - el.style.transform = 'translateY(0) translateX(0) scale(1)'; - el.classList.add('aksrt-animated'); - }, delay); - - observer.unobserve(el); - }); - }, { - threshold: 0.1, - rootMargin: '0px 0px -50px 0px', - }); - - document.querySelectorAll('[data-aksrt-animate]').forEach(function (el) { - var animation = el.dataset.aksrtAnimate || 'fadeInUp'; - - // 设置初始状态 - el.style.opacity = '0'; - switch (animation) { - case 'fadeIn': - el.style.transform = 'none'; - break; - case 'fadeInUp': - el.style.transform = 'translateY(30px)'; - break; - case 'fadeInDown': - el.style.transform = 'translateY(-30px)'; - break; - case 'fadeInLeft': - el.style.transform = 'translateX(-30px)'; - break; - case 'fadeInRight': - el.style.transform = 'translateX(30px)'; - break; - case 'zoomIn': - el.style.transform = 'scale(0.9)'; - break; - default: - el.style.transform = 'translateY(30px)'; - } - - observer.observe(el); - }); - } - - /* ============================================================ - * 5. 粘性元素 (Sticky) - * ============================================================ */ - function initSticky() { - document.querySelectorAll('[data-aksrt-sticky]').forEach(function (el) { - var top = parseInt(el.dataset.aksrtStickyTop || '80', 10); - var offset = parseInt(el.dataset.aksrtStickyOffset || '0', 10); - - function update() { - var rect = el.getBoundingClientRect(); - var parentRect = el.parentElement.getBoundingClientRect(); - - if (parentRect.top < top && parentRect.bottom > el.offsetHeight + top) { - el.style.position = 'sticky'; - el.style.top = top + 'px'; - } - } - - window.addEventListener('scroll', update, { passive: true }); - }); - } - - /* ============================================================ - * 6. 视差滚动 - * ============================================================ */ - function initParallax() { - var elements = document.querySelectorAll('[data-aksrt-parallax]'); - if (elements.length === 0) return; - - var ticking = false; - - function update() { - var scrollTop = window.pageYOffset; - elements.forEach(function (el) { - var speed = parseFloat(el.dataset.aksrtParallax || '0.3'); - var rect = el.getBoundingClientRect(); - var center = rect.top + rect.height / 2; - var windowCenter = window.innerHeight / 2; - var offset = (center - windowCenter) * speed; - - el.style.transform = 'translateY(' + offset + 'px)'; - }); - ticking = false; + if (!animateObserver) { + animateObserver = new IntersectionObserver(function (entries) { + entries.forEach(function (entry) { + if (!entry.isIntersecting) return; + var el = entry.target; + var delay = parseInt(el.dataset.aksrtAnimateDelay || '0', 10); + var duration = parseInt(el.dataset.aksrtAnimateDuration || '600', 10); + animateObserver.unobserve(el); + window.setTimeout(function () { + el.style.transition = 'opacity ' + duration + 'ms ease, transform ' + duration + 'ms ease'; + el.style.opacity = '1'; + el.style.transform = 'translateY(0) translateX(0) scale(1)'; + el.classList.add('aksrt-animated'); + }, delay); + }); + }, { threshold: 0.1, rootMargin: '0px 0px -50px 0px' }); } - window.addEventListener('scroll', function () { - if (!ticking) { - requestAnimationFrame(update); - ticking = true; - } - }, { passive: true }); + eachMatch(root, '[data-aksrt-animate]', prepareAnimation); } - /* ============================================================ - * 7. 涟漪点击效果 - * ============================================================ */ - function initRipple() { + function updateSticky() { + stickyElements = stickyElements.filter(function (el) { return document.documentElement.contains(el); }); + stickyElements.forEach(function (el) { + var top = parseInt(el.dataset.aksrtStickyTop || '80', 10); + var parent = el.parentElement; + if (!parent) return; + var parentRect = parent.getBoundingClientRect(); + if (parentRect.top < top && parentRect.bottom > el.offsetHeight + top) { + el.style.position = 'sticky'; + el.style.top = top + 'px'; + } + }); + } + + function initSticky(root) { + eachMatch(root, '[data-aksrt-sticky]', function (el) { + if (el.dataset.aksrtStickyBound === '1') return; + el.dataset.aksrtStickyBound = '1'; + stickyElements.push(el); + }); + if (!stickyScrollBound) { + stickyScrollBound = true; + window.addEventListener('scroll', updateSticky, { passive: true }); + } + updateSticky(); + } + + function updateParallax() { + parallaxElements = parallaxElements.filter(function (el) { return document.documentElement.contains(el); }); + parallaxElements.forEach(function (el) { + var speed = parseFloat(el.dataset.aksrtParallax || '0.3'); + var rect = el.getBoundingClientRect(); + var center = rect.top + rect.height / 2; + var offset = (center - window.innerHeight / 2) * speed; + el.style.transform = 'translateY(' + offset + 'px)'; + }); + parallaxTicking = false; + } + + function initParallax(root) { + eachMatch(root, '[data-aksrt-parallax]', function (el) { + if (el.dataset.aksrtParallaxBound === '1') return; + el.dataset.aksrtParallaxBound = '1'; + parallaxElements.push(el); + }); + if (!parallaxScrollBound) { + parallaxScrollBound = true; + window.addEventListener('scroll', function () { + if (parallaxTicking) return; + parallaxTicking = true; + requestAnimationFrame(updateParallax); + }, { passive: true }); + } + updateParallax(); + } + + function initRipple(root, reason) { + if (rippleBound) return; + rippleBound = true; document.addEventListener('click', function (e) { var el = e.target.closest('.aksrt-ripple'); if (!el) return; - var rect = el.getBoundingClientRect(); - var x = e.clientX - rect.left; - var y = e.clientY - rect.top; var size = Math.max(rect.width, rect.height) * 2; - var wave = document.createElement('span'); wave.className = 'aksrt-ripple__wave'; wave.style.width = wave.style.height = size + 'px'; - wave.style.left = (x - size / 2) + 'px'; - wave.style.top = (y - size / 2) + 'px'; - + wave.style.left = (e.clientX - rect.left - size / 2) + 'px'; + wave.style.top = (e.clientY - rect.top - size / 2) + 'px'; el.appendChild(wave); - - wave.addEventListener('animationend', function () { - wave.remove(); - }); + wave.addEventListener('animationend', function () { wave.remove(); }); }); } - /* ============================================================ - * 8. 表单浮动标签自动初始化 - * ============================================================ */ - function initFloatLabels() { - document.querySelectorAll('.aksrt-float-label__input').forEach(function (input) { - // 检查初始值 - if (input.value) { - input.setAttribute('data-has-value', '1'); - } + function initFloatLabels(root) { + eachMatch(root, '.aksrt-float-label__input', function (input) { + if (input.value) input.setAttribute('data-has-value', '1'); + if (input.dataset.aksrtFloatLabelBound === '1') return; + input.dataset.aksrtFloatLabelBound = '1'; input.addEventListener('input', function () { - if (this.value) { - this.setAttribute('data-has-value', '1'); - } else { - this.removeAttribute('data-has-value'); - } + if (this.value) this.setAttribute('data-has-value', '1'); + else this.removeAttribute('data-has-value'); }); }); } - /* ============================================================ - * 8. 签到日历可视化 - * ============================================================ */ - function initSigninCalendar() { - var calendar = document.querySelector('[data-aksrt-signin-calendar]'); - if (!calendar) return; - - var data = []; - try { - data = JSON.parse(calendar.dataset.aksrtSigninCalendar || '[]'); - } catch (e) {} - - // 生成最近 30 天的格子 - var today = new Date(); - var html = '
'; - - for (var i = 29; i >= 0; i--) { - var d = new Date(today); - d.setDate(d.getDate() - i); - var dateStr = d.toISOString().split('T')[0]; - var isSigned = data.indexOf(dateStr) !== -1; - var isToday = i === 0; - - html += '
' + - '' + d.getDate() + '' + - '
'; - } - - html += '
'; - calendar.innerHTML = html; + function initSigninCalendar(root) { + eachMatch(root, '[data-aksrt-signin-calendar]', function (calendar) { + if (calendar.dataset.aksrtSigninCalendarBound === '1') return; + calendar.dataset.aksrtSigninCalendarBound = '1'; + var data = []; + try { data = JSON.parse(calendar.dataset.aksrtSigninCalendar || '[]'); } catch (e) {} + var today = new Date(); + var html = '
'; + for (var i = 29; i >= 0; i--) { + var d = new Date(today); + d.setDate(d.getDate() - i); + var dateStr = d.toISOString().split('T')[0]; + var isSigned = data.indexOf(dateStr) !== -1; + html += '
' + d.getDate() + '
'; + } + calendar.innerHTML = html + '
'; + }); } - /* ============================================================ - * 初始化入口 - * ============================================================ */ - document.addEventListener('DOMContentLoaded', function () { - initTilt(); - initScrollAnimations(); - initRipple(); - initSticky(); - initParallax(); - initFloatLabels(); - initSigninCalendar(); - document.addEventListener('aksrt:modal:open', function () { - // Remote modal may inject calendar markup after open. - window.setTimeout(initSigninCalendar, 30); + function bindModalLifecycle() { + if (modalBound) return; + modalBound = true; + document.addEventListener('aksrt:modal:open', function (event) { + var root = event.target && event.target.querySelectorAll ? event.target : document; + window.setTimeout(function () { initSigninCalendar(root); }, 30); }); - }); + } + + function init(root, reason) { + initTilt(root); + initScrollAnimations(root); + initRipple(root, reason); + initSticky(root); + initParallax(root); + initFloatLabels(root); + initSigninCalendar(root); + bindModalLifecycle(); + } + + window.AksrtFrontend.register('aksrt-enhancements-advanced', init); - // 暴露到全局供动态内容使用 window.AksrtEnhancements = { initTilt: initTilt, initScrollAnimations: initScrollAnimations, initRipple: initRipple, }; - })(); ; @@ -5498,7 +5446,8 @@ tbquire.config({ } function processImage(img) { - if (img.dataset.aksrtColorDone) return; + if (img.dataset.aksrtColorDone || img.dataset.aksrtColorBound) return; + img.dataset.aksrtColorBound = '1'; // Need crossOrigin for canvas access if (!img.crossOrigin && img.src.indexOf(window.location.origin) !== 0) { @@ -5526,8 +5475,10 @@ tbquire.config({ } } - function init() { - document.querySelectorAll('[data-aksrt-color-extract]').forEach(processImage); + function init(root, reason) { + var scope = root && root.querySelectorAll ? root : document; + if (scope.nodeType === 1 && scope.matches('[data-aksrt-color-extract]')) processImage(scope); + scope.querySelectorAll('[data-aksrt-color-extract]').forEach(processImage); } // Public API @@ -5538,11 +5489,7 @@ tbquire.config({ init: init }; - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', init); - } else { - init(); - } + window.AksrtFrontend.register('aksrt-color-extract', init); })(); ; @@ -5559,108 +5506,101 @@ tbquire.config({ 'use strict'; var reducedMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches; + var countUpObserver = null; + var countdownElements = []; + var countdownTimer = null; + var fpsDetectionStarted = false; - /* ============================================================ - * 1. 数字递增 (count-up) — IntersectionObserver 触发 - * 用法:0 - * ============================================================ */ - function initCountUp() { - if (reducedMotion) return; - if (!('IntersectionObserver' in window)) return; + function scopeFor(root) { + return root && root.querySelectorAll ? root : document; + } - var els = document.querySelectorAll('[data-aksrt-countup]'); - if (!els.length) return; + function eachMatch(root, selector, callback) { + var scope = scopeFor(root); + if (scope.nodeType === 1 && scope.matches(selector)) callback(scope); + scope.querySelectorAll(selector).forEach(callback); + } - var observer = new IntersectionObserver(function (entries) { - entries.forEach(function (entry) { - if (!entry.isIntersecting) return; - var el = entry.target; - observer.unobserve(el); + function animateCountUp(el) { + if (el.dataset.aksrtCountupBound === '1') return; + el.dataset.aksrtCountupBound = '1'; + countUpObserver.observe(el); + } - var target = parseFloat(el.dataset.target || '0'); - var duration = parseInt(el.dataset.duration || '2000', 10); - var decimals = (el.dataset.decimals || '0|').split('|'); - var prefix = decimals[1] || ''; - var dec = parseInt(decimals[0], 10) || 0; - var start = 0; - var startTime = null; + function initCountUp(root) { + if (reducedMotion || !('IntersectionObserver' in window)) return; + if (!countUpObserver) { + countUpObserver = new IntersectionObserver(function (entries) { + entries.forEach(function (entry) { + if (!entry.isIntersecting) return; + var el = entry.target; + countUpObserver.unobserve(el); + var target = parseFloat(el.dataset.target || '0'); + var duration = parseInt(el.dataset.duration || '2000', 10); + var decimals = (el.dataset.decimals || '0|').split('|'); + var prefix = decimals[1] || ''; + var dec = parseInt(decimals[0], 10) || 0; + var startTime = null; - function step(timestamp) { - if (!startTime) startTime = timestamp; - var progress = Math.min((timestamp - startTime) / duration, 1); - // ease-out cubic - var eased = 1 - Math.pow(1 - progress, 3); - var current = start + (target - start) * eased; - el.textContent = prefix + current.toFixed(dec).replace(/\B(?=(\d{3})+(?!\d))/g, ','); - if (progress < 1) { - requestAnimationFrame(step); - } else { - el.textContent = prefix + target.toFixed(dec).replace(/\B(?=(\d{3})+(?!\d))/g, ','); + function step(timestamp) { + if (!startTime) startTime = timestamp; + var progress = Math.min((timestamp - startTime) / duration, 1); + var current = target * (1 - Math.pow(1 - progress, 3)); + el.textContent = prefix + current.toFixed(dec).replace(/\B(?=(\d{3})+(?!\d))/g, ','); + if (progress < 1) requestAnimationFrame(step); + else el.textContent = prefix + target.toFixed(dec).replace(/\B(?=(\d{3})+(?!\d))/g, ','); } - } - requestAnimationFrame(step); - }); - }, { threshold: 0.3 }); - - els.forEach(function (el) { observer.observe(el); }); - } - - /* ============================================================ - * 2. 倒计时组件 - * 用法:--:--:-- - * ============================================================ */ - function initCountdown() { - var els = document.querySelectorAll('[data-aksrt-countdown]'); - if (!els.length) return; - - function pad(n) { return n < 10 ? '0' + n : '' + n; } - - function update() { - var now = Date.now(); - els.forEach(function (el) { - var end = new Date(el.dataset.end).getTime(); - var diff = end - now; - if (diff <= 0) { - el.textContent = el.dataset.expired || '已结束'; - return; - } - var d = Math.floor(diff / 86400000); - var h = Math.floor((diff % 86400000) / 3600000); - var m = Math.floor((diff % 3600000) / 60000); - var s = Math.floor((diff % 60000) / 1000); - var format = el.dataset.format || 'dhms'; - if (format === 'dhms') { - el.textContent = (d > 0 ? d + '天 ' : '') + pad(h) + ':' + pad(m) + ':' + pad(s); - } else if (format === 'hms') { - el.textContent = pad(h + d * 24) + ':' + pad(m) + ':' + pad(s); - } else { - el.textContent = (d > 0 ? d + '天 ' : '') + pad(h) + '时' + pad(m) + '分' + pad(s) + '秒'; - } - }); + requestAnimationFrame(step); + }); + }, { threshold: 0.3 }); } - - update(); - setInterval(update, 1000); + eachMatch(root, '[data-aksrt-countup]', animateCountUp); } - /* ============================================================ - * 4. 3D 悬停倾斜 (vanilla tilt) - * 用法:
...
- * ============================================================ */ - function initTilt() { - if (reducedMotion) return; + function pad(n) { return n < 10 ? '0' + n : '' + n; } - document.querySelectorAll('[data-aksrt-tilt]').forEach(function (el) { + function updateCountdowns() { + var now = Date.now(); + countdownElements = countdownElements.filter(function (el) { return document.documentElement.contains(el); }); + countdownElements.forEach(function (el) { + var end = new Date(el.dataset.end).getTime(); + var diff = end - now; + if (diff <= 0) { + el.textContent = el.dataset.expired || '已结束'; + return; + } + var d = Math.floor(diff / 86400000); + var h = Math.floor((diff % 86400000) / 3600000); + var m = Math.floor((diff % 3600000) / 60000); + var s = Math.floor((diff % 60000) / 1000); + var format = el.dataset.format || 'dhms'; + if (format === 'dhms') el.textContent = (d > 0 ? d + '天 ' : '') + pad(h) + ':' + pad(m) + ':' + pad(s); + else if (format === 'hms') el.textContent = pad(h + d * 24) + ':' + pad(m) + ':' + pad(s); + else el.textContent = (d > 0 ? d + '天 ' : '') + pad(h) + '时' + pad(m) + '分' + pad(s) + '秒'; + }); + } + + function initCountdown(root) { + eachMatch(root, '[data-aksrt-countdown]', function (el) { + if (el.dataset.aksrtCountdownBound === '1') return; + el.dataset.aksrtCountdownBound = '1'; + countdownElements.push(el); + }); + updateCountdowns(); + if (!countdownTimer && countdownElements.length) countdownTimer = window.setInterval(updateCountdowns, 1000); + } + + function initTilt(root) { + if (reducedMotion) return; + eachMatch(root, '[data-aksrt-tilt]', function (el) { if (el.dataset.tiltBound) return; el.dataset.tiltBound = '1'; - var maxDeg = parseFloat(el.dataset.tiltMax || '10'); var perspective = parseFloat(el.dataset.tiltPerspective || '800'); var scale = parseFloat(el.dataset.tiltScale || '1.03'); var glare = el.dataset.tiltGlare === '1'; var glareEl = null; - if (glare) { glareEl = document.createElement('div'); glareEl.style.cssText = 'position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,0) 0%,rgba(255,255,255,0.25) 100%);opacity:0;transition:opacity 0.2s;'; @@ -5668,17 +5608,13 @@ tbquire.config({ el.style.overflow = 'hidden'; el.appendChild(glareEl); } - el.addEventListener('mousemove', function (e) { var rect = el.getBoundingClientRect(); var x = (e.clientX - rect.left) / rect.width; var y = (e.clientY - rect.top) / rect.height; - var rotateX = (0.5 - y) * maxDeg; - var rotateY = (x - 0.5) * maxDeg; - el.style.transform = 'perspective(' + perspective + 'px) rotateX(' + rotateX + 'deg) rotateY(' + rotateY + 'deg) scale3d(' + scale + ',' + scale + ',' + scale + ')'; + el.style.transform = 'perspective(' + perspective + 'px) rotateX(' + ((0.5 - y) * maxDeg) + 'deg) rotateY(' + ((x - 0.5) * maxDeg) + 'deg) scale3d(' + scale + ',' + scale + ',' + scale + ')'; if (glareEl) glareEl.style.opacity = '1'; }); - el.addEventListener('mouseleave', function () { el.style.transform = 'perspective(' + perspective + 'px) rotateX(0deg) rotateY(0deg) scale3d(1,1,1)'; if (glareEl) glareEl.style.opacity = '0'; @@ -5686,49 +5622,37 @@ tbquire.config({ }); } - /* ============================================================ - * 5. FPS 检测 + 低端设备降级 - * ============================================================ */ - function initFpsDetection() { - if (!('requestAnimationFrame' in window)) return; - + function initFpsDetection(root, reason) { + if (fpsDetectionStarted || !('requestAnimationFrame' in window)) return; + fpsDetectionStarted = true; var frames = 0; var startTime = performance.now(); - function countFrames() { frames++; var elapsed = performance.now() - startTime; if (elapsed >= 1000) { - var fps = Math.round(frames * 1000 / elapsed); - if (fps < 24) { - document.body.classList.add('fps-accelerat'); - } - return; // 只检测一次 + if (Math.round(frames * 1000 / elapsed) < 24 && document.body) document.body.classList.add('fps-accelerat'); + return; } requestAnimationFrame(countFrames); } - requestAnimationFrame(countFrames); } - /* ============================================================ - * 初始化入口 - * ============================================================ */ - document.addEventListener('DOMContentLoaded', function () { - initCountUp(); - initCountdown(); - if (typeof initMarquee === 'function') { - initMarquee(); - } - initTilt(); - initFpsDetection(); - }); + function init(root, reason) { + initCountUp(root); + initCountdown(root); + if (typeof initMarquee === 'function') initMarquee(root, reason); + initTilt(root); + initFpsDetection(root, reason); + } + window.AksrtFrontend.register('aksrt-effects', init); })(); ; /* source: assets/js/runtime/main.min.js */ -jQuery.cookie=function(e,a,t){if(a===void 0){var r=null;if(document.cookie&&document.cookie!="")for(var n=document.cookie.split(";"),i=0;i-1||e.indexOf("致命错误")>-1)}function aksrt_sprintf(e){var a=Array.prototype.slice.call(arguments,1),t=aksrt__(e),r=0;return t.replace(/%(\d+\$)?s/g,function(n,i){var s=i?parseInt(i,10)-1:r++;return a[s]!==void 0&&a[s]!==null?a[s]:n})}(function(e,a){var t=a(e,e.document,Date);e.lazySizes=t,typeof module=="object"&&module.exports&&(module.exports=t)})(typeof window<"u"?window:{},function(a,t,r){"use strict";var n,i;if((function(){var w,y={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",loadafterClass:"lazyloadafter",errorClass:"lazyerror",autosizesClass:"lazyautosizes",srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};i=a.lazySizesConfig||a.lazysizesConfig||{};for(w in y)w in i||(i[w]=y[w])})(),!t||!t.getElementsByClassName)return{init:function(){},cfg:i,noSupport:!0};var s=t.documentElement,o=a.HTMLPictureElement,d="addEventListener",u="getAttribute",c=a[d].bind(a),l=a.setTimeout,h=a.requestAnimationFrame||l,f=a.requestIdleCallback,p=/^picture$/i,g=["load","error","lazyincluded","_lazyloaded"],v={},b=Array.prototype.forEach,_=function(w,y){return v[y]||(v[y]=new RegExp("(\\s|^)"+y+"(\\s|$)")),v[y].test(w[u]("class")||"")&&v[y]},Q=function(w,y){_(w,y)||w.setAttribute("class",(w[u]("class")||"").trim()+" "+y)},j=function(w,y){var k;(k=_(w,y))&&w.setAttribute("class",(w[u]("class")||"").replace(k," "))},C=function(w,y,k){var L=k?d:"removeEventListener";k&&C(w,y),g.forEach(function(q){w[L](q,y)})},T=function(w,y,k,L,q){var z=t.createEvent("Event");return k||(k={}),k.instance=n,z.initEvent(y,!L,!q),z.detail=k,w.dispatchEvent(z),z},F=function(w,y){var k;!o&&(k=a.picturefill||i.pf)?(y&&y.src&&!w[u]("srcset")&&w.setAttribute("srcset",y.src),k({reevaluate:!0,elements:[w]})):y&&y.src&&(w.src=y.src)},X=function(w,y){return(getComputedStyle(w,null)||{})[y]},Z=function(w,y,k){for(k=k||w.offsetWidth;k49?function(){f(z,{timeout:q}),q!==i.ricTimeout&&(q=i.ricTimeout)}:G(function(){l(z)},!0);return function(E){var A;(E=E===!0)&&(q=33),!y&&(y=!0,A=L-(r.now()-k),A<0&&(A=0),E||A<9?O():l(O,A))}},oe=function(w){var y,k,L=99,q=function(){y=null,w()},z=function(){var O=r.now()-k;O0,H&&X(M,"overflow")!="visible"&&(S=M.getBoundingClientRect(),H=W>S.left&&AS.top-1&&E500&&s.clientWidth>500?500:370:i.expand,n._defEx=U,K=U*i.expFactor,te=i.hFac,J=null,ae2&&L>2&&!t.hidden?(ae=K,ee=0):L>1&&ee>1&&R<6?ae=U:ae=_e),V!==I&&(z=innerWidth+I*te,O=innerHeight+I,B=I*-1,V=I),S=N[x].getBoundingClientRect(),($=S.bottom)>=B&&(E=S.top)<=O&&(W=S.right)>=B*te&&(A=S.left)<=z&&($||W||A||E)&&(i.loadHidden||ue(N[x]))&&(y&&R<3&&!D&&(L<3||ee<4)||we(N[x],I))){if(re(N[x]),H=!0,R>9)break}else!H&&y&&!M&&R<4&&ee<4&&L>2&&(w[0]||i.preloadAfterLoad)&&(w[0]||!D&&($||W||A||E||N[x][u](i.sizesAttr)!="auto"))&&(M=w[0]||N[x])}M&&!H&&re(M)}},P=pe(ce),fe=function(m){var x=m.target;if(x._lazyCache){delete x._lazyCache;return}de(m),Q(x,i.loadedClass),j(x,i.loadingClass),C(x,he),T(x,"lazyloaded"),l(function(){Q(x,i.loadafterClass)},700)},be=G(fe),he=function(m){be({target:m.target})},je=function(m,x){try{m.contentWindow.location.replace(x)}catch{m.src=x}},xe=function(m){var x,S=m[u](i.srcsetAttr);(x=i.customMedia[m[u]("data-media")||m[u]("media")])&&m.setAttribute("media",x),S&&m.setAttribute("srcset",S)},Qe=G(function(m,x,S,M,H){var I,B,D,V,U,K;(U=T(m,"lazybeforeunveil",x)).defaultPrevented||(M&&(S?Q(m,i.autosizesClass):m.setAttribute("sizes",M)),B=m[u](i.srcsetAttr),I=m[u](i.srcAttr),H&&(D=m.parentNode,V=D&&p.test(D.nodeName||"")),K=x.firesLoad||"src"in m&&(B||I||V),U={target:m},Q(m,i.loadingClass),K&&(clearTimeout(k),k=l(de,2500),C(m,he,!0)),V&&b.call(D.getElementsByTagName("source"),xe),B?m.setAttribute("srcset",B):I&&!V&&(ye.test(m.nodeName)?je(m,I):m.src=I),H&&(B||V)&&F(m,{src:I})),m._lazyRace&&delete m._lazyRace,j(m,i.lazyClass),Y(function(){var te=m.complete&&m.naturalWidth>1;(!K||te)&&(te&&Q(m,"ls-is-cached"),fe(U),m._lazyCache=!0,l(function(){"_lazyCache"in m&&delete m._lazyCache},9)),m.loading=="lazy"&&R--},!0)}),re=function(m){if(!m._lazyRace){var x,S=me.test(m.nodeName),M=S&&(m[u](i.sizesAttr)||m[u]("sizes")),H=M=="auto";(H||!y)&&S&&(m[u]("src")||m.srcset)&&!m.complete&&!_(m,i.errorClass)&&_(m,i.lazyClass)||(x=T(m,"lazyunveilread").detail,H&&se.updateElem(m,!0,m.offsetWidth),m._lazyRace=!0,R++,Qe(m,x,H,M,S))}},ke=oe(function(){i.loadMode=3,P()}),ve=function(){i.loadMode==3&&(i.loadMode=2),ke()},ne=function(){if(!y){if(r.now()-q<999){l(ne,999);return}y=!0,i.loadMode=3,P(),c("scroll",ve,!0)}};return{_:function(){q=r.now(),n.elements=t.getElementsByClassName(i.lazyClass),w=t.getElementsByClassName(i.lazyClass+" "+i.preloadClass),c("scroll",P,!0),c("resize",P,!0),c("pageshow",function(m){if(m.persisted){var x=t.querySelectorAll("."+i.loadingClass);x.length&&x.forEach&&h(function(){x.forEach(function(S){S.complete&&re(S)})})}}),a.MutationObserver?new MutationObserver(P).observe(s,{childList:!0,subtree:!0,attributes:!0}):(s[d]("DOMNodeInserted",P,!0),s[d]("DOMAttrModified",P,!0),setInterval(P,999)),c("hashchange",P,!0),["focus","mouseover","click","load","transitionend","animationend"].forEach(function(m){t[d](m,P,!0)}),/d$|^c/.test(t.readyState)?ne():(c("load",ne),t[d]("DOMContentLoaded",P),l(ne,2e4)),n.elements.length?(ce(),Y._lsFlush()):P()},checkElems:P,unveil:re,_aLSL:ve}})(),se=(function(){var w,y=G(function(z,O,E,A){var W,$,J;if(z._lazysizesWidth=A,A+="px",z.setAttribute("sizes",A),p.test(O.nodeName||""))for(W=O.getElementsByTagName("source"),$=0,J=W.length;$-40&&u<40&&c>0?c:0),e.direction=="left"&&(l=0,c=(u>150||u<-150)&&0>c?c:0),e.direction=="top"&&(c=0,l=u>-130&&u<-50&&0>l?l:0),e.direction=="bottom"&&(c=0,l=u>50&&u<130&&l>0?l:0),(c!==0||l!==0)&&(v.preventDefault?v.preventDefault():v.returnValue=!1,f(b,c,l,h,"grab"),jQuery.isFunction(e.onIng)&&e.onIng(t,b,c,l)))}).on("touchend touchcancel pointerup MSPointerUp",g,function(){var v=e.start_selector?e.selector?t.find(e.selector):t.find(e.start_selector):jQuery(this);h&&!r&&(f(v,0,0,"null",""),jQuery.isFunction(e.inEnd)&&e.inEnd(t,v,c,l),(Math.abs(c)>n||Math.abs(l)>n)&&jQuery.isFunction(e.onEnd)&&e.onEnd(t,v,c,l),i=s=o=d=u=c=l=0,h=!1)}).data(a,!0)}},_win.bd=jQuery("body"),_win.window=jQuery(window),_win.is_signin=!!_win.bd.hasClass("logged-in");var _wid=_win.window.width(),_hei=_win.window.height();_win.bd.on("click","[data-close]",function(){var e=jQuery(this).attr("data-close");return jQuery(e).removeClass("show in"),!1}),_win.bd.on("click","[data-toggle-class]",function(){var e=jQuery(this).attr("data-toggle-class")||"show",a=jQuery(this).attr("data-target")||this;return jQuery(a).toggleClass(e).trigger("toggleClass"),!1}),_win.bd.on("click",only_drop),_win.bd.on("toggleClass",".dropup,.dropdown",only_drop);function only_drop(e){var a=jQuery(e.target).closest(".dropup,.dropdown");jQuery(".dropup.open,.dropdown.open").not(a).removeClass("open")}_win.bd.on("click",".alert-dismissible > .close",function(){jQuery(this).parent().slideUp()}),_win.bd.on("click","[data-onclick]",function(){var e=jQuery(this).attr("data-onclick");return jQuery(e).click()}),jQuery.fn.OnlyOn=function(e,a,t,r){var n=/\S+/g,i=!1;e=e.match(n)[0];var s=jQuery._data(this[0],"events");s&&typeof s.type<"u"&&jQuery.each(s[e],function(o,d){if(d.selector==a&&d.data==t)return i=!0,!1}),i?console.log("事件重复绑定{type:"+e+",selector:"+a+",data:"+t+"}"):this.on(e,a,t,r)},jQuery.fn.aksrt_ajax=function(e,a,t,r){return aksrt_ajax(jQuery(this),e,a,t,r)},jQuery.fn.countdown=function(){function e(a,t){var r=new Date,n=r.getTime(),i=new Date(a),s=i.getTime(),o=s-n,d=o/1e3%60;d=d.toFixed(2);var u=~~(o%1e3),c=~~(o/1e3/60%60),l=~~(o/(1e3*60*60)%24),h=~~(o/(1e3*60*60*24));return t==="minute"&&c>0&&(l=0,h=0,c=~~(o/1e3/60)),t==="hour"&&l>0&&(h=0,l=~~(o/(1e3*60*60))),d=d<10?"0"+d:d,c=c<10?"0"+c:c,{total:o,days:h,hours:l,minutes:c,seconds:d,mseconds:u}}jQuery(this).each(function(){var a=jQuery(this),t=a.attr("data-countdown");if(!t)return;var r=a.attr("int-second"),n=a.attr("max-unit");if(a.attr("title",aksrt__("countdown_end_time")+t),r==="auto"){var i=e(t,n);r=i.days>0}function s(){var d=e(t,n);if(r&&(d.seconds=d.seconds.toString().replace(/\.\d+$/,"")),a.find(".day").length&&a.find(".day").html(d.days),a.find(".hour").length&&a.find(".hour").html(d.hours),a.find(".minute").length&&a.find(".minute").html(d.minutes),a.find(".second").length)a.find(".second").html(d.seconds);else{var u="";d.days>0&&(u+=''+d.days+''+aksrt__("countdown_day")+""),(d.hours>0||d.days>0)&&(u+=''+d.hours+''+aksrt__("countdown_hour")+""),(d.minutes>0||d.hours>0||d.days>0)&&(u+=''+d.minutes+''+aksrt__("countdown_minute")+""),u+=''+d.seconds+''+aksrt__("countdown_second")+"",a.html(u)}if(d.total<=0){clearInterval(o);var c=a.attr("data-over-text")||aksrt__("countdown_ended");a.html(c).trigger("countdown-over")}}s();var o=setInterval(s,r?1e3:20);a.removeAttr("data-countdown").addClass("countdown-box")})},_win.dplayer={tbquire:["dplayer"],obj:{}};function new_dplayer(){var e=".new-dplayer:not(.dplayer-initialized),[data-dplayer]:not(.dplayer-initialized)";jQuery(e).length&&jQuery(e).each(function(){var a=jQuery(this);get_new_dplayer(a,function(t){a.addClass("dplayer-initialized").siblings(".dplayer-featured").find(".switch-video").each(function(){var r=jQuery(this),n=r.attr("video-url"),i=r.attr("video-pic");r.data({"video-url":n,"video-pic":i}),r.attr({"dplayer-id":t.container.id}),setTimeout(function(){r.removeAttr("video-url").removeAttr("video-pic")},50)})})})}function get_new_dplayer(e,a){var t={},r=e.attr("video-url")||e.data("video-url"),n=e.attr("data-volume"),i=parseInt((Math.random()+1)*Math.pow(10,4));if(!(e.find(".dplayer-video-wrap").length||!r)){e.attr("id","dplayer-"+i),t.container=document.getElementById("dplayer-"+i),t.theme="#f04494",t.video={url:r,pic:e.attr("video-pic")||"",type:e.attr("video-type")||"auto"},e.attr("data-loop")&&(t.loop=!0),e.attr("data-autoplay")&&(t.autoplay=!0),n&&n<1&&(t.volume=n),n==="none"&&(t.volume=0);var s=e.attr("video-option");if(s){try{s=JSON.parse(s)}catch(d){console.log(d)}jQuery.extend(t,s)}var o=r.toLowerCase();return o.indexOf(".m3u")!=-1&&_win.dplayer.tbquire.push("hls"),o.indexOf(".mpd")!=-1&&_win.dplayer.tbquire.push("dash"),o.indexOf(".flv")!=-1&&_win.dplayer.tbquire.push("flv"),jQuery("link#dplayer").length||jQuery("dplayer").append(''),_win.dplayer.tbquire.push("dplayer"),tbquire(_win.dplayer.tbquire,function(){try{var d=new DPlayer(t);d.on("play",function(){_win.dplayer.play=d}),e.data("dplayer",d),_win.dplayer.obj[i]=d,e.attr({"video-url":"","video-pic":""}),jQuery.isFunction(a)&&a(d)}catch(u){console.error(u)}}),i}}_win.bd.on("click",".swiper-slide.slide-dplayer:not(.slide-dplayer-played) > *",function(){var e=jQuery(this),a=e.find(".new-dplayer").data("dplayer");a&&(a.play(),e.parent().addClass("slide-dplayer-played"))});function thumb_dplayer(e,a){var t=jQuery("body"),r="thumb_dplayer_data",n=t.data(r)||{};if(n[e+a])return;var i="thumb-dplayer-playing",s="dplayer-thumb-hide";function o(h,f,p){f.find(".dplayer-thumb").removeClass(s),_win.dplayer.thumb_play=p,f.find(".progress").show(),h.addClass(i)}function d(h,f,p){p.pause(),f.find(".dplayer-thumb").addClass(s),_win.dplayer.thumb_play=!1,f.find(".progress").hide(),h.removeClass(i)}function u(){if(_win.dplayer.thumb_play){var h=jQuery(_win.dplayer.thumb_play.container).closest(a),f=h.closest(e);d(f,h,_win.dplayer.thumb_play)}}function c(){var h=jQuery(this),f=h.find(a);if(!f.length)return;var p=f.find(".dplayer-thumb").data("dplayer");if(p)return o(h,f,p),p.play();function g(T){T.on("loadeddata",function(){setTimeout(function(){f.find(".progress-bar").css({width:"100%",opacity:"0",transition:"width .2s, opacity .3s .3s"})},100),setTimeout(function(){f.find(".progress").remove()},800)}),setTimeout(function(){o(h,f,T),T.play()},200)}if(!f.find(".dplayer-thumb").length){var v=f.attr("video-url"),b=f.attr("data-volume")||"none",_="",Q=~~f.attr("scale-height"),j='
',C=jQuery('
');f.find(".video-thumb").html(C).after(j),setTimeout(function(){f.find(".progress-bar").css({transition:"width 6s",width:"80%"})},50),f.attr("video-url",""),get_new_dplayer(C,g)}}t.on("mouseenter touchstart",e,c),t.on("mouseleave",e,u);var l="thumb_dplayer_init";t.data(l)||t.on("touchstart",function(h){var f=jQuery(h.target);!f.parents("."+i).length&&_win.dplayer.thumb_play&&u()}).data(l,!0),n[e+a]=!0,t.data(r,n)}_win.bd.on("click",".switch-video",function(){var e=jQuery(this),a=jQuery("#"+e.attr("dplayer-id")).data("dplayer"),t=e.data("video-url"),r=e.data("video-pic");if(!(!t||!a||e.hasClass("active"))){e.addClass("active").siblings().removeClass("active");var n=t.toLowerCase();n.indexOf(".m3u")!=-1&&_win.dplayer.tbquire.push("hls"),n.indexOf(".mpd")!=-1&&_win.dplayer.tbquire.push("dash"),n.indexOf(".flv")!=-1&&_win.dplayer.tbquire.push("flv"),tbquire(_win.dplayer.tbquire,function(){try{var i={url:t,type:"auto"};r&&(i.pic=r),a.switchVideo(i),setTimeout(function(){a.play()},100)}catch(s){console.log(s)}})}}),_win.bd.on("click",".switch-iframe",function(){var e=jQuery(this),a=e.attr("iframe-url"),t=e.closest(".iframe-series").find("iframe");if(!(!a||e.hasClass("active"))){try{t[0].contentWindow.location.replace(a)}catch{t.attr("src",a)}e.addClass("active").siblings().removeClass("active")}}),_win.bd.on("click",".file-download-btn",function(){var e=jQuery(this),a=e.attr("data-download-file"),t=e.attr("download-nonce");if(e.attr("target","_blank"),!!a){var r=_win.ajax_url+"?action=download_file&file="+a+"&nonce="+t;e.attr("target","_blank").removeAttr("data-download-file").attr("href",r)}}),_win.bd.on("click",".post-tab-toggle",function(){var e=jQuery(this),a=e.attr("tab-id");if(!e.parent().hasClass("active")){var t=e.parent().addClass("active").siblings().removeClass("active").parent().next().find('[tab-id="'+a+'"]');t.siblings().removeClass("in"),setTimeout(function(){t.addClass("active").siblings().removeClass("active")},150),setTimeout(function(){t.addClass("in")},160)}}),_win.swiper=[],_win.swiper.tab={},_win.swiper.scroll={},_win.swiper.new={};function new_swiper(){jQuery(".swiper-scroll:not(.swiper-container-initialized),.new-swiper:not(.swiper-container-initialized),.swiper-tab:not(.swiper-container-initialized)").length&&(jQuery("link#swiper").length||jQuery("head").append(''),tbquire(["swiper"],function(){jQuery(".swiper-scroll").each(function(e){if(!jQuery(this).hasClass("swiper-container-initialized")){var a={},t=jQuery(this),r="swiper-scroll-eq-"+e,n=t.attr("data-slideClass")||!1;if(n&&(a.slideClass=n),!t.attr("scroll-nogroup")){var i=t.width(),s=t.find(".swiper-wrapper>*:eq(0)").outerWidth(),o=~~(i/s);a.slidesPerGroup=o||1}a.autoplay=t.attr("data-autoplay")?{delay:~~t.attr("data-interval")||4e3,disableOnInteraction:!1}:!1,a.loop=t.attr("data-loop"),a.slidesPerView="auto",a.mousewheel={forceToAxis:!0},a.freeMode=!0,a.freeModeSticky=!0,a.navigation={nextEl:".swiper-scroll."+r+" .swiper-button-next",prevEl:".swiper-scroll."+r+" .swiper-button-prev"},t.addClass(r).attr("swiper-scroll-index",e),_win.swiper.scroll[e]=new Swiper(".swiper-scroll."+r,a)}}),jQuery(".swiper-tab").each(function(e){if(!jQuery(this).hasClass("swiper-container-initialized")){var a="swiper-eq-"+e,t=jQuery(this),r=~~t.attr("data-speed")||~~((t.width()+1200)/170)*50,n=~~t.attr("active-index");r=r<300?300:r;var i={loop:!1,initialSlide:n,autoHeight:!0,spaceBetween:20,autoplay:!1,speed:r,pagination:{el:".swiper-tab."+a+" .swiper-pagination",clickable:!0},on:{init:function(){auto_maxHeight()},slideChangeTransitionEnd:function(u){var c=jQuery(".swiper-tab."+a+" .swiper-slide-active .post_ajax_trigger .ajax-open");c.length&&(scrollTopTo(jQuery(".swiper-tab."+a),-40),c.attr("no-scroll",!0).click());var l=u.onStart&&jQuery('[swiper-scroll-index="'+e+'"] .swiper-slide-thumb-active [data-route]');l&&l.length&&history.replaceState(null,document.title,l.attr("data-route")),u.onStart=!0}}},s=t.attr("swiper-tab"),o=jQuery('[swiper-tab-nav="'+s+'"]');if(o.length){var d=o.attr("swiper-scroll-index");i.thumbs={swiper:_win.swiper.scroll[d],autoScrollOffset:2},o.on("click","a[data-route]",function(u){u.preventDefault()})}t.addClass(a).attr("swiper-tab-index",e),_win.swiper.tab[e]=new Swiper(".swiper-tab."+a,i)}}),jQuery(".new-swiper").each(function(e){if(!jQuery(this).hasClass("swiper-container-initialized")){var a="swiper-eq-"+e,t=jQuery(this),r=~~t.attr("data-interval")||6e3,n=t.attr("data-autoplay")?{delay:r,disableOnInteraction:!1}:!1,i=!!t.attr("auto-height"),s=~~t.attr("data-speed")||~~((t.width()+1e3)/22)*10;s=s<400?400:s,s=n===!1?s/1.6:s;var o=!!t.attr("data-loop"),d=!!t.find("[data-swiper-parallax],[data-swiper-parallax-scale]").length,u=t.attr("data-effect")||"slide",c=t.attr("data-direction")||"horizontal",l=~~t.attr("data-spaceBetween")||0,h=t.attr("data-pagination-type")||"bullets";t.addClass(a).attr("swiper-new-index",e);var f={loop:o,autoHeight:i,direction:c,spaceBetween:l,parallax:d,effect:u,lazy:{loadPrevNext:!0},autoplay:n,speed:s,pagination:{el:".new-swiper."+a+" .swiper-pagination",type:h,clickable:!0},navigation:{nextEl:".new-swiper."+a+" .swiper-button-next",prevEl:".new-swiper."+a+" .swiper-button-prev"},on:{lazyImageReady:function(p,g){jQuery(g).addClass("lazyloaded")},slideChange:function(){t.find(".new-dplayer").each(function(p,g){var v=jQuery(g).data("dplayer");v&&v.pause()})},init:function(){o&&t.find(".swiper-slide-duplicate img").addClass("no-imgbox")}}};h==="thumbnail"&&(f.pagination.type="bullets",f.pagination.bulletClass="pagination-thumbnail-item",f.pagination.bulletActiveClass="pagination-thumbnail-item-active",f.pagination.renderBullet=function(p,g){var v,b,_=jQuery(this.slides[p]).find("img");return _.length&&(_=jQuery(_[0]),v=_.attr("data-src")||_.attr("src")),v?(b='
',b):""}),_win.swiper.new[e]=new Swiper(".new-swiper."+a,f)}})}))}window.swiper_tab_AutoHeight=debounce(function(e){var a=e.closest("[swiper-tab-index]");if(a.length){var t=a.attr("swiper-tab-index");_win.swiper.tab[t].updateAutoHeight(500)}},100),jQuery.fn.scrollX=function(){return this.each(function(){var e=jQuery(this),a="is-on";if(!e.data(a)){e.data(a,!0);var t="scroll-x-",r=t+"prev",n=t+"next",i=jQuery(''),s=jQuery('');d()}function o(l){var h=c();e.animate({scrollLeft:l==="prev"?h[0]:h[1]},300,"linear",u)}function d(){e.after(i).after(s),i.on("click",function(){o("prev")}),s.on("click",o),e.parent().hover(u,function(){i.hide(),s.hide()})}function u(){var l=c();l[3]?i.show():i.hide(),l[3]0?p:0;var g=~~(h+l);return g=g>f?f:g,[p,g,f,h]}})},jQuery.fn.Tabcenter=function(){return this.each(function(){var e=jQuery(this),a=e.find(".active");if(a.length){var t=e.innerWidth(),r=a.innerWidth(),n=e.scrollLeft(),i=a.position().left,s=~~(e.prop("scrollWidth")-t),o=~~(n+i-t/2+r/2);o=o>0?o:0,o=o>s?s:o,o!=n&&e.animate({scrollLeft:o},300)}})},_win.bd.on("shown.bs.tab","a[data-ajax]",function(){jQuery(this).closest("ul.list-inline").Tabcenter()}),jQuery(".tab-nav-theme,.tab-nav-but,.index-tab ul.list-inline").Tabcenter();function post_ajax(e,a,t,r,n,i,s,o,d,u,c,l){var h=e.closest(a);if(h.attr("ing"))return!1;var f=v(r),p=e.attr("ajax-href")||e.attr("href")||e.find("a").attr("ajax-href")||e.find("a").attr("href");t=t||a,l=l||(_win.ajax_trigger?_win.ajax_trigger:''+aksrt__("load_more")),d=e.attr("ajax-replace")||d,u=u||_win.ajax_nomore;var g=v(".post_ajax_loader");g.length||(n=n||'

',g=jQuery('
'+n+"
"));function v(b,_,Q){_=_&&_.length?_:h,Q=Q||a;var j=_.find(">"+b);return j.length||(j=_.find(">*:not("+Q+")>"+b),j.length)||(j=_.find(">*:not("+Q+")>*:not("+Q+")>"+b),j.length)||(j=_.find(">*:not("+Q+")>*:not("+Q+")>*:not("+Q+")>"+b),j.length)?j:jQuery("null#null")}return p&&jQuery.ajax({type:"POST",url:p,dataType:"html",beforeSend:function(){d&&f.length&&f.remove(),h.attr("ing",!0),v(".post_ajax_trigger").remove(),v(".no-more").remove(),v(".post_ajax_loader").remove(),v(".noajax-pag").remove(),v(i).remove(),f=v(r),f.length?c?f.first().before(g):f.last().after(g):h.append(g),g.fadeIn(),swiper_tab_AutoHeight(h)},success:function(b){b=jQuery.parseHTML("
"+b+"
");var _=jQuery(b);_.find("[win-ajax-replace]").each(function(){var Y=jQuery(this).attr("win-ajax-replace"),G=jQuery('[win-ajax-replace="'+Y+'"]');G.length&&(G.html(jQuery(this).html()),jQuery(this).remove())});var Q=_.find(t),j=v(r,Q,t),C=v(i,Q,t),T=C.find(s).attr("href")||C.find(s).find("a").attr("href");C=C.length?C:'
'+u+"
",C=Q.find(".noajax-pag").length?Q.find(".noajax-pag"):C,o&&(C=typeof T<"u"?''+l+"":C);var F=v(".ajax-item-header",Q,t);if(F.length&&(v(".ajax-item-header").remove(),h.prepend(F)),f=v(r),f.length?c?f.first().before(C).before(j):f.last().after(C).after(j):c?h.append(C).append(j):h.append(j).append(C),h.removeAttr("ing").trigger("post_ajax.ed",jQuery(b)),v(".post_ajax_loader",h).hide(),e.attr("no-scroll"))_win.auto_scroll=!0,setTimeout(function(){_win.window.trigger("scroll"),_win.auto_scroll=!1},20);else{var X=d?h:jQuery(j[0]);setTimeout(function(){scrollTopTo(X,-40)},100)}if(e.attr("route")){var Z=e.attr("route-title")||_.find("title").text();history.replaceState(null,Z,p),Z&&jQuery("head title").text(Z)}swiper_tab_AutoHeight(h),auto_fun()}}),!1}if(_win.bd.on("click","[remote-box]",function(){var e=jQuery(this),a=e.attr("remote-box");a&&jQuery.post(a,null,function(t){e.html(t).removeAttr("remote-box"),auto_fun(),e.trigger("aksrt:remote-loaded")})}),_win.bd.on("show.bs.tab","a[data-ajax]",function(){var e=jQuery(this),a=e.data("target")||e.attr("href"),t=a+" .post_ajax_trigger .ajax-next",r=jQuery(t).attr("ajax-replace",!0);if(r.length)r.click();else{var n=e.attr("data-ajax");if(n){var i='';jQuery(a).append(i),jQuery(t).click()}}e.attr("only-one")&&e.removeAttr("data-ajax")}),_win.bd.on("click","[ajax-tab],[ajax-target]",function(){var e=jQuery(this),a=e.attr("ajax-replace")?' ajax-replace="true"':"",t=e.attr("ajax-tab")||e.attr("ajax-target"),r=e.attr("data-ajax"),n='";console.log(t),jQuery(t).find(".post_ajax_trigger").remove(),jQuery(t).append(n),jQuery(t+" .post_ajax_trigger .ajax-next").click(),jQuery('a[href="'+t+'"]').click()}),_win.bd.on("click",".ajax-next",function(e){e.preventDefault();var a=jQuery(this);if(a.hasClass("pag-jump"))return!1;var t='
'+aksrt__("loading")+"
";a.attr("ajax-replace")&&(t='

',t+=t,t+=t),t='
'+t+"
";var r=a.attr("ajaxpager-target")||".ajaxpager",n=a.attr("ajaxitem-target")||".ajax-item",i=a.parents(r+":eq(0)").find(n+":first"),s=i.attr("class");if(s&&s.indexOf("posts-item")>-1)if(s.indexOf("card")>-1){var o=s.replace("ajax-item","");t='

',t=t.repeat(_wid>766?_wid>992&&!jQuery(".sidebar").length?8:6:4)}else s.indexOf("list")>-1&&(t='

',t=t.repeat(_wid>766?4:3));return post_ajax(a,r,r,n,t,".ajax-pag")}),_wid<769&&jQuery(".drawer-sm").length){_win.bd.on("click","[data-drawer]",function(){var e=jQuery(this),a=e.attr("drawer-title")||"",t=e.attr("drawer-selector")||".drawer-sm",r=e.attr("data-drawer"),n=e.attr("route"),i=e.attr("route-back");jQuery(t).Drawer(r,a,n,i)});var this_url=(window.parent.location.origin+window.parent.location.pathname).replace(/(\/*$)/g,"");_win.url_request=window.parent.location.search,setTimeout(function(){jQuery('[data-drawer][route="'+this_url+'"]').click()},20)}else _win.bd.on("shown.bs.tab","[data-drawer][route]",tabOnRoute),_win.bd.on("hide.bs.tab","[data-drawer][route]",tabOnRoute_hidden);_win.bd.on("shown.bs.tab","[data-route]",tabOnRoute),_win.bd.on("hide.bs.tab","[data-route]",tabOnRoute_hidden);function tabOnRoute_hidden(){var e=jQuery(this);if(!history.state){var a=e.attr("route")||e.attr("data-route"),t=e.attr("data-target");a&&history.replaceState({tab_id:t},null,a)}}function tabOnRoute(){var e=jQuery(this);if(e.attr("onpopstate"))e.attr("onpopstate",!1);else{var a=e.attr("route")||e.attr("data-route"),t=e.attr("data-target");a&&routeGo(a,{tab_id:t})}}window.onpopstate=function(e){var a=e.state&&jQuery('[data-toggle="tab"][data-target="'+e.state.tab_id+'"]');a&&a.length&&a.attr("onpopstate",!0).click()};function routeGo(e,a,t){t=t||document.title,e&&history.pushState(a,t,e)}if(jQuery.fn.loading=function(e){var a=jQuery(this);e=e=="show"||e=="hide"?e:a.hasClass("loading-show")?"hide":"show";var t="loading-backdrop",r='';return e=="show"?a.addClass("loading-show").append(r).find("."+t).fadeIn(200):a.removeClass("loading-show").find("."+t).fadeOut(200,function(){jQuery(this).remove()}),a},jQuery.fn.Drawer=function(e,a,t,r){a=a||"";var n=jQuery(this);if(!n.length)return;e=e=="show"||e=="hide"?e:n.hasClass("show")?"hide":"show";var i=jQuery("body");n.attr("on-start")||n.attr("on-start",!0).minitouch({direction:"right",onEnd:function(){n.Drawer("hide")}});function s(d){history.replaceState(null,document.title,d)}switch(e){case"show":var o=jQuery('
'+a+"
").on("click",".drawer-close",function(){n.Drawer("hide")});return i.append(o),setTimeout(function(){i.addClass("drawer-show")},10),r&&n.data("route_back",r),t&&s(t),n.addClass("show");case"hide":return i.removeClass("drawer-show"),setTimeout(function(){jQuery(".drawer-header").remove()},400),s(n.data("route_back")),n.removeClass("show");default:}},jQuery(".wp-block-carousel").length){jQuery("link#swiper").length||jQuery("head").append('');var _sc=jQuery(".wp-block-carousel"),Sw=[];tbquire(["swiper"],function(){_sc.each(function(e){var a=jQuery(this),t="swiper-post-"+e;a.find(".wp-block-gallery>.blocks-gallery-grid").length&&a.find(".wp-block-gallery").html(a.find(".wp-block-gallery>.blocks-gallery-grid").html()),a.find(".wp-block-gallery").removeClass().addClass("swiper-wrapper").find(".blocks-gallery-item,>.wp-block-image").addClass("swiper-slide"),a.find(".carousel-control.left").replaceWith('
'),a.find(".carousel-control.right").replaceWith('
');var r=a.find(".carousel"),n=r.attr("proportion")||.6,i=r.attr("style");r.addClass(t+" new-swiper scale-height").attr("style","--scale-height:"+n*100+"%;"),a.attr("style",i);var s=~~r.attr("data-interval")||6e3,o=r.attr("data-jyloop")||!1,d=r.attr("data-effect")||"slide",u=~~((r.width()+1200)/250)*100;Sw["swiper_wz_"+e]=new Swiper(".wp-block-carousel ."+t,{spaceBetween:10,speed:u,loop:o,effect:d,autoplay:{delay:s,disableOnInteraction:!1},pagination:{el:"."+t+" .swiper-pagination",clickable:!0},navigation:{nextEl:"."+t+" .swiper-button-next",prevEl:"."+t+" .swiper-button-prev"}})})})}_win.bd.on("show.bs.modal loaded.bs.modal",".modal:not(.flex)",function(){var e=jQuery(this),a=e.find(".modal-dialog");e.css("display","block"),a.css({"margin-top":Math.max(0,(_hei-a.height())/2)})}),_win.bd.on("show.bs.modal loaded.bs.modal",".modal",function(){auto_fun()}),_win.modal_z_index=1050,_win.bd.on("show.bs.modal",".modal",function(){_win.modal_z_index++,jQuery(".modal.in").addClass("modal-parent"),jQuery(this).css("z-index",_win.modal_z_index).removeClass("modal-parent")}),_win.bd.on("hide.bs.modal",".modal",function(){jQuery(".modal.modal-parent").removeClass("modal-parent")}),_win.bd.on("click",".oauth-untying",function(){if(confirm(aksrt__("confirm_unbind"))==!0){var e=jQuery(this),a={action:"user_oauth_untying",user_id:e.attr("user-id"),type:e.attr("untying-type"),_wpnonce:e.attr("_wpnonce")};return aksrt_ajax(e,a),!1}}),_win.bd.on("click",".medal-add-link",function(){if(confirm(aksrt__("confirm_grant_badge"))==!0)return aksrt_ajax(jQuery(this)),!1}),_win.bd.on("click",".medal-remove-link",function(){if(window.confirm(aksrt__("confirm_revoke_badge")))return aksrt_ajax(jQuery(this)),!1}),_win.bd.on("click","[tab-id]",function(e){var a=jQuery(this).attr("tab-id");if(a){var t=jQuery('a[data-target="#'+a+'"]');t.length||(t=jQuery('a[href="#'+a+'"]')),t.length&&(e.preventDefault(),t.tab("show"))}}),_win.bd.on("click",'[data-toggle="RefreshModal"]',function(e){e.preventDefault();var a=jQuery(this),t=a.attr("data-remote");if(!t){var r=a.attr("data-action");r&&(t=_win.ajax_url+"?action="+r)}return refresh_modal({class:a.attr("data-class")||"",height:a.attr("data-height")||300,mobile_from_bottom:!!a.attr("mobile-bottom"),new:a.attr("new"),touch_close:!a.attr("no-touch"),remote:t}),!1}),_win.bd.on("click",".show-order-modal",function(e){e.preventDefault();var a=jQuery(this),t=a.attr("data-order-id"),r=a.attr("new-modal");refresh_modal({class:"full-sm body-bg",height:420,mobile_from_bottom:!0,touch_close:!0,new:r,remote:_win.ajax_url+"?action=order_details_modal&order_id="+t})});function refresh_modal(e){e.mobile_from_bottom=typeof e.mobile_from_bottom>"u"?!0:e.mobile_from_bottom;var a="refresh_modal",t=e.new,r=e.class||"",n=e.height||200,i=e.mobile_from_bottom&&_wid<769?" bottom":"",s=typeof e.touch_close>"u"?!0:e.touch_close,o="modal flex jc fade"+i,d=e.remote||"",u=e.content||"";r+=" modal-dialog",a+=t?parseInt((Math.random()+1)*Math.pow(10,4)):"";var c="#"+a,l=jQuery(c);if(l.length){var h=l.hasClass("in");h&&(o+=" in");var f=l.find(".modal-content");l.removeClass().addClass(o),l.find(".modal-dialog").removeClass().addClass(r),l.find(".loading-mask").fadeIn(200),l.find(".modal-body").fadeOut(200),f.css({overflow:"hidden",height:h?f.height():100}).animate({height:n})}else{var p='',g='
';_win.bd.append(p),l=jQuery(c),l.on("hidden.bs.modal",function(){t?jQuery(this).remove():jQuery(this).find(".modal-content").html(g)}),l.find(".modal-content").html(g).css({height:n,overflow:"hidden"}),_wid<769&&l.minitouch({direction:"bottom",selector:".modal-dialog",start_selector:".modal-colorful-header,.touch-close,.touch",onEnd:function(){l.modal("hide")},stop:function(){return!l.hasClass("bottom")}})}l.find(".touch-close").remove(),i&&s&&l.find(".modal-dialog").append('
'),l.modal("show"),u?(l.find(".modal-body").html(u),v()):d&&jQuery.post(d,null,function(b){l.find(".modal-body").html(b),setTimeout(function(){l.trigger("loaded.bs.modal")},20),v()});function v(){l.find(".modal-body").fadeIn(50,function(){var b=jQuery(this).outerHeight(!0);l.find(".loading-mask").fadeOut(300),l.find(".modal-content").animate({height:b},300,"swing",function(){l.find(".modal-content").css({height:"",overflow:"",transition:""})})})}return l}window.auto_maxHeight=debounce(z_auto,100);function z_auto(){if(_win.do_hh=document.documentElement.clientHeight,_win.do_hh>document.body.clientHeight){var e=_win.do_hh-jQuery(".footer").outerHeight()-jQuery(".header").outerHeight()-20;jQuery("main").animate({"min-height":e})}}window.auto_fun=debounce(z_auto_fun,100);function z_auto_fun(){jQuery(document).trigger("auto_fun"),jQuery(".auto-search").AutoSearch(),jQuery(".dependency-box").dependency(),jQuery(".cloneable").cloneable(),jQuery("[data-countdown]").countdown(),auto_maxHeight(),jQuery("img[data-src]:not(.lazyload,.lazyloaded,.lazyloading,.swiper-lazy)").addClass("lazyload"),jQuery(".dropdown-code,.dropdown-image,.dropdown-quick-often").length&&tbquire(["input-expand"]),jQuery("[aksrtupload]").length&&tbquire(["mini-upload"]),jQuery("[poster-share]").length&&tbquire(["poster-share"]),jQuery("[data-toggle='tooltip']").tooltip({container:"body"}),jQuery("[data-clipboard-text]").length&&tbquire(["clipboard"]),jQuery("[data-toggle='popover']").popover({sanitize:!1}),_wid>768?(jQuery(".fixed-wrap-nav").autoAffix(20,38),jQuery(".relative>.scroll-x.no-scrollbar").scrollX()):jQuery(".affix-header-sm").autoAffix(0,20),_wid>900&&jQuery(".sidebar").sidebarAffix(),new_swiper(),new_dplayer(),tbquire(["svg-icon"],()=>{show_svg()});var e=_win.highlight_kg?"pre code:not(.enlighter-origin)":"pre code.gl:not(.enlighter-origin),pre code.special:not(.enlighter-origin)";jQuery(e).length&&tbquire(["enlighterjs"],function(){var a=!!_win.highlight_hh;jQuery("link#enlighterjs").length||jQuery("head").append(''),jQuery(e).enlight({linenumbers:a,indent:2,textOverflow:"scroll",rawcodeDbclick:!0,rawButton:!1,infoButton:!1,windowButton:!1,theme:_win.highlight_zt})})}(function(){var e=throttle(function(){var s=document.documentElement.scrollTop+document.body.scrollTop,o=jQuery(".ontop");s>100?_win.bd.addClass("body-scroll"):_win.bd.removeClass("body-scroll"),s>400?o.addClass("show"):o.removeClass("show")},100);_win.window.scroll(e);var a=debounce(function(){jQuery("[data-toggle='tooltip']").tooltip("hide")},500,!0);_win.window.scroll(a);var t=debounce(function(){_win.bd.addClass("scroll-ing")},500,!0),r=debounce(function(){_win.bd.removeClass("scroll-ing")},500);jQuery(".scrolling-hide").length&&_win.window.scroll(t).scroll(r);var n=0,i=debounce(function(){var s=document.documentElement.scrollTop+document.body.scrollTop;n>100&&s>n?_win.auto_scroll||_win.bd.removeClass("scroll-up").addClass("scroll-down"):(!_win.auto_scroll||n<=100)&&_win.bd.removeClass("scroll-down").addClass("scroll-up"),n=s},10,!0);jQuery(".scroll-down-hide").length&&_win.window.scroll(i)})();function scrollTopTo(e,a){var t=0,r=jQuery("body,html"),n=n||300;if(a=a||0,e){var i=e instanceof jQuery?e:jQuery(e);t=i.length?i.offset().top+a-(r.hasClass("nav-fixed")?jQuery(".header").innerHeight()+20:0):0}Math.abs(t-r.scrollTop())<80||(_win.auto_scroll=!0,r.animate({scrollTop:t},n,"swing",function(){setTimeout(function(){_win.auto_scroll=!1},20)}))}_win.bd.on("click",".toggle-radius,.float-right a,.but-ripple,.but,.item-thumbnail,.menu-item >a,.yiyan-box,.relates-thumb li a",function(e){var a=jQuery(this);if(!a.hasClass("nowave")&&!a.hasClass("is-disabled")){a.css({overflow:"hidden",position:"relative"});var t,r=~~a.outerWidth(),n=~~a.outerHeight();r").css({display:"block",background:i,"border-radius":"50%",position:" absolute","-webkit-transform":"scale(0)",transform:"scale(0)",opacity:".3","-webkit-transition":"all 1.5s cubic-bezier(0.22, 0.61, 0.36, 1)",transition:"all 1.5s cubic-bezier(0.22, 0.61, 0.36, 1)","z-index":"1",overflow:"hidden","pointer-events":"none"});a.append(s),s.css({width:t*2+"px",height:t*2+"px",top:e.pageY-a.offset().top-t+"px",left:e.pageX-a.offset().left-t+"px",transform:"scale(1)","-webkit-transform":"scale(1)",opacity:0}),setTimeout(function(){s.remove()},2e3)}}),jQuery.fn.sidebarAffix=function(){var e=jQuery(this),a=e.find("[data-affix]"),t="sidebar-affix";if(!a.length||e.children("."+t).length)return e;var r=jQuery("body"),n=a.innerWidth(),i=jQuery(".header");function s(){return r.hasClass("nav-fixed")&&(!i.hasClass("scroll-down-hide")||!r.hasClass("scroll-down"))?i.outerHeight(!0):20}var o=jQuery('
');e.prepend(o);function d(){o.css({top:s()})}var u=0;return o.affix({offset:{top:function(){var c=e.outerHeight(!0)+e.offset().top-s();return c!==u&&o.hasClass("affix")&&d(),u=c,c},bottom:function(){var c=e.parent();return document.body.clientHeight-c.outerHeight()-c.offset().top}}}).on("affix-top.bs.affix",function(){o.html("")}).on("affix.bs.affix",function(){o.find("[data-affix]").length||o.append(e.find("[data-affix]").clone()),d()}).find("[lazyload-action]:not(.lazyload)").addClass("lazyload"),o.hasClass("affix")&&o.trigger("affix.bs.affix"),o.hasClass("affix-bottom")&&o.trigger("affix-bottom.bs.affix"),e},jQuery.fn.autoAffix=function(e,a){e=~~e,a=~~a;var t=jQuery(this);if(t.data("bs.affix"))return t;var r=jQuery("body"),n=~~t.attr("offset-top"),i=~~t.attr("offset-bottom"),s=t.attr("data-wrap"),o=s?jQuery(s):t.parent(),d=jQuery(".header");function u(){return(r.hasClass("nav-fixed")&&(!d.hasClass("scroll-down-hide")||!r.hasClass("scroll-down"))?d.outerHeight():0)+e}function c(){t.next(".affix-clone").remove()}function l(){t.css({top:u()})}function h(){t.next(".affix-clone").length||t.after(t.clone().removeClass("affix-top affix affix-bottom").addClass("affix-clone").css("opacity","0"))}o.css("min-height",t.outerHeight()+a);var f=0;return t.affix({offset:{top:function(){var p=t.parent().offset().top-u()+n;return p!==f&&t.hasClass("affix")&&l(),f=p,p},bottom:function(){return document.body.clientHeight-o.outerHeight()-o.offset().top+a+i}}}).on("affix-top.bs.affix",function(){t.css({top:"",width:""}),c()}).on("affix.bs.affix",function(){h(),l()}).on("affix-bottom.bs.affix",function(){h()}),t.hasClass("affix")&&t.trigger("affix.bs.affix"),t.hasClass("affix-bottom")&&t.trigger("affix-bottom.bs.affix"),t.hasClass("affix-top")&&t.trigger("affix-top.bs.affix"),t},_win.bd.on("click",".toggle-theme",function(e){var a=jQuery("body").hasClass("dark-theme");if(!document.startViewTransition){o();return}const t=document.startViewTransition(()=>{o()}),{clientX:r,clientY:n}=e,i=Math.hypot(Math.max(r,innerWidth-r),Math.max(n,innerHeight-n)),s=[`circle(0px at ${r}px ${n}px)`,`circle(${i}px at ${r}px ${n}px)`];t.ready.then(()=>{document.documentElement.animate({clipPath:a?[...s].reverse():s},{duration:500,easing:a?"ease-out":"ease-in",fill:"both",pseudoElement:a?"::view-transition-old(root)":"::view-transition-new(root)"})});function o(){var d="enlighter-t-"+_win.highlight_white_zt,u="enlighter-t-"+_win.highlight_dark_zt;jQuery("img[switch-src]").each(function(){var f=jQuery(this),p=f.attr("data-src")||f.attr("src"),g=f.attr("switch-src");f.attr("src",g).attr("switch-src",p).attr("data-src","")}),jQuery("img[white-src],img[dark-src]").each(function(){var f=jQuery(this),p=a?f.attr("white-src"):f.attr("dark-src");p&&f.attr("src",p)});var c=jQuery(".enlighter-default"),l=jQuery("body"),h=jQuery("#post_content_ifr").contents().find("body");a?(jQuery('meta[name="theme-color"]').attr("content","#FDFCFE"),document.documentElement.classList.remove("dark"),h.removeClass("dark-theme"),c.removeClass(u).addClass(d),l.removeClass("dark-theme"),jQuery.cookie("theme_mode","white-theme",{path:"/"})):(jQuery('meta[name="theme-color"]').attr("content","#2F3135"),document.documentElement.classList.add("dark"),h.addClass("dark-theme"),c.removeClass(d).addClass(u),l.addClass("dark-theme"),jQuery.cookie("theme_mode","dark-theme",{path:"/"}))}}),_win.bd.on("click","[data-action]",function(){var e=jQuery(this),a=e.attr("data-pid"),t=e.attr("data-action"),r=t,n="aksrt"+r,i={type:r,key:t,pid:a};if(!_win.is_signin){var s=lcs.get(n)||"";if(s.indexOf(","+a+",")!==-1)return notyf(aksrt__(r=="like"?"like_already_post":"like_already_comment"),"warning");s?s.length>=160?(s=s.substring(0,s.length-1),s=s.substr(1).split(","),s.splice(0,1),s.push(a),s=s.join(","),lcs.set(n,","+s+",")):lcs.set(n,s+a+","):lcs.set(n,","+a+",")}action_ajax(e,i,a,r,aksrt__("like_thanks"))});function action_ajax(e,a,t,r,n){if(e.attr("disabled"))return!1;a._wpnonce=_win.post_action_nonce;var i=n||aksrt__("done");jQuery.ajax({type:"POST",url:_win.uri+"/action/action.php",dataType:"json",data:a,beforeSend:function(){e.attr("disabled",!0).find("count").html('')},success:function(s){var o=s.error?"danger":"";s.action&&s.action=="remove"&&(e.removeClass("actived action-animation"),o="warning"),s.action&&s.action=="add"&&e.addClass("actived action-animation"),notyf(s.msg||i,o),e.attr("disabled",!1).find("count").html(s.cuont||"0"),r=="follow_user"&&jQuery('[data-action="follow_user"][data-pid="'+t+'"]').each(function(){jQuery(this).find("count").html(s.cuont)})}})}_win.bd.on("click","[ajax-action]",function(){var e=jQuery(this);if(e.attr("disabled"))return!1;var a=e.attr("data-id"),t=e.attr("ajax-action"),r=e.find("text");r=r.length?r:e.siblings("text");var n=r.html();e.attr("disabled",!0),r.html(''),jQuery.ajax({type:"POST",url:_win.ajax_url,dataType:"json",data:{id:a,action:t,_wpnonce:e.attr("data-nonce")},error:function(i){var s=aksrt_sprintf("ajax_error",i.status,i.statusText);aksrt_is_fatal_error_response(i.responseText)&&(s=aksrt__("ajax_fatal_error")),notyf(s,"danger"),e.attr("disabled",!1),r.html(n)},success:function(i){if(e.attr("disabled",!1),!i.data||!i.success)r.html(n),i.data&&i.data.msg&¬yf(i.data.msg,i.data.ys||"danger");else{if(i=i.data,i.show_modal&&i.modal){var s={class:"modal-mini full-sm",height:330,mobile_from_bottom:!0,touch_close:!0,content:i.modal};i.modal_config&&(s=jQuery.extend(s,i.modal_config)),s.content=i.modal,refresh_modal(s),r.html(n);return}jQuery('[ajax-action="'+t+'"][data-id="'+a+'"]').each(function(){var o=jQuery(this),d=o.find("text");d=d.length?d:o.siblings("text"),d.html(i.text||n).addClass("ajaxed"),i.active?o.addClass("active").siblings(".active").removeClass("active"):o.removeClass("active")})}}})});function throttle(e,a){let t=!0;return function(...r){if(!t)return!1;t=!1,setTimeout(function(){e.apply(this,r),t=!0},a)}}function debounce(e,a,t){var r;return function(){var n=this,i=arguments,s=function(){r=null,t||e.apply(n,i)},o=t&&!r;clearTimeout(r),r=setTimeout(s,a),o&&e.apply(n,i)}}if(_win.bd.on("input focus","textarea[autoHeight]",function(){var e=this,a=~~getComputedStyle(e).getPropertyValue("border-top-width").replace("px","")+~~getComputedStyle(e).getPropertyValue("border-bottom-width").replace("px",""),t=~~jQuery(e).attr("maxHeight");e.style.height="auto",t>e.scrollHeight?(e.style.height=e.scrollHeight+a+"px",e.style.overflow="hidden"):(e.style.height=t+"px",e.style.overflow="auto")}),_win.bd.on("click",".rewards",function(){jQuery("#rewards-popover").modal("show")}),_win.bd.hasClass("author")&&tbquire(["author"]),_win.bd.hasClass("page-template-postsnavs")&&_win.bd.hasClass("logged-admin")&&tbquire(["page-navs"]),jQuery("#modal_admin_set").length&&tbquire(["page-edit"]),jQuery("#commentform,#postcomments").length&&tbquire(["comment"]),_win.bd.hasClass("page-template")&&tbquire(["page-template"]),window.WeChatShareDate&&tbquire(["weixin-share"]),_win.bd.hasClass("search")){var val=jQuery(".search-desc-text .search-key").text();try{var reg=eval("/"+val+"/i");jQuery(".search-tab .item-heading a,.search-tab .item-excerpt,.search-tab .forum-title a,.search-tab .excerpt,#search-tab-user .display-name").each(function(){var e=jQuery(this);e.text().search(reg)!=-1&&e.html(e.html().replace(reg,function(a){return''+a+""}))})}catch(e){}}_win.bd.on("click",".pag-jump .jump-icon",function(){var e=jQuery(this).siblings(".jump-input");pag_jump_go(e)}),_win.bd.on("input",".pag-jump .jump-input",debounce(function(){pag_jump(jQuery(this))},200)),_win.bd.on("keydown",".pag-jump .jump-input",function(e){e.keyCode==13&&pag_jump_go(jQuery(this))});function pag_jump(e){var a=e.attr("max"),t=e.attr("current"),r=~~e.val();return(!r||r<1||r>a)&&(r=r>a?a:"",e.val(r)),r==t?0:r}function pag_jump_go(e){var a=pag_jump(e);if(a){var t=e.attr("base"),r=t.replace("%#%",a),n=e.parent();if(n.hasClass("ajax-next")){e.val("");var i=n.clone().removeClass("pag-jump").addClass("hide").attr("href",r);n.append(i),i.click(),i.remove()}else location.href=r,location.reload}else e.focus()}jQuery.fn.cloneable=function(){var e="cloneable",a="."+e+"-add",t="."+e+"-remove",r="."+e+"-item";function n(i,s,o){var d=i.children(r).length;s&&s<=d?i.nextAll(a).hide():i.nextAll(a).show(),o&&o>=d?i.find(t).hide():i.find(t).show()}return this.each(function(){var i=jQuery(this),s=i.children(r),o="is-on",d="click",u=i.data("max")||0,c=i.data("min")||0;if(n(i,u,c),!(!s.length||i.attr(o))){var l=jQuery(s[0]).clone(!1);l.find("input,textarea").val(""),i.attr(o,!0).on(d,t,function(){jQuery(jQuery(this).parents(r)[0]).remove(),n(i,u,c)}).nextAll(a).on(d,function(){var h=l.clone(!1),f=i.children(r).length;h.find("[name]").each(function(){var p=jQuery(this),g=p.attr("name");g=="_pseudo"||!g.includes("[0]")||p.attr("name",p.attr("name").replace("[0]","["+f+"]"))}),i.append(h),n(i,u,c)})}})},jQuery.fn.dependency=function(){function e(r){return Number(r)}function a(r){switch(r){case!0:case"true":case 1:case"1":return!0;case null:case!1:case"false":case 0:case"0":return!1;default:return r}}function t(r,n,i){switch(r){case"==":return a(n)==a(i);case"!=":return a(n)!=a(i);case">=":return e(i)>=e(n);case"<=":return e(i)<=e(n);case">":return e(i)>e(n);case"<":return e(i)=0;s--)if(jQuery.inArray(i[s],n.split(","))!==-1)return!0}else if(jQuery.inArray(i,n.split(","))!==-1)return!0;return!1;case"not-any":if(jQuery.isArray(i)){for(let s=i.length-1;s>=0;s--)if(jQuery.inArray(i[s],n.split(","))==-1)return!0}else if(jQuery.inArray(i,n.split(","))==-1)return!0;return!1;default:return!1}}return this.each(function(){var r=jQuery(this),n=r.find("[data-controller]");if(n.length){var i="is-on";n.each(function(){var s=jQuery(this);if(!s.attr(i)){var o=s.attr(i,!0).data("controller").split("|"),d=s.data("condition").split("|"),u=s.data("value").toString().split("|");jQuery.each(o,function(c,l){var h=u[c]||"",f=d[c]||d[0]||"==";r.on("change","[name='"+l+"']",function(){var p=jQuery(this),g=p.attr("type"),v=g=="checkbox"?p.is(":checked"):p.val(),b=t(f,h,v);s.trigger("controller.change",b),b?s.show():s.hide()})})}})}})},_win.bd.on("click","[data-for]",function(){var e=jQuery(this),a=e.html(),t=e.attr("data-for"),r=e.parents("form"),n=e.attr("data-value"),i=~~e.attr("data-multiple"),s=e.closest("[for-group]"),o=e.prop("outerHTML");if(s.length||(s=e.parent()),i>1){a="",o="";var d=[],u="",c=e.hasClass("active");if(c)s.find('[data-for="'+t+'"][data-value="'+n+'"]').removeClass("active");else{var l={};if(s.find('[data-for="'+t+'"].active').each(function(){l[jQuery(this).attr("data-value")]=1}),Object.keys(l).length>=i)return notyf(aksrt_sprintf("select_max",i),"danger");s.find('[data-for="'+t+'"][data-value="'+n+'"]').addClass("active")}s.find('[data-for="'+t+'"].active').each(function(){var h=jQuery(this).attr("data-value");d.indexOf(h)==-1&&(a+=jQuery(this).html(),u+='',d.push(h),o+=jQuery(this).clone().addClass("outerhtml-copy").prop("outerHTML"))}),jQuery.each(d,function(h,f){s.find('[data-for="'+t+'"][data-value="'+f+'"]').addClass("active")}),r.find("input[name='"+t+"[]']").remove(),r.append(u)}else s.find('[data-for="'+t+'"]').removeClass("active"),s.find('[data-for="'+t+'"][data-value="'+n+'"]').addClass("active"),r.find("input[name='"+t+"']").val(n).trigger("change");r.find("span[name='"+t+"']").html(a),r.find("input[name=s]").focus(),r.find(".active-outerhtml[name='"+t+"']").html(o)}),_win.bd.on("input","input[limit-min],input[limit-max]",debounce(function(){var e=jQuery(this),a=Number(e.attr("limit-min")),t=Number(e.attr("limit-max")),r=Number(e.val()),n,i="limit-warning";e.next("."+i).length||e.after('');var s=e.next("."+i);e.val().length<1?s.html("").hide():r>t?(n=e.attr("warning-max")||aksrt__("input_max"),s.html(n.replace("1$",t)).fadeIn(150)):r',p=f+''+aksrt__("search_loading")+"",g="is-on";if(e.data(g))return;function v(){var _={},Q=e.serializeObject();jQuery.each(Q,function(j,C){_[j]=C}),e.find("input[name]").each(function(){var j=jQuery(this),C=j.val()||"";_[j.attr("name")]=C}),e.addClass(i),u.html(p),c.html(f),d.css({height:d.outerHeight(),overflow:"hidden"}),jQuery.post(a,_,function(j){var C=j.data;C&&d.html('
'+C+"
").animate({height:d.children("."+o).outerHeight()},200,"swing",function(){d.css({height:"",overflow:"",transition:""})}),e.removeClass(i),u.html(j.remind||""),c.html(l),auto_fun()},"json")}function b(_){_.val().length>=t?v():u.html(h)}e.data(g,!0).find(s).on("input",debounce(function(){b(jQuery(this))},500)).on("keydown",function(_){_.keyCode==13&&(_.preventDefault(),b(jQuery(this)))})})},_win.bd.on("click",".main-search [data-for]",function(){var e=jQuery(".main-search").find(".scale-placeholder");e.length&&e.text(e.attr("default"))}),_win.bd.on("submit",".main-search form",function(){var e=jQuery(this),a=e.serializeObject();jQuery.each(a,function(t,r){(!r||r=="null")&&t!="s"&&e.find('input[name="'+t+'"]').remove()})}),_win.bd.on("click",".main-search-btn",function(){var e=jQuery(this);jQuery(".main-search").addClass("show");var a=jQuery(".main-search [remote-box]").first();if(a.length){a.one("aksrt:remote-loaded",function(){e.trigger("click")}),a.trigger("click");return}var t=jQuery(".main-search form");if(t.length){var r="search-",n={type:e.attr(r+"type"),user:e.attr(r+"user"),trem:e.attr(r+"trem")};jQuery.each(n,function(s,o){if(o){var d=t.find('input[name="'+s+'"]').val(o),u=t.find('[data-for="'+s+'"][data-value="'+o+'"]').click();if(!u.length&&s=="trem"){var c=e.attr("trem-name"),l=t.find(".cat-drop");c&&l.length&&(l.append('
  • '+c+"
  • "),l.find('[data-value="'+o+'"]').click())}d.length||t.append('')}});var i=e.attr(r+"placeholder")||t.find(".scale-placeholder").attr("default");t.find(".scale-placeholder").text(i),setTimeout(function(){t.find('[name="s"]').focus()},100)}}),jQuery(".search-page-ajaxpager").length&&(_win.bd.on("click",".page-search-box a.search_keywords",function(){var e=jQuery(this).clone();return e.addClass("ajax-next").attr("ajax-replace","true").attr("route","true"),jQuery(".search-page-ajaxpager").append(e),e.click().remove(),!1}),_win.bd.on("submit",".page-search-box .search-form",function(){var e=jQuery(this),a=e.serializeObject(),t=new URL(e.attr("action"));t.search=new URLSearchParams(a).toString();var r=jQuery('');return jQuery(".search-page-ajaxpager").append(r),r.click().remove(),!1}));function nav_folding(){var e=".navbar-nav",a="sub-menu",t=jQuery(".navbar-collapse"),r=t.width();t.find(">:not("+e+")").each(function(){r-=jQuery(this).outerWidth()}),r-=jQuery(".navbar-header").outerWidth()+40;var n=66,i=jQuery('');jQuery(e+">li").each(function(){n+=jQuery(this).outerWidth(),n>r&&i.find(">."+a).append(jQuery(this))}),i.find(">."+a+" li").length&&jQuery(e).append(i)}window.debounce_notyf=debounce(notyf,100,!0);function notyf(e,a,t,r){jQuery(".notyn").length||_win.bd.append('
    '),a=a||"success",a=="error"&&(a="danger"),t=t||5e3,t=t<100?t*1e3:t;var n=r?' id="'+r+'"':"",i=jQuery('
    '+e+"
    "),s=!r;r&&jQuery("#"+r).length?(jQuery("#"+r).find(".notyf").removeClass().addClass("notyf "+a).html(e),i=jQuery("#"+r),s=!0):jQuery(".notyn").append(i),s&&setTimeout(function(){notyf_close(i)},t)}function notyf_close(e){e.addClass("notyn-out"),setTimeout(function(){e.remove()},1e3)}_win.bd.on("click",".noty1",function(){notyf_close(jQuery(this))}),_win.passw=1,_win.bd.on("click",".passw",function(){var e=jQuery(this);_win.passw==1?(e.find(".fa").addClass("fa-eye-slash"),e.siblings("input").attr("type","text"),_win.passw=2):(e.find(".fa").removeClass("fa-eye-slash"),e.siblings("input").attr("type","password"),_win.passw=1)}),_win.bd.on("input change focus",".line-form-input",debounce(function(){placeholder_scale(jQuery(this))},100));function placeholder_scale(e){var a=e.val(),t=e.siblings(".scale-placeholder");a.length>0?t.addClass("is-focus"):t.removeClass("is-focus")}function aksrt_is_url(e){try{return new URL(e),!0}catch{return!1}}function is_mail(e){return/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/.test(e)}jQuery.fn.serializeObject=function(){var e={},a=this.serializeArray();return jQuery.each(a,function(){e[this.name]!==void 0?(e[this.name].push||(e[this.name]=[e[this.name]]),e[this.name].push(this.value||"")):e[this.name]=this.value||""}),e},_win.bd.on("click",".trash-history-search",function(){confirm(aksrt__("confirm_clear_search"))==!0&&(jQuery(".history-search").slideUp().delay(1e3,function(){jQuery(this).remove()}),jQuery.cookie("history_search",""))}),_win.bd.on("click",".initiate-checkin",function(){aksrt_ajax(jQuery(this),0,function(e){e.details_link&&jQuery(".initiate-checkin").each(function(){var a=jQuery(e.details_link),t=jQuery(this),r=t.attr("class"),n=t.attr("ed-text");a.addClass(r).removeClass("initiate-checkin").html(n),t.prop("outerHTML",a.prop("outerHTML"))})},aksrt__("checkin_loading"))}),_win.bd.on("click",".single-pay-tabbar",function(){scrollTo("#posts-pay",-50),jQuery("#posts-pay .cashier-link").click()}),_win.bd.on("submit","[ajax-submit]",function(){var e=jQuery(this),a=e.attr("ajax-submit")||'.wp-ajax-submit,[zibajax="submit"]';return e.find(a).click(),!1}),_win.bd.on("click",'.wp-ajax-submit,[zibajax="submit"]',function(){var e=jQuery(this),a=e.attr("data-confirm");return a&&!confirm(a)||aksrt_ajax(jQuery(this)),!1});function aksrt_ajax(e,a,t,r,n){if(e.attr("disabled"))return!1;if(!a){var i=e.attr("form-data");if(i)try{a=jQuery.parseJSON(i)}catch{}if(!a){var s=e.parents("form");a=s.serializeObject()}}var o=e.attr("form-action");o&&(a.action=o);var d=e.html(),u=n?d:''+aksrt__("please_wait")+"";r!="stop"&¬yf(r||aksrt__("processing"),"load","","wp_ajax"),e.attr("disabled",!0).html(u);var c=e.attr("ajax-href")||_win.ajax_url;jQuery.ajax({type:"POST",url:c,data:a,dataType:"json",error:function(l){var h=aksrt_sprintf("ajax_error",l.status,l.statusText);aksrt_is_fatal_error_response(l.responseText)&&(h=aksrt__("ajax_fatal_error")),console.error("ajax请求错误,错误信息如下:",l),notyf(h,"danger","",r!="stop"?"wp_ajax":""),e.attr("disabled",!1).html(d)},success:function(l){var h=l.ys?l.ys:l.error?"danger":"";r!="stop"?notyf(l.msg||aksrt__("done"),h,"","wp_ajax"):l.msg&¬yf(l.msg,h),e.attr("disabled",!1).html(d).trigger("aksrt_ajax.success",l),jQuery.isFunction(t)&&t(l,e,a),l.hide_modal&&e.closest(".modal").modal("hide"),l.reload&&(l.goto?(window.location.href=l.goto,window.location.reload):window.location.reload())}})}_win.bd.on("aksrt_ajax.success","[next-tab]",function(e,a){var t=jQuery(this).attr("next-tab");t&&a&&!a.error&&jQuery('a[href="#'+t+'"]').tab("show")}),jQuery(".erphp-login-must").each(function(){jQuery(this).addClass("signin-loader")}),_win.window.resize(debounce(function(){_wid=_win.window.width(),auto_fun()},500)),jQuery(".collapse").on("shown.bs.collapse",function(){auto_fun()}),_win.bd.on("click",".read-more-open",function(){jQuery(this).parents(".limit-height").css({height:"","max-height":""}).find(".read-more").remove()});function posts_limit_height(){if(jQuery(".limit-height").length){var e=jQuery(".limit-height");if(e.data("posts-limit-ison"))return;var a=e.height(),t=e.attr("data-maxheight");if(~~a>=~~t+79){var r='';e.append(r).data("posts-limit-ison",!0)}}}auto_fun(),thumb_dplayer(_wid>640?".posts-item .item-thumbnail,.forum-lists-cover":".posts-item,.forum-posts",".video-thumb-box[video-url]"),jQuery("[load-click]").attr("no-scroll",!0).click(),jQuery(document).on("lazybeforeunveil",function(e){var a=jQuery(e.target),t=a.attr("lazyload-action");setTimeout(function(){if(t==="ias")if(a.attr("remote-box"))a.click();else{var n=a.is(".ajax-next,.ias-btn")?a:a.find(".ajax-next,.ias-btn");n.attr("no-scroll",!0).click()}if(t=="animated"){var i=a.attr("data-animated");i&&a.addClass("animated "+i).css("visibility","unset")}},200);var r=a.attr("data-bg");r&&a.css("background-image","url("+r+")")});function fps_yh(){var e=0,a=0,t=0,r=0,n,i=0;function s(){n=performance.now(),a++,n-e>=300&&(t=Math.round(a*1e3/(n-e)),a=0,e=n,t>5&&e>1600&&(r=r||t,r=(r+t)/2,r<20&&i++,i>5&&jQuery("body").addClass("fps-accelerat"))),i<=5&&e<15e3?requestAnimationFrame(s):o()}function o(){jQuery.cookie("fps_accelerat",~~r,{path:"/",expires:604800})}requestAnimationFrame(s)}!jQuery.cookie("fps_accelerat")&&!jQuery("body").hasClass("fps-accelerat")&&fps_yh();function partners_scroll_init(){function e(t){if(!(!t||t.dataset.zpsReady==="1")){var r=parseFloat(t.style.getPropertyValue("--zps-speed"))||3,n=t.querySelectorAll("[data-zps-row]");n.forEach(function(i){var s=i.querySelector("[data-zps-track]");if(s){var o=s.querySelector(".zps-group");if(o){var d=function(){var h=s.querySelectorAll(".zps-group.zps-clone");h.forEach(function(j){j.remove()});var f=o.scrollWidth;if(!(f<10)){var p=i.clientWidth||t.clientWidth||window.innerWidth,g=Math.max(f*2,p+f),v=Math.ceil(g/f);v<2&&(v=2);for(var b=1;b0)){c++;var f=function(){c--,c<=0&&d()};h.addEventListener("load",f,{once:!0}),h.addEventListener("error",f,{once:!0})}});var l;window.addEventListener("resize",function(){clearTimeout(l),l=setTimeout(d,200)})}}}),t.dataset.zpsReady="1"}}function a(){document.querySelectorAll(".aksrt-partners-scroll").forEach(e)}a()}function translate_init(){var e=_win.translate_config;e.s&&tbquire(["translate"],function(){translate.selectLanguageTag.show=!1,translate.language.setLocal(e.local||"chinese_simplified"),e.service_url&&translate.request.setHost(e.service_url),e.ignore_text&&(translate.ignore.text=e.ignore_text),e.nomenclature&&e.nomenclature.length>0&&jQuery.each(e.nomenclature,function(n,i){var s=i.from,o=i.to,d=i.value;s=="auto"&&(s=""),d&&o&&translate.nomenclature.append(s,o,d)}),e.auto_discriminate_local&&translate.setAutoDiscriminateLocalLanguage(),e.range&&e.range.length>0&&(translate.language.translateLanguagesRange=e.range),e.loading&&translate.progress.api.startUITip();var a=jQuery(".language-dropdown .dropdown-menu"),t=debounce(function(){jQuery("[data-language]").removeClass("active"),a.loading("show")},400,!0);translate.lifecycle.changeLanguage.trigger.push(t);var r=debounce(function(n){a.loading("hide"),jQuery("[data-language='"+n.to+"']").addClass("active")},400);translate.lifecycle.execute.finally.push(r),_wid>996&&jQuery(".navbar-top .nav>li>a>.menu-item-title").each(function(){var n=jQuery(this);n.css({"max-width":~~n.outerWidth(!0)+5+"px"})}),translate.ignore.class.push("translate-ignore"),translate.ignore.tag.push("svg"),translate.service.use(e.service_use||"client.edge"),translate.listener.start(),translate.execute()})}_win.bd.on("click",".translate-button",function(){var e=jQuery(this),a=e.attr("data-language");translate&&translate.changeLanguage(a)}),(function(){var e="obs-animate",a="."+e,t="in-view",r="__zaniObserved",n="obs-animate-repeat",i=!("IntersectionObserver"in window)||window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;if(i){l(a);return}var s="100px 0px 0px 0px",o=0;function d(p){o=0;for(var g=0,v=0;v8&&(T=T/(g/8)),j.css("transition-delay",T+"s"),j.addClass(t),o++,C||c(Q)}else C&&j.removeClass(t)}}var u=new IntersectionObserver(d,{root:null,rootMargin:s,threshold:.01});function c(p){!p||p.nodeType!==1||!p[r]||(p[r]=!1,u.unobserve(p),setTimeout(function(){l(p)},50))}function l(p){var g=jQuery(p).attr("data-animation"),v="ani-"+g;jQuery(p).removeClass(t+" "+e+" "+v+" "+n).removeAttr("data-animation").removeAttr("data-animation-repeat").css("transition-delay","")}function h(p){!p||p.nodeType!==1||p[r]||(p[r]=!0,u.observe(p))}function f(){jQuery(a).each(function(){h(this)})}f()})();function number_stats_init(){function e(r,n){var i=parseFloat(r.getAttribute("data-target"))||0;if(i===0){r.textContent="0";return}var s=r.getAttribute("data-target")||"0",o=(s.split(".")[1]||"").length,d=~~r.getAttribute("data-duration");n=d>10?d:n;var u=0,c=null;n=n||1500;function l(h){c||(c=h);var f=Math.min((h-c)/n,1),p=1-Math.pow(1-f,1.5),g=u+(i-u)*p;r.textContent=o>0?g.toFixed(o):Math.floor(g).toString(),f<1?requestAnimationFrame(l):r.textContent=o>0?i.toFixed(o):i.toString()}requestAnimationFrame(l)}var a=document.querySelectorAll(".stat-number-wrap");if(a.length){if(!("IntersectionObserver"in window)){a.forEach(function(r){r.querySelectorAll(".stat-number").forEach(function(n){n.textContent=n.getAttribute("data-target")||""})});return}var t=new IntersectionObserver(function(r){r.forEach(function(n){if(n.isIntersecting){var i=n.target;i.dataset.counted!=="1"&&(i.dataset.counted="1",i.querySelectorAll(".stat-number").forEach(function(s){e(s,1500)}),t.unobserve(i))}})},{threshold:.3});a.forEach(function(r){t.observe(r)})}}_win.bd.on("click",".produck-wid-feature-intro .fi-tab",function(){var e=jQuery(this);if(!e.hasClass("is-active")){e.addClass("is-active"),e.siblings().removeClass("is-active");var a=e.closest(".produck-wid-feature-intro").find(".fi-panel");a.removeClass("is-active"),a.eq(e.index()).addClass("is-active")}});function tilt_cases_init(){function e(){var r="ontouchstart"in window||navigator.maxTouchPoints&&navigator.maxTouchPoints>0,n=window.matchMedia&&window.matchMedia("(max-width: 768px)").matches;return r||n}if(e())return;var a=jQuery(".vanilla-tilt:not(.is-initialized)");if(!a.length)return;function t(r,n){var i=r[0].style.transform;i.includes("translate3d")&&(i=i.replace(/translate3d\(.*?\)/g,"").trim()),i=i+" "+n,r.css("transform",i)}tbquire(["tilt"],function(){a.each(function(){var r=jQuery(this),n=r.find("img"),i=parseFloat(r.attr("data-tilt-max"))||10,s=n.length,o=1.22,d=r.closest(".tilt-cases-container")||r,u=r.data("tilt-mouse-event-element");if(u){r.removeAttr("data-tilt-mouse-event-element");var c=r.closest(u);d=c.length?c:d}var l={};d.length&&(l["mouse-event-element"]=d[0]),r.addClass("is-initialized"),VanillaTilt.init(this,l),!(s<=1)&&(this.addEventListener("tiltChange",function(h){var f=h.detail||{},p=parseFloat(f.tiltX)||0,g=parseFloat(f.tiltY)||0;n.each(function(v){var b=jQuery(this),_=parseFloat(b.attr("data-tilt-depth"));if(isNaN(_)&&(_=20),_===0){t(b,"translate3d(0,0,0)");return}var Q=1;s>1&&(Q=.48+v/(s-1)*1.14);var j=_*o*Q,C=p/i*j*-1,T=g/i*j;t(b,"translate3d("+C+"px, "+T+"px, 0)")})}),d&&d.on("mouseleave",function(){n.each(function(){t(jQuery(this),"translate3d(0,0,0)")})}))})})}_win.bd.on("click",".customize-preview-widget-edit",function(e){if(!(!wp||!wp.customize||!wp.customize.widgetsPreview)){var a=jQuery(this),t=a.closest(".customize-preview-widget-box");e.preventDefault(),wp.customize.widgetsPreview.preview.send("focus-widget-control",t.prop("id"))}}),jQuery(document).ready(function(){if(setTimeout(function(){jQuery(".line-form-input").each(function(){placeholder_scale(jQuery(this))}),_win.views&&jQuery.post(_win.ajax_url,{action:"views_record",id:_win.views}),posts_limit_height(),_win.window.trigger("scroll")},1e3),number_stats_init(),translate_init(),partners_scroll_init(),tilt_cases_init(),jQuery(".navbar-top li.menu-item-has-children>a").each(function(){jQuery(this).append('')}),_wid>996&&jQuery(".header").height()>81&&nav_folding(),posts_limit_height(),auto_maxHeight(),jQuery(".feature").length){var e=0,a=0;jQuery(".feature").each(function(){var r=jQuery(this);(e=r.find(".feature-icon").innerHeight()+r.find(".feature-title").innerHeight()+r.find(".feature-note").innerHeight())>a&&(a=e)}),jQuery(".feature").css("height",a)}jQuery(".qrcode").length&&tbquire(["qrcode"],function(){jQuery(".qrcode").each(function(){var r=jQuery(this),n=r.attr("data-qrcode"),i=r.attr("data-size")||160;r.qrcode({width:i,height:i,correctLevel:0,text:n||document.URL,background:"#fff",foreground:"#333"})})}),jQuery(document).on("lazyloaded",function(r){var n=jQuery(r.target);swiper_tab_AutoHeight(n)}),jQuery(document).on("lazyloaded",".gradient-bg img",function(r){var n=jQuery(r.target),i=n.closest(".gradient-bg"),s=i.attr("data-opacity"),o=s?"a":"",d=s?","+s:"";tbquire(["grade"],function(){Grade(i[0],null,function(u){u=u[0];var c=u.gradientData,l="rgb"+o+"("+c[0].rgba.slice(0,3).join(",")+d+") 10%",h="rgb"+o+"("+c[1].rgba.slice(0,3).join(",")+d+") 80%";jQuery(u.element).addClass("gradient-bg-loaded").css("background-image","linear-gradient(135deg, "+l+", "+h+")")})})}),_win.qj_loading&&jQuery(".qj_loading").fadeOut(500).delay(1e3,function(){jQuery(this).remove(),jQuery("#qj_dh_css").remove()});function t(r){var n=_win.uri+"/yiyan/qv-yiyan.php",i;jQuery.ajax({type:"POST",url:n}).done(function(s){var o=s.replace(/\r\n|\r/g,"/&/").trim().split("/&/");if(o){var d=r.attr("type");d?i=d==="en"?o[0]:o[1]:i='
    '+o[0]+'
    '+o[1]+"
    ",r.html(i)}})}jQuery(".yiyan").each(function(){t(jQuery(this))}),setInterval(function(){jQuery(".yiyan").each(function(){t(jQuery(this))})},3e4),jQuery(".yiyan").on("click",function(){t(jQuery(this))}),jQuery("[data-nav] h1,[data-nav] h2,[data-nav] h3,[data-nav] h4").length>2&&tbquire(["section-navs"]),jQuery("[mini-touch]").each(function(){var r=jQuery(this),n=r.attr("touch-direction");r.minitouch({direction:n,onEnd:function(i){r.attr("mini-touch")==="mobile-nav"?jQuery("body").removeClass("mobile-navbar-show"):i.removeClass("show")}})})}); +jQuery.cookie=function(e,o,t){if(o===void 0){var i=null;if(document.cookie&&document.cookie!="")for(var r=document.cookie.split(";"),n=0;n-1||text.indexOf("致命错误")>-1)}function aksrt_sprintf(key){var args=Array.prototype.slice.call(arguments,1),str=aksrt__(key),autoIndex=0;return str.replace(/%(\d+\$)?s/g,function(match,num){var idx=num?parseInt(num,10)-1:autoIndex++;return args[idx]!==void 0&&args[idx]!==null?args[idx]:match})}(function(window2,factory){var lazySizes=factory(window2,window2.document,Date);window2.lazySizes=lazySizes,typeof module=="object"&&module.exports&&(module.exports=lazySizes)})(typeof window<"u"?window:{},function(window2,document2,Date2){"use strict";var lazysizes,lazySizesCfg;if((function(){var prop,lazySizesDefaults={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",loadafterClass:"lazyloadafter",errorClass:"lazyerror",autosizesClass:"lazyautosizes",srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};lazySizesCfg=window2.lazySizesConfig||window2.lazysizesConfig||{};for(prop in lazySizesDefaults)prop in lazySizesCfg||(lazySizesCfg[prop]=lazySizesDefaults[prop])})(),!document2||!document2.getElementsByClassName)return{init:function(){},cfg:lazySizesCfg,noSupport:!0};var docElem=document2.documentElement,supportPicture=window2.HTMLPictureElement,_addEventListener="addEventListener",_getAttribute="getAttribute",addEventListener=window2[_addEventListener].bind(window2),setTimeout2=window2.setTimeout,requestAnimationFrame2=window2.requestAnimationFrame||setTimeout2,requestIdleCallback=window2.requestIdleCallback,regPicture=/^picture$/i,loadEvents=["load","error","lazyincluded","_lazyloaded"],regClassCache={},forEach=Array.prototype.forEach,hasClass=function(ele,cls){return regClassCache[cls]||(regClassCache[cls]=new RegExp("(\\s|^)"+cls+"(\\s|$)")),regClassCache[cls].test(ele[_getAttribute]("class")||"")&®ClassCache[cls]},addClass=function(ele,cls){hasClass(ele,cls)||ele.setAttribute("class",(ele[_getAttribute]("class")||"").trim()+" "+cls)},removeClass=function(ele,cls){var reg2;(reg2=hasClass(ele,cls))&&ele.setAttribute("class",(ele[_getAttribute]("class")||"").replace(reg2," "))},addRemoveLoadEvents=function(dom,fn,add){var action=add?_addEventListener:"removeEventListener";add&&addRemoveLoadEvents(dom,fn),loadEvents.forEach(function(evt){dom[action](evt,fn)})},triggerEvent=function(elem,name,detail,noBubbles,noCancelable){var event=document2.createEvent("Event");return detail||(detail={}),detail.instance=lazysizes,event.initEvent(name,!noBubbles,!noCancelable),event.detail=detail,elem.dispatchEvent(event),event},updatePolyfill=function(el,full){var polyfill;!supportPicture&&(polyfill=window2.picturefill||lazySizesCfg.pf)?(full&&full.src&&!el[_getAttribute]("srcset")&&el.setAttribute("srcset",full.src),polyfill({reevaluate:!0,elements:[el]})):full&&full.src&&(el.src=full.src)},getCSS=function(elem,style){return(getComputedStyle(elem,null)||{})[style]},getWidth=function(elem,parent,width){for(width=width||elem.offsetWidth;width49?function(){requestIdleCallback(run,{timeout:rICTimeout}),rICTimeout!==lazySizesCfg.ricTimeout&&(rICTimeout=lazySizesCfg.ricTimeout)}:rAFIt(function(){setTimeout2(run)},!0);return function(isPriority){var delay;(isPriority=isPriority===!0)&&(rICTimeout=33),!running&&(running=!0,delay=gDelay-(Date2.now()-lastTime),delay<0&&(delay=0),isPriority||delay<9?idleCallback():setTimeout2(idleCallback,delay))}},debounce2=function(func){var timeout,timestamp,wait=99,run=function(){timeout=null,func()},later=function(){var last=Date2.now()-timestamp;last0,visible&&getCSS(parent,"overflow")!="visible"&&(outerRect=parent.getBoundingClientRect(),visible=eLright>outerRect.left&&eLleftouterRect.top-1&&eLtop500&&docElem.clientWidth>500?500:370:lazySizesCfg.expand,lazysizes._defEx=defaultExpand,preloadExpand=defaultExpand*lazySizesCfg.expFactor,hFac=lazySizesCfg.hFac,isBodyHidden=null,currentExpand2&&loadMode>2&&!document2.hidden?(currentExpand=preloadExpand,lowRuns=0):loadMode>1&&lowRuns>1&&isLoading<6?currentExpand=defaultExpand:currentExpand=shrinkExpand),beforeExpandVal!==elemExpand&&(eLvW=innerWidth+elemExpand*hFac,elvH=innerHeight+elemExpand,elemNegativeExpand=elemExpand*-1,beforeExpandVal=elemExpand),rect=lazyloadElems[i].getBoundingClientRect(),(eLbottom=rect.bottom)>=elemNegativeExpand&&(eLtop=rect.top)<=elvH&&(eLright=rect.right)>=elemNegativeExpand*hFac&&(eLleft=rect.left)<=eLvW&&(eLbottom||eLright||eLleft||eLtop)&&(lazySizesCfg.loadHidden||isVisible(lazyloadElems[i]))&&(isCompleted&&isLoading<3&&!elemExpandVal&&(loadMode<3||lowRuns<4)||isNestedVisible(lazyloadElems[i],elemExpand))){if(unveilElement(lazyloadElems[i]),loadedSomething=!0,isLoading>9)break}else!loadedSomething&&isCompleted&&!autoLoadElem&&isLoading<4&&lowRuns<4&&loadMode>2&&(preloadElems[0]||lazySizesCfg.preloadAfterLoad)&&(preloadElems[0]||!elemExpandVal&&(eLbottom||eLright||eLleft||eLtop||lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr)!="auto"))&&(autoLoadElem=preloadElems[0]||lazyloadElems[i])}autoLoadElem&&!loadedSomething&&unveilElement(autoLoadElem)}},throttledCheckElements=throttle2(checkElements),switchLoadingClass=function(e){var elem=e.target;if(elem._lazyCache){delete elem._lazyCache;return}resetPreloading(e),addClass(elem,lazySizesCfg.loadedClass),removeClass(elem,lazySizesCfg.loadingClass),addRemoveLoadEvents(elem,rafSwitchLoadingClass),triggerEvent(elem,"lazyloaded"),setTimeout2(function(){addClass(elem,lazySizesCfg.loadafterClass)},700)},rafedSwitchLoadingClass=rAFIt(switchLoadingClass),rafSwitchLoadingClass=function(e){rafedSwitchLoadingClass({target:e.target})},changeIframeSrc=function(elem,src){try{elem.contentWindow.location.replace(src)}catch{elem.src=src}},handleSources=function(source){var customMedia,sourceSrcset=source[_getAttribute](lazySizesCfg.srcsetAttr);(customMedia=lazySizesCfg.customMedia[source[_getAttribute]("data-media")||source[_getAttribute]("media")])&&source.setAttribute("media",customMedia),sourceSrcset&&source.setAttribute("srcset",sourceSrcset)},lazyUnveil=rAFIt(function(elem,detail,isAuto,sizes,isImg){var src,srcset,parent,isPicture,event,firesLoad;(event=triggerEvent(elem,"lazybeforeunveil",detail)).defaultPrevented||(sizes&&(isAuto?addClass(elem,lazySizesCfg.autosizesClass):elem.setAttribute("sizes",sizes)),srcset=elem[_getAttribute](lazySizesCfg.srcsetAttr),src=elem[_getAttribute](lazySizesCfg.srcAttr),isImg&&(parent=elem.parentNode,isPicture=parent&®Picture.test(parent.nodeName||"")),firesLoad=detail.firesLoad||"src"in elem&&(srcset||src||isPicture),event={target:elem},addClass(elem,lazySizesCfg.loadingClass),firesLoad&&(clearTimeout(resetPreloadingTimer),resetPreloadingTimer=setTimeout2(resetPreloading,2500),addRemoveLoadEvents(elem,rafSwitchLoadingClass,!0)),isPicture&&forEach.call(parent.getElementsByTagName("source"),handleSources),srcset?elem.setAttribute("srcset",srcset):src&&!isPicture&&(regIframe.test(elem.nodeName)?changeIframeSrc(elem,src):elem.src=src),isImg&&(srcset||isPicture)&&updatePolyfill(elem,{src})),elem._lazyRace&&delete elem._lazyRace,removeClass(elem,lazySizesCfg.lazyClass),rAF(function(){var isLoaded=elem.complete&&elem.naturalWidth>1;(!firesLoad||isLoaded)&&(isLoaded&&addClass(elem,"ls-is-cached"),switchLoadingClass(event),elem._lazyCache=!0,setTimeout2(function(){"_lazyCache"in elem&&delete elem._lazyCache},9)),elem.loading=="lazy"&&isLoading--},!0)}),unveilElement=function(elem){if(!elem._lazyRace){var detail,isImg=regImg.test(elem.nodeName),sizes=isImg&&(elem[_getAttribute](lazySizesCfg.sizesAttr)||elem[_getAttribute]("sizes")),isAuto=sizes=="auto";(isAuto||!isCompleted)&&isImg&&(elem[_getAttribute]("src")||elem.srcset)&&!elem.complete&&!hasClass(elem,lazySizesCfg.errorClass)&&hasClass(elem,lazySizesCfg.lazyClass)||(detail=triggerEvent(elem,"lazyunveilread").detail,isAuto&&autoSizer.updateElem(elem,!0,elem.offsetWidth),elem._lazyRace=!0,isLoading++,lazyUnveil(elem,detail,isAuto,sizes,isImg))}},afterScroll=debounce2(function(){lazySizesCfg.loadMode=3,throttledCheckElements()}),altLoadmodeScrollListner=function(){lazySizesCfg.loadMode==3&&(lazySizesCfg.loadMode=2),afterScroll()},onload=function(){if(!isCompleted){if(Date2.now()-started<999){setTimeout2(onload,999);return}isCompleted=!0,lazySizesCfg.loadMode=3,throttledCheckElements(),addEventListener("scroll",altLoadmodeScrollListner,!0)}};return{_:function(){started=Date2.now(),lazysizes.elements=document2.getElementsByClassName(lazySizesCfg.lazyClass),preloadElems=document2.getElementsByClassName(lazySizesCfg.lazyClass+" "+lazySizesCfg.preloadClass),addEventListener("scroll",throttledCheckElements,!0),addEventListener("resize",throttledCheckElements,!0),addEventListener("pageshow",function(e){if(e.persisted){var loadingElements=document2.querySelectorAll("."+lazySizesCfg.loadingClass);loadingElements.length&&loadingElements.forEach&&requestAnimationFrame2(function(){loadingElements.forEach(function(img){img.complete&&unveilElement(img)})})}}),window2.MutationObserver?new MutationObserver(throttledCheckElements).observe(docElem,{childList:!0,subtree:!0,attributes:!0}):(docElem[_addEventListener]("DOMNodeInserted",throttledCheckElements,!0),docElem[_addEventListener]("DOMAttrModified",throttledCheckElements,!0),setInterval(throttledCheckElements,999)),addEventListener("hashchange",throttledCheckElements,!0),["focus","mouseover","click","load","transitionend","animationend"].forEach(function(name){document2[_addEventListener](name,throttledCheckElements,!0)}),/d$|^c/.test(document2.readyState)?onload():(addEventListener("load",onload),document2[_addEventListener]("DOMContentLoaded",throttledCheckElements),setTimeout2(onload,2e4)),lazysizes.elements.length?(checkElements(),rAF._lsFlush()):throttledCheckElements()},checkElems:throttledCheckElements,unveil:unveilElement,_aLSL:altLoadmodeScrollListner}})(),autoSizer=(function(){var autosizesElems,sizeElement=rAFIt(function(elem,parent,event,width){var sources,i,len;if(elem._lazysizesWidth=width,width+="px",elem.setAttribute("sizes",width),regPicture.test(parent.nodeName||""))for(sources=parent.getElementsByTagName("source"),i=0,len=sources.length;i-40&&angle<40&&distanceX>0?distanceX:0),options.direction=="left"&&(distanceY=0,distanceX=(angle>150||angle<-150)&&0>distanceX?distanceX:0),options.direction=="top"&&(distanceX=0,distanceY=angle>-130&&angle<-50&&0>distanceY?distanceY:0),options.direction=="bottom"&&(distanceX=0,distanceY=angle>50&&angle<130&&distanceY>0?distanceY:0),(distanceX!==0||distanceY!==0)&&(a.preventDefault?a.preventDefault():a.returnValue=!1,cssTransition(_move,distanceX,distanceY,dragging,"grab"),jQuery.isFunction(options.onIng)&&options.onIng(_e,_move,distanceX,distanceY)))}).on("touchend touchcancel pointerup MSPointerUp",touch_selector,function(){var _move=options.start_selector?options.selector?_e.find(options.selector):_e.find(options.start_selector):jQuery(this);dragging&&!is_stop&&(cssTransition(_move,0,0,"null",""),jQuery.isFunction(options.inEnd)&&options.inEnd(_e,_move,distanceX,distanceY),(Math.abs(distanceX)>dep||Math.abs(distanceY)>dep)&&jQuery.isFunction(options.onEnd)&&options.onEnd(_e,_move,distanceX,distanceY),startX=startY=endX=endY=angle=distanceX=distanceY=0,dragging=!1)}).data(is_on,!0)}},_win.bd=jQuery("body"),_win.window=jQuery(window),_win.is_signin=!!_win.bd.hasClass("logged-in");var _wid=_win.window.width(),_hei=_win.window.height();_win.bd.on("click","[data-close]",function(){var e=jQuery(this).attr("data-close");return jQuery(e).removeClass("show in"),!1}),_win.bd.on("click","[data-toggle-class]",function(){var c=jQuery(this).attr("data-toggle-class")||"show",e=jQuery(this).attr("data-target")||this;return jQuery(e).toggleClass(c).trigger("toggleClass"),!1}),_win.bd.on("click",only_drop),_win.bd.on("toggleClass",".dropup,.dropdown",only_drop);function only_drop(e){var drop=jQuery(e.target).closest(".dropup,.dropdown");jQuery(".dropup.open,.dropdown.open").not(drop).removeClass("open")}_win.bd.on("click",".alert-dismissible > .close",function(){jQuery(this).parent().slideUp()}),_win.bd.on("click","[data-onclick]",function(){var e=jQuery(this).attr("data-onclick");return jQuery(e).click()}),jQuery.fn.OnlyOn=function(type,selector,data,fun){var rnotwhite=/\S+/g,is_oned=!1;type=type.match(rnotwhite)[0];var events=jQuery._data(this[0],"events");events&&typeof events.type<"u"&&jQuery.each(events[type],function(i,item){if(item.selector==selector&&item.data==data)return is_oned=!0,!1}),is_oned?console.log("事件重复绑定{type:"+type+",selector:"+selector+",data:"+data+"}"):this.on(type,selector,data,fun)},jQuery.fn.aksrt_ajax=function(data,success,noty,no_loading){return aksrt_ajax(jQuery(this),data,success,noty,no_loading)},jQuery.fn.countdown=function(){function getTimeRemaining(endtime,max_unit){var date=new Date,now=date.getTime(),endDate=new Date(endtime),end=endDate.getTime(),total=end-now,seconds=total/1e3%60;seconds=seconds.toFixed(2);var mseconds=~~(total%1e3),minutes=~~(total/1e3/60%60),hours=~~(total/(1e3*60*60)%24),days=~~(total/(1e3*60*60*24));return max_unit==="minute"&&minutes>0&&(hours=0,days=0,minutes=~~(total/1e3/60)),max_unit==="hour"&&hours>0&&(days=0,hours=~~(total/(1e3*60*60))),seconds=seconds<10?"0"+seconds:seconds,minutes=minutes<10?"0"+minutes:minutes,{total,days,hours,minutes,seconds,mseconds}}jQuery(this).each(function(){var _this=jQuery(this),endtime=_this.attr("data-countdown");if(!endtime)return;var int_second=_this.attr("int-second"),max_unit=_this.attr("max-unit");if(_this.attr("title",aksrt__("countdown_end_time")+endtime),int_second==="auto"){var t=getTimeRemaining(endtime,max_unit);int_second=t.days>0}function updateClock(){var t2=getTimeRemaining(endtime,max_unit);if(int_second&&(t2.seconds=t2.seconds.toString().replace(/\.\d+$/,"")),_this.find(".day").length&&_this.find(".day").html(t2.days),_this.find(".hour").length&&_this.find(".hour").html(t2.hours),_this.find(".minute").length&&_this.find(".minute").html(t2.minutes),_this.find(".second").length)_this.find(".second").html(t2.seconds);else{var html="";t2.days>0&&(html+=''+t2.days+''+aksrt__("countdown_day")+""),(t2.hours>0||t2.days>0)&&(html+=''+t2.hours+''+aksrt__("countdown_hour")+""),(t2.minutes>0||t2.hours>0||t2.days>0)&&(html+=''+t2.minutes+''+aksrt__("countdown_minute")+""),html+=''+t2.seconds+''+aksrt__("countdown_second")+"",_this.html(html)}if(t2.total<=0){clearInterval(timeinterval);var over_text=_this.attr("data-over-text")||aksrt__("countdown_ended");_this.html(over_text).trigger("countdown-over")}}updateClock();var timeinterval=setInterval(updateClock,int_second?1e3:20);_this.removeAttr("data-countdown").addClass("countdown-box")})},_win.dplayer={tbquire:["dplayer"],obj:{}};function new_dplayer(){var selector=".new-dplayer:not(.dplayer-initialized),[data-dplayer]:not(.dplayer-initialized)";jQuery(selector).length&&jQuery(selector).each(function(){var _this=jQuery(this);get_new_dplayer(_this,function(dplayer){_this.addClass("dplayer-initialized").siblings(".dplayer-featured").find(".switch-video").each(function(){var _this2=jQuery(this),video_url=_this2.attr("video-url"),video_pic=_this2.attr("video-pic");_this2.data({"video-url":video_url,"video-pic":video_pic}),_this2.attr({"dplayer-id":dplayer.container.id}),setTimeout(function(){_this2.removeAttr("video-url").removeAttr("video-pic")},50)})})})}function get_new_dplayer(_this,func){var option={},video_url=_this.attr("video-url")||_this.data("video-url"),data_volume=_this.attr("data-volume"),i=parseInt((Math.random()+1)*Math.pow(10,4));if(!(_this.find(".dplayer-video-wrap").length||!video_url)){_this.attr("id","dplayer-"+i),option.container=document.getElementById("dplayer-"+i),option.theme="#f04494",option.video={url:video_url,pic:_this.attr("video-pic")||"",type:_this.attr("video-type")||"auto"},_this.attr("data-loop")&&(option.loop=!0),_this.attr("data-autoplay")&&(option.autoplay=!0),data_volume&&data_volume<1&&(option.volume=data_volume),data_volume==="none"&&(option.volume=0);var option_attr=_this.attr("video-option");if(option_attr){try{option_attr=JSON.parse(option_attr)}catch(e){console.log(e)}jQuery.extend(option,option_attr)}var v_u=video_url.toLowerCase();return v_u.indexOf(".m3u")!=-1&&_win.dplayer.tbquire.push("hls"),v_u.indexOf(".mpd")!=-1&&_win.dplayer.tbquire.push("dash"),v_u.indexOf(".flv")!=-1&&_win.dplayer.tbquire.push("flv"),jQuery("link#dplayer").length||jQuery("dplayer").append(''),_win.dplayer.tbquire.push("dplayer"),tbquire(_win.dplayer.tbquire,function(){try{var newDPlayer=new DPlayer(option);newDPlayer.on("play",function(){_win.dplayer.play=newDPlayer}),_this.data("dplayer",newDPlayer),_win.dplayer.obj[i]=newDPlayer,_this.attr({"video-url":"","video-pic":""}),jQuery.isFunction(func)&&func(newDPlayer)}catch(e){console.error(e)}}),i}}_win.bd.on("click",".swiper-slide.slide-dplayer:not(.slide-dplayer-played) > *",function(){var _this=jQuery(this),dplayer=_this.find(".new-dplayer").data("dplayer");dplayer&&(dplayer.play(),_this.parent().addClass("slide-dplayer-played"))});function thumb_dplayer(mouseenter_e,box_e){var $body=jQuery("body"),thumb_dplayer_data_text="thumb_dplayer_data",thumb_dplayer_data=$body.data(thumb_dplayer_data_text)||{};if(thumb_dplayer_data[mouseenter_e+box_e])return;var ing_class="thumb-dplayer-playing",thumb_hide_class="dplayer-thumb-hide";function to_play(_this_m,_this,dplayer){_this.find(".dplayer-thumb").removeClass(thumb_hide_class),_win.dplayer.thumb_play=dplayer,_this.find(".progress").show(),_this_m.addClass(ing_class)}function to_pause(_this_m,_this,dplayer){dplayer.pause(),_this.find(".dplayer-thumb").addClass(thumb_hide_class),_win.dplayer.thumb_play=!1,_this.find(".progress").hide(),_this_m.removeClass(ing_class)}function video_thumb_stop(){if(_win.dplayer.thumb_play){var _this=jQuery(_win.dplayer.thumb_play.container).closest(box_e),_this_m=_this.closest(mouseenter_e);to_pause(_this_m,_this,_win.dplayer.thumb_play)}}function video_thumb_play(){var _this_m=jQuery(this),_this=_this_m.find(box_e);if(!_this.length)return;var dplayer=_this.find(".dplayer-thumb").data("dplayer");if(dplayer)return to_play(_this_m,_this,dplayer),dplayer.play();function dplayer_init(dplayer2){dplayer2.on("loadeddata",function(){setTimeout(function(){_this.find(".progress-bar").css({width:"100%",opacity:"0",transition:"width .2s, opacity .3s .3s"})},100),setTimeout(function(){_this.find(".progress").remove()},800)}),setTimeout(function(){to_play(_this_m,_this,dplayer2),dplayer2.play()},200)}if(!_this.find(".dplayer-thumb").length){var video_url=_this.attr("video-url"),video_volume=_this.attr("data-volume")||"none",video_pic="",scale_height=~~_this.attr("scale-height"),progress='
    ',_dplayer=jQuery('
    ');_this.find(".video-thumb").html(_dplayer).after(progress),setTimeout(function(){_this.find(".progress-bar").css({transition:"width 6s",width:"80%"})},50),_this.attr("video-url",""),get_new_dplayer(_dplayer,dplayer_init)}}$body.on("mouseenter touchstart",mouseenter_e,video_thumb_play),$body.on("mouseleave",mouseenter_e,video_thumb_stop);var thumb_dplayer_init="thumb_dplayer_init";$body.data(thumb_dplayer_init)||$body.on("touchstart",function(e){var _target=jQuery(e.target);!_target.parents("."+ing_class).length&&_win.dplayer.thumb_play&&video_thumb_stop()}).data(thumb_dplayer_init,!0),thumb_dplayer_data[mouseenter_e+box_e]=!0,$body.data(thumb_dplayer_data_text,thumb_dplayer_data)}_win.bd.on("click",".switch-video",function(){var _this=jQuery(this),dplayer=jQuery("#"+_this.attr("dplayer-id")).data("dplayer"),video_url=_this.data("video-url"),video_pic=_this.data("video-pic");if(!(!video_url||!dplayer||_this.hasClass("active"))){_this.addClass("active").siblings().removeClass("active");var v_u=video_url.toLowerCase();v_u.indexOf(".m3u")!=-1&&_win.dplayer.tbquire.push("hls"),v_u.indexOf(".mpd")!=-1&&_win.dplayer.tbquire.push("dash"),v_u.indexOf(".flv")!=-1&&_win.dplayer.tbquire.push("flv"),tbquire(_win.dplayer.tbquire,function(){try{var op={url:video_url,type:"auto"};video_pic&&(op.pic=video_pic),dplayer.switchVideo(op),setTimeout(function(){dplayer.play()},100)}catch(e){console.log(e)}})}}),_win.bd.on("click",".switch-iframe",function(){var _this=jQuery(this),video_url=_this.attr("iframe-url"),$iframe=_this.closest(".iframe-series").find("iframe");if(!(!video_url||_this.hasClass("active"))){try{$iframe[0].contentWindow.location.replace(video_url)}catch{$iframe.attr("src",video_url)}_this.addClass("active").siblings().removeClass("active")}}),_win.bd.on("click",".file-download-btn",function(){var _this=jQuery(this),id=_this.attr("data-download-file"),nonce=_this.attr("download-nonce");if(_this.attr("target","_blank"),!!id){var href=_win.ajax_url+"?action=download_file&file="+id+"&nonce="+nonce;_this.attr("target","_blank").removeAttr("data-download-file").attr("href",href)}}),_win.bd.on("click",".post-tab-toggle",function(){var _this=jQuery(this),tab_id=_this.attr("tab-id");if(!_this.parent().hasClass("active")){var _con=_this.parent().addClass("active").siblings().removeClass("active").parent().next().find('[tab-id="'+tab_id+'"]');_con.siblings().removeClass("in"),setTimeout(function(){_con.addClass("active").siblings().removeClass("active")},150),setTimeout(function(){_con.addClass("in")},160)}}),_win.swiper=[],_win.swiper.tab={},_win.swiper.scroll={},_win.swiper.new={};function new_swiper(){jQuery(".swiper-scroll:not(.swiper-container-initialized),.new-swiper:not(.swiper-container-initialized),.swiper-tab:not(.swiper-container-initialized)").length&&(jQuery("link#swiper").length||jQuery("head").append(''),tbquire(["swiper"],function(){jQuery(".swiper-scroll").each(function(e){if(!jQuery(this).hasClass("swiper-container-initialized")){var option={},_this=jQuery(this),_eq="swiper-scroll-eq-"+e,slideClass=_this.attr("data-slideClass")||!1;if(slideClass&&(option.slideClass=slideClass),!_this.attr("scroll-nogroup")){var c_w=_this.width(),i_w=_this.find(".swiper-wrapper>*:eq(0)").outerWidth(),slidesPerGroup=~~(c_w/i_w);option.slidesPerGroup=slidesPerGroup||1}option.autoplay=_this.attr("data-autoplay")?{delay:~~_this.attr("data-interval")||4e3,disableOnInteraction:!1}:!1,option.loop=_this.attr("data-loop"),option.slidesPerView="auto",option.mousewheel={forceToAxis:!0},option.freeMode=!0,option.freeModeSticky=!0,option.navigation={nextEl:".swiper-scroll."+_eq+" .swiper-button-next",prevEl:".swiper-scroll."+_eq+" .swiper-button-prev"},_this.addClass(_eq).attr("swiper-scroll-index",e),_win.swiper.scroll[e]=new Swiper(".swiper-scroll."+_eq,option)}}),jQuery(".swiper-tab").each(function(e){if(!jQuery(this).hasClass("swiper-container-initialized")){var _eq="swiper-eq-"+e,_this=jQuery(this),speed=~~_this.attr("data-speed")||~~((_this.width()+1200)/170)*50,initialSlide=~~_this.attr("active-index");speed=speed<300?300:speed;var option={loop:!1,initialSlide,autoHeight:!0,spaceBetween:20,autoplay:!1,speed,pagination:{el:".swiper-tab."+_eq+" .swiper-pagination",clickable:!0},on:{init:function(){auto_maxHeight()},slideChangeTransitionEnd:function(bvv){var b=jQuery(".swiper-tab."+_eq+" .swiper-slide-active .post_ajax_trigger .ajax-open");b.length&&(scrollTopTo(jQuery(".swiper-tab."+_eq),-40),b.attr("no-scroll",!0).click());var r=bvv.onStart&&jQuery('[swiper-scroll-index="'+e+'"] .swiper-slide-thumb-active [data-route]');r&&r.length&&history.replaceState(null,document.title,r.attr("data-route")),bvv.onStart=!0}}},tab_id=_this.attr("swiper-tab"),tab_nav=jQuery('[swiper-tab-nav="'+tab_id+'"]');if(tab_nav.length){var tab_nav_index=tab_nav.attr("swiper-scroll-index");option.thumbs={swiper:_win.swiper.scroll[tab_nav_index],autoScrollOffset:2},tab_nav.on("click","a[data-route]",function(e2){e2.preventDefault()})}_this.addClass(_eq).attr("swiper-tab-index",e),_win.swiper.tab[e]=new Swiper(".swiper-tab."+_eq,option)}}),jQuery(".new-swiper").each(function(e){if(!jQuery(this).hasClass("swiper-container-initialized")){var _eq="swiper-eq-"+e,_this=jQuery(this),delay=~~_this.attr("data-interval")||6e3,autoplay=_this.attr("data-autoplay")?{delay,disableOnInteraction:!1}:!1,auto_h=!!_this.attr("auto-height"),speed=~~_this.attr("data-speed")||~~((_this.width()+1e3)/22)*10;speed=speed<400?400:speed,speed=autoplay===!1?speed/1.6:speed;var loop=!!_this.attr("data-loop"),parallax=!!_this.find("[data-swiper-parallax],[data-swiper-parallax-scale]").length,effect=_this.attr("data-effect")||"slide",direction=_this.attr("data-direction")||"horizontal",spaceBetween=~~_this.attr("data-spaceBetween")||0,pagination_type=_this.attr("data-pagination-type")||"bullets";_this.addClass(_eq).attr("swiper-new-index",e);var swiper_args={loop,autoHeight:auto_h,direction,spaceBetween,parallax,effect,lazy:{loadPrevNext:!0},autoplay,speed,pagination:{el:".new-swiper."+_eq+" .swiper-pagination",type:pagination_type,clickable:!0},navigation:{nextEl:".new-swiper."+_eq+" .swiper-button-next",prevEl:".new-swiper."+_eq+" .swiper-button-prev"},on:{lazyImageReady:function(slideEl,imageEl){jQuery(imageEl).addClass("lazyloaded")},slideChange:function(){_this.find(".new-dplayer").each(function(index,item){var dplayer=jQuery(item).data("dplayer");dplayer&&dplayer.pause()})},init:function(){loop&&_this.find(".swiper-slide-duplicate img").addClass("no-imgbox")}}};pagination_type==="thumbnail"&&(swiper_args.pagination.type="bullets",swiper_args.pagination.bulletClass="pagination-thumbnail-item",swiper_args.pagination.bulletActiveClass="pagination-thumbnail-item-active",swiper_args.pagination.renderBullet=function(index,className){var imgsrc,thumbnail,_img=jQuery(this.slides[index]).find("img");return _img.length&&(_img=jQuery(_img[0]),imgsrc=_img.attr("data-src")||_img.attr("src")),imgsrc?(thumbnail='
    ',thumbnail):""}),_win.swiper.new[e]=new Swiper(".new-swiper."+_eq,swiper_args)}})}))}window.swiper_tab_AutoHeight=debounce(function($con){var tab=$con.closest("[swiper-tab-index]");if(tab.length){var tab_index=tab.attr("swiper-tab-index");_win.swiper.tab[tab_index].updateAutoHeight(500)}},100),jQuery.fn.scrollX=function(){return this.each(function(){var _this=jQuery(this),is_on="is-on";if(!_this.data(is_on)){_this.data(is_on,!0);var btn_class="scroll-x-",prev_btn_class=btn_class+"prev",next_btn_class=btn_class+"next",prev=jQuery(''),next=jQuery('');init()}function scroll(type){var data=get_data();_this.animate({scrollLeft:type==="prev"?data[0]:data[1]},300,"linear",hover_show)}function init(){_this.after(prev).after(next),prev.on("click",function(){scroll("prev")}),next.on("click",scroll),_this.parent().hover(hover_show,function(){prev.hide(),next.hide()})}function hover_show(){var data=get_data();data[3]?prev.show():prev.hide(),data[3]0?prev_scroll:0;var next_scroll=~~(_this_scrollLeft+_this_w);return next_scroll=next_scroll>max?max:next_scroll,[prev_scroll,next_scroll,max,_this_scrollLeft]}})},jQuery.fn.Tabcenter=function(){return this.each(function(){var _this=jQuery(this),_active=_this.find(".active");if(_active.length){var _this_w=_this.innerWidth(),_active_w=_active.innerWidth(),_this_scrollLeft=_this.scrollLeft(),_active_left=_active.position().left,max=~~(_this.prop("scrollWidth")-_this_w),_yd=~~(_this_scrollLeft+_active_left-_this_w/2+_active_w/2);_yd=_yd>0?_yd:0,_yd=_yd>max?max:_yd,_yd!=_this_scrollLeft&&_this.animate({scrollLeft:_yd},300)}})},_win.bd.on("shown.bs.tab","a[data-ajax]",function(){jQuery(this).closest("ul.list-inline").Tabcenter()}),jQuery(".tab-nav-theme,.tab-nav-but,.index-tab ul.list-inline").Tabcenter();function post_ajax(_this,con,jcon,item,loader,pag,next,trigger,replace,nomore,top,ajax_trigger){var $con=_this.closest(con);if($con.attr("ing"))return!1;var $item=find(item),href=_this.attr("ajax-href")||_this.attr("href")||_this.find("a").attr("ajax-href")||_this.find("a").attr("href");jcon=jcon||con,ajax_trigger=ajax_trigger||(_win.ajax_trigger?_win.ajax_trigger:''+aksrt__("load_more")),replace=_this.attr("ajax-replace")||replace,nomore=nomore||_win.ajax_nomore;var $loader=find(".post_ajax_loader");$loader.length||(loader=loader||'

    ',$loader=jQuery('
    '+loader+"
    "));function find(selector,$parent,con_selector){$parent=$parent&&$parent.length?$parent:$con,con_selector=con_selector||con;var $element=$parent.find(">"+selector);return $element.length||($element=$parent.find(">*:not("+con_selector+")>"+selector),$element.length)||($element=$parent.find(">*:not("+con_selector+")>*:not("+con_selector+")>"+selector),$element.length)||($element=$parent.find(">*:not("+con_selector+")>*:not("+con_selector+")>*:not("+con_selector+")>"+selector),$element.length)?$element:jQuery("null#null")}return href&&jQuery.ajax({type:"POST",url:href,dataType:"html",beforeSend:function(){replace&&$item.length&&$item.remove(),$con.attr("ing",!0),find(".post_ajax_trigger").remove(),find(".no-more").remove(),find(".post_ajax_loader").remove(),find(".noajax-pag").remove(),find(pag).remove(),$item=find(item),$item.length?top?$item.first().before($loader):$item.last().after($loader):$con.append($loader),$loader.fadeIn(),swiper_tab_AutoHeight($con)},success:function(a){a=jQuery.parseHTML("
    "+a+"
    ");var $a=jQuery(a);$a.find("[win-ajax-replace]").each(function(){var replace_key=jQuery(this).attr("win-ajax-replace"),replace_e=jQuery('[win-ajax-replace="'+replace_key+'"]');replace_e.length&&(replace_e.html(jQuery(this).html()),jQuery(this).remove())});var $jcon=$a.find(jcon),c_c=find(item,$jcon,jcon),c_p=find(pag,$jcon,jcon),n_h=c_p.find(next).attr("href")||c_p.find(next).find("a").attr("href");c_p=c_p.length?c_p:'
    '+nomore+"
    ",c_p=$jcon.find(".noajax-pag").length?$jcon.find(".noajax-pag"):c_p,trigger&&(c_p=typeof n_h<"u"?''+ajax_trigger+"":c_p);var $item_header=find(".ajax-item-header",$jcon,jcon);if($item_header.length&&(find(".ajax-item-header").remove(),$con.prepend($item_header)),$item=find(item),$item.length?top?$item.first().before(c_p).before(c_c):$item.last().after(c_p).after(c_c):top?$con.append(c_p).append(c_c):$con.append(c_c).append(c_p),$con.removeAttr("ing").trigger("post_ajax.ed",jQuery(a)),find(".post_ajax_loader",$con).hide(),_this.attr("no-scroll"))_win.auto_scroll=!0,setTimeout(function(){_win.window.trigger("scroll"),_win.auto_scroll=!1},20);else{var _scroll_To=replace?$con:jQuery(c_c[0]);setTimeout(function(){scrollTopTo(_scroll_To,-40)},100)}if(_this.attr("route")){var route_title=_this.attr("route-title")||$a.find("title").text();history.replaceState(null,route_title,href),route_title&&jQuery("head title").text(route_title)}swiper_tab_AutoHeight($con),window.AksrtFrontend.rehydrate($con[0],"ajax")}}),!1}if(_win.bd.on("click","[remote-box]",function(){var _this=jQuery(this),remote=_this.attr("remote-box");remote&&jQuery.post(remote,null,function(data){_this.html(data).removeAttr("remote-box"),window.AksrtFrontend.rehydrate(_this[0],"ajax"),_this.trigger("aksrt:remote-loaded")})}),_win.bd.on("show.bs.tab","a[data-ajax]",function(){var _this=jQuery(this),a=_this.data("target")||_this.attr("href"),selector=a+" .post_ajax_trigger .ajax-next",b=jQuery(selector).attr("ajax-replace",!0);if(b.length)b.click();else{var href=_this.attr("data-ajax");if(href){var trigger='';jQuery(a).append(trigger),jQuery(selector).click()}}_this.attr("only-one")&&_this.removeAttr("data-ajax")}),_win.bd.on("click","[ajax-tab],[ajax-target]",function(){var _this=jQuery(this),replace=_this.attr("ajax-replace")?' ajax-replace="true"':"",target=_this.attr("ajax-tab")||_this.attr("ajax-target"),href=_this.attr("data-ajax"),trigger='";console.log(target),jQuery(target).find(".post_ajax_trigger").remove(),jQuery(target).append(trigger),jQuery(target+" .post_ajax_trigger .ajax-next").click(),jQuery('a[href="'+target+'"]').click()}),_win.bd.on("click",".ajax-next",function(e){e.preventDefault();var _this=jQuery(this);if(_this.hasClass("pag-jump"))return!1;var _loader='
    '+aksrt__("loading")+"
    ";_this.attr("ajax-replace")&&(_loader='

    ',_loader+=_loader,_loader+=_loader),_loader='
    '+_loader+"
    ";var t_con=_this.attr("ajaxpager-target")||".ajaxpager",t_item=_this.attr("ajaxitem-target")||".ajax-item",$item1=_this.parents(t_con+":eq(0)").find(t_item+":first"),$item1_class=$item1.attr("class");if($item1_class&&$item1_class.indexOf("posts-item")>-1)if($item1_class.indexOf("card")>-1){var loader_class=$item1_class.replace("ajax-item","");_loader='

    ',_loader=_loader.repeat(_wid>766?_wid>992&&!jQuery(".sidebar").length?8:6:4)}else $item1_class.indexOf("list")>-1&&(_loader='

    ',_loader=_loader.repeat(_wid>766?4:3));return post_ajax(_this,t_con,t_con,t_item,_loader,".ajax-pag")}),_wid<769&&jQuery(".drawer-sm").length){_win.bd.on("click","[data-drawer]",function(){var _this=jQuery(this),title=_this.attr("drawer-title")||"",drawer_selector=_this.attr("drawer-selector")||".drawer-sm",action=_this.attr("data-drawer"),route=_this.attr("route"),route_back=_this.attr("route-back");jQuery(drawer_selector).Drawer(action,title,route,route_back)});var this_url=(window.parent.location.origin+window.parent.location.pathname).replace(/(\/*$)/g,"");_win.url_request=window.parent.location.search,setTimeout(function(){jQuery('[data-drawer][route="'+this_url+'"]').click()},20)}else _win.bd.on("shown.bs.tab","[data-drawer][route]",tabOnRoute),_win.bd.on("hide.bs.tab","[data-drawer][route]",tabOnRoute_hidden);_win.bd.on("shown.bs.tab","[data-route]",tabOnRoute),_win.bd.on("hide.bs.tab","[data-route]",tabOnRoute_hidden);function tabOnRoute_hidden(){var _this=jQuery(this);if(!history.state){var route=_this.attr("route")||_this.attr("data-route"),tab_id=_this.attr("data-target");route&&history.replaceState({tab_id},null,route)}}function tabOnRoute(){var _this=jQuery(this);if(_this.attr("onpopstate"))_this.attr("onpopstate",!1);else{var route=_this.attr("route")||_this.attr("data-route"),tab_id=_this.attr("data-target");route&&routeGo(route,{tab_id})}}window.onpopstate=function(event){var tab=event.state&&jQuery('[data-toggle="tab"][data-target="'+event.state.tab_id+'"]');tab&&tab.length&&tab.attr("onpopstate",!0).click()};function routeGo(url,data,title){title=title||document.title,url&&history.pushState(data,title,url)}if(jQuery.fn.loading=function(action){var _this=jQuery(this);action=action=="show"||action=="hide"?action:_this.hasClass("loading-show")?"hide":"show";var loading_class="loading-backdrop",loading_html='';return action=="show"?_this.addClass("loading-show").append(loading_html).find("."+loading_class).fadeIn(200):_this.removeClass("loading-show").find("."+loading_class).fadeOut(200,function(){jQuery(this).remove()}),_this},jQuery.fn.Drawer=function(action,title,route,route_back){title=title||"";var _this=jQuery(this);if(!_this.length)return;action=action=="show"||action=="hide"?action:_this.hasClass("show")?"hide":"show";var _body=jQuery("body");_this.attr("on-start")||_this.attr("on-start",!0).minitouch({direction:"right",onEnd:function(){_this.Drawer("hide")}});function urlTo(url){history.replaceState(null,document.title,url)}switch(action){case"show":var header=jQuery('
    '+title+"
    ").on("click",".drawer-close",function(){_this.Drawer("hide")});return _body.append(header),setTimeout(function(){_body.addClass("drawer-show")},10),route_back&&_this.data("route_back",route_back),route&&urlTo(route),_this.addClass("show");case"hide":return _body.removeClass("drawer-show"),setTimeout(function(){jQuery(".drawer-header").remove()},400),urlTo(_this.data("route_back")),_this.removeClass("show");default:}},jQuery(".wp-block-carousel").length){jQuery("link#swiper").length||jQuery("head").append('');var _sc=jQuery(".wp-block-carousel"),Sw=[];tbquire(["swiper"],function(){_sc.each(function(si){var _this=jQuery(this),_eq="swiper-post-"+si;_this.find(".wp-block-gallery>.blocks-gallery-grid").length&&_this.find(".wp-block-gallery").html(_this.find(".wp-block-gallery>.blocks-gallery-grid").html()),_this.find(".wp-block-gallery").removeClass().addClass("swiper-wrapper").find(".blocks-gallery-item,>.wp-block-image").addClass("swiper-slide"),_this.find(".carousel-control.left").replaceWith('
    '),_this.find(".carousel-control.right").replaceWith('
    ');var _ss=_this.find(".carousel"),proportion=_ss.attr("proportion")||.6,style=_ss.attr("style");_ss.addClass(_eq+" new-swiper scale-height").attr("style","--scale-height:"+proportion*100+"%;"),_this.attr("style",style);var delay=~~_ss.attr("data-interval")||6e3,loop=_ss.attr("data-jyloop")||!1,effect=_ss.attr("data-effect")||"slide",speed=~~((_ss.width()+1200)/250)*100;Sw["swiper_wz_"+si]=new Swiper(".wp-block-carousel ."+_eq,{spaceBetween:10,speed,loop,effect,autoplay:{delay,disableOnInteraction:!1},pagination:{el:"."+_eq+" .swiper-pagination",clickable:!0},navigation:{nextEl:"."+_eq+" .swiper-button-next",prevEl:"."+_eq+" .swiper-button-prev"}})})})}_win.bd.on("show.bs.modal loaded.bs.modal",".modal:not(.flex)",function(){var o=jQuery(this),i=o.find(".modal-dialog");o.css("display","block"),i.css({"margin-top":Math.max(0,(_hei-i.height())/2)})}),_win.bd.on("show.bs.modal loaded.bs.modal",".modal",function(){window.AksrtFrontend.rehydrate(this,"modal")}),_win.modal_z_index=1050,_win.bd.on("show.bs.modal",".modal",function(){_win.modal_z_index++,jQuery(".modal.in").addClass("modal-parent"),jQuery(this).css("z-index",_win.modal_z_index).removeClass("modal-parent")}),_win.bd.on("hide.bs.modal",".modal",function(){jQuery(".modal.modal-parent").removeClass("modal-parent")}),_win.bd.on("click",".oauth-untying",function(){if(confirm(aksrt__("confirm_unbind"))==!0){var _this=jQuery(this),data={action:"user_oauth_untying",user_id:_this.attr("user-id"),type:_this.attr("untying-type"),_wpnonce:_this.attr("_wpnonce")};return aksrt_ajax(_this,data),!1}}),_win.bd.on("click",".medal-add-link",function(){if(confirm(aksrt__("confirm_grant_badge"))==!0)return aksrt_ajax(jQuery(this)),!1}),_win.bd.on("click",".medal-remove-link",function(){if(window.confirm(aksrt__("confirm_revoke_badge")))return aksrt_ajax(jQuery(this)),!1}),_win.bd.on("click","[tab-id]",function(e){var tab=jQuery(this).attr("tab-id");if(tab){var _tab=jQuery('a[data-target="#'+tab+'"]');_tab.length||(_tab=jQuery('a[href="#'+tab+'"]')),_tab.length&&(e.preventDefault(),_tab.tab("show"))}}),_win.bd.on("click",'[data-toggle="RefreshModal"]',function(e){e.preventDefault();var _this=jQuery(this),remote=_this.attr("data-remote");if(!remote){var action=_this.attr("data-action");action&&(remote=_win.ajax_url+"?action="+action)}return refresh_modal({class:_this.attr("data-class")||"",height:_this.attr("data-height")||300,mobile_from_bottom:!!_this.attr("mobile-bottom"),new:_this.attr("new"),touch_close:!_this.attr("no-touch"),remote}),!1}),_win.bd.on("click",".show-order-modal",function(e){e.preventDefault();var _this=jQuery(this),order_id=_this.attr("data-order-id"),is_new=_this.attr("new-modal");refresh_modal({class:"full-sm body-bg",height:420,mobile_from_bottom:!0,touch_close:!0,new:is_new,remote:_win.ajax_url+"?action=order_details_modal&order_id="+order_id})});function refresh_modal(_config){_config.mobile_from_bottom=typeof _config.mobile_from_bottom>"u"?!0:_config.mobile_from_bottom;var id="refresh_modal",is_new=_config.new,dataclass=_config.class||"",height=_config.height||200,mobile_bottom=_config.mobile_from_bottom&&_wid<769?" bottom":"",touch_close=typeof _config.touch_close>"u"?!0:_config.touch_close,modal_class="modal flex jc fade"+mobile_bottom,remote=_config.remote||"",content=_config.content||"";dataclass+=" modal-dialog",id+=is_new?parseInt((Math.random()+1)*Math.pow(10,4)):"";var _id="#"+id,_modal=jQuery(_id);if(_modal.length){var is_in=_modal.hasClass("in");is_in&&(modal_class+=" in");var $modal_content=_modal.find(".modal-content");_modal.removeClass().addClass(modal_class),_modal.find(".modal-dialog").removeClass().addClass(dataclass),_modal.find(".loading-mask").fadeIn(200),_modal.find(".modal-body").fadeOut(200),$modal_content.css({overflow:"hidden",height:is_in?$modal_content.height():100}).animate({height})}else{var modal_html='',loading='
    ';_win.bd.append(modal_html),_modal=jQuery(_id),_modal.on("hidden.bs.modal",function(){is_new?jQuery(this).remove():jQuery(this).find(".modal-content").html(loading)}),_modal.find(".modal-content").html(loading).css({height,overflow:"hidden"}),_wid<769&&_modal.minitouch({direction:"bottom",selector:".modal-dialog",start_selector:".modal-colorful-header,.touch-close,.touch",onEnd:function(){_modal.modal("hide")},stop:function(){return!_modal.hasClass("bottom")}})}_modal.find(".touch-close").remove(),mobile_bottom&&touch_close&&_modal.find(".modal-dialog").append('
    '),_modal.modal("show"),content?(_modal.find(".modal-body").html(content),_modal_content_open()):remote&&jQuery.post(remote,null,function(data){_modal.find(".modal-body").html(data),setTimeout(function(){_modal.trigger("loaded.bs.modal")},20),_modal_content_open()});function _modal_content_open(){_modal.find(".modal-body").fadeIn(50,function(){var b_height=jQuery(this).outerHeight(!0);_modal.find(".loading-mask").fadeOut(300),_modal.find(".modal-content").animate({height:b_height},300,"swing",function(){_modal.find(".modal-content").css({height:"",overflow:"",transition:""})})})}return _modal}window.auto_maxHeight=debounce(z_auto,100);function z_auto(){if(_win.do_hh=document.documentElement.clientHeight,_win.do_hh>document.body.clientHeight){var min_h=_win.do_hh-jQuery(".footer").outerHeight()-jQuery(".header").outerHeight()-20;jQuery("main").animate({"min-height":min_h})}}window.auto_fun=debounce(function(root){window.AksrtFrontend.rehydrate(root&&root.nodeType?root:document,"ajax")},100);function z_auto_fun(){jQuery(document).trigger("auto_fun"),jQuery(".auto-search").AutoSearch(),jQuery(".dependency-box").dependency(),jQuery(".cloneable").cloneable(),auto_maxHeight(),jQuery("img[data-src]:not(.lazyload,.lazyloaded,.lazyloading,.swiper-lazy)").addClass("lazyload"),jQuery("[data-toggle='tooltip']").tooltip({container:"body"}),jQuery("[data-clipboard-text]").length&&tbquire(["clipboard"]),jQuery("[data-toggle='popover']").popover({sanitize:!1}),_wid>768?(jQuery(".fixed-wrap-nav").autoAffix(20,38),jQuery(".relative>.scroll-x.no-scrollbar").scrollX()):jQuery(".affix-header-sm").autoAffix(0,20),_wid>900&&jQuery(".sidebar").sidebarAffix(),new_swiper(),new_dplayer(),tbquire(["svg-icon"],()=>{show_svg()});var _h_e=_win.highlight_kg?"pre code:not(.enlighter-origin)":"pre code.gl:not(.enlighter-origin),pre code.special:not(.enlighter-origin)";jQuery(_h_e).length&&tbquire(["enlighterjs"],function(){var lin=!!_win.highlight_hh;jQuery("link#enlighterjs").length||jQuery("head").append(''),jQuery(_h_e).enlight({linenumbers:lin,indent:2,textOverflow:"scroll",rawcodeDbclick:!0,rawButton:!1,infoButton:!1,windowButton:!1,theme:_win.highlight_zt})})}(function(){var scroll_throttle=throttle(function(){var h=document.documentElement.scrollTop+document.body.scrollTop,ontop=jQuery(".ontop");h>100?_win.bd.addClass("body-scroll"):_win.bd.removeClass("body-scroll"),h>400?ontop.addClass("show"):ontop.removeClass("show")},100);_win.window.scroll(scroll_throttle);var debounce_scroll_end=debounce(function(){jQuery("[data-toggle='tooltip']").tooltip("hide")},500,!0);_win.window.scroll(debounce_scroll_end);var debounce_scrolling_hide=debounce(function(){_win.bd.addClass("scroll-ing")},500,!0),debounce_scrolling_hide_end=debounce(function(){_win.bd.removeClass("scroll-ing")},500);jQuery(".scrolling-hide").length&&_win.window.scroll(debounce_scrolling_hide).scroll(debounce_scrolling_hide_end);var _last_scroll_top=0,debounce_scroll_down=debounce(function(){var _scroll_top=document.documentElement.scrollTop+document.body.scrollTop;_last_scroll_top>100&&_scroll_top>_last_scroll_top?_win.auto_scroll||_win.bd.removeClass("scroll-up").addClass("scroll-down"):(!_win.auto_scroll||_last_scroll_top<=100)&&_win.bd.removeClass("scroll-down").addClass("scroll-up"),_last_scroll_top=_scroll_top},10,!0);jQuery(".scroll-down-hide").length&&_win.window.scroll(debounce_scroll_down)})();function scrollTopTo(element,offset){var scrollTop=0,body=jQuery("body,html"),duration=duration||300;if(offset=offset||0,element){var target=element instanceof jQuery?element:jQuery(element);scrollTop=target.length?target.offset().top+offset-(body.hasClass("nav-fixed")?jQuery(".header").innerHeight()+20:0):0}Math.abs(scrollTop-body.scrollTop())<80||(_win.auto_scroll=!0,body.animate({scrollTop},duration,"swing",function(){setTimeout(function(){_win.auto_scroll=!1},20)}))}_win.bd.on("click",".toggle-radius,.float-right a,.but-ripple,.but,.item-thumbnail,.menu-item >a,.yiyan-box,.relates-thumb li a",function(e){var _th=jQuery(this);if(!_th.hasClass("nowave")&&!_th.hasClass("is-disabled")){_th.css({overflow:"hidden",position:"relative"});var R,waveWidth=~~_th.outerWidth(),waveHeight=~~_th.outerHeight();waveWidth").css({display:"block",background:cllor,"border-radius":"50%",position:" absolute","-webkit-transform":"scale(0)",transform:"scale(0)",opacity:".3","-webkit-transition":"all 1.5s cubic-bezier(0.22, 0.61, 0.36, 1)",transition:"all 1.5s cubic-bezier(0.22, 0.61, 0.36, 1)","z-index":"1",overflow:"hidden","pointer-events":"none"});_th.append(wave),wave.css({width:R*2+"px",height:R*2+"px",top:e.pageY-_th.offset().top-R+"px",left:e.pageX-_th.offset().left-R+"px",transform:"scale(1)","-webkit-transform":"scale(1)",opacity:0}),setTimeout(function(){wave.remove()},2e3)}}),jQuery.fn.sidebarAffix=function(){var _this=jQuery(this),_affix=_this.find("[data-affix]"),sidebar_class="sidebar-affix";if(!_affix.length||_this.children("."+sidebar_class).length)return _this;var _body=jQuery("body"),affix_width=_affix.innerWidth(),_header=jQuery(".header");function nav_Height(){return _body.hasClass("nav-fixed")&&(!_header.hasClass("scroll-down-hide")||!_body.hasClass("scroll-down"))?_header.outerHeight(!0):20}var sidebarAffix_con=jQuery('
    ');_this.prepend(sidebarAffix_con);function top_css(){sidebarAffix_con.css({top:nav_Height()})}var last_top=0;return sidebarAffix_con.affix({offset:{top:function(){var new_top=_this.outerHeight(!0)+_this.offset().top-nav_Height();return new_top!==last_top&&sidebarAffix_con.hasClass("affix")&&top_css(),last_top=new_top,new_top},bottom:function(){var _wrap=_this.parent();return document.body.clientHeight-_wrap.outerHeight()-_wrap.offset().top}}}).on("affix-top.bs.affix",function(){sidebarAffix_con.html("")}).on("affix.bs.affix",function(){sidebarAffix_con.find("[data-affix]").length||sidebarAffix_con.append(_this.find("[data-affix]").clone()),top_css()}).find("[lazyload-action]:not(.lazyload)").addClass("lazyload"),sidebarAffix_con.hasClass("affix")&&sidebarAffix_con.trigger("affix.bs.affix"),sidebarAffix_con.hasClass("affix-bottom")&&sidebarAffix_con.trigger("affix-bottom.bs.affix"),_this},jQuery.fn.autoAffix=function(top,bottom){top=~~top,bottom=~~bottom;var _this=jQuery(this);if(_this.data("bs.affix"))return _this;var _body=jQuery("body"),offset_top=~~_this.attr("offset-top"),offset_bottom=~~_this.attr("offset-bottom"),_wrap_attr=_this.attr("data-wrap"),_wrap=_wrap_attr?jQuery(_wrap_attr):_this.parent(),_header=jQuery(".header");function get_nav_Height(){return(_body.hasClass("nav-fixed")&&(!_header.hasClass("scroll-down-hide")||!_body.hasClass("scroll-down"))?_header.outerHeight():0)+top}function remove_clone(){_this.next(".affix-clone").remove()}function top_css(){_this.css({top:get_nav_Height()})}function this_clone(){_this.next(".affix-clone").length||_this.after(_this.clone().removeClass("affix-top affix affix-bottom").addClass("affix-clone").css("opacity","0"))}_wrap.css("min-height",_this.outerHeight()+bottom);var last_top=0;return _this.affix({offset:{top:function(){var new_top=_this.parent().offset().top-get_nav_Height()+offset_top;return new_top!==last_top&&_this.hasClass("affix")&&top_css(),last_top=new_top,new_top},bottom:function(){return document.body.clientHeight-_wrap.outerHeight()-_wrap.offset().top+bottom+offset_bottom}}}).on("affix-top.bs.affix",function(){_this.css({top:"",width:""}),remove_clone()}).on("affix.bs.affix",function(){this_clone(),top_css()}).on("affix-bottom.bs.affix",function(){this_clone()}),_this.hasClass("affix")&&_this.trigger("affix.bs.affix"),_this.hasClass("affix-bottom")&&_this.trigger("affix-bottom.bs.affix"),_this.hasClass("affix-top")&&_this.trigger("affix-top.bs.affix"),_this},_win.bd.on("click",".toggle-theme",function(event){var isDark=jQuery("body").hasClass("dark-theme");if(!document.startViewTransition){toggle();return}const transition=document.startViewTransition(()=>{toggle()}),{clientX,clientY}=event,endRadius=Math.hypot(Math.max(clientX,innerWidth-clientX),Math.max(clientY,innerHeight-clientY)),clipPath=[`circle(0px at ${clientX}px ${clientY}px)`,`circle(${endRadius}px at ${clientX}px ${clientY}px)`];transition.ready.then(()=>{document.documentElement.animate({clipPath:isDark?[...clipPath].reverse():clipPath},{duration:500,easing:isDark?"ease-out":"ease-in",fill:"both",pseudoElement:isDark?"::view-transition-old(root)":"::view-transition-new(root)"})});function toggle(){var highlight_white_zt="enlighter-t-"+_win.highlight_white_zt,highlight_dark_zt="enlighter-t-"+_win.highlight_dark_zt;jQuery("img[switch-src]").each(function(){var _this=jQuery(this),_src=_this.attr("data-src")||_this.attr("src"),_s_src=_this.attr("switch-src");_this.attr("src",_s_src).attr("switch-src",_src).attr("data-src","")}),jQuery("img[white-src],img[dark-src]").each(function(){var _this=jQuery(this),_s_src=isDark?_this.attr("white-src"):_this.attr("dark-src");_s_src&&_this.attr("src",_s_src)});var _enlighter=jQuery(".enlighter-default"),_body=jQuery("body"),_tinymce_body=jQuery("#post_content_ifr").contents().find("body");isDark?(jQuery('meta[name="theme-color"]').attr("content","#FDFCFE"),document.documentElement.classList.remove("dark"),_tinymce_body.removeClass("dark-theme"),_enlighter.removeClass(highlight_dark_zt).addClass(highlight_white_zt),_body.removeClass("dark-theme"),jQuery.cookie("theme_mode","white-theme",{path:"/"})):(jQuery('meta[name="theme-color"]').attr("content","#2F3135"),document.documentElement.classList.add("dark"),_tinymce_body.addClass("dark-theme"),_enlighter.removeClass(highlight_white_zt).addClass(highlight_dark_zt),_body.addClass("dark-theme"),jQuery.cookie("theme_mode","dark-theme",{path:"/"}))}}),_win.bd.on("click","[data-action]",function(){var _this=jQuery(this),s=_this.attr("data-pid"),key=_this.attr("data-action"),type=key,_type="aksrt"+type,data={type,key,pid:s};if(!_win.is_signin){var t=lcs.get(_type)||"";if(t.indexOf(","+s+",")!==-1)return notyf(aksrt__(type=="like"?"like_already_post":"like_already_comment"),"warning");t?t.length>=160?(t=t.substring(0,t.length-1),t=t.substr(1).split(","),t.splice(0,1),t.push(s),t=t.join(","),lcs.set(_type,","+t+",")):lcs.set(_type,t+s+","):lcs.set(_type,","+s+",")}action_ajax(_this,data,s,type,aksrt__("like_thanks"))});function action_ajax(_this,data,pid,type,text){if(_this.attr("disabled"))return!1;data._wpnonce=_win.post_action_nonce;var c=text||aksrt__("done");jQuery.ajax({type:"POST",url:_win.uri+"/action/action.php",dataType:"json",data,beforeSend:function(){_this.attr("disabled",!0).find("count").html('')},success:function(n){var ys=n.error?"danger":"";n.action&&n.action=="remove"&&(_this.removeClass("actived action-animation"),ys="warning"),n.action&&n.action=="add"&&_this.addClass("actived action-animation"),notyf(n.msg||c,ys),_this.attr("disabled",!1).find("count").html(n.cuont||"0"),type=="follow_user"&&jQuery('[data-action="follow_user"][data-pid="'+pid+'"]').each(function(){jQuery(this).find("count").html(n.cuont)})}})}_win.bd.on("click","[ajax-action]",function(){var _this=jQuery(this);if(_this.attr("disabled"))return!1;var id=_this.attr("data-id"),action=_this.attr("ajax-action"),_text=_this.find("text");_text=_text.length?_text:_this.siblings("text");var _this_html=_text.html();_this.attr("disabled",!0),_text.html(''),jQuery.ajax({type:"POST",url:_win.ajax_url,dataType:"json",data:{id,action,_wpnonce:_this.attr("data-nonce")},error:function(n){var _msg=aksrt_sprintf("ajax_error",n.status,n.statusText);aksrt_is_fatal_error_response(n.responseText)&&(_msg=aksrt__("ajax_fatal_error")),notyf(_msg,"danger"),_this.attr("disabled",!1),_text.html(_this_html)},success:function(n){if(_this.attr("disabled",!1),!n.data||!n.success)_text.html(_this_html),n.data&&n.data.msg&¬yf(n.data.msg,n.data.ys||"danger");else{if(n=n.data,n.show_modal&&n.modal){var modal_config={class:"modal-mini full-sm",height:330,mobile_from_bottom:!0,touch_close:!0,content:n.modal};n.modal_config&&(modal_config=jQuery.extend(modal_config,n.modal_config)),modal_config.content=n.modal,refresh_modal(modal_config),_text.html(_this_html);return}jQuery('[ajax-action="'+action+'"][data-id="'+id+'"]').each(function(){var _this2=jQuery(this),_text2=_this2.find("text");_text2=_text2.length?_text2:_this2.siblings("text"),_text2.html(n.text||_this_html).addClass("ajaxed"),n.active?_this2.addClass("active").siblings(".active").removeClass("active"):_this2.removeClass("active")})}}})});function throttle(fn,delay){let valid=!0;return function(...args){if(!valid)return!1;valid=!1,setTimeout(function(){fn.apply(this,args),valid=!0},delay)}}function debounce(callback,delay,immediate){var timeout;return function(){var context=this,args=arguments,later=function(){timeout=null,immediate||callback.apply(context,args)},callNow=immediate&&!timeout;clearTimeout(timeout),timeout=setTimeout(later,delay),callNow&&callback.apply(context,args)}}if(_win.bd.on("input focus","textarea[autoHeight]",function(){var elem=this,border=~~getComputedStyle(elem).getPropertyValue("border-top-width").replace("px","")+~~getComputedStyle(elem).getPropertyValue("border-bottom-width").replace("px",""),max=~~jQuery(elem).attr("maxHeight");elem.style.height="auto",max>elem.scrollHeight?(elem.style.height=elem.scrollHeight+border+"px",elem.style.overflow="hidden"):(elem.style.height=max+"px",elem.style.overflow="auto")}),_win.bd.on("click",".rewards",function(){jQuery("#rewards-popover").modal("show")}),_win.bd.hasClass("search")){var val=jQuery(".search-desc-text .search-key").text();try{var reg=eval("/"+val+"/i");jQuery(".search-tab .item-heading a,.search-tab .item-excerpt,.search-tab .forum-title a,.search-tab .excerpt,#search-tab-user .display-name").each(function(){var $this=jQuery(this);$this.text().search(reg)!=-1&&$this.html($this.html().replace(reg,function(w){return''+w+""}))})}catch(e){}}_win.bd.on("click",".pag-jump .jump-icon",function(){var _input=jQuery(this).siblings(".jump-input");pag_jump_go(_input)}),_win.bd.on("input",".pag-jump .jump-input",debounce(function(){pag_jump(jQuery(this))},200)),_win.bd.on("keydown",".pag-jump .jump-input",function(event){event.keyCode==13&&pag_jump_go(jQuery(this))});function pag_jump(_input){var max=_input.attr("max"),current=_input.attr("current"),val2=~~_input.val();return(!val2||val2<1||val2>max)&&(val2=val2>max?max:"",_input.val(val2)),val2==current?0:val2}function pag_jump_go(_input){var val2=pag_jump(_input);if(val2){var base=_input.attr("base"),url=base.replace("%#%",val2),parent=_input.parent();if(parent.hasClass("ajax-next")){_input.val("");var _ajax_link=parent.clone().removeClass("pag-jump").addClass("hide").attr("href",url);parent.append(_ajax_link),_ajax_link.click(),_ajax_link.remove()}else location.href=url,location.reload}else _input.focus()}jQuery.fn.cloneable=function(){var cloneable_text="cloneable",cloneable_add_e="."+cloneable_text+"-add",cloneable_remove_e="."+cloneable_text+"-remove",cloneable_item_e="."+cloneable_text+"-item";function max_min(_this,max,min){var count=_this.children(cloneable_item_e).length;max&&max<=count?_this.nextAll(cloneable_add_e).hide():_this.nextAll(cloneable_add_e).show(),min&&min>=count?_this.find(cloneable_remove_e).hide():_this.find(cloneable_remove_e).show()}return this.each(function(){var _this=jQuery(this),_item=_this.children(cloneable_item_e),is_on="is-on",click="click",max=_this.data("max")||0,min=_this.data("min")||0;if(max_min(_this,max,min),!(!_item.length||_this.attr(is_on))){var add_item=jQuery(_item[0]).clone(!1);add_item.find("input,textarea").val(""),_this.attr(is_on,!0).on(click,cloneable_remove_e,function(){jQuery(jQuery(this).parents(cloneable_item_e)[0]).remove(),max_min(_this,max,min)}).nextAll(cloneable_add_e).on(click,function(){var _add_item=add_item.clone(!1),count=_this.children(cloneable_item_e).length;_add_item.find("[name]").each(function(){var $this=jQuery(this),name=$this.attr("name");name=="_pseudo"||!name.includes("[0]")||$this.attr("name",$this.attr("name").replace("[0]","["+count+"]"))}),_this.append(_add_item),max_min(_this,max,min)})}})},jQuery.fn.dependency=function(){function _number(val2){return Number(val2)}function checkBoolean(v){switch(v){case!0:case"true":case 1:case"1":return!0;case null:case!1:case"false":case 0:case"0":return!1;default:return v}}function evalCondition(condition,val1,val2){switch(condition){case"==":return checkBoolean(val1)==checkBoolean(val2);case"!=":return checkBoolean(val1)!=checkBoolean(val2);case">=":return _number(val2)>=_number(val1);case"<=":return _number(val2)<=_number(val1);case">":return _number(val2)>_number(val1);case"<":return _number(val2)<_number(val1);case"any":if(jQuery.isArray(val2)){for(let i=val2.length-1;i>=0;i--)if(jQuery.inArray(val2[i],val1.split(","))!==-1)return!0}else if(jQuery.inArray(val2,val1.split(","))!==-1)return!0;return!1;case"not-any":if(jQuery.isArray(val2)){for(let i=val2.length-1;i>=0;i--)if(jQuery.inArray(val2[i],val1.split(","))==-1)return!0}else if(jQuery.inArray(val2,val1.split(","))==-1)return!0;return!1;default:return!1}}return this.each(function(){var $this=jQuery(this),$fields=$this.find("[data-controller]");if($fields.length){var is_on="is-on";$fields.each(function(){var $field=jQuery(this);if(!$field.attr(is_on)){var controllers=$field.attr(is_on,!0).data("controller").split("|"),conditions=$field.data("condition").split("|"),values=$field.data("value").toString().split("|");jQuery.each(controllers,function(index,depend_id){var value=values[index]||"",condition=conditions[index]||conditions[0]||"==";$this.on("change","[name='"+depend_id+"']",function(){var $elem=jQuery(this),_type=$elem.attr("type"),val2=_type=="checkbox"?$elem.is(":checked"):$elem.val(),is_show=evalCondition(condition,value,val2);$field.trigger("controller.change",is_show),is_show?$field.show():$field.hide()})})}})}})},_win.bd.on("click","[data-for]",function(){var _this=jQuery(this),_tt=_this.html(),_for=_this.attr("data-for"),_form=_this.parents("form"),_v=_this.attr("data-value"),multiple=~~_this.attr("data-multiple"),_group=_this.closest("[for-group]"),active_outerHTML=_this.prop("outerHTML");if(_group.length||(_group=_this.parent()),multiple>1){_tt="",active_outerHTML="";var active_array=[],_input="",is_active=_this.hasClass("active");if(is_active)_group.find('[data-for="'+_for+'"][data-value="'+_v+'"]').removeClass("active");else{var ii={};if(_group.find('[data-for="'+_for+'"].active').each(function(){ii[jQuery(this).attr("data-value")]=1}),Object.keys(ii).length>=multiple)return notyf(aksrt_sprintf("select_max",multiple),"danger");_group.find('[data-for="'+_for+'"][data-value="'+_v+'"]').addClass("active")}_group.find('[data-for="'+_for+'"].active').each(function(){var _this_value=jQuery(this).attr("data-value");active_array.indexOf(_this_value)==-1&&(_tt+=jQuery(this).html(),_input+='',active_array.push(_this_value),active_outerHTML+=jQuery(this).clone().addClass("outerhtml-copy").prop("outerHTML"))}),jQuery.each(active_array,function(index,value){_group.find('[data-for="'+_for+'"][data-value="'+value+'"]').addClass("active")}),_form.find("input[name='"+_for+"[]']").remove(),_form.append(_input)}else _group.find('[data-for="'+_for+'"]').removeClass("active"),_group.find('[data-for="'+_for+'"][data-value="'+_v+'"]').addClass("active"),_form.find("input[name='"+_for+"']").val(_v).trigger("change");_form.find("span[name='"+_for+"']").html(_tt),_form.find("input[name=s]").focus(),_form.find(".active-outerhtml[name='"+_for+"']").html(active_outerHTML)}),_win.bd.on("input","input[limit-min],input[limit-max]",debounce(function(){var _this=jQuery(this),min=Number(_this.attr("limit-min")),max=Number(_this.attr("limit-max")),val2=Number(_this.val()),text,warning_class="limit-warning";_this.next("."+warning_class).length||_this.after('');var _warning=_this.next("."+warning_class);_this.val().length<1?_warning.html("").hide():val2>max?(text=_this.attr("warning-max")||aksrt__("input_max"),_warning.html(text.replace("1$",max)).fadeIn(150)):val2',loading_remind=loading_icon+''+aksrt__("search_loading")+"",is_on="is-on";if(_this.data(is_on))return;function ajax(){var data={},serializeObject=_this.serializeObject();jQuery.each(serializeObject,function(key,val2){data[key]=val2}),_this.find("input[name]").each(function(){var _th=jQuery(this),v=_th.val()||"";data[_th.attr("name")]=v}),_this.addClass(loading),_remind.html(loading_remind),_icon.html(loading_icon),_container.css({height:_container.outerHeight(),overflow:"hidden"}),jQuery.post(ajax_url,data,function(result){var data_html=result.data;data_html&&_container.html('
    '+data_html+"
    ").animate({height:_container.children("."+centent).outerHeight()},200,"swing",function(){_container.css({height:"",overflow:"",transition:""})}),_this.removeClass(loading),_remind.html(result.remind||""),_icon.html(_icon_html),window.AksrtFrontend.rehydrate(_container[0],"ajax")},"json")}function submitted(_input){_input.val().length>=min_length?ajax():_remind.html(min_length_remind)}_this.data(is_on,!0).find(input).on("input",debounce(function(){submitted(jQuery(this))},500)).on("keydown",function(event){event.keyCode==13&&(event.preventDefault(),submitted(jQuery(this)))})})},_win.bd.on("click",".main-search [data-for]",function(){var _placeholder=jQuery(".main-search").find(".scale-placeholder");_placeholder.length&&_placeholder.text(_placeholder.attr("default"))}),_win.bd.on("submit",".main-search form",function(){var _this=jQuery(this),inputs=_this.serializeObject();jQuery.each(inputs,function(k,v){(!v||v=="null")&&k!="s"&&_this.find('input[name="'+k+'"]').remove()})}),_win.bd.on("click",".main-search-btn",function(){var _this=jQuery(this);jQuery(".main-search").addClass("show");var _remote_search=jQuery(".main-search [remote-box]").first();if(_remote_search.length){_remote_search.one("aksrt:remote-loaded",function(){_this.trigger("click")}),_remote_search.trigger("click");return}var _search_form=jQuery(".main-search form");if(_search_form.length){var attr_="search-",obj={type:_this.attr(attr_+"type"),user:_this.attr(attr_+"user"),trem:_this.attr(attr_+"trem")};jQuery.each(obj,function(k,v){if(v){var _k=_search_form.find('input[name="'+k+'"]').val(v),_data_for=_search_form.find('[data-for="'+k+'"][data-value="'+v+'"]').click();if(!_data_for.length&&k=="trem"){var cat_name=_this.attr("trem-name"),_cat_drop=_search_form.find(".cat-drop");cat_name&&_cat_drop.length&&(_cat_drop.append('
  • '+cat_name+"
  • "),_cat_drop.find('[data-value="'+v+'"]').click())}_k.length||_search_form.append('')}});var placeholder=_this.attr(attr_+"placeholder")||_search_form.find(".scale-placeholder").attr("default");_search_form.find(".scale-placeholder").text(placeholder),setTimeout(function(){_search_form.find('[name="s"]').focus()},100)}}),jQuery(".search-page-ajaxpager").length&&(_win.bd.on("click",".page-search-box a.search_keywords",function(){var $this=jQuery(this).clone();return $this.addClass("ajax-next").attr("ajax-replace","true").attr("route","true"),jQuery(".search-page-ajaxpager").append($this),$this.click().remove(),!1}),_win.bd.on("submit",".page-search-box .search-form",function(){var $this=jQuery(this),data=$this.serializeObject(),url=new URL($this.attr("action"));url.search=new URLSearchParams(data).toString();var $link=jQuery('');return jQuery(".search-page-ajaxpager").append($link),$link.click().remove(),!1}));function nav_folding(){var navbar_nav_t=".navbar-nav",sub_menu_t="sub-menu",_collapse=jQuery(".navbar-collapse"),surplus_width=_collapse.width();_collapse.find(">:not("+navbar_nav_t+")").each(function(){surplus_width-=jQuery(this).outerWidth()}),surplus_width-=jQuery(".navbar-header").outerWidth()+40;var navs_width=66,_folding=jQuery('');jQuery(navbar_nav_t+">li").each(function(){navs_width+=jQuery(this).outerWidth(),navs_width>surplus_width&&_folding.find(">."+sub_menu_t).append(jQuery(this))}),_folding.find(">."+sub_menu_t+" li").length&&jQuery(navbar_nav_t).append(_folding)}window.debounce_notyf=debounce(notyf,100,!0);function notyf(str,ys,time,id){jQuery(".notyn").length||_win.bd.append('
    '),ys=ys||"success",ys=="error"&&(ys="danger"),time=time||5e3,time=time<100?time*1e3:time;var id_attr=id?' id="'+id+'"':"",_html=jQuery('
    '+str+"
    "),is_close=!id;id&&jQuery("#"+id).length?(jQuery("#"+id).find(".notyf").removeClass().addClass("notyf "+ys).html(str),_html=jQuery("#"+id),is_close=!0):jQuery(".notyn").append(_html),is_close&&setTimeout(function(){notyf_close(_html)},time)}function notyf_close(_e){_e.addClass("notyn-out"),setTimeout(function(){_e.remove()},1e3)}_win.bd.on("click",".noty1",function(){notyf_close(jQuery(this))}),_win.passw=1,_win.bd.on("click",".passw",function(){var _this=jQuery(this);_win.passw==1?(_this.find(".fa").addClass("fa-eye-slash"),_this.siblings("input").attr("type","text"),_win.passw=2):(_this.find(".fa").removeClass("fa-eye-slash"),_this.siblings("input").attr("type","password"),_win.passw=1)}),_win.bd.on("input change focus",".line-form-input",debounce(function(){placeholder_scale(jQuery(this))},100));function placeholder_scale(_this){var val2=_this.val(),placeholder=_this.siblings(".scale-placeholder");val2.length>0?placeholder.addClass("is-focus"):placeholder.removeClass("is-focus")}function aksrt_is_url(str){try{return new URL(str),!0}catch{return!1}}function is_mail(str){return/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/.test(str)}jQuery.fn.serializeObject=function(){var o={},a=this.serializeArray();return jQuery.each(a,function(){o[this.name]!==void 0?(o[this.name].push||(o[this.name]=[o[this.name]]),o[this.name].push(this.value||"")):o[this.name]=this.value||""}),o},_win.bd.on("click",".trash-history-search",function(){confirm(aksrt__("confirm_clear_search"))==!0&&(jQuery(".history-search").slideUp().delay(1e3,function(){jQuery(this).remove()}),jQuery.cookie("history_search",""))}),_win.bd.on("click",".initiate-checkin",function(){aksrt_ajax(jQuery(this),0,function(data){data.details_link&&jQuery(".initiate-checkin").each(function(){var $link=jQuery(data.details_link),_this=jQuery(this),_class=_this.attr("class"),_text=_this.attr("ed-text");$link.addClass(_class).removeClass("initiate-checkin").html(_text),_this.prop("outerHTML",$link.prop("outerHTML"))})},aksrt__("checkin_loading"))}),_win.bd.on("click",".single-pay-tabbar",function(){scrollTo("#posts-pay",-50),jQuery("#posts-pay .cashier-link").click()}),_win.bd.on("submit","[ajax-submit]",function(){var _this=jQuery(this),but=_this.attr("ajax-submit")||'.wp-ajax-submit,[zibajax="submit"]';return _this.find(but).click(),!1}),_win.bd.on("click",'.wp-ajax-submit,[zibajax="submit"]',function(){var _this=jQuery(this),confirm_text=_this.attr("data-confirm");return confirm_text&&!confirm(confirm_text)||aksrt_ajax(jQuery(this)),!1});function aksrt_ajax(_this,data,success,noty,no_loading){if(_this.attr("disabled"))return!1;if(!data){var _data=_this.attr("form-data");if(_data)try{data=jQuery.parseJSON(_data)}catch{}if(!data){var form=_this.parents("form");data=form.serializeObject()}}var _action=_this.attr("form-action");_action&&(data.action=_action);var _text=_this.html(),_loading=no_loading?_text:''+aksrt__("please_wait")+"";noty!="stop"&¬yf(noty||aksrt__("processing"),"load","","wp_ajax"),_this.attr("disabled",!0).html(_loading);var _url=_this.attr("ajax-href")||_win.ajax_url;jQuery.ajax({type:"POST",url:_url,data,dataType:"json",error:function(n){var _msg=aksrt_sprintf("ajax_error",n.status,n.statusText);aksrt_is_fatal_error_response(n.responseText)&&(_msg=aksrt__("ajax_fatal_error")),console.error("ajax请求错误,错误信息如下:",n),notyf(_msg,"danger","",noty!="stop"?"wp_ajax":""),_this.attr("disabled",!1).html(_text)},success:function(n){var ys=n.ys?n.ys:n.error?"danger":"";noty!="stop"?notyf(n.msg||aksrt__("done"),ys,"","wp_ajax"):n.msg&¬yf(n.msg,ys),_this.attr("disabled",!1).html(_text).trigger("aksrt_ajax.success",n),jQuery.isFunction(success)&&success(n,_this,data),n.hide_modal&&_this.closest(".modal").modal("hide"),n.reload&&(n.goto?(window.location.href=n.goto,window.location.reload):window.location.reload())}})}_win.bd.on("aksrt_ajax.success","[next-tab]",function(e,n){var _next=jQuery(this).attr("next-tab");_next&&n&&!n.error&&jQuery('a[href="#'+_next+'"]').tab("show")}),jQuery(".erphp-login-must").each(function(){jQuery(this).addClass("signin-loader")}),_win.window.resize(debounce(function(){_wid=_win.window.width(),auto_fun()},500)),jQuery(".collapse").on("shown.bs.collapse",function(){auto_fun()}),_win.bd.on("click",".read-more-open",function(){jQuery(this).parents(".limit-height").css({height:"","max-height":""}).find(".read-more").remove()});function posts_limit_height(){if(jQuery(".limit-height").length){var r=jQuery(".limit-height");if(r.data("posts-limit-ison"))return;var r_h=r.height(),r_m=r.attr("data-maxheight");if(~~r_h>=~~r_m+79){var nn='';r.append(nn).data("posts-limit-ison",!0)}}}jQuery(document).on("lazybeforeunveil",function(e){var _this=jQuery(e.target),lazyload_action=_this.attr("lazyload-action");setTimeout(function(){if(lazyload_action==="ias")if(_this.attr("remote-box"))_this.click();else{var _a=_this.is(".ajax-next,.ias-btn")?_this:_this.find(".ajax-next,.ias-btn");_a.attr("no-scroll",!0).click()}if(lazyload_action=="animated"){var animated=_this.attr("data-animated");animated&&_this.addClass("animated "+animated).css("visibility","unset")}},200);var bg=_this.attr("data-bg");bg&&_this.css("background-image","url("+bg+")")});function fps_yh(){var lastTime=0,frames=0,fps=0,fps_average=0,currentTime,stop=0;function updateFPS(){currentTime=performance.now(),frames++,currentTime-lastTime>=300&&(fps=Math.round(frames*1e3/(currentTime-lastTime)),frames=0,lastTime=currentTime,fps>5&&lastTime>1600&&(fps_average=fps_average||fps,fps_average=(fps_average+fps)/2,fps_average<20&&stop++,stop>5&&jQuery("body").addClass("fps-accelerat"))),stop<=5&&lastTime<15e3?requestAnimationFrame(updateFPS):setCookie()}function setCookie(){jQuery.cookie("fps_accelerat",~~fps_average,{path:"/",expires:604800})}requestAnimationFrame(updateFPS)}!jQuery.cookie("fps_accelerat")&&!jQuery("body").hasClass("fps-accelerat")&&fps_yh();function partners_scroll_init(){function init(widget){if(!(!widget||widget.dataset.zpsReady==="1")){var speed=parseFloat(widget.style.getPropertyValue("--zps-speed"))||3,rows=widget.querySelectorAll("[data-zps-row]");rows.forEach(function(row){var track=row.querySelector("[data-zps-track]");if(track){var seed=track.querySelector(".zps-group");if(seed){var setup=function(){var extras=track.querySelectorAll(".zps-group.zps-clone");extras.forEach(function(el){el.remove()});var groupWidth=seed.scrollWidth;if(!(groupWidth<10)){var rowWidth=row.clientWidth||widget.clientWidth||window.innerWidth,needTotal=Math.max(groupWidth*2,rowWidth+groupWidth),copies=Math.ceil(needTotal/groupWidth);copies<2&&(copies=2);for(var i=1;i0)){pending++;var done=function(){pending--,pending<=0&&setup()};img.addEventListener("load",done,{once:!0}),img.addEventListener("error",done,{once:!0})}});var resizeTimer;window.addEventListener("resize",function(){clearTimeout(resizeTimer),resizeTimer=setTimeout(setup,200)})}}}),widget.dataset.zpsReady="1"}}function initAll(){document.querySelectorAll(".aksrt-partners-scroll").forEach(init)}initAll()}function translate_init(){var translate_config=_win.translate_config;translate_config.s&&tbquire(["translate"],function(){translate.selectLanguageTag.show=!1,translate.language.setLocal(translate_config.local||"chinese_simplified"),translate_config.service_url&&translate.request.setHost(translate_config.service_url),translate_config.ignore_text&&(translate.ignore.text=translate_config.ignore_text),translate_config.nomenclature&&translate_config.nomenclature.length>0&&jQuery.each(translate_config.nomenclature,function(index,item){var from=item.from,to=item.to,value=item.value;from=="auto"&&(from=""),value&&to&&translate.nomenclature.append(from,to,value)}),translate_config.auto_discriminate_local&&translate.setAutoDiscriminateLocalLanguage(),translate_config.range&&translate_config.range.length>0&&(translate.language.translateLanguagesRange=translate_config.range),translate_config.loading&&translate.progress.api.startUITip();var $language_dropdown=jQuery(".language-dropdown .dropdown-menu"),translateStart=debounce(function(){jQuery("[data-language]").removeClass("active"),$language_dropdown.loading("show")},400,!0);translate.lifecycle.changeLanguage.trigger.push(translateStart);var renderFinish=debounce(function(uuid){$language_dropdown.loading("hide"),jQuery("[data-language='"+uuid.to+"']").addClass("active")},400);translate.lifecycle.execute.finally.push(renderFinish),_wid>996&&jQuery(".navbar-top .nav>li>a>.menu-item-title").each(function(){var _this=jQuery(this);_this.css({"max-width":~~_this.outerWidth(!0)+5+"px"})}),translate.ignore.class.push("translate-ignore"),translate.ignore.tag.push("svg"),translate.service.use(translate_config.service_use||"client.edge"),translate.listener.start(),translate.execute()})}_win.bd.on("click",".translate-button",function(){var _this=jQuery(this),language=_this.attr("data-language");translate&&translate.changeLanguage(language)}),(function(){var SELECTOR_class="obs-animate",SELECTOR="."+SELECTOR_class,BASE_CLS="in-view",OBS_FLAG="__zaniObserved",REPEAT_CLS="obs-animate-repeat",noAnim=!("IntersectionObserver"in window)||window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;if(noAnim){removeAnimation(SELECTOR);return}var rootMargin="100px 0px 0px 0px",c_i=0;function execute(entries){c_i=0;for(var isIntersecting_count=0,j=0;j8&&(delay=delay/(isIntersecting_count/8)),$el.css("transition-delay",delay+"s"),$el.addClass(BASE_CLS),c_i++,is_repeat||stop(el)}else is_repeat&&$el.removeClass(BASE_CLS)}}var io=new IntersectionObserver(execute,{root:null,rootMargin,threshold:.01});function stop(el){!el||el.nodeType!==1||!el[OBS_FLAG]||(el[OBS_FLAG]=!1,io.unobserve(el),setTimeout(function(){removeAnimation(el)},50))}function removeAnimation(el){var animation=jQuery(el).attr("data-animation"),animation_class="ani-"+animation;jQuery(el).removeClass(BASE_CLS+" "+SELECTOR_class+" "+animation_class+" "+REPEAT_CLS).removeAttr("data-animation").removeAttr("data-animation-repeat").css("transition-delay","")}function register(el){!el||el.nodeType!==1||el[OBS_FLAG]||(el[OBS_FLAG]=!0,io.observe(el))}function scan(){jQuery(SELECTOR).each(function(){register(this)})}scan()})();function number_stats_init(){function animateCount(el,duration){var target=parseFloat(el.getAttribute("data-target"))||0;if(target===0){el.textContent="0";return}var raw=el.getAttribute("data-target")||"0",decimals=(raw.split(".")[1]||"").length,_duration=~~el.getAttribute("data-duration");duration=_duration>10?_duration:duration;var start=0,startTs=null;duration=duration||1500;function step(ts){startTs||(startTs=ts);var progress=Math.min((ts-startTs)/duration,1),eased=1-Math.pow(1-progress,1.5),value=start+(target-start)*eased;el.textContent=decimals>0?value.toFixed(decimals):Math.floor(value).toString(),progress<1?requestAnimationFrame(step):el.textContent=decimals>0?target.toFixed(decimals):target.toString()}requestAnimationFrame(step)}var wraps=document.querySelectorAll(".stat-number-wrap");if(wraps.length){if(!("IntersectionObserver"in window)){wraps.forEach(function(wrap){wrap.querySelectorAll(".stat-number").forEach(function(el){el.textContent=el.getAttribute("data-target")||""})});return}var io=new IntersectionObserver(function(entries){entries.forEach(function(entry){if(entry.isIntersecting){var wrap=entry.target;wrap.dataset.counted!=="1"&&(wrap.dataset.counted="1",wrap.querySelectorAll(".stat-number").forEach(function(el){animateCount(el,1500)}),io.unobserve(wrap))}})},{threshold:.3});wraps.forEach(function(wrap){io.observe(wrap)})}}_win.bd.on("click",".produck-wid-feature-intro .fi-tab",function(){var _this=jQuery(this);if(!_this.hasClass("is-active")){_this.addClass("is-active"),_this.siblings().removeClass("is-active");var panels=_this.closest(".produck-wid-feature-intro").find(".fi-panel");panels.removeClass("is-active"),panels.eq(_this.index()).addClass("is-active")}});function tilt_cases_init(){function isTouchOrMobile(){var isTouch="ontouchstart"in window||navigator.maxTouchPoints&&navigator.maxTouchPoints>0,isSmall=window.matchMedia&&window.matchMedia("(max-width: 768px)").matches;return isTouch||isSmall}if(isTouchOrMobile())return;var cases=jQuery(".vanilla-tilt:not(.is-initialized)");if(!cases.length)return;function setTranslate3d(imgs,translate3d){var transform=imgs[0].style.transform;transform.includes("translate3d")&&(transform=transform.replace(/translate3d\(.*?\)/g,"").trim()),transform=transform+" "+translate3d,imgs.css("transform",transform)}tbquire(["tilt"],function(){cases.each(function(){var _this=jQuery(this),imgs=_this.find("img"),maxTilt=parseFloat(_this.attr("data-tilt-max"))||10,n=imgs.length,gain=1.22,hoverZone=_this.closest(".tilt-cases-container")||_this,mes=_this.data("tilt-mouse-event-element");if(mes){_this.removeAttr("data-tilt-mouse-event-element");var elZone=_this.closest(mes);hoverZone=elZone.length?elZone:hoverZone}var opt={};hoverZone.length&&(opt["mouse-event-element"]=hoverZone[0]),_this.addClass("is-initialized"),VanillaTilt.init(this,opt),!(n<=1)&&(this.addEventListener("tiltChange",function(e){var detail=e.detail||{},tx=parseFloat(detail.tiltX)||0,ty=parseFloat(detail.tiltY)||0;imgs.each(function(i){var $img=jQuery(this),base=parseFloat($img.attr("data-tilt-depth"));if(isNaN(base)&&(base=20),base===0){setTranslate3d($img,"translate3d(0,0,0)");return}var layerMul=1;n>1&&(layerMul=.48+i/(n-1)*1.14);var effective=base*gain*layerMul,dx=tx/maxTilt*effective*-1,dy=ty/maxTilt*effective;setTranslate3d($img,"translate3d("+dx+"px, "+dy+"px, 0)")})}),hoverZone&&hoverZone.on("mouseleave",function(){imgs.each(function(){setTranslate3d(jQuery(this),"translate3d(0,0,0)")})}))})})}_win.bd.on("click",".customize-preview-widget-edit",function(e){if(!(!wp||!wp.customize||!wp.customize.widgetsPreview)){var _this=jQuery(this),box=_this.closest(".customize-preview-widget-box");e.preventDefault(),wp.customize.widgetsPreview.preview.send("focus-widget-control",box.prop("id"))}});function initLegacyDocumentReady(){if(setTimeout(function(){jQuery(".line-form-input").each(function(){placeholder_scale(jQuery(this))}),_win.views&&jQuery.post(_win.ajax_url,{action:"views_record",id:_win.views}),posts_limit_height(),_win.window.trigger("scroll")},1e3),number_stats_init(),translate_init(),partners_scroll_init(),tilt_cases_init(),jQuery(".navbar-top li.menu-item-has-children>a").each(function(){jQuery(this).append('')}),_wid>996&&jQuery(".header").height()>81&&nav_folding(),posts_limit_height(),auto_maxHeight(),jQuery(".feature").length){var _feh=0,_fehm=0;jQuery(".feature").each(function(){var _th=jQuery(this);(_feh=_th.find(".feature-icon").innerHeight()+_th.find(".feature-title").innerHeight()+_th.find(".feature-note").innerHeight())>_fehm&&(_fehm=_feh)}),jQuery(".feature").css("height",_fehm)}jQuery(".qrcode").length&&tbquire(["qrcode"],function(){jQuery(".qrcode").each(function(){var _this=jQuery(this),text=_this.attr("data-qrcode"),size=_this.attr("data-size")||160;_this.qrcode({width:size,height:size,correctLevel:0,text:text||document.URL,background:"#fff",foreground:"#333"})})}),jQuery(document).on("lazyloaded",function(e){var _this=jQuery(e.target);swiper_tab_AutoHeight(_this)}),jQuery(document).on("lazyloaded",".gradient-bg img",function(e){var _this=jQuery(e.target),_parent=_this.closest(".gradient-bg"),opacity=_parent.attr("data-opacity"),c_11=opacity?"a":"",c_12=opacity?","+opacity:"";tbquire(["grade"],function(){Grade(_parent[0],null,function(gradientData){gradientData=gradientData[0];var rgba=gradientData.gradientData,c_1="rgb"+c_11+"("+rgba[0].rgba.slice(0,3).join(",")+c_12+") 10%",c_2="rgb"+c_11+"("+rgba[1].rgba.slice(0,3).join(",")+c_12+") 80%";jQuery(gradientData.element).addClass("gradient-bg-loaded").css("background-image","linear-gradient(135deg, "+c_1+", "+c_2+")")})})}),_win.qj_loading&&jQuery(".qj_loading").fadeOut(500).delay(1e3,function(){jQuery(this).remove(),jQuery("#qj_dh_css").remove()});function yiyan_nr(n){var yylink=_win.uri+"/yiyan/qv-yiyan.php",y_nr;jQuery.ajax({type:"POST",url:yylink}).done(function(i){var lines=i.replace(/\r\n|\r/g,"/&/").trim().split("/&/");if(lines){var type=n.attr("type");type?y_nr=type==="en"?lines[0]:lines[1]:y_nr='
    '+lines[0]+'
    '+lines[1]+"
    ",n.html(y_nr)}})}jQuery(".yiyan").each(function(){yiyan_nr(jQuery(this))}),setInterval(function(){jQuery(".yiyan").each(function(){yiyan_nr(jQuery(this))})},3e4),jQuery(".yiyan").on("click",function(){yiyan_nr(jQuery(this))}),jQuery("[mini-touch]").each(function(){var _this=jQuery(this),fx=_this.attr("touch-direction");_this.minitouch({direction:fx,onEnd:function(e){_this.attr("mini-touch")==="mobile-nav"?jQuery("body").removeClass("mobile-navbar-show"):e.removeClass("show")}})})}window.AksrtFrontend.register("aksrt-legacy-main",function(root,reason){z_auto_fun(),reason==="init"&&(initLegacyDocumentReady(),thumb_dplayer(_wid>640?".posts-item .item-thumbnail,.forum-lists-cover":".posts-item,.forum-posts",".video-thumb-box[video-url]"),jQuery("[load-click]").attr("no-scroll",!0).click())}); ; /* source: assets/js/captcha-front.js */ @@ -5855,8 +5779,11 @@ jQuery.cookie=function(e,a,t){if(a===void 0){var r=null;if(document.cookie&&docu TOKEN_FIELDS: TOKEN_FIELDS }); - function scan() { - var mounts = document.querySelectorAll('[data-aksrt-captcha-config]'); + function scan(root, reason) { + var scope = root && root.querySelectorAll ? root : document; + var mounts = []; + if (scope.nodeType === 1 && scope.matches('[data-aksrt-captcha-config]')) mounts.push(scope); + Array.prototype.push.apply(mounts, scope.querySelectorAll('[data-aksrt-captcha-config]')); Array.prototype.forEach.call(mounts, function (mount) { if (mount.dataset.aksrtCaptchaBound) return; var config; @@ -6279,15 +6206,7 @@ jQuery.cookie=function(e,a,t){if(a===void 0){var r=null;if(document.cookie&&docu } } - if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', scan); - else setTimeout(scan, 0); - - if (window.MutationObserver) { - new MutationObserver(function (mutations) { - var shouldScan = mutations.some(function (mutation) { return mutation.addedNodes && mutation.addedNodes.length; }); - if (shouldScan) scan(); - }).observe(document.documentElement, { childList: true, subtree: true }); - } + window.AksrtFrontend.register('aksrt-captcha-front', scan); })(); ; diff --git a/assets/js/captcha-front.js b/assets/js/captcha-front.js index 646b3d82..eed03c3c 100644 --- a/assets/js/captcha-front.js +++ b/assets/js/captcha-front.js @@ -121,8 +121,11 @@ TOKEN_FIELDS: TOKEN_FIELDS }); - function scan() { - var mounts = document.querySelectorAll('[data-aksrt-captcha-config]'); + function scan(root, reason) { + var scope = root && root.querySelectorAll ? root : document; + var mounts = []; + if (scope.nodeType === 1 && scope.matches('[data-aksrt-captcha-config]')) mounts.push(scope); + Array.prototype.push.apply(mounts, scope.querySelectorAll('[data-aksrt-captcha-config]')); Array.prototype.forEach.call(mounts, function (mount) { if (mount.dataset.aksrtCaptchaBound) return; var config; @@ -545,13 +548,5 @@ } } - if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', scan); - else setTimeout(scan, 0); - - if (window.MutationObserver) { - new MutationObserver(function (mutations) { - var shouldScan = mutations.some(function (mutation) { return mutation.addedNodes && mutation.addedNodes.length; }); - if (shouldScan) scan(); - }).observe(document.documentElement, { childList: true, subtree: true }); - } + window.AksrtFrontend.register('aksrt-captcha-front', scan); })(); diff --git a/assets/js/cms-download.js b/assets/js/cms-download.js index f720f287..3779fed4 100644 --- a/assets/js/cms-download.js +++ b/assets/js/cms-download.js @@ -698,7 +698,7 @@ if (preview.balance_enough === false) { if (preview.credits_url) { body += '' + - '抱歉!余额不足,请先充值 '; + '抱歉!余额不足,请先充值 '; } else { body += '
    抱歉!余额不足,请先充值
    '; } diff --git a/assets/js/color-extract.js b/assets/js/color-extract.js index 1ed066c6..eb05ab80 100644 --- a/assets/js/color-extract.js +++ b/assets/js/color-extract.js @@ -99,7 +99,8 @@ } function processImage(img) { - if (img.dataset.aksrtColorDone) return; + if (img.dataset.aksrtColorDone || img.dataset.aksrtColorBound) return; + img.dataset.aksrtColorBound = '1'; // Need crossOrigin for canvas access if (!img.crossOrigin && img.src.indexOf(window.location.origin) !== 0) { @@ -127,8 +128,10 @@ } } - function init() { - document.querySelectorAll('[data-aksrt-color-extract]').forEach(processImage); + function init(root, reason) { + var scope = root && root.querySelectorAll ? root : document; + if (scope.nodeType === 1 && scope.matches('[data-aksrt-color-extract]')) processImage(scope); + scope.querySelectorAll('[data-aksrt-color-extract]').forEach(processImage); } // Public API @@ -139,9 +142,5 @@ init: init }; - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', init); - } else { - init(); - } + window.AksrtFrontend.register('aksrt-color-extract', init); })(); diff --git a/assets/js/comment-ajax.js b/assets/js/comment-ajax.js index db38d3a9..4cf3541a 100644 --- a/assets/js/comment-ajax.js +++ b/assets/js/comment-ajax.js @@ -133,7 +133,7 @@ if (!result.success) { notyf((result.data && result.data.message) || result.message || '操作失败', 'danger'); return; } var pinned = !!(result.data && result.data.pinned); btn.setAttribute('data-pinned', pinned ? '1' : '0'); - btn.innerHTML = '' + (pinned ? '取消置顶' : '设置置顶'); + btn.innerHTML = '' + (pinned ? '取消置顶' : '设置置顶'); syncPinnedBadge(commentEl, pinned); notyf(result.message || (pinned ? '评论已置顶。' : '已取消置顶。'), 'success'); }) @@ -148,7 +148,7 @@ badge = document.createElement('badge'); badge.className = 'badge-topping jb-blue mr6 flex0'; badge.title = '置顶评论'; - badge.innerHTML = ''; + badge.innerHTML = ''; name.insertBefore(badge, name.firstChild); } else if (!pinned && badge) { badge.remove(); diff --git a/assets/js/core/comment-fixed-input.js b/assets/js/core/comment-fixed-input.js index 4d0305d4..380cad48 100644 --- a/assets/js/core/comment-fixed-input.js +++ b/assets/js/core/comment-fixed-input.js @@ -39,19 +39,6 @@ } } - document.addEventListener('click', function (e) { - var trigger = e.target && e.target.closest ? e.target.closest('[fixed-input]') : null; - if (!trigger) return; - e.preventDefault(); - var targetSel = trigger.getAttribute('fixed-input') || '#respond'; - var panel = document.querySelector(targetSel); - var comments = document.getElementById('comments'); - if (comments && comments.scrollIntoView) { - comments.scrollIntoView({ behavior: 'smooth', block: 'start' }); - } - FixedInput(panel, 'show'); - }); - // Autoheight textareas. function bindAutoheight(ta) { if (!ta || ta.dataset.autoheightBound) return; @@ -67,24 +54,49 @@ resize(); } - function scan() { - document.querySelectorAll('textarea[autoheight], textarea.grin').forEach(bindAutoheight); + function scopeFor(root) { + return root && root.querySelectorAll ? root : document; } - document.addEventListener('DOMContentLoaded', scan); - if (window.AksrtFrontend && typeof window.AksrtFrontend.register === 'function') { - window.AksrtFrontend.register('aksrt-comment-fixed-input', function (root) { - scan(); - // Expose for submit hide. - root = root || document; - var respond = root.querySelector ? root.querySelector('#respond') : document.getElementById('respond'); - if (respond) { - respond.aksrtFixedInput = function (action) { - FixedInput(respond, action); - }; + function scan(root) { + var scope = scopeFor(root); + if (scope.nodeType === 1 && scope.matches('textarea[autoheight], textarea.grin')) { + bindAutoheight(scope); + } + scope.querySelectorAll('textarea[autoheight], textarea.grin').forEach(bindAutoheight); + } + + var globalsBound = false; + function bindGlobals() { + if (globalsBound) return; + globalsBound = true; + document.addEventListener('click', function (e) { + var trigger = e.target && e.target.closest ? e.target.closest('[fixed-input]') : null; + if (!trigger) return; + e.preventDefault(); + var targetSel = trigger.getAttribute('fixed-input') || '#respond'; + var panel = document.querySelector(targetSel); + var comments = document.getElementById('comments'); + if (comments && comments.scrollIntoView) { + comments.scrollIntoView({ behavior: 'smooth', block: 'start' }); } + FixedInput(panel, 'show'); }); } + window.AksrtFrontend.register('aksrt-comment-fixed-input', function (root, reason) { + bindGlobals(); + scan(root); + root = root || document; + var respond = root.nodeType === 1 && root.matches && root.matches('#respond') + ? root + : (root.querySelector ? root.querySelector('#respond') : document.getElementById('respond')); + if (respond) { + respond.aksrtFixedInput = function (action) { + FixedInput(respond, action); + }; + } + }); + window.AksrtFixedInput = FixedInput; })(); diff --git a/assets/js/core/misc.js b/assets/js/core/misc.js index 01dff9df..42c973e2 100644 --- a/assets/js/core/misc.js +++ b/assets/js/core/misc.js @@ -4,6 +4,18 @@ (function () { "use strict"; + var globalsBound = false; + + function scopeFor(root) { + return root && root.querySelectorAll ? root : document; + } + + function eachMatch(root, selector, callback) { + var scope = scopeFor(root); + if (scope.nodeType === 1 && scope.matches(selector)) callback(scope); + scope.querySelectorAll(selector).forEach(callback); + } + function renderGradientBackground(container) { if (!container || container.dataset.aksrtGradientState || typeof window.Grade !== "function") return; @@ -32,26 +44,15 @@ } function initGradientBackgrounds(root) { - var scope = root || document; - if (scope.nodeType === 1 && scope.matches(".gradient-bg")) { - renderGradientBackground(scope); - } - scope.querySelectorAll(".gradient-bg").forEach(renderGradientBackground); + eachMatch(root, ".gradient-bg", renderGradientBackground); } - document.addEventListener("lazyloaded", function (event) { - if (!(event.target instanceof Element) || !event.target.matches(".gradient-bg img")) return; - renderGradientBackground(event.target.closest(".gradient-bg")); - }, true); - function initPostThumbMedia(root) { - var scope = root || document; - - scope.querySelectorAll("[data-post-thumb-video]").forEach(function (box) { + eachMatch(root, "[data-post-thumb-video]", function (box) { if (box.dataset.aksrtThumbVideoBound === "1") return; - box.dataset.aksrtThumbVideoBound = "1"; var video = box.querySelector("video"); if (!video) return; + box.dataset.aksrtThumbVideoBound = "1"; function loadVideo() { if (!video.getAttribute("src") && video.dataset.src) { @@ -82,25 +83,17 @@ }); } - window.AksrtFrontend.register("aksrt-post-thumb-media", function (root) { - initPostThumbMedia(root); - initGradientBackgrounds(root); - }); - -})(); - -(function () { - "use strict"; - - function initSlideCovers() { - var covers = document.querySelectorAll(".single-cover--slide"); - covers.forEach(function (cover) { + function initSlideCovers(root) { + eachMatch(root, ".single-cover--slide", function (cover) { + if (cover.dataset.aksrtSlideCoverBound === "1") return; var slides = cover.querySelectorAll(".single-cover__slide"); var dots = cover.querySelectorAll(".single-cover__dot"); if (slides.length < 2) return; + cover.dataset.aksrtSlideCoverBound = "1"; var current = 0; var interval = 5000; + var timer = null; function goTo(idx) { slides[current].classList.remove("is-active"); @@ -110,33 +103,32 @@ if (dots[current]) dots[current].classList.add("is-active"); } - var timer = setInterval(function () { - goTo((current + 1) % slides.length); - }, interval); + function startTimer() { + timer = window.setInterval(function () { + goTo((current + 1) % slides.length); + }, interval); + } + startTimer(); dots.forEach(function (dot, i) { dot.addEventListener("click", function () { - clearInterval(timer); + window.clearInterval(timer); goTo(i); - timer = setInterval(function () { - goTo((current + 1) % slides.length); - }, interval); + startTimer(); }); }); }); } - if (document.readyState === "loading") { - document.addEventListener("DOMContentLoaded", initSlideCovers); - } else { - initSlideCovers(); - } -})(); + function bindGlobals() { + if (globalsBound) return; + globalsBound = true; -(function () { - "use strict"; + document.addEventListener("lazyloaded", function (event) { + if (!(event.target instanceof Element) || !event.target.matches(".gradient-bg img")) return; + renderGradientBackground(event.target.closest(".gradient-bg")); + }, true); - function initHiddenContent() { document.addEventListener("click", function (e) { var btn = e.target.closest(".aksrt-hidden-content__submit-btn"); if (!btn) return; @@ -157,7 +149,7 @@ var formData = new FormData(); formData.append("action", "aksrt_check_visibility"); - formData.append("_nonce", (window.aksrtData && aksrtData.visibilityNonce) || ""); + formData.append("_nonce", (window.aksrtData && window.aksrtData.visibilityNonce) || ""); formData.append("mode", mode); formData.append("pid", pid); if (password) formData.append("password", password); @@ -165,7 +157,7 @@ btn.disabled = true; btn.textContent = "..."; - fetch((window.aksrtData && aksrtData.ajaxUrl) || "/wp-admin/admin-ajax.php", { + fetch((window.aksrtData && window.aksrtData.ajaxUrl) || "/wp-admin/admin-ajax.php", { method: "POST", body: formData, credentials: "same-origin", @@ -188,22 +180,19 @@ }); }); - // Handle Enter key on password input document.addEventListener("keydown", function (e) { - if (e.key === "Enter" && e.target.classList.contains("aksrt-hidden-content__password-input")) { - e.preventDefault(); - var wrapper = e.target.closest(".aksrt-hidden-content--locked"); - if (wrapper) { - var btn = wrapper.querySelector(".aksrt-hidden-content__submit-btn"); - if (btn) btn.click(); - } - } + if (e.key !== "Enter" || !e.target.classList.contains("aksrt-hidden-content__password-input")) return; + e.preventDefault(); + var wrapper = e.target.closest(".aksrt-hidden-content--locked"); + var btn = wrapper ? wrapper.querySelector(".aksrt-hidden-content__submit-btn") : null; + if (btn) btn.click(); }); } - if (document.readyState === "loading") { - document.addEventListener("DOMContentLoaded", initHiddenContent); - } else { - initHiddenContent(); - } + window.AksrtFrontend.register("aksrt-misc", function (root, reason) { + bindGlobals(); + initPostThumbMedia(root); + initGradientBackgrounds(root); + initSlideCovers(root); + }); })(); diff --git a/assets/js/credits.js b/assets/js/credits.js index d084297d..2d28895b 100644 --- a/assets/js/credits.js +++ b/assets/js/credits.js @@ -15,6 +15,21 @@ return; } var activePoll = null; + var balancesRefreshed = false; + + function elementsIn(root, selector) { + var elements = []; + root = root || document; + if (root.nodeType === 1 && root.matches(selector)) elements.push(root); + if (root.querySelectorAll) root.querySelectorAll(selector).forEach(function (element) { elements.push(element); }); + return elements; + } + + function firstIn(root, selector) { + root = root || document; + if (root.nodeType === 1 && root.matches(selector)) return root; + return root.querySelector ? root.querySelector(selector) : null; + } function operationKey(owner) { if (!owner.dataset.aksrtOperationKey) { @@ -89,8 +104,12 @@ } // Task-list "去签到" → scroll + click the real asset-card sign-in button. - function initSigninGoto() { - document.querySelectorAll('[data-aksrt-signin-goto]').forEach(function (el) { + function initSigninGoto(root) { + root = root || document; + var items = []; + if (root.nodeType === 1 && root.matches('[data-aksrt-signin-goto]')) items.push(root); + if (root.querySelectorAll) root.querySelectorAll('[data-aksrt-signin-goto]').forEach(function (el) { items.push(el); }); + items.forEach(function (el) { if (el.dataset.aksrtSigninGotoInitialized === '1') return; el.dataset.aksrtSigninGotoInitialized = '1'; el.addEventListener('click', function (e) { @@ -113,8 +132,8 @@ } // ===== Forward-only affiliate revenue center ===== - function initAffiliateRevenue() { - var root = document.querySelector('[data-aksrt-revenue-page]'); + function initAffiliateRevenue(scope) { + var root = firstIn(scope, '[data-aksrt-revenue-page]'); if (!root || root.dataset.affiliateBound) return; root.dataset.affiliateBound = '1'; var input = root.querySelector('[data-affiliate-link]'); @@ -149,9 +168,10 @@ // ===== VIP 积分兑换 ===== - function initVipPointsExchange() { - var root = document.querySelector('[data-aksrt-vip-points]'); - if (!root) return; + function initVipPointsExchange(scope) { + var root = firstIn(scope, '[data-aksrt-vip-points]'); + if (!root || root.dataset.aksrtVipPointsBound === '1') return; + root.dataset.aksrtVipPointsBound = '1'; var tip = root.querySelector('[data-aksrt-vip-points-tip]'); var busy = false; var coordinator = window.AksrtVipPurchaseCoordinator; @@ -191,9 +211,10 @@ } // ===== VIP 开通 ===== - function initVipShop() { - var root = document.querySelector('[data-aksrt-vip-shop]'); - if (!root) return; + function initVipShop(scope) { + var root = firstIn(scope, '[data-aksrt-vip-shop]'); + if (!root || root.dataset.aksrtVipShopBound === '1') return; + root.dataset.aksrtVipShopBound = '1'; var tip = root.querySelector('[data-aksrt-vip-tip]'); var busy = false; var coordinator = window.AksrtVipPurchaseCoordinator; @@ -265,11 +286,13 @@ } // ===== 卡密兑换(余额 / 会员) ===== - function initCardPass() { - var roots = document.querySelectorAll('[data-aksrt-card-pass]'); + function initCardPass(scope) { + var roots = elementsIn(scope, '[data-aksrt-card-pass]'); if (!roots || !roots.length) return; Array.prototype.forEach.call(roots, function (root) { + if (root.dataset.aksrtCardPassBound === '1') return; + root.dataset.aksrtCardPassBound = '1'; var tip = root.querySelector('[data-aksrt-card-tip]'); var busy = false; resetOperationKeyOnChange(root); @@ -380,8 +403,8 @@ return handle; } - function initBalanceCharge() { - var modal = document.querySelector('[data-aksrt-charge-modal]'); + function initBalanceCharge(scope) { + var modal = firstIn(scope, '[data-aksrt-charge-modal]'); if (!modal || modal.dataset.aksrtChargeInitialized === '1') return; modal.dataset.aksrtChargeInitialized = '1'; var form = modal.querySelector('[data-aksrt-charge-form]'); @@ -458,8 +481,8 @@ }); } - function initTransfer() { - var modal = document.querySelector('[data-aksrt-transfer-modal]'); + function initTransfer(scope) { + var modal = firstIn(scope, '[data-aksrt-transfer-modal]'); if (!modal || modal.dataset.aksrtTransferInitialized === '1') return; modal.dataset.aksrtTransferInitialized = '1'; var form = modal.querySelector('[data-aksrt-transfer-form]'); @@ -590,8 +613,8 @@ }); } - function initPointsExchange() { - var modal = document.querySelector('[data-aksrt-points-exchange-modal]'); + function initPointsExchange(scope) { + var modal = firstIn(scope, '[data-aksrt-points-exchange-modal]'); if (!modal || modal.dataset.aksrtPointsExchangeInitialized === '1') return; modal.dataset.aksrtPointsExchangeInitialized = '1'; var form = modal.querySelector('[data-aksrt-points-exchange-form]'); @@ -650,8 +673,8 @@ }); } - function initWithdraw() { - var modal = document.querySelector('[data-aksrt-withdraw-modal]'); + function initWithdraw(scope) { + var modal = firstIn(scope, '[data-aksrt-withdraw-modal]'); if (!modal || modal.dataset.aksrtWithdrawInitialized === '1') return; modal.dataset.aksrtWithdrawInitialized = '1'; var form = modal.querySelector('[data-aksrt-withdraw-form]'); @@ -735,27 +758,28 @@ }); } - function initAssetTabs() { - var nav = document.querySelectorAll('[data-aksrt-asset-tab]'); + function initAssetTabs(root) { + var nav = elementsIn(root, '[data-aksrt-asset-tab]'); if (!nav.length) return; + var scope = root || document; nav.forEach(function (link) { if (link.dataset.aksrtAssetTabBound === 'true') return; link.dataset.aksrtAssetTabBound = 'true'; link.addEventListener('click', function (e) { e.preventDefault(); var key = link.getAttribute('data-aksrt-asset-tab'); - document.querySelectorAll('.uc-asset-tabs__nav [data-aksrt-asset-tab]').forEach(function (a) { + elementsIn(scope, '[data-aksrt-asset-tab]').forEach(function (a) { var li = a.closest('li'); if (!li) return; var aKey = a.getAttribute('data-aksrt-asset-tab'); var on = aKey === key || (key === 'points_date' && aKey === 'points_free'); li.classList.toggle('active', on); }); - var tabs = document.querySelector('.uc-asset-tabs'); + var tabs = firstIn(scope, '.uc-asset-tabs'); if (tabs && typeof tabs.scrollIntoView === 'function') { tabs.scrollIntoView({ behavior: 'smooth', block: 'start' }); } - document.querySelectorAll('[data-aksrt-asset-pane]').forEach(function (pane) { + elementsIn(scope, '[data-aksrt-asset-pane]').forEach(function (pane) { var on = pane.getAttribute('data-aksrt-asset-pane') === key; pane.classList.toggle('is-active', on); pane.hidden = !on; @@ -765,8 +789,8 @@ } - function initWithdrawHistory() { - var modal = document.querySelector('[data-aksrt-withdraw-history-modal]'); + function initWithdrawHistory(scope) { + var modal = firstIn(scope, '[data-aksrt-withdraw-history-modal]'); if (!modal || modal.dataset.aksrtWithdrawHistoryInitialized === '1') return; modal.dataset.aksrtWithdrawHistoryInitialized = '1'; function open() { modal.hidden = false; document.body.classList.add('uc-modal-open'); } @@ -785,36 +809,25 @@ refresh: refreshAssetBalances }; - function bootAssets() { - refreshAssetBalances(); - initSigninGoto(); - initAffiliateRevenue(); - initVipShop(); - initVipPointsExchange(); - initCardPass(); - initBalanceCharge(); - initTransfer(); - initPointsExchange(); - initWithdraw(); - initWithdrawHistory(); - initAssetTabs(); - } - - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', bootAssets); - } else { - bootAssets(); + function bootAssets(root, reason) { + if (!balancesRefreshed && reason === 'init') { + balancesRefreshed = true; + refreshAssetBalances(); + } + initSigninGoto(root); + initAffiliateRevenue(root); + initVipShop(root); + initVipPointsExchange(root); + initCardPass(root); + initBalanceCharge(root); + initTransfer(root); + initPointsExchange(root); + initWithdraw(root); + initWithdrawHistory(root); + initAssetTabs(root); } if (window.AksrtFrontend && typeof window.AksrtFrontend.register === 'function') { - window.AksrtFrontend.register('credits', function () { - initSigninGoto(); - initBalanceCharge(); - initTransfer(); - initPointsExchange(); - initWithdraw(); - initWithdrawHistory(); - initAssetTabs(); - }); + window.AksrtFrontend.register('credits', bootAssets); } })(); diff --git a/assets/js/docs-navigation.js b/assets/js/docs-navigation.js index 2181fc44..c5e50254 100644 --- a/assets/js/docs-navigation.js +++ b/assets/js/docs-navigation.js @@ -18,9 +18,12 @@ searchInput: null, items: [], - init: function () { - this.sidebar = document.querySelector('.aksrt-doc-sidebar'); - if (!this.sidebar) return; + init: function (root) { + root = root || document; + this.sidebar = root.nodeType === 1 && root.matches('.aksrt-doc-sidebar') + ? root : root.querySelector('.aksrt-doc-sidebar'); + if (!this.sidebar || this.sidebar.dataset.aksrtDocsNavBound === '1') return; + this.sidebar.dataset.aksrtDocsNavBound = '1'; this.items = Array.from(this.sidebar.querySelectorAll('.aksrt-doc-sidebar__item')); this.searchInput = this.sidebar.querySelector('.aksrt-doc-sidebar__search-input'); @@ -129,9 +132,7 @@ }, }; - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', function () { DocsNav.init(); }); - } else { - DocsNav.init(); - } + window.AksrtFrontend.register('aksrt-docs-navigation', function (root) { + DocsNav.init(root); + }); })(); diff --git a/assets/js/download-status.js b/assets/js/download-status.js index 6041969f..eb807ec3 100644 --- a/assets/js/download-status.js +++ b/assets/js/download-status.js @@ -13,7 +13,8 @@ 'use strict'; var DownloadStatus = { - init: function () { + init: function (root) { + this.root = root || document; this.initFilterHighlight(); this.initCardHover(); }, @@ -22,10 +23,13 @@ * Animate filter button active state */ initFilterHighlight: function () { - var filters = document.querySelectorAll('.aksrt-download-hero__filter'); + var filters = this.root.nodeType === 1 && this.root.matches('.aksrt-download-hero__filter') + ? [this.root] : this.root.querySelectorAll('.aksrt-download-hero__filter'); if (filters.length === 0) return; filters.forEach(function (btn) { + if (btn.dataset.aksrtDownloadHoverBound === '1') return; + btn.dataset.aksrtDownloadHoverBound = '1'; btn.addEventListener('mouseenter', function () { btn.style.transform = 'translateY(-1px)'; }); @@ -39,10 +43,13 @@ * Card hover depth effect */ initCardHover: function () { - var cards = document.querySelectorAll('.aksrt-download-card'); + var cards = this.root.nodeType === 1 && this.root.matches('.aksrt-download-card') + ? [this.root] : this.root.querySelectorAll('.aksrt-download-card'); if (cards.length === 0) return; cards.forEach(function (card) { + if (card.dataset.aksrtDownloadHoverBound === '1') return; + card.dataset.aksrtDownloadHoverBound = '1'; card.addEventListener('mouseenter', function () { card.style.transform = 'translateY(-2px)'; }); @@ -53,9 +60,7 @@ }, }; - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', function () { DownloadStatus.init(); }); - } else { - DownloadStatus.init(); - } + window.AksrtFrontend.register('aksrt-download-status', function (root) { + DownloadStatus.init(root); + }); })(); diff --git a/assets/js/effects.js b/assets/js/effects.js index 7f0bc497..76101cd8 100644 --- a/assets/js/effects.js +++ b/assets/js/effects.js @@ -10,108 +10,101 @@ 'use strict'; var reducedMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches; + var countUpObserver = null; + var countdownElements = []; + var countdownTimer = null; + var fpsDetectionStarted = false; - /* ============================================================ - * 1. 数字递增 (count-up) — IntersectionObserver 触发 - * 用法:0 - * ============================================================ */ - function initCountUp() { - if (reducedMotion) return; - if (!('IntersectionObserver' in window)) return; + function scopeFor(root) { + return root && root.querySelectorAll ? root : document; + } - var els = document.querySelectorAll('[data-aksrt-countup]'); - if (!els.length) return; + function eachMatch(root, selector, callback) { + var scope = scopeFor(root); + if (scope.nodeType === 1 && scope.matches(selector)) callback(scope); + scope.querySelectorAll(selector).forEach(callback); + } - var observer = new IntersectionObserver(function (entries) { - entries.forEach(function (entry) { - if (!entry.isIntersecting) return; - var el = entry.target; - observer.unobserve(el); + function animateCountUp(el) { + if (el.dataset.aksrtCountupBound === '1') return; + el.dataset.aksrtCountupBound = '1'; + countUpObserver.observe(el); + } - var target = parseFloat(el.dataset.target || '0'); - var duration = parseInt(el.dataset.duration || '2000', 10); - var decimals = (el.dataset.decimals || '0|').split('|'); - var prefix = decimals[1] || ''; - var dec = parseInt(decimals[0], 10) || 0; - var start = 0; - var startTime = null; + function initCountUp(root) { + if (reducedMotion || !('IntersectionObserver' in window)) return; + if (!countUpObserver) { + countUpObserver = new IntersectionObserver(function (entries) { + entries.forEach(function (entry) { + if (!entry.isIntersecting) return; + var el = entry.target; + countUpObserver.unobserve(el); + var target = parseFloat(el.dataset.target || '0'); + var duration = parseInt(el.dataset.duration || '2000', 10); + var decimals = (el.dataset.decimals || '0|').split('|'); + var prefix = decimals[1] || ''; + var dec = parseInt(decimals[0], 10) || 0; + var startTime = null; - function step(timestamp) { - if (!startTime) startTime = timestamp; - var progress = Math.min((timestamp - startTime) / duration, 1); - // ease-out cubic - var eased = 1 - Math.pow(1 - progress, 3); - var current = start + (target - start) * eased; - el.textContent = prefix + current.toFixed(dec).replace(/\B(?=(\d{3})+(?!\d))/g, ','); - if (progress < 1) { - requestAnimationFrame(step); - } else { - el.textContent = prefix + target.toFixed(dec).replace(/\B(?=(\d{3})+(?!\d))/g, ','); + function step(timestamp) { + if (!startTime) startTime = timestamp; + var progress = Math.min((timestamp - startTime) / duration, 1); + var current = target * (1 - Math.pow(1 - progress, 3)); + el.textContent = prefix + current.toFixed(dec).replace(/\B(?=(\d{3})+(?!\d))/g, ','); + if (progress < 1) requestAnimationFrame(step); + else el.textContent = prefix + target.toFixed(dec).replace(/\B(?=(\d{3})+(?!\d))/g, ','); } - } - requestAnimationFrame(step); - }); - }, { threshold: 0.3 }); - - els.forEach(function (el) { observer.observe(el); }); - } - - /* ============================================================ - * 2. 倒计时组件 - * 用法:--:--:-- - * ============================================================ */ - function initCountdown() { - var els = document.querySelectorAll('[data-aksrt-countdown]'); - if (!els.length) return; - - function pad(n) { return n < 10 ? '0' + n : '' + n; } - - function update() { - var now = Date.now(); - els.forEach(function (el) { - var end = new Date(el.dataset.end).getTime(); - var diff = end - now; - if (diff <= 0) { - el.textContent = el.dataset.expired || '已结束'; - return; - } - var d = Math.floor(diff / 86400000); - var h = Math.floor((diff % 86400000) / 3600000); - var m = Math.floor((diff % 3600000) / 60000); - var s = Math.floor((diff % 60000) / 1000); - var format = el.dataset.format || 'dhms'; - if (format === 'dhms') { - el.textContent = (d > 0 ? d + '天 ' : '') + pad(h) + ':' + pad(m) + ':' + pad(s); - } else if (format === 'hms') { - el.textContent = pad(h + d * 24) + ':' + pad(m) + ':' + pad(s); - } else { - el.textContent = (d > 0 ? d + '天 ' : '') + pad(h) + '时' + pad(m) + '分' + pad(s) + '秒'; - } - }); + requestAnimationFrame(step); + }); + }, { threshold: 0.3 }); } - - update(); - setInterval(update, 1000); + eachMatch(root, '[data-aksrt-countup]', animateCountUp); } - /* ============================================================ - * 4. 3D 悬停倾斜 (vanilla tilt) - * 用法:
    ...
    - * ============================================================ */ - function initTilt() { - if (reducedMotion) return; + function pad(n) { return n < 10 ? '0' + n : '' + n; } - document.querySelectorAll('[data-aksrt-tilt]').forEach(function (el) { + function updateCountdowns() { + var now = Date.now(); + countdownElements = countdownElements.filter(function (el) { return document.documentElement.contains(el); }); + countdownElements.forEach(function (el) { + var end = new Date(el.dataset.end).getTime(); + var diff = end - now; + if (diff <= 0) { + el.textContent = el.dataset.expired || '已结束'; + return; + } + var d = Math.floor(diff / 86400000); + var h = Math.floor((diff % 86400000) / 3600000); + var m = Math.floor((diff % 3600000) / 60000); + var s = Math.floor((diff % 60000) / 1000); + var format = el.dataset.format || 'dhms'; + if (format === 'dhms') el.textContent = (d > 0 ? d + '天 ' : '') + pad(h) + ':' + pad(m) + ':' + pad(s); + else if (format === 'hms') el.textContent = pad(h + d * 24) + ':' + pad(m) + ':' + pad(s); + else el.textContent = (d > 0 ? d + '天 ' : '') + pad(h) + '时' + pad(m) + '分' + pad(s) + '秒'; + }); + } + + function initCountdown(root) { + eachMatch(root, '[data-aksrt-countdown]', function (el) { + if (el.dataset.aksrtCountdownBound === '1') return; + el.dataset.aksrtCountdownBound = '1'; + countdownElements.push(el); + }); + updateCountdowns(); + if (!countdownTimer && countdownElements.length) countdownTimer = window.setInterval(updateCountdowns, 1000); + } + + function initTilt(root) { + if (reducedMotion) return; + eachMatch(root, '[data-aksrt-tilt]', function (el) { if (el.dataset.tiltBound) return; el.dataset.tiltBound = '1'; - var maxDeg = parseFloat(el.dataset.tiltMax || '10'); var perspective = parseFloat(el.dataset.tiltPerspective || '800'); var scale = parseFloat(el.dataset.tiltScale || '1.03'); var glare = el.dataset.tiltGlare === '1'; var glareEl = null; - if (glare) { glareEl = document.createElement('div'); glareEl.style.cssText = 'position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,0) 0%,rgba(255,255,255,0.25) 100%);opacity:0;transition:opacity 0.2s;'; @@ -119,17 +112,13 @@ el.style.overflow = 'hidden'; el.appendChild(glareEl); } - el.addEventListener('mousemove', function (e) { var rect = el.getBoundingClientRect(); var x = (e.clientX - rect.left) / rect.width; var y = (e.clientY - rect.top) / rect.height; - var rotateX = (0.5 - y) * maxDeg; - var rotateY = (x - 0.5) * maxDeg; - el.style.transform = 'perspective(' + perspective + 'px) rotateX(' + rotateX + 'deg) rotateY(' + rotateY + 'deg) scale3d(' + scale + ',' + scale + ',' + scale + ')'; + el.style.transform = 'perspective(' + perspective + 'px) rotateX(' + ((0.5 - y) * maxDeg) + 'deg) rotateY(' + ((x - 0.5) * maxDeg) + 'deg) scale3d(' + scale + ',' + scale + ',' + scale + ')'; if (glareEl) glareEl.style.opacity = '1'; }); - el.addEventListener('mouseleave', function () { el.style.transform = 'perspective(' + perspective + 'px) rotateX(0deg) rotateY(0deg) scale3d(1,1,1)'; if (glareEl) glareEl.style.opacity = '0'; @@ -137,42 +126,30 @@ }); } - /* ============================================================ - * 5. FPS 检测 + 低端设备降级 - * ============================================================ */ - function initFpsDetection() { - if (!('requestAnimationFrame' in window)) return; - + function initFpsDetection(root, reason) { + if (fpsDetectionStarted || !('requestAnimationFrame' in window)) return; + fpsDetectionStarted = true; var frames = 0; var startTime = performance.now(); - function countFrames() { frames++; var elapsed = performance.now() - startTime; if (elapsed >= 1000) { - var fps = Math.round(frames * 1000 / elapsed); - if (fps < 24) { - document.body.classList.add('fps-accelerat'); - } - return; // 只检测一次 + if (Math.round(frames * 1000 / elapsed) < 24 && document.body) document.body.classList.add('fps-accelerat'); + return; } requestAnimationFrame(countFrames); } - requestAnimationFrame(countFrames); } - /* ============================================================ - * 初始化入口 - * ============================================================ */ - document.addEventListener('DOMContentLoaded', function () { - initCountUp(); - initCountdown(); - if (typeof initMarquee === 'function') { - initMarquee(); - } - initTilt(); - initFpsDetection(); - }); + function init(root, reason) { + initCountUp(root); + initCountdown(root); + if (typeof initMarquee === 'function') initMarquee(root, reason); + initTilt(root); + initFpsDetection(root, reason); + } + window.AksrtFrontend.register('aksrt-effects', init); })(); diff --git a/assets/js/enhancements.js b/assets/js/enhancements.js index 8d3bcb77..617e5389 100644 --- a/assets/js/enhancements.js +++ b/assets/js/enhancements.js @@ -21,6 +21,8 @@ var isAutoplay = false; var lastTrigger = null; var previousBodyOverflow = ''; + var globalsBound = false; + var scrollDirectionBound = false; var EXCLUDE_SEL = '.no-imgbox,.no-lightbox,.avatar,.img-icon,.avatar-badge,.aksrt-avatar,[data-no-lightbox],[data-aksrt-lightbox="0"]'; var TRIGGER_SEL = '[data-aksrt-lightbox="1"] img,.aksrt-lightbox-trigger img,.imgbox-container img,.comment-content .box-img'; var ANCHOR_TRIGGER_SEL = 'a[data-aksrt-lightbox-trigger]'; @@ -496,7 +498,9 @@ return openLightbox(item.fullSrc, item.caption, gallery.items, gallery.index, img); } - function initLightbox() { + function initLightbox(root, reason) { + if (globalsBound) return; + globalsBound = true; document.addEventListener('click', function (event) { if (!lightboxEnabled() || !(event.target instanceof Element)) return; @@ -527,7 +531,9 @@ // Scroll direction is handled by aksrt-runtime.js. Keep the prefixed // classes in sync for the remaining CSS consumers. - function initScrollDirection() { + function initScrollDirection(root, reason) { + if (scrollDirectionBound || !document.body) return; + scrollDirectionBound = true; var body = document.body; function sync() { @@ -547,8 +553,8 @@ }, { passive: true }); } - document.addEventListener('DOMContentLoaded', function () { - initLightbox(); - initScrollDirection(); + window.AksrtFrontend.register('aksrt-enhancements', function (root, reason) { + initLightbox(root, reason); + initScrollDirection(root, reason); }); })(); diff --git a/assets/js/enhancements2.js b/assets/js/enhancements2.js index 5bad8c27..21b2b662 100644 --- a/assets/js/enhancements2.js +++ b/assets/js/enhancements2.js @@ -9,11 +9,27 @@ (function () { 'use strict'; - /* ============================================================ - * 1. 3D 悬停倾斜效果 (vanilla-tilt 轻量版) - * ============================================================ */ - function initTilt() { - document.querySelectorAll('[data-aksrt-tilt]').forEach(function (el) { + var animateObserver = null; + var rippleBound = false; + var stickyScrollBound = false; + var parallaxScrollBound = false; + var modalBound = false; + var stickyElements = []; + var parallaxElements = []; + var parallaxTicking = false; + + function scopeFor(root) { + return root && root.querySelectorAll ? root : document; + } + + function eachMatch(root, selector, callback) { + var scope = scopeFor(root); + if (scope.nodeType === 1 && scope.matches(selector)) callback(scope); + scope.querySelectorAll(selector).forEach(callback); + } + + function initTilt(root) { + eachMatch(root, '[data-aksrt-tilt]', function (el) { if (el.dataset.tiltInit) return; el.dataset.tiltInit = '1'; @@ -58,230 +74,184 @@ }); } - /* ============================================================ - * 2. 滚动触发动画 (IntersectionObserver) - * ============================================================ */ - function initScrollAnimations() { + function prepareAnimation(el) { + if (el.dataset.aksrtAnimateBound === '1') return; + el.dataset.aksrtAnimateBound = '1'; + var animation = el.dataset.aksrtAnimate || 'fadeInUp'; + el.style.opacity = '0'; + switch (animation) { + case 'fadeIn': el.style.transform = 'none'; break; + case 'fadeInUp': el.style.transform = 'translateY(30px)'; break; + case 'fadeInDown': el.style.transform = 'translateY(-30px)'; break; + case 'fadeInLeft': el.style.transform = 'translateX(-30px)'; break; + case 'fadeInRight': el.style.transform = 'translateX(30px)'; break; + case 'zoomIn': el.style.transform = 'scale(0.9)'; break; + default: el.style.transform = 'translateY(30px)'; + } + animateObserver.observe(el); + } + + function initScrollAnimations(root) { if (!('IntersectionObserver' in window)) { - // 不支持时直接显示所有元素 - document.querySelectorAll('[data-aksrt-animate]').forEach(function (el) { + eachMatch(root, '[data-aksrt-animate]', function (el) { el.style.opacity = '1'; el.style.transform = 'none'; }); return; } - var observer = new IntersectionObserver(function (entries) { - entries.forEach(function (entry) { - if (!entry.isIntersecting) return; - - var el = entry.target; - var animation = el.dataset.aksrtAnimate || 'fadeInUp'; - var delay = parseInt(el.dataset.aksrtAnimateDelay || '0', 10); - var duration = parseInt(el.dataset.aksrtAnimateDuration || '600', 10); - - setTimeout(function () { - el.style.transition = 'opacity ' + duration + 'ms ease, transform ' + duration + 'ms ease'; - el.style.opacity = '1'; - el.style.transform = 'translateY(0) translateX(0) scale(1)'; - el.classList.add('aksrt-animated'); - }, delay); - - observer.unobserve(el); - }); - }, { - threshold: 0.1, - rootMargin: '0px 0px -50px 0px', - }); - - document.querySelectorAll('[data-aksrt-animate]').forEach(function (el) { - var animation = el.dataset.aksrtAnimate || 'fadeInUp'; - - // 设置初始状态 - el.style.opacity = '0'; - switch (animation) { - case 'fadeIn': - el.style.transform = 'none'; - break; - case 'fadeInUp': - el.style.transform = 'translateY(30px)'; - break; - case 'fadeInDown': - el.style.transform = 'translateY(-30px)'; - break; - case 'fadeInLeft': - el.style.transform = 'translateX(-30px)'; - break; - case 'fadeInRight': - el.style.transform = 'translateX(30px)'; - break; - case 'zoomIn': - el.style.transform = 'scale(0.9)'; - break; - default: - el.style.transform = 'translateY(30px)'; - } - - observer.observe(el); - }); - } - - /* ============================================================ - * 5. 粘性元素 (Sticky) - * ============================================================ */ - function initSticky() { - document.querySelectorAll('[data-aksrt-sticky]').forEach(function (el) { - var top = parseInt(el.dataset.aksrtStickyTop || '80', 10); - var offset = parseInt(el.dataset.aksrtStickyOffset || '0', 10); - - function update() { - var rect = el.getBoundingClientRect(); - var parentRect = el.parentElement.getBoundingClientRect(); - - if (parentRect.top < top && parentRect.bottom > el.offsetHeight + top) { - el.style.position = 'sticky'; - el.style.top = top + 'px'; - } - } - - window.addEventListener('scroll', update, { passive: true }); - }); - } - - /* ============================================================ - * 6. 视差滚动 - * ============================================================ */ - function initParallax() { - var elements = document.querySelectorAll('[data-aksrt-parallax]'); - if (elements.length === 0) return; - - var ticking = false; - - function update() { - var scrollTop = window.pageYOffset; - elements.forEach(function (el) { - var speed = parseFloat(el.dataset.aksrtParallax || '0.3'); - var rect = el.getBoundingClientRect(); - var center = rect.top + rect.height / 2; - var windowCenter = window.innerHeight / 2; - var offset = (center - windowCenter) * speed; - - el.style.transform = 'translateY(' + offset + 'px)'; - }); - ticking = false; + if (!animateObserver) { + animateObserver = new IntersectionObserver(function (entries) { + entries.forEach(function (entry) { + if (!entry.isIntersecting) return; + var el = entry.target; + var delay = parseInt(el.dataset.aksrtAnimateDelay || '0', 10); + var duration = parseInt(el.dataset.aksrtAnimateDuration || '600', 10); + animateObserver.unobserve(el); + window.setTimeout(function () { + el.style.transition = 'opacity ' + duration + 'ms ease, transform ' + duration + 'ms ease'; + el.style.opacity = '1'; + el.style.transform = 'translateY(0) translateX(0) scale(1)'; + el.classList.add('aksrt-animated'); + }, delay); + }); + }, { threshold: 0.1, rootMargin: '0px 0px -50px 0px' }); } - window.addEventListener('scroll', function () { - if (!ticking) { - requestAnimationFrame(update); - ticking = true; - } - }, { passive: true }); + eachMatch(root, '[data-aksrt-animate]', prepareAnimation); } - /* ============================================================ - * 7. 涟漪点击效果 - * ============================================================ */ - function initRipple() { + function updateSticky() { + stickyElements = stickyElements.filter(function (el) { return document.documentElement.contains(el); }); + stickyElements.forEach(function (el) { + var top = parseInt(el.dataset.aksrtStickyTop || '80', 10); + var parent = el.parentElement; + if (!parent) return; + var parentRect = parent.getBoundingClientRect(); + if (parentRect.top < top && parentRect.bottom > el.offsetHeight + top) { + el.style.position = 'sticky'; + el.style.top = top + 'px'; + } + }); + } + + function initSticky(root) { + eachMatch(root, '[data-aksrt-sticky]', function (el) { + if (el.dataset.aksrtStickyBound === '1') return; + el.dataset.aksrtStickyBound = '1'; + stickyElements.push(el); + }); + if (!stickyScrollBound) { + stickyScrollBound = true; + window.addEventListener('scroll', updateSticky, { passive: true }); + } + updateSticky(); + } + + function updateParallax() { + parallaxElements = parallaxElements.filter(function (el) { return document.documentElement.contains(el); }); + parallaxElements.forEach(function (el) { + var speed = parseFloat(el.dataset.aksrtParallax || '0.3'); + var rect = el.getBoundingClientRect(); + var center = rect.top + rect.height / 2; + var offset = (center - window.innerHeight / 2) * speed; + el.style.transform = 'translateY(' + offset + 'px)'; + }); + parallaxTicking = false; + } + + function initParallax(root) { + eachMatch(root, '[data-aksrt-parallax]', function (el) { + if (el.dataset.aksrtParallaxBound === '1') return; + el.dataset.aksrtParallaxBound = '1'; + parallaxElements.push(el); + }); + if (!parallaxScrollBound) { + parallaxScrollBound = true; + window.addEventListener('scroll', function () { + if (parallaxTicking) return; + parallaxTicking = true; + requestAnimationFrame(updateParallax); + }, { passive: true }); + } + updateParallax(); + } + + function initRipple(root, reason) { + if (rippleBound) return; + rippleBound = true; document.addEventListener('click', function (e) { var el = e.target.closest('.aksrt-ripple'); if (!el) return; - var rect = el.getBoundingClientRect(); - var x = e.clientX - rect.left; - var y = e.clientY - rect.top; var size = Math.max(rect.width, rect.height) * 2; - var wave = document.createElement('span'); wave.className = 'aksrt-ripple__wave'; wave.style.width = wave.style.height = size + 'px'; - wave.style.left = (x - size / 2) + 'px'; - wave.style.top = (y - size / 2) + 'px'; - + wave.style.left = (e.clientX - rect.left - size / 2) + 'px'; + wave.style.top = (e.clientY - rect.top - size / 2) + 'px'; el.appendChild(wave); - - wave.addEventListener('animationend', function () { - wave.remove(); - }); + wave.addEventListener('animationend', function () { wave.remove(); }); }); } - /* ============================================================ - * 8. 表单浮动标签自动初始化 - * ============================================================ */ - function initFloatLabels() { - document.querySelectorAll('.aksrt-float-label__input').forEach(function (input) { - // 检查初始值 - if (input.value) { - input.setAttribute('data-has-value', '1'); - } + function initFloatLabels(root) { + eachMatch(root, '.aksrt-float-label__input', function (input) { + if (input.value) input.setAttribute('data-has-value', '1'); + if (input.dataset.aksrtFloatLabelBound === '1') return; + input.dataset.aksrtFloatLabelBound = '1'; input.addEventListener('input', function () { - if (this.value) { - this.setAttribute('data-has-value', '1'); - } else { - this.removeAttribute('data-has-value'); - } + if (this.value) this.setAttribute('data-has-value', '1'); + else this.removeAttribute('data-has-value'); }); }); } - /* ============================================================ - * 8. 签到日历可视化 - * ============================================================ */ - function initSigninCalendar() { - var calendar = document.querySelector('[data-aksrt-signin-calendar]'); - if (!calendar) return; - - var data = []; - try { - data = JSON.parse(calendar.dataset.aksrtSigninCalendar || '[]'); - } catch (e) {} - - // 生成最近 30 天的格子 - var today = new Date(); - var html = ''; - calendar.innerHTML = html; + function initSigninCalendar(root) { + eachMatch(root, '[data-aksrt-signin-calendar]', function (calendar) { + if (calendar.dataset.aksrtSigninCalendarBound === '1') return; + calendar.dataset.aksrtSigninCalendarBound = '1'; + var data = []; + try { data = JSON.parse(calendar.dataset.aksrtSigninCalendar || '[]'); } catch (e) {} + var today = new Date(); + var html = ''; + }); } - /* ============================================================ - * 初始化入口 - * ============================================================ */ - document.addEventListener('DOMContentLoaded', function () { - initTilt(); - initScrollAnimations(); - initRipple(); - initSticky(); - initParallax(); - initFloatLabels(); - initSigninCalendar(); - document.addEventListener('aksrt:modal:open', function () { - // Remote modal may inject calendar markup after open. - window.setTimeout(initSigninCalendar, 30); + function bindModalLifecycle() { + if (modalBound) return; + modalBound = true; + document.addEventListener('aksrt:modal:open', function (event) { + var root = event.target && event.target.querySelectorAll ? event.target : document; + window.setTimeout(function () { initSigninCalendar(root); }, 30); }); - }); + } + + function init(root, reason) { + initTilt(root); + initScrollAnimations(root); + initRipple(root, reason); + initSticky(root); + initParallax(root); + initFloatLabels(root); + initSigninCalendar(root); + bindModalLifecycle(); + } + + window.AksrtFrontend.register('aksrt-enhancements-advanced', init); - // 暴露到全局供动态内容使用 window.AksrtEnhancements = { initTilt: initTilt, initScrollAnimations: initScrollAnimations, initRipple: initRipple, }; - })(); diff --git a/assets/js/follow.js b/assets/js/follow.js index fd3fd007..199adb1c 100644 --- a/assets/js/follow.js +++ b/assets/js/follow.js @@ -44,7 +44,11 @@ } } - function initFollowButtons() { + var globalsBound = false; + + function initFollowButtons(root, reason) { + if (globalsBound) return; + globalsBound = true; document.addEventListener('click', function (event) { var button = event.target.closest('[data-aksrt-follow]'); if (!button) return; @@ -92,9 +96,5 @@ }); } - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', initFollowButtons); - } else { - initFollowButtons(); - } + window.AksrtFrontend.register('aksrt-follow', initFollowButtons); })(); diff --git a/assets/js/front-submit.js b/assets/js/front-submit.js index e1e4c198..6a24c857 100644 --- a/assets/js/front-submit.js +++ b/assets/js/front-submit.js @@ -80,11 +80,14 @@ isSubmitting: false, featured: { type: '', data: {} }, - init: function () { - this.form = document.getElementById('aksrt-submit-form'); - if (!this.form) { + init: function (root) { + this.root = root || document; + this.form = this.root.nodeType === 1 && this.root.matches('#aksrt-submit-form') + ? this.root : this.root.querySelector('#aksrt-submit-form'); + if (!this.form || this.form.dataset.aksrtFrontSubmitBound === '1') { return; } + this.form.dataset.aksrtFrontSubmitBound = '1'; this.bindDirty(); this.bindAutoHeight(); this.bindSubmitButtons(); @@ -311,6 +314,8 @@ }, bindDraftDelete: function () { + if (document.__aksrtFrontSubmitDraftDeleteBound) return; + document.__aksrtFrontSubmitDraftDeleteBound = true; document.addEventListener('click', function (e) { var btn = e.target.closest('.aksrt-submit-drafts__delete'); if (!btn) { @@ -645,11 +650,7 @@ }, }; - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', function () { - App.init(); - }); - } else { - App.init(); - } + window.AksrtFrontend.register('aksrt-front-submit', function (root) { + App.init(root); + }); })(); diff --git a/assets/js/homepage-fixed.js b/assets/js/homepage-fixed.js index 7ee53c2e..206a7131 100644 --- a/assets/js/homepage-fixed.js +++ b/assets/js/homepage-fixed.js @@ -424,6 +424,7 @@ var tablists = (scope || document).querySelectorAll('[data-aksrt-home-tabs]'); tablists.forEach(function (list, listIndex) { + if (list.dataset.aksrtHomeTabsBound === '1') return; var stream = list.closest('.aksrt-homepage__stream'); if (!stream) return; @@ -431,6 +432,7 @@ var panels = Array.from(stream.querySelectorAll('[data-home-tab-panel]')); if (buttons.length < 2 || !panels.length) return; + list.dataset.aksrtHomeTabsBound = '1'; function getPanel(button) { var target = button.getAttribute('data-home-tab-target'); @@ -539,12 +541,14 @@ * Sortbar Dropdown Toggle * ============================================================ */ - function initSortbarDropdown() { - document.querySelectorAll('[data-sort-dropdown-trigger]').forEach(function (trigger) { + function initSortbarDropdown(scope) { + (scope || document).querySelectorAll('[data-sort-dropdown-trigger]').forEach(function (trigger) { + if (trigger.dataset.aksrtSortDropdownBound === '1') return; var wrapper = trigger.closest('.aksrt-homepage__sortbar-dropdown'); if (!wrapper) return; var menu = wrapper.querySelector('.aksrt-homepage__sortbar-dropdown-menu'); if (!menu) return; + trigger.dataset.aksrtSortDropdownBound = '1'; function close() { menu.setAttribute('hidden', ''); @@ -599,10 +603,11 @@ * Sortbar AJAX * ============================================================ */ - function initSortbar() { - document.querySelectorAll('.aksrt-homepage__stream').forEach(function (stream) { + function initSortbar(scope) { + (scope || document).querySelectorAll('.aksrt-homepage__stream').forEach(function (stream) { var sortbar = stream.querySelector('.aksrt-homepage__sortbar'); - if (!sortbar || !isSortAjaxEnabled(sortbar)) return; + if (!sortbar || !isSortAjaxEnabled(sortbar) || sortbar.dataset.aksrtSortbarBound === '1') return; + sortbar.dataset.aksrtSortbarBound = '1'; sortbar.addEventListener('click', function (event) { var link = event.target.closest('.aksrt-homepage__sortbar-link, .aksrt-homepage__sortbar-dropdown-item'); @@ -649,10 +654,11 @@ return isNaN(offset) ? 60 : offset; } - function initStickyTabs() { + function initStickyTabs(scope) { if (!isStickyTabsEnabled()) return; - document.querySelectorAll('.aksrt-homepage__tabs.home-tab-nav-box').forEach(function (tabs) { + (scope || document).querySelectorAll('.aksrt-homepage__tabs.home-tab-nav-box').forEach(function (tabs) { + if (tabs.dataset.aksrtStickyTabsBound === '1') return; var parent = tabs.parentNode; var sentinel = tabs.previousElementSibling; var canUseSticky = supportsStickyPosition(); @@ -660,6 +666,7 @@ var observer = null; if (!parent || tabs.getAttribute('data-sticky-tabs') === 'false') return; + tabs.dataset.aksrtStickyTabsBound = '1'; if (!sentinel || !sentinel.classList.contains('aksrt-homepage__tabs-sentinel')) { sentinel = document.createElement('div'); @@ -718,16 +725,13 @@ * Init * ============================================================ */ - function init() { - initHomeTabs(); - initSortbarDropdown(); - initSortbar(); - initStickyTabs(); + function init(root) { + var scope = root || document; + initHomeTabs(scope); + initSortbarDropdown(scope); + initSortbar(scope); + initStickyTabs(scope); } - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', init); - } else { - init(); - } + window.AksrtFrontend.register('aksrt-homepage', init); })(); diff --git a/assets/js/input-expand.js b/assets/js/input-expand.js index 25f57c82..57daf988 100644 --- a/assets/js/input-expand.js +++ b/assets/js/input-expand.js @@ -37,9 +37,17 @@ // ── Auto-resize Textarea ── - function initAutoResize() { - var textareas = document.querySelectorAll('textarea[data-aksrt-autoresize]'); + function queryAll(root, selector) { + var nodes = Array.prototype.slice.call(root.querySelectorAll(selector)); + if (root.nodeType === 1 && root.matches(selector)) nodes.unshift(root); + return nodes; + } + + function initAutoResize(root) { + var textareas = queryAll(root, 'textarea[data-aksrt-autoresize]'); textareas.forEach(function (ta) { + if (ta.dataset.aksrtAutoresizeBound === '1') return; + ta.dataset.aksrtAutoresizeBound = '1'; function resize() { ta.style.height = 'auto'; ta.style.height = ta.scrollHeight + 'px'; @@ -52,9 +60,11 @@ // ── Character Counter ── - function initCounters() { - var fields = document.querySelectorAll('[data-aksrt-counter]'); + function initCounters(root) { + var fields = queryAll(root, '[data-aksrt-counter]'); fields.forEach(function (field) { + if (field.dataset.aksrtCounterBound === '1') return; + field.dataset.aksrtCounterBound = '1'; var max = parseInt(field.getAttribute('data-aksrt-maxlength') || field.getAttribute('maxlength') || '0', 10); var counter = document.createElement('span'); counter.className = 'aksrt-counter'; @@ -79,9 +89,11 @@ // ── Validation Feedback ── - function initValidation() { - var fields = document.querySelectorAll('[data-aksrt-validate]'); + function initValidation(root) { + var fields = queryAll(root, '[data-aksrt-validate]'); fields.forEach(function (field) { + if (field.dataset.aksrtValidateBound === '1') return; + field.dataset.aksrtValidateBound = '1'; var minLen = parseInt(field.getAttribute('data-aksrt-minlength') || field.getAttribute('minlength') || '0', 10); var maxLen = parseInt(field.getAttribute('data-aksrt-maxlength') || field.getAttribute('maxlength') || '0', 10); var required = field.hasAttribute('required'); @@ -115,16 +127,13 @@ // ── Main Init ── - function init() { + function init(root) { + root = root || document; injectStyle(); - initAutoResize(); - initCounters(); - initValidation(); + initAutoResize(root); + initCounters(root); + initValidation(root); } - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', init); - } else { - init(); - } + window.AksrtFrontend.register('aksrt-input-expand', init); })(); diff --git a/assets/js/loader.js b/assets/js/loader.js deleted file mode 100644 index ab02a3f8..00000000 --- a/assets/js/loader.js +++ /dev/null @@ -1,172 +0,0 @@ -/** - * AKSRT Page Loader - * - * Lightweight top progress bar for page transitions and AJAX requests. - * No external dependencies — pure vanilla JS. - * - * @package AKSRT - */ - -(function () { - 'use strict'; - - var STYLE_ID = 'aksrt-loader-style'; - var BAR_ID = 'aksrt-loader-bar'; - var CSS = - '#' + BAR_ID + '{' + - 'position:fixed;top:0;left:0;width:0;height:3px;z-index:99999;' + - 'background:linear-gradient(90deg,#1890ff,#36cfc9);' + - 'transition:width 0.3s ease,opacity 0.3s ease;' + - 'pointer-events:none;opacity:0;' + - '}' + - '#' + BAR_ID + '.is-active{opacity:1;}' + - '#' + BAR_ID + '.is-done{' + - 'width:100%!important;opacity:0;' + - '}'; - - var bar = null; - var timer = null; - var progress = 0; - - function injectStyle() { - if (document.getElementById(STYLE_ID)) return; - var style = document.createElement('style'); - style.id = STYLE_ID; - style.textContent = CSS; - document.head.appendChild(style); - } - - function createBar() { - if (bar) return; - bar = document.createElement('div'); - bar.id = BAR_ID; - document.body.appendChild(bar); - } - - function start() { - if (!bar) createBar(); - clearTimeout(timer); - bar.classList.remove('is-done'); - bar.classList.add('is-active'); - progress = 0; - bar.style.width = '0%'; - trickle(); - } - - function trickle() { - if (progress >= 90) return; - var increment = progress < 30 ? 8 : progress < 60 ? 4 : 2; - progress = Math.min(90, progress + increment * (0.8 + Math.random() * 0.4)); - bar.style.width = progress + '%'; - timer = setTimeout(trickle, 200 + Math.random() * 300); - } - - function done() { - if (!bar) return; - clearTimeout(timer); - bar.style.width = '100%'; - bar.classList.add('is-done'); - setTimeout(function () { - bar.classList.remove('is-active', 'is-done'); - bar.style.width = '0%'; - progress = 0; - }, 400); - } - - // Intercept link clicks for same-origin page transitions - function onLinkClick(e) { - if (e.defaultPrevented) return; - if (e.button !== 0) return; // left click only - if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return; - - var link = e.target.closest('a'); - if (!link || !link.href) return; - if (link.target === '_blank') return; - if (link.hasAttribute('download')) return; - if (link.href.indexOf('#') === 0) return; - - // Same-origin only - try { - var url = new URL(link.href); - if (url.origin !== window.location.origin) return; - if (url.protocol !== "http:" && url.protocol !== "https:") return; - if (url.pathname === window.location.pathname && url.search === window.location.search) return; - } catch (ex) { return; } - - start(); - } - - // Intercept form submissions - function onFormSubmit(e) { - var form = e.target; - if (!form || form.tagName !== 'FORM') return; - if (form.target === '_blank') return; - start(); - } - - // Hook into AJAX (fetch) if available - function hookFetch() { - if (!window.fetch) return; - var origFetch = window.fetch; - window.fetch = function () { - start(); - return origFetch.apply(this, arguments).then(function (response) { - done(); - return response; - }).catch(function (err) { - done(); - throw err; - }); - }; - } - - // Hook into XMLHttpRequest - function hookXHR() { - if (!window.XMLHttpRequest) return; - var origOpen = XMLHttpRequest.prototype.open; - var origSend = XMLHttpRequest.prototype.send; - - XMLHttpRequest.prototype.open = function () { - this._aksrtLoader = true; - return origOpen.apply(this, arguments); - }; - - XMLHttpRequest.prototype.send = function () { - if (this._aksrtLoader) { - start(); - var self = this; - this.addEventListener('loadend', function () { done(); }); - } - return origSend.apply(this, arguments); - }; - } - - function init() { - injectStyle(); - createBar(); - - document.addEventListener('click', onLinkClick, true); - document.addEventListener('submit', onFormSubmit, true); - - // Done on page load (handles bfcache) - window.addEventListener('pageshow', function (e) { - if (e.persisted) done(); - }); - window.addEventListener('load', done); - - hookFetch(); - hookXHR(); - } - - // Public API - window.AksrtLoader = { - start: start, - done: done - }; - - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', init); - } else { - init(); - } -})(); diff --git a/assets/js/main.js b/assets/js/main.js deleted file mode 100644 index 62545d24..00000000 --- a/assets/js/main.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * AKSRT Frontend Shell - * - * All init modules have been extracted to assets/js/core/*.js. - * This file remains as the enqueue anchor (handle: aksrt-script) that - * other scripts depend on, and provides the AksrtFrontend fallback - * for edge cases where rehydrate.js is not loaded first. - * - * @package AKSRT - * @since 5.0.0 - */ -(function () { - "use strict"; - - if (!window.AksrtFrontend) { - window.AksrtFrontend = { - register: function (name, fn) { - if (document.readyState === "loading") { - document.addEventListener("DOMContentLoaded", function () { fn(document, "init"); }); - } else { - fn(document, "init"); - } - }, - rehydrate: function () {} - }; - } -})(); diff --git a/assets/js/messages.js b/assets/js/messages.js index cb5d9889..04443acf 100644 --- a/assets/js/messages.js +++ b/assets/js/messages.js @@ -6,8 +6,11 @@ (function () { 'use strict'; - var root = document.querySelector('[data-message-center]'); - if (!root) return; + function init(scope) { + scope = scope || document; + var root = scope.nodeType === 1 && scope.matches('[data-message-center]') ? scope : scope.querySelector('[data-message-center]'); + if (!root || root.dataset.aksrtMessagesBound === '1') return; + root.dataset.aksrtMessagesBound = '1'; var nonce = typeof aksrtData !== 'undefined' ? aksrtData.nonce : ''; var ajaxUrl = typeof aksrtData !== 'undefined' ? aksrtData.ajaxUrl : '/wp-admin/admin-ajax.php'; @@ -225,4 +228,7 @@ if (result.success && result.data) updateHeaderBadge(result.data.unread); }).catch(function () {}); }, pollInterval); + } + + window.AksrtFrontend.register('aksrt-messages', init); })(); diff --git a/assets/js/mini-upload.js b/assets/js/mini-upload.js index 86906044..6c1b63f1 100644 --- a/assets/js/mini-upload.js +++ b/assets/js/mini-upload.js @@ -307,8 +307,11 @@ }; // 自动初始化 - function autoInit() { - document.querySelectorAll('[data-aksrt-mini-upload]').forEach(function (el) { + function autoInit(root) { + var containers = []; + if (root && root.nodeType === 1 && root.matches('[data-aksrt-mini-upload]')) containers.push(root); + Array.prototype.push.apply(containers, (root || document).querySelectorAll('[data-aksrt-mini-upload]')); + containers.forEach(function (el) { if (el.dataset.miniUploadInit) return; el.dataset.miniUploadInit = '1'; @@ -321,11 +324,7 @@ }); } - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', autoInit); - } else { - autoInit(); - } + window.AksrtFrontend.register('aksrt-mini-upload', autoInit); // 暴露到全局 window.AksrtMiniUpload = MiniUpload; diff --git a/assets/js/order-center.js b/assets/js/order-center.js index 9084a5d6..76add5be 100644 --- a/assets/js/order-center.js +++ b/assets/js/order-center.js @@ -473,5 +473,4 @@ if (window.AksrtFrontend && typeof window.AksrtFrontend.register === "function") { window.AksrtFrontend.register("aksrt-order-center", init); } - init(document); }()); diff --git a/assets/js/page-edit.js b/assets/js/page-edit.js index 6c7d81b5..f1219cf0 100644 --- a/assets/js/page-edit.js +++ b/assets/js/page-edit.js @@ -21,6 +21,7 @@ */ function PageEdit(options) { this.options = Object.assign({ + form: null, formSelector: 'form[data-aksrt-edit]', titleSelector: 'input[name="title"], input[name="topic_title"]', contentSelector: 'textarea[name="content"], textarea[name="topic_content"]', @@ -29,7 +30,7 @@ draftKey: '', }, options || {}); - this.form = document.querySelector(this.options.formSelector); + this.form = this.options.form || document.querySelector(this.options.formSelector); if (!this.form) return; this.autoSaveTimer = null; @@ -189,18 +190,15 @@ }; // 自动初始化 - function autoInit() { - var form = document.querySelector('form[data-aksrt-edit]'); + function autoInit(root) { + var form = root && root.nodeType === 1 && root.matches('form[data-aksrt-edit]') + ? root : (root || document).querySelector('form[data-aksrt-edit]'); if (form) { - new PageEdit(); + new PageEdit({ form: form }); } } - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', autoInit); - } else { - autoInit(); - } + window.AksrtFrontend.register('aksrt-page-edit', autoInit); window.AksrtPageEdit = PageEdit; })(); diff --git a/assets/js/page-navs.js b/assets/js/page-navs.js index 3be89805..93ac4843 100644 --- a/assets/js/page-navs.js +++ b/assets/js/page-navs.js @@ -28,7 +28,10 @@ searchQuery: '', ajaxInFlight: null, - init: function () { + init: function (root) { + this.root = root || document; + if (this.root.__aksrtPageNavInitialized) return; + this.root.__aksrtPageNavInitialized = true; this.initTocHighlight(); this.initSmoothScroll(); this.initDocSearch(); @@ -40,7 +43,8 @@ * TOC 高亮(文档阅读页) * ============================================================ */ initTocHighlight: function () { - var toc = document.querySelector('.aksrt-doc-toc'); + var toc = this.root.querySelector('.aksrt-doc-toc'); + if (this.root.nodeType === 1 && this.root.matches('.aksrt-doc-toc')) toc = this.root; if (!toc) return; this.tocItems = Array.from(toc.querySelectorAll('.aksrt-doc-toc__item a')); @@ -92,7 +96,9 @@ * 平滑滚动 * ============================================================ */ initSmoothScroll: function () { - document.addEventListener('click', function (e) { + if (this.root.__aksrtPageNavSmoothBound) return; + this.root.__aksrtPageNavSmoothBound = true; + this.root.addEventListener('click', function (e) { var link = e.target.closest('a[href^="#"]'); if (!link) return; @@ -113,11 +119,11 @@ * 文档搜索(AJAX 接管) * ============================================================ */ initDocSearch: function () { - var searchInput = document.querySelector('.aksrt-doc-search__input'); + var searchInput = this.root.querySelector('.aksrt-doc-search__input'); if (!searchInput) return; - var resultsContainer = document.querySelector('.aksrt-doc-search__results'); - var takeover = document.querySelector('.aksrt-doc-takeover'); + var resultsContainer = this.root.querySelector('.aksrt-doc-search__results'); + var takeover = this.root.querySelector('.aksrt-doc-takeover'); var self = this; var debounceTimer = null; @@ -206,7 +212,7 @@ resultsContainer.innerHTML = ''; } // 显示所有卡片 - var cards = document.querySelectorAll('.aksrt-doc-index-card'); + var cards = this.root.querySelectorAll('.aksrt-doc-index-card'); cards.forEach(function (card) { card.style.display = ''; }); }, @@ -231,7 +237,7 @@ * 分类切换 — AJAX 加载 + 分页 * ============================================================ */ initCategoryChips: function () { - var toolbar = document.querySelector('.aksrt-doc-toolbar'); + var toolbar = this.root.querySelector('.aksrt-doc-toolbar'); if (!toolbar) return; var chips = toolbar.querySelectorAll('.aksrt-doc-toolbar__chip[data-cat-id]'); @@ -260,7 +266,7 @@ } var self = this; - var grid = document.querySelector('.aksrt-doc-grid'); + var grid = this.root.querySelector('.aksrt-doc-grid'); if (!grid) return; // 显示加载状态 @@ -305,7 +311,7 @@ }, updateMetaCount: function (total) { - var meta = document.querySelector('.aksrt-doc-toolbar__meta'); + var meta = this.root.querySelector('.aksrt-doc-toolbar__meta'); if (meta) { meta.textContent = total + ' 篇文档'; } @@ -316,7 +322,7 @@ * ============================================================ */ initPagination: function () { var self = this; - var paginationContainer = document.querySelector('.aksrt-doc-pagination'); + var paginationContainer = this.root.querySelector('.aksrt-doc-pagination'); if (!paginationContainer) return; paginationContainer.addEventListener('click', function (e) { @@ -331,7 +337,7 @@ self.loadCategoryDocs(self.activeCategory, page); // 滚动到顶部 - var grid = document.querySelector('.aksrt-doc-grid'); + var grid = self.root.querySelector('.aksrt-doc-grid'); if (grid) { grid.scrollIntoView({ behavior: 'smooth', block: 'start' }); } @@ -342,7 +348,7 @@ this.totalPages = totalPages; this.currentPage = currentPage; - var container = document.querySelector('.aksrt-doc-pagination'); + var container = this.root.querySelector('.aksrt-doc-pagination'); if (!container) return; if (totalPages <= 1) { @@ -394,7 +400,7 @@ }, filterDocItems: function (query) { - var cards = document.querySelectorAll('.aksrt-doc-index-card'); + var cards = this.root.querySelectorAll('.aksrt-doc-index-card'); if (cards.length > 0) { cards.forEach(function (card) { var title = card.querySelector('.aksrt-doc-index-card__title'); @@ -408,7 +414,7 @@ }); } - var sidebarItems = document.querySelectorAll('.aksrt-doc-sidebar__item'); + var sidebarItems = this.root.querySelectorAll('.aksrt-doc-sidebar__item'); if (sidebarItems.length > 0) { sidebarItems.forEach(function (item) { var link = item.querySelector('.aksrt-doc-sidebar__link'); @@ -446,9 +452,7 @@ } }; - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', function () { PAGE_NAVS.init(); }); - } else { - PAGE_NAVS.init(); - } + window.AksrtFrontend.register('aksrt-page-navs', function (root) { + PAGE_NAVS.init(root); + }); })(); diff --git a/assets/js/page-template.js b/assets/js/page-template.js index 08684a39..46b852b3 100644 --- a/assets/js/page-template.js +++ b/assets/js/page-template.js @@ -10,9 +10,15 @@ (function () { 'use strict'; - function initContentExpand() { + function queryAll(root, selector) { + var nodes = Array.prototype.slice.call((root || document).querySelectorAll(selector)); + if (root && root.nodeType === 1 && root.matches(selector)) nodes.unshift(root); + return nodes; + } + + function initContentExpand(root) { // legacy-style: inject .read-more inside .limit-height and expand on click. - document.querySelectorAll('.wp-posts-content.limit-height, .limit-height[data-nav]').forEach(function (content) { + queryAll(root, '.wp-posts-content.limit-height, .limit-height[data-nav]').forEach(function (content) { if (content.dataset.aksrtExpandBound === '1') return; content.dataset.aksrtExpandBound = '1'; @@ -58,8 +64,13 @@ wrap.remove(); }); }); + } - // Compatibility: old external expand buttons. + var expandDelegateBound = false; + + function bindExpandDelegate() { + if (expandDelegateBound) return; + expandDelegateBound = true; document.addEventListener('click', function (event) { var open = event.target.closest && event.target.closest('.read-more-open'); if (!open) return; @@ -73,8 +84,8 @@ }); } - function initFlashQueryCleanup() { - document.querySelectorAll('[data-aksrt-flash-query]').forEach(function (node) { + function initFlashQueryCleanup(root) { + queryAll(root, '[data-aksrt-flash-query]').forEach(function (node) { var queryKey = node.getAttribute('data-aksrt-flash-query'); if (!queryKey || !window.history || typeof window.history.replaceState !== 'function') return; @@ -86,14 +97,12 @@ }); } - function init() { - initContentExpand(); - initFlashQueryCleanup(); + function init(root) { + root = root || document; + bindExpandDelegate(); + initContentExpand(root); + initFlashQueryCleanup(root); } - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', init); - } else { - init(); - } + window.AksrtFrontend.register('aksrt-page-template', init); })(); diff --git a/assets/js/pay-vip.js b/assets/js/pay-vip.js index 5e7fc54a..e097feeb 100644 --- a/assets/js/pay-vip.js +++ b/assets/js/pay-vip.js @@ -567,9 +567,5 @@ document.addEventListener("click", onDocClick, true); } - if (document.readyState === "loading") { - document.addEventListener("DOMContentLoaded", bindOnce, { once: true }); - } else { - bindOnce(); - } + window.AksrtFrontend.register("aksrt-pay-vip", bindOnce); })(); diff --git a/assets/js/post-share.js b/assets/js/post-share.js index e6920194..d59a6b6f 100644 --- a/assets/js/post-share.js +++ b/assets/js/post-share.js @@ -271,7 +271,11 @@ return Promise.resolve({ mode: 'window' }); } + var genericShareBound = false; + function bindGenericShareButtons() { + if (genericShareBound) return; + genericShareBound = true; document.addEventListener('click', function (event) { var node = event.target.closest('[data-share-platform]'); if (!node || node.closest('#share-dropdown')) return; @@ -299,9 +303,7 @@ bindGenericShareButtons(); } - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', init); - } else { + window.AksrtFrontend.register('aksrt-post-share', function () { init(); - } + }); })(); diff --git a/assets/js/poster-share.js b/assets/js/poster-share.js index 15081325..49cc37e3 100644 --- a/assets/js/poster-share.js +++ b/assets/js/poster-share.js @@ -37,7 +37,11 @@ PosterShare.prototype.init = function () { var self = this; - document.querySelectorAll(this.options.triggerSelector).forEach(function (btn) { + var scope = this.options.root || document; + var triggers = []; + if (scope.nodeType === 1 && scope.matches(this.options.triggerSelector)) triggers.push(scope); + Array.prototype.push.apply(triggers, scope.querySelectorAll(this.options.triggerSelector)); + triggers.forEach(function (btn) { btn.addEventListener('click', function (e) { e.preventDefault(); @@ -360,25 +364,21 @@ }; // 自动初始化 - function autoInit() { - document.querySelectorAll('[data-aksrt-poster]').forEach(function (el) { - if (el.dataset.posterInit) return; + function autoInit(root) { + var triggers = []; + if (root && root.nodeType === 1 && root.matches('[data-aksrt-poster]')) triggers.push(root); + Array.prototype.push.apply(triggers, (root || document).querySelectorAll('[data-aksrt-poster]')); + if (!triggers.length) return; + var pending = triggers.filter(function (el) { return el.dataset.posterInit !== '1'; }); + if (!pending.length) return; + var instance = new PosterShare({ root: root || document, triggerSelector: '[data-aksrt-poster]' }); + pending.forEach(function (el) { el.dataset.posterInit = '1'; - - var config = {}; - try { - config = JSON.parse(el.dataset.aksrtPoster || '{}'); - } catch (e) {} - - new PosterShare({ triggerSelector: '[data-aksrt-poster]' }); + el._aksrtPosterShare = instance; }); } - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', autoInit); - } else { - autoInit(); - } + window.AksrtFrontend.register('aksrt-poster-share', autoInit); /** * Generate a poster directly from a unified share payload, without binding diff --git a/assets/js/posts-navs-page.js b/assets/js/posts-navs-page.js index f308ca50..1aa7e7f6 100644 --- a/assets/js/posts-navs-page.js +++ b/assets/js/posts-navs-page.js @@ -8,11 +8,14 @@ 'use strict'; function qs(sel, root) { + if (root && root.nodeType === 1 && root.matches(sel)) return root; return (root || document).querySelector(sel); } function qsa(sel, root) { - return Array.prototype.slice.call((root || document).querySelectorAll(sel)); + var nodes = Array.prototype.slice.call((root || document).querySelectorAll(sel)); + if (root && root.nodeType === 1 && root.matches(sel)) nodes.unshift(root); + return nodes; } function ajaxUrl() { @@ -21,10 +24,13 @@ return '/wp-admin/admin-ajax.php'; } - function initModal() { - var modal = qs('#post-navs-sz'); + function initModal(root) { + var modal = qs('#post-navs-sz', root); if (!modal) return; + if (modal.dataset.aksrtPostsNavModalBound === '1') return; + modal.dataset.aksrtPostsNavModalBound = '1'; + function openModal(e) { if (e) e.preventDefault(); modal.classList.add('is-open', 'show'); @@ -37,11 +43,11 @@ modal.setAttribute('aria-hidden', 'true'); } - qsa('[data-toggle="modal"][data-target="#post-navs-sz"], a[href="#post-navs-sz"]').forEach(function (el) { + qsa('[data-toggle="modal"][data-target="#post-navs-sz"], a[href="#post-navs-sz"]', root).forEach(function (el) { el.addEventListener('click', openModal); }); // Title [设置] uses data-target. - qsa('[data-target="#post-navs-sz"]').forEach(function (el) { + qsa('[data-target="#post-navs-sz"]', root).forEach(function (el) { el.addEventListener('click', openModal); }); qsa('[data-dismiss="modal"]', modal).forEach(function (btn) { @@ -55,9 +61,9 @@ }); } - function initDragSort() { - var left = qs('#cat-sortable'); - var right = qs('#cat-sortable-ok'); + function initDragSort(root) { + var left = qs('#cat-sortable', root); + var right = qs('#cat-sortable-ok', root); if (!left || !right) return; var dragEl = null; @@ -123,8 +129,8 @@ } } - function initSave() { - var form = qs('#aksrt-posts-navs-settings'); + function initSave(root) { + var form = qs('#aksrt-posts-navs-settings', root); if (!form) return; form.addEventListener('submit', function (e) { @@ -179,9 +185,9 @@ * Build simple TOC into .posts-nav-box if section-navs hasn't already. * Uses category h2 headings inside .posts-navs. */ - function initFallbackToc() { - var box = qs('.posts-nav-box'); - var root = qs('.posts-navs[data-nav]'); + function initFallbackToc(scope) { + var box = qs('.posts-nav-box', scope); + var root = qs('.posts-navs[data-nav]', scope); if (!box || !root) return; if (box.querySelector('.posts-nav-lists, .aksrt-section-nav, .toc-list')) return; @@ -230,17 +236,14 @@ highlight(); } - function init() { - initModal(); - initDragSort(); - initSave(); + function init(root) { + root = root || document; + initModal(root); + initDragSort(root); + initSave(root); // Defer so section-navs.js can own TOC first. - window.setTimeout(initFallbackToc, 50); + window.setTimeout(function () { initFallbackToc(root); }, 50); } - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', init); - } else { - init(); - } + window.AksrtFrontend.register('aksrt-posts-navs-page', init); })(); diff --git a/assets/js/precode.js b/assets/js/precode.js index 1a611256..1e3b88c3 100644 --- a/assets/js/precode.js +++ b/assets/js/precode.js @@ -218,9 +218,7 @@ loadEnlighterJS(initEnlighter); } - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', init); - } else { + window.AksrtFrontend.register('aksrt-precode', function () { init(); - } + }); })(); diff --git a/assets/js/rehydrate.js b/assets/js/rehydrate.js index d52f7f37..24640572 100644 --- a/assets/js/rehydrate.js +++ b/assets/js/rehydrate.js @@ -6,8 +6,9 @@ * to initialize or re-initialize them on a given root element. * * Usage: - * AksrtFrontend.register('name', initFn); // Register a component - * AksrtFrontend.rehydrate(root, 'init'); // Initialize all components + * AksrtFrontend.register('name', initFn); // Register a component + * AksrtFrontend.boot(document); // One-time initial page load + * AksrtFrontend.rehydrate(root, 'ajax'); // Initialize dynamic content * * @package AKSRT * @since 5.0.0 @@ -16,7 +17,25 @@ 'use strict'; var _registry = []; - var _initialized = []; + var _booted = false; + var _bootRoot = null; + + function invoke(entry, root, reason) { + try { + entry.initFn(root, reason); + } catch (err) { + console.error('[AKSRT Rehydrate] Error initializing "' + entry.name + '":', err); + } + } + + function dispatch(root, reason, eventName) { + try { + root.dispatchEvent(new CustomEvent(eventName, { + bubbles: true, + detail: { reason: reason } + })); + } catch (e) { /* IE fallback */ } + } window.AksrtFrontend = { @@ -32,10 +51,26 @@ for (var i = 0; i < _registry.length; i++) { if (_registry[i].name === name) { _registry[i].initFn = initFn; + if (_booted) invoke(_registry[i], _bootRoot || document, 'init'); return; } } - _registry.push({ name: name, initFn: initFn }); + var entry = { name: name, initFn: initFn }; + _registry.push(entry); + if (_booted) invoke(entry, _bootRoot || document, 'init'); + }, + + /** + * Run the one-time initial page boot. + * + * @param {Element|Document} root The document root to initialize + */ + boot: function (root) { + if (_booted) return; + _booted = true; + _bootRoot = root || document; + this.rehydrate(_bootRoot, 'init'); + dispatch(_bootRoot, 'init', 'aksrt:ready'); }, /** @@ -53,21 +88,10 @@ reason = reason || 'init'; for (var i = 0; i < _registry.length; i++) { - var entry = _registry[i]; - try { - entry.initFn(root, reason); - } catch (err) { - console.error('[AKSRT Rehydrate] Error initializing "' + entry.name + '":', err); - } + invoke(_registry[i], root, reason); } - // Dispatch event so external scripts can hook in - try { - root.dispatchEvent(new CustomEvent('aksrt:rehydrated', { - bubbles: true, - detail: { reason: reason } - })); - } catch (e) { /* IE fallback */ } + dispatch(root, reason, 'aksrt:rehydrated'); }, /** @@ -75,6 +99,10 @@ */ getRegistered: function () { return _registry.map(function (r) { return r.name; }); + }, + + isBooted: function () { + return _booted; } }; diff --git a/assets/js/report.js b/assets/js/report.js index 7a721a3d..a851463b 100644 --- a/assets/js/report.js +++ b/assets/js/report.js @@ -141,6 +141,8 @@ } function initReportButtons() { + if (document.documentElement.dataset.aksrtReportInitialized === '1') return; + document.documentElement.dataset.aksrtReportInitialized = '1'; document.addEventListener('click', function (e) { var btn = e.target.closest('[data-aksrt-report]'); if (!btn) return; @@ -157,10 +159,7 @@ }); } - // Auto-init on DOMContentLoaded - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', initReportButtons); - } else { - initReportButtons(); + if (window.AksrtFrontend && typeof window.AksrtFrontend.register === 'function') { + window.AksrtFrontend.register('aksrt-report', initReportButtons); } })(); diff --git a/assets/js/reward.js b/assets/js/reward.js index 2379c8da..279714dd 100644 --- a/assets/js/reward.js +++ b/assets/js/reward.js @@ -8,7 +8,10 @@ var cfg = window.aksrtData || {}; - function initReward() { + function initReward(root) { + if (root && root.nodeType === 1 && !root.matches('[data-aksrt-reward-root], body, html')) return; + if (document.documentElement.dataset.aksrtRewardInitialized === '1') return; + document.documentElement.dataset.aksrtRewardInitialized = '1'; var activeTrigger = null; function operationKey(modal) { @@ -125,9 +128,5 @@ if (window.AksrtFrontend && typeof window.AksrtFrontend.register === 'function') { window.AksrtFrontend.register('aksrt-reward', initReward); - } else if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', initReward); - } else { - initReward(); } })(); diff --git a/assets/js/routes/user-center.js b/assets/js/routes/user-center.js index 2ddef274..04e97573 100644 --- a/assets/js/routes/user-center.js +++ b/assets/js/routes/user-center.js @@ -41,9 +41,11 @@ } /* ==================== Dashboard 导航 ==================== */ - function initDashboardNavigation() { - var tabContainer = document.querySelector('.uc-mobile-tabs'); - if (!tabContainer) return; + function initDashboardNavigation() { + if (document.documentElement.dataset.aksrtUserCenterNavigationInitialized === 'true') return; + var tabContainer = document.querySelector('.uc-mobile-tabs'); + if (!tabContainer) return; + document.documentElement.dataset.aksrtUserCenterNavigationInitialized = 'true'; var tabs = tabContainer.querySelectorAll('[data-tab]'); var sidebarBtns = document.querySelectorAll('.uc-sidebar [data-tab]'); @@ -322,22 +324,18 @@ }); } - if (window.AksrtFrontend && typeof window.AksrtFrontend.register === 'function') { - window.AksrtFrontend.register('aksrt-profile-form', function(root) { - initProfileForm(root); - }); - } - - function initAuthForm() { - var root = document.querySelector('[data-identity-root]'); - if (root && window.AKSRTUserCenterAuth && typeof window.AKSRTUserCenterAuth.init === 'function') { - window.AKSRTUserCenterAuth.init(root); + function initAuthForm(root) { + root = root || document; + var identityRoot = root.matches && root.matches('[data-identity-root]') ? root : root.querySelector('[data-identity-root]'); + if (identityRoot && window.AKSRTUserCenterAuth && typeof window.AKSRTUserCenterAuth.init === 'function') { + window.AKSRTUserCenterAuth.init(identityRoot); + } } - } /* ==================== 列表内取消收藏 ==================== */ - function initUnfavorite() { - var list = document.querySelector('.profile-list[data-list="favorites"]'); + function initUnfavorite(root) { + root = root || document; + var list = root.matches && root.matches('.profile-list[data-list="favorites"]') ? root : root.querySelector('.profile-list[data-list="favorites"]'); if (!list) return; list.addEventListener('click', function(e) { @@ -395,9 +393,9 @@ }); } - function initPostDeletion() { - if (document.documentElement.dataset.aksrtPostDeletionBound === 'true') return; - document.documentElement.dataset.aksrtPostDeletionBound = 'true'; + function initPostDeletion(root) { + if (document.documentElement.dataset.aksrtPostDeletionBound === 'true') return; + document.documentElement.dataset.aksrtPostDeletionBound = 'true'; document.addEventListener('click', function(e) { var btn = e.target && e.target.closest ? e.target.closest('[data-action="delete-post"]') : null; if (!btn || btn.disabled || !confirm('确定删除这篇文章?')) return; @@ -423,12 +421,14 @@ } /* ==================== 通知中心 ==================== */ - function initNotifications() { - var list = document.getElementById('aksrt-notification-list'); - var markAllBtn = document.getElementById('aksrt-mark-all-notifications-read'); - var markSelectedBtn = document.getElementById('aksrt-mark-selected-notifications-read'); - var deleteSelectedBtn = document.getElementById('aksrt-delete-selected-notifications'); - if (!list) return; + function initNotifications(root) { + root = root || document; + var list = root.matches && root.matches('#aksrt-notification-list') ? root : root.querySelector('#aksrt-notification-list'); + var markAllBtn = list && list.ownerDocument.getElementById('aksrt-mark-all-notifications-read'); + var markSelectedBtn = list && list.ownerDocument.getElementById('aksrt-mark-selected-notifications-read'); + var deleteSelectedBtn = list && list.ownerDocument.getElementById('aksrt-delete-selected-notifications'); + if (!list || list.dataset.aksrtNotificationsInitialized === 'true') return; + list.dataset.aksrtNotificationsInitialized = 'true'; function markRead(notificationId, markAll) { var body = new URLSearchParams(); @@ -1033,42 +1033,25 @@ } } - if (window.AksrtFrontend && typeof window.AksrtFrontend.register === 'function') { - window.AksrtFrontend.register('aksrt-settings', function(root) { - initSettings(root); - initBindPhone(root); - }); - window.AksrtFrontend.register('aksrt-notification-preferences', function(root) { - initNotificationPreferences(root); - }); - } - - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', function() { + function initNavigationOnce() { initDashboardNavigation(); - initProfileForm(); - initAuthForm(); - initUnfavorite(); initPostDeletion(); - initNotifications(); - initNotificationPreferences(); - initSettings(); - initBindPhone(); - initSettingsCallbackToast(); - }); - } else { - initDashboardNavigation(); - initProfileForm(); - initAuthForm(); - initUnfavorite(); - initPostDeletion(); - initNotifications(); - initNotificationPreferences(); - initSettings(); - initBindPhone(); - initSettingsCallbackToast(); - } + } + + if (window.AksrtFrontend && typeof window.AksrtFrontend.register === 'function') { + window.AksrtFrontend.register('aksrt-user-center', function(root) { + initNavigationOnce(); + initProfileForm(root); + initAuthForm(root); + initUnfavorite(root); + initNotifications(root); + initNotificationPreferences(root); + initSettings(root); + initBindPhone(root); + initSettingsCallbackToast(); + }); + } // 绑定手机 function initBindPhone(root) { diff --git a/assets/js/runtime/loader.js b/assets/js/runtime/loader.js index 7bc73922..105ed583 100644 --- a/assets/js/runtime/loader.js +++ b/assets/js/runtime/loader.js @@ -59,17 +59,8 @@ tbquire.config({ 'translate' : 'libs/translate.min', 'waterfall' : 'waterfall.min', 'enlighterjs' : 'enlighter/enlighterjs.min', - 'section-navs' : 'section-navs.min', - 'poster-share' : 'poster-share.min', - 'comment' : 'comment.min', - 'page-template' : 'page-template.min', - 'page-edit' : 'page-edit.min', - 'author' : 'author.min', - 'page-navs' : 'page-navs.min', - 'input-expand' : 'input-expand.min', 'mini-touch' : 'mini-touch.min', - 'mini-upload' : 'mini-upload.min', 'editextend' : 'editextend.min', 'petite-vue' : 'libs/petite-vue.iife', 'svg-icon' : 'svg-icon', diff --git a/assets/js/runtime/main.js b/assets/js/runtime/main.js index 9070fb86..e638e299 100644 --- a/assets/js/runtime/main.js +++ b/assets/js/runtime/main.js @@ -1872,7 +1872,7 @@ function post_ajax(_this, con, jcon, item, loader, pag, next, trigger, replace, } swiper_tab_AutoHeight($con); - auto_fun(); + window.AksrtFrontend.rehydrate($con[0], 'ajax'); }, }); return !1; @@ -1884,7 +1884,7 @@ _win.bd.on('click', '[remote-box]', function () { if (remote) { jQuery.post(remote, null, function (data) { _this.html(data).removeAttr('remote-box'); - auto_fun(); + window.AksrtFrontend.rehydrate(_this[0], 'ajax'); _this.trigger('aksrt:remote-loaded'); }); } @@ -2176,7 +2176,7 @@ _win.bd.on('show.bs.modal loaded.bs.modal', '.modal:not(.flex)', function () { }); _win.bd.on('show.bs.modal loaded.bs.modal', '.modal', function () { - auto_fun(); + window.AksrtFrontend.rehydrate(this, 'modal'); }); _win.modal_z_index = 1050; @@ -2420,7 +2420,9 @@ function z_auto() { } } -window.auto_fun = debounce(z_auto_fun, 100); +window.auto_fun = debounce(function (root) { + window.AksrtFrontend.rehydrate(root && root.nodeType ? root : document, 'ajax'); +}, 100); function z_auto_fun() { jQuery(document).trigger('auto_fun'); @@ -2433,9 +2435,6 @@ function z_auto_fun() { //可复制 jQuery('.cloneable').cloneable(); - //倒计时 - jQuery('[data-countdown]').countdown(); - auto_maxHeight(); //兼容性图片懒加载 jQuery('img[data-src]:not(.lazyload,.lazyloaded,.lazyloading,.swiper-lazy)').addClass('lazyload'); @@ -2446,13 +2445,6 @@ function z_auto_fun() { }); */ - jQuery('.dropdown-code,.dropdown-image,.dropdown-quick-often').length && tbquire(['input-expand']); - /**上传图片 */ - jQuery('[aksrtupload]').length && tbquire(['mini-upload']); - - //海报分享 - jQuery('[poster-share]').length && tbquire(['poster-share']); //海报分享 - /* 提示工具*/ jQuery("[data-toggle='tooltip']").tooltip({ container: 'body', @@ -3095,21 +3087,6 @@ _win.bd.on('input focus', 'textarea[autoHeight]', function () { _win.bd.on('click', '.rewards', function () { jQuery('#rewards-popover').modal('show'); }); -//用户中心 -_win.bd.hasClass('author') && tbquire(['author']); - -//文章导航 -_win.bd.hasClass('page-template-postsnavs') && _win.bd.hasClass('logged-admin') && tbquire(['page-navs']); -//前台编辑 -jQuery('#modal_admin_set').length && tbquire(['page-edit']); -//评论 -jQuery('#commentform,#postcomments').length && tbquire(['comment']); -//通用模板js文件 -_win.bd.hasClass('page-template') && tbquire(['page-template']); - -//微信分享 -window.WeChatShareDate && tbquire(['weixin-share']); - //搜索关键词高亮 if (_win.bd.hasClass('search')) { var val = jQuery('.search-desc-text .search-key').text(); @@ -3520,7 +3497,7 @@ jQuery.fn.AutoSearch = function () { _this.removeClass(loading); _remind.html(result.remind || ''); _icon.html(_icon_html); - auto_fun(); + window.AksrtFrontend.rehydrate(_container[0], 'ajax'); }, 'json' ); @@ -3969,12 +3946,6 @@ function posts_limit_height() { } } -auto_fun(); -thumb_dplayer(_wid > 640 ? '.posts-item .item-thumbnail,.forum-lists-cover' : '.posts-item,.forum-posts', '.video-thumb-box[video-url]'); - -//页面加载之后自动点击 -jQuery('[load-click]').attr('no-scroll', true).click(); - //图片延迟懒加载-ias自动加载 jQuery(document).on('lazybeforeunveil', function (e) { var _this = jQuery(e.target); @@ -4553,7 +4524,7 @@ _win.bd.on('click', '.customize-preview-widget-edit', function (e) { }); //页面加载完毕之后加载的函数 -jQuery(document).ready(function () { +function initLegacyDocumentReady() { setTimeout(function () { //页面加载完毕之后再延迟两秒加载的函数 @@ -4700,8 +4671,6 @@ jQuery(document).ready(function () { }); /*文章目录*/ - jQuery('[data-nav] h1,[data-nav] h2,[data-nav] h3,[data-nav] h4').length > 2 && tbquire(['section-navs']); - //手势控制 jQuery('[mini-touch]').each(function () { var _this = jQuery(this); @@ -4718,4 +4687,12 @@ jQuery(document).ready(function () { }, }); }); +} + +window.AksrtFrontend.register('aksrt-legacy-main', function (root, reason) { + z_auto_fun(); + if (reason !== 'init') return; + initLegacyDocumentReady(); + thumb_dplayer(_wid > 640 ? '.posts-item .item-thumbnail,.forum-lists-cover' : '.posts-item,.forum-posts', '.video-thumb-box[video-url]'); + jQuery('[load-click]').attr('no-scroll', true).click(); }); diff --git a/assets/js/runtime/main.min.js b/assets/js/runtime/main.min.js index 4446d1b8..14fc815c 100644 --- a/assets/js/runtime/main.min.js +++ b/assets/js/runtime/main.min.js @@ -1 +1 @@ -jQuery.cookie=function(e,a,t){if(a===void 0){var r=null;if(document.cookie&&document.cookie!="")for(var n=document.cookie.split(";"),i=0;i-1||e.indexOf("致命错误")>-1)}function aksrt_sprintf(e){var a=Array.prototype.slice.call(arguments,1),t=aksrt__(e),r=0;return t.replace(/%(\d+\$)?s/g,function(n,i){var s=i?parseInt(i,10)-1:r++;return a[s]!==void 0&&a[s]!==null?a[s]:n})}(function(e,a){var t=a(e,e.document,Date);e.lazySizes=t,typeof module=="object"&&module.exports&&(module.exports=t)})(typeof window<"u"?window:{},function(a,t,r){"use strict";var n,i;if((function(){var w,y={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",loadafterClass:"lazyloadafter",errorClass:"lazyerror",autosizesClass:"lazyautosizes",srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};i=a.lazySizesConfig||a.lazysizesConfig||{};for(w in y)w in i||(i[w]=y[w])})(),!t||!t.getElementsByClassName)return{init:function(){},cfg:i,noSupport:!0};var s=t.documentElement,o=a.HTMLPictureElement,d="addEventListener",u="getAttribute",c=a[d].bind(a),l=a.setTimeout,h=a.requestAnimationFrame||l,f=a.requestIdleCallback,p=/^picture$/i,g=["load","error","lazyincluded","_lazyloaded"],v={},b=Array.prototype.forEach,_=function(w,y){return v[y]||(v[y]=new RegExp("(\\s|^)"+y+"(\\s|$)")),v[y].test(w[u]("class")||"")&&v[y]},Q=function(w,y){_(w,y)||w.setAttribute("class",(w[u]("class")||"").trim()+" "+y)},j=function(w,y){var k;(k=_(w,y))&&w.setAttribute("class",(w[u]("class")||"").replace(k," "))},C=function(w,y,k){var L=k?d:"removeEventListener";k&&C(w,y),g.forEach(function(q){w[L](q,y)})},T=function(w,y,k,L,q){var z=t.createEvent("Event");return k||(k={}),k.instance=n,z.initEvent(y,!L,!q),z.detail=k,w.dispatchEvent(z),z},F=function(w,y){var k;!o&&(k=a.picturefill||i.pf)?(y&&y.src&&!w[u]("srcset")&&w.setAttribute("srcset",y.src),k({reevaluate:!0,elements:[w]})):y&&y.src&&(w.src=y.src)},X=function(w,y){return(getComputedStyle(w,null)||{})[y]},Z=function(w,y,k){for(k=k||w.offsetWidth;k49?function(){f(z,{timeout:q}),q!==i.ricTimeout&&(q=i.ricTimeout)}:G(function(){l(z)},!0);return function(E){var A;(E=E===!0)&&(q=33),!y&&(y=!0,A=L-(r.now()-k),A<0&&(A=0),E||A<9?O():l(O,A))}},oe=function(w){var y,k,L=99,q=function(){y=null,w()},z=function(){var O=r.now()-k;O0,H&&X(M,"overflow")!="visible"&&(S=M.getBoundingClientRect(),H=W>S.left&&AS.top-1&&E500&&s.clientWidth>500?500:370:i.expand,n._defEx=U,K=U*i.expFactor,te=i.hFac,J=null,ae2&&L>2&&!t.hidden?(ae=K,ee=0):L>1&&ee>1&&R<6?ae=U:ae=_e),V!==I&&(z=innerWidth+I*te,O=innerHeight+I,B=I*-1,V=I),S=N[x].getBoundingClientRect(),($=S.bottom)>=B&&(E=S.top)<=O&&(W=S.right)>=B*te&&(A=S.left)<=z&&($||W||A||E)&&(i.loadHidden||ue(N[x]))&&(y&&R<3&&!D&&(L<3||ee<4)||we(N[x],I))){if(re(N[x]),H=!0,R>9)break}else!H&&y&&!M&&R<4&&ee<4&&L>2&&(w[0]||i.preloadAfterLoad)&&(w[0]||!D&&($||W||A||E||N[x][u](i.sizesAttr)!="auto"))&&(M=w[0]||N[x])}M&&!H&&re(M)}},P=pe(ce),fe=function(m){var x=m.target;if(x._lazyCache){delete x._lazyCache;return}de(m),Q(x,i.loadedClass),j(x,i.loadingClass),C(x,he),T(x,"lazyloaded"),l(function(){Q(x,i.loadafterClass)},700)},be=G(fe),he=function(m){be({target:m.target})},je=function(m,x){try{m.contentWindow.location.replace(x)}catch{m.src=x}},xe=function(m){var x,S=m[u](i.srcsetAttr);(x=i.customMedia[m[u]("data-media")||m[u]("media")])&&m.setAttribute("media",x),S&&m.setAttribute("srcset",S)},Qe=G(function(m,x,S,M,H){var I,B,D,V,U,K;(U=T(m,"lazybeforeunveil",x)).defaultPrevented||(M&&(S?Q(m,i.autosizesClass):m.setAttribute("sizes",M)),B=m[u](i.srcsetAttr),I=m[u](i.srcAttr),H&&(D=m.parentNode,V=D&&p.test(D.nodeName||"")),K=x.firesLoad||"src"in m&&(B||I||V),U={target:m},Q(m,i.loadingClass),K&&(clearTimeout(k),k=l(de,2500),C(m,he,!0)),V&&b.call(D.getElementsByTagName("source"),xe),B?m.setAttribute("srcset",B):I&&!V&&(ye.test(m.nodeName)?je(m,I):m.src=I),H&&(B||V)&&F(m,{src:I})),m._lazyRace&&delete m._lazyRace,j(m,i.lazyClass),Y(function(){var te=m.complete&&m.naturalWidth>1;(!K||te)&&(te&&Q(m,"ls-is-cached"),fe(U),m._lazyCache=!0,l(function(){"_lazyCache"in m&&delete m._lazyCache},9)),m.loading=="lazy"&&R--},!0)}),re=function(m){if(!m._lazyRace){var x,S=me.test(m.nodeName),M=S&&(m[u](i.sizesAttr)||m[u]("sizes")),H=M=="auto";(H||!y)&&S&&(m[u]("src")||m.srcset)&&!m.complete&&!_(m,i.errorClass)&&_(m,i.lazyClass)||(x=T(m,"lazyunveilread").detail,H&&se.updateElem(m,!0,m.offsetWidth),m._lazyRace=!0,R++,Qe(m,x,H,M,S))}},ke=oe(function(){i.loadMode=3,P()}),ve=function(){i.loadMode==3&&(i.loadMode=2),ke()},ne=function(){if(!y){if(r.now()-q<999){l(ne,999);return}y=!0,i.loadMode=3,P(),c("scroll",ve,!0)}};return{_:function(){q=r.now(),n.elements=t.getElementsByClassName(i.lazyClass),w=t.getElementsByClassName(i.lazyClass+" "+i.preloadClass),c("scroll",P,!0),c("resize",P,!0),c("pageshow",function(m){if(m.persisted){var x=t.querySelectorAll("."+i.loadingClass);x.length&&x.forEach&&h(function(){x.forEach(function(S){S.complete&&re(S)})})}}),a.MutationObserver?new MutationObserver(P).observe(s,{childList:!0,subtree:!0,attributes:!0}):(s[d]("DOMNodeInserted",P,!0),s[d]("DOMAttrModified",P,!0),setInterval(P,999)),c("hashchange",P,!0),["focus","mouseover","click","load","transitionend","animationend"].forEach(function(m){t[d](m,P,!0)}),/d$|^c/.test(t.readyState)?ne():(c("load",ne),t[d]("DOMContentLoaded",P),l(ne,2e4)),n.elements.length?(ce(),Y._lsFlush()):P()},checkElems:P,unveil:re,_aLSL:ve}})(),se=(function(){var w,y=G(function(z,O,E,A){var W,$,J;if(z._lazysizesWidth=A,A+="px",z.setAttribute("sizes",A),p.test(O.nodeName||""))for(W=O.getElementsByTagName("source"),$=0,J=W.length;$-40&&u<40&&c>0?c:0),e.direction=="left"&&(l=0,c=(u>150||u<-150)&&0>c?c:0),e.direction=="top"&&(c=0,l=u>-130&&u<-50&&0>l?l:0),e.direction=="bottom"&&(c=0,l=u>50&&u<130&&l>0?l:0),(c!==0||l!==0)&&(v.preventDefault?v.preventDefault():v.returnValue=!1,f(b,c,l,h,"grab"),jQuery.isFunction(e.onIng)&&e.onIng(t,b,c,l)))}).on("touchend touchcancel pointerup MSPointerUp",g,function(){var v=e.start_selector?e.selector?t.find(e.selector):t.find(e.start_selector):jQuery(this);h&&!r&&(f(v,0,0,"null",""),jQuery.isFunction(e.inEnd)&&e.inEnd(t,v,c,l),(Math.abs(c)>n||Math.abs(l)>n)&&jQuery.isFunction(e.onEnd)&&e.onEnd(t,v,c,l),i=s=o=d=u=c=l=0,h=!1)}).data(a,!0)}},_win.bd=jQuery("body"),_win.window=jQuery(window),_win.is_signin=!!_win.bd.hasClass("logged-in");var _wid=_win.window.width(),_hei=_win.window.height();_win.bd.on("click","[data-close]",function(){var e=jQuery(this).attr("data-close");return jQuery(e).removeClass("show in"),!1}),_win.bd.on("click","[data-toggle-class]",function(){var e=jQuery(this).attr("data-toggle-class")||"show",a=jQuery(this).attr("data-target")||this;return jQuery(a).toggleClass(e).trigger("toggleClass"),!1}),_win.bd.on("click",only_drop),_win.bd.on("toggleClass",".dropup,.dropdown",only_drop);function only_drop(e){var a=jQuery(e.target).closest(".dropup,.dropdown");jQuery(".dropup.open,.dropdown.open").not(a).removeClass("open")}_win.bd.on("click",".alert-dismissible > .close",function(){jQuery(this).parent().slideUp()}),_win.bd.on("click","[data-onclick]",function(){var e=jQuery(this).attr("data-onclick");return jQuery(e).click()}),jQuery.fn.OnlyOn=function(e,a,t,r){var n=/\S+/g,i=!1;e=e.match(n)[0];var s=jQuery._data(this[0],"events");s&&typeof s.type<"u"&&jQuery.each(s[e],function(o,d){if(d.selector==a&&d.data==t)return i=!0,!1}),i?console.log("事件重复绑定{type:"+e+",selector:"+a+",data:"+t+"}"):this.on(e,a,t,r)},jQuery.fn.aksrt_ajax=function(e,a,t,r){return aksrt_ajax(jQuery(this),e,a,t,r)},jQuery.fn.countdown=function(){function e(a,t){var r=new Date,n=r.getTime(),i=new Date(a),s=i.getTime(),o=s-n,d=o/1e3%60;d=d.toFixed(2);var u=~~(o%1e3),c=~~(o/1e3/60%60),l=~~(o/(1e3*60*60)%24),h=~~(o/(1e3*60*60*24));return t==="minute"&&c>0&&(l=0,h=0,c=~~(o/1e3/60)),t==="hour"&&l>0&&(h=0,l=~~(o/(1e3*60*60))),d=d<10?"0"+d:d,c=c<10?"0"+c:c,{total:o,days:h,hours:l,minutes:c,seconds:d,mseconds:u}}jQuery(this).each(function(){var a=jQuery(this),t=a.attr("data-countdown");if(!t)return;var r=a.attr("int-second"),n=a.attr("max-unit");if(a.attr("title",aksrt__("countdown_end_time")+t),r==="auto"){var i=e(t,n);r=i.days>0}function s(){var d=e(t,n);if(r&&(d.seconds=d.seconds.toString().replace(/\.\d+$/,"")),a.find(".day").length&&a.find(".day").html(d.days),a.find(".hour").length&&a.find(".hour").html(d.hours),a.find(".minute").length&&a.find(".minute").html(d.minutes),a.find(".second").length)a.find(".second").html(d.seconds);else{var u="";d.days>0&&(u+=''+d.days+''+aksrt__("countdown_day")+""),(d.hours>0||d.days>0)&&(u+=''+d.hours+''+aksrt__("countdown_hour")+""),(d.minutes>0||d.hours>0||d.days>0)&&(u+=''+d.minutes+''+aksrt__("countdown_minute")+""),u+=''+d.seconds+''+aksrt__("countdown_second")+"",a.html(u)}if(d.total<=0){clearInterval(o);var c=a.attr("data-over-text")||aksrt__("countdown_ended");a.html(c).trigger("countdown-over")}}s();var o=setInterval(s,r?1e3:20);a.removeAttr("data-countdown").addClass("countdown-box")})},_win.dplayer={tbquire:["dplayer"],obj:{}};function new_dplayer(){var e=".new-dplayer:not(.dplayer-initialized),[data-dplayer]:not(.dplayer-initialized)";jQuery(e).length&&jQuery(e).each(function(){var a=jQuery(this);get_new_dplayer(a,function(t){a.addClass("dplayer-initialized").siblings(".dplayer-featured").find(".switch-video").each(function(){var r=jQuery(this),n=r.attr("video-url"),i=r.attr("video-pic");r.data({"video-url":n,"video-pic":i}),r.attr({"dplayer-id":t.container.id}),setTimeout(function(){r.removeAttr("video-url").removeAttr("video-pic")},50)})})})}function get_new_dplayer(e,a){var t={},r=e.attr("video-url")||e.data("video-url"),n=e.attr("data-volume"),i=parseInt((Math.random()+1)*Math.pow(10,4));if(!(e.find(".dplayer-video-wrap").length||!r)){e.attr("id","dplayer-"+i),t.container=document.getElementById("dplayer-"+i),t.theme="#f04494",t.video={url:r,pic:e.attr("video-pic")||"",type:e.attr("video-type")||"auto"},e.attr("data-loop")&&(t.loop=!0),e.attr("data-autoplay")&&(t.autoplay=!0),n&&n<1&&(t.volume=n),n==="none"&&(t.volume=0);var s=e.attr("video-option");if(s){try{s=JSON.parse(s)}catch(d){console.log(d)}jQuery.extend(t,s)}var o=r.toLowerCase();return o.indexOf(".m3u")!=-1&&_win.dplayer.tbquire.push("hls"),o.indexOf(".mpd")!=-1&&_win.dplayer.tbquire.push("dash"),o.indexOf(".flv")!=-1&&_win.dplayer.tbquire.push("flv"),jQuery("link#dplayer").length||jQuery("dplayer").append(''),_win.dplayer.tbquire.push("dplayer"),tbquire(_win.dplayer.tbquire,function(){try{var d=new DPlayer(t);d.on("play",function(){_win.dplayer.play=d}),e.data("dplayer",d),_win.dplayer.obj[i]=d,e.attr({"video-url":"","video-pic":""}),jQuery.isFunction(a)&&a(d)}catch(u){console.error(u)}}),i}}_win.bd.on("click",".swiper-slide.slide-dplayer:not(.slide-dplayer-played) > *",function(){var e=jQuery(this),a=e.find(".new-dplayer").data("dplayer");a&&(a.play(),e.parent().addClass("slide-dplayer-played"))});function thumb_dplayer(e,a){var t=jQuery("body"),r="thumb_dplayer_data",n=t.data(r)||{};if(n[e+a])return;var i="thumb-dplayer-playing",s="dplayer-thumb-hide";function o(h,f,p){f.find(".dplayer-thumb").removeClass(s),_win.dplayer.thumb_play=p,f.find(".progress").show(),h.addClass(i)}function d(h,f,p){p.pause(),f.find(".dplayer-thumb").addClass(s),_win.dplayer.thumb_play=!1,f.find(".progress").hide(),h.removeClass(i)}function u(){if(_win.dplayer.thumb_play){var h=jQuery(_win.dplayer.thumb_play.container).closest(a),f=h.closest(e);d(f,h,_win.dplayer.thumb_play)}}function c(){var h=jQuery(this),f=h.find(a);if(!f.length)return;var p=f.find(".dplayer-thumb").data("dplayer");if(p)return o(h,f,p),p.play();function g(T){T.on("loadeddata",function(){setTimeout(function(){f.find(".progress-bar").css({width:"100%",opacity:"0",transition:"width .2s, opacity .3s .3s"})},100),setTimeout(function(){f.find(".progress").remove()},800)}),setTimeout(function(){o(h,f,T),T.play()},200)}if(!f.find(".dplayer-thumb").length){var v=f.attr("video-url"),b=f.attr("data-volume")||"none",_="",Q=~~f.attr("scale-height"),j='
    ',C=jQuery('
    ');f.find(".video-thumb").html(C).after(j),setTimeout(function(){f.find(".progress-bar").css({transition:"width 6s",width:"80%"})},50),f.attr("video-url",""),get_new_dplayer(C,g)}}t.on("mouseenter touchstart",e,c),t.on("mouseleave",e,u);var l="thumb_dplayer_init";t.data(l)||t.on("touchstart",function(h){var f=jQuery(h.target);!f.parents("."+i).length&&_win.dplayer.thumb_play&&u()}).data(l,!0),n[e+a]=!0,t.data(r,n)}_win.bd.on("click",".switch-video",function(){var e=jQuery(this),a=jQuery("#"+e.attr("dplayer-id")).data("dplayer"),t=e.data("video-url"),r=e.data("video-pic");if(!(!t||!a||e.hasClass("active"))){e.addClass("active").siblings().removeClass("active");var n=t.toLowerCase();n.indexOf(".m3u")!=-1&&_win.dplayer.tbquire.push("hls"),n.indexOf(".mpd")!=-1&&_win.dplayer.tbquire.push("dash"),n.indexOf(".flv")!=-1&&_win.dplayer.tbquire.push("flv"),tbquire(_win.dplayer.tbquire,function(){try{var i={url:t,type:"auto"};r&&(i.pic=r),a.switchVideo(i),setTimeout(function(){a.play()},100)}catch(s){console.log(s)}})}}),_win.bd.on("click",".switch-iframe",function(){var e=jQuery(this),a=e.attr("iframe-url"),t=e.closest(".iframe-series").find("iframe");if(!(!a||e.hasClass("active"))){try{t[0].contentWindow.location.replace(a)}catch{t.attr("src",a)}e.addClass("active").siblings().removeClass("active")}}),_win.bd.on("click",".file-download-btn",function(){var e=jQuery(this),a=e.attr("data-download-file"),t=e.attr("download-nonce");if(e.attr("target","_blank"),!!a){var r=_win.ajax_url+"?action=download_file&file="+a+"&nonce="+t;e.attr("target","_blank").removeAttr("data-download-file").attr("href",r)}}),_win.bd.on("click",".post-tab-toggle",function(){var e=jQuery(this),a=e.attr("tab-id");if(!e.parent().hasClass("active")){var t=e.parent().addClass("active").siblings().removeClass("active").parent().next().find('[tab-id="'+a+'"]');t.siblings().removeClass("in"),setTimeout(function(){t.addClass("active").siblings().removeClass("active")},150),setTimeout(function(){t.addClass("in")},160)}}),_win.swiper=[],_win.swiper.tab={},_win.swiper.scroll={},_win.swiper.new={};function new_swiper(){jQuery(".swiper-scroll:not(.swiper-container-initialized),.new-swiper:not(.swiper-container-initialized),.swiper-tab:not(.swiper-container-initialized)").length&&(jQuery("link#swiper").length||jQuery("head").append(''),tbquire(["swiper"],function(){jQuery(".swiper-scroll").each(function(e){if(!jQuery(this).hasClass("swiper-container-initialized")){var a={},t=jQuery(this),r="swiper-scroll-eq-"+e,n=t.attr("data-slideClass")||!1;if(n&&(a.slideClass=n),!t.attr("scroll-nogroup")){var i=t.width(),s=t.find(".swiper-wrapper>*:eq(0)").outerWidth(),o=~~(i/s);a.slidesPerGroup=o||1}a.autoplay=t.attr("data-autoplay")?{delay:~~t.attr("data-interval")||4e3,disableOnInteraction:!1}:!1,a.loop=t.attr("data-loop"),a.slidesPerView="auto",a.mousewheel={forceToAxis:!0},a.freeMode=!0,a.freeModeSticky=!0,a.navigation={nextEl:".swiper-scroll."+r+" .swiper-button-next",prevEl:".swiper-scroll."+r+" .swiper-button-prev"},t.addClass(r).attr("swiper-scroll-index",e),_win.swiper.scroll[e]=new Swiper(".swiper-scroll."+r,a)}}),jQuery(".swiper-tab").each(function(e){if(!jQuery(this).hasClass("swiper-container-initialized")){var a="swiper-eq-"+e,t=jQuery(this),r=~~t.attr("data-speed")||~~((t.width()+1200)/170)*50,n=~~t.attr("active-index");r=r<300?300:r;var i={loop:!1,initialSlide:n,autoHeight:!0,spaceBetween:20,autoplay:!1,speed:r,pagination:{el:".swiper-tab."+a+" .swiper-pagination",clickable:!0},on:{init:function(){auto_maxHeight()},slideChangeTransitionEnd:function(u){var c=jQuery(".swiper-tab."+a+" .swiper-slide-active .post_ajax_trigger .ajax-open");c.length&&(scrollTopTo(jQuery(".swiper-tab."+a),-40),c.attr("no-scroll",!0).click());var l=u.onStart&&jQuery('[swiper-scroll-index="'+e+'"] .swiper-slide-thumb-active [data-route]');l&&l.length&&history.replaceState(null,document.title,l.attr("data-route")),u.onStart=!0}}},s=t.attr("swiper-tab"),o=jQuery('[swiper-tab-nav="'+s+'"]');if(o.length){var d=o.attr("swiper-scroll-index");i.thumbs={swiper:_win.swiper.scroll[d],autoScrollOffset:2},o.on("click","a[data-route]",function(u){u.preventDefault()})}t.addClass(a).attr("swiper-tab-index",e),_win.swiper.tab[e]=new Swiper(".swiper-tab."+a,i)}}),jQuery(".new-swiper").each(function(e){if(!jQuery(this).hasClass("swiper-container-initialized")){var a="swiper-eq-"+e,t=jQuery(this),r=~~t.attr("data-interval")||6e3,n=t.attr("data-autoplay")?{delay:r,disableOnInteraction:!1}:!1,i=!!t.attr("auto-height"),s=~~t.attr("data-speed")||~~((t.width()+1e3)/22)*10;s=s<400?400:s,s=n===!1?s/1.6:s;var o=!!t.attr("data-loop"),d=!!t.find("[data-swiper-parallax],[data-swiper-parallax-scale]").length,u=t.attr("data-effect")||"slide",c=t.attr("data-direction")||"horizontal",l=~~t.attr("data-spaceBetween")||0,h=t.attr("data-pagination-type")||"bullets";t.addClass(a).attr("swiper-new-index",e);var f={loop:o,autoHeight:i,direction:c,spaceBetween:l,parallax:d,effect:u,lazy:{loadPrevNext:!0},autoplay:n,speed:s,pagination:{el:".new-swiper."+a+" .swiper-pagination",type:h,clickable:!0},navigation:{nextEl:".new-swiper."+a+" .swiper-button-next",prevEl:".new-swiper."+a+" .swiper-button-prev"},on:{lazyImageReady:function(p,g){jQuery(g).addClass("lazyloaded")},slideChange:function(){t.find(".new-dplayer").each(function(p,g){var v=jQuery(g).data("dplayer");v&&v.pause()})},init:function(){o&&t.find(".swiper-slide-duplicate img").addClass("no-imgbox")}}};h==="thumbnail"&&(f.pagination.type="bullets",f.pagination.bulletClass="pagination-thumbnail-item",f.pagination.bulletActiveClass="pagination-thumbnail-item-active",f.pagination.renderBullet=function(p,g){var v,b,_=jQuery(this.slides[p]).find("img");return _.length&&(_=jQuery(_[0]),v=_.attr("data-src")||_.attr("src")),v?(b='
    ',b):""}),_win.swiper.new[e]=new Swiper(".new-swiper."+a,f)}})}))}window.swiper_tab_AutoHeight=debounce(function(e){var a=e.closest("[swiper-tab-index]");if(a.length){var t=a.attr("swiper-tab-index");_win.swiper.tab[t].updateAutoHeight(500)}},100),jQuery.fn.scrollX=function(){return this.each(function(){var e=jQuery(this),a="is-on";if(!e.data(a)){e.data(a,!0);var t="scroll-x-",r=t+"prev",n=t+"next",i=jQuery(''),s=jQuery('');d()}function o(l){var h=c();e.animate({scrollLeft:l==="prev"?h[0]:h[1]},300,"linear",u)}function d(){e.after(i).after(s),i.on("click",function(){o("prev")}),s.on("click",o),e.parent().hover(u,function(){i.hide(),s.hide()})}function u(){var l=c();l[3]?i.show():i.hide(),l[3]0?p:0;var g=~~(h+l);return g=g>f?f:g,[p,g,f,h]}})},jQuery.fn.Tabcenter=function(){return this.each(function(){var e=jQuery(this),a=e.find(".active");if(a.length){var t=e.innerWidth(),r=a.innerWidth(),n=e.scrollLeft(),i=a.position().left,s=~~(e.prop("scrollWidth")-t),o=~~(n+i-t/2+r/2);o=o>0?o:0,o=o>s?s:o,o!=n&&e.animate({scrollLeft:o},300)}})},_win.bd.on("shown.bs.tab","a[data-ajax]",function(){jQuery(this).closest("ul.list-inline").Tabcenter()}),jQuery(".tab-nav-theme,.tab-nav-but,.index-tab ul.list-inline").Tabcenter();function post_ajax(e,a,t,r,n,i,s,o,d,u,c,l){var h=e.closest(a);if(h.attr("ing"))return!1;var f=v(r),p=e.attr("ajax-href")||e.attr("href")||e.find("a").attr("ajax-href")||e.find("a").attr("href");t=t||a,l=l||(_win.ajax_trigger?_win.ajax_trigger:''+aksrt__("load_more")),d=e.attr("ajax-replace")||d,u=u||_win.ajax_nomore;var g=v(".post_ajax_loader");g.length||(n=n||'

    ',g=jQuery('
    '+n+"
    "));function v(b,_,Q){_=_&&_.length?_:h,Q=Q||a;var j=_.find(">"+b);return j.length||(j=_.find(">*:not("+Q+")>"+b),j.length)||(j=_.find(">*:not("+Q+")>*:not("+Q+")>"+b),j.length)||(j=_.find(">*:not("+Q+")>*:not("+Q+")>*:not("+Q+")>"+b),j.length)?j:jQuery("null#null")}return p&&jQuery.ajax({type:"POST",url:p,dataType:"html",beforeSend:function(){d&&f.length&&f.remove(),h.attr("ing",!0),v(".post_ajax_trigger").remove(),v(".no-more").remove(),v(".post_ajax_loader").remove(),v(".noajax-pag").remove(),v(i).remove(),f=v(r),f.length?c?f.first().before(g):f.last().after(g):h.append(g),g.fadeIn(),swiper_tab_AutoHeight(h)},success:function(b){b=jQuery.parseHTML("
    "+b+"
    ");var _=jQuery(b);_.find("[win-ajax-replace]").each(function(){var Y=jQuery(this).attr("win-ajax-replace"),G=jQuery('[win-ajax-replace="'+Y+'"]');G.length&&(G.html(jQuery(this).html()),jQuery(this).remove())});var Q=_.find(t),j=v(r,Q,t),C=v(i,Q,t),T=C.find(s).attr("href")||C.find(s).find("a").attr("href");C=C.length?C:'
    '+u+"
    ",C=Q.find(".noajax-pag").length?Q.find(".noajax-pag"):C,o&&(C=typeof T<"u"?''+l+"":C);var F=v(".ajax-item-header",Q,t);if(F.length&&(v(".ajax-item-header").remove(),h.prepend(F)),f=v(r),f.length?c?f.first().before(C).before(j):f.last().after(C).after(j):c?h.append(C).append(j):h.append(j).append(C),h.removeAttr("ing").trigger("post_ajax.ed",jQuery(b)),v(".post_ajax_loader",h).hide(),e.attr("no-scroll"))_win.auto_scroll=!0,setTimeout(function(){_win.window.trigger("scroll"),_win.auto_scroll=!1},20);else{var X=d?h:jQuery(j[0]);setTimeout(function(){scrollTopTo(X,-40)},100)}if(e.attr("route")){var Z=e.attr("route-title")||_.find("title").text();history.replaceState(null,Z,p),Z&&jQuery("head title").text(Z)}swiper_tab_AutoHeight(h),auto_fun()}}),!1}if(_win.bd.on("click","[remote-box]",function(){var e=jQuery(this),a=e.attr("remote-box");a&&jQuery.post(a,null,function(t){e.html(t).removeAttr("remote-box"),auto_fun(),e.trigger("aksrt:remote-loaded")})}),_win.bd.on("show.bs.tab","a[data-ajax]",function(){var e=jQuery(this),a=e.data("target")||e.attr("href"),t=a+" .post_ajax_trigger .ajax-next",r=jQuery(t).attr("ajax-replace",!0);if(r.length)r.click();else{var n=e.attr("data-ajax");if(n){var i='';jQuery(a).append(i),jQuery(t).click()}}e.attr("only-one")&&e.removeAttr("data-ajax")}),_win.bd.on("click","[ajax-tab],[ajax-target]",function(){var e=jQuery(this),a=e.attr("ajax-replace")?' ajax-replace="true"':"",t=e.attr("ajax-tab")||e.attr("ajax-target"),r=e.attr("data-ajax"),n='";console.log(t),jQuery(t).find(".post_ajax_trigger").remove(),jQuery(t).append(n),jQuery(t+" .post_ajax_trigger .ajax-next").click(),jQuery('a[href="'+t+'"]').click()}),_win.bd.on("click",".ajax-next",function(e){e.preventDefault();var a=jQuery(this);if(a.hasClass("pag-jump"))return!1;var t='
    '+aksrt__("loading")+"
    ";a.attr("ajax-replace")&&(t='

    ',t+=t,t+=t),t='
    '+t+"
    ";var r=a.attr("ajaxpager-target")||".ajaxpager",n=a.attr("ajaxitem-target")||".ajax-item",i=a.parents(r+":eq(0)").find(n+":first"),s=i.attr("class");if(s&&s.indexOf("posts-item")>-1)if(s.indexOf("card")>-1){var o=s.replace("ajax-item","");t='

    ',t=t.repeat(_wid>766?_wid>992&&!jQuery(".sidebar").length?8:6:4)}else s.indexOf("list")>-1&&(t='

    ',t=t.repeat(_wid>766?4:3));return post_ajax(a,r,r,n,t,".ajax-pag")}),_wid<769&&jQuery(".drawer-sm").length){_win.bd.on("click","[data-drawer]",function(){var e=jQuery(this),a=e.attr("drawer-title")||"",t=e.attr("drawer-selector")||".drawer-sm",r=e.attr("data-drawer"),n=e.attr("route"),i=e.attr("route-back");jQuery(t).Drawer(r,a,n,i)});var this_url=(window.parent.location.origin+window.parent.location.pathname).replace(/(\/*$)/g,"");_win.url_request=window.parent.location.search,setTimeout(function(){jQuery('[data-drawer][route="'+this_url+'"]').click()},20)}else _win.bd.on("shown.bs.tab","[data-drawer][route]",tabOnRoute),_win.bd.on("hide.bs.tab","[data-drawer][route]",tabOnRoute_hidden);_win.bd.on("shown.bs.tab","[data-route]",tabOnRoute),_win.bd.on("hide.bs.tab","[data-route]",tabOnRoute_hidden);function tabOnRoute_hidden(){var e=jQuery(this);if(!history.state){var a=e.attr("route")||e.attr("data-route"),t=e.attr("data-target");a&&history.replaceState({tab_id:t},null,a)}}function tabOnRoute(){var e=jQuery(this);if(e.attr("onpopstate"))e.attr("onpopstate",!1);else{var a=e.attr("route")||e.attr("data-route"),t=e.attr("data-target");a&&routeGo(a,{tab_id:t})}}window.onpopstate=function(e){var a=e.state&&jQuery('[data-toggle="tab"][data-target="'+e.state.tab_id+'"]');a&&a.length&&a.attr("onpopstate",!0).click()};function routeGo(e,a,t){t=t||document.title,e&&history.pushState(a,t,e)}if(jQuery.fn.loading=function(e){var a=jQuery(this);e=e=="show"||e=="hide"?e:a.hasClass("loading-show")?"hide":"show";var t="loading-backdrop",r='';return e=="show"?a.addClass("loading-show").append(r).find("."+t).fadeIn(200):a.removeClass("loading-show").find("."+t).fadeOut(200,function(){jQuery(this).remove()}),a},jQuery.fn.Drawer=function(e,a,t,r){a=a||"";var n=jQuery(this);if(!n.length)return;e=e=="show"||e=="hide"?e:n.hasClass("show")?"hide":"show";var i=jQuery("body");n.attr("on-start")||n.attr("on-start",!0).minitouch({direction:"right",onEnd:function(){n.Drawer("hide")}});function s(d){history.replaceState(null,document.title,d)}switch(e){case"show":var o=jQuery('
    '+a+"
    ").on("click",".drawer-close",function(){n.Drawer("hide")});return i.append(o),setTimeout(function(){i.addClass("drawer-show")},10),r&&n.data("route_back",r),t&&s(t),n.addClass("show");case"hide":return i.removeClass("drawer-show"),setTimeout(function(){jQuery(".drawer-header").remove()},400),s(n.data("route_back")),n.removeClass("show");default:}},jQuery(".wp-block-carousel").length){jQuery("link#swiper").length||jQuery("head").append('');var _sc=jQuery(".wp-block-carousel"),Sw=[];tbquire(["swiper"],function(){_sc.each(function(e){var a=jQuery(this),t="swiper-post-"+e;a.find(".wp-block-gallery>.blocks-gallery-grid").length&&a.find(".wp-block-gallery").html(a.find(".wp-block-gallery>.blocks-gallery-grid").html()),a.find(".wp-block-gallery").removeClass().addClass("swiper-wrapper").find(".blocks-gallery-item,>.wp-block-image").addClass("swiper-slide"),a.find(".carousel-control.left").replaceWith('
    '),a.find(".carousel-control.right").replaceWith('
    ');var r=a.find(".carousel"),n=r.attr("proportion")||.6,i=r.attr("style");r.addClass(t+" new-swiper scale-height").attr("style","--scale-height:"+n*100+"%;"),a.attr("style",i);var s=~~r.attr("data-interval")||6e3,o=r.attr("data-jyloop")||!1,d=r.attr("data-effect")||"slide",u=~~((r.width()+1200)/250)*100;Sw["swiper_wz_"+e]=new Swiper(".wp-block-carousel ."+t,{spaceBetween:10,speed:u,loop:o,effect:d,autoplay:{delay:s,disableOnInteraction:!1},pagination:{el:"."+t+" .swiper-pagination",clickable:!0},navigation:{nextEl:"."+t+" .swiper-button-next",prevEl:"."+t+" .swiper-button-prev"}})})})}_win.bd.on("show.bs.modal loaded.bs.modal",".modal:not(.flex)",function(){var e=jQuery(this),a=e.find(".modal-dialog");e.css("display","block"),a.css({"margin-top":Math.max(0,(_hei-a.height())/2)})}),_win.bd.on("show.bs.modal loaded.bs.modal",".modal",function(){auto_fun()}),_win.modal_z_index=1050,_win.bd.on("show.bs.modal",".modal",function(){_win.modal_z_index++,jQuery(".modal.in").addClass("modal-parent"),jQuery(this).css("z-index",_win.modal_z_index).removeClass("modal-parent")}),_win.bd.on("hide.bs.modal",".modal",function(){jQuery(".modal.modal-parent").removeClass("modal-parent")}),_win.bd.on("click",".oauth-untying",function(){if(confirm(aksrt__("confirm_unbind"))==!0){var e=jQuery(this),a={action:"user_oauth_untying",user_id:e.attr("user-id"),type:e.attr("untying-type"),_wpnonce:e.attr("_wpnonce")};return aksrt_ajax(e,a),!1}}),_win.bd.on("click",".medal-add-link",function(){if(confirm(aksrt__("confirm_grant_badge"))==!0)return aksrt_ajax(jQuery(this)),!1}),_win.bd.on("click",".medal-remove-link",function(){if(window.confirm(aksrt__("confirm_revoke_badge")))return aksrt_ajax(jQuery(this)),!1}),_win.bd.on("click","[tab-id]",function(e){var a=jQuery(this).attr("tab-id");if(a){var t=jQuery('a[data-target="#'+a+'"]');t.length||(t=jQuery('a[href="#'+a+'"]')),t.length&&(e.preventDefault(),t.tab("show"))}}),_win.bd.on("click",'[data-toggle="RefreshModal"]',function(e){e.preventDefault();var a=jQuery(this),t=a.attr("data-remote");if(!t){var r=a.attr("data-action");r&&(t=_win.ajax_url+"?action="+r)}return refresh_modal({class:a.attr("data-class")||"",height:a.attr("data-height")||300,mobile_from_bottom:!!a.attr("mobile-bottom"),new:a.attr("new"),touch_close:!a.attr("no-touch"),remote:t}),!1}),_win.bd.on("click",".show-order-modal",function(e){e.preventDefault();var a=jQuery(this),t=a.attr("data-order-id"),r=a.attr("new-modal");refresh_modal({class:"full-sm body-bg",height:420,mobile_from_bottom:!0,touch_close:!0,new:r,remote:_win.ajax_url+"?action=order_details_modal&order_id="+t})});function refresh_modal(e){e.mobile_from_bottom=typeof e.mobile_from_bottom>"u"?!0:e.mobile_from_bottom;var a="refresh_modal",t=e.new,r=e.class||"",n=e.height||200,i=e.mobile_from_bottom&&_wid<769?" bottom":"",s=typeof e.touch_close>"u"?!0:e.touch_close,o="modal flex jc fade"+i,d=e.remote||"",u=e.content||"";r+=" modal-dialog",a+=t?parseInt((Math.random()+1)*Math.pow(10,4)):"";var c="#"+a,l=jQuery(c);if(l.length){var h=l.hasClass("in");h&&(o+=" in");var f=l.find(".modal-content");l.removeClass().addClass(o),l.find(".modal-dialog").removeClass().addClass(r),l.find(".loading-mask").fadeIn(200),l.find(".modal-body").fadeOut(200),f.css({overflow:"hidden",height:h?f.height():100}).animate({height:n})}else{var p='',g='
    ';_win.bd.append(p),l=jQuery(c),l.on("hidden.bs.modal",function(){t?jQuery(this).remove():jQuery(this).find(".modal-content").html(g)}),l.find(".modal-content").html(g).css({height:n,overflow:"hidden"}),_wid<769&&l.minitouch({direction:"bottom",selector:".modal-dialog",start_selector:".modal-colorful-header,.touch-close,.touch",onEnd:function(){l.modal("hide")},stop:function(){return!l.hasClass("bottom")}})}l.find(".touch-close").remove(),i&&s&&l.find(".modal-dialog").append('
    '),l.modal("show"),u?(l.find(".modal-body").html(u),v()):d&&jQuery.post(d,null,function(b){l.find(".modal-body").html(b),setTimeout(function(){l.trigger("loaded.bs.modal")},20),v()});function v(){l.find(".modal-body").fadeIn(50,function(){var b=jQuery(this).outerHeight(!0);l.find(".loading-mask").fadeOut(300),l.find(".modal-content").animate({height:b},300,"swing",function(){l.find(".modal-content").css({height:"",overflow:"",transition:""})})})}return l}window.auto_maxHeight=debounce(z_auto,100);function z_auto(){if(_win.do_hh=document.documentElement.clientHeight,_win.do_hh>document.body.clientHeight){var e=_win.do_hh-jQuery(".footer").outerHeight()-jQuery(".header").outerHeight()-20;jQuery("main").animate({"min-height":e})}}window.auto_fun=debounce(z_auto_fun,100);function z_auto_fun(){jQuery(document).trigger("auto_fun"),jQuery(".auto-search").AutoSearch(),jQuery(".dependency-box").dependency(),jQuery(".cloneable").cloneable(),jQuery("[data-countdown]").countdown(),auto_maxHeight(),jQuery("img[data-src]:not(.lazyload,.lazyloaded,.lazyloading,.swiper-lazy)").addClass("lazyload"),jQuery(".dropdown-code,.dropdown-image,.dropdown-quick-often").length&&tbquire(["input-expand"]),jQuery("[aksrtupload]").length&&tbquire(["mini-upload"]),jQuery("[poster-share]").length&&tbquire(["poster-share"]),jQuery("[data-toggle='tooltip']").tooltip({container:"body"}),jQuery("[data-clipboard-text]").length&&tbquire(["clipboard"]),jQuery("[data-toggle='popover']").popover({sanitize:!1}),_wid>768?(jQuery(".fixed-wrap-nav").autoAffix(20,38),jQuery(".relative>.scroll-x.no-scrollbar").scrollX()):jQuery(".affix-header-sm").autoAffix(0,20),_wid>900&&jQuery(".sidebar").sidebarAffix(),new_swiper(),new_dplayer(),tbquire(["svg-icon"],()=>{show_svg()});var e=_win.highlight_kg?"pre code:not(.enlighter-origin)":"pre code.gl:not(.enlighter-origin),pre code.special:not(.enlighter-origin)";jQuery(e).length&&tbquire(["enlighterjs"],function(){var a=!!_win.highlight_hh;jQuery("link#enlighterjs").length||jQuery("head").append(''),jQuery(e).enlight({linenumbers:a,indent:2,textOverflow:"scroll",rawcodeDbclick:!0,rawButton:!1,infoButton:!1,windowButton:!1,theme:_win.highlight_zt})})}(function(){var e=throttle(function(){var s=document.documentElement.scrollTop+document.body.scrollTop,o=jQuery(".ontop");s>100?_win.bd.addClass("body-scroll"):_win.bd.removeClass("body-scroll"),s>400?o.addClass("show"):o.removeClass("show")},100);_win.window.scroll(e);var a=debounce(function(){jQuery("[data-toggle='tooltip']").tooltip("hide")},500,!0);_win.window.scroll(a);var t=debounce(function(){_win.bd.addClass("scroll-ing")},500,!0),r=debounce(function(){_win.bd.removeClass("scroll-ing")},500);jQuery(".scrolling-hide").length&&_win.window.scroll(t).scroll(r);var n=0,i=debounce(function(){var s=document.documentElement.scrollTop+document.body.scrollTop;n>100&&s>n?_win.auto_scroll||_win.bd.removeClass("scroll-up").addClass("scroll-down"):(!_win.auto_scroll||n<=100)&&_win.bd.removeClass("scroll-down").addClass("scroll-up"),n=s},10,!0);jQuery(".scroll-down-hide").length&&_win.window.scroll(i)})();function scrollTopTo(e,a){var t=0,r=jQuery("body,html"),n=n||300;if(a=a||0,e){var i=e instanceof jQuery?e:jQuery(e);t=i.length?i.offset().top+a-(r.hasClass("nav-fixed")?jQuery(".header").innerHeight()+20:0):0}Math.abs(t-r.scrollTop())<80||(_win.auto_scroll=!0,r.animate({scrollTop:t},n,"swing",function(){setTimeout(function(){_win.auto_scroll=!1},20)}))}_win.bd.on("click",".toggle-radius,.float-right a,.but-ripple,.but,.item-thumbnail,.menu-item >a,.yiyan-box,.relates-thumb li a",function(e){var a=jQuery(this);if(!a.hasClass("nowave")&&!a.hasClass("is-disabled")){a.css({overflow:"hidden",position:"relative"});var t,r=~~a.outerWidth(),n=~~a.outerHeight();r").css({display:"block",background:i,"border-radius":"50%",position:" absolute","-webkit-transform":"scale(0)",transform:"scale(0)",opacity:".3","-webkit-transition":"all 1.5s cubic-bezier(0.22, 0.61, 0.36, 1)",transition:"all 1.5s cubic-bezier(0.22, 0.61, 0.36, 1)","z-index":"1",overflow:"hidden","pointer-events":"none"});a.append(s),s.css({width:t*2+"px",height:t*2+"px",top:e.pageY-a.offset().top-t+"px",left:e.pageX-a.offset().left-t+"px",transform:"scale(1)","-webkit-transform":"scale(1)",opacity:0}),setTimeout(function(){s.remove()},2e3)}}),jQuery.fn.sidebarAffix=function(){var e=jQuery(this),a=e.find("[data-affix]"),t="sidebar-affix";if(!a.length||e.children("."+t).length)return e;var r=jQuery("body"),n=a.innerWidth(),i=jQuery(".header");function s(){return r.hasClass("nav-fixed")&&(!i.hasClass("scroll-down-hide")||!r.hasClass("scroll-down"))?i.outerHeight(!0):20}var o=jQuery('
    ');e.prepend(o);function d(){o.css({top:s()})}var u=0;return o.affix({offset:{top:function(){var c=e.outerHeight(!0)+e.offset().top-s();return c!==u&&o.hasClass("affix")&&d(),u=c,c},bottom:function(){var c=e.parent();return document.body.clientHeight-c.outerHeight()-c.offset().top}}}).on("affix-top.bs.affix",function(){o.html("")}).on("affix.bs.affix",function(){o.find("[data-affix]").length||o.append(e.find("[data-affix]").clone()),d()}).find("[lazyload-action]:not(.lazyload)").addClass("lazyload"),o.hasClass("affix")&&o.trigger("affix.bs.affix"),o.hasClass("affix-bottom")&&o.trigger("affix-bottom.bs.affix"),e},jQuery.fn.autoAffix=function(e,a){e=~~e,a=~~a;var t=jQuery(this);if(t.data("bs.affix"))return t;var r=jQuery("body"),n=~~t.attr("offset-top"),i=~~t.attr("offset-bottom"),s=t.attr("data-wrap"),o=s?jQuery(s):t.parent(),d=jQuery(".header");function u(){return(r.hasClass("nav-fixed")&&(!d.hasClass("scroll-down-hide")||!r.hasClass("scroll-down"))?d.outerHeight():0)+e}function c(){t.next(".affix-clone").remove()}function l(){t.css({top:u()})}function h(){t.next(".affix-clone").length||t.after(t.clone().removeClass("affix-top affix affix-bottom").addClass("affix-clone").css("opacity","0"))}o.css("min-height",t.outerHeight()+a);var f=0;return t.affix({offset:{top:function(){var p=t.parent().offset().top-u()+n;return p!==f&&t.hasClass("affix")&&l(),f=p,p},bottom:function(){return document.body.clientHeight-o.outerHeight()-o.offset().top+a+i}}}).on("affix-top.bs.affix",function(){t.css({top:"",width:""}),c()}).on("affix.bs.affix",function(){h(),l()}).on("affix-bottom.bs.affix",function(){h()}),t.hasClass("affix")&&t.trigger("affix.bs.affix"),t.hasClass("affix-bottom")&&t.trigger("affix-bottom.bs.affix"),t.hasClass("affix-top")&&t.trigger("affix-top.bs.affix"),t},_win.bd.on("click",".toggle-theme",function(e){var a=jQuery("body").hasClass("dark-theme");if(!document.startViewTransition){o();return}const t=document.startViewTransition(()=>{o()}),{clientX:r,clientY:n}=e,i=Math.hypot(Math.max(r,innerWidth-r),Math.max(n,innerHeight-n)),s=[`circle(0px at ${r}px ${n}px)`,`circle(${i}px at ${r}px ${n}px)`];t.ready.then(()=>{document.documentElement.animate({clipPath:a?[...s].reverse():s},{duration:500,easing:a?"ease-out":"ease-in",fill:"both",pseudoElement:a?"::view-transition-old(root)":"::view-transition-new(root)"})});function o(){var d="enlighter-t-"+_win.highlight_white_zt,u="enlighter-t-"+_win.highlight_dark_zt;jQuery("img[switch-src]").each(function(){var f=jQuery(this),p=f.attr("data-src")||f.attr("src"),g=f.attr("switch-src");f.attr("src",g).attr("switch-src",p).attr("data-src","")}),jQuery("img[white-src],img[dark-src]").each(function(){var f=jQuery(this),p=a?f.attr("white-src"):f.attr("dark-src");p&&f.attr("src",p)});var c=jQuery(".enlighter-default"),l=jQuery("body"),h=jQuery("#post_content_ifr").contents().find("body");a?(jQuery('meta[name="theme-color"]').attr("content","#FDFCFE"),document.documentElement.classList.remove("dark"),h.removeClass("dark-theme"),c.removeClass(u).addClass(d),l.removeClass("dark-theme"),jQuery.cookie("theme_mode","white-theme",{path:"/"})):(jQuery('meta[name="theme-color"]').attr("content","#2F3135"),document.documentElement.classList.add("dark"),h.addClass("dark-theme"),c.removeClass(d).addClass(u),l.addClass("dark-theme"),jQuery.cookie("theme_mode","dark-theme",{path:"/"}))}}),_win.bd.on("click","[data-action]",function(){var e=jQuery(this),a=e.attr("data-pid"),t=e.attr("data-action"),r=t,n="aksrt"+r,i={type:r,key:t,pid:a};if(!_win.is_signin){var s=lcs.get(n)||"";if(s.indexOf(","+a+",")!==-1)return notyf(aksrt__(r=="like"?"like_already_post":"like_already_comment"),"warning");s?s.length>=160?(s=s.substring(0,s.length-1),s=s.substr(1).split(","),s.splice(0,1),s.push(a),s=s.join(","),lcs.set(n,","+s+",")):lcs.set(n,s+a+","):lcs.set(n,","+a+",")}action_ajax(e,i,a,r,aksrt__("like_thanks"))});function action_ajax(e,a,t,r,n){if(e.attr("disabled"))return!1;a._wpnonce=_win.post_action_nonce;var i=n||aksrt__("done");jQuery.ajax({type:"POST",url:_win.uri+"/action/action.php",dataType:"json",data:a,beforeSend:function(){e.attr("disabled",!0).find("count").html('')},success:function(s){var o=s.error?"danger":"";s.action&&s.action=="remove"&&(e.removeClass("actived action-animation"),o="warning"),s.action&&s.action=="add"&&e.addClass("actived action-animation"),notyf(s.msg||i,o),e.attr("disabled",!1).find("count").html(s.cuont||"0"),r=="follow_user"&&jQuery('[data-action="follow_user"][data-pid="'+t+'"]').each(function(){jQuery(this).find("count").html(s.cuont)})}})}_win.bd.on("click","[ajax-action]",function(){var e=jQuery(this);if(e.attr("disabled"))return!1;var a=e.attr("data-id"),t=e.attr("ajax-action"),r=e.find("text");r=r.length?r:e.siblings("text");var n=r.html();e.attr("disabled",!0),r.html(''),jQuery.ajax({type:"POST",url:_win.ajax_url,dataType:"json",data:{id:a,action:t,_wpnonce:e.attr("data-nonce")},error:function(i){var s=aksrt_sprintf("ajax_error",i.status,i.statusText);aksrt_is_fatal_error_response(i.responseText)&&(s=aksrt__("ajax_fatal_error")),notyf(s,"danger"),e.attr("disabled",!1),r.html(n)},success:function(i){if(e.attr("disabled",!1),!i.data||!i.success)r.html(n),i.data&&i.data.msg&¬yf(i.data.msg,i.data.ys||"danger");else{if(i=i.data,i.show_modal&&i.modal){var s={class:"modal-mini full-sm",height:330,mobile_from_bottom:!0,touch_close:!0,content:i.modal};i.modal_config&&(s=jQuery.extend(s,i.modal_config)),s.content=i.modal,refresh_modal(s),r.html(n);return}jQuery('[ajax-action="'+t+'"][data-id="'+a+'"]').each(function(){var o=jQuery(this),d=o.find("text");d=d.length?d:o.siblings("text"),d.html(i.text||n).addClass("ajaxed"),i.active?o.addClass("active").siblings(".active").removeClass("active"):o.removeClass("active")})}}})});function throttle(e,a){let t=!0;return function(...r){if(!t)return!1;t=!1,setTimeout(function(){e.apply(this,r),t=!0},a)}}function debounce(e,a,t){var r;return function(){var n=this,i=arguments,s=function(){r=null,t||e.apply(n,i)},o=t&&!r;clearTimeout(r),r=setTimeout(s,a),o&&e.apply(n,i)}}if(_win.bd.on("input focus","textarea[autoHeight]",function(){var e=this,a=~~getComputedStyle(e).getPropertyValue("border-top-width").replace("px","")+~~getComputedStyle(e).getPropertyValue("border-bottom-width").replace("px",""),t=~~jQuery(e).attr("maxHeight");e.style.height="auto",t>e.scrollHeight?(e.style.height=e.scrollHeight+a+"px",e.style.overflow="hidden"):(e.style.height=t+"px",e.style.overflow="auto")}),_win.bd.on("click",".rewards",function(){jQuery("#rewards-popover").modal("show")}),_win.bd.hasClass("author")&&tbquire(["author"]),_win.bd.hasClass("page-template-postsnavs")&&_win.bd.hasClass("logged-admin")&&tbquire(["page-navs"]),jQuery("#modal_admin_set").length&&tbquire(["page-edit"]),jQuery("#commentform,#postcomments").length&&tbquire(["comment"]),_win.bd.hasClass("page-template")&&tbquire(["page-template"]),window.WeChatShareDate&&tbquire(["weixin-share"]),_win.bd.hasClass("search")){var val=jQuery(".search-desc-text .search-key").text();try{var reg=eval("/"+val+"/i");jQuery(".search-tab .item-heading a,.search-tab .item-excerpt,.search-tab .forum-title a,.search-tab .excerpt,#search-tab-user .display-name").each(function(){var e=jQuery(this);e.text().search(reg)!=-1&&e.html(e.html().replace(reg,function(a){return''+a+""}))})}catch(e){}}_win.bd.on("click",".pag-jump .jump-icon",function(){var e=jQuery(this).siblings(".jump-input");pag_jump_go(e)}),_win.bd.on("input",".pag-jump .jump-input",debounce(function(){pag_jump(jQuery(this))},200)),_win.bd.on("keydown",".pag-jump .jump-input",function(e){e.keyCode==13&&pag_jump_go(jQuery(this))});function pag_jump(e){var a=e.attr("max"),t=e.attr("current"),r=~~e.val();return(!r||r<1||r>a)&&(r=r>a?a:"",e.val(r)),r==t?0:r}function pag_jump_go(e){var a=pag_jump(e);if(a){var t=e.attr("base"),r=t.replace("%#%",a),n=e.parent();if(n.hasClass("ajax-next")){e.val("");var i=n.clone().removeClass("pag-jump").addClass("hide").attr("href",r);n.append(i),i.click(),i.remove()}else location.href=r,location.reload}else e.focus()}jQuery.fn.cloneable=function(){var e="cloneable",a="."+e+"-add",t="."+e+"-remove",r="."+e+"-item";function n(i,s,o){var d=i.children(r).length;s&&s<=d?i.nextAll(a).hide():i.nextAll(a).show(),o&&o>=d?i.find(t).hide():i.find(t).show()}return this.each(function(){var i=jQuery(this),s=i.children(r),o="is-on",d="click",u=i.data("max")||0,c=i.data("min")||0;if(n(i,u,c),!(!s.length||i.attr(o))){var l=jQuery(s[0]).clone(!1);l.find("input,textarea").val(""),i.attr(o,!0).on(d,t,function(){jQuery(jQuery(this).parents(r)[0]).remove(),n(i,u,c)}).nextAll(a).on(d,function(){var h=l.clone(!1),f=i.children(r).length;h.find("[name]").each(function(){var p=jQuery(this),g=p.attr("name");g=="_pseudo"||!g.includes("[0]")||p.attr("name",p.attr("name").replace("[0]","["+f+"]"))}),i.append(h),n(i,u,c)})}})},jQuery.fn.dependency=function(){function e(r){return Number(r)}function a(r){switch(r){case!0:case"true":case 1:case"1":return!0;case null:case!1:case"false":case 0:case"0":return!1;default:return r}}function t(r,n,i){switch(r){case"==":return a(n)==a(i);case"!=":return a(n)!=a(i);case">=":return e(i)>=e(n);case"<=":return e(i)<=e(n);case">":return e(i)>e(n);case"<":return e(i)=0;s--)if(jQuery.inArray(i[s],n.split(","))!==-1)return!0}else if(jQuery.inArray(i,n.split(","))!==-1)return!0;return!1;case"not-any":if(jQuery.isArray(i)){for(let s=i.length-1;s>=0;s--)if(jQuery.inArray(i[s],n.split(","))==-1)return!0}else if(jQuery.inArray(i,n.split(","))==-1)return!0;return!1;default:return!1}}return this.each(function(){var r=jQuery(this),n=r.find("[data-controller]");if(n.length){var i="is-on";n.each(function(){var s=jQuery(this);if(!s.attr(i)){var o=s.attr(i,!0).data("controller").split("|"),d=s.data("condition").split("|"),u=s.data("value").toString().split("|");jQuery.each(o,function(c,l){var h=u[c]||"",f=d[c]||d[0]||"==";r.on("change","[name='"+l+"']",function(){var p=jQuery(this),g=p.attr("type"),v=g=="checkbox"?p.is(":checked"):p.val(),b=t(f,h,v);s.trigger("controller.change",b),b?s.show():s.hide()})})}})}})},_win.bd.on("click","[data-for]",function(){var e=jQuery(this),a=e.html(),t=e.attr("data-for"),r=e.parents("form"),n=e.attr("data-value"),i=~~e.attr("data-multiple"),s=e.closest("[for-group]"),o=e.prop("outerHTML");if(s.length||(s=e.parent()),i>1){a="",o="";var d=[],u="",c=e.hasClass("active");if(c)s.find('[data-for="'+t+'"][data-value="'+n+'"]').removeClass("active");else{var l={};if(s.find('[data-for="'+t+'"].active').each(function(){l[jQuery(this).attr("data-value")]=1}),Object.keys(l).length>=i)return notyf(aksrt_sprintf("select_max",i),"danger");s.find('[data-for="'+t+'"][data-value="'+n+'"]').addClass("active")}s.find('[data-for="'+t+'"].active').each(function(){var h=jQuery(this).attr("data-value");d.indexOf(h)==-1&&(a+=jQuery(this).html(),u+='',d.push(h),o+=jQuery(this).clone().addClass("outerhtml-copy").prop("outerHTML"))}),jQuery.each(d,function(h,f){s.find('[data-for="'+t+'"][data-value="'+f+'"]').addClass("active")}),r.find("input[name='"+t+"[]']").remove(),r.append(u)}else s.find('[data-for="'+t+'"]').removeClass("active"),s.find('[data-for="'+t+'"][data-value="'+n+'"]').addClass("active"),r.find("input[name='"+t+"']").val(n).trigger("change");r.find("span[name='"+t+"']").html(a),r.find("input[name=s]").focus(),r.find(".active-outerhtml[name='"+t+"']").html(o)}),_win.bd.on("input","input[limit-min],input[limit-max]",debounce(function(){var e=jQuery(this),a=Number(e.attr("limit-min")),t=Number(e.attr("limit-max")),r=Number(e.val()),n,i="limit-warning";e.next("."+i).length||e.after('');var s=e.next("."+i);e.val().length<1?s.html("").hide():r>t?(n=e.attr("warning-max")||aksrt__("input_max"),s.html(n.replace("1$",t)).fadeIn(150)):r',p=f+''+aksrt__("search_loading")+"",g="is-on";if(e.data(g))return;function v(){var _={},Q=e.serializeObject();jQuery.each(Q,function(j,C){_[j]=C}),e.find("input[name]").each(function(){var j=jQuery(this),C=j.val()||"";_[j.attr("name")]=C}),e.addClass(i),u.html(p),c.html(f),d.css({height:d.outerHeight(),overflow:"hidden"}),jQuery.post(a,_,function(j){var C=j.data;C&&d.html('
    '+C+"
    ").animate({height:d.children("."+o).outerHeight()},200,"swing",function(){d.css({height:"",overflow:"",transition:""})}),e.removeClass(i),u.html(j.remind||""),c.html(l),auto_fun()},"json")}function b(_){_.val().length>=t?v():u.html(h)}e.data(g,!0).find(s).on("input",debounce(function(){b(jQuery(this))},500)).on("keydown",function(_){_.keyCode==13&&(_.preventDefault(),b(jQuery(this)))})})},_win.bd.on("click",".main-search [data-for]",function(){var e=jQuery(".main-search").find(".scale-placeholder");e.length&&e.text(e.attr("default"))}),_win.bd.on("submit",".main-search form",function(){var e=jQuery(this),a=e.serializeObject();jQuery.each(a,function(t,r){(!r||r=="null")&&t!="s"&&e.find('input[name="'+t+'"]').remove()})}),_win.bd.on("click",".main-search-btn",function(){var e=jQuery(this);jQuery(".main-search").addClass("show");var a=jQuery(".main-search [remote-box]").first();if(a.length){a.one("aksrt:remote-loaded",function(){e.trigger("click")}),a.trigger("click");return}var t=jQuery(".main-search form");if(t.length){var r="search-",n={type:e.attr(r+"type"),user:e.attr(r+"user"),trem:e.attr(r+"trem")};jQuery.each(n,function(s,o){if(o){var d=t.find('input[name="'+s+'"]').val(o),u=t.find('[data-for="'+s+'"][data-value="'+o+'"]').click();if(!u.length&&s=="trem"){var c=e.attr("trem-name"),l=t.find(".cat-drop");c&&l.length&&(l.append('
  • '+c+"
  • "),l.find('[data-value="'+o+'"]').click())}d.length||t.append('')}});var i=e.attr(r+"placeholder")||t.find(".scale-placeholder").attr("default");t.find(".scale-placeholder").text(i),setTimeout(function(){t.find('[name="s"]').focus()},100)}}),jQuery(".search-page-ajaxpager").length&&(_win.bd.on("click",".page-search-box a.search_keywords",function(){var e=jQuery(this).clone();return e.addClass("ajax-next").attr("ajax-replace","true").attr("route","true"),jQuery(".search-page-ajaxpager").append(e),e.click().remove(),!1}),_win.bd.on("submit",".page-search-box .search-form",function(){var e=jQuery(this),a=e.serializeObject(),t=new URL(e.attr("action"));t.search=new URLSearchParams(a).toString();var r=jQuery('');return jQuery(".search-page-ajaxpager").append(r),r.click().remove(),!1}));function nav_folding(){var e=".navbar-nav",a="sub-menu",t=jQuery(".navbar-collapse"),r=t.width();t.find(">:not("+e+")").each(function(){r-=jQuery(this).outerWidth()}),r-=jQuery(".navbar-header").outerWidth()+40;var n=66,i=jQuery('');jQuery(e+">li").each(function(){n+=jQuery(this).outerWidth(),n>r&&i.find(">."+a).append(jQuery(this))}),i.find(">."+a+" li").length&&jQuery(e).append(i)}window.debounce_notyf=debounce(notyf,100,!0);function notyf(e,a,t,r){jQuery(".notyn").length||_win.bd.append('
    '),a=a||"success",a=="error"&&(a="danger"),t=t||5e3,t=t<100?t*1e3:t;var n=r?' id="'+r+'"':"",i=jQuery('
    '+e+"
    "),s=!r;r&&jQuery("#"+r).length?(jQuery("#"+r).find(".notyf").removeClass().addClass("notyf "+a).html(e),i=jQuery("#"+r),s=!0):jQuery(".notyn").append(i),s&&setTimeout(function(){notyf_close(i)},t)}function notyf_close(e){e.addClass("notyn-out"),setTimeout(function(){e.remove()},1e3)}_win.bd.on("click",".noty1",function(){notyf_close(jQuery(this))}),_win.passw=1,_win.bd.on("click",".passw",function(){var e=jQuery(this);_win.passw==1?(e.find(".fa").addClass("fa-eye-slash"),e.siblings("input").attr("type","text"),_win.passw=2):(e.find(".fa").removeClass("fa-eye-slash"),e.siblings("input").attr("type","password"),_win.passw=1)}),_win.bd.on("input change focus",".line-form-input",debounce(function(){placeholder_scale(jQuery(this))},100));function placeholder_scale(e){var a=e.val(),t=e.siblings(".scale-placeholder");a.length>0?t.addClass("is-focus"):t.removeClass("is-focus")}function aksrt_is_url(e){try{return new URL(e),!0}catch{return!1}}function is_mail(e){return/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/.test(e)}jQuery.fn.serializeObject=function(){var e={},a=this.serializeArray();return jQuery.each(a,function(){e[this.name]!==void 0?(e[this.name].push||(e[this.name]=[e[this.name]]),e[this.name].push(this.value||"")):e[this.name]=this.value||""}),e},_win.bd.on("click",".trash-history-search",function(){confirm(aksrt__("confirm_clear_search"))==!0&&(jQuery(".history-search").slideUp().delay(1e3,function(){jQuery(this).remove()}),jQuery.cookie("history_search",""))}),_win.bd.on("click",".initiate-checkin",function(){aksrt_ajax(jQuery(this),0,function(e){e.details_link&&jQuery(".initiate-checkin").each(function(){var a=jQuery(e.details_link),t=jQuery(this),r=t.attr("class"),n=t.attr("ed-text");a.addClass(r).removeClass("initiate-checkin").html(n),t.prop("outerHTML",a.prop("outerHTML"))})},aksrt__("checkin_loading"))}),_win.bd.on("click",".single-pay-tabbar",function(){scrollTo("#posts-pay",-50),jQuery("#posts-pay .cashier-link").click()}),_win.bd.on("submit","[ajax-submit]",function(){var e=jQuery(this),a=e.attr("ajax-submit")||'.wp-ajax-submit,[zibajax="submit"]';return e.find(a).click(),!1}),_win.bd.on("click",'.wp-ajax-submit,[zibajax="submit"]',function(){var e=jQuery(this),a=e.attr("data-confirm");return a&&!confirm(a)||aksrt_ajax(jQuery(this)),!1});function aksrt_ajax(e,a,t,r,n){if(e.attr("disabled"))return!1;if(!a){var i=e.attr("form-data");if(i)try{a=jQuery.parseJSON(i)}catch{}if(!a){var s=e.parents("form");a=s.serializeObject()}}var o=e.attr("form-action");o&&(a.action=o);var d=e.html(),u=n?d:''+aksrt__("please_wait")+"";r!="stop"&¬yf(r||aksrt__("processing"),"load","","wp_ajax"),e.attr("disabled",!0).html(u);var c=e.attr("ajax-href")||_win.ajax_url;jQuery.ajax({type:"POST",url:c,data:a,dataType:"json",error:function(l){var h=aksrt_sprintf("ajax_error",l.status,l.statusText);aksrt_is_fatal_error_response(l.responseText)&&(h=aksrt__("ajax_fatal_error")),console.error("ajax请求错误,错误信息如下:",l),notyf(h,"danger","",r!="stop"?"wp_ajax":""),e.attr("disabled",!1).html(d)},success:function(l){var h=l.ys?l.ys:l.error?"danger":"";r!="stop"?notyf(l.msg||aksrt__("done"),h,"","wp_ajax"):l.msg&¬yf(l.msg,h),e.attr("disabled",!1).html(d).trigger("aksrt_ajax.success",l),jQuery.isFunction(t)&&t(l,e,a),l.hide_modal&&e.closest(".modal").modal("hide"),l.reload&&(l.goto?(window.location.href=l.goto,window.location.reload):window.location.reload())}})}_win.bd.on("aksrt_ajax.success","[next-tab]",function(e,a){var t=jQuery(this).attr("next-tab");t&&a&&!a.error&&jQuery('a[href="#'+t+'"]').tab("show")}),jQuery(".erphp-login-must").each(function(){jQuery(this).addClass("signin-loader")}),_win.window.resize(debounce(function(){_wid=_win.window.width(),auto_fun()},500)),jQuery(".collapse").on("shown.bs.collapse",function(){auto_fun()}),_win.bd.on("click",".read-more-open",function(){jQuery(this).parents(".limit-height").css({height:"","max-height":""}).find(".read-more").remove()});function posts_limit_height(){if(jQuery(".limit-height").length){var e=jQuery(".limit-height");if(e.data("posts-limit-ison"))return;var a=e.height(),t=e.attr("data-maxheight");if(~~a>=~~t+79){var r='';e.append(r).data("posts-limit-ison",!0)}}}auto_fun(),thumb_dplayer(_wid>640?".posts-item .item-thumbnail,.forum-lists-cover":".posts-item,.forum-posts",".video-thumb-box[video-url]"),jQuery("[load-click]").attr("no-scroll",!0).click(),jQuery(document).on("lazybeforeunveil",function(e){var a=jQuery(e.target),t=a.attr("lazyload-action");setTimeout(function(){if(t==="ias")if(a.attr("remote-box"))a.click();else{var n=a.is(".ajax-next,.ias-btn")?a:a.find(".ajax-next,.ias-btn");n.attr("no-scroll",!0).click()}if(t=="animated"){var i=a.attr("data-animated");i&&a.addClass("animated "+i).css("visibility","unset")}},200);var r=a.attr("data-bg");r&&a.css("background-image","url("+r+")")});function fps_yh(){var e=0,a=0,t=0,r=0,n,i=0;function s(){n=performance.now(),a++,n-e>=300&&(t=Math.round(a*1e3/(n-e)),a=0,e=n,t>5&&e>1600&&(r=r||t,r=(r+t)/2,r<20&&i++,i>5&&jQuery("body").addClass("fps-accelerat"))),i<=5&&e<15e3?requestAnimationFrame(s):o()}function o(){jQuery.cookie("fps_accelerat",~~r,{path:"/",expires:604800})}requestAnimationFrame(s)}!jQuery.cookie("fps_accelerat")&&!jQuery("body").hasClass("fps-accelerat")&&fps_yh();function partners_scroll_init(){function e(t){if(!(!t||t.dataset.zpsReady==="1")){var r=parseFloat(t.style.getPropertyValue("--zps-speed"))||3,n=t.querySelectorAll("[data-zps-row]");n.forEach(function(i){var s=i.querySelector("[data-zps-track]");if(s){var o=s.querySelector(".zps-group");if(o){var d=function(){var h=s.querySelectorAll(".zps-group.zps-clone");h.forEach(function(j){j.remove()});var f=o.scrollWidth;if(!(f<10)){var p=i.clientWidth||t.clientWidth||window.innerWidth,g=Math.max(f*2,p+f),v=Math.ceil(g/f);v<2&&(v=2);for(var b=1;b0)){c++;var f=function(){c--,c<=0&&d()};h.addEventListener("load",f,{once:!0}),h.addEventListener("error",f,{once:!0})}});var l;window.addEventListener("resize",function(){clearTimeout(l),l=setTimeout(d,200)})}}}),t.dataset.zpsReady="1"}}function a(){document.querySelectorAll(".aksrt-partners-scroll").forEach(e)}a()}function translate_init(){var e=_win.translate_config;e.s&&tbquire(["translate"],function(){translate.selectLanguageTag.show=!1,translate.language.setLocal(e.local||"chinese_simplified"),e.service_url&&translate.request.setHost(e.service_url),e.ignore_text&&(translate.ignore.text=e.ignore_text),e.nomenclature&&e.nomenclature.length>0&&jQuery.each(e.nomenclature,function(n,i){var s=i.from,o=i.to,d=i.value;s=="auto"&&(s=""),d&&o&&translate.nomenclature.append(s,o,d)}),e.auto_discriminate_local&&translate.setAutoDiscriminateLocalLanguage(),e.range&&e.range.length>0&&(translate.language.translateLanguagesRange=e.range),e.loading&&translate.progress.api.startUITip();var a=jQuery(".language-dropdown .dropdown-menu"),t=debounce(function(){jQuery("[data-language]").removeClass("active"),a.loading("show")},400,!0);translate.lifecycle.changeLanguage.trigger.push(t);var r=debounce(function(n){a.loading("hide"),jQuery("[data-language='"+n.to+"']").addClass("active")},400);translate.lifecycle.execute.finally.push(r),_wid>996&&jQuery(".navbar-top .nav>li>a>.menu-item-title").each(function(){var n=jQuery(this);n.css({"max-width":~~n.outerWidth(!0)+5+"px"})}),translate.ignore.class.push("translate-ignore"),translate.ignore.tag.push("svg"),translate.service.use(e.service_use||"client.edge"),translate.listener.start(),translate.execute()})}_win.bd.on("click",".translate-button",function(){var e=jQuery(this),a=e.attr("data-language");translate&&translate.changeLanguage(a)}),(function(){var e="obs-animate",a="."+e,t="in-view",r="__zaniObserved",n="obs-animate-repeat",i=!("IntersectionObserver"in window)||window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;if(i){l(a);return}var s="100px 0px 0px 0px",o=0;function d(p){o=0;for(var g=0,v=0;v8&&(T=T/(g/8)),j.css("transition-delay",T+"s"),j.addClass(t),o++,C||c(Q)}else C&&j.removeClass(t)}}var u=new IntersectionObserver(d,{root:null,rootMargin:s,threshold:.01});function c(p){!p||p.nodeType!==1||!p[r]||(p[r]=!1,u.unobserve(p),setTimeout(function(){l(p)},50))}function l(p){var g=jQuery(p).attr("data-animation"),v="ani-"+g;jQuery(p).removeClass(t+" "+e+" "+v+" "+n).removeAttr("data-animation").removeAttr("data-animation-repeat").css("transition-delay","")}function h(p){!p||p.nodeType!==1||p[r]||(p[r]=!0,u.observe(p))}function f(){jQuery(a).each(function(){h(this)})}f()})();function number_stats_init(){function e(r,n){var i=parseFloat(r.getAttribute("data-target"))||0;if(i===0){r.textContent="0";return}var s=r.getAttribute("data-target")||"0",o=(s.split(".")[1]||"").length,d=~~r.getAttribute("data-duration");n=d>10?d:n;var u=0,c=null;n=n||1500;function l(h){c||(c=h);var f=Math.min((h-c)/n,1),p=1-Math.pow(1-f,1.5),g=u+(i-u)*p;r.textContent=o>0?g.toFixed(o):Math.floor(g).toString(),f<1?requestAnimationFrame(l):r.textContent=o>0?i.toFixed(o):i.toString()}requestAnimationFrame(l)}var a=document.querySelectorAll(".stat-number-wrap");if(a.length){if(!("IntersectionObserver"in window)){a.forEach(function(r){r.querySelectorAll(".stat-number").forEach(function(n){n.textContent=n.getAttribute("data-target")||""})});return}var t=new IntersectionObserver(function(r){r.forEach(function(n){if(n.isIntersecting){var i=n.target;i.dataset.counted!=="1"&&(i.dataset.counted="1",i.querySelectorAll(".stat-number").forEach(function(s){e(s,1500)}),t.unobserve(i))}})},{threshold:.3});a.forEach(function(r){t.observe(r)})}}_win.bd.on("click",".produck-wid-feature-intro .fi-tab",function(){var e=jQuery(this);if(!e.hasClass("is-active")){e.addClass("is-active"),e.siblings().removeClass("is-active");var a=e.closest(".produck-wid-feature-intro").find(".fi-panel");a.removeClass("is-active"),a.eq(e.index()).addClass("is-active")}});function tilt_cases_init(){function e(){var r="ontouchstart"in window||navigator.maxTouchPoints&&navigator.maxTouchPoints>0,n=window.matchMedia&&window.matchMedia("(max-width: 768px)").matches;return r||n}if(e())return;var a=jQuery(".vanilla-tilt:not(.is-initialized)");if(!a.length)return;function t(r,n){var i=r[0].style.transform;i.includes("translate3d")&&(i=i.replace(/translate3d\(.*?\)/g,"").trim()),i=i+" "+n,r.css("transform",i)}tbquire(["tilt"],function(){a.each(function(){var r=jQuery(this),n=r.find("img"),i=parseFloat(r.attr("data-tilt-max"))||10,s=n.length,o=1.22,d=r.closest(".tilt-cases-container")||r,u=r.data("tilt-mouse-event-element");if(u){r.removeAttr("data-tilt-mouse-event-element");var c=r.closest(u);d=c.length?c:d}var l={};d.length&&(l["mouse-event-element"]=d[0]),r.addClass("is-initialized"),VanillaTilt.init(this,l),!(s<=1)&&(this.addEventListener("tiltChange",function(h){var f=h.detail||{},p=parseFloat(f.tiltX)||0,g=parseFloat(f.tiltY)||0;n.each(function(v){var b=jQuery(this),_=parseFloat(b.attr("data-tilt-depth"));if(isNaN(_)&&(_=20),_===0){t(b,"translate3d(0,0,0)");return}var Q=1;s>1&&(Q=.48+v/(s-1)*1.14);var j=_*o*Q,C=p/i*j*-1,T=g/i*j;t(b,"translate3d("+C+"px, "+T+"px, 0)")})}),d&&d.on("mouseleave",function(){n.each(function(){t(jQuery(this),"translate3d(0,0,0)")})}))})})}_win.bd.on("click",".customize-preview-widget-edit",function(e){if(!(!wp||!wp.customize||!wp.customize.widgetsPreview)){var a=jQuery(this),t=a.closest(".customize-preview-widget-box");e.preventDefault(),wp.customize.widgetsPreview.preview.send("focus-widget-control",t.prop("id"))}}),jQuery(document).ready(function(){if(setTimeout(function(){jQuery(".line-form-input").each(function(){placeholder_scale(jQuery(this))}),_win.views&&jQuery.post(_win.ajax_url,{action:"views_record",id:_win.views}),posts_limit_height(),_win.window.trigger("scroll")},1e3),number_stats_init(),translate_init(),partners_scroll_init(),tilt_cases_init(),jQuery(".navbar-top li.menu-item-has-children>a").each(function(){jQuery(this).append('')}),_wid>996&&jQuery(".header").height()>81&&nav_folding(),posts_limit_height(),auto_maxHeight(),jQuery(".feature").length){var e=0,a=0;jQuery(".feature").each(function(){var r=jQuery(this);(e=r.find(".feature-icon").innerHeight()+r.find(".feature-title").innerHeight()+r.find(".feature-note").innerHeight())>a&&(a=e)}),jQuery(".feature").css("height",a)}jQuery(".qrcode").length&&tbquire(["qrcode"],function(){jQuery(".qrcode").each(function(){var r=jQuery(this),n=r.attr("data-qrcode"),i=r.attr("data-size")||160;r.qrcode({width:i,height:i,correctLevel:0,text:n||document.URL,background:"#fff",foreground:"#333"})})}),jQuery(document).on("lazyloaded",function(r){var n=jQuery(r.target);swiper_tab_AutoHeight(n)}),jQuery(document).on("lazyloaded",".gradient-bg img",function(r){var n=jQuery(r.target),i=n.closest(".gradient-bg"),s=i.attr("data-opacity"),o=s?"a":"",d=s?","+s:"";tbquire(["grade"],function(){Grade(i[0],null,function(u){u=u[0];var c=u.gradientData,l="rgb"+o+"("+c[0].rgba.slice(0,3).join(",")+d+") 10%",h="rgb"+o+"("+c[1].rgba.slice(0,3).join(",")+d+") 80%";jQuery(u.element).addClass("gradient-bg-loaded").css("background-image","linear-gradient(135deg, "+l+", "+h+")")})})}),_win.qj_loading&&jQuery(".qj_loading").fadeOut(500).delay(1e3,function(){jQuery(this).remove(),jQuery("#qj_dh_css").remove()});function t(r){var n=_win.uri+"/yiyan/qv-yiyan.php",i;jQuery.ajax({type:"POST",url:n}).done(function(s){var o=s.replace(/\r\n|\r/g,"/&/").trim().split("/&/");if(o){var d=r.attr("type");d?i=d==="en"?o[0]:o[1]:i='
    '+o[0]+'
    '+o[1]+"
    ",r.html(i)}})}jQuery(".yiyan").each(function(){t(jQuery(this))}),setInterval(function(){jQuery(".yiyan").each(function(){t(jQuery(this))})},3e4),jQuery(".yiyan").on("click",function(){t(jQuery(this))}),jQuery("[data-nav] h1,[data-nav] h2,[data-nav] h3,[data-nav] h4").length>2&&tbquire(["section-navs"]),jQuery("[mini-touch]").each(function(){var r=jQuery(this),n=r.attr("touch-direction");r.minitouch({direction:n,onEnd:function(i){r.attr("mini-touch")==="mobile-nav"?jQuery("body").removeClass("mobile-navbar-show"):i.removeClass("show")}})})}); +jQuery.cookie=function(e,o,t){if(o===void 0){var i=null;if(document.cookie&&document.cookie!="")for(var r=document.cookie.split(";"),n=0;n-1||text.indexOf("致命错误")>-1)}function aksrt_sprintf(key){var args=Array.prototype.slice.call(arguments,1),str=aksrt__(key),autoIndex=0;return str.replace(/%(\d+\$)?s/g,function(match,num){var idx=num?parseInt(num,10)-1:autoIndex++;return args[idx]!==void 0&&args[idx]!==null?args[idx]:match})}(function(window2,factory){var lazySizes=factory(window2,window2.document,Date);window2.lazySizes=lazySizes,typeof module=="object"&&module.exports&&(module.exports=lazySizes)})(typeof window<"u"?window:{},function(window2,document2,Date2){"use strict";var lazysizes,lazySizesCfg;if((function(){var prop,lazySizesDefaults={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",loadafterClass:"lazyloadafter",errorClass:"lazyerror",autosizesClass:"lazyautosizes",srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};lazySizesCfg=window2.lazySizesConfig||window2.lazysizesConfig||{};for(prop in lazySizesDefaults)prop in lazySizesCfg||(lazySizesCfg[prop]=lazySizesDefaults[prop])})(),!document2||!document2.getElementsByClassName)return{init:function(){},cfg:lazySizesCfg,noSupport:!0};var docElem=document2.documentElement,supportPicture=window2.HTMLPictureElement,_addEventListener="addEventListener",_getAttribute="getAttribute",addEventListener=window2[_addEventListener].bind(window2),setTimeout2=window2.setTimeout,requestAnimationFrame2=window2.requestAnimationFrame||setTimeout2,requestIdleCallback=window2.requestIdleCallback,regPicture=/^picture$/i,loadEvents=["load","error","lazyincluded","_lazyloaded"],regClassCache={},forEach=Array.prototype.forEach,hasClass=function(ele,cls){return regClassCache[cls]||(regClassCache[cls]=new RegExp("(\\s|^)"+cls+"(\\s|$)")),regClassCache[cls].test(ele[_getAttribute]("class")||"")&®ClassCache[cls]},addClass=function(ele,cls){hasClass(ele,cls)||ele.setAttribute("class",(ele[_getAttribute]("class")||"").trim()+" "+cls)},removeClass=function(ele,cls){var reg2;(reg2=hasClass(ele,cls))&&ele.setAttribute("class",(ele[_getAttribute]("class")||"").replace(reg2," "))},addRemoveLoadEvents=function(dom,fn,add){var action=add?_addEventListener:"removeEventListener";add&&addRemoveLoadEvents(dom,fn),loadEvents.forEach(function(evt){dom[action](evt,fn)})},triggerEvent=function(elem,name,detail,noBubbles,noCancelable){var event=document2.createEvent("Event");return detail||(detail={}),detail.instance=lazysizes,event.initEvent(name,!noBubbles,!noCancelable),event.detail=detail,elem.dispatchEvent(event),event},updatePolyfill=function(el,full){var polyfill;!supportPicture&&(polyfill=window2.picturefill||lazySizesCfg.pf)?(full&&full.src&&!el[_getAttribute]("srcset")&&el.setAttribute("srcset",full.src),polyfill({reevaluate:!0,elements:[el]})):full&&full.src&&(el.src=full.src)},getCSS=function(elem,style){return(getComputedStyle(elem,null)||{})[style]},getWidth=function(elem,parent,width){for(width=width||elem.offsetWidth;width49?function(){requestIdleCallback(run,{timeout:rICTimeout}),rICTimeout!==lazySizesCfg.ricTimeout&&(rICTimeout=lazySizesCfg.ricTimeout)}:rAFIt(function(){setTimeout2(run)},!0);return function(isPriority){var delay;(isPriority=isPriority===!0)&&(rICTimeout=33),!running&&(running=!0,delay=gDelay-(Date2.now()-lastTime),delay<0&&(delay=0),isPriority||delay<9?idleCallback():setTimeout2(idleCallback,delay))}},debounce2=function(func){var timeout,timestamp,wait=99,run=function(){timeout=null,func()},later=function(){var last=Date2.now()-timestamp;last0,visible&&getCSS(parent,"overflow")!="visible"&&(outerRect=parent.getBoundingClientRect(),visible=eLright>outerRect.left&&eLleftouterRect.top-1&&eLtop500&&docElem.clientWidth>500?500:370:lazySizesCfg.expand,lazysizes._defEx=defaultExpand,preloadExpand=defaultExpand*lazySizesCfg.expFactor,hFac=lazySizesCfg.hFac,isBodyHidden=null,currentExpand2&&loadMode>2&&!document2.hidden?(currentExpand=preloadExpand,lowRuns=0):loadMode>1&&lowRuns>1&&isLoading<6?currentExpand=defaultExpand:currentExpand=shrinkExpand),beforeExpandVal!==elemExpand&&(eLvW=innerWidth+elemExpand*hFac,elvH=innerHeight+elemExpand,elemNegativeExpand=elemExpand*-1,beforeExpandVal=elemExpand),rect=lazyloadElems[i].getBoundingClientRect(),(eLbottom=rect.bottom)>=elemNegativeExpand&&(eLtop=rect.top)<=elvH&&(eLright=rect.right)>=elemNegativeExpand*hFac&&(eLleft=rect.left)<=eLvW&&(eLbottom||eLright||eLleft||eLtop)&&(lazySizesCfg.loadHidden||isVisible(lazyloadElems[i]))&&(isCompleted&&isLoading<3&&!elemExpandVal&&(loadMode<3||lowRuns<4)||isNestedVisible(lazyloadElems[i],elemExpand))){if(unveilElement(lazyloadElems[i]),loadedSomething=!0,isLoading>9)break}else!loadedSomething&&isCompleted&&!autoLoadElem&&isLoading<4&&lowRuns<4&&loadMode>2&&(preloadElems[0]||lazySizesCfg.preloadAfterLoad)&&(preloadElems[0]||!elemExpandVal&&(eLbottom||eLright||eLleft||eLtop||lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr)!="auto"))&&(autoLoadElem=preloadElems[0]||lazyloadElems[i])}autoLoadElem&&!loadedSomething&&unveilElement(autoLoadElem)}},throttledCheckElements=throttle2(checkElements),switchLoadingClass=function(e){var elem=e.target;if(elem._lazyCache){delete elem._lazyCache;return}resetPreloading(e),addClass(elem,lazySizesCfg.loadedClass),removeClass(elem,lazySizesCfg.loadingClass),addRemoveLoadEvents(elem,rafSwitchLoadingClass),triggerEvent(elem,"lazyloaded"),setTimeout2(function(){addClass(elem,lazySizesCfg.loadafterClass)},700)},rafedSwitchLoadingClass=rAFIt(switchLoadingClass),rafSwitchLoadingClass=function(e){rafedSwitchLoadingClass({target:e.target})},changeIframeSrc=function(elem,src){try{elem.contentWindow.location.replace(src)}catch{elem.src=src}},handleSources=function(source){var customMedia,sourceSrcset=source[_getAttribute](lazySizesCfg.srcsetAttr);(customMedia=lazySizesCfg.customMedia[source[_getAttribute]("data-media")||source[_getAttribute]("media")])&&source.setAttribute("media",customMedia),sourceSrcset&&source.setAttribute("srcset",sourceSrcset)},lazyUnveil=rAFIt(function(elem,detail,isAuto,sizes,isImg){var src,srcset,parent,isPicture,event,firesLoad;(event=triggerEvent(elem,"lazybeforeunveil",detail)).defaultPrevented||(sizes&&(isAuto?addClass(elem,lazySizesCfg.autosizesClass):elem.setAttribute("sizes",sizes)),srcset=elem[_getAttribute](lazySizesCfg.srcsetAttr),src=elem[_getAttribute](lazySizesCfg.srcAttr),isImg&&(parent=elem.parentNode,isPicture=parent&®Picture.test(parent.nodeName||"")),firesLoad=detail.firesLoad||"src"in elem&&(srcset||src||isPicture),event={target:elem},addClass(elem,lazySizesCfg.loadingClass),firesLoad&&(clearTimeout(resetPreloadingTimer),resetPreloadingTimer=setTimeout2(resetPreloading,2500),addRemoveLoadEvents(elem,rafSwitchLoadingClass,!0)),isPicture&&forEach.call(parent.getElementsByTagName("source"),handleSources),srcset?elem.setAttribute("srcset",srcset):src&&!isPicture&&(regIframe.test(elem.nodeName)?changeIframeSrc(elem,src):elem.src=src),isImg&&(srcset||isPicture)&&updatePolyfill(elem,{src})),elem._lazyRace&&delete elem._lazyRace,removeClass(elem,lazySizesCfg.lazyClass),rAF(function(){var isLoaded=elem.complete&&elem.naturalWidth>1;(!firesLoad||isLoaded)&&(isLoaded&&addClass(elem,"ls-is-cached"),switchLoadingClass(event),elem._lazyCache=!0,setTimeout2(function(){"_lazyCache"in elem&&delete elem._lazyCache},9)),elem.loading=="lazy"&&isLoading--},!0)}),unveilElement=function(elem){if(!elem._lazyRace){var detail,isImg=regImg.test(elem.nodeName),sizes=isImg&&(elem[_getAttribute](lazySizesCfg.sizesAttr)||elem[_getAttribute]("sizes")),isAuto=sizes=="auto";(isAuto||!isCompleted)&&isImg&&(elem[_getAttribute]("src")||elem.srcset)&&!elem.complete&&!hasClass(elem,lazySizesCfg.errorClass)&&hasClass(elem,lazySizesCfg.lazyClass)||(detail=triggerEvent(elem,"lazyunveilread").detail,isAuto&&autoSizer.updateElem(elem,!0,elem.offsetWidth),elem._lazyRace=!0,isLoading++,lazyUnveil(elem,detail,isAuto,sizes,isImg))}},afterScroll=debounce2(function(){lazySizesCfg.loadMode=3,throttledCheckElements()}),altLoadmodeScrollListner=function(){lazySizesCfg.loadMode==3&&(lazySizesCfg.loadMode=2),afterScroll()},onload=function(){if(!isCompleted){if(Date2.now()-started<999){setTimeout2(onload,999);return}isCompleted=!0,lazySizesCfg.loadMode=3,throttledCheckElements(),addEventListener("scroll",altLoadmodeScrollListner,!0)}};return{_:function(){started=Date2.now(),lazysizes.elements=document2.getElementsByClassName(lazySizesCfg.lazyClass),preloadElems=document2.getElementsByClassName(lazySizesCfg.lazyClass+" "+lazySizesCfg.preloadClass),addEventListener("scroll",throttledCheckElements,!0),addEventListener("resize",throttledCheckElements,!0),addEventListener("pageshow",function(e){if(e.persisted){var loadingElements=document2.querySelectorAll("."+lazySizesCfg.loadingClass);loadingElements.length&&loadingElements.forEach&&requestAnimationFrame2(function(){loadingElements.forEach(function(img){img.complete&&unveilElement(img)})})}}),window2.MutationObserver?new MutationObserver(throttledCheckElements).observe(docElem,{childList:!0,subtree:!0,attributes:!0}):(docElem[_addEventListener]("DOMNodeInserted",throttledCheckElements,!0),docElem[_addEventListener]("DOMAttrModified",throttledCheckElements,!0),setInterval(throttledCheckElements,999)),addEventListener("hashchange",throttledCheckElements,!0),["focus","mouseover","click","load","transitionend","animationend"].forEach(function(name){document2[_addEventListener](name,throttledCheckElements,!0)}),/d$|^c/.test(document2.readyState)?onload():(addEventListener("load",onload),document2[_addEventListener]("DOMContentLoaded",throttledCheckElements),setTimeout2(onload,2e4)),lazysizes.elements.length?(checkElements(),rAF._lsFlush()):throttledCheckElements()},checkElems:throttledCheckElements,unveil:unveilElement,_aLSL:altLoadmodeScrollListner}})(),autoSizer=(function(){var autosizesElems,sizeElement=rAFIt(function(elem,parent,event,width){var sources,i,len;if(elem._lazysizesWidth=width,width+="px",elem.setAttribute("sizes",width),regPicture.test(parent.nodeName||""))for(sources=parent.getElementsByTagName("source"),i=0,len=sources.length;i-40&&angle<40&&distanceX>0?distanceX:0),options.direction=="left"&&(distanceY=0,distanceX=(angle>150||angle<-150)&&0>distanceX?distanceX:0),options.direction=="top"&&(distanceX=0,distanceY=angle>-130&&angle<-50&&0>distanceY?distanceY:0),options.direction=="bottom"&&(distanceX=0,distanceY=angle>50&&angle<130&&distanceY>0?distanceY:0),(distanceX!==0||distanceY!==0)&&(a.preventDefault?a.preventDefault():a.returnValue=!1,cssTransition(_move,distanceX,distanceY,dragging,"grab"),jQuery.isFunction(options.onIng)&&options.onIng(_e,_move,distanceX,distanceY)))}).on("touchend touchcancel pointerup MSPointerUp",touch_selector,function(){var _move=options.start_selector?options.selector?_e.find(options.selector):_e.find(options.start_selector):jQuery(this);dragging&&!is_stop&&(cssTransition(_move,0,0,"null",""),jQuery.isFunction(options.inEnd)&&options.inEnd(_e,_move,distanceX,distanceY),(Math.abs(distanceX)>dep||Math.abs(distanceY)>dep)&&jQuery.isFunction(options.onEnd)&&options.onEnd(_e,_move,distanceX,distanceY),startX=startY=endX=endY=angle=distanceX=distanceY=0,dragging=!1)}).data(is_on,!0)}},_win.bd=jQuery("body"),_win.window=jQuery(window),_win.is_signin=!!_win.bd.hasClass("logged-in");var _wid=_win.window.width(),_hei=_win.window.height();_win.bd.on("click","[data-close]",function(){var e=jQuery(this).attr("data-close");return jQuery(e).removeClass("show in"),!1}),_win.bd.on("click","[data-toggle-class]",function(){var c=jQuery(this).attr("data-toggle-class")||"show",e=jQuery(this).attr("data-target")||this;return jQuery(e).toggleClass(c).trigger("toggleClass"),!1}),_win.bd.on("click",only_drop),_win.bd.on("toggleClass",".dropup,.dropdown",only_drop);function only_drop(e){var drop=jQuery(e.target).closest(".dropup,.dropdown");jQuery(".dropup.open,.dropdown.open").not(drop).removeClass("open")}_win.bd.on("click",".alert-dismissible > .close",function(){jQuery(this).parent().slideUp()}),_win.bd.on("click","[data-onclick]",function(){var e=jQuery(this).attr("data-onclick");return jQuery(e).click()}),jQuery.fn.OnlyOn=function(type,selector,data,fun){var rnotwhite=/\S+/g,is_oned=!1;type=type.match(rnotwhite)[0];var events=jQuery._data(this[0],"events");events&&typeof events.type<"u"&&jQuery.each(events[type],function(i,item){if(item.selector==selector&&item.data==data)return is_oned=!0,!1}),is_oned?console.log("事件重复绑定{type:"+type+",selector:"+selector+",data:"+data+"}"):this.on(type,selector,data,fun)},jQuery.fn.aksrt_ajax=function(data,success,noty,no_loading){return aksrt_ajax(jQuery(this),data,success,noty,no_loading)},jQuery.fn.countdown=function(){function getTimeRemaining(endtime,max_unit){var date=new Date,now=date.getTime(),endDate=new Date(endtime),end=endDate.getTime(),total=end-now,seconds=total/1e3%60;seconds=seconds.toFixed(2);var mseconds=~~(total%1e3),minutes=~~(total/1e3/60%60),hours=~~(total/(1e3*60*60)%24),days=~~(total/(1e3*60*60*24));return max_unit==="minute"&&minutes>0&&(hours=0,days=0,minutes=~~(total/1e3/60)),max_unit==="hour"&&hours>0&&(days=0,hours=~~(total/(1e3*60*60))),seconds=seconds<10?"0"+seconds:seconds,minutes=minutes<10?"0"+minutes:minutes,{total,days,hours,minutes,seconds,mseconds}}jQuery(this).each(function(){var _this=jQuery(this),endtime=_this.attr("data-countdown");if(!endtime)return;var int_second=_this.attr("int-second"),max_unit=_this.attr("max-unit");if(_this.attr("title",aksrt__("countdown_end_time")+endtime),int_second==="auto"){var t=getTimeRemaining(endtime,max_unit);int_second=t.days>0}function updateClock(){var t2=getTimeRemaining(endtime,max_unit);if(int_second&&(t2.seconds=t2.seconds.toString().replace(/\.\d+$/,"")),_this.find(".day").length&&_this.find(".day").html(t2.days),_this.find(".hour").length&&_this.find(".hour").html(t2.hours),_this.find(".minute").length&&_this.find(".minute").html(t2.minutes),_this.find(".second").length)_this.find(".second").html(t2.seconds);else{var html="";t2.days>0&&(html+=''+t2.days+''+aksrt__("countdown_day")+""),(t2.hours>0||t2.days>0)&&(html+=''+t2.hours+''+aksrt__("countdown_hour")+""),(t2.minutes>0||t2.hours>0||t2.days>0)&&(html+=''+t2.minutes+''+aksrt__("countdown_minute")+""),html+=''+t2.seconds+''+aksrt__("countdown_second")+"",_this.html(html)}if(t2.total<=0){clearInterval(timeinterval);var over_text=_this.attr("data-over-text")||aksrt__("countdown_ended");_this.html(over_text).trigger("countdown-over")}}updateClock();var timeinterval=setInterval(updateClock,int_second?1e3:20);_this.removeAttr("data-countdown").addClass("countdown-box")})},_win.dplayer={tbquire:["dplayer"],obj:{}};function new_dplayer(){var selector=".new-dplayer:not(.dplayer-initialized),[data-dplayer]:not(.dplayer-initialized)";jQuery(selector).length&&jQuery(selector).each(function(){var _this=jQuery(this);get_new_dplayer(_this,function(dplayer){_this.addClass("dplayer-initialized").siblings(".dplayer-featured").find(".switch-video").each(function(){var _this2=jQuery(this),video_url=_this2.attr("video-url"),video_pic=_this2.attr("video-pic");_this2.data({"video-url":video_url,"video-pic":video_pic}),_this2.attr({"dplayer-id":dplayer.container.id}),setTimeout(function(){_this2.removeAttr("video-url").removeAttr("video-pic")},50)})})})}function get_new_dplayer(_this,func){var option={},video_url=_this.attr("video-url")||_this.data("video-url"),data_volume=_this.attr("data-volume"),i=parseInt((Math.random()+1)*Math.pow(10,4));if(!(_this.find(".dplayer-video-wrap").length||!video_url)){_this.attr("id","dplayer-"+i),option.container=document.getElementById("dplayer-"+i),option.theme="#f04494",option.video={url:video_url,pic:_this.attr("video-pic")||"",type:_this.attr("video-type")||"auto"},_this.attr("data-loop")&&(option.loop=!0),_this.attr("data-autoplay")&&(option.autoplay=!0),data_volume&&data_volume<1&&(option.volume=data_volume),data_volume==="none"&&(option.volume=0);var option_attr=_this.attr("video-option");if(option_attr){try{option_attr=JSON.parse(option_attr)}catch(e){console.log(e)}jQuery.extend(option,option_attr)}var v_u=video_url.toLowerCase();return v_u.indexOf(".m3u")!=-1&&_win.dplayer.tbquire.push("hls"),v_u.indexOf(".mpd")!=-1&&_win.dplayer.tbquire.push("dash"),v_u.indexOf(".flv")!=-1&&_win.dplayer.tbquire.push("flv"),jQuery("link#dplayer").length||jQuery("dplayer").append(''),_win.dplayer.tbquire.push("dplayer"),tbquire(_win.dplayer.tbquire,function(){try{var newDPlayer=new DPlayer(option);newDPlayer.on("play",function(){_win.dplayer.play=newDPlayer}),_this.data("dplayer",newDPlayer),_win.dplayer.obj[i]=newDPlayer,_this.attr({"video-url":"","video-pic":""}),jQuery.isFunction(func)&&func(newDPlayer)}catch(e){console.error(e)}}),i}}_win.bd.on("click",".swiper-slide.slide-dplayer:not(.slide-dplayer-played) > *",function(){var _this=jQuery(this),dplayer=_this.find(".new-dplayer").data("dplayer");dplayer&&(dplayer.play(),_this.parent().addClass("slide-dplayer-played"))});function thumb_dplayer(mouseenter_e,box_e){var $body=jQuery("body"),thumb_dplayer_data_text="thumb_dplayer_data",thumb_dplayer_data=$body.data(thumb_dplayer_data_text)||{};if(thumb_dplayer_data[mouseenter_e+box_e])return;var ing_class="thumb-dplayer-playing",thumb_hide_class="dplayer-thumb-hide";function to_play(_this_m,_this,dplayer){_this.find(".dplayer-thumb").removeClass(thumb_hide_class),_win.dplayer.thumb_play=dplayer,_this.find(".progress").show(),_this_m.addClass(ing_class)}function to_pause(_this_m,_this,dplayer){dplayer.pause(),_this.find(".dplayer-thumb").addClass(thumb_hide_class),_win.dplayer.thumb_play=!1,_this.find(".progress").hide(),_this_m.removeClass(ing_class)}function video_thumb_stop(){if(_win.dplayer.thumb_play){var _this=jQuery(_win.dplayer.thumb_play.container).closest(box_e),_this_m=_this.closest(mouseenter_e);to_pause(_this_m,_this,_win.dplayer.thumb_play)}}function video_thumb_play(){var _this_m=jQuery(this),_this=_this_m.find(box_e);if(!_this.length)return;var dplayer=_this.find(".dplayer-thumb").data("dplayer");if(dplayer)return to_play(_this_m,_this,dplayer),dplayer.play();function dplayer_init(dplayer2){dplayer2.on("loadeddata",function(){setTimeout(function(){_this.find(".progress-bar").css({width:"100%",opacity:"0",transition:"width .2s, opacity .3s .3s"})},100),setTimeout(function(){_this.find(".progress").remove()},800)}),setTimeout(function(){to_play(_this_m,_this,dplayer2),dplayer2.play()},200)}if(!_this.find(".dplayer-thumb").length){var video_url=_this.attr("video-url"),video_volume=_this.attr("data-volume")||"none",video_pic="",scale_height=~~_this.attr("scale-height"),progress='
    ',_dplayer=jQuery('
    ');_this.find(".video-thumb").html(_dplayer).after(progress),setTimeout(function(){_this.find(".progress-bar").css({transition:"width 6s",width:"80%"})},50),_this.attr("video-url",""),get_new_dplayer(_dplayer,dplayer_init)}}$body.on("mouseenter touchstart",mouseenter_e,video_thumb_play),$body.on("mouseleave",mouseenter_e,video_thumb_stop);var thumb_dplayer_init="thumb_dplayer_init";$body.data(thumb_dplayer_init)||$body.on("touchstart",function(e){var _target=jQuery(e.target);!_target.parents("."+ing_class).length&&_win.dplayer.thumb_play&&video_thumb_stop()}).data(thumb_dplayer_init,!0),thumb_dplayer_data[mouseenter_e+box_e]=!0,$body.data(thumb_dplayer_data_text,thumb_dplayer_data)}_win.bd.on("click",".switch-video",function(){var _this=jQuery(this),dplayer=jQuery("#"+_this.attr("dplayer-id")).data("dplayer"),video_url=_this.data("video-url"),video_pic=_this.data("video-pic");if(!(!video_url||!dplayer||_this.hasClass("active"))){_this.addClass("active").siblings().removeClass("active");var v_u=video_url.toLowerCase();v_u.indexOf(".m3u")!=-1&&_win.dplayer.tbquire.push("hls"),v_u.indexOf(".mpd")!=-1&&_win.dplayer.tbquire.push("dash"),v_u.indexOf(".flv")!=-1&&_win.dplayer.tbquire.push("flv"),tbquire(_win.dplayer.tbquire,function(){try{var op={url:video_url,type:"auto"};video_pic&&(op.pic=video_pic),dplayer.switchVideo(op),setTimeout(function(){dplayer.play()},100)}catch(e){console.log(e)}})}}),_win.bd.on("click",".switch-iframe",function(){var _this=jQuery(this),video_url=_this.attr("iframe-url"),$iframe=_this.closest(".iframe-series").find("iframe");if(!(!video_url||_this.hasClass("active"))){try{$iframe[0].contentWindow.location.replace(video_url)}catch{$iframe.attr("src",video_url)}_this.addClass("active").siblings().removeClass("active")}}),_win.bd.on("click",".file-download-btn",function(){var _this=jQuery(this),id=_this.attr("data-download-file"),nonce=_this.attr("download-nonce");if(_this.attr("target","_blank"),!!id){var href=_win.ajax_url+"?action=download_file&file="+id+"&nonce="+nonce;_this.attr("target","_blank").removeAttr("data-download-file").attr("href",href)}}),_win.bd.on("click",".post-tab-toggle",function(){var _this=jQuery(this),tab_id=_this.attr("tab-id");if(!_this.parent().hasClass("active")){var _con=_this.parent().addClass("active").siblings().removeClass("active").parent().next().find('[tab-id="'+tab_id+'"]');_con.siblings().removeClass("in"),setTimeout(function(){_con.addClass("active").siblings().removeClass("active")},150),setTimeout(function(){_con.addClass("in")},160)}}),_win.swiper=[],_win.swiper.tab={},_win.swiper.scroll={},_win.swiper.new={};function new_swiper(){jQuery(".swiper-scroll:not(.swiper-container-initialized),.new-swiper:not(.swiper-container-initialized),.swiper-tab:not(.swiper-container-initialized)").length&&(jQuery("link#swiper").length||jQuery("head").append(''),tbquire(["swiper"],function(){jQuery(".swiper-scroll").each(function(e){if(!jQuery(this).hasClass("swiper-container-initialized")){var option={},_this=jQuery(this),_eq="swiper-scroll-eq-"+e,slideClass=_this.attr("data-slideClass")||!1;if(slideClass&&(option.slideClass=slideClass),!_this.attr("scroll-nogroup")){var c_w=_this.width(),i_w=_this.find(".swiper-wrapper>*:eq(0)").outerWidth(),slidesPerGroup=~~(c_w/i_w);option.slidesPerGroup=slidesPerGroup||1}option.autoplay=_this.attr("data-autoplay")?{delay:~~_this.attr("data-interval")||4e3,disableOnInteraction:!1}:!1,option.loop=_this.attr("data-loop"),option.slidesPerView="auto",option.mousewheel={forceToAxis:!0},option.freeMode=!0,option.freeModeSticky=!0,option.navigation={nextEl:".swiper-scroll."+_eq+" .swiper-button-next",prevEl:".swiper-scroll."+_eq+" .swiper-button-prev"},_this.addClass(_eq).attr("swiper-scroll-index",e),_win.swiper.scroll[e]=new Swiper(".swiper-scroll."+_eq,option)}}),jQuery(".swiper-tab").each(function(e){if(!jQuery(this).hasClass("swiper-container-initialized")){var _eq="swiper-eq-"+e,_this=jQuery(this),speed=~~_this.attr("data-speed")||~~((_this.width()+1200)/170)*50,initialSlide=~~_this.attr("active-index");speed=speed<300?300:speed;var option={loop:!1,initialSlide,autoHeight:!0,spaceBetween:20,autoplay:!1,speed,pagination:{el:".swiper-tab."+_eq+" .swiper-pagination",clickable:!0},on:{init:function(){auto_maxHeight()},slideChangeTransitionEnd:function(bvv){var b=jQuery(".swiper-tab."+_eq+" .swiper-slide-active .post_ajax_trigger .ajax-open");b.length&&(scrollTopTo(jQuery(".swiper-tab."+_eq),-40),b.attr("no-scroll",!0).click());var r=bvv.onStart&&jQuery('[swiper-scroll-index="'+e+'"] .swiper-slide-thumb-active [data-route]');r&&r.length&&history.replaceState(null,document.title,r.attr("data-route")),bvv.onStart=!0}}},tab_id=_this.attr("swiper-tab"),tab_nav=jQuery('[swiper-tab-nav="'+tab_id+'"]');if(tab_nav.length){var tab_nav_index=tab_nav.attr("swiper-scroll-index");option.thumbs={swiper:_win.swiper.scroll[tab_nav_index],autoScrollOffset:2},tab_nav.on("click","a[data-route]",function(e2){e2.preventDefault()})}_this.addClass(_eq).attr("swiper-tab-index",e),_win.swiper.tab[e]=new Swiper(".swiper-tab."+_eq,option)}}),jQuery(".new-swiper").each(function(e){if(!jQuery(this).hasClass("swiper-container-initialized")){var _eq="swiper-eq-"+e,_this=jQuery(this),delay=~~_this.attr("data-interval")||6e3,autoplay=_this.attr("data-autoplay")?{delay,disableOnInteraction:!1}:!1,auto_h=!!_this.attr("auto-height"),speed=~~_this.attr("data-speed")||~~((_this.width()+1e3)/22)*10;speed=speed<400?400:speed,speed=autoplay===!1?speed/1.6:speed;var loop=!!_this.attr("data-loop"),parallax=!!_this.find("[data-swiper-parallax],[data-swiper-parallax-scale]").length,effect=_this.attr("data-effect")||"slide",direction=_this.attr("data-direction")||"horizontal",spaceBetween=~~_this.attr("data-spaceBetween")||0,pagination_type=_this.attr("data-pagination-type")||"bullets";_this.addClass(_eq).attr("swiper-new-index",e);var swiper_args={loop,autoHeight:auto_h,direction,spaceBetween,parallax,effect,lazy:{loadPrevNext:!0},autoplay,speed,pagination:{el:".new-swiper."+_eq+" .swiper-pagination",type:pagination_type,clickable:!0},navigation:{nextEl:".new-swiper."+_eq+" .swiper-button-next",prevEl:".new-swiper."+_eq+" .swiper-button-prev"},on:{lazyImageReady:function(slideEl,imageEl){jQuery(imageEl).addClass("lazyloaded")},slideChange:function(){_this.find(".new-dplayer").each(function(index,item){var dplayer=jQuery(item).data("dplayer");dplayer&&dplayer.pause()})},init:function(){loop&&_this.find(".swiper-slide-duplicate img").addClass("no-imgbox")}}};pagination_type==="thumbnail"&&(swiper_args.pagination.type="bullets",swiper_args.pagination.bulletClass="pagination-thumbnail-item",swiper_args.pagination.bulletActiveClass="pagination-thumbnail-item-active",swiper_args.pagination.renderBullet=function(index,className){var imgsrc,thumbnail,_img=jQuery(this.slides[index]).find("img");return _img.length&&(_img=jQuery(_img[0]),imgsrc=_img.attr("data-src")||_img.attr("src")),imgsrc?(thumbnail='
    ',thumbnail):""}),_win.swiper.new[e]=new Swiper(".new-swiper."+_eq,swiper_args)}})}))}window.swiper_tab_AutoHeight=debounce(function($con){var tab=$con.closest("[swiper-tab-index]");if(tab.length){var tab_index=tab.attr("swiper-tab-index");_win.swiper.tab[tab_index].updateAutoHeight(500)}},100),jQuery.fn.scrollX=function(){return this.each(function(){var _this=jQuery(this),is_on="is-on";if(!_this.data(is_on)){_this.data(is_on,!0);var btn_class="scroll-x-",prev_btn_class=btn_class+"prev",next_btn_class=btn_class+"next",prev=jQuery(''),next=jQuery('');init()}function scroll(type){var data=get_data();_this.animate({scrollLeft:type==="prev"?data[0]:data[1]},300,"linear",hover_show)}function init(){_this.after(prev).after(next),prev.on("click",function(){scroll("prev")}),next.on("click",scroll),_this.parent().hover(hover_show,function(){prev.hide(),next.hide()})}function hover_show(){var data=get_data();data[3]?prev.show():prev.hide(),data[3]0?prev_scroll:0;var next_scroll=~~(_this_scrollLeft+_this_w);return next_scroll=next_scroll>max?max:next_scroll,[prev_scroll,next_scroll,max,_this_scrollLeft]}})},jQuery.fn.Tabcenter=function(){return this.each(function(){var _this=jQuery(this),_active=_this.find(".active");if(_active.length){var _this_w=_this.innerWidth(),_active_w=_active.innerWidth(),_this_scrollLeft=_this.scrollLeft(),_active_left=_active.position().left,max=~~(_this.prop("scrollWidth")-_this_w),_yd=~~(_this_scrollLeft+_active_left-_this_w/2+_active_w/2);_yd=_yd>0?_yd:0,_yd=_yd>max?max:_yd,_yd!=_this_scrollLeft&&_this.animate({scrollLeft:_yd},300)}})},_win.bd.on("shown.bs.tab","a[data-ajax]",function(){jQuery(this).closest("ul.list-inline").Tabcenter()}),jQuery(".tab-nav-theme,.tab-nav-but,.index-tab ul.list-inline").Tabcenter();function post_ajax(_this,con,jcon,item,loader,pag,next,trigger,replace,nomore,top,ajax_trigger){var $con=_this.closest(con);if($con.attr("ing"))return!1;var $item=find(item),href=_this.attr("ajax-href")||_this.attr("href")||_this.find("a").attr("ajax-href")||_this.find("a").attr("href");jcon=jcon||con,ajax_trigger=ajax_trigger||(_win.ajax_trigger?_win.ajax_trigger:''+aksrt__("load_more")),replace=_this.attr("ajax-replace")||replace,nomore=nomore||_win.ajax_nomore;var $loader=find(".post_ajax_loader");$loader.length||(loader=loader||'

    ',$loader=jQuery('
    '+loader+"
    "));function find(selector,$parent,con_selector){$parent=$parent&&$parent.length?$parent:$con,con_selector=con_selector||con;var $element=$parent.find(">"+selector);return $element.length||($element=$parent.find(">*:not("+con_selector+")>"+selector),$element.length)||($element=$parent.find(">*:not("+con_selector+")>*:not("+con_selector+")>"+selector),$element.length)||($element=$parent.find(">*:not("+con_selector+")>*:not("+con_selector+")>*:not("+con_selector+")>"+selector),$element.length)?$element:jQuery("null#null")}return href&&jQuery.ajax({type:"POST",url:href,dataType:"html",beforeSend:function(){replace&&$item.length&&$item.remove(),$con.attr("ing",!0),find(".post_ajax_trigger").remove(),find(".no-more").remove(),find(".post_ajax_loader").remove(),find(".noajax-pag").remove(),find(pag).remove(),$item=find(item),$item.length?top?$item.first().before($loader):$item.last().after($loader):$con.append($loader),$loader.fadeIn(),swiper_tab_AutoHeight($con)},success:function(a){a=jQuery.parseHTML("
    "+a+"
    ");var $a=jQuery(a);$a.find("[win-ajax-replace]").each(function(){var replace_key=jQuery(this).attr("win-ajax-replace"),replace_e=jQuery('[win-ajax-replace="'+replace_key+'"]');replace_e.length&&(replace_e.html(jQuery(this).html()),jQuery(this).remove())});var $jcon=$a.find(jcon),c_c=find(item,$jcon,jcon),c_p=find(pag,$jcon,jcon),n_h=c_p.find(next).attr("href")||c_p.find(next).find("a").attr("href");c_p=c_p.length?c_p:'
    '+nomore+"
    ",c_p=$jcon.find(".noajax-pag").length?$jcon.find(".noajax-pag"):c_p,trigger&&(c_p=typeof n_h<"u"?''+ajax_trigger+"":c_p);var $item_header=find(".ajax-item-header",$jcon,jcon);if($item_header.length&&(find(".ajax-item-header").remove(),$con.prepend($item_header)),$item=find(item),$item.length?top?$item.first().before(c_p).before(c_c):$item.last().after(c_p).after(c_c):top?$con.append(c_p).append(c_c):$con.append(c_c).append(c_p),$con.removeAttr("ing").trigger("post_ajax.ed",jQuery(a)),find(".post_ajax_loader",$con).hide(),_this.attr("no-scroll"))_win.auto_scroll=!0,setTimeout(function(){_win.window.trigger("scroll"),_win.auto_scroll=!1},20);else{var _scroll_To=replace?$con:jQuery(c_c[0]);setTimeout(function(){scrollTopTo(_scroll_To,-40)},100)}if(_this.attr("route")){var route_title=_this.attr("route-title")||$a.find("title").text();history.replaceState(null,route_title,href),route_title&&jQuery("head title").text(route_title)}swiper_tab_AutoHeight($con),window.AksrtFrontend.rehydrate($con[0],"ajax")}}),!1}if(_win.bd.on("click","[remote-box]",function(){var _this=jQuery(this),remote=_this.attr("remote-box");remote&&jQuery.post(remote,null,function(data){_this.html(data).removeAttr("remote-box"),window.AksrtFrontend.rehydrate(_this[0],"ajax"),_this.trigger("aksrt:remote-loaded")})}),_win.bd.on("show.bs.tab","a[data-ajax]",function(){var _this=jQuery(this),a=_this.data("target")||_this.attr("href"),selector=a+" .post_ajax_trigger .ajax-next",b=jQuery(selector).attr("ajax-replace",!0);if(b.length)b.click();else{var href=_this.attr("data-ajax");if(href){var trigger='';jQuery(a).append(trigger),jQuery(selector).click()}}_this.attr("only-one")&&_this.removeAttr("data-ajax")}),_win.bd.on("click","[ajax-tab],[ajax-target]",function(){var _this=jQuery(this),replace=_this.attr("ajax-replace")?' ajax-replace="true"':"",target=_this.attr("ajax-tab")||_this.attr("ajax-target"),href=_this.attr("data-ajax"),trigger='";console.log(target),jQuery(target).find(".post_ajax_trigger").remove(),jQuery(target).append(trigger),jQuery(target+" .post_ajax_trigger .ajax-next").click(),jQuery('a[href="'+target+'"]').click()}),_win.bd.on("click",".ajax-next",function(e){e.preventDefault();var _this=jQuery(this);if(_this.hasClass("pag-jump"))return!1;var _loader='
    '+aksrt__("loading")+"
    ";_this.attr("ajax-replace")&&(_loader='

    ',_loader+=_loader,_loader+=_loader),_loader='
    '+_loader+"
    ";var t_con=_this.attr("ajaxpager-target")||".ajaxpager",t_item=_this.attr("ajaxitem-target")||".ajax-item",$item1=_this.parents(t_con+":eq(0)").find(t_item+":first"),$item1_class=$item1.attr("class");if($item1_class&&$item1_class.indexOf("posts-item")>-1)if($item1_class.indexOf("card")>-1){var loader_class=$item1_class.replace("ajax-item","");_loader='

    ',_loader=_loader.repeat(_wid>766?_wid>992&&!jQuery(".sidebar").length?8:6:4)}else $item1_class.indexOf("list")>-1&&(_loader='

    ',_loader=_loader.repeat(_wid>766?4:3));return post_ajax(_this,t_con,t_con,t_item,_loader,".ajax-pag")}),_wid<769&&jQuery(".drawer-sm").length){_win.bd.on("click","[data-drawer]",function(){var _this=jQuery(this),title=_this.attr("drawer-title")||"",drawer_selector=_this.attr("drawer-selector")||".drawer-sm",action=_this.attr("data-drawer"),route=_this.attr("route"),route_back=_this.attr("route-back");jQuery(drawer_selector).Drawer(action,title,route,route_back)});var this_url=(window.parent.location.origin+window.parent.location.pathname).replace(/(\/*$)/g,"");_win.url_request=window.parent.location.search,setTimeout(function(){jQuery('[data-drawer][route="'+this_url+'"]').click()},20)}else _win.bd.on("shown.bs.tab","[data-drawer][route]",tabOnRoute),_win.bd.on("hide.bs.tab","[data-drawer][route]",tabOnRoute_hidden);_win.bd.on("shown.bs.tab","[data-route]",tabOnRoute),_win.bd.on("hide.bs.tab","[data-route]",tabOnRoute_hidden);function tabOnRoute_hidden(){var _this=jQuery(this);if(!history.state){var route=_this.attr("route")||_this.attr("data-route"),tab_id=_this.attr("data-target");route&&history.replaceState({tab_id},null,route)}}function tabOnRoute(){var _this=jQuery(this);if(_this.attr("onpopstate"))_this.attr("onpopstate",!1);else{var route=_this.attr("route")||_this.attr("data-route"),tab_id=_this.attr("data-target");route&&routeGo(route,{tab_id})}}window.onpopstate=function(event){var tab=event.state&&jQuery('[data-toggle="tab"][data-target="'+event.state.tab_id+'"]');tab&&tab.length&&tab.attr("onpopstate",!0).click()};function routeGo(url,data,title){title=title||document.title,url&&history.pushState(data,title,url)}if(jQuery.fn.loading=function(action){var _this=jQuery(this);action=action=="show"||action=="hide"?action:_this.hasClass("loading-show")?"hide":"show";var loading_class="loading-backdrop",loading_html='';return action=="show"?_this.addClass("loading-show").append(loading_html).find("."+loading_class).fadeIn(200):_this.removeClass("loading-show").find("."+loading_class).fadeOut(200,function(){jQuery(this).remove()}),_this},jQuery.fn.Drawer=function(action,title,route,route_back){title=title||"";var _this=jQuery(this);if(!_this.length)return;action=action=="show"||action=="hide"?action:_this.hasClass("show")?"hide":"show";var _body=jQuery("body");_this.attr("on-start")||_this.attr("on-start",!0).minitouch({direction:"right",onEnd:function(){_this.Drawer("hide")}});function urlTo(url){history.replaceState(null,document.title,url)}switch(action){case"show":var header=jQuery('
    '+title+"
    ").on("click",".drawer-close",function(){_this.Drawer("hide")});return _body.append(header),setTimeout(function(){_body.addClass("drawer-show")},10),route_back&&_this.data("route_back",route_back),route&&urlTo(route),_this.addClass("show");case"hide":return _body.removeClass("drawer-show"),setTimeout(function(){jQuery(".drawer-header").remove()},400),urlTo(_this.data("route_back")),_this.removeClass("show");default:}},jQuery(".wp-block-carousel").length){jQuery("link#swiper").length||jQuery("head").append('');var _sc=jQuery(".wp-block-carousel"),Sw=[];tbquire(["swiper"],function(){_sc.each(function(si){var _this=jQuery(this),_eq="swiper-post-"+si;_this.find(".wp-block-gallery>.blocks-gallery-grid").length&&_this.find(".wp-block-gallery").html(_this.find(".wp-block-gallery>.blocks-gallery-grid").html()),_this.find(".wp-block-gallery").removeClass().addClass("swiper-wrapper").find(".blocks-gallery-item,>.wp-block-image").addClass("swiper-slide"),_this.find(".carousel-control.left").replaceWith('
    '),_this.find(".carousel-control.right").replaceWith('
    ');var _ss=_this.find(".carousel"),proportion=_ss.attr("proportion")||.6,style=_ss.attr("style");_ss.addClass(_eq+" new-swiper scale-height").attr("style","--scale-height:"+proportion*100+"%;"),_this.attr("style",style);var delay=~~_ss.attr("data-interval")||6e3,loop=_ss.attr("data-jyloop")||!1,effect=_ss.attr("data-effect")||"slide",speed=~~((_ss.width()+1200)/250)*100;Sw["swiper_wz_"+si]=new Swiper(".wp-block-carousel ."+_eq,{spaceBetween:10,speed,loop,effect,autoplay:{delay,disableOnInteraction:!1},pagination:{el:"."+_eq+" .swiper-pagination",clickable:!0},navigation:{nextEl:"."+_eq+" .swiper-button-next",prevEl:"."+_eq+" .swiper-button-prev"}})})})}_win.bd.on("show.bs.modal loaded.bs.modal",".modal:not(.flex)",function(){var o=jQuery(this),i=o.find(".modal-dialog");o.css("display","block"),i.css({"margin-top":Math.max(0,(_hei-i.height())/2)})}),_win.bd.on("show.bs.modal loaded.bs.modal",".modal",function(){window.AksrtFrontend.rehydrate(this,"modal")}),_win.modal_z_index=1050,_win.bd.on("show.bs.modal",".modal",function(){_win.modal_z_index++,jQuery(".modal.in").addClass("modal-parent"),jQuery(this).css("z-index",_win.modal_z_index).removeClass("modal-parent")}),_win.bd.on("hide.bs.modal",".modal",function(){jQuery(".modal.modal-parent").removeClass("modal-parent")}),_win.bd.on("click",".oauth-untying",function(){if(confirm(aksrt__("confirm_unbind"))==!0){var _this=jQuery(this),data={action:"user_oauth_untying",user_id:_this.attr("user-id"),type:_this.attr("untying-type"),_wpnonce:_this.attr("_wpnonce")};return aksrt_ajax(_this,data),!1}}),_win.bd.on("click",".medal-add-link",function(){if(confirm(aksrt__("confirm_grant_badge"))==!0)return aksrt_ajax(jQuery(this)),!1}),_win.bd.on("click",".medal-remove-link",function(){if(window.confirm(aksrt__("confirm_revoke_badge")))return aksrt_ajax(jQuery(this)),!1}),_win.bd.on("click","[tab-id]",function(e){var tab=jQuery(this).attr("tab-id");if(tab){var _tab=jQuery('a[data-target="#'+tab+'"]');_tab.length||(_tab=jQuery('a[href="#'+tab+'"]')),_tab.length&&(e.preventDefault(),_tab.tab("show"))}}),_win.bd.on("click",'[data-toggle="RefreshModal"]',function(e){e.preventDefault();var _this=jQuery(this),remote=_this.attr("data-remote");if(!remote){var action=_this.attr("data-action");action&&(remote=_win.ajax_url+"?action="+action)}return refresh_modal({class:_this.attr("data-class")||"",height:_this.attr("data-height")||300,mobile_from_bottom:!!_this.attr("mobile-bottom"),new:_this.attr("new"),touch_close:!_this.attr("no-touch"),remote}),!1}),_win.bd.on("click",".show-order-modal",function(e){e.preventDefault();var _this=jQuery(this),order_id=_this.attr("data-order-id"),is_new=_this.attr("new-modal");refresh_modal({class:"full-sm body-bg",height:420,mobile_from_bottom:!0,touch_close:!0,new:is_new,remote:_win.ajax_url+"?action=order_details_modal&order_id="+order_id})});function refresh_modal(_config){_config.mobile_from_bottom=typeof _config.mobile_from_bottom>"u"?!0:_config.mobile_from_bottom;var id="refresh_modal",is_new=_config.new,dataclass=_config.class||"",height=_config.height||200,mobile_bottom=_config.mobile_from_bottom&&_wid<769?" bottom":"",touch_close=typeof _config.touch_close>"u"?!0:_config.touch_close,modal_class="modal flex jc fade"+mobile_bottom,remote=_config.remote||"",content=_config.content||"";dataclass+=" modal-dialog",id+=is_new?parseInt((Math.random()+1)*Math.pow(10,4)):"";var _id="#"+id,_modal=jQuery(_id);if(_modal.length){var is_in=_modal.hasClass("in");is_in&&(modal_class+=" in");var $modal_content=_modal.find(".modal-content");_modal.removeClass().addClass(modal_class),_modal.find(".modal-dialog").removeClass().addClass(dataclass),_modal.find(".loading-mask").fadeIn(200),_modal.find(".modal-body").fadeOut(200),$modal_content.css({overflow:"hidden",height:is_in?$modal_content.height():100}).animate({height})}else{var modal_html='',loading='
    ';_win.bd.append(modal_html),_modal=jQuery(_id),_modal.on("hidden.bs.modal",function(){is_new?jQuery(this).remove():jQuery(this).find(".modal-content").html(loading)}),_modal.find(".modal-content").html(loading).css({height,overflow:"hidden"}),_wid<769&&_modal.minitouch({direction:"bottom",selector:".modal-dialog",start_selector:".modal-colorful-header,.touch-close,.touch",onEnd:function(){_modal.modal("hide")},stop:function(){return!_modal.hasClass("bottom")}})}_modal.find(".touch-close").remove(),mobile_bottom&&touch_close&&_modal.find(".modal-dialog").append('
    '),_modal.modal("show"),content?(_modal.find(".modal-body").html(content),_modal_content_open()):remote&&jQuery.post(remote,null,function(data){_modal.find(".modal-body").html(data),setTimeout(function(){_modal.trigger("loaded.bs.modal")},20),_modal_content_open()});function _modal_content_open(){_modal.find(".modal-body").fadeIn(50,function(){var b_height=jQuery(this).outerHeight(!0);_modal.find(".loading-mask").fadeOut(300),_modal.find(".modal-content").animate({height:b_height},300,"swing",function(){_modal.find(".modal-content").css({height:"",overflow:"",transition:""})})})}return _modal}window.auto_maxHeight=debounce(z_auto,100);function z_auto(){if(_win.do_hh=document.documentElement.clientHeight,_win.do_hh>document.body.clientHeight){var min_h=_win.do_hh-jQuery(".footer").outerHeight()-jQuery(".header").outerHeight()-20;jQuery("main").animate({"min-height":min_h})}}window.auto_fun=debounce(function(root){window.AksrtFrontend.rehydrate(root&&root.nodeType?root:document,"ajax")},100);function z_auto_fun(){jQuery(document).trigger("auto_fun"),jQuery(".auto-search").AutoSearch(),jQuery(".dependency-box").dependency(),jQuery(".cloneable").cloneable(),auto_maxHeight(),jQuery("img[data-src]:not(.lazyload,.lazyloaded,.lazyloading,.swiper-lazy)").addClass("lazyload"),jQuery("[data-toggle='tooltip']").tooltip({container:"body"}),jQuery("[data-clipboard-text]").length&&tbquire(["clipboard"]),jQuery("[data-toggle='popover']").popover({sanitize:!1}),_wid>768?(jQuery(".fixed-wrap-nav").autoAffix(20,38),jQuery(".relative>.scroll-x.no-scrollbar").scrollX()):jQuery(".affix-header-sm").autoAffix(0,20),_wid>900&&jQuery(".sidebar").sidebarAffix(),new_swiper(),new_dplayer(),tbquire(["svg-icon"],()=>{show_svg()});var _h_e=_win.highlight_kg?"pre code:not(.enlighter-origin)":"pre code.gl:not(.enlighter-origin),pre code.special:not(.enlighter-origin)";jQuery(_h_e).length&&tbquire(["enlighterjs"],function(){var lin=!!_win.highlight_hh;jQuery("link#enlighterjs").length||jQuery("head").append(''),jQuery(_h_e).enlight({linenumbers:lin,indent:2,textOverflow:"scroll",rawcodeDbclick:!0,rawButton:!1,infoButton:!1,windowButton:!1,theme:_win.highlight_zt})})}(function(){var scroll_throttle=throttle(function(){var h=document.documentElement.scrollTop+document.body.scrollTop,ontop=jQuery(".ontop");h>100?_win.bd.addClass("body-scroll"):_win.bd.removeClass("body-scroll"),h>400?ontop.addClass("show"):ontop.removeClass("show")},100);_win.window.scroll(scroll_throttle);var debounce_scroll_end=debounce(function(){jQuery("[data-toggle='tooltip']").tooltip("hide")},500,!0);_win.window.scroll(debounce_scroll_end);var debounce_scrolling_hide=debounce(function(){_win.bd.addClass("scroll-ing")},500,!0),debounce_scrolling_hide_end=debounce(function(){_win.bd.removeClass("scroll-ing")},500);jQuery(".scrolling-hide").length&&_win.window.scroll(debounce_scrolling_hide).scroll(debounce_scrolling_hide_end);var _last_scroll_top=0,debounce_scroll_down=debounce(function(){var _scroll_top=document.documentElement.scrollTop+document.body.scrollTop;_last_scroll_top>100&&_scroll_top>_last_scroll_top?_win.auto_scroll||_win.bd.removeClass("scroll-up").addClass("scroll-down"):(!_win.auto_scroll||_last_scroll_top<=100)&&_win.bd.removeClass("scroll-down").addClass("scroll-up"),_last_scroll_top=_scroll_top},10,!0);jQuery(".scroll-down-hide").length&&_win.window.scroll(debounce_scroll_down)})();function scrollTopTo(element,offset){var scrollTop=0,body=jQuery("body,html"),duration=duration||300;if(offset=offset||0,element){var target=element instanceof jQuery?element:jQuery(element);scrollTop=target.length?target.offset().top+offset-(body.hasClass("nav-fixed")?jQuery(".header").innerHeight()+20:0):0}Math.abs(scrollTop-body.scrollTop())<80||(_win.auto_scroll=!0,body.animate({scrollTop},duration,"swing",function(){setTimeout(function(){_win.auto_scroll=!1},20)}))}_win.bd.on("click",".toggle-radius,.float-right a,.but-ripple,.but,.item-thumbnail,.menu-item >a,.yiyan-box,.relates-thumb li a",function(e){var _th=jQuery(this);if(!_th.hasClass("nowave")&&!_th.hasClass("is-disabled")){_th.css({overflow:"hidden",position:"relative"});var R,waveWidth=~~_th.outerWidth(),waveHeight=~~_th.outerHeight();waveWidth").css({display:"block",background:cllor,"border-radius":"50%",position:" absolute","-webkit-transform":"scale(0)",transform:"scale(0)",opacity:".3","-webkit-transition":"all 1.5s cubic-bezier(0.22, 0.61, 0.36, 1)",transition:"all 1.5s cubic-bezier(0.22, 0.61, 0.36, 1)","z-index":"1",overflow:"hidden","pointer-events":"none"});_th.append(wave),wave.css({width:R*2+"px",height:R*2+"px",top:e.pageY-_th.offset().top-R+"px",left:e.pageX-_th.offset().left-R+"px",transform:"scale(1)","-webkit-transform":"scale(1)",opacity:0}),setTimeout(function(){wave.remove()},2e3)}}),jQuery.fn.sidebarAffix=function(){var _this=jQuery(this),_affix=_this.find("[data-affix]"),sidebar_class="sidebar-affix";if(!_affix.length||_this.children("."+sidebar_class).length)return _this;var _body=jQuery("body"),affix_width=_affix.innerWidth(),_header=jQuery(".header");function nav_Height(){return _body.hasClass("nav-fixed")&&(!_header.hasClass("scroll-down-hide")||!_body.hasClass("scroll-down"))?_header.outerHeight(!0):20}var sidebarAffix_con=jQuery('
    ');_this.prepend(sidebarAffix_con);function top_css(){sidebarAffix_con.css({top:nav_Height()})}var last_top=0;return sidebarAffix_con.affix({offset:{top:function(){var new_top=_this.outerHeight(!0)+_this.offset().top-nav_Height();return new_top!==last_top&&sidebarAffix_con.hasClass("affix")&&top_css(),last_top=new_top,new_top},bottom:function(){var _wrap=_this.parent();return document.body.clientHeight-_wrap.outerHeight()-_wrap.offset().top}}}).on("affix-top.bs.affix",function(){sidebarAffix_con.html("")}).on("affix.bs.affix",function(){sidebarAffix_con.find("[data-affix]").length||sidebarAffix_con.append(_this.find("[data-affix]").clone()),top_css()}).find("[lazyload-action]:not(.lazyload)").addClass("lazyload"),sidebarAffix_con.hasClass("affix")&&sidebarAffix_con.trigger("affix.bs.affix"),sidebarAffix_con.hasClass("affix-bottom")&&sidebarAffix_con.trigger("affix-bottom.bs.affix"),_this},jQuery.fn.autoAffix=function(top,bottom){top=~~top,bottom=~~bottom;var _this=jQuery(this);if(_this.data("bs.affix"))return _this;var _body=jQuery("body"),offset_top=~~_this.attr("offset-top"),offset_bottom=~~_this.attr("offset-bottom"),_wrap_attr=_this.attr("data-wrap"),_wrap=_wrap_attr?jQuery(_wrap_attr):_this.parent(),_header=jQuery(".header");function get_nav_Height(){return(_body.hasClass("nav-fixed")&&(!_header.hasClass("scroll-down-hide")||!_body.hasClass("scroll-down"))?_header.outerHeight():0)+top}function remove_clone(){_this.next(".affix-clone").remove()}function top_css(){_this.css({top:get_nav_Height()})}function this_clone(){_this.next(".affix-clone").length||_this.after(_this.clone().removeClass("affix-top affix affix-bottom").addClass("affix-clone").css("opacity","0"))}_wrap.css("min-height",_this.outerHeight()+bottom);var last_top=0;return _this.affix({offset:{top:function(){var new_top=_this.parent().offset().top-get_nav_Height()+offset_top;return new_top!==last_top&&_this.hasClass("affix")&&top_css(),last_top=new_top,new_top},bottom:function(){return document.body.clientHeight-_wrap.outerHeight()-_wrap.offset().top+bottom+offset_bottom}}}).on("affix-top.bs.affix",function(){_this.css({top:"",width:""}),remove_clone()}).on("affix.bs.affix",function(){this_clone(),top_css()}).on("affix-bottom.bs.affix",function(){this_clone()}),_this.hasClass("affix")&&_this.trigger("affix.bs.affix"),_this.hasClass("affix-bottom")&&_this.trigger("affix-bottom.bs.affix"),_this.hasClass("affix-top")&&_this.trigger("affix-top.bs.affix"),_this},_win.bd.on("click",".toggle-theme",function(event){var isDark=jQuery("body").hasClass("dark-theme");if(!document.startViewTransition){toggle();return}const transition=document.startViewTransition(()=>{toggle()}),{clientX,clientY}=event,endRadius=Math.hypot(Math.max(clientX,innerWidth-clientX),Math.max(clientY,innerHeight-clientY)),clipPath=[`circle(0px at ${clientX}px ${clientY}px)`,`circle(${endRadius}px at ${clientX}px ${clientY}px)`];transition.ready.then(()=>{document.documentElement.animate({clipPath:isDark?[...clipPath].reverse():clipPath},{duration:500,easing:isDark?"ease-out":"ease-in",fill:"both",pseudoElement:isDark?"::view-transition-old(root)":"::view-transition-new(root)"})});function toggle(){var highlight_white_zt="enlighter-t-"+_win.highlight_white_zt,highlight_dark_zt="enlighter-t-"+_win.highlight_dark_zt;jQuery("img[switch-src]").each(function(){var _this=jQuery(this),_src=_this.attr("data-src")||_this.attr("src"),_s_src=_this.attr("switch-src");_this.attr("src",_s_src).attr("switch-src",_src).attr("data-src","")}),jQuery("img[white-src],img[dark-src]").each(function(){var _this=jQuery(this),_s_src=isDark?_this.attr("white-src"):_this.attr("dark-src");_s_src&&_this.attr("src",_s_src)});var _enlighter=jQuery(".enlighter-default"),_body=jQuery("body"),_tinymce_body=jQuery("#post_content_ifr").contents().find("body");isDark?(jQuery('meta[name="theme-color"]').attr("content","#FDFCFE"),document.documentElement.classList.remove("dark"),_tinymce_body.removeClass("dark-theme"),_enlighter.removeClass(highlight_dark_zt).addClass(highlight_white_zt),_body.removeClass("dark-theme"),jQuery.cookie("theme_mode","white-theme",{path:"/"})):(jQuery('meta[name="theme-color"]').attr("content","#2F3135"),document.documentElement.classList.add("dark"),_tinymce_body.addClass("dark-theme"),_enlighter.removeClass(highlight_white_zt).addClass(highlight_dark_zt),_body.addClass("dark-theme"),jQuery.cookie("theme_mode","dark-theme",{path:"/"}))}}),_win.bd.on("click","[data-action]",function(){var _this=jQuery(this),s=_this.attr("data-pid"),key=_this.attr("data-action"),type=key,_type="aksrt"+type,data={type,key,pid:s};if(!_win.is_signin){var t=lcs.get(_type)||"";if(t.indexOf(","+s+",")!==-1)return notyf(aksrt__(type=="like"?"like_already_post":"like_already_comment"),"warning");t?t.length>=160?(t=t.substring(0,t.length-1),t=t.substr(1).split(","),t.splice(0,1),t.push(s),t=t.join(","),lcs.set(_type,","+t+",")):lcs.set(_type,t+s+","):lcs.set(_type,","+s+",")}action_ajax(_this,data,s,type,aksrt__("like_thanks"))});function action_ajax(_this,data,pid,type,text){if(_this.attr("disabled"))return!1;data._wpnonce=_win.post_action_nonce;var c=text||aksrt__("done");jQuery.ajax({type:"POST",url:_win.uri+"/action/action.php",dataType:"json",data,beforeSend:function(){_this.attr("disabled",!0).find("count").html('')},success:function(n){var ys=n.error?"danger":"";n.action&&n.action=="remove"&&(_this.removeClass("actived action-animation"),ys="warning"),n.action&&n.action=="add"&&_this.addClass("actived action-animation"),notyf(n.msg||c,ys),_this.attr("disabled",!1).find("count").html(n.cuont||"0"),type=="follow_user"&&jQuery('[data-action="follow_user"][data-pid="'+pid+'"]').each(function(){jQuery(this).find("count").html(n.cuont)})}})}_win.bd.on("click","[ajax-action]",function(){var _this=jQuery(this);if(_this.attr("disabled"))return!1;var id=_this.attr("data-id"),action=_this.attr("ajax-action"),_text=_this.find("text");_text=_text.length?_text:_this.siblings("text");var _this_html=_text.html();_this.attr("disabled",!0),_text.html(''),jQuery.ajax({type:"POST",url:_win.ajax_url,dataType:"json",data:{id,action,_wpnonce:_this.attr("data-nonce")},error:function(n){var _msg=aksrt_sprintf("ajax_error",n.status,n.statusText);aksrt_is_fatal_error_response(n.responseText)&&(_msg=aksrt__("ajax_fatal_error")),notyf(_msg,"danger"),_this.attr("disabled",!1),_text.html(_this_html)},success:function(n){if(_this.attr("disabled",!1),!n.data||!n.success)_text.html(_this_html),n.data&&n.data.msg&¬yf(n.data.msg,n.data.ys||"danger");else{if(n=n.data,n.show_modal&&n.modal){var modal_config={class:"modal-mini full-sm",height:330,mobile_from_bottom:!0,touch_close:!0,content:n.modal};n.modal_config&&(modal_config=jQuery.extend(modal_config,n.modal_config)),modal_config.content=n.modal,refresh_modal(modal_config),_text.html(_this_html);return}jQuery('[ajax-action="'+action+'"][data-id="'+id+'"]').each(function(){var _this2=jQuery(this),_text2=_this2.find("text");_text2=_text2.length?_text2:_this2.siblings("text"),_text2.html(n.text||_this_html).addClass("ajaxed"),n.active?_this2.addClass("active").siblings(".active").removeClass("active"):_this2.removeClass("active")})}}})});function throttle(fn,delay){let valid=!0;return function(...args){if(!valid)return!1;valid=!1,setTimeout(function(){fn.apply(this,args),valid=!0},delay)}}function debounce(callback,delay,immediate){var timeout;return function(){var context=this,args=arguments,later=function(){timeout=null,immediate||callback.apply(context,args)},callNow=immediate&&!timeout;clearTimeout(timeout),timeout=setTimeout(later,delay),callNow&&callback.apply(context,args)}}if(_win.bd.on("input focus","textarea[autoHeight]",function(){var elem=this,border=~~getComputedStyle(elem).getPropertyValue("border-top-width").replace("px","")+~~getComputedStyle(elem).getPropertyValue("border-bottom-width").replace("px",""),max=~~jQuery(elem).attr("maxHeight");elem.style.height="auto",max>elem.scrollHeight?(elem.style.height=elem.scrollHeight+border+"px",elem.style.overflow="hidden"):(elem.style.height=max+"px",elem.style.overflow="auto")}),_win.bd.on("click",".rewards",function(){jQuery("#rewards-popover").modal("show")}),_win.bd.hasClass("search")){var val=jQuery(".search-desc-text .search-key").text();try{var reg=eval("/"+val+"/i");jQuery(".search-tab .item-heading a,.search-tab .item-excerpt,.search-tab .forum-title a,.search-tab .excerpt,#search-tab-user .display-name").each(function(){var $this=jQuery(this);$this.text().search(reg)!=-1&&$this.html($this.html().replace(reg,function(w){return''+w+""}))})}catch(e){}}_win.bd.on("click",".pag-jump .jump-icon",function(){var _input=jQuery(this).siblings(".jump-input");pag_jump_go(_input)}),_win.bd.on("input",".pag-jump .jump-input",debounce(function(){pag_jump(jQuery(this))},200)),_win.bd.on("keydown",".pag-jump .jump-input",function(event){event.keyCode==13&&pag_jump_go(jQuery(this))});function pag_jump(_input){var max=_input.attr("max"),current=_input.attr("current"),val2=~~_input.val();return(!val2||val2<1||val2>max)&&(val2=val2>max?max:"",_input.val(val2)),val2==current?0:val2}function pag_jump_go(_input){var val2=pag_jump(_input);if(val2){var base=_input.attr("base"),url=base.replace("%#%",val2),parent=_input.parent();if(parent.hasClass("ajax-next")){_input.val("");var _ajax_link=parent.clone().removeClass("pag-jump").addClass("hide").attr("href",url);parent.append(_ajax_link),_ajax_link.click(),_ajax_link.remove()}else location.href=url,location.reload}else _input.focus()}jQuery.fn.cloneable=function(){var cloneable_text="cloneable",cloneable_add_e="."+cloneable_text+"-add",cloneable_remove_e="."+cloneable_text+"-remove",cloneable_item_e="."+cloneable_text+"-item";function max_min(_this,max,min){var count=_this.children(cloneable_item_e).length;max&&max<=count?_this.nextAll(cloneable_add_e).hide():_this.nextAll(cloneable_add_e).show(),min&&min>=count?_this.find(cloneable_remove_e).hide():_this.find(cloneable_remove_e).show()}return this.each(function(){var _this=jQuery(this),_item=_this.children(cloneable_item_e),is_on="is-on",click="click",max=_this.data("max")||0,min=_this.data("min")||0;if(max_min(_this,max,min),!(!_item.length||_this.attr(is_on))){var add_item=jQuery(_item[0]).clone(!1);add_item.find("input,textarea").val(""),_this.attr(is_on,!0).on(click,cloneable_remove_e,function(){jQuery(jQuery(this).parents(cloneable_item_e)[0]).remove(),max_min(_this,max,min)}).nextAll(cloneable_add_e).on(click,function(){var _add_item=add_item.clone(!1),count=_this.children(cloneable_item_e).length;_add_item.find("[name]").each(function(){var $this=jQuery(this),name=$this.attr("name");name=="_pseudo"||!name.includes("[0]")||$this.attr("name",$this.attr("name").replace("[0]","["+count+"]"))}),_this.append(_add_item),max_min(_this,max,min)})}})},jQuery.fn.dependency=function(){function _number(val2){return Number(val2)}function checkBoolean(v){switch(v){case!0:case"true":case 1:case"1":return!0;case null:case!1:case"false":case 0:case"0":return!1;default:return v}}function evalCondition(condition,val1,val2){switch(condition){case"==":return checkBoolean(val1)==checkBoolean(val2);case"!=":return checkBoolean(val1)!=checkBoolean(val2);case">=":return _number(val2)>=_number(val1);case"<=":return _number(val2)<=_number(val1);case">":return _number(val2)>_number(val1);case"<":return _number(val2)<_number(val1);case"any":if(jQuery.isArray(val2)){for(let i=val2.length-1;i>=0;i--)if(jQuery.inArray(val2[i],val1.split(","))!==-1)return!0}else if(jQuery.inArray(val2,val1.split(","))!==-1)return!0;return!1;case"not-any":if(jQuery.isArray(val2)){for(let i=val2.length-1;i>=0;i--)if(jQuery.inArray(val2[i],val1.split(","))==-1)return!0}else if(jQuery.inArray(val2,val1.split(","))==-1)return!0;return!1;default:return!1}}return this.each(function(){var $this=jQuery(this),$fields=$this.find("[data-controller]");if($fields.length){var is_on="is-on";$fields.each(function(){var $field=jQuery(this);if(!$field.attr(is_on)){var controllers=$field.attr(is_on,!0).data("controller").split("|"),conditions=$field.data("condition").split("|"),values=$field.data("value").toString().split("|");jQuery.each(controllers,function(index,depend_id){var value=values[index]||"",condition=conditions[index]||conditions[0]||"==";$this.on("change","[name='"+depend_id+"']",function(){var $elem=jQuery(this),_type=$elem.attr("type"),val2=_type=="checkbox"?$elem.is(":checked"):$elem.val(),is_show=evalCondition(condition,value,val2);$field.trigger("controller.change",is_show),is_show?$field.show():$field.hide()})})}})}})},_win.bd.on("click","[data-for]",function(){var _this=jQuery(this),_tt=_this.html(),_for=_this.attr("data-for"),_form=_this.parents("form"),_v=_this.attr("data-value"),multiple=~~_this.attr("data-multiple"),_group=_this.closest("[for-group]"),active_outerHTML=_this.prop("outerHTML");if(_group.length||(_group=_this.parent()),multiple>1){_tt="",active_outerHTML="";var active_array=[],_input="",is_active=_this.hasClass("active");if(is_active)_group.find('[data-for="'+_for+'"][data-value="'+_v+'"]').removeClass("active");else{var ii={};if(_group.find('[data-for="'+_for+'"].active').each(function(){ii[jQuery(this).attr("data-value")]=1}),Object.keys(ii).length>=multiple)return notyf(aksrt_sprintf("select_max",multiple),"danger");_group.find('[data-for="'+_for+'"][data-value="'+_v+'"]').addClass("active")}_group.find('[data-for="'+_for+'"].active').each(function(){var _this_value=jQuery(this).attr("data-value");active_array.indexOf(_this_value)==-1&&(_tt+=jQuery(this).html(),_input+='',active_array.push(_this_value),active_outerHTML+=jQuery(this).clone().addClass("outerhtml-copy").prop("outerHTML"))}),jQuery.each(active_array,function(index,value){_group.find('[data-for="'+_for+'"][data-value="'+value+'"]').addClass("active")}),_form.find("input[name='"+_for+"[]']").remove(),_form.append(_input)}else _group.find('[data-for="'+_for+'"]').removeClass("active"),_group.find('[data-for="'+_for+'"][data-value="'+_v+'"]').addClass("active"),_form.find("input[name='"+_for+"']").val(_v).trigger("change");_form.find("span[name='"+_for+"']").html(_tt),_form.find("input[name=s]").focus(),_form.find(".active-outerhtml[name='"+_for+"']").html(active_outerHTML)}),_win.bd.on("input","input[limit-min],input[limit-max]",debounce(function(){var _this=jQuery(this),min=Number(_this.attr("limit-min")),max=Number(_this.attr("limit-max")),val2=Number(_this.val()),text,warning_class="limit-warning";_this.next("."+warning_class).length||_this.after('');var _warning=_this.next("."+warning_class);_this.val().length<1?_warning.html("").hide():val2>max?(text=_this.attr("warning-max")||aksrt__("input_max"),_warning.html(text.replace("1$",max)).fadeIn(150)):val2',loading_remind=loading_icon+''+aksrt__("search_loading")+"",is_on="is-on";if(_this.data(is_on))return;function ajax(){var data={},serializeObject=_this.serializeObject();jQuery.each(serializeObject,function(key,val2){data[key]=val2}),_this.find("input[name]").each(function(){var _th=jQuery(this),v=_th.val()||"";data[_th.attr("name")]=v}),_this.addClass(loading),_remind.html(loading_remind),_icon.html(loading_icon),_container.css({height:_container.outerHeight(),overflow:"hidden"}),jQuery.post(ajax_url,data,function(result){var data_html=result.data;data_html&&_container.html('
    '+data_html+"
    ").animate({height:_container.children("."+centent).outerHeight()},200,"swing",function(){_container.css({height:"",overflow:"",transition:""})}),_this.removeClass(loading),_remind.html(result.remind||""),_icon.html(_icon_html),window.AksrtFrontend.rehydrate(_container[0],"ajax")},"json")}function submitted(_input){_input.val().length>=min_length?ajax():_remind.html(min_length_remind)}_this.data(is_on,!0).find(input).on("input",debounce(function(){submitted(jQuery(this))},500)).on("keydown",function(event){event.keyCode==13&&(event.preventDefault(),submitted(jQuery(this)))})})},_win.bd.on("click",".main-search [data-for]",function(){var _placeholder=jQuery(".main-search").find(".scale-placeholder");_placeholder.length&&_placeholder.text(_placeholder.attr("default"))}),_win.bd.on("submit",".main-search form",function(){var _this=jQuery(this),inputs=_this.serializeObject();jQuery.each(inputs,function(k,v){(!v||v=="null")&&k!="s"&&_this.find('input[name="'+k+'"]').remove()})}),_win.bd.on("click",".main-search-btn",function(){var _this=jQuery(this);jQuery(".main-search").addClass("show");var _remote_search=jQuery(".main-search [remote-box]").first();if(_remote_search.length){_remote_search.one("aksrt:remote-loaded",function(){_this.trigger("click")}),_remote_search.trigger("click");return}var _search_form=jQuery(".main-search form");if(_search_form.length){var attr_="search-",obj={type:_this.attr(attr_+"type"),user:_this.attr(attr_+"user"),trem:_this.attr(attr_+"trem")};jQuery.each(obj,function(k,v){if(v){var _k=_search_form.find('input[name="'+k+'"]').val(v),_data_for=_search_form.find('[data-for="'+k+'"][data-value="'+v+'"]').click();if(!_data_for.length&&k=="trem"){var cat_name=_this.attr("trem-name"),_cat_drop=_search_form.find(".cat-drop");cat_name&&_cat_drop.length&&(_cat_drop.append('
  • '+cat_name+"
  • "),_cat_drop.find('[data-value="'+v+'"]').click())}_k.length||_search_form.append('')}});var placeholder=_this.attr(attr_+"placeholder")||_search_form.find(".scale-placeholder").attr("default");_search_form.find(".scale-placeholder").text(placeholder),setTimeout(function(){_search_form.find('[name="s"]').focus()},100)}}),jQuery(".search-page-ajaxpager").length&&(_win.bd.on("click",".page-search-box a.search_keywords",function(){var $this=jQuery(this).clone();return $this.addClass("ajax-next").attr("ajax-replace","true").attr("route","true"),jQuery(".search-page-ajaxpager").append($this),$this.click().remove(),!1}),_win.bd.on("submit",".page-search-box .search-form",function(){var $this=jQuery(this),data=$this.serializeObject(),url=new URL($this.attr("action"));url.search=new URLSearchParams(data).toString();var $link=jQuery('');return jQuery(".search-page-ajaxpager").append($link),$link.click().remove(),!1}));function nav_folding(){var navbar_nav_t=".navbar-nav",sub_menu_t="sub-menu",_collapse=jQuery(".navbar-collapse"),surplus_width=_collapse.width();_collapse.find(">:not("+navbar_nav_t+")").each(function(){surplus_width-=jQuery(this).outerWidth()}),surplus_width-=jQuery(".navbar-header").outerWidth()+40;var navs_width=66,_folding=jQuery('');jQuery(navbar_nav_t+">li").each(function(){navs_width+=jQuery(this).outerWidth(),navs_width>surplus_width&&_folding.find(">."+sub_menu_t).append(jQuery(this))}),_folding.find(">."+sub_menu_t+" li").length&&jQuery(navbar_nav_t).append(_folding)}window.debounce_notyf=debounce(notyf,100,!0);function notyf(str,ys,time,id){jQuery(".notyn").length||_win.bd.append('
    '),ys=ys||"success",ys=="error"&&(ys="danger"),time=time||5e3,time=time<100?time*1e3:time;var id_attr=id?' id="'+id+'"':"",_html=jQuery('
    '+str+"
    "),is_close=!id;id&&jQuery("#"+id).length?(jQuery("#"+id).find(".notyf").removeClass().addClass("notyf "+ys).html(str),_html=jQuery("#"+id),is_close=!0):jQuery(".notyn").append(_html),is_close&&setTimeout(function(){notyf_close(_html)},time)}function notyf_close(_e){_e.addClass("notyn-out"),setTimeout(function(){_e.remove()},1e3)}_win.bd.on("click",".noty1",function(){notyf_close(jQuery(this))}),_win.passw=1,_win.bd.on("click",".passw",function(){var _this=jQuery(this);_win.passw==1?(_this.find(".fa").addClass("fa-eye-slash"),_this.siblings("input").attr("type","text"),_win.passw=2):(_this.find(".fa").removeClass("fa-eye-slash"),_this.siblings("input").attr("type","password"),_win.passw=1)}),_win.bd.on("input change focus",".line-form-input",debounce(function(){placeholder_scale(jQuery(this))},100));function placeholder_scale(_this){var val2=_this.val(),placeholder=_this.siblings(".scale-placeholder");val2.length>0?placeholder.addClass("is-focus"):placeholder.removeClass("is-focus")}function aksrt_is_url(str){try{return new URL(str),!0}catch{return!1}}function is_mail(str){return/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/.test(str)}jQuery.fn.serializeObject=function(){var o={},a=this.serializeArray();return jQuery.each(a,function(){o[this.name]!==void 0?(o[this.name].push||(o[this.name]=[o[this.name]]),o[this.name].push(this.value||"")):o[this.name]=this.value||""}),o},_win.bd.on("click",".trash-history-search",function(){confirm(aksrt__("confirm_clear_search"))==!0&&(jQuery(".history-search").slideUp().delay(1e3,function(){jQuery(this).remove()}),jQuery.cookie("history_search",""))}),_win.bd.on("click",".initiate-checkin",function(){aksrt_ajax(jQuery(this),0,function(data){data.details_link&&jQuery(".initiate-checkin").each(function(){var $link=jQuery(data.details_link),_this=jQuery(this),_class=_this.attr("class"),_text=_this.attr("ed-text");$link.addClass(_class).removeClass("initiate-checkin").html(_text),_this.prop("outerHTML",$link.prop("outerHTML"))})},aksrt__("checkin_loading"))}),_win.bd.on("click",".single-pay-tabbar",function(){scrollTo("#posts-pay",-50),jQuery("#posts-pay .cashier-link").click()}),_win.bd.on("submit","[ajax-submit]",function(){var _this=jQuery(this),but=_this.attr("ajax-submit")||'.wp-ajax-submit,[zibajax="submit"]';return _this.find(but).click(),!1}),_win.bd.on("click",'.wp-ajax-submit,[zibajax="submit"]',function(){var _this=jQuery(this),confirm_text=_this.attr("data-confirm");return confirm_text&&!confirm(confirm_text)||aksrt_ajax(jQuery(this)),!1});function aksrt_ajax(_this,data,success,noty,no_loading){if(_this.attr("disabled"))return!1;if(!data){var _data=_this.attr("form-data");if(_data)try{data=jQuery.parseJSON(_data)}catch{}if(!data){var form=_this.parents("form");data=form.serializeObject()}}var _action=_this.attr("form-action");_action&&(data.action=_action);var _text=_this.html(),_loading=no_loading?_text:''+aksrt__("please_wait")+"";noty!="stop"&¬yf(noty||aksrt__("processing"),"load","","wp_ajax"),_this.attr("disabled",!0).html(_loading);var _url=_this.attr("ajax-href")||_win.ajax_url;jQuery.ajax({type:"POST",url:_url,data,dataType:"json",error:function(n){var _msg=aksrt_sprintf("ajax_error",n.status,n.statusText);aksrt_is_fatal_error_response(n.responseText)&&(_msg=aksrt__("ajax_fatal_error")),console.error("ajax请求错误,错误信息如下:",n),notyf(_msg,"danger","",noty!="stop"?"wp_ajax":""),_this.attr("disabled",!1).html(_text)},success:function(n){var ys=n.ys?n.ys:n.error?"danger":"";noty!="stop"?notyf(n.msg||aksrt__("done"),ys,"","wp_ajax"):n.msg&¬yf(n.msg,ys),_this.attr("disabled",!1).html(_text).trigger("aksrt_ajax.success",n),jQuery.isFunction(success)&&success(n,_this,data),n.hide_modal&&_this.closest(".modal").modal("hide"),n.reload&&(n.goto?(window.location.href=n.goto,window.location.reload):window.location.reload())}})}_win.bd.on("aksrt_ajax.success","[next-tab]",function(e,n){var _next=jQuery(this).attr("next-tab");_next&&n&&!n.error&&jQuery('a[href="#'+_next+'"]').tab("show")}),jQuery(".erphp-login-must").each(function(){jQuery(this).addClass("signin-loader")}),_win.window.resize(debounce(function(){_wid=_win.window.width(),auto_fun()},500)),jQuery(".collapse").on("shown.bs.collapse",function(){auto_fun()}),_win.bd.on("click",".read-more-open",function(){jQuery(this).parents(".limit-height").css({height:"","max-height":""}).find(".read-more").remove()});function posts_limit_height(){if(jQuery(".limit-height").length){var r=jQuery(".limit-height");if(r.data("posts-limit-ison"))return;var r_h=r.height(),r_m=r.attr("data-maxheight");if(~~r_h>=~~r_m+79){var nn='';r.append(nn).data("posts-limit-ison",!0)}}}jQuery(document).on("lazybeforeunveil",function(e){var _this=jQuery(e.target),lazyload_action=_this.attr("lazyload-action");setTimeout(function(){if(lazyload_action==="ias")if(_this.attr("remote-box"))_this.click();else{var _a=_this.is(".ajax-next,.ias-btn")?_this:_this.find(".ajax-next,.ias-btn");_a.attr("no-scroll",!0).click()}if(lazyload_action=="animated"){var animated=_this.attr("data-animated");animated&&_this.addClass("animated "+animated).css("visibility","unset")}},200);var bg=_this.attr("data-bg");bg&&_this.css("background-image","url("+bg+")")});function fps_yh(){var lastTime=0,frames=0,fps=0,fps_average=0,currentTime,stop=0;function updateFPS(){currentTime=performance.now(),frames++,currentTime-lastTime>=300&&(fps=Math.round(frames*1e3/(currentTime-lastTime)),frames=0,lastTime=currentTime,fps>5&&lastTime>1600&&(fps_average=fps_average||fps,fps_average=(fps_average+fps)/2,fps_average<20&&stop++,stop>5&&jQuery("body").addClass("fps-accelerat"))),stop<=5&&lastTime<15e3?requestAnimationFrame(updateFPS):setCookie()}function setCookie(){jQuery.cookie("fps_accelerat",~~fps_average,{path:"/",expires:604800})}requestAnimationFrame(updateFPS)}!jQuery.cookie("fps_accelerat")&&!jQuery("body").hasClass("fps-accelerat")&&fps_yh();function partners_scroll_init(){function init(widget){if(!(!widget||widget.dataset.zpsReady==="1")){var speed=parseFloat(widget.style.getPropertyValue("--zps-speed"))||3,rows=widget.querySelectorAll("[data-zps-row]");rows.forEach(function(row){var track=row.querySelector("[data-zps-track]");if(track){var seed=track.querySelector(".zps-group");if(seed){var setup=function(){var extras=track.querySelectorAll(".zps-group.zps-clone");extras.forEach(function(el){el.remove()});var groupWidth=seed.scrollWidth;if(!(groupWidth<10)){var rowWidth=row.clientWidth||widget.clientWidth||window.innerWidth,needTotal=Math.max(groupWidth*2,rowWidth+groupWidth),copies=Math.ceil(needTotal/groupWidth);copies<2&&(copies=2);for(var i=1;i0)){pending++;var done=function(){pending--,pending<=0&&setup()};img.addEventListener("load",done,{once:!0}),img.addEventListener("error",done,{once:!0})}});var resizeTimer;window.addEventListener("resize",function(){clearTimeout(resizeTimer),resizeTimer=setTimeout(setup,200)})}}}),widget.dataset.zpsReady="1"}}function initAll(){document.querySelectorAll(".aksrt-partners-scroll").forEach(init)}initAll()}function translate_init(){var translate_config=_win.translate_config;translate_config.s&&tbquire(["translate"],function(){translate.selectLanguageTag.show=!1,translate.language.setLocal(translate_config.local||"chinese_simplified"),translate_config.service_url&&translate.request.setHost(translate_config.service_url),translate_config.ignore_text&&(translate.ignore.text=translate_config.ignore_text),translate_config.nomenclature&&translate_config.nomenclature.length>0&&jQuery.each(translate_config.nomenclature,function(index,item){var from=item.from,to=item.to,value=item.value;from=="auto"&&(from=""),value&&to&&translate.nomenclature.append(from,to,value)}),translate_config.auto_discriminate_local&&translate.setAutoDiscriminateLocalLanguage(),translate_config.range&&translate_config.range.length>0&&(translate.language.translateLanguagesRange=translate_config.range),translate_config.loading&&translate.progress.api.startUITip();var $language_dropdown=jQuery(".language-dropdown .dropdown-menu"),translateStart=debounce(function(){jQuery("[data-language]").removeClass("active"),$language_dropdown.loading("show")},400,!0);translate.lifecycle.changeLanguage.trigger.push(translateStart);var renderFinish=debounce(function(uuid){$language_dropdown.loading("hide"),jQuery("[data-language='"+uuid.to+"']").addClass("active")},400);translate.lifecycle.execute.finally.push(renderFinish),_wid>996&&jQuery(".navbar-top .nav>li>a>.menu-item-title").each(function(){var _this=jQuery(this);_this.css({"max-width":~~_this.outerWidth(!0)+5+"px"})}),translate.ignore.class.push("translate-ignore"),translate.ignore.tag.push("svg"),translate.service.use(translate_config.service_use||"client.edge"),translate.listener.start(),translate.execute()})}_win.bd.on("click",".translate-button",function(){var _this=jQuery(this),language=_this.attr("data-language");translate&&translate.changeLanguage(language)}),(function(){var SELECTOR_class="obs-animate",SELECTOR="."+SELECTOR_class,BASE_CLS="in-view",OBS_FLAG="__zaniObserved",REPEAT_CLS="obs-animate-repeat",noAnim=!("IntersectionObserver"in window)||window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;if(noAnim){removeAnimation(SELECTOR);return}var rootMargin="100px 0px 0px 0px",c_i=0;function execute(entries){c_i=0;for(var isIntersecting_count=0,j=0;j8&&(delay=delay/(isIntersecting_count/8)),$el.css("transition-delay",delay+"s"),$el.addClass(BASE_CLS),c_i++,is_repeat||stop(el)}else is_repeat&&$el.removeClass(BASE_CLS)}}var io=new IntersectionObserver(execute,{root:null,rootMargin,threshold:.01});function stop(el){!el||el.nodeType!==1||!el[OBS_FLAG]||(el[OBS_FLAG]=!1,io.unobserve(el),setTimeout(function(){removeAnimation(el)},50))}function removeAnimation(el){var animation=jQuery(el).attr("data-animation"),animation_class="ani-"+animation;jQuery(el).removeClass(BASE_CLS+" "+SELECTOR_class+" "+animation_class+" "+REPEAT_CLS).removeAttr("data-animation").removeAttr("data-animation-repeat").css("transition-delay","")}function register(el){!el||el.nodeType!==1||el[OBS_FLAG]||(el[OBS_FLAG]=!0,io.observe(el))}function scan(){jQuery(SELECTOR).each(function(){register(this)})}scan()})();function number_stats_init(){function animateCount(el,duration){var target=parseFloat(el.getAttribute("data-target"))||0;if(target===0){el.textContent="0";return}var raw=el.getAttribute("data-target")||"0",decimals=(raw.split(".")[1]||"").length,_duration=~~el.getAttribute("data-duration");duration=_duration>10?_duration:duration;var start=0,startTs=null;duration=duration||1500;function step(ts){startTs||(startTs=ts);var progress=Math.min((ts-startTs)/duration,1),eased=1-Math.pow(1-progress,1.5),value=start+(target-start)*eased;el.textContent=decimals>0?value.toFixed(decimals):Math.floor(value).toString(),progress<1?requestAnimationFrame(step):el.textContent=decimals>0?target.toFixed(decimals):target.toString()}requestAnimationFrame(step)}var wraps=document.querySelectorAll(".stat-number-wrap");if(wraps.length){if(!("IntersectionObserver"in window)){wraps.forEach(function(wrap){wrap.querySelectorAll(".stat-number").forEach(function(el){el.textContent=el.getAttribute("data-target")||""})});return}var io=new IntersectionObserver(function(entries){entries.forEach(function(entry){if(entry.isIntersecting){var wrap=entry.target;wrap.dataset.counted!=="1"&&(wrap.dataset.counted="1",wrap.querySelectorAll(".stat-number").forEach(function(el){animateCount(el,1500)}),io.unobserve(wrap))}})},{threshold:.3});wraps.forEach(function(wrap){io.observe(wrap)})}}_win.bd.on("click",".produck-wid-feature-intro .fi-tab",function(){var _this=jQuery(this);if(!_this.hasClass("is-active")){_this.addClass("is-active"),_this.siblings().removeClass("is-active");var panels=_this.closest(".produck-wid-feature-intro").find(".fi-panel");panels.removeClass("is-active"),panels.eq(_this.index()).addClass("is-active")}});function tilt_cases_init(){function isTouchOrMobile(){var isTouch="ontouchstart"in window||navigator.maxTouchPoints&&navigator.maxTouchPoints>0,isSmall=window.matchMedia&&window.matchMedia("(max-width: 768px)").matches;return isTouch||isSmall}if(isTouchOrMobile())return;var cases=jQuery(".vanilla-tilt:not(.is-initialized)");if(!cases.length)return;function setTranslate3d(imgs,translate3d){var transform=imgs[0].style.transform;transform.includes("translate3d")&&(transform=transform.replace(/translate3d\(.*?\)/g,"").trim()),transform=transform+" "+translate3d,imgs.css("transform",transform)}tbquire(["tilt"],function(){cases.each(function(){var _this=jQuery(this),imgs=_this.find("img"),maxTilt=parseFloat(_this.attr("data-tilt-max"))||10,n=imgs.length,gain=1.22,hoverZone=_this.closest(".tilt-cases-container")||_this,mes=_this.data("tilt-mouse-event-element");if(mes){_this.removeAttr("data-tilt-mouse-event-element");var elZone=_this.closest(mes);hoverZone=elZone.length?elZone:hoverZone}var opt={};hoverZone.length&&(opt["mouse-event-element"]=hoverZone[0]),_this.addClass("is-initialized"),VanillaTilt.init(this,opt),!(n<=1)&&(this.addEventListener("tiltChange",function(e){var detail=e.detail||{},tx=parseFloat(detail.tiltX)||0,ty=parseFloat(detail.tiltY)||0;imgs.each(function(i){var $img=jQuery(this),base=parseFloat($img.attr("data-tilt-depth"));if(isNaN(base)&&(base=20),base===0){setTranslate3d($img,"translate3d(0,0,0)");return}var layerMul=1;n>1&&(layerMul=.48+i/(n-1)*1.14);var effective=base*gain*layerMul,dx=tx/maxTilt*effective*-1,dy=ty/maxTilt*effective;setTranslate3d($img,"translate3d("+dx+"px, "+dy+"px, 0)")})}),hoverZone&&hoverZone.on("mouseleave",function(){imgs.each(function(){setTranslate3d(jQuery(this),"translate3d(0,0,0)")})}))})})}_win.bd.on("click",".customize-preview-widget-edit",function(e){if(!(!wp||!wp.customize||!wp.customize.widgetsPreview)){var _this=jQuery(this),box=_this.closest(".customize-preview-widget-box");e.preventDefault(),wp.customize.widgetsPreview.preview.send("focus-widget-control",box.prop("id"))}});function initLegacyDocumentReady(){if(setTimeout(function(){jQuery(".line-form-input").each(function(){placeholder_scale(jQuery(this))}),_win.views&&jQuery.post(_win.ajax_url,{action:"views_record",id:_win.views}),posts_limit_height(),_win.window.trigger("scroll")},1e3),number_stats_init(),translate_init(),partners_scroll_init(),tilt_cases_init(),jQuery(".navbar-top li.menu-item-has-children>a").each(function(){jQuery(this).append('')}),_wid>996&&jQuery(".header").height()>81&&nav_folding(),posts_limit_height(),auto_maxHeight(),jQuery(".feature").length){var _feh=0,_fehm=0;jQuery(".feature").each(function(){var _th=jQuery(this);(_feh=_th.find(".feature-icon").innerHeight()+_th.find(".feature-title").innerHeight()+_th.find(".feature-note").innerHeight())>_fehm&&(_fehm=_feh)}),jQuery(".feature").css("height",_fehm)}jQuery(".qrcode").length&&tbquire(["qrcode"],function(){jQuery(".qrcode").each(function(){var _this=jQuery(this),text=_this.attr("data-qrcode"),size=_this.attr("data-size")||160;_this.qrcode({width:size,height:size,correctLevel:0,text:text||document.URL,background:"#fff",foreground:"#333"})})}),jQuery(document).on("lazyloaded",function(e){var _this=jQuery(e.target);swiper_tab_AutoHeight(_this)}),jQuery(document).on("lazyloaded",".gradient-bg img",function(e){var _this=jQuery(e.target),_parent=_this.closest(".gradient-bg"),opacity=_parent.attr("data-opacity"),c_11=opacity?"a":"",c_12=opacity?","+opacity:"";tbquire(["grade"],function(){Grade(_parent[0],null,function(gradientData){gradientData=gradientData[0];var rgba=gradientData.gradientData,c_1="rgb"+c_11+"("+rgba[0].rgba.slice(0,3).join(",")+c_12+") 10%",c_2="rgb"+c_11+"("+rgba[1].rgba.slice(0,3).join(",")+c_12+") 80%";jQuery(gradientData.element).addClass("gradient-bg-loaded").css("background-image","linear-gradient(135deg, "+c_1+", "+c_2+")")})})}),_win.qj_loading&&jQuery(".qj_loading").fadeOut(500).delay(1e3,function(){jQuery(this).remove(),jQuery("#qj_dh_css").remove()});function yiyan_nr(n){var yylink=_win.uri+"/yiyan/qv-yiyan.php",y_nr;jQuery.ajax({type:"POST",url:yylink}).done(function(i){var lines=i.replace(/\r\n|\r/g,"/&/").trim().split("/&/");if(lines){var type=n.attr("type");type?y_nr=type==="en"?lines[0]:lines[1]:y_nr='
    '+lines[0]+'
    '+lines[1]+"
    ",n.html(y_nr)}})}jQuery(".yiyan").each(function(){yiyan_nr(jQuery(this))}),setInterval(function(){jQuery(".yiyan").each(function(){yiyan_nr(jQuery(this))})},3e4),jQuery(".yiyan").on("click",function(){yiyan_nr(jQuery(this))}),jQuery("[mini-touch]").each(function(){var _this=jQuery(this),fx=_this.attr("touch-direction");_this.minitouch({direction:fx,onEnd:function(e){_this.attr("mini-touch")==="mobile-nav"?jQuery("body").removeClass("mobile-navbar-show"):e.removeClass("show")}})})}window.AksrtFrontend.register("aksrt-legacy-main",function(root,reason){z_auto_fun(),reason==="init"&&(initLegacyDocumentReady(),thumb_dplayer(_wid>640?".posts-item .item-thumbnail,.forum-lists-cover":".posts-item,.forum-posts",".video-thumb-box[video-url]"),jQuery("[load-click]").attr("no-scroll",!0).click())}); diff --git a/assets/js/runtime/page-navs.js b/assets/js/runtime/page-navs.js deleted file mode 100644 index 8808ea07..00000000 --- a/assets/js/runtime/page-navs.js +++ /dev/null @@ -1,46 +0,0 @@ -//文章导航 -jQuery("button[evt='action']").on("click", function (t) { - t = t || window.event; - var a = t.target || t.srcElement, - e = jQuery(a), - n = e.parents("form"), - r = n.serializeObject(), - c = []; - return jQuery("#cat-sortable-ok .sortable-cat-item").each(function () { - c.push(jQuery(this).attr("data-id")); - }), r.navs_show_cat_id = c, save_userdata(r, aksrt__("save_success"), "reload"), !1; -}); - -function save_userdata(b, c, d) { - notyf(aksrt__("processing_wait"), "load", "", "user_ajax"), - c = c || aksrt__("done"); - jQuery.ajax({ - type: "POST", - url: _win.uri + '/action/post_navs.php', - data: b, - dataType: "json", - success: function (n) { - if (n.error) { - n.msg && notyf(n.msg, (n.error ? 'danger' : ""), "", "user_ajax"); - } else { - notyf(n.msg || c, "", "", "user_ajax"); - "reload" == d && location.reload(); - } - } - }); -} - -jQuery(document).ready(function () { - jQuery("#cat-sortable").length && tbquire(["sortablejs"], function () { - var e = document.getElementById("cat-sortable"), - t = document.getElementById("cat-sortable-ok"), - a = { - group: "cat_shared", - multiDrag: !0, - chosenClass: "chosen", - fallbackClass: !0, - animation: 400 - }; - Sortable.create(e, a), Sortable.create(t, a); - }); -}); diff --git a/assets/js/runtime/page-navs.min.js b/assets/js/runtime/page-navs.min.js deleted file mode 100644 index dffa526d..00000000 --- a/assets/js/runtime/page-navs.min.js +++ /dev/null @@ -1 +0,0 @@ -function save_userdata(a,t,e){notyf(aksrt__("processing_wait"),"load","","user_ajax"),t=t||aksrt__("done"),jQuery.ajax({type:"POST",url:_win.uri+"/action/post_navs.php",data:a,dataType:"json",success:function(a){a.error?a.msg&¬yf(a.msg,a.error?"danger":"","","user_ajax"):(notyf(a.msg||t,"","","user_ajax"),"reload"==e&&location.reload())}})}jQuery("button[evt='action']").on("click",function(a){a=a||window.event;var t=a.target||a.srcElement,e=jQuery(t),o=e.parents("form"),r=o.serializeObject(),s=[];return jQuery("#cat-sortable-ok .sortable-cat-item").each(function(){s.push(jQuery(this).attr("data-id"))}),r.navs_show_cat_id=s,save_userdata(r,aksrt__("save_success"),"reload"),!1}),jQuery(document).ready(function(){jQuery("#cat-sortable").length&&tbquire(["sortablejs"],function(){var a=document.getElementById("cat-sortable"),t=document.getElementById("cat-sortable-ok"),e={group:"cat_shared",multiDrag:!0,chosenClass:"chosen",fallbackClass:!0,animation:400};Sortable.create(a,e),Sortable.create(t,e)})}); diff --git a/assets/js/section-navs.js b/assets/js/section-navs.js index 40dd707d..984e4b01 100644 --- a/assets/js/section-navs.js +++ b/assets/js/section-navs.js @@ -40,8 +40,10 @@ return count >= MIN_HEADINGS ? html : ''; } - function fillBoxes(listsHtml) { - document.querySelectorAll(NAVBOX).forEach(function (box) { + function fillBoxes(listsHtml, scope) { + var boxes = Array.prototype.slice.call(scope.querySelectorAll(NAVBOX)); + if (scope.nodeType === 1 && scope.matches(NAVBOX)) boxes.unshift(scope); + boxes.forEach(function (box) { var existing = box.querySelector('.' + NAV_CLASS); if (existing) { existing.innerHTML = listsHtml; @@ -75,7 +77,13 @@ window.scrollTo({ top: top, behavior: 'smooth' }); } + var clicksBound = false; + var scrollspyBound = false; + var autoHashHandled = false; + function bindClicks() { + if (clicksBound) return; + clicksBound = true; document.addEventListener('click', function (e) { var a = e.target && e.target.closest ? e.target.closest('.' + NAV_CLASS + ' a[href^="#"]') : null; if (!a) return; @@ -87,9 +95,11 @@ }); } - function scrollspy() { - var links = document.querySelectorAll('.' + NAV_CLASS + ' a[href^="#"]'); + function scrollspy(scope) { + if (scrollspyBound) return; + var links = scope.querySelectorAll('.' + NAV_CLASS + ' a[href^="#"]'); if (!links.length) return; + scrollspyBound = true; var map = []; links.forEach(function (a) { var id = a.getAttribute('href').slice(1); @@ -111,37 +121,32 @@ } function autoHash() { - if (window.location.hash) { - setTimeout(function () { - smoothTo(window.location.hash); - }, 40); - } + if (autoHashHandled || !window.location.hash) return; + autoHashHandled = true; + setTimeout(function () { + smoothTo(window.location.hash); + }, 40); } - function init() { + function init(scope) { + scope = scope || document; if (document.querySelector('.posts-nav-box .toc-list, .posts-nav-box.toc-widget .toc-list')) { return; } - var root = document.querySelector('[data-nav], .article-content, .entry-content, main.article'); + var root = scope.nodeType === 1 && scope.matches('[data-nav], .article-content, .entry-content, main.article') + ? scope + : scope.querySelector('[data-nav], .article-content, .entry-content, main.article'); if (!root) return; var listsHtml = buildLists(root); if (!listsHtml) return; if (!document.querySelector(NAVBOX) && !document.querySelector('.' + NAV_CLASS)) { return; } - fillBoxes(listsHtml); + fillBoxes(listsHtml, document); bindClicks(); - scrollspy(); + scrollspy(document); autoHash(); } - if (window.AksrtFrontend && typeof window.AksrtFrontend.register === 'function') { - window.AksrtFrontend.register('aksrt-section-navs', function () { - init(); - }); - } else if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', init); - } else { - init(); - } + window.AksrtFrontend.register('aksrt-section-navs', init); })(); diff --git a/assets/js/signin.js b/assets/js/signin.js index a6ea0a4e..b6c835c0 100644 --- a/assets/js/signin.js +++ b/assets/js/signin.js @@ -29,8 +29,11 @@ }); } - function initSignin() { - var buttons = Array.prototype.slice.call(document.querySelectorAll('[data-signin-btn]')); + function initSignin(scope) { + scope = scope || document; + var buttons = []; + if (scope.nodeType === 1 && scope.matches('[data-signin-btn]')) buttons.push(scope); + if (scope.querySelectorAll) scope.querySelectorAll('[data-signin-btn]').forEach(function (button) { buttons.push(button); }); var freshButtons = buttons.filter(function (button) { return button.dataset.aksrtSigninInitialized !== '1'; }); @@ -40,12 +43,19 @@ button.dataset.aksrtSigninInitialized = '1'; }); + function elements(selector) { + var items = []; + if (scope.nodeType === 1 && scope.matches(selector)) items.push(scope); + if (scope.querySelectorAll) scope.querySelectorAll(selector).forEach(function (item) { items.push(item); }); + return items; + } + function statuses() { - return document.querySelectorAll('[data-signin-status]'); + return elements('[data-signin-status]'); } function currentButtons() { - return document.querySelectorAll('[data-signin-btn]'); + return elements('[data-signin-btn]'); } function setStatus(text) { @@ -98,7 +108,8 @@ } function captchaMount() { - return document.querySelector('[data-signin-captcha]'); + if (scope.nodeType === 1 && scope.matches('[data-signin-captcha]')) return scope; + return scope.querySelector ? scope.querySelector('[data-signin-captcha]') : null; } function doSignin(captchaPayload) { @@ -115,7 +126,7 @@ } notyf(result.json.message || '签到成功', 'success', 5, 'aksrt-balance-signin-toast'); - document.querySelectorAll('[data-credits-value]').forEach(function (element) { + elements('[data-credits-value]').forEach(function (element) { element.textContent = Number(result.json.balance || 0).toLocaleString(); }); setButtonState('done'); @@ -149,12 +160,6 @@ refresh(); } - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', initSignin); - } else { - initSignin(); - } - if (window.AksrtFrontend && typeof window.AksrtFrontend.register === 'function') { window.AksrtFrontend.register('signin', initSignin); } diff --git a/assets/js/site-notice.js b/assets/js/site-notice.js index 858870c2..5f7875b2 100644 --- a/assets/js/site-notice.js +++ b/assets/js/site-notice.js @@ -10,8 +10,11 @@ (function () { 'use strict'; - var el = document.getElementById('aksrt-site-notice'); - if (!el) return; + window.AksrtFrontend.register('aksrt-site-notice', function (root) { + root = root || document; + var el = root.nodeType === 1 && root.matches('#aksrt-site-notice') ? root : root.querySelector('#aksrt-site-notice'); + if (!el || el.dataset.aksrtNoticeBound === '1') return; + el.dataset.aksrtNoticeBound = '1'; // 弹窗周期(小时),0=永不过期 var expiresHours = parseInt(el.dataset.expires || '24', 10) || 0; @@ -88,4 +91,5 @@ // Delay slightly so it doesn't flash on fast navigations setTimeout(show, 500); } + }); })(); diff --git a/assets/js/user-badge-actions.js b/assets/js/user-badge-actions.js index ca01bde9..9782a698 100644 --- a/assets/js/user-badge-actions.js +++ b/assets/js/user-badge-actions.js @@ -19,7 +19,10 @@ if (typeof window.notyf === 'function') window.notyf(message, type); } - document.addEventListener('click', function (event) { + function bindOnce() { + if (document.__aksrtUserBadgeActionsBound) return; + document.__aksrtUserBadgeActionsBound = true; + document.addEventListener('click', function (event) { var button = event.target.closest('[data-aksrt-badge-action]'); if (!button || button.classList.contains('is-loading')) return; @@ -56,5 +59,8 @@ button.removeAttribute('aria-busy'); notice(error.message || '网络错误', 'danger'); }); - }); + }); + } + + window.AksrtFrontend.register('aksrt-user-badge-actions', bindOnce); })(window, document); diff --git a/assets/js/video-player.js b/assets/js/video-player.js index 15d73781..baacb8f5 100644 --- a/assets/js/video-player.js +++ b/assets/js/video-player.js @@ -219,7 +219,10 @@ }; // ── 剧集切换按钮事件委托 ── - document.addEventListener('click', function (e) { + function bindEpisodeSwitch() { + if (document.__aksrtVideoEpisodeBound) return; + document.__aksrtVideoEpisodeBound = true; + document.addEventListener('click', function (e) { var switchBtn = e.target.closest('.switch-video, .switch-iframe'); if (!switchBtn) return; @@ -256,24 +259,24 @@ }); switchBtn.classList.add('is-active'); switchBtn.classList.add('active'); - }); + }); + } // ── Public API ── window.AksrtVideoPlayer = AksrtVideoPlayer; - // ── Auto-init ── - - function init() { + function init(root) { + root = root || document; injectStyle(); - document.querySelectorAll('[data-aksrt-video]').forEach(function (el) { + bindEpisodeSwitch(); + var elements = []; + if (root && root.nodeType === 1 && root.matches('[data-aksrt-video]')) elements.push(root); + Array.prototype.push.apply(elements, root.querySelectorAll('[data-aksrt-video]')); + elements.forEach(function (el) { new AksrtVideoPlayer(el); }); } - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', init); - } else { - init(); - } + window.AksrtFrontend.register('aksrt-video-player', init); })(); diff --git a/assets/js/waterfall.js b/assets/js/waterfall.js index 9fda8e7a..23df616f 100644 --- a/assets/js/waterfall.js +++ b/assets/js/waterfall.js @@ -154,24 +154,32 @@ }); } - function autoInit() { - document.querySelectorAll('[data-aksrt-waterfall]').forEach(function (el) { + function autoInit(root) { + var elements = []; + if (root && root.nodeType === 1 && root.matches('[data-aksrt-waterfall]')) elements.push(root); + Array.prototype.push.apply(elements, (root || document).querySelectorAll('[data-aksrt-waterfall]')); + elements.forEach(function (el) { + if (el._aksrtWaterfall) return; var cols = parseInt(el.dataset.aksrtWaterfallColumns) || 0; var gap = parseInt(el.dataset.aksrtWaterfallGap) || 16; - waterfallInstances.push(new Waterfall(el, { columns: cols, gap: gap })); + el._aksrtWaterfall = new Waterfall(el, { columns: cols, gap: gap }); + waterfallInstances.push(el._aksrtWaterfall); }); } - document.addEventListener('post_ajax.ed', relayoutAll); - document.addEventListener('aksrt:posts:rendered', relayoutAll); - document.addEventListener('lazyloaded', relayoutAll, true); - - if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', autoInit); - } else { - autoInit(); + function bindGlobalEvents() { + if (document.__aksrtWaterfallEventsBound) return; + document.__aksrtWaterfallEventsBound = true; + document.addEventListener('post_ajax.ed', relayoutAll); + document.addEventListener('aksrt:posts:rendered', relayoutAll); + document.addEventListener('lazyloaded', relayoutAll, true); } + window.AksrtFrontend.register('aksrt-waterfall', function (root) { + bindGlobalEvents(); + autoInit(root); + }); + // Export to global window.AksrtWaterfall = Waterfall; window.AksrtInfiniteScroll = InfiniteScroll; diff --git a/assets/js/yiyan.js b/assets/js/yiyan.js index b5edeadf..20601f5c 100644 --- a/assets/js/yiyan.js +++ b/assets/js/yiyan.js @@ -249,7 +249,10 @@ }); } - document.addEventListener('DOMContentLoaded', function () { - document.querySelectorAll('[data-aksrt-yiyan]').forEach(initYiyan); + window.AksrtFrontend.register('aksrt-yiyan', function (root) { + var elements = []; + if (root && root.nodeType === 1 && root.matches('[data-aksrt-yiyan]')) elements.push(root); + Array.prototype.push.apply(elements, (root || document).querySelectorAll('[data-aksrt-yiyan]')); + elements.forEach(initYiyan); }); })(); diff --git a/assets/widgets/frontend.js b/assets/widgets/frontend.js index 3a8ffa24..0ce89b06 100644 --- a/assets/widgets/frontend.js +++ b/assets/widgets/frontend.js @@ -166,7 +166,7 @@ } if (data.paginate_html) container.insertAdjacentHTML('beforeend', data.paginate_html); container.dataset.page = String(data.page || page); - scan(container); + window.AksrtFrontend.rehydrate(container, 'ajax'); }) .catch(function () { container.innerHTML = errorMarkup(); }) .finally(function () { @@ -262,28 +262,28 @@ requestAnimationFrame(frame); } + function elementsIn(root, selector) { + var scope = root || document; + var elements = []; + if (scope.matches && scope.matches(selector)) elements.push(scope); + if (scope.querySelectorAll) { + scope.querySelectorAll(selector).forEach(function (element) { elements.push(element); }); + } + return elements; + } + function scan(root) { var scope = root || document; - scope.querySelectorAll('.aksrt-widget-video[data-video-url]').forEach(initVideo); - scope.querySelectorAll('.aksrt-widget-toc').forEach(initToc); - scope.querySelectorAll('.aksrt-widget-quote').forEach(initQuote); - scope.querySelectorAll('[data-widget-items]').forEach(initItems); - scope.querySelectorAll('.aksrt-widget-tabs, .widget-tab-post').forEach(initTabs); - scope.querySelectorAll('.aksrt-faq').forEach(initFaq); - scope.querySelectorAll('.aksrt-feature-intro').forEach(initFeatures); - scope.querySelectorAll('[data-count-up]').forEach(initCount); - if (typeof window.VanillaTilt !== 'undefined') scope.querySelectorAll('[data-aksrt-tilt]').forEach(function (el) { if (once(el, 'Tilt')) window.VanillaTilt.init(el); }); + elementsIn(scope, '.aksrt-widget-video[data-video-url]').forEach(initVideo); + elementsIn(scope, '.aksrt-widget-toc').forEach(initToc); + elementsIn(scope, '.aksrt-widget-quote').forEach(initQuote); + elementsIn(scope, '[data-widget-items]').forEach(initItems); + elementsIn(scope, '.aksrt-widget-tabs, .widget-tab-post').forEach(initTabs); + elementsIn(scope, '.aksrt-faq').forEach(initFaq); + elementsIn(scope, '.aksrt-feature-intro').forEach(initFeatures); + elementsIn(scope, '[data-count-up]').forEach(initCount); + if (typeof window.VanillaTilt !== 'undefined') elementsIn(scope, '[data-aksrt-tilt]').forEach(function (el) { if (once(el, 'Tilt')) window.VanillaTilt.init(el); }); } - function ready() { - scan(document); - if ('MutationObserver' in window) { - new MutationObserver(function (mutations) { - mutations.forEach(function (mutation) { mutation.addedNodes.forEach(function (node) { if (node.nodeType === 1) scan(node); }); }); - }).observe(document.body, { childList: true, subtree: true }); - } - } - - if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', ready); - else ready(); + window.AksrtFrontend.register('aksrt-widgets', scan); })(); diff --git a/inc/helpers/aksrt-comments.php b/inc/helpers/aksrt-comments.php index 1176d10d..8089315d 100644 --- a/inc/helpers/aksrt-comments.php +++ b/inc/helpers/aksrt-comments.php @@ -403,7 +403,7 @@ if (!function_exists('aksrt_comments_render_signarea')) :

    - + @@ -508,7 +508,7 @@ if (!function_exists('aksrt_comments_render_form')) : $req_mark = $require_name_email ? '(' . __('必填', 'aksrt') . ')' : ''; ?> > - +