![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/clinic.corals.io/public/assets/front/js/ |
window.scwDisableJsAJAX = true; /* * jQuery Easing v1.4.1 - http://gsgd.co.uk/sandbox/jquery/easing/ * Open source under the BSD License. * Copyright © 2008 George McGinley Smith * All rights reserved. * https://raw.github.com/gdsmith/jquery.easing/master/LICENSE */ !function (n) { 'function' == typeof define && define.amd ? define(['jquery'], function (e) {return n(e);}) : 'object' == typeof module && 'object' == typeof module.exports ? module.exports = n(require('jquery')) : n(jQuery); }(function (n) { function e (n) { var e = 7.5625, t = 2.75; return n < 1 / t ? e * n * n : n < 2 / t ? e * (n -= 1.5 / t) * n + .75 : n < 2.5 / t ? e * (n -= 2.25 / t) * n + .9375 : e * (n -= 2.625 / t) * n + .984375; } void 0 !== n.easing && (n.easing.jswing = n.easing.swing); var t = Math.pow, u = Math.sqrt, r = Math.sin, i = Math.cos, a = Math.PI, o = 1.70158, c = 1.525 * o, s = 2 * a / 3, f = 2 * a / 4.5; return n.extend(n.easing, { def: 'easeOutQuad', swing: function (e) {return n.easing[n.easing.def](e);}, easeInQuad: function (n) {return n * n;}, easeOutQuad: function (n) {return 1 - (1 - n) * (1 - n);}, easeInOutQuad: function (n) { return n < .5 ? 2 * n * n : 1 - t(-2 * n + 2, 2) / 2; }, easeInCubic: function (n) {return n * n * n;}, easeOutCubic: function (n) {return 1 - t(1 - n, 3);}, easeInOutCubic: function (n) { return n < .5 ? 4 * n * n * n : 1 - t(-2 * n + 2, 3) / 2; }, easeInQuart: function (n) {return n * n * n * n;}, easeOutQuart: function (n) {return 1 - t(1 - n, 4);}, easeInOutQuart: function (n) { return n < .5 ? 8 * n * n * n * n : 1 - t(-2 * n + 2, 4) / 2; }, easeInQuint: function (n) {return n * n * n * n * n;}, easeOutQuint: function (n) {return 1 - t(1 - n, 5);}, easeInOutQuint: function (n) { return n < .5 ? 16 * n * n * n * n * n : 1 - t(-2 * n + 2, 5) / 2; }, easeInSine: function (n) {return 1 - i(n * a / 2);}, easeOutSine: function (n) {return r(n * a / 2);}, easeInOutSine: function (n) {return -(i(a * n) - 1) / 2;}, easeInExpo: function (n) {return 0 === n ? 0 : t(2, 10 * n - 10);}, easeOutExpo: function (n) {return 1 === n ? 1 : 1 - t(2, -10 * n);}, easeInOutExpo: function (n) { return 0 === n ? 0 : 1 === n ? 1 : n < .5 ? t(2, 20 * n - 10) / 2 : (2 - t(2, -20 * n + 10)) / 2; }, easeInCirc: function (n) {return 1 - u(1 - t(n, 2));}, easeOutCirc: function (n) {return u(1 - t(n - 1, 2));}, easeInOutCirc: function (n) { return n < .5 ? (1 - u(1 - t(2 * n, 2))) / 2 : (u( 1 - t(-2 * n + 2, 2)) + 1) / 2; }, easeInElastic: function (n) { return 0 === n ? 0 : 1 === n ? 1 : -t(2, 10 * n - 10) * r((10 * n - 10.75) * s); }, easeOutElastic: function (n) { return 0 === n ? 0 : 1 === n ? 1 : t(2, -10 * n) * r((10 * n - .75) * s) + 1; }, easeInOutElastic: function (n) { return 0 === n ? 0 : 1 === n ? 1 : n < .5 ? -t(2, 20 * n - 10) * r((20 * n - 11.125) * f) / 2 : t(2, -20 * n + 10) * r((20 * n - 11.125) * f) / 2 + 1; }, easeInBack: function (n) {return 2.70158 * n * n * n - o * n * n;}, easeOutBack: function (n) { return 1 + 2.70158 * t(n - 1, 3) + o * t(n - 1, 2); }, easeInOutBack: function (n) { return n < .5 ? t(2 * n, 2) * (7.189819 * n - c) / 2 : (t(2 * n - 2, 2) * ((c + 1) * (2 * n - 2) + c) + 2) / 2; }, easeInBounce: function (n) {return 1 - e(1 - n);}, easeOutBounce: e, easeInOutBounce: function (n) { return n < .5 ? (1 - e(1 - 2 * n)) / 2 : (1 + e(2 * n - 1)) / 2; }, }), n; }); /*! * Bootstrap v5.1.0 (https://getbootstrap.com/) * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ !function (t, e) { 'object' == typeof exports && 'undefined' != typeof module ? module.exports = e() : 'function' == typeof define && define.amd ? define(e) : (t = 'undefined' != typeof globalThis ? globalThis : t || self).bootstrap = e(); }(this, (function () { 'use strict'; const t = t => { let e = t.getAttribute('data-bs-target'); if (!e || '#' === e) { let i = t.getAttribute('href'); if (!i || !i.includes('#') && !i.startsWith('.')) return null; i.includes('#') && !i.startsWith('#') && (i = '#' + i.split('#')[1]), e = i && '#' !== i ? i.trim() : null; } return e; }, e = e => { const i = t(e); return i && document.querySelector(i) ? i : null; }, i = e => { const i = t(e); return i ? document.querySelector(i) : null; }, n = t => {t.dispatchEvent(new Event('transitionend'));}, s = t => !(!t || 'object' != typeof t) && (void 0 !== t.jquery && (t = t[0]), void 0 !== t.nodeType), o = t => s(t) ? t.jquery ? t[0] : t : 'string' == typeof t && t.length > 0 ? document.querySelector(t) : null, r = (t, e, i) => { Object.keys(i). forEach(n => { const o = i[n], r = e[n], a = r && s(r) ? 'element' : null == (l = r) ? '' + l : {}.toString.call(l). match(/\s([a-z]+)/i)[1].toLowerCase(); var l; if (!new RegExp(o).test(a)) throw new TypeError( `${t.toUpperCase()}: Option "${n}" provided type "${a}" but expected type "${o}".`); }); }, a = t => !(!s(t) || 0 === t.getClientRects().length) && 'visible' === getComputedStyle(t).getPropertyValue('visibility'), l = t => !t || t.nodeType !== Node.ELEMENT_NODE || !!t.classList.contains('disabled') || (void 0 !== t.disabled ? t.disabled : t.hasAttribute('disabled') && 'false' !== t.getAttribute('disabled')), c = t => { if (!document.documentElement.attachShadow) return null; if ('function' == typeof t.getRootNode) { const e = t.getRootNode(); return e instanceof ShadowRoot ? e : null; } return t instanceof ShadowRoot ? t : t.parentNode ? c(t.parentNode) : null; }, h = () => {}, d = t => {t.offsetHeight;}, u = () => { const { jQuery: t } = window; return t && !document.body.hasAttribute('data-bs-no-jquery') ? t : null; }, f = [], p = () => 'rtl' === document.documentElement.dir, m = t => { var e; e = () => { const e = u(); if (e) { const i = t.NAME, n = e.fn[i]; e.fn[i] = t.jQueryInterface, e.fn[i].Constructor = t, e.fn[i].noConflict = () => (e.fn[i] = n, t.jQueryInterface); } }, 'loading' === document.readyState ? (f.length || document.addEventListener('DOMContentLoaded', () => {f.forEach(t => t());}), f.push(e)) : e(); }, g = t => {'function' == typeof t && t();}, _ = (t, e, i = !0) => { if (!i) return void g(t); const s = (t => { if (!t) return 0; let { transitionDuration: e, transitionDelay: i, } = window.getComputedStyle(t); const n = Number.parseFloat(e), s = Number.parseFloat(i); return n || s ? (e = e.split(',')[0], i = i.split(',')[0], 1e3 * (Number.parseFloat(e) + Number.parseFloat(i))) : 0; })(e) + 5; let o = !1; const r = ({ target: i }) => { i === e && (o = !0, e.removeEventListener('transitionend', r), g(t)); }; e.addEventListener('transitionend', r), setTimeout(() => {o || n(e);}, s); }, b = (t, e, i, n) => { let s = t.indexOf(e); if (-1 === s) return t[!i && n ? t.length - 1 : 0]; const o = t.length; return s += i ? 1 : -1, n && (s = (s + o) % o), t[Math.max(0, Math.min(s, o - 1))]; }, v = /[^.]*(?=\..*)\.|.*/, y = /\..*/, w = /::\d+$/, E = {}; let A = 1; const T = { mouseenter: 'mouseover', mouseleave: 'mouseout' }, O = /^(mouseenter|mouseleave)/i, C = new Set([ 'click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']); function k (t, e) {return e && `${e}::${A++}` || t.uidEvent || A++;} function L (t) { const e = k(t); return t.uidEvent = e, E[e] = E[e] || {}, E[e]; } function x (t, e, i = null) { const n = Object.keys(t); for (let s = 0, o = n.length; s < o; s++) { const o = t[n[s]]; if (o.originalHandler === e && o.delegationSelector === i) return o; } return null; } function D (t, e, i) { const n = 'string' == typeof e, s = n ? i : e; let o = I(t); return C.has(o) || (o = t), [n, s, o]; } function S (t, e, i, n, s) { if ('string' != typeof e || !t) return; if (i || (i = n, n = null), O.test(e)) { const t = t => function (e) { if (!e.relatedTarget || e.relatedTarget !== e.delegateTarget && !e.delegateTarget.contains(e.relatedTarget)) return t.call( this, e); }; n ? n = t(n) : i = t(i); } const [o, r, a] = D(e, i, n), l = L(t), c = l[a] || (l[a] = {}), h = x(c, r, o ? i : null); if (h) return void (h.oneOff = h.oneOff && s); const d = k(r, e.replace(v, '')), u = o ? function (t, e, i) { return function n (s) { const o = t.querySelectorAll(e); for (let { target: r } = s; r && r !== this; r = r.parentNode) for (let a = o.length; a--;) if (o[a] === r) return s.delegateTarget = r, n.oneOff && P.off(t, s.type, e, i), i.apply(r, [s]); return null; }; }(t, i, n) : function ( t, e) { return function i (n) { return n.delegateTarget = t, i.oneOff && P.off(t, n.type, e), e.apply(t, [n]); }; }(t, i); u.delegationSelector = o ? i : null, u.originalHandler = r, u.oneOff = s, u.uidEvent = d, c[d] = u, t.addEventListener( a, u, o); } function N (t, e, i, n, s) { const o = x(e[i], n, s); o && (t.removeEventListener(i, o, Boolean(s)), delete e[i][o.uidEvent]); } function I (t) {return t = t.replace(y, ''), T[t] || t;} const P = { on (t, e, i, n) {S(t, e, i, n, !1);}, one (t, e, i, n) {S(t, e, i, n, !0);}, off (t, e, i, n) { if ('string' != typeof e || !t) return; const [s, o, r] = D(e, i, n), a = r !== e, l = L(t), c = e.startsWith('.'); if (void 0 !== o) { if (!l || !l[r]) return; return void N(t, l, r, o, s ? i : null); } c && Object.keys(l). forEach(i => { !function (t, e, i, n) { const s = e[i] || {}; Object.keys(s). forEach(o => { if (o.includes(n)) { const n = s[o]; N(t, e, i, n.originalHandler, n.delegationSelector); } }); }(t, l, i, e.slice(1)); }); const h = l[r] || {}; Object.keys(h).forEach(i => { const n = i.replace(w, ''); if (!a || e.includes(n)) { const e = h[i]; N(t, l, r, e.originalHandler, e.delegationSelector); } }); }, trigger (t, e, i) { if ('string' != typeof e || !t) return null; const n = u(), s = I(e), o = e !== s, r = C.has(s); let a, l = !0, c = !0, h = !1, d = null; return o && n && (a = n.Event(e, i), n(t). trigger( a), l = !a.isPropagationStopped(), c = !a.isImmediatePropagationStopped(), h = a.isDefaultPrevented()), r ? (d = document.createEvent('HTMLEvents'), d.initEvent(s, l, !0)) : d = new CustomEvent(e, { bubbles: l, cancelable: !0 }), void 0 !== i && Object.keys(i). forEach(t => { Object.defineProperty(d, t, { get: () => i[t] }); }), h && d.preventDefault(), c && t.dispatchEvent(d), d.defaultPrevented && void 0 !== a && a.preventDefault(), d; }, }, j = new Map; var M = { set (t, e, i) { j.has(t) || j.set(t, new Map); const n = j.get(t); n.has(e) || 0 === n.size ? n.set(e, i) : console.error( `Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from( n.keys())[0]}.`); }, get: (t, e) => j.has(t) && j.get(t).get(e) || null, remove (t, e) { if (!j.has(t)) return; const i = j.get(t); i.delete(e), 0 === i.size && j.delete(t); }, }; class H { constructor (t) { (t = o(t)) && (this._element = t, M.set(this._element, this.constructor.DATA_KEY, this)); } static get VERSION () {return '5.1.0';} static get NAME () { throw new Error( 'You have to implement the static method "NAME", for each component!'); } static get DATA_KEY () {return 'bs.' + this.NAME;} static get EVENT_KEY () {return '.' + this.DATA_KEY;} static getInstance (t) {return M.get(o(t), this.DATA_KEY);} static getOrCreateInstance (t, e = {}) { return this.getInstance(t) || new this(t, 'object' == typeof e ? e : null); } dispose () { M.remove(this._element, this.constructor.DATA_KEY), P.off( this._element, this.constructor.EVENT_KEY), Object.getOwnPropertyNames(this). forEach(t => {this[t] = null;}); } _queueCallback (t, e, i = !0) {_(t, e, i);} } const B = (t, e = 'hide') => { const n = 'click.dismiss' + t.EVENT_KEY, s = t.NAME; P.on(document, n, `[data-bs-dismiss="${s}"]`, (function (n) { if (['A', 'AREA'].includes(this.tagName) && n.preventDefault(), l( this)) return; const o = i(this) || this.closest('.' + s); t.getOrCreateInstance(o)[e](); })); }; class R extends H { static get NAME () {return 'alert';} static jQueryInterface (t) { return this.each((function () { const e = R.getOrCreateInstance(this); if ('string' == typeof t) { if (void 0 === e[t] || t.startsWith('_') || 'constructor' === t) throw new TypeError( `No method named "${t}"`); e[t](this); } })); } close () { if (P.trigger(this._element, 'close.bs.alert').defaultPrevented) return; this._element.classList.remove('show'); const t = this._element.classList.contains('fade'); this._queueCallback(() => this._destroyElement(), this._element, t); } _destroyElement () { this._element.remove(), P.trigger(this._element, 'closed.bs.alert'), this.dispose(); } } B(R, 'close'), m(R); class W extends H { static get NAME () {return 'button';} static jQueryInterface (t) { return this.each((function () { const e = W.getOrCreateInstance(this); 'toggle' === t && e[t](); })); } toggle () { this._element.setAttribute('aria-pressed', this._element.classList.toggle('active')); } } function z (t) { return 'true' === t || 'false' !== t && (t === Number(t).toString() ? Number(t) : '' === t || 'null' === t ? null : t); } function q (t) {return t.replace(/[A-Z]/g, t => '-' + t.toLowerCase());} P.on(document, 'click.bs.button.data-api', '[data-bs-toggle="button"]', t => { t.preventDefault(); const e = t.target.closest('[data-bs-toggle="button"]'); W.getOrCreateInstance(e).toggle(); }), m(W); const F = { setDataAttribute (t, e, i) { t.setAttribute('data-bs-' + q(e), i); }, removeDataAttribute (t, e) {t.removeAttribute('data-bs-' + q(e));}, getDataAttributes (t) { if (!t) return {}; const e = {}; return Object.keys(t.dataset). filter(t => t.startsWith('bs')). forEach(i => { let n = i.replace(/^bs/, ''); n = n.charAt(0).toLowerCase() + n.slice(1, n.length), e[n] = z(t.dataset[i]); }), e; }, getDataAttribute: (t, e) => z(t.getAttribute('data-bs-' + q(e))), offset (t) { const e = t.getBoundingClientRect(); return { top: e.top + window.pageYOffset, left: e.left + window.pageXOffset, }; }, position: t => ({ top: t.offsetTop, left: t.offsetLeft }), }, U = { find: (t, e = document.documentElement) => [].concat( ...Element.prototype.querySelectorAll.call(e, t)), findOne: ( t, e = document.documentElement) => Element.prototype.querySelector.call( e, t), children: (t, e) => [].concat(...t.children).filter(t => t.matches(e)), parents (t, e) { const i = []; let n = t.parentNode; for (; n && n.nodeType === Node.ELEMENT_NODE && 3 !== n.nodeType;) n.matches(e) && i.push(n), n = n.parentNode; return i; }, prev (t, e) { let i = t.previousElementSibling; for (; i;) { if (i.matches(e)) return [i]; i = i.previousElementSibling; } return []; }, next (t, e) { let i = t.nextElementSibling; for (; i;) { if (i.matches(e)) return [i]; i = i.nextElementSibling; } return []; }, focusableChildren (t) { const e = [ 'a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable="true"]'].map( t => t + ':not([tabindex^="-"])').join(', '); return this.find(e, t).filter(t => !l(t) && a(t)); }, }, $ = { interval: 5e3, keyboard: !0, slide: !1, pause: 'hover', wrap: !0, touch: !0, }, V = { interval: '(number|boolean)', keyboard: 'boolean', slide: '(boolean|string)', pause: '(string|boolean)', wrap: 'boolean', touch: 'boolean', }, K = 'next', X = 'prev', Y = 'left', Q = 'right', G = { ArrowLeft: Q, ArrowRight: Y }; class Z extends H { constructor (t, e) { super( t), this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig( e), this._indicatorsElement = U.findOne('.carousel-indicators', this._element), this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0, this._pointerEvent = Boolean( window.PointerEvent), this._addEventListeners(); } static get Default () {return $;} static get NAME () {return 'carousel';} static carouselInterface (t, e) { const i = Z.getOrCreateInstance(t, e); let { _config: n } = i; 'object' == typeof e && (n = { ...n, ...e }); const s = 'string' == typeof e ? e : n.slide; if ('number' == typeof e) i.to(e); else if ('string' == typeof s) { if (void 0 === i[s]) throw new TypeError( `No method named "${s}"`); i[s](); } else n.interval && n.ride && (i.pause(), i.cycle()); } static jQueryInterface (t) { return this.each((function () {Z.carouselInterface(this, t);})); } static dataApiClickHandler (t) { const e = i(this); if (!e || !e.classList.contains('carousel')) return; const n = { ...F.getDataAttributes(e), ...F.getDataAttributes(this), }, s = this.getAttribute('data-bs-slide-to'); s && (n.interval = !1), Z.carouselInterface(e, n), s && Z.getInstance(e).to(s), t.preventDefault(); } next () {this._slide(K);} nextWhenVisible () { !document.hidden && a(this._element) && this.next(); } prev () {this._slide(X);} pause (t) { t || (this._isPaused = !0), U.findOne( '.carousel-item-next, .carousel-item-prev', this._element) && (n(this._element), this.cycle(!0)), clearInterval( this._interval), this._interval = null; } cycle (t) { t || (this._isPaused = !1), this._interval && (clearInterval( this._interval), this._interval = null), this._config && this._config.interval && !this._isPaused && (this._updateInterval(), this._interval = setInterval( (document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval)); } to (t) { this._activeElement = U.findOne('.active.carousel-item', this._element); const e = this._getItemIndex(this._activeElement); if (t > this._items.length - 1 || t < 0) return; if (this._isSliding) return void P.one(this._element, 'slid.bs.carousel', () => this.to(t)); if (e === t) return this.pause(), void this.cycle(); const i = t > e ? K : X; this._slide(i, this._items[t]); } _getConfig (t) { return t = { ...$, ...F.getDataAttributes(this._element), ...'object' == typeof t ? t : {}, }, r('carousel', t, V), t; } _handleSwipe () { const t = Math.abs(this.touchDeltaX); if (t <= 40) return; const e = t / this.touchDeltaX; this.touchDeltaX = 0, e && this._slide(e > 0 ? Q : Y); } _addEventListeners () { this._config.keyboard && P.on(this._element, 'keydown.bs.carousel', t => this._keydown(t)), 'hover' === this._config.pause && (P.on(this._element, 'mouseenter.bs.carousel', t => this.pause(t)), P.on(this._element, 'mouseleave.bs.carousel', t => this.cycle(t))), this._config.touch && this._touchSupported && this._addTouchEventListeners(); } _addTouchEventListeners () { const t = t => { !this._pointerEvent || 'pen' !== t.pointerType && 'touch' !== t.pointerType ? this._pointerEvent || (this.touchStartX = t.touches[0].clientX) : this.touchStartX = t.clientX; }, e = t => { this.touchDeltaX = t.touches && t.touches.length > 1 ? 0 : t.touches[0].clientX - this.touchStartX; }, i = t => { !this._pointerEvent || 'pen' !== t.pointerType && 'touch' !== t.pointerType || (this.touchDeltaX = t.clientX - this.touchStartX), this._handleSwipe(), 'hover' === this._config.pause && (this.pause(), this.touchTimeout && clearTimeout(this.touchTimeout), this.touchTimeout = setTimeout( t => this.cycle(t), 500 + this._config.interval)); }; U.find('.carousel-item img', this._element). forEach(t => { P.on(t, 'dragstart.bs.carousel', t => t.preventDefault()); }), this._pointerEvent ? (P.on(this._element, 'pointerdown.bs.carousel', e => t(e)), P.on(this._element, 'pointerup.bs.carousel', t => i(t)), this._element.classList.add('pointer-event')) : (P.on(this._element, 'touchstart.bs.carousel', e => t(e)), P.on(this._element, 'touchmove.bs.carousel', t => e(t)), P.on(this._element, 'touchend.bs.carousel', t => i(t))); } _keydown (t) { if (/input|textarea/i.test(t.target.tagName)) return; const e = G[t.key]; e && (t.preventDefault(), this._slide(e)); } _getItemIndex (t) { return this._items = t && t.parentNode ? U.find('.carousel-item', t.parentNode) : [], this._items.indexOf(t); } _getItemByOrder (t, e) { const i = t === K; return b(this._items, e, i, this._config.wrap); } _triggerSlideEvent (t, e) { const i = this._getItemIndex(t), n = this._getItemIndex( U.findOne('.active.carousel-item', this._element)); return P.trigger(this._element, 'slide.bs.carousel', { relatedTarget: t, direction: e, from: n, to: i }); } _setActiveIndicatorElement (t) { if (this._indicatorsElement) { const e = U.findOne('.active', this._indicatorsElement); e.classList.remove('active'), e.removeAttribute('aria-current'); const i = U.find('[data-bs-target]', this._indicatorsElement); for (let e = 0; e < i.length; e++) if (Number.parseInt( i[e].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(t)) { i[e].classList.add('active'), i[e].setAttribute( 'aria-current', 'true'); break; } } } _updateInterval () { const t = this._activeElement || U.findOne('.active.carousel-item', this._element); if (!t) return; const e = Number.parseInt(t.getAttribute('data-bs-interval'), 10); e ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, this._config.interval = e) : this._config.interval = this._config.defaultInterval || this._config.interval; } _slide (t, e) { const i = this._directionToOrder(t), n = U.findOne('.active.carousel-item', this._element), s = this._getItemIndex(n), o = e || this._getItemByOrder(i, n), r = this._getItemIndex(o), a = Boolean(this._interval), l = i === K, c = l ? 'carousel-item-start' : 'carousel-item-end', h = l ? 'carousel-item-next' : 'carousel-item-prev', u = this._orderToDirection(i); if (o && o.classList.contains( 'active')) return void (this._isSliding = !1); if (this._isSliding) return; if (this._triggerSlideEvent(o, u).defaultPrevented) return; if (!n || !o) return; this._isSliding = !0, a && this.pause(), this._setActiveIndicatorElement( o), this._activeElement = o; const f = () => { P.trigger(this._element, 'slid.bs.carousel', { relatedTarget: o, direction: u, from: s, to: r }); }; if (this._element.classList.contains('slide')) { o.classList.add(h), d(o), n.classList.add(c), o.classList.add( c); const t = () => { o.classList.remove(c, h), o.classList.add( 'active'), n.classList.remove('active', h, c), this._isSliding = !1, setTimeout(f, 0); }; this._queueCallback(t, n, !0); } else n.classList.remove('active'), o.classList.add( 'active'), this._isSliding = !1, f(); a && this.cycle(); } _directionToOrder (t) { return [Q, Y].includes(t) ? p() ? t === Y ? X : K : t === Y ? K : X : t; } _orderToDirection (t) { return [K, X].includes(t) ? p() ? t === X ? Y : Q : t === X ? Q : Y : t; } } P.on(document, 'click.bs.carousel.data-api', '[data-bs-slide], [data-bs-slide-to]', Z.dataApiClickHandler), P.on( window, 'load.bs.carousel.data-api', () => { const t = U.find('[data-bs-ride="carousel"]'); for (let e = 0, i = t.length; e < i; e++) Z.carouselInterface(t[e], Z.getInstance(t[e])); }), m(Z); const J = { toggle: !0, parent: null }, tt = { toggle: 'boolean', parent: '(null|element)' }; class et extends H { constructor (t, i) { super( t), this._isTransitioning = !1, this._config = this._getConfig( i), this._triggerArray = []; const n = U.find('[data-bs-toggle="collapse"]'); for (let t = 0, i = n.length; t < i; t++) { const i = n[t], s = e(i), o = U.find(s).filter(t => t === this._element); null !== s && o.length && (this._selector = s, this._triggerArray.push(i)); } this._initializeChildren(), this._config.parent || this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()), this._config.toggle && this.toggle(); } static get Default () {return J;} static get NAME () {return 'collapse';} static jQueryInterface (t) { return this.each((function () { const e = {}; 'string' == typeof t && /show|hide/.test(t) && (e.toggle = !1); const i = et.getOrCreateInstance(this, e); if ('string' == typeof t) { if (void 0 === i[t]) throw new TypeError( `No method named "${t}"`); i[t](); } })); } toggle () {this._isShown() ? this.hide() : this.show();} show () { if (this._isTransitioning || this._isShown()) return; let t, e = []; if (this._config.parent) { const t = U.find('.collapse .collapse', this._config.parent); e = U.find('.show, .collapsing', this._config.parent). filter(e => !t.includes(e)); } const i = U.findOne(this._selector); if (e.length) { const n = e.find(t => i !== t); if (t = n ? et.getInstance(n) : null, t && t._isTransitioning) return; } if (P.trigger(this._element, 'show.bs.collapse').defaultPrevented) return; e.forEach(e => { i !== e && et.getOrCreateInstance(e, { toggle: !1 }).hide(), t || M.set(e, 'bs.collapse', null); }); const n = this._getDimension(); this._element.classList.remove( 'collapse'), this._element.classList.add( 'collapsing'), this._element.style[n] = 0, this._addAriaAndCollapsedClass( this._triggerArray, !0), this._isTransitioning = !0; const s = 'scroll' + (n[0].toUpperCase() + n.slice(1)); this._queueCallback(() => { this._isTransitioning = !1, this._element.classList.remove( 'collapsing'), this._element.classList.add('collapse', 'show'), this._element.style[n] = '', P.trigger( this._element, 'shown.bs.collapse'); }, this._element, !0), this._element.style[n] = this._element[s] + 'px'; } hide () { if (this._isTransitioning || !this._isShown()) return; if (P.trigger(this._element, 'hide.bs.collapse').defaultPrevented) return; const t = this._getDimension(); this._element.style[t] = this._element.getBoundingClientRect()[t] + 'px', d(this._element), this._element.classList.add( 'collapsing'), this._element.classList.remove('collapse', 'show'); const e = this._triggerArray.length; for (let t = 0; t < e; t++) { const e = this._triggerArray[t], n = i(e); n && !this._isShown(n) && this._addAriaAndCollapsedClass([e], !1); } this._isTransitioning = !0, this._element.style[t] = '', this._queueCallback( () => { this._isTransitioning = !1, this._element.classList.remove( 'collapsing'), this._element.classList.add( 'collapse'), P.trigger(this._element, 'hidden.bs.collapse'); }, this._element, !0); } _isShown (t = this._element) {return t.classList.contains('show');} _getConfig (t) { return (t = { ...J, ...F.getDataAttributes(this._element), ...t, }).toggle = Boolean(t.toggle), t.parent = o(t.parent), r('collapse', t, tt), t; } _getDimension () { return this._element.classList.contains('collapse-horizontal') ? 'width' : 'height'; } _initializeChildren () { if (!this._config.parent) return; const t = U.find('.collapse .collapse', this._config.parent); U.find('[data-bs-toggle="collapse"]', this._config.parent). filter(e => !t.includes(e)). forEach(t => { const e = i(t); e && this._addAriaAndCollapsedClass([t], this._isShown(e)); }); } _addAriaAndCollapsedClass (t, e) { t.length && t.forEach(t => { e ? t.classList.remove('collapsed') : t.classList.add( 'collapsed'), t.setAttribute('aria-expanded', e); }); } } P.on(document, 'click.bs.collapse.data-api', '[data-bs-toggle="collapse"]', (function (t) { ('A' === t.target.tagName || t.delegateTarget && 'A' === t.delegateTarget.tagName) && t.preventDefault(); const i = e(this); U.find(i). forEach( t => {et.getOrCreateInstance(t, { toggle: !1 }).toggle();}); })), m(et); var it = 'top', nt = 'bottom', st = 'right', ot = 'left', rt = [it, nt, st, ot], at = rt.reduce( (function (t, e) {return t.concat([e + '-start', e + '-end']);}), []), lt = [].concat(rt, ['auto']). reduce((function (t, e) { return t.concat([e, e + '-start', e + '-end']); }), []), ct = [ 'beforeRead', 'read', 'afterRead', 'beforeMain', 'main', 'afterMain', 'beforeWrite', 'write', 'afterWrite']; function ht (t) {return t ? (t.nodeName || '').toLowerCase() : null;} function dt (t) { if (null == t) return window; if ('[object Window]' !== t.toString()) { var e = t.ownerDocument; return e && e.defaultView || window; } return t; } function ut (t) {return t instanceof dt(t).Element || t instanceof Element;} function ft (t) { return t instanceof dt(t).HTMLElement || t instanceof HTMLElement; } function pt (t) { return 'undefined' != typeof ShadowRoot && (t instanceof dt(t).ShadowRoot || t instanceof ShadowRoot); } var mt = { name: 'applyStyles', enabled: !0, phase: 'write', fn: function (t) { var e = t.state; Object.keys(e.elements). forEach((function (t) { var i = e.styles[t] || {}, n = e.attributes[t] || {}, s = e.elements[t]; ft(s) && ht(s) && (Object.assign(s.style, i), Object.keys(n). forEach((function (t) { var e = n[t]; !1 === e ? s.removeAttribute(t) : s.setAttribute(t, !0 === e ? '' : e); }))); })); }, effect: function (t) { var e = t.state, i = { popper: { position: e.options.strategy, left: '0', top: '0', margin: '0', }, arrow: { position: 'absolute' }, reference: {}, }; return Object.assign(e.elements.popper.style, i.popper), e.styles = i, e.elements.arrow && Object.assign(e.elements.arrow.style, i.arrow), function () { Object.keys(e.elements). forEach((function (t) { var n = e.elements[t], s = e.attributes[t] || {}, o = Object.keys(e.styles.hasOwnProperty(t) ? e.styles[t] : i[t]). reduce((function (t, e) {return t[e] = '', t;}), {}); ft(n) && ht(n) && (Object.assign(n.style, o), Object.keys(s). forEach((function (t) {n.removeAttribute(t);}))); })); }; }, requires: ['computeStyles'], }; function gt (t) {return t.split('-')[0];} var _t = Math.round; function bt (t, e) { void 0 === e && (e = !1); var i = t.getBoundingClientRect(), n = 1, s = 1; return ft(t) && e && (n = i.width / t.offsetWidth || 1, s = i.height / t.offsetHeight || 1), { width: _t(i.width / n), height: _t(i.height / s), top: _t(i.top / s), right: _t(i.right / n), bottom: _t(i.bottom / s), left: _t(i.left / n), x: _t(i.left / n), y: _t(i.top / s), }; } function vt (t) { var e = bt(t), i = t.offsetWidth, n = t.offsetHeight; return Math.abs(e.width - i) <= 1 && (i = e.width), Math.abs( e.height - n) <= 1 && (n = e.height), { x: t.offsetLeft, y: t.offsetTop, width: i, height: n, }; } function yt (t, e) { var i = e.getRootNode && e.getRootNode(); if (t.contains(e)) return !0; if (i && pt(i)) { var n = e; do { if (n && t.isSameNode(n)) return !0; n = n.parentNode || n.host; } while (n); } return !1; } function wt (t) {return dt(t).getComputedStyle(t);} function Et (t) {return ['table', 'td', 'th'].indexOf(ht(t)) >= 0;} function At (t) { return ((ut(t) ? t.ownerDocument : t.document) || window.document).documentElement; } function Tt (t) { return 'html' === ht(t) ? t : t.assignedSlot || t.parentNode || (pt(t) ? t.host : null) || At(t); } function Ot (t) { return ft(t) && 'fixed' !== wt(t).position ? t.offsetParent : null; } function Ct (t) { for (var e = dt(t), i = Ot(t); i && Et(i) && "static" === wt(i).position;) i = Ot(i); return i && ('html' === ht(i) || 'body' === ht(i) && 'static' === wt(i).position) ? e : i || function (t) { var e = -1 !== navigator.userAgent.toLowerCase().indexOf('firefox'); if (-1 !== navigator.userAgent.indexOf('Trident') && ft(t) && 'fixed' === wt(t).position) return null; for (var i = Tt(t); ft(i) && ["html", "body"].indexOf(ht(i)) < 0;) { var n = wt(i); if ('none' !== n.transform || 'none' !== n.perspective || 'paint' === n.contain || -1 !== ['transform', 'perspective'].indexOf(n.willChange) || e && 'filter' === n.willChange || e && n.filter && 'none' !== n.filter) return i; i = i.parentNode; } return null; }(t) || e; } function kt (t) {return ['top', 'bottom'].indexOf(t) >= 0 ? 'x' : 'y';} var Lt = Math.max, xt = Math.min, Dt = Math.round; function St (t, e, i) {return Lt(t, xt(e, i));} function Nt (t) { return Object.assign({}, { top: 0, right: 0, bottom: 0, left: 0 }, t); } function It (t, e) { return e.reduce((function (e, i) {return e[i] = t, e;}), {}); } var Pt = { name: 'arrow', enabled: !0, phase: 'main', fn: function (t) { var e, i = t.state, n = t.name, s = t.options, o = i.elements.arrow, r = i.modifiersData.popperOffsets, a = gt(i.placement), l = kt(a), c = [ot, st].indexOf(a) >= 0 ? 'height' : 'width'; if (o && r) { var h = function (t, e) { return Nt('number' != typeof (t = 'function' == typeof t ? t(Object.assign({}, e.rects, { placement: e.placement })) : t) ? t : It(t, rt)); }(s.padding, i), d = vt(o), u = 'y' === l ? it : ot, f = 'y' === l ? nt : st, p = i.rects.reference[c] + i.rects.reference[l] - r[l] - i.rects.popper[c], m = r[l] - i.rects.reference[l], g = Ct(o), _ = g ? 'y' === l ? g.clientHeight || 0 : g.clientWidth || 0 : 0, b = p / 2 - m / 2, v = h[u], y = _ - d[c] - h[f], w = _ / 2 - d[c] / 2 + b, E = St(v, w, y), A = l; i.modifiersData[n] = ((e = {})[A] = E, e.centerOffset = E - w, e); } }, effect: function (t) { var e = t.state, i = t.options.element, n = void 0 === i ? '[data-popper-arrow]' : i; null != n && ('string' != typeof n || (n = e.elements.popper.querySelector(n))) && yt(e.elements.popper, n) && (e.elements.arrow = n); }, requires: ['popperOffsets'], requiresIfExists: ['preventOverflow'], }, jt = { top: 'auto', right: 'auto', bottom: 'auto', left: 'auto' }; function Mt (t) { var e, i = t.popper, n = t.popperRect, s = t.placement, o = t.offsets, r = t.position, a = t.gpuAcceleration, l = t.adaptive, c = t.roundOffsets, h = !0 === c ? function (t) { var e = t.x, i = t.y, n = window.devicePixelRatio || 1; return { x: Dt(Dt(e * n) / n) || 0, y: Dt(Dt(i * n) / n) || 0 }; }(o) : 'function' == typeof c ? c(o) : o, d = h.x, u = void 0 === d ? 0 : d, f = h.y, p = void 0 === f ? 0 : f, m = o.hasOwnProperty('x'), g = o.hasOwnProperty('y'), _ = ot, b = it, v = window; if (l) { var y = Ct(i), w = 'clientHeight', E = 'clientWidth'; y === dt(i) && 'static' !== wt(y = At(i)).position && (w = 'scrollHeight', E = 'scrollWidth'), y = y, s === it && (b = nt, p -= y[w] - n.height, p *= a ? 1 : -1), s === ot && (_ = st, u -= y[E] - n.width, u *= a ? 1 : -1); } var A, T = Object.assign({ position: r }, l && jt); return a ? Object.assign({}, T, ((A = {})[b] = g ? '0' : '', A[_] = m ? '0' : '', A.transform = (v.devicePixelRatio || 1) < 2 ? 'translate(' + u + 'px, ' + p + 'px)' : 'translate3d(' + u + 'px, ' + p + 'px, 0)', A)) : Object.assign({}, T, ((e = {})[b] = g ? p + 'px' : '', e[_] = m ? u + 'px' : '', e.transform = '', e)); } var Ht = { name: 'computeStyles', enabled: !0, phase: 'beforeWrite', fn: function (t) { var e = t.state, i = t.options, n = i.gpuAcceleration, s = void 0 === n || n, o = i.adaptive, r = void 0 === o || o, a = i.roundOffsets, l = void 0 === a || a, c = { placement: gt(e.placement), popper: e.elements.popper, popperRect: e.rects.popper, gpuAcceleration: s, }; null != e.modifiersData.popperOffsets && (e.styles.popper = Object.assign({}, e.styles.popper, Mt(Object.assign({}, c, { offsets: e.modifiersData.popperOffsets, position: e.options.strategy, adaptive: r, roundOffsets: l, })))), null != e.modifiersData.arrow && (e.styles.arrow = Object.assign({}, e.styles.arrow, Mt(Object.assign({}, c, { offsets: e.modifiersData.arrow, position: 'absolute', adaptive: !1, roundOffsets: l, })))), e.attributes.popper = Object.assign({}, e.attributes.popper, { 'data-popper-placement': e.placement }); }, data: {}, }, Bt = { passive: !0 }, Rt = { name: 'eventListeners', enabled: !0, phase: 'write', fn: function () {}, effect: function (t) { var e = t.state, i = t.instance, n = t.options, s = n.scroll, o = void 0 === s || s, r = n.resize, a = void 0 === r || r, l = dt(e.elements.popper), c = [].concat(e.scrollParents.reference, e.scrollParents.popper); return o && c.forEach((function (t) { t.addEventListener('scroll', i.update, Bt); })), a && l.addEventListener('resize', i.update, Bt), function () { o && c.forEach((function (t) { t.removeEventListener('scroll', i.update, Bt); })), a && l.removeEventListener('resize', i.update, Bt); }; }, data: {}, }, Wt = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' }; function zt (t) { return t.replace(/left|right|bottom|top/g, (function (t) {return Wt[t];})); } var qt = { start: 'end', end: 'start' }; function Ft (t) { return t.replace(/start|end/g, (function (t) {return qt[t];})); } function Ut (t) { var e = dt(t); return { scrollLeft: e.pageXOffset, scrollTop: e.pageYOffset }; } function $t (t) {return bt(At(t)).left + Ut(t).scrollLeft;} function Vt (t) { var e = wt(t), i = e.overflow, n = e.overflowX, s = e.overflowY; return /auto|scroll|overlay|hidden/.test(i + s + n); } function Kt (t, e) { var i; void 0 === e && (e = []); var n = function t (e) { return ['html', 'body', '#document'].indexOf(ht(e)) >= 0 ? e.ownerDocument.body : ft(e) && Vt(e) ? e : t(Tt(e)); }(t), s = n === (null == (i = t.ownerDocument) ? void 0 : i.body), o = dt(n), r = s ? [o].concat(o.visualViewport || [], Vt(n) ? n : []) : n, a = e.concat(r); return s ? a : a.concat(Kt(Tt(r))); } function Xt (t) { return Object.assign({}, t, { left: t.x, top: t.y, right: t.x + t.width, bottom: t.y + t.height, }); } function Yt (t, e) { return 'viewport' === e ? Xt(function (t) { var e = dt(t), i = At(t), n = e.visualViewport, s = i.clientWidth, o = i.clientHeight, r = 0, a = 0; return n && (s = n.width, o = n.height, /^((?!chrome|android).)*safari/i.test( navigator.userAgent) || (r = n.offsetLeft, a = n.offsetTop)), { width: s, height: o, x: r + $t(t), y: a, }; }(t)) : ft(e) ? function (t) { var e = bt(t); return e.top = e.top + t.clientTop, e.left = e.left + t.clientLeft, e.bottom = e.top + t.clientHeight, e.right = e.left + t.clientWidth, e.width = t.clientWidth, e.height = t.clientHeight, e.x = e.left, e.y = e.top, e; }(e) : Xt(function (t) { var e, i = At(t), n = Ut(t), s = null == (e = t.ownerDocument) ? void 0 : e.body, o = Lt(i.scrollWidth, i.clientWidth, s ? s.scrollWidth : 0, s ? s.clientWidth : 0), r = Lt(i.scrollHeight, i.clientHeight, s ? s.scrollHeight : 0, s ? s.clientHeight : 0), a = -n.scrollLeft + $t(t), l = -n.scrollTop; return 'rtl' === wt(s || i).direction && (a += Lt(i.clientWidth, s ? s.clientWidth : 0) - o), { width: o, height: r, x: a, y: l, }; }(At(t))); } function Qt (t) {return t.split('-')[1];} function Gt (t) { var e, i = t.reference, n = t.element, s = t.placement, o = s ? gt(s) : null, r = s ? Qt(s) : null, a = i.x + i.width / 2 - n.width / 2, l = i.y + i.height / 2 - n.height / 2; switch (o) { case it: e = { x: a, y: i.y - n.height }; break; case nt: e = { x: a, y: i.y + i.height }; break; case st: e = { x: i.x + i.width, y: l }; break; case ot: e = { x: i.x - n.width, y: l }; break; default: e = { x: i.x, y: i.y }; } var c = o ? kt(o) : null; if (null != c) { var h = 'y' === c ? 'height' : 'width'; switch (r) { case'start': e[c] = e[c] - (i[h] / 2 - n[h] / 2); break; case'end': e[c] = e[c] + (i[h] / 2 - n[h] / 2); } } return e; } function Zt (t, e) { void 0 === e && (e = {}); var i = e, n = i.placement, s = void 0 === n ? t.placement : n, o = i.boundary, r = void 0 === o ? 'clippingParents' : o, a = i.rootBoundary, l = void 0 === a ? 'viewport' : a, c = i.elementContext, h = void 0 === c ? 'popper' : c, d = i.altBoundary, u = void 0 !== d && d, f = i.padding, p = void 0 === f ? 0 : f, m = Nt('number' != typeof p ? p : It(p, rt)), g = 'popper' === h ? 'reference' : 'popper', _ = t.elements.reference, b = t.rects.popper, v = t.elements[u ? g : h], y = function (t, e, i) { var n = 'clippingParents' === e ? function (t) { var e = Kt(Tt(t)), i = ['absolute', 'fixed'].indexOf(wt(t).position) >= 0 && ft(t) ? Ct(t) : t; return ut(i) ? e.filter((function (t) { return ut(t) && yt(t, i) && 'body' !== ht(t); })) : []; }(t) : [].concat(e), s = [].concat(n, [i]), o = s[0], r = s.reduce((function (e, i) { var n = Yt(t, i); return e.top = Lt(n.top, e.top), e.right = xt(n.right, e.right), e.bottom = xt(n.bottom, e.bottom), e.left = Lt(n.left, e.left), e; }), Yt(t, o)); return r.width = r.right - r.left, r.height = r.bottom - r.top, r.x = r.left, r.y = r.top, r; }(ut(v) ? v : v.contextElement || At(t.elements.popper), r, l), w = bt(_), E = Gt( { reference: w, element: b, strategy: 'absolute', placement: s }), A = Xt(Object.assign({}, b, E)), T = 'popper' === h ? A : w, O = { top: y.top - T.top + m.top, bottom: T.bottom - y.bottom + m.bottom, left: y.left - T.left + m.left, right: T.right - y.right + m.right, }, C = t.modifiersData.offset; if ('popper' === h && C) { var k = C[s]; Object.keys(O). forEach((function (t) { var e = [st, nt].indexOf(t) >= 0 ? 1 : -1, i = [it, nt].indexOf(t) >= 0 ? 'y' : 'x'; O[t] += k[i] * e; })); } return O; } function Jt (t, e) { void 0 === e && (e = {}); var i = e, n = i.placement, s = i.boundary, o = i.rootBoundary, r = i.padding, a = i.flipVariations, l = i.allowedAutoPlacements, c = void 0 === l ? lt : l, h = Qt(n), d = h ? a ? at : at.filter((function (t) {return Qt(t) === h;})) : rt, u = d.filter((function (t) {return c.indexOf(t) >= 0;})); 0 === u.length && (u = d); var f = u.reduce((function (e, i) { return e[i] = Zt(t, { placement: i, boundary: s, rootBoundary: o, padding: r })[gt( i)], e; }), {}); return Object.keys(f).sort((function (t, e) {return f[t] - f[e];})); } var te = { name: 'flip', enabled: !0, phase: 'main', fn: function (t) { var e = t.state, i = t.options, n = t.name; if (!e.modifiersData[n]._skip) { for (var s = i.mainAxis, o = void 0 === s || s, r = i.altAxis, a = void 0 === r || r, l = i.fallbackPlacements, c = i.padding, h = i.boundary, d = i.rootBoundary, u = i.altBoundary, f = i.flipVariations, p = void 0 === f || f, m = i.allowedAutoPlacements, g = e.options.placement, _ = gt( g), b = l || (_ !== g && p ? function (t) { if ('auto' === gt(t)) return []; var e = zt(t); return [Ft(t), e, Ft(e)]; }(g) : [zt(g)]), v = [g].concat(b). reduce((function (t, i) { return t.concat('auto' === gt(i) ? Jt(e, { placement: i, boundary: h, rootBoundary: d, padding: c, flipVariations: p, allowedAutoPlacements: m, }) : i); }), []), y = e.rects.reference, w = e.rects.popper, E = new Map, A = !0, T = v[0], O = 0; O < v.length; O++) { var C = v[O], k = gt(C), L = 'start' === Qt(C), x = [it, nt].indexOf(k) >= 0, D = x ? 'width' : 'height', S = Zt(e, { placement: C, boundary: h, rootBoundary: d, altBoundary: u, padding: c, }), N = x ? L ? st : ot : L ? nt : it; y[D] > w[D] && (N = zt(N)); var I = zt(N), P = []; if (o && P.push(S[k] <= 0), a && P.push(S[N] <= 0, S[I] <= 0), P.every( (function (t) {return t;}))) { T = C, A = !1; break; } E.set(C, P); } if (A) for (var j = function (t) { var e = v.find((function (e) { var i = E.get(e); if (i) return i.slice(0, t). every((function (t) {return t;})); })); if (e) return T = e, 'break'; }, M = p ? 3 : 1; M > 0 && "break" !== j(M); M--) ; e.placement !== T && (e.modifiersData[n]._skip = !0, e.placement = T, e.reset = !0); } }, requiresIfExists: ['offset'], data: { _skip: !1 }, }; function ee (t, e, i) { return void 0 === i && (i = { x: 0, y: 0 }), { top: t.top - e.height - i.y, right: t.right - e.width + i.x, bottom: t.bottom - e.height + i.y, left: t.left - e.width - i.x, }; } function ie (t) { return [it, st, nt, ot].some((function (e) {return t[e] >= 0;})); } var ne = { name: 'hide', enabled: !0, phase: 'main', requiresIfExists: ['preventOverflow'], fn: function (t) { var e = t.state, i = t.name, n = e.rects.reference, s = e.rects.popper, o = e.modifiersData.preventOverflow, r = Zt(e, { elementContext: 'reference' }), a = Zt(e, { altBoundary: !0 }), l = ee(r, n), c = ee(a, s, o), h = ie(l), d = ie(c); e.modifiersData[i] = { referenceClippingOffsets: l, popperEscapeOffsets: c, isReferenceHidden: h, hasPopperEscaped: d, }, e.attributes.popper = Object.assign({}, e.attributes.popper, { 'data-popper-reference-hidden': h, 'data-popper-escaped': d, }); }, }, se = { name: 'offset', enabled: !0, phase: 'main', requires: ['popperOffsets'], fn: function (t) { var e = t.state, i = t.options, n = t.name, s = i.offset, o = void 0 === s ? [0, 0] : s, r = lt.reduce((function (t, i) { return t[i] = function (t, e, i) { var n = gt(t), s = [ot, it].indexOf(n) >= 0 ? -1 : 1, o = 'function' == typeof i ? i( Object.assign({}, e, { placement: t })) : i, r = o[0], a = o[1]; return r = r || 0, a = (a || 0) * s, [ot, st].indexOf(n) >= 0 ? { x: a, y: r } : { x: r, y: a }; }(i, e.rects, o), t; }), {}), a = r[e.placement], l = a.x, c = a.y; null != e.modifiersData.popperOffsets && (e.modifiersData.popperOffsets.x += l, e.modifiersData.popperOffsets.y += c), e.modifiersData[n] = r; }, }, oe = { name: 'popperOffsets', enabled: !0, phase: 'read', fn: function (t) { var e = t.state, i = t.name; e.modifiersData[i] = Gt({ reference: e.rects.reference, element: e.rects.popper, strategy: 'absolute', placement: e.placement, }); }, data: {}, }, re = { name: 'preventOverflow', enabled: !0, phase: 'main', fn: function (t) { var e = t.state, i = t.options, n = t.name, s = i.mainAxis, o = void 0 === s || s, r = i.altAxis, a = void 0 !== r && r, l = i.boundary, c = i.rootBoundary, h = i.altBoundary, d = i.padding, u = i.tether, f = void 0 === u || u, p = i.tetherOffset, m = void 0 === p ? 0 : p, g = Zt(e, { boundary: l, rootBoundary: c, padding: d, altBoundary: h }), _ = gt(e.placement), b = Qt(e.placement), v = !b, y = kt(_), w = 'x' === y ? 'y' : 'x', E = e.modifiersData.popperOffsets, A = e.rects.reference, T = e.rects.popper, O = 'function' == typeof m ? m( Object.assign({}, e.rects, { placement: e.placement })) : m, C = { x: 0, y: 0 }; if (E) { if (o || a) { var k = 'y' === y ? it : ot, L = 'y' === y ? nt : st, x = 'y' === y ? 'height' : 'width', D = E[y], S = E[y] + g[k], N = E[y] - g[L], I = f ? -T[x] / 2 : 0, P = 'start' === b ? A[x] : T[x], j = 'start' === b ? -T[x] : -A[x], M = e.elements.arrow, H = f && M ? vt(M) : { width: 0, height: 0 }, B = e.modifiersData['arrow#persistent'] ? e.modifiersData['arrow#persistent'].padding : { top: 0, right: 0, bottom: 0, left: 0 }, R = B[k], W = B[L], z = St(0, A[x], H[x]), q = v ? A[x] / 2 - I - z - R - O : P - z - R - O, F = v ? -A[x] / 2 + I + z + W + O : j + z + W + O, U = e.elements.arrow && Ct(e.elements.arrow), $ = U ? 'y' === y ? U.clientTop || 0 : U.clientLeft || 0 : 0, V = e.modifiersData.offset ? e.modifiersData.offset[e.placement][y] : 0, K = E[y] + q - V - $, X = E[y] + F - V; if (o) { var Y = St(f ? xt(S, K) : S, D, f ? Lt(N, X) : N); E[y] = Y, C[y] = Y - D; } if (a) { var Q = 'x' === y ? it : ot, G = 'x' === y ? nt : st, Z = E[w], J = Z + g[Q], tt = Z - g[G], et = St(f ? xt(J, K) : J, Z, f ? Lt(tt, X) : tt); E[w] = et, C[w] = et - Z; } } e.modifiersData[n] = C; } }, requiresIfExists: ['offset'], }; function ae (t, e, i) { void 0 === i && (i = !1); var n, s, o = ft(e), r = ft(e) && function (t) { var e = t.getBoundingClientRect(), i = e.width / t.offsetWidth || 1, n = e.height / t.offsetHeight || 1; return 1 !== i || 1 !== n; }(e), a = At(e), l = bt(t, r), c = { scrollLeft: 0, scrollTop: 0 }, h = { x: 0, y: 0 }; return (o || !o && !i) && (('body' !== ht(e) || Vt(a)) && (c = (n = e) !== dt(n) && ft(n) ? { scrollLeft: (s = n).scrollLeft, scrollTop: s.scrollTop, } : Ut(n)), ft(e) ? ((h = bt(e, !0)).x += e.clientLeft, h.y += e.clientTop) : a && (h.x = $t(a))), { x: l.left + c.scrollLeft - h.x, y: l.top + c.scrollTop - h.y, width: l.width, height: l.height, }; } var le = { placement: 'bottom', modifiers: [], strategy: 'absolute' }; function ce () { for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++) e[i] = arguments[i]; return !e.some((function (t) { return !(t && 'function' == typeof t.getBoundingClientRect); })); } function he (t) { void 0 === t && (t = {}); var e = t, i = e.defaultModifiers, n = void 0 === i ? [] : i, s = e.defaultOptions, o = void 0 === s ? le : s; return function (t, e, i) { void 0 === i && (i = o); var s, r, a = { placement: 'bottom', orderedModifiers: [], options: Object.assign({}, le, o), modifiersData: {}, elements: { reference: t, popper: e }, attributes: {}, styles: {}, }, l = [], c = !1, h = { state: a, setOptions: function (i) { d(), a.options = Object.assign({}, o, a.options, i), a.scrollParents = { reference: ut(t) ? Kt(t) : t.contextElement ? Kt(t.contextElement) : [], popper: Kt(e), }; var s, r, c = function (t) { var e = function (t) { var e = new Map, i = new Set, n = []; return t.forEach( (function (t) {e.set(t.name, t);})), t.forEach( (function (t) { i.has(t.name) || function t (s) { i.add(s.name), [].concat( s.requires || [], s.requiresIfExists || []). forEach((function (n) { if (!i.has(n)) { var s = e.get(n); s && t(s); } })), n.push(s); }(t); })), n; }(t); return ct.reduce((function (t, i) { return t.concat( e.filter( (function (t) {return t.phase === i;}))); }), []); }((s = [].concat(n, a.options.modifiers), r = s.reduce( (function (t, e) { var i = t[e.name]; return t[e.name] = i ? Object.assign({}, i, e, { options: Object.assign({}, i.options, e.options), data: Object.assign({}, i.data, e.data), }) : e, t; }), {}), Object.keys(r). map((function (t) {return r[t];})))); return a.orderedModifiers = c.filter( (function (t) {return t.enabled;})), a.orderedModifiers.forEach( (function (t) { var e = t.name, i = t.options, n = void 0 === i ? {} : i, s = t.effect; if ('function' == typeof s) { var o = s({ state: a, name: e, instance: h, options: n, }); l.push(o || function () {}); } })), h.update(); }, forceUpdate: function () { if (!c) { var t = a.elements, e = t.reference, i = t.popper; if (ce(e, i)) { a.rects = { reference: ae(e, Ct(i), 'fixed' === a.options.strategy), popper: vt(i), }, a.reset = !1, a.placement = a.options.placement, a.orderedModifiers.forEach( (function (t) { return a.modifiersData[t.name] = Object.assign( {}, t.data); })); for (var n = 0; n < a.orderedModifiers.length; n++) if (!0 !== a.reset) { var s = a.orderedModifiers[n], o = s.fn, r = s.options, l = void 0 === r ? {} : r, d = s.name; 'function' == typeof o && (a = o({ state: a, options: l, name: d, instance: h, }) || a); } else a.reset = !1, n = -1; } } }, update: (s = function () { return new Promise((function (t) {h.forceUpdate(), t(a);})); }, function () { return r || (r = new Promise((function (t) { Promise.resolve(). then((function () {r = void 0, t(s());})); }))), r; }), destroy: function () {d(), c = !0;}, }; if (!ce(t, e)) return h; function d () {l.forEach((function (t) {return t();})), l = [];} return h.setOptions(i). then((function (t) { !c && i.onFirstUpdate && i.onFirstUpdate(t); })), h; }; } var de = he(), ue = he({ defaultModifiers: [Rt, oe, Ht, mt] }), fe = he({ defaultModifiers: [Rt, oe, Ht, mt, se, te, re, Pt, ne] }), pe = Object.freeze({ __proto__: null, popperGenerator: he, detectOverflow: Zt, createPopperBase: de, createPopper: fe, createPopperLite: ue, top: it, bottom: nt, right: st, left: ot, auto: 'auto', basePlacements: rt, start: 'start', end: 'end', clippingParents: 'clippingParents', viewport: 'viewport', popper: 'popper', reference: 'reference', variationPlacements: at, placements: lt, beforeRead: 'beforeRead', read: 'read', afterRead: 'afterRead', beforeMain: 'beforeMain', main: 'main', afterMain: 'afterMain', beforeWrite: 'beforeWrite', write: 'write', afterWrite: 'afterWrite', modifierPhases: ct, applyStyles: mt, arrow: Pt, computeStyles: Ht, eventListeners: Rt, flip: te, hide: ne, offset: se, popperOffsets: oe, preventOverflow: re, }); const me = new RegExp('ArrowUp|ArrowDown|Escape'), ge = p() ? 'top-end' : 'top-start', _e = p() ? 'top-start' : 'top-end', be = p() ? 'bottom-end' : 'bottom-start', ve = p() ? 'bottom-start' : 'bottom-end', ye = p() ? 'left-start' : 'right-start', we = p() ? 'right-start' : 'left-start', Ee = { offset: [0, 2], boundary: 'clippingParents', reference: 'toggle', display: 'dynamic', popperConfig: null, autoClose: !0, }, Ae = { offset: '(array|string|function)', boundary: '(string|element)', reference: '(string|element|object)', display: 'string', popperConfig: '(null|object|function)', autoClose: '(boolean|string)', }; class Te extends H { constructor (t, e) { super(t), this._popper = null, this._config = this._getConfig( e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(); } static get Default () {return Ee;} static get DefaultType () {return Ae;} static get NAME () {return 'dropdown';} static jQueryInterface (t) { return this.each((function () { const e = Te.getOrCreateInstance(this, t); if ('string' == typeof t) { if (void 0 === e[t]) throw new TypeError( `No method named "${t}"`); e[t](); } })); } static clearMenus (t) { if (t && (2 === t.button || 'keyup' === t.type && 'Tab' !== t.key)) return; const e = U.find('[data-bs-toggle="dropdown"]'); for (let i = 0, n = e.length; i < n; i++) { const n = Te.getInstance(e[i]); if (!n || !1 === n._config.autoClose) continue; if (!n._isShown()) continue; const s = { relatedTarget: n._element }; if (t) { const e = t.composedPath(), i = e.includes(n._menu); if (e.includes(n._element) || 'inside' === n._config.autoClose && !i || 'outside' === n._config.autoClose && i) continue; if (n._menu.contains(t.target) && ('keyup' === t.type && 'Tab' === t.key || /input|select|option|textarea|form/i.test( t.target.tagName))) continue; 'click' === t.type && (s.clickEvent = t); } n._completeHide(s); } } static getParentFromElement (t) {return i(t) || t.parentNode;} static dataApiKeydownHandler (t) { if (/input|textarea/i.test(t.target.tagName) ? 'Space' === t.key || 'Escape' !== t.key && ('ArrowDown' !== t.key && 'ArrowUp' !== t.key || t.target.closest('.dropdown-menu')) : !me.test( t.key)) return; const e = this.classList.contains('show'); if (!e && 'Escape' === t.key) return; if (t.preventDefault(), t.stopPropagation(), l(this)) return; const i = this.matches('[data-bs-toggle="dropdown"]') ? this : U.prev(this, '[data-bs-toggle="dropdown"]')[0], n = Te.getOrCreateInstance(i); if ('Escape' !== t.key) return 'ArrowUp' === t.key || 'ArrowDown' === t.key ? (e || n.show(), void n._selectMenuItem(t)) : void (e && 'Space' !== t.key || Te.clearMenus()); n.hide(); } toggle () {return this._isShown() ? this.hide() : this.show();} show () { if (l(this._element) || this._isShown(this._menu)) return; const t = { relatedTarget: this._element }; if (P.trigger(this._element, 'show.bs.dropdown', t).defaultPrevented) return; const e = Te.getParentFromElement(this._element); this._inNavbar ? F.setDataAttribute(this._menu, 'popper', 'none') : this._createPopper(e), 'ontouchstart' in document.documentElement && !e.closest('.navbar-nav') && [].concat(...document.body.children). forEach(t => P.on(t, 'mouseover', h)), this._element.focus(), this._element.setAttribute( 'aria-expanded', !0), this._menu.classList.add( 'show'), this._element.classList.add('show'), P.trigger( this._element, 'shown.bs.dropdown', t); } hide () { if (l(this._element) || !this._isShown(this._menu)) return; const t = { relatedTarget: this._element }; this._completeHide(t); } dispose () {this._popper && this._popper.destroy(), super.dispose();} update () { this._inNavbar = this._detectNavbar(), this._popper && this._popper.update(); } _completeHide (t) { P.trigger(this._element, 'hide.bs.dropdown', t).defaultPrevented || ('ontouchstart' in document.documentElement && [].concat(...document.body.children). forEach(t => P.off(t, 'mouseover', h)), this._popper && this._popper.destroy(), this._menu.classList.remove( 'show'), this._element.classList.remove( 'show'), this._element.setAttribute('aria-expanded', 'false'), F.removeDataAttribute(this._menu, 'popper'), P.trigger(this._element, 'hidden.bs.dropdown', t)); } _getConfig (t) { if (t = { ...this.constructor.Default, ...F.getDataAttributes( this._element), ...t, }, r('dropdown', t, this.constructor.DefaultType), 'object' == typeof t.reference && !s(t.reference) && 'function' != typeof t.reference.getBoundingClientRect) throw new TypeError( 'dropdown'.toUpperCase() + ': Option "reference" provided type "object" without a required "getBoundingClientRect" method.'); return t; } _createPopper (t) { if (void 0 === pe) throw new TypeError( 'Bootstrap\'s dropdowns require Popper (https://popper.js.org)'); let e = this._element; 'parent' === this._config.reference ? e = t : s( this._config.reference) ? e = o(this._config.reference) : 'object' == typeof this._config.reference && (e = this._config.reference); const i = this._getPopperConfig(), n = i.modifiers.find( t => 'applyStyles' === t.name && !1 === t.enabled); this._popper = fe(e, this._menu, i), n && F.setDataAttribute(this._menu, 'popper', 'static'); } _isShown (t = this._element) {return t.classList.contains('show');} _getMenuElement () {return U.next(this._element, '.dropdown-menu')[0];} _getPlacement () { const t = this._element.parentNode; if (t.classList.contains('dropend')) return ye; if (t.classList.contains('dropstart')) return we; const e = 'end' === getComputedStyle(this._menu). getPropertyValue('--bs-position'). trim(); return t.classList.contains('dropup') ? e ? _e : ge : e ? ve : be; } _detectNavbar () {return null !== this._element.closest('.navbar');} _getOffset () { const { offset: t } = this._config; return 'string' == typeof t ? t.split(','). map(t => Number.parseInt(t, 10)) : 'function' == typeof t ? e => t(e, this._element) : t; } _getPopperConfig () { const t = { placement: this._getPlacement(), modifiers: [ { name: 'preventOverflow', options: { boundary: this._config.boundary }, }, { name: 'offset', options: { offset: this._getOffset() } }], }; return 'static' === this._config.display && (t.modifiers = [ { name: 'applyStyles', enabled: !1, }]), { ...t, ...'function' == typeof this._config.popperConfig ? this._config.popperConfig(t) : this._config.popperConfig, }; } _selectMenuItem ({ key: t, target: e }) { const i = U.find( '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)', this._menu).filter(a); i.length && b(i, e, 'ArrowDown' === t, !i.includes(e)).focus(); } } P.on(document, 'keydown.bs.dropdown.data-api', '[data-bs-toggle="dropdown"]', Te.dataApiKeydownHandler), P.on(document, 'keydown.bs.dropdown.data-api', '.dropdown-menu', Te.dataApiKeydownHandler), P.on(document, 'click.bs.dropdown.data-api', Te.clearMenus), P.on(document, 'keyup.bs.dropdown.data-api', Te.clearMenus), P.on(document, 'click.bs.dropdown.data-api', '[data-bs-toggle="dropdown"]', (function (t) { t.preventDefault(), Te.getOrCreateInstance(this). toggle(); })), m(Te); class Oe { constructor () {this._element = document.body;} getWidth () { const t = document.documentElement.clientWidth; return Math.abs(window.innerWidth - t); } hide () { const t = this.getWidth(); this._disableOverFlow(), this._setElementAttributes(this._element, 'paddingRight', e => e + t), this._setElementAttributes( '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top', 'paddingRight', e => e + t), this._setElementAttributes( '.sticky-top', 'marginRight', e => e - t); } _disableOverFlow () { this._saveInitialAttribute(this._element, 'overflow'), this._element.style.overflow = 'hidden'; } _setElementAttributes (t, e, i) { const n = this.getWidth(); this._applyManipulationCallback(t, t => { if (t !== this._element && window.innerWidth > t.clientWidth + n) return; this._saveInitialAttribute(t, e); const s = window.getComputedStyle(t)[e]; t.style[e] = i(Number.parseFloat(s)) + 'px'; }); } reset () { this._resetElementAttributes(this._element, 'overflow'), this._resetElementAttributes(this._element, 'paddingRight'), this._resetElementAttributes( '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top', 'paddingRight'), this._resetElementAttributes('.sticky-top', 'marginRight'); } _saveInitialAttribute (t, e) { const i = t.style[e]; i && F.setDataAttribute(t, e, i); } _resetElementAttributes (t, e) { this._applyManipulationCallback(t, t => { const i = F.getDataAttribute(t, e); void 0 === i ? t.style.removeProperty(e) : (F.removeDataAttribute(t, e), t.style[e] = i); }); } _applyManipulationCallback (t, e) { s(t) ? e(t) : U.find(t, this._element).forEach(e); } isOverflowing () {return this.getWidth() > 0;} } const Ce = { className: 'modal-backdrop', isVisible: !0, isAnimated: !1, rootElement: 'body', clickCallback: null, }, ke = { className: 'string', isVisible: 'boolean', isAnimated: 'boolean', rootElement: '(element|string)', clickCallback: '(function|null)', }; class Le { constructor (t) { this._config = this._getConfig( t), this._isAppended = !1, this._element = null; } show (t) { this._config.isVisible ? (this._append(), this._config.isAnimated && d(this._getElement()), this._getElement(). classList. add('show'), this._emulateAnimation(() => {g(t);})) : g(t); } hide (t) { this._config.isVisible ? (this._getElement(). classList. remove('show'), this._emulateAnimation( () => {this.dispose(), g(t);})) : g(t); } _getElement () { if (!this._element) { const t = document.createElement('div'); t.className = this._config.className, this._config.isAnimated && t.classList.add('fade'), this._element = t; } return this._element; } _getConfig (t) { return (t = { ...Ce, ...'object' == typeof t ? t : {}, }).rootElement = o(t.rootElement), r('backdrop', t, ke), t; } _append () { this._isAppended || (this._config.rootElement.append(this._getElement()), P.on( this._getElement(), 'mousedown.bs.backdrop', () => {g(this._config.clickCallback);}), this._isAppended = !0); } dispose () { this._isAppended && (P.off(this._element, 'mousedown.bs.backdrop'), this._element.remove(), this._isAppended = !1); } _emulateAnimation (t) { _(t, this._getElement(), this._config.isAnimated); } } const xe = { trapElement: null, autofocus: !0 }, De = { trapElement: 'element', autofocus: 'boolean' }; class Se { constructor (t) { this._config = this._getConfig( t), this._isActive = !1, this._lastTabNavDirection = null; } activate () { const { trapElement: t, autofocus: e } = this._config; this._isActive || (e && t.focus(), P.off(document, '.bs.focustrap'), P.on(document, 'focusin.bs.focustrap', t => this._handleFocusin(t)), P.on( document, 'keydown.tab.bs.focustrap', t => this._handleKeydown(t)), this._isActive = !0); } deactivate () { this._isActive && (this._isActive = !1, P.off(document, '.bs.focustrap')); } _handleFocusin (t) { const { target: e } = t, { trapElement: i } = this._config; if (e === document || e === i || i.contains(e)) return; const n = U.focusableChildren(i); 0 === n.length ? i.focus() : 'backward' === this._lastTabNavDirection ? n[n.length - 1].focus() : n[0].focus(); } _handleKeydown (t) { 'Tab' === t.key && (this._lastTabNavDirection = t.shiftKey ? 'backward' : 'forward'); } _getConfig (t) { return t = { ...xe, ...'object' == typeof t ? t : {}, }, r('focustrap', t, De), t; } } const Ne = { backdrop: !0, keyboard: !0, focus: !0 }, Ie = { backdrop: '(boolean|string)', keyboard: 'boolean', focus: 'boolean', }; class Pe extends H { constructor (t, e) { super(t), this._config = this._getConfig( e), this._dialog = U.findOne('.modal-dialog', this._element), this._backdrop = this._initializeBackDrop(), this._focustrap = this._initializeFocusTrap(), this._isShown = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollBar = new Oe; } static get Default () {return Ne;} static get NAME () {return 'modal';} static jQueryInterface (t, e) { return this.each((function () { const i = Pe.getOrCreateInstance(this, t); if ('string' == typeof t) { if (void 0 === i[t]) throw new TypeError( `No method named "${t}"`); i[t](e); } })); } toggle (t) {return this._isShown ? this.hide() : this.show(t);} show (t) { this._isShown || this._isTransitioning || P.trigger(this._element, 'show.bs.modal', { relatedTarget: t }).defaultPrevented || (this._isShown = !0, this._isAnimated() && (this._isTransitioning = !0), this._scrollBar.hide(), document.body.classList.add( 'modal-open'), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), P.on( this._dialog, 'mousedown.dismiss.bs.modal', () => { P.one(this._element, 'mouseup.dismiss.bs.modal', t => { t.target === this._element && (this._ignoreBackdropClick = !0); }); }), this._showBackdrop(() => this._showElement(t))); } hide () { if (!this._isShown || this._isTransitioning) return; if (P.trigger(this._element, 'hide.bs.modal').defaultPrevented) return; this._isShown = !1; const t = this._isAnimated(); t && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), this._focustrap.deactivate(), this._element.classList.remove( 'show'), P.off(this._element, 'click.dismiss.bs.modal'), P.off( this._dialog, 'mousedown.dismiss.bs.modal'), this._queueCallback( () => this._hideModal(), this._element, t); } dispose () { [window, this._dialog].forEach(t => P.off(t, '.bs.modal')), this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose(); } handleUpdate () {this._adjustDialog();} _initializeBackDrop () { return new Le({ isVisible: Boolean(this._config.backdrop), isAnimated: this._isAnimated(), }); } _initializeFocusTrap () {return new Se({ trapElement: this._element });} _getConfig (t) { return t = { ...Ne, ...F.getDataAttributes(this._element), ...'object' == typeof t ? t : {}, }, r('modal', t, Ie), t; } _showElement (t) { const e = this._isAnimated(), i = U.findOne('.modal-body', this._dialog); this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.append( this._element), this._element.style.display = 'block', this._element.removeAttribute( 'aria-hidden'), this._element.setAttribute('aria-modal', !0), this._element.setAttribute('role', 'dialog'), this._element.scrollTop = 0, i && (i.scrollTop = 0), e && d(this._element), this._element.classList.add( 'show'), this._queueCallback(() => { this._config.focus && this._focustrap.activate(), this._isTransitioning = !1, P.trigger( this._element, 'shown.bs.modal', { relatedTarget: t }); }, this._dialog, e); } _setEscapeEvent () { this._isShown ? P.on(this._element, 'keydown.dismiss.bs.modal', t => { this._config.keyboard && 'Escape' === t.key ? (t.preventDefault(), this.hide()) : this._config.keyboard || 'Escape' !== t.key || this._triggerBackdropTransition(); }) : P.off(this._element, 'keydown.dismiss.bs.modal'); } _setResizeEvent () { this._isShown ? P.on(window, 'resize.bs.modal', () => this._adjustDialog()) : P.off(window, 'resize.bs.modal'); } _hideModal () { this._element.style.display = 'none', this._element.setAttribute( 'aria-hidden', !0), this._element.removeAttribute( 'aria-modal'), this._element.removeAttribute( 'role'), this._isTransitioning = !1, this._backdrop.hide(() => { document.body.classList.remove( 'modal-open'), this._resetAdjustments(), this._scrollBar.reset(), P.trigger( this._element, 'hidden.bs.modal'); }); } _showBackdrop (t) { P.on(this._element, 'click.dismiss.bs.modal', t => { this._ignoreBackdropClick ? this._ignoreBackdropClick = !1 : t.target === t.currentTarget && (!0 === this._config.backdrop ? this.hide() : 'static' === this._config.backdrop && this._triggerBackdropTransition()); }), this._backdrop.show(t); } _isAnimated () {return this._element.classList.contains('fade');} _triggerBackdropTransition () { if (P.trigger(this._element, 'hidePrevented.bs.modal').defaultPrevented) return; const { classList: t, scrollHeight: e, style: i } = this._element, n = e > document.documentElement.clientHeight; !n && 'hidden' === i.overflowY || t.contains('modal-static') || (n || (i.overflowY = 'hidden'), t.add( 'modal-static'), this._queueCallback(() => { t.remove('modal-static'), n || this._queueCallback(() => {i.overflowY = '';}, this._dialog); }, this._dialog), this._element.focus()); } _adjustDialog () { const t = this._element.scrollHeight > document.documentElement.clientHeight, e = this._scrollBar.getWidth(), i = e > 0; (!i && t && !p() || i && !t && p()) && (this._element.style.paddingLeft = e + 'px'), (i && !t && !p() || !i && t && p()) && (this._element.style.paddingRight = e + 'px'); } _resetAdjustments () {this._element.style.paddingLeft = '', this._element.style.paddingRight = '';} } P.on(document, 'click.bs.modal.data-api', '[data-bs-toggle="modal"]', (function (t) { const e = i(this); ['A', 'AREA'].includes(this.tagName) && t.preventDefault(), P.one(e, 'show.bs.modal', t => { t.defaultPrevented || P.one(e, 'hidden.bs.modal', () => {a(this) && this.focus();}); }), Pe.getOrCreateInstance(e).toggle(this); })), B(Pe), m(Pe); const je = { backdrop: !0, keyboard: !0, scroll: !1 }, Me = { backdrop: 'boolean', keyboard: 'boolean', scroll: 'boolean' }; class He extends H { constructor (t, e) { super(t), this._config = this._getConfig( e), this._isShown = !1, this._backdrop = this._initializeBackDrop(), this._focustrap = this._initializeFocusTrap(), this._addEventListeners(); } static get NAME () {return 'offcanvas';} static get Default () {return je;} static jQueryInterface (t) { return this.each((function () { const e = He.getOrCreateInstance(this, t); if ('string' == typeof t) { if (void 0 === e[t] || t.startsWith('_') || 'constructor' === t) throw new TypeError( `No method named "${t}"`); e[t](this); } })); } toggle (t) {return this._isShown ? this.hide() : this.show(t);} show (t) { this._isShown || P.trigger(this._element, 'show.bs.offcanvas', { relatedTarget: t }).defaultPrevented || (this._isShown = !0, this._element.style.visibility = 'visible', this._backdrop.show(), this._config.scroll || (new Oe).hide(), this._element.removeAttribute( 'aria-hidden'), this._element.setAttribute('aria-modal', !0), this._element.setAttribute('role', 'dialog'), this._element.classList.add( 'show'), this._queueCallback(() => { this._config.scroll || this._focustrap.activate(), P.trigger( this._element, 'shown.bs.offcanvas', { relatedTarget: t }); }, this._element, !0)); } hide () { this._isShown && (P.trigger(this._element, 'hide.bs.offcanvas').defaultPrevented || (this._focustrap.deactivate(), this._element.blur(), this._isShown = !1, this._element.classList.remove( 'show'), this._backdrop.hide(), this._queueCallback(() => { this._element.setAttribute('aria-hidden', !0), this._element.removeAttribute( 'aria-modal'), this._element.removeAttribute( 'role'), this._element.style.visibility = 'hidden', this._config.scroll || (new Oe).reset(), P.trigger(this._element, 'hidden.bs.offcanvas'); }, this._element, !0))); } dispose () {this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose();} _getConfig (t) { return t = { ...je, ...F.getDataAttributes(this._element), ...'object' == typeof t ? t : {}, }, r('offcanvas', t, Me), t; } _initializeBackDrop () { return new Le({ className: 'offcanvas-backdrop', isVisible: this._config.backdrop, isAnimated: !0, rootElement: this._element.parentNode, clickCallback: () => this.hide(), }); } _initializeFocusTrap () {return new Se({ trapElement: this._element });} _addEventListeners () { P.on(this._element, 'keydown.dismiss.bs.offcanvas', t => { this._config.keyboard && 'Escape' === t.key && this.hide(); }); } } P.on(document, 'click.bs.offcanvas.data-api', '[data-bs-toggle="offcanvas"]', (function (t) { const e = i(this); if (['A', 'AREA'].includes(this.tagName) && t.preventDefault(), l( this)) return; P.one(e, 'hidden.bs.offcanvas', () => {a(this) && this.focus();}); const n = U.findOne('.offcanvas.show'); n && n !== e && He.getInstance(n).hide(), He.getOrCreateInstance(e). toggle(this); })), P.on(window, 'load.bs.offcanvas.data-api', () => U.find('.offcanvas.show'). forEach(t => He.getOrCreateInstance(t).show())), B(He), m(He); const Be = new Set([ 'background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']), Re = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i, We = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i, ze = (t, e) => { const i = t.nodeName.toLowerCase(); if (e.includes(i)) return !Be.has(i) || Boolean(Re.test(t.nodeValue) || We.test(t.nodeValue)); const n = e.filter(t => t instanceof RegExp); for (let t = 0, e = n.length; t < e; t++) if (n[t].test( i)) return !0; return !1; }; function qe (t, e, i) { if (!t.length) return t; if (i && 'function' == typeof i) return i(t); const n = (new window.DOMParser).parseFromString(t, 'text/html'), s = Object.keys(e), o = [].concat(...n.body.querySelectorAll('*')); for (let t = 0, i = o.length; t < i; t++) { const i = o[t], n = i.nodeName.toLowerCase(); if (!s.includes(n)) { i.remove(); continue; } const r = [].concat(...i.attributes), a = [].concat(e['*'] || [], e[n] || []); r.forEach(t => {ze(t, a) || i.removeAttribute(t.nodeName);}); } return n.body.innerHTML; } const Fe = new Set(['sanitize', 'allowList', 'sanitizeFn']), Ue = { animation: 'boolean', template: 'string', title: '(string|element|function)', trigger: 'string', delay: '(number|object)', html: 'boolean', selector: '(string|boolean)', placement: '(string|function)', offset: '(array|string|function)', container: '(string|element|boolean)', fallbackPlacements: 'array', boundary: '(string|element)', customClass: '(string|function)', sanitize: 'boolean', sanitizeFn: '(null|function)', allowList: 'object', popperConfig: '(null|object|function)', }, $e = { AUTO: 'auto', TOP: 'top', RIGHT: p() ? 'left' : 'right', BOTTOM: 'bottom', LEFT: p() ? 'right' : 'left', }, Ve = { animation: !0, template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', trigger: 'hover focus', title: '', delay: 0, html: !1, selector: !1, placement: 'top', offset: [0, 0], container: !1, fallbackPlacements: ['top', 'right', 'bottom', 'left'], boundary: 'clippingParents', customClass: '', sanitize: !0, sanitizeFn: null, allowList: { '*': [ 'class', 'dir', 'id', 'lang', 'role', /^aria-[\w-]*$/i], a: ['target', 'href', 'title', 'rel'], area: [], b: [], br: [], col: [], code: [], div: [], em: [], hr: [], h1: [], h2: [], h3: [], h4: [], h5: [], h6: [], i: [], img: ['src', 'srcset', 'alt', 'title', 'width', 'height'], li: [], ol: [], p: [], pre: [], s: [], small: [], span: [], sub: [], sup: [], strong: [], u: [], ul: [], }, popperConfig: null, }, Ke = { HIDE: 'hide.bs.tooltip', HIDDEN: 'hidden.bs.tooltip', SHOW: 'show.bs.tooltip', SHOWN: 'shown.bs.tooltip', INSERTED: 'inserted.bs.tooltip', CLICK: 'click.bs.tooltip', FOCUSIN: 'focusin.bs.tooltip', FOCUSOUT: 'focusout.bs.tooltip', MOUSEENTER: 'mouseenter.bs.tooltip', MOUSELEAVE: 'mouseleave.bs.tooltip', }; class Xe extends H { constructor (t, e) { if (void 0 === pe) throw new TypeError( 'Bootstrap\'s tooltips require Popper (https://popper.js.org)'); super( t), this._isEnabled = !0, this._timeout = 0, this._hoverState = '', this._activeTrigger = {}, this._popper = null, this._config = this._getConfig( e), this.tip = null, this._setListeners(); } static get Default () {return Ve;} static get NAME () {return 'tooltip';} static get Event () {return Ke;} static get DefaultType () {return Ue;} static jQueryInterface (t) { return this.each((function () { const e = Xe.getOrCreateInstance(this, t); if ('string' == typeof t) { if (void 0 === e[t]) throw new TypeError( `No method named "${t}"`); e[t](); } })); } enable () {this._isEnabled = !0;} disable () {this._isEnabled = !1;} toggleEnabled () {this._isEnabled = !this._isEnabled;} toggle (t) { if (this._isEnabled) if (t) { const e = this._initializeOnDelegatedTarget(t); e._activeTrigger.click = !e._activeTrigger.click, e._isWithActiveTrigger() ? e._enter(null, e) : e._leave(null, e); } else { if (this.getTipElement(). classList. contains('show')) return void this._leave(null, this); this._enter(null, this); } } dispose () { clearTimeout(this._timeout), P.off(this._element.closest('.modal'), 'hide.bs.modal', this._hideModalHandler), this.tip && this.tip.remove(), this._popper && this._popper.destroy(), super.dispose(); } show () { if ('none' === this._element.style.display) throw new Error( 'Please use show on visible elements'); if (!this.isWithContent() || !this._isEnabled) return; const t = P.trigger(this._element, this.constructor.Event.SHOW), e = c(this._element), i = null === e ? this._element.ownerDocument.documentElement.contains( this._element) : e.contains(this._element); if (t.defaultPrevented || !i) return; const n = this.getTipElement(), s = (t => { do { t += Math.floor(1e6 * Math.random()); } while (document.getElementById(t)); return t; })(this.constructor.NAME); n.setAttribute('id', s), this._element.setAttribute( 'aria-describedby', s), this._config.animation && n.classList.add('fade'); const o = 'function' == typeof this._config.placement ? this._config.placement.call(this, n, this._element) : this._config.placement, r = this._getAttachment(o); this._addAttachmentClass(r); const { container: a } = this._config; M.set(n, this.constructor.DATA_KEY, this), this._element.ownerDocument.documentElement.contains( this.tip) || (a.append(n), P.trigger(this._element, this.constructor.Event.INSERTED)), this._popper ? this._popper.update() : this._popper = fe(this._element, n, this._getPopperConfig(r)), n.classList.add('show'); const l = this._resolvePossibleFunction(this._config.customClass); l && n.classList.add(...l.split(' ')), 'ontouchstart' in document.documentElement && [].concat(...document.body.children). forEach(t => {P.on(t, 'mouseover', h);}); const d = this.tip.classList.contains('fade'); this._queueCallback(() => { const t = this._hoverState; this._hoverState = null, P.trigger(this._element, this.constructor.Event.SHOWN), 'out' === t && this._leave(null, this); }, this.tip, d); } hide () { if (!this._popper) return; const t = this.getTipElement(); if (P.trigger(this._element, this.constructor.Event.HIDE).defaultPrevented) return; t.classList.remove('show'), 'ontouchstart' in document.documentElement && [].concat(...document.body.children). forEach(t => P.off(t, 'mouseover', h)), this._activeTrigger.click = !1, this._activeTrigger.focus = !1, this._activeTrigger.hover = !1; const e = this.tip.classList.contains('fade'); this._queueCallback(() => { this._isWithActiveTrigger() || ('show' !== this._hoverState && t.remove(), this._cleanTipClass(), this._element.removeAttribute( 'aria-describedby'), P.trigger(this._element, this.constructor.Event.HIDDEN), this._popper && (this._popper.destroy(), this._popper = null)); }, this.tip, e), this._hoverState = ''; } update () {null !== this._popper && this._popper.update();} isWithContent () {return Boolean(this.getTitle());} getTipElement () { if (this.tip) return this.tip; const t = document.createElement('div'); t.innerHTML = this._config.template; const e = t.children[0]; return this.setContent(e), e.classList.remove('fade', 'show'), this.tip = e, this.tip; } setContent (t) { this._sanitizeAndSetContent(t, this.getTitle(), '.tooltip-inner'); } _sanitizeAndSetContent (t, e, i) { const n = U.findOne(i, t); e || !n ? this.setElementContent(n, e) : n.remove(); } setElementContent (t, e) { if (null !== t) return s(e) ? (e = o(e), void (this._config.html ? e.parentNode !== t && (t.innerHTML = '', t.append(e)) : t.textContent = e.textContent)) : void (this._config.html ? (this._config.sanitize && (e = qe(e, this._config.allowList, this._config.sanitizeFn)), t.innerHTML = e) : t.textContent = e); } getTitle () { const t = this._element.getAttribute('data-bs-original-title') || this._config.title; return this._resolvePossibleFunction(t); } updateAttachment (t) { return 'right' === t ? 'end' : 'left' === t ? 'start' : t; } _initializeOnDelegatedTarget (t, e) { return e || this.constructor.getOrCreateInstance(t.delegateTarget, this._getDelegateConfig()); } _getOffset () { const { offset: t } = this._config; return 'string' == typeof t ? t.split(','). map(t => Number.parseInt(t, 10)) : 'function' == typeof t ? e => t(e, this._element) : t; } _resolvePossibleFunction (t) { return 'function' == typeof t ? t.call(this._element) : t; } _getPopperConfig (t) { const e = { placement: t, modifiers: [ { name: 'flip', options: { fallbackPlacements: this._config.fallbackPlacements }, }, { name: 'offset', options: { offset: this._getOffset() } }, { name: 'preventOverflow', options: { boundary: this._config.boundary }, }, { name: 'arrow', options: { element: `.${this.constructor.NAME}-arrow` }, }, { name: 'onChange', enabled: !0, phase: 'afterWrite', fn: t => this._handlePopperPlacementChange(t), }], onFirstUpdate: t => { t.options.placement !== t.placement && this._handlePopperPlacementChange(t); }, }; return { ...e, ...'function' == typeof this._config.popperConfig ? this._config.popperConfig(e) : this._config.popperConfig, }; } _addAttachmentClass (t) { this.getTipElement(). classList. add(`${this._getBasicClassPrefix()}-${this.updateAttachment( t)}`); } _getAttachment (t) {return $e[t.toUpperCase()];} _setListeners () { this._config.trigger.split(' '). forEach(t => { if ('click' === t) P.on(this._element, this.constructor.Event.CLICK, this._config.selector, t => this.toggle(t)); else if ('manual' !== t) { const e = 'hover' === t ? this.constructor.Event.MOUSEENTER : this.constructor.Event.FOCUSIN, i = 'hover' === t ? this.constructor.Event.MOUSELEAVE : this.constructor.Event.FOCUSOUT; P.on(this._element, e, this._config.selector, t => this._enter(t)), P.on(this._element, i, this._config.selector, t => this._leave(t)); } }), this._hideModalHandler = () => { this._element && this.hide(); }, P.on(this._element.closest('.modal'), 'hide.bs.modal', this._hideModalHandler), this._config.selector ? this._config = { ...this._config, trigger: 'manual', selector: '', } : this._fixTitle(); } _fixTitle () { const t = this._element.getAttribute('title'), e = typeof this._element.getAttribute('data-bs-original-title'); (t || 'string' !== e) && (this._element.setAttribute('data-bs-original-title', t || ''), !t || this._element.getAttribute('aria-label') || this._element.textContent || this._element.setAttribute('aria-label', t), this._element.setAttribute('title', '')); } _enter (t, e) { e = this._initializeOnDelegatedTarget(t, e), t && (e._activeTrigger['focusin' === t.type ? 'focus' : 'hover'] = !0), e.getTipElement(). classList. contains('show') || 'show' === e._hoverState ? e._hoverState = 'show' : (clearTimeout( e._timeout), e._hoverState = 'show', e._config.delay && e._config.delay.show ? e._timeout = setTimeout( () => {'show' === e._hoverState && e.show();}, e._config.delay.show) : e.show()); } _leave (t, e) { e = this._initializeOnDelegatedTarget(t, e), t && (e._activeTrigger['focusout' === t.type ? 'focus' : 'hover'] = e._element.contains( t.relatedTarget)), e._isWithActiveTrigger() || (clearTimeout(e._timeout), e._hoverState = 'out', e._config.delay && e._config.delay.hide ? e._timeout = setTimeout( () => {'out' === e._hoverState && e.hide();}, e._config.delay.hide) : e.hide()); } _isWithActiveTrigger () { for (const t in this._activeTrigger) if (this._activeTrigger[t]) return !0; return !1; } _getConfig (t) { const e = F.getDataAttributes(this._element); return Object.keys(e). forEach(t => { Fe.has(t) && delete e[t]; }), (t = { ...this.constructor.Default, ...e, ...'object' == typeof t && t ? t : {}, }).container = !1 === t.container ? document.body : o( t.container), 'number' == typeof t.delay && (t.delay = { show: t.delay, hide: t.delay }), 'number' == typeof t.title && (t.title = t.title.toString()), 'number' == typeof t.content && (t.content = t.content.toString()), r('tooltip', t, this.constructor.DefaultType), t.sanitize && (t.template = qe(t.template, t.allowList, t.sanitizeFn)), t; } _getDelegateConfig () { const t = {}; for (const e in this._config) this.constructor.Default[e] !== this._config[e] && (t[e] = this._config[e]); return t; } _cleanTipClass () { const t = this.getTipElement(), e = new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`, 'g'), i = t.getAttribute('class').match(e); null !== i && i.length > 0 && i.map(t => t.trim()).forEach(e => t.classList.remove(e)); } _getBasicClassPrefix () {return 'bs-tooltip';} _handlePopperPlacementChange (t) { const { state: e } = t; e && (this.tip = e.elements.popper, this._cleanTipClass(), this._addAttachmentClass( this._getAttachment(e.placement))); } } m(Xe); const Ye = { ...Xe.Default, placement: 'right', offset: [0, 8], trigger: 'click', content: '', template: '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>', }, Qe = { ...Xe.DefaultType, content: '(string|element|function)' }, Ge = { HIDE: 'hide.bs.popover', HIDDEN: 'hidden.bs.popover', SHOW: 'show.bs.popover', SHOWN: 'shown.bs.popover', INSERTED: 'inserted.bs.popover', CLICK: 'click.bs.popover', FOCUSIN: 'focusin.bs.popover', FOCUSOUT: 'focusout.bs.popover', MOUSEENTER: 'mouseenter.bs.popover', MOUSELEAVE: 'mouseleave.bs.popover', }; class Ze extends Xe { static get Default () {return Ye;} static get NAME () {return 'popover';} static get Event () {return Ge;} static get DefaultType () {return Qe;} static jQueryInterface (t) { return this.each((function () { const e = Ze.getOrCreateInstance(this, t); if ('string' == typeof t) { if (void 0 === e[t]) throw new TypeError( `No method named "${t}"`); e[t](); } })); } isWithContent () {return this.getTitle() || this._getContent();} setContent (t) { this._sanitizeAndSetContent(t, this.getTitle(), '.popover-header'), this._sanitizeAndSetContent(t, this._getContent(), '.popover-body'); } _getContent () { return this._resolvePossibleFunction(this._config.content); } _getBasicClassPrefix () {return 'bs-popover';} } m(Ze); const Je = { offset: 10, method: 'auto', target: '' }, ti = { offset: 'number', method: 'string', target: '(string|element)' }, ei = '.nav-link, .list-group-item, .dropdown-item'; class ii extends H { constructor (t, e) { super(t), this._scrollElement = 'BODY' === this._element.tagName ? window : this._element, this._config = this._getConfig( e), this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, P.on( this._scrollElement, 'scroll.bs.scrollspy', () => this._process()), this.refresh(), this._process(); } static get Default () {return Je;} static get NAME () {return 'scrollspy';} static jQueryInterface (t) { return this.each((function () { const e = ii.getOrCreateInstance(this, t); if ('string' == typeof t) { if (void 0 === e[t]) throw new TypeError( `No method named "${t}"`); e[t](); } })); } refresh () { const t = this._scrollElement === this._scrollElement.window ? 'offset' : 'position', i = 'auto' === this._config.method ? t : this._config.method, n = 'position' === i ? this._getScrollTop() : 0; this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), U.find( ei, this._config.target). map(t => { const s = e(t), o = s ? U.findOne(s) : null; if (o) { const t = o.getBoundingClientRect(); if (t.width || t.height) return [F[i](o).top + n, s]; } return null; }). filter(t => t). sort((t, e) => t[0] - e[0]). forEach( t => {this._offsets.push(t[0]), this._targets.push(t[1]);}); } dispose () { P.off(this._scrollElement, '.bs.scrollspy'), super.dispose(); } _getConfig (t) { return (t = { ...Je, ...F.getDataAttributes(this._element), ...'object' == typeof t && t ? t : {}, }).target = o(t.target) || document.documentElement, r('scrollspy', t, ti), t; } _getScrollTop () { return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop; } _getScrollHeight () { return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); } _getOffsetHeight () { return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height; } _process () { const t = this._getScrollTop() + this._config.offset, e = this._getScrollHeight(), i = this._config.offset + e - this._getOffsetHeight(); if (this._scrollHeight !== e && this.refresh(), t >= i) { const t = this._targets[this._targets.length - 1]; this._activeTarget !== t && this._activate(t); } else { if (this._activeTarget && t < this._offsets[0] && this._offsets[0] > 0) return this._activeTarget = null, void this._clear(); for (let e = this._offsets.length; e--;) this._activeTarget !== this._targets[e] && t >= this._offsets[e] && (void 0 === this._offsets[e + 1] || t < this._offsets[e + 1]) && this._activate(this._targets[e]); } } _activate (t) { this._activeTarget = t, this._clear(); const e = ei.split(','). map(e => `${e}[data-bs-target="${t}"],${e}[href="${t}"]`), i = U.findOne(e.join(','), this._config.target); i.classList.add('active'), i.classList.contains('dropdown-item') ? U.findOne('.dropdown-toggle', i.closest('.dropdown')). classList. add('active') : U.parents(i, '.nav, .list-group'). forEach(t => { U.prev(t, '.nav-link, .list-group-item'). forEach(t => t.classList.add('active')), U.prev(t, '.nav-item'). forEach(t => { U.children(t, '.nav-link'). forEach(t => t.classList.add('active')); }); }), P.trigger(this._scrollElement, 'activate.bs.scrollspy', { relatedTarget: t }); } _clear () { U.find(ei, this._config.target). filter(t => t.classList.contains('active')). forEach(t => t.classList.remove('active')); } } P.on(window, 'load.bs.scrollspy.data-api', () => {U.find('[data-bs-spy="scroll"]').forEach(t => new ii(t));}), m( ii); class ni extends H { static get NAME () {return 'tab';} static jQueryInterface (t) { return this.each((function () { const e = ni.getOrCreateInstance(this); if ('string' == typeof t) { if (void 0 === e[t]) throw new TypeError( `No method named "${t}"`); e[t](); } })); } show () { if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains('active')) return; let t; const e = i(this._element), n = this._element.closest('.nav, .list-group'); if (n) { const e = 'UL' === n.nodeName || 'OL' === n.nodeName ? ':scope > li > .active' : '.active'; t = U.find(e, n), t = t[t.length - 1]; } const s = t ? P.trigger(t, 'hide.bs.tab', { relatedTarget: this._element }) : null; if (P.trigger(this._element, 'show.bs.tab', { relatedTarget: t }).defaultPrevented || null !== s && s.defaultPrevented) return; this._activate(this._element, n); const o = () => { P.trigger(t, 'hidden.bs.tab', { relatedTarget: this._element }), P.trigger(this._element, 'shown.bs.tab', { relatedTarget: t }); }; e ? this._activate(e, e.parentNode, o) : o(); } _activate (t, e, i) { const n = (!e || 'UL' !== e.nodeName && 'OL' !== e.nodeName ? U.children(e, '.active') : U.find(':scope > li > .active', e))[0], s = i && n && n.classList.contains('fade'), o = () => this._transitionComplete(t, n, i); n && s ? (n.classList.remove('show'), this._queueCallback(o, t, !0)) : o(); } _transitionComplete (t, e, i) { if (e) { e.classList.remove('active'); const t = U.findOne(':scope > .dropdown-menu .active', e.parentNode); t && t.classList.remove('active'), 'tab' === e.getAttribute('role') && e.setAttribute('aria-selected', !1); } t.classList.add('active'), 'tab' === t.getAttribute('role') && t.setAttribute('aria-selected', !0), d(t), t.classList.contains( 'fade') && t.classList.add('show'); let n = t.parentNode; if (n && 'LI' === n.nodeName && (n = n.parentNode), n && n.classList.contains('dropdown-menu')) { const e = t.closest('.dropdown'); e && U.find('.dropdown-toggle', e). forEach(t => t.classList.add('active')), t.setAttribute( 'aria-expanded', !0); } i && i(); } } P.on(document, 'click.bs.tab.data-api', '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]', (function (t) { ['A', 'AREA'].includes(this.tagName) && t.preventDefault(), l( this) || ni.getOrCreateInstance(this).show(); })), m(ni); const si = { animation: 'boolean', autohide: 'boolean', delay: 'number' }, oi = { animation: !0, autohide: !0, delay: 5e3 }; class ri extends H { constructor (t, e) { super(t), this._config = this._getConfig( e), this._timeout = null, this._hasMouseInteraction = !1, this._hasKeyboardInteraction = !1, this._setListeners(); } static get DefaultType () {return si;} static get Default () {return oi;} static get NAME () {return 'toast';} static jQueryInterface (t) { return this.each((function () { const e = ri.getOrCreateInstance(this, t); if ('string' == typeof t) { if (void 0 === e[t]) throw new TypeError( `No method named "${t}"`); e[t](this); } })); } show () { P.trigger(this._element, 'show.bs.toast').defaultPrevented || (this._clearTimeout(), this._config.animation && this._element.classList.add('fade'), this._element.classList.remove( 'hide'), d(this._element), this._element.classList.add( 'show'), this._element.classList.add( 'showing'), this._queueCallback(() => { this._element.classList.remove('showing'), P.trigger( this._element, 'shown.bs.toast'), this._maybeScheduleHide(); }, this._element, this._config.animation)); } hide () { this._element.classList.contains('show') && (P.trigger(this._element, 'hide.bs.toast').defaultPrevented || (this._element.classList.add('showing'), this._queueCallback( () => { this._element.classList.add( 'hide'), this._element.classList.remove( 'showing'), this._element.classList.remove( 'show'), P.trigger(this._element, 'hidden.bs.toast'); }, this._element, this._config.animation))); } dispose () { this._clearTimeout(), this._element.classList.contains('show') && this._element.classList.remove('show'), super.dispose(); } _getConfig (t) { return t = { ...oi, ...F.getDataAttributes(this._element), ...'object' == typeof t && t ? t : {}, }, r('toast', t, this.constructor.DefaultType), t; } _maybeScheduleHide () { this._config.autohide && (this._hasMouseInteraction || this._hasKeyboardInteraction || (this._timeout = setTimeout(() => {this.hide();}, this._config.delay))); } _onInteraction (t, e) { switch (t.type) { case'mouseover': case'mouseout': this._hasMouseInteraction = e; break; case'focusin': case'focusout': this._hasKeyboardInteraction = e; } if (e) return void this._clearTimeout(); const i = t.relatedTarget; this._element === i || this._element.contains(i) || this._maybeScheduleHide(); } _setListeners () { P.on(this._element, 'mouseover.bs.toast', t => this._onInteraction(t, !0)), P.on(this._element, 'mouseout.bs.toast', t => this._onInteraction(t, !1)), P.on( this._element, 'focusin.bs.toast', t => this._onInteraction(t, !0)), P.on(this._element, 'focusout.bs.toast', t => this._onInteraction(t, !1)); } _clearTimeout () {clearTimeout(this._timeout), this._timeout = null;} } return B(ri), m(ri), { Alert: R, Button: W, Carousel: Z, Collapse: et, Dropdown: Te, Modal: Pe, Offcanvas: He, Popover: Ze, ScrollSpy: ii, Tab: ni, Toast: ri, Tooltip: Xe, }; })); window.scwAccordionsPlugin = window.scwAccordionsPlugin || {}; window.SEMICOLON_accordionsInit = function ($accordionEl) { $accordionEl = $accordionEl.filter(':not(.customjs)'); if ($accordionEl.length < 1) { return true; } $accordionEl.each(function () { let element = $(this), elState = element.attr('data-state'), elActive = element.attr('data-active') || 1, elActiveClass = element.attr('data-active-class') || '', elCollapsible = element.attr('data-collapsible') || 'false', windowHash = location.hash, accActive; elActive = Number(elActive) - 1; if (typeof windowHash !== 'undefined' && windowHash != '') { accActive = element.find('.accordion-header' + windowHash); if (accActive.length > 0) { elActive = accActive.index() / 2; } } element.find('.accordion-content').hide(); if (elState != 'closed') { element.find('.accordion-header:eq(' + Number(elActive) + ')'). addClass('accordion-active ' + elActiveClass). next(). show(); } element.find('.accordion-header').off('click').on('click', function () { if ($(this).next().is(':hidden')) { element.find('.accordion-header'). removeClass('accordion-active ' + elActiveClass). next(). slideUp('normal'); let clickTarget = $(this); $(this). toggleClass('accordion-active ' + elActiveClass, true). next(). stop(true, true). slideDown('normal', function () { if (($('body').hasClass('device-sm') || $('body').hasClass('device-xs')) && element.hasClass('scroll-on-open')) { $('html,body').stop(true, true).animate({ 'scrollTop': clickTarget.offset().top - (SEMICOLON.initialize.topScrollOffset() - 40), }, 800, 'easeOutQuad'); } }); } else { if (elCollapsible == 'true') { $(this). toggleClass('accordion-active ' + elActiveClass, false). next(). stop(true, true). slideUp('normal'); } } return false; }); }); }; /*! jQuery Validation Plugin - v1.19.3 - 1/9/2021 * https://jqueryvalidation.org/ * Copyright (c) 2021 Jörn Zaefferer; Licensed MIT */ !function (a) { 'function' == typeof define && define.amd ? define(['jquery'], a) : 'object' == typeof module && module.exports ? module.exports = a( require('jquery')) : a(jQuery); }(function (a) { a.extend(a.fn, { validate: function (b) { if (!this.length) return void (b && b.debug && window.console && console.warn( 'Nothing selected, can\'t validate, returning nothing.')); var c = a.data(this[0], 'validator'); return c ? c : (this.attr('novalidate', 'novalidate'), c = new a.validator(b, this[0]), a.data(this[0], 'validator', c), c.settings.onsubmit && (this.on('click.validate', ':submit', function (b) { c.submitButton = b.currentTarget, a(this). hasClass('cancel') && (c.cancelSubmit = !0), void 0 !== a(this).attr('formnovalidate') && (c.cancelSubmit = !0); }), this.on('submit.validate', function (b) { function d () { var d, e; return c.submitButton && (c.settings.submitHandler || c.formSubmitted) && (d = a('<input type=\'hidden\'/>'). attr('name', c.submitButton.name). val(a(c.submitButton).val()). appendTo(c.currentForm)), !(c.settings.submitHandler && !c.settings.debug) || (e = c.settings.submitHandler.call(c, c.currentForm, b), d && d.remove(), void 0 !== e && e); } return c.settings.debug && b.preventDefault(), c.cancelSubmit ? (c.cancelSubmit = !1, d()) : c.form() ? c.pendingRequest ? (c.formSubmitted = !0, !1) : d() : (c.focusInvalid(), !1); })), c); }, valid: function () { var b, c, d; return a(this[0]).is('form') ? b = this.validate().form() : (d = [], b = !0, c = a(this[0].form).validate(), this.each( function () { b = c.element(this) && b, b || (d = d.concat(c.errorList)); }), c.errorList = d), b; }, rules: function (b, c) { var d, e, f, g, h, i, j = this[0], k = 'undefined' != typeof this.attr('contenteditable') && 'false' !== this.attr('contenteditable'); if (null != j && (!j.form && k && (j.form = this.closest('form')[0], j.name = this.attr( 'name')), null != j.form)) { if (b) switch (d = a.data(j.form, 'validator').settings, e = d.rules, f = a.validator.staticRules( j), b) { case'add': a.extend(f, a.validator.normalizeRule( c)), delete f.messages, e[j.name] = f, c.messages && (d.messages[j.name] = a.extend(d.messages[j.name], c.messages)); break; case'remove': return c ? (i = {}, a.each(c.split(/\s/), function (a, b) {i[b] = f[b], delete f[b];}), i) : (delete e[j.name], f); } return g = a.validator.normalizeRules( a.extend({}, a.validator.classRules(j), a.validator.attributeRules(j), a.validator.dataRules(j), a.validator.staticRules(j)), j), g.required && (h = g.required, delete g.required, g = a.extend( { required: h }, g)), g.remote && (h = g.remote, delete g.remote, g = a.extend(g, { remote: h })), g; } }, }); var b = function (a) { return a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); }; a.extend(a.expr.pseudos || a.expr[':'], { blank: function (c) {return !b('' + a(c).val());}, filled: function (c) { var d = a(c).val(); return null !== d && !!b('' + d); }, unchecked: function (b) {return !a(b).prop('checked');}, }), a.validator = function (b, c) { this.settings = a.extend(!0, {}, a.validator.defaults, b), this.currentForm = c, this.init(); }, a.validator.format = function (b, c) { return 1 === arguments.length ? function () { var c = a.makeArray(arguments); return c.unshift(b), a.validator.format.apply(this, c); } : void 0 === c ? b : (arguments.length > 2 && c.constructor !== Array && (c = a.makeArray(arguments).slice(1)), c.constructor !== Array && (c = [c]), a.each(c, function (a, c) { b = b.replace(new RegExp('\\{' + a + '\\}', 'g'), function () {return c;}); }), b); }, a.extend(a.validator, { defaults: { messages: {}, groups: {}, rules: {}, errorClass: 'error', pendingClass: 'pending', validClass: 'valid', errorElement: 'label', focusCleanup: !1, focusInvalid: !0, errorContainer: a([]), errorLabelContainer: a([]), onsubmit: !0, ignore: ':hidden', ignoreTitle: !1, onfocusin: function (a) { this.lastActive = a, this.settings.focusCleanup && (this.settings.unhighlight && this.settings.unhighlight.call(this, a, this.settings.errorClass, this.settings.validClass), this.hideThese( this.errorsFor(a))); }, onfocusout: function (a) { this.checkable(a) || !(a.name in this.submitted) && this.optional(a) || this.element(a); }, onkeyup: function (b, c) { var d = [ 16, 17, 18, 20, 35, 36, 37, 38, 39, 40, 45, 144, 225]; 9 === c.which && '' === this.elementValue(b) || a.inArray(c.keyCode, d) !== -1 || (b.name in this.submitted || b.name in this.invalid) && this.element(b); }, onclick: function (a) { a.name in this.submitted ? this.element(a) : a.parentNode.name in this.submitted && this.element(a.parentNode); }, highlight: function (b, c, d) { 'radio' === b.type ? this.findByName(b.name). addClass(c). removeClass(d) : a(b).addClass(c).removeClass(d); }, unhighlight: function (b, c, d) { 'radio' === b.type ? this.findByName(b.name).removeClass(c).addClass(d) : a(b).removeClass(c).addClass(d); }, }, setDefaults: function (b) {a.extend(a.validator.defaults, b);}, messages: { required: 'This field is required.', remote: 'Please fix this field.', email: 'Please enter a valid email address.', url: 'Please enter a valid URL.', date: 'Please enter a valid date.', dateISO: 'Please enter a valid date (ISO).', number: 'Please enter a valid number.', digits: 'Please enter only digits.', equalTo: 'Please enter the same value again.', maxlength: a.validator.format( 'Please enter no more than {0} characters.'), minlength: a.validator.format( 'Please enter at least {0} characters.'), rangelength: a.validator.format( 'Please enter a value between {0} and {1} characters long.'), range: a.validator.format( 'Please enter a value between {0} and {1}.'), max: a.validator.format( 'Please enter a value less than or equal to {0}.'), min: a.validator.format( 'Please enter a value greater than or equal to {0}.'), step: a.validator.format('Please enter a multiple of {0}.'), }, autoCreateRanges: !1, prototype: { init: function () { function b (b) { var c = 'undefined' != typeof a(this).attr('contenteditable') && 'false' !== a(this).attr('contenteditable'); if (!this.form && c && (this.form = a(this).closest('form')[0], this.name = a( this).attr('name')), d === this.form) { var e = a.data(this.form, 'validator'), f = 'on' + b.type.replace(/^validate/, ''), g = e.settings; g[f] && !a(this).is(g.ignore) && g[f].call(e, this, b); } } this.labelContainer = a( this.settings.errorLabelContainer), this.errorContext = this.labelContainer.length && this.labelContainer || a(this.currentForm), this.containers = a( this.settings.errorContainer). add(this.settings.errorLabelContainer), this.submitted = {}, this.valueCache = {}, this.pendingRequest = 0, this.pending = {}, this.invalid = {}, this.reset(); var c, d = this.currentForm, e = this.groups = {}; a.each(this.settings.groups, function (b, c) { 'string' == typeof c && (c = c.split(/\s/)), a.each(c, function (a, c) {e[c] = b;}); }), c = this.settings.rules, a.each(c, function (b, d) {c[b] = a.validator.normalizeRule(d);}), a( this.currentForm). on('focusin.validate focusout.validate keyup.validate', ':text, [type=\'password\'], [type=\'file\'], select, textarea, [type=\'number\'], [type=\'search\'], [type=\'tel\'], [type=\'url\'], [type=\'email\'], [type=\'datetime\'], [type=\'date\'], [type=\'month\'], [type=\'week\'], [type=\'time\'], [type=\'datetime-local\'], [type=\'range\'], [type=\'color\'], [type=\'radio\'], [type=\'checkbox\'], [contenteditable], [type=\'button\']', b). on('click.validate', 'select, option, [type=\'radio\'], [type=\'checkbox\']', b), this.settings.invalidHandler && a(this.currentForm). on('invalid-form.validate', this.settings.invalidHandler); }, form: function () { return this.checkForm(), a.extend(this.submitted, this.errorMap), this.invalid = a.extend({}, this.errorMap), this.valid() || a(this.currentForm). triggerHandler('invalid-form', [this]), this.showErrors(), this.valid(); }, checkForm: function () { this.prepareForm(); for (var a = 0, b = this.currentElements = this.elements(); b[a]; a++) this.check( b[a]); return this.valid(); }, element: function (b) { var c, d, e = this.clean(b), f = this.validationTargetFor(e), g = this, h = !0; return void 0 === f ? delete this.invalid[e.name] : (this.prepareElement(f), this.currentElements = a( f), d = this.groups[f.name], d && a.each(this.groups, function (a, b) { b === d && a !== f.name && (e = g.validationTargetFor( g.clean(g.findByName(a))), e && e.name in g.invalid && (g.currentElements.push(e), h = g.check(e) && h)); }), c = this.check(f) !== !1, h = h && c, c ? this.invalid[f.name] = !1 : this.invalid[f.name] = !0, this.numberOfInvalids() || (this.toHide = this.toHide.add( this.containers)), this.showErrors(), a(b). attr('aria-invalid', !c)), h; }, showErrors: function (b) { if (b) { var c = this; a.extend(this.errorMap, b), this.errorList = a.map( this.errorMap, function (a, b) { return { message: a, element: c.findByName(b)[0], }; }), this.successList = a.grep(this.successList, function (a) {return !(a.name in b);}); } this.settings.showErrors ? this.settings.showErrors.call(this, this.errorMap, this.errorList) : this.defaultShowErrors(); }, resetForm: function () { a.fn.resetForm && a(this.currentForm). resetForm(), this.invalid = {}, this.submitted = {}, this.prepareForm(), this.hideErrors(); var b = this.elements(). removeData('previousValue'). removeAttr('aria-invalid'); this.resetElements(b); }, resetElements: function (a) { var b; if (this.settings.unhighlight) for (b = 0; a[b]; b++) this.settings.unhighlight.call( this, a[b], this.settings.errorClass, ''), this.findByName( a[b].name). removeClass(this.settings.validClass); else a.removeClass( this.settings.errorClass). removeClass(this.settings.validClass); }, numberOfInvalids: function () { return this.objectLength(this.invalid); }, objectLength: function (a) { var b, c = 0; for (b in a) void 0 !== a[b] && null !== a[b] && a[b] !== !1 && c++; return c; }, hideErrors: function () {this.hideThese(this.toHide);}, hideThese: function (a) { a.not(this.containers). text(''), this.addWrapper(a).hide(); }, valid: function () {return 0 === this.size();}, size: function () {return this.errorList.length;}, focusInvalid: function () { if (this.settings.focusInvalid) try { a(this.findLastActive() || this.errorList.length && this.errorList[0].element || []). filter(':visible'). trigger('focus'). trigger('focusin'); } catch (b) {} }, findLastActive: function () { var b = this.lastActive; return b && 1 === a.grep(this.errorList, function (a) {return a.element.name === b.name;}).length && b; }, elements: function () { var b = this, c = {}; return a(this.currentForm). find('input, select, textarea, [contenteditable]'). not(':submit, :reset, :image, :disabled'). not(this.settings.ignore). filter(function () { var d = this.name || a(this).attr('name'), e = 'undefined' != typeof a(this).attr('contenteditable') && 'false' !== a(this).attr('contenteditable'); return !d && b.settings.debug && window.console && console.error('%o has no name assigned', this), e && (this.form = a(this). closest('form')[0], this.name = d), this.form === b.currentForm && (!(d in c || !b.objectLength(a(this).rules())) && (c[d] = !0, !0)); }); }, clean: function (b) {return a(b)[0];}, errors: function () { var b = this.settings.errorClass.split(' '). join('.'); return a(this.settings.errorElement + '.' + b, this.errorContext); }, resetInternals: function () { this.successList = [], this.errorList = [], this.errorMap = {}, this.toShow = a( []), this.toHide = a([]); }, reset: function () { this.resetInternals(), this.currentElements = a([]); }, prepareForm: function () { this.reset(), this.toHide = this.errors(). add(this.containers); }, prepareElement: function (a) { this.reset(), this.toHide = this.errorsFor(a); }, elementValue: function (b) { var c, d, e = a(b), f = b.type, g = 'undefined' != typeof e.attr('contenteditable') && 'false' !== e.attr('contenteditable'); return 'radio' === f || 'checkbox' === f ? this.findByName( b.name).filter(':checked').val() : 'number' === f && 'undefined' != typeof b.validity ? b.validity.badInput ? 'NaN' : e.val() : (c = g ? e.text() : e.val(), 'file' === f ? 'C:\\fakepath\\' === c.substr(0, 12) ? c.substr(12) : (d = c.lastIndexOf('/'), d >= 0 ? c.substr(d + 1) : (d = c.lastIndexOf('\\'), d >= 0 ? c.substr(d + 1) : c)) : 'string' == typeof c ? c.replace(/\r/g, '') : c); }, check: function (b) { b = this.validationTargetFor(this.clean(b)); var c, d, e, f, g = a(b).rules(), h = a.map(g, function (a, b) {return b;}).length, i = !1, j = this.elementValue(b); 'function' == typeof g.normalizer ? f = g.normalizer : 'function' == typeof this.settings.normalizer && (f = this.settings.normalizer), f && (j = f.call(b, j), delete g.normalizer); for (d in g) { e = { method: d, parameters: g[d] }; try { if (c = a.validator.methods[d].call(this, j, b, e.parameters), 'dependency-mismatch' === c && 1 === h) { i = !0; continue; } if (i = !1, 'pending' === c) return void (this.toHide = this.toHide.not( this.errorsFor(b))); if (!c) return this.formatAndAdd(b, e), !1; } catch (k) { throw this.settings.debug && window.console && console.log( 'Exception occurred when checking element ' + b.id + ', check the \'' + e.method + '\' method.', k), k instanceof TypeError && (k.message += '. Exception occurred when checking element ' + b.id + ', check the \'' + e.method + '\' method.'), k; } } if (!i) return this.objectLength(g) && this.successList.push(b), !0; }, customDataMessage: function (b, c) { return a(b). data('msg' + c.charAt(0).toUpperCase() + c.substring(1).toLowerCase()) || a(b).data('msg'); }, customMessage: function (a, b) { var c = this.settings.messages[a]; return c && (c.constructor === String ? c : c[b]); }, findDefined: function () { for (var a = 0; a < arguments.length; a++) if (void 0 !== arguments[a]) return arguments[a]; }, defaultMessage: function (b, c) { 'string' == typeof c && (c = { method: c }); var d = this.findDefined(this.customMessage(b.name, c.method), this.customDataMessage(b, c.method), !this.settings.ignoreTitle && b.title || void 0, a.validator.messages[c.method], '<strong>Warning: No message defined for ' + b.name + '</strong>'), e = /\$?\{(\d+)\}/g; return 'function' == typeof d ? d = d.call(this, c.parameters, b) : e.test(d) && (d = a.validator.format(d.replace(e, '{$1}'), c.parameters)), d; }, formatAndAdd: function (a, b) { var c = this.defaultMessage(a, b); this.errorList.push({ message: c, element: a, method: b.method, }), this.errorMap[a.name] = c, this.submitted[a.name] = c; }, addWrapper: function (a) { return this.settings.wrapper && (a = a.add(a.parent(this.settings.wrapper))), a; }, defaultShowErrors: function () { var a, b, c; for (a = 0; this.errorList[a]; a++) c = this.errorList[a], this.settings.highlight && this.settings.highlight.call(this, c.element, this.settings.errorClass, this.settings.validClass), this.showLabel(c.element, c.message); if (this.errorList.length && (this.toShow = this.toShow.add( this.containers)), this.settings.success) for (a = 0; this.successList[a]; a++) this.showLabel( this.successList[a]); if (this.settings.unhighlight) for (a = 0, b = this.validElements(); b[a]; a++) this.settings.unhighlight.call( this, b[a], this.settings.errorClass, this.settings.validClass); this.toHide = this.toHide.not( this.toShow), this.hideErrors(), this.addWrapper( this.toShow).show(); }, validElements: function () { return this.currentElements.not(this.invalidElements()); }, invalidElements: function () { return a(this.errorList). map(function () {return this.element;}); }, showLabel: function (b, c) { var d, e, f, g, h = this.errorsFor(b), i = this.idOrName(b), j = a(b).attr('aria-describedby'); h.length ? (h.removeClass(this.settings.validClass). addClass(this.settings.errorClass), h.html(c)) : (h = a( '<' + this.settings.errorElement + '>'). attr('id', i + '-error'). addClass(this.settings.errorClass). html(c || ''), d = h, this.settings.wrapper && (d = h.hide(). show(). wrap('<' + this.settings.wrapper + '/>'). parent()), this.labelContainer.length ? this.labelContainer.append(d) : this.settings.errorPlacement ? this.settings.errorPlacement.call(this, d, a(b)) : d.insertAfter(b), h.is('label') ? h.attr('for', i) : 0 === h.parents( 'label[for=\'' + this.escapeCssMeta(i) + '\']').length && (f = h.attr('id'), j ? j.match( new RegExp('\\b' + this.escapeCssMeta(f) + '\\b')) || (j += ' ' + f) : j = f, a(b). attr('aria-describedby', j), e = this.groups[b.name], e && (g = this, a.each(g.groups, function (b, c) { c === e && a('[name=\'' + g.escapeCssMeta(b) + '\']', g.currentForm). attr('aria-describedby', h.attr('id')); })))), !c && this.settings.success && (h.text(''), 'string' == typeof this.settings.success ? h.addClass(this.settings.success) : this.settings.success(h, b)), this.toShow = this.toShow.add(h); }, errorsFor: function (b) { var c = this.escapeCssMeta(this.idOrName(b)), d = a(b).attr('aria-describedby'), e = 'label[for=\'' + c + '\'], label[for=\'' + c + '\'] *'; return d && (e = e + ', #' + this.escapeCssMeta(d). replace(/\s+/g, ', #')), this.errors().filter(e); }, escapeCssMeta: function (a) { return a.replace(/([\\!"#$%&'()*+,.\/:;<=>?@\[\]^`{|}~])/g, '\\$1'); }, idOrName: function (a) { return this.groups[a.name] || (this.checkable(a) ? a.name : a.id || a.name); }, validationTargetFor: function (b) { return this.checkable(b) && (b = this.findByName(b.name)), a(b). not(this.settings.ignore)[0]; }, checkable: function (a) {return /radio|checkbox/i.test(a.type);}, findByName: function (b) { return a(this.currentForm). find('[name=\'' + this.escapeCssMeta(b) + '\']'); }, getLength: function (b, c) { switch (c.nodeName.toLowerCase()) { case'select': return a('option:selected', c).length; case'input': if (this.checkable(c)) return this.findByName(c.name). filter(':checked').length; } return b.length; }, depend: function (a, b) { return !this.dependTypes[typeof a] || this.dependTypes[typeof a](a, b); }, dependTypes: { 'boolean': function (a) {return a;}, string: function (b, c) {return !!a(b, c.form).length;}, 'function': function (a, b) {return a(b);}, }, optional: function (b) { var c = this.elementValue(b); return !a.validator.methods.required.call(this, c, b) && 'dependency-mismatch'; }, startRequest: function (b) { this.pending[b.name] || (this.pendingRequest++, a(b). addClass( this.settings.pendingClass), this.pending[b.name] = !0); }, stopRequest: function (b, c) { this.pendingRequest--, this.pendingRequest < 0 && (this.pendingRequest = 0), delete this.pending[b.name], a(b). removeClass(this.settings.pendingClass), c && 0 === this.pendingRequest && this.formSubmitted && this.form() ? (a( this.currentForm).submit(), this.submitButton && a('input:hidden[name=\'' + this.submitButton.name + '\']', this.currentForm).remove(), this.formSubmitted = !1) : !c && 0 === this.pendingRequest && this.formSubmitted && (a(this.currentForm). triggerHandler('invalid-form', [this]), this.formSubmitted = !1); }, previousValue: function (b, c) { return c = 'string' == typeof c && c || 'remote', a.data(b, 'previousValue') || a.data(b, 'previousValue', { old: null, valid: !0, message: this.defaultMessage(b, { method: c }), }); }, destroy: function () { this.resetForm(), a(this.currentForm). off('.validate'). removeData('validator'). find('.validate-equalTo-blur'). off('.validate-equalTo'). removeClass('validate-equalTo-blur'). find('.validate-lessThan-blur'). off('.validate-lessThan'). removeClass('validate-lessThan-blur'). find('.validate-lessThanEqual-blur'). off('.validate-lessThanEqual'). removeClass('validate-lessThanEqual-blur'). find('.validate-greaterThanEqual-blur'). off('.validate-greaterThanEqual'). removeClass('validate-greaterThanEqual-blur'). find('.validate-greaterThan-blur'). off('.validate-greaterThan'). removeClass('validate-greaterThan-blur'); }, }, classRuleSettings: { required: { required: !0 }, email: { email: !0 }, url: { url: !0 }, date: { date: !0 }, dateISO: { dateISO: !0 }, number: { number: !0 }, digits: { digits: !0 }, creditcard: { creditcard: !0 }, }, addClassRules: function (b, c) { b.constructor === String ? this.classRuleSettings[b] = c : a.extend(this.classRuleSettings, b); }, classRules: function (b) { var c = {}, d = a(b).attr('class'); return d && a.each(d.split(' '), function () { this in a.validator.classRuleSettings && a.extend(c, a.validator.classRuleSettings[this]); }), c; }, normalizeAttributeRule: function (a, b, c, d) { /min|max|step/.test(c) && (null === b || /number|range|text/.test(b)) && (d = Number(d), isNaN(d) && (d = void 0)), d || 0 === d ? a[c] = d : b === c && 'range' !== b && (a[c] = !0); }, attributeRules: function (b) { var c, d, e = {}, f = a(b), g = b.getAttribute('type'); for (c in a.validator.methods) 'required' === c ? (d = b.getAttribute(c), '' === d && (d = !0), d = !!d) : d = f.attr(c), this.normalizeAttributeRule(e, g, c, d); return e.maxlength && /-1|2147483647|524288/.test(e.maxlength) && delete e.maxlength, e; }, dataRules: function (b) { var c, d, e = {}, f = a(b), g = b.getAttribute('type'); for (c in a.validator.methods) d = f.data( 'rule' + c.charAt(0).toUpperCase() + c.substring(1).toLowerCase()), '' === d && (d = !0), this.normalizeAttributeRule(e, g, c, d); return e; }, staticRules: function (b) { var c = {}, d = a.data(b.form, 'validator'); return d.settings.rules && (c = a.validator.normalizeRule(d.settings.rules[b.name]) || {}), c; }, normalizeRules: function (b, c) { return a.each(b, function (d, e) { if (e === !1) return void delete b[d]; if (e.param || e.depends) { var f = !0; switch (typeof e.depends) { case'string': f = !!a(e.depends, c.form).length; break; case'function': f = e.depends.call(c, c); } f ? b[d] = void 0 === e.param || e.param : (a.data(c.form, 'validator'). resetElements(a(c)), delete b[d]); } }), a.each(b, function (a, d) { b[a] = 'function' == typeof d && 'normalizer' !== a ? d(c) : d; }), a.each(['minlength', 'maxlength'], function () {b[this] && (b[this] = Number(b[this]));}), a.each( ['rangelength', 'range'], function () { var a; b[this] && (Array.isArray(b[this]) ? b[this] = [ Number(b[this][0]), Number(b[this][1])] : 'string' == typeof b[this] && (a = b[this].replace(/[\[\]]/g, ''). split(/[\s,]+/), b[this] = [ Number(a[0]), Number(a[1])])); }), a.validator.autoCreateRanges && (null != b.min && null != b.max && (b.range = [b.min, b.max], delete b.min, delete b.max), null != b.minlength && null != b.maxlength && (b.rangelength = [ b.minlength, b.maxlength], delete b.minlength, delete b.maxlength)), b; }, normalizeRule: function (b) { if ('string' == typeof b) { var c = {}; a.each(b.split(/\s/), function () {c[this] = !0;}), b = c; } return b; }, addMethod: function (b, c, d) { a.validator.methods[b] = c, a.validator.messages[b] = void 0 !== d ? d : a.validator.messages[b], c.length < 3 && a.validator.addClassRules(b, a.validator.normalizeRule(b)); }, methods: { required: function (b, c, d) { if (!this.depend(d, c)) return 'dependency-mismatch'; if ('select' === c.nodeName.toLowerCase()) { var e = a(c).val(); return e && e.length > 0; } return this.checkable(c) ? this.getLength(b, c) > 0 : void 0 !== b && null !== b && b.length > 0; }, email: function (a, b) { return this.optional(b) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( a); }, url: function (a, b) { return this.optional(b) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[\/?#]\S*)?$/i.test( a); }, date: function () { var a = !1; return function (b, c) { return a || (a = !0, this.settings.debug && window.console && console.warn( 'The `date` method is deprecated and will be removed in version \'2.0.0\'.\nPlease don\'t use it, since it relies on the Date constructor, which\nbehaves very differently across browsers and locales. Use `dateISO`\ninstead or one of the locale specific methods in `localizations/`\nand `additional-methods.js`.')), this.optional( c) || !/Invalid|NaN/.test(new Date(b).toString()); }; }(), dateISO: function (a, b) { return this.optional(b) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test( a); }, number: function (a, b) { return this.optional(b) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a); }, digits: function (a, b) { return this.optional(b) || /^\d+$/.test(a); }, minlength: function (a, b, c) { var d = Array.isArray(a) ? a.length : this.getLength(a, b); return this.optional(b) || d >= c; }, maxlength: function (a, b, c) { var d = Array.isArray(a) ? a.length : this.getLength(a, b); return this.optional(b) || d <= c; }, rangelength: function (a, b, c) { var d = Array.isArray(a) ? a.length : this.getLength(a, b); return this.optional(b) || d >= c[0] && d <= c[1]; }, min: function (a, b, c) {return this.optional(b) || a >= c;}, max: function (a, b, c) {return this.optional(b) || a <= c;}, range: function (a, b, c) { return this.optional(b) || a >= c[0] && a <= c[1]; }, step: function (b, c, d) { var e, f = a(c).attr('type'), g = 'Step attribute on input type ' + f + ' is not supported.', h = ['text', 'number', 'range'], i = new RegExp('\\b' + f + '\\b'), j = f && !i.test(h.join()), k = function (a) { var b = ('' + a).match(/(?:\.(\d+))?$/); return b && b[1] ? b[1].length : 0; }, l = function (a) {return Math.round(a * Math.pow(10, e));}, m = !0; if (j) throw new Error(g); return e = k(d), (k(b) > e || l(b) % l(d) !== 0) && (m = !1), this.optional(c) || m; }, equalTo: function (b, c, d) { var e = a(d); return this.settings.onfocusout && e.not('.validate-equalTo-blur').length && e.addClass('validate-equalTo-blur'). on('blur.validate-equalTo', function () {a(c).valid();}), b === e.val(); }, remote: function (b, c, d, e) { if (this.optional(c)) return 'dependency-mismatch'; e = 'string' == typeof e && e || 'remote'; var f, g, h, i = this.previousValue(c, e); return this.settings.messages[c.name] || (this.settings.messages[c.name] = {}), i.originalMessage = i.originalMessage || this.settings.messages[c.name][e], this.settings.messages[c.name][e] = i.message, d = 'string' == typeof d && { url: d } || d, h = a.param( a.extend({ data: b }, d.data)), i.old === h ? i.valid : (i.old = h, f = this, this.startRequest( c), g = {}, g[c.name] = b, a.ajax(a.extend(!0, { mode: 'abort', port: 'validate' + c.name, dataType: 'json', data: g, context: f.currentForm, success: function (a) { var d, g, h, j = a === !0 || 'true' === a; f.settings.messages[c.name][e] = i.originalMessage, j ? (h = f.formSubmitted, f.resetInternals(), f.toHide = f.errorsFor( c), f.formSubmitted = h, f.successList.push( c), f.invalid[c.name] = !1, f.showErrors()) : (d = {}, g = a || f.defaultMessage(c, { method: e, parameters: b, }), d[c.name] = i.message = g, f.invalid[c.name] = !0, f.showErrors( d)), i.valid = j, f.stopRequest(c, j); }, }, d)), 'pending'); }, }, }); var c, d = {}; return a.ajaxPrefilter ? a.ajaxPrefilter(function (a, b, c) { var e = a.port; 'abort' === a.mode && (d[e] && d[e].abort(), d[e] = c); }) : (c = a.ajax, a.ajax = function (b) { var e = ('mode' in b ? b : a.ajaxSettings).mode, f = ('port' in b ? b : a.ajaxSettings).port; return 'abort' === e ? (d[f] && d[f].abort(), d[f] = c.apply(this, arguments), d[f]) : c.apply(this, arguments); }), a; }); /*! * jQuery Form Plugin * version: 4.3.0 * Requires jQuery v1.7.2 or later * Project repository: https://github.com/jquery-form/form * Copyright 2017 Kevin Morris * Copyright 2006 M. Alsup * Dual licensed under the LGPL-2.1+ or MIT licenses * https://github.com/jquery-form/form#license * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ !function (r) { 'function' == typeof define && define.amd ? define(['jquery'], r) : 'object' == typeof module && module.exports ? module.exports = function (e, t) { return void 0 === t && (t = 'undefined' != typeof window ? require('jquery') : require( 'jquery')(e)), r(t), t; } : r(jQuery); }(function (q) { 'use strict'; var m = /\r?\n/g, S = {}; S.fileapi = void 0 !== q('<input type="file">').get(0).files, S.formdata = void 0 !== window.FormData; var _ = !!q.fn.prop; function o (e) { var t = e.data; e.isDefaultPrevented() || (e.preventDefault(), q(e.target).closest('form').ajaxSubmit(t)); } function i (e) { var t = e.target, r = q(t); if (!r.is('[type=submit],[type=image]')) { var a = r.closest('[type=submit]'); if (0 === a.length) return; t = a[0]; } var n, o = t.form; 'image' === (o.clk = t).type && (void 0 !== e.offsetX ? (o.clk_x = e.offsetX, o.clk_y = e.offsetY) : 'function' == typeof q.fn.offset ? (n = r.offset(), o.clk_x = e.pageX - n.left, o.clk_y = e.pageY - n.top) : (o.clk_x = e.pageX - t.offsetLeft, o.clk_y = e.pageY - t.offsetTop)), setTimeout( function () {o.clk = o.clk_x = o.clk_y = null;}, 100); } function N () { var e; q.fn.ajaxSubmit.debug && (e = '[jquery.form] ' + Array.prototype.join.call(arguments, ''), window.console && window.console.log ? window.console.log(e) : window.opera && window.opera.postError && window.opera.postError(e)); } q.fn.attr2 = function () { if (!_) return this.attr.apply(this, arguments); var e = this.prop.apply(this, arguments); return e && e.jquery || 'string' == typeof e ? e : this.attr.apply(this, arguments); }, q.fn.ajaxSubmit = function (M, e, t, r) { if (!this.length) return N( 'ajaxSubmit: skipping submit process - no element selected'), this; var O, a, n, o, X = this; 'function' == typeof M ? M = { success: M } : 'string' == typeof M || !1 === M && 0 < arguments.length ? (M = { url: M, data: e, dataType: t, }, 'function' == typeof r && (M.success = r)) : void 0 === M && (M = {}), O = M.method || M.type || this.attr2('method'), n = (n = (n = 'string' == typeof (a = M.url || this.attr2('action')) ? q.trim(a) : '') || window.location.href || '') && (n.match(/^([^#]+)/) || [])[1], o = /(MSIE|Trident)/.test( navigator.userAgent || '') && /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank', M = q.extend(!0, { url: n, success: q.ajaxSettings.success, type: O || q.ajaxSettings.type, iframeSrc: o, }, M); var i = {}; if (this.trigger('form-pre-serialize', [this, M, i]), i.veto) return N( 'ajaxSubmit: submit vetoed via form-pre-serialize trigger'), this; if (M.beforeSerialize && !1 === M.beforeSerialize(this, M)) return N( 'ajaxSubmit: submit aborted via beforeSerialize callback'), this; var s = M.traditional; void 0 === s && (s = q.ajaxSettings.traditional); var u, c, C = [], l = this.formToArray(M.semantic, C, M.filtering); if (M.data && (c = q.isFunction(M.data) ? M.data(l) : M.data, M.extraData = c, u = q.param(c, s)), M.beforeSubmit && !1 === M.beforeSubmit(l, this, M)) return N( 'ajaxSubmit: submit aborted via beforeSubmit callback'), this; if (this.trigger('form-submit-validate', [l, this, M, i]), i.veto) return N( 'ajaxSubmit: submit vetoed via form-submit-validate trigger'), this; var f = q.param(l, s); u && (f = f ? f + '&' + u : u), 'GET' === M.type.toUpperCase() ? (M.url += (0 <= M.url.indexOf('?') ? '&' : '?') + f, M.data = null) : M.data = f; var d, m, p, h = []; M.resetForm && h.push(function () {X.resetForm();}), M.clearForm && h.push(function () {X.clearForm(M.includeHidden);}), !M.dataType && M.target ? (d = M.success || function () {}, h.push(function (e, t, r) { var a = arguments, n = M.replaceTarget ? 'replaceWith' : 'html'; q(M.target)[n](e).each(function () {d.apply(this, a);}); })) : M.success && (q.isArray(M.success) ? q.merge(h, M.success) : h.push( M.success)), M.success = function ( e, t, r) { for (var a = M.context || this, n = 0, o = h.length; n < o; n++) h[n].apply(a, [e, t, r || X, X]); }, M.error && (m = M.error, M.error = function (e, t, r) { var a = M.context || this; m.apply(a, [e, t, r, X]); }), M.complete && (p = M.complete, M.complete = function (e, t) { var r = M.context || this; p.apply(r, [e, t, X]); }); var v = 0 < q('input[type=file]:enabled', this). filter(function () {return '' !== q(this).val();}).length, g = 'multipart/form-data', x = X.attr('enctype') === g || X.attr('encoding') === g, y = S.fileapi && S.formdata; N('fileAPI :' + y); var b, T = (v || x) && !y; !1 !== M.iframe && (M.iframe || T) ? M.closeKeepAlive ? q.get( M.closeKeepAlive, function () {b = w(l);}) : b = w(l) : b = (v || x) && y ? function (e) { for (var r = new FormData, t = 0; t < e.length; t++) r.append( e[t].name, e[t].value); if (M.extraData) { var a = function (e) { var t, r, a = q.param(e, M.traditional).split('&'), n = a.length, o = []; for (t = 0; t < n; t++) a[t] = a[t].replace(/\+/g, ' '), r = a[t].split('='), o.push( [decodeURIComponent(r[0]), decodeURIComponent(r[1])]); return o; }(M.extraData); for (t = 0; t < a.length; t++) a[t] && r.append(a[t][0], a[t][1]); } M.data = null; var n = q.extend(!0, {}, q.ajaxSettings, M, { contentType: !1, processData: !1, cache: !1, type: O || 'POST', }); M.uploadProgress && (n.xhr = function () { var e = q.ajaxSettings.xhr(); return e.upload && e.upload.addEventListener('progress', function (e) { var t = 0, r = e.loaded || e.position, a = e.total; e.lengthComputable && (t = Math.ceil(r / a * 100)), M.uploadProgress(e, r, a, t); }, !1), e; }); n.data = null; var o = n.beforeSend; return n.beforeSend = function (e, t) { M.formData ? t.data = M.formData : t.data = r, o && o.call(this, e, t); }, q.ajax(n); }(l) : q.ajax(M), X.removeData('jqxhr').data('jqxhr', b); for (var j = 0; j < C.length; j++) C[j] = null; return this.trigger('form-submit-notify', [this, M]), this; function w (e) { var t, r, l, f, o, d, m, p, a, n, h, v, i = X[0], g = q.Deferred(); if (g.abort = function (e) {p.abort(e);}, e) for (r = 0; r < C.length; r++) t = q(C[r]), _ ? t.prop('disabled', !1) : t.removeAttr('disabled'); (l = q.extend(!0, {}, q.ajaxSettings, M)).context = l.context || l, o = 'jqFormIO' + (new Date).getTime(); var s = i.ownerDocument, u = X.closest('body'); if (l.iframeTarget ? (n = (d = q(l.iframeTarget, s)).attr2('name')) ? o = n : d.attr2('name', o) : (d = q( '<iframe name="' + o + '" src="' + l.iframeSrc + '" />', s)).css({ position: 'absolute', top: '-1000px', left: '-1000px', }), m = d[0], p = { aborted: 0, responseText: null, responseXML: null, status: 0, statusText: 'n/a', getAllResponseHeaders: function () {}, getResponseHeader: function () {}, setRequestHeader: function () {}, abort: function (e) { var t = 'timeout' === e ? 'timeout' : 'aborted'; N('aborting upload... ' + t), this.aborted = 1; try { m.contentWindow.document.execCommand && m.contentWindow.document.execCommand('Stop'); } catch (e) {} d.attr('src', l.iframeSrc), p.error = t, l.error && l.error.call(l.context, p, t, e), f && q.event.trigger('ajaxError', [p, l, t]), l.complete && l.complete.call(l.context, p, t); }, }, (f = l.global) && 0 == q.active++ && q.event.trigger('ajaxStart'), f && q.event.trigger('ajaxSend', [p, l]), l.beforeSend && !1 === l.beforeSend.call(l.context, p, l)) return l.global && q.active--, g.reject(), g; if (p.aborted) return g.reject(), g; (a = i.clk) && (n = a.name) && !a.disabled && (l.extraData = l.extraData || {}, l.extraData[n] = a.value, 'image' === a.type && (l.extraData[n + '.x'] = i.clk_x, l.extraData[n + '.y'] = i.clk_y)); var x = 1, y = 2; function b (t) { var r = null; try { t.contentWindow && (r = t.contentWindow.document); } catch (e) { N('cannot get iframe.contentWindow document: ' + e); } if (r) return r; try { r = t.contentDocument ? t.contentDocument : t.document; } catch (e) { N('cannot get iframe.contentDocument: ' + e), r = t.document; } return r; } var c = q('meta[name=csrf-token]').attr('content'), T = q('meta[name=csrf-param]').attr('content'); function j () { var e = X.attr2('target'), t = X.attr2('action'), r = X.attr('enctype') || X.attr('encoding') || 'multipart/form-data'; i.setAttribute('target', o), O && !/post/i.test(O) || i.setAttribute('method', 'POST'), t !== l.url && i.setAttribute('action', l.url), l.skipEncodingOverride || O && !/post/i.test(O) || X.attr({ encoding: 'multipart/form-data', enctype: 'multipart/form-data', }), l.timeout && (v = setTimeout(function () {h = !0, A(x);}, l.timeout)); var a = []; try { if (l.extraData) for (var n in l.extraData) l.extraData.hasOwnProperty( n) && (q.isPlainObject(l.extraData[n]) && l.extraData[n].hasOwnProperty('name') && l.extraData[n].hasOwnProperty('value') ? a.push(q('<input type="hidden" name="' + l.extraData[n].name + '">', s). val(l.extraData[n].value). appendTo(i)[0]) : a.push(q('<input type="hidden" name="' + n + '">', s). val(l.extraData[n]). appendTo(i)[0])); l.iframeTarget || d.appendTo(u), m.attachEvent ? m.attachEvent('onload', A) : m.addEventListener('load', A, !1), setTimeout( function e () { try { var t = b(m).readyState; N('state = ' + t), t && 'uninitialized' === t.toLowerCase() && setTimeout(e, 50); } catch (e) { N('Server abort: ', e, ' (', e.name, ')'), A( y), v && clearTimeout(v), v = void 0; } }, 15); try {i.submit();} catch (e) { document.createElement('form'). submit. apply(i); } } finally { i.setAttribute('action', t), i.setAttribute('enctype', r), e ? i.setAttribute('target', e) : X.removeAttr('target'), q(a).remove(); } } T && c && (l.extraData = l.extraData || {}, l.extraData[T] = c), l.forceSync ? j() : setTimeout(j, 10); var w, S, k, D = 50; function A (e) { if (!p.aborted && !k) { if ((S = b(m)) || (N('cannot access response document'), e = y), e === x && p) return p.abort('timeout'), void g.reject(p, 'timeout'); if (e === y && p) return p.abort( 'server abort'), void g.reject(p, 'error', 'server abort'); if (S && S.location.href !== l.iframeSrc || h) { m.detachEvent ? m.detachEvent('onload', A) : m.removeEventListener('load', A, !1); var t, r = 'success'; try { if (h) throw'timeout'; var a = 'xml' === l.dataType || S.XMLDocument || q.isXMLDoc(S); if (N('isXml=' + a), !a && window.opera && (null === S.body || !S.body.innerHTML) && --D) return N( 'requeing onLoad callback, DOM not available'), void setTimeout( A, 250); var n = S.body ? S.body : S.documentElement; p.responseText = n ? n.innerHTML : null, p.responseXML = S.XMLDocument ? S.XMLDocument : S, a && (l.dataType = 'xml'), p.getResponseHeader = function (e) {return { 'content-type': l.dataType }[e.toLowerCase()];}, n && (p.status = Number(n.getAttribute('status')) || p.status, p.statusText = n.getAttribute( 'statusText') || p.statusText); var o, i, s, u = (l.dataType || '').toLowerCase(), c = /(json|script|text)/.test(u); c || l.textarea ? (o = S.getElementsByTagName( 'textarea')[0]) ? (p.responseText = o.value, p.status = Number( o.getAttribute('status')) || p.status, p.statusText = o.getAttribute( 'statusText') || p.statusText) : c && (i = S.getElementsByTagName( 'pre')[0], s = S.getElementsByTagName( 'body')[0], i ? p.responseText = i.textContent ? i.textContent : i.innerText : s && (p.responseText = s.textContent ? s.textContent : s.innerText)) : 'xml' === u && !p.responseXML && p.responseText && (p.responseXML = F(p.responseText)); try { w = E(p, u, l); } catch (e) { r = 'parsererror', p.error = t = e || r; } } catch (e) { N('error caught: ', e), r = 'error', p.error = t = e || r; } p.aborted && (N('upload aborted'), r = null), p.status && (r = 200 <= p.status && p.status < 300 || 304 === p.status ? 'success' : 'error'), 'success' === r ? (l.success && l.success.call(l.context, w, 'success', p), g.resolve(p.responseText, 'success', p), f && q.event.trigger('ajaxSuccess', [p, l])) : r && (void 0 === t && (t = p.statusText), l.error && l.error.call(l.context, p, r, t), g.reject(p, 'error', t), f && q.event.trigger('ajaxError', [p, l, t])), f && q.event.trigger('ajaxComplete', [p, l]), f && !--q.active && q.event.trigger('ajaxStop'), l.complete && l.complete.call(l.context, p, r), k = !0, l.timeout && clearTimeout(v), setTimeout(function () { l.iframeTarget ? d.attr('src', l.iframeSrc) : d.remove(), p.responseXML = null; }, 100); } } } var F = q.parseXML || function (e, t) { return window.ActiveXObject ? ((t = new ActiveXObject( 'Microsoft.XMLDOM')).async = 'false', t.loadXML(e)) : t = (new DOMParser).parseFromString(e, 'text/xml'), t && t.documentElement && 'parsererror' !== t.documentElement.nodeName ? t : null; }, L = q.parseJSON || function (e) {return window.eval('(' + e + ')');}, E = function (e, t, r) { var a = e.getResponseHeader('content-type') || '', n = ('xml' === t || !t) && 0 <= a.indexOf('xml'), o = n ? e.responseXML : e.responseText; return n && 'parsererror' === o.documentElement.nodeName && q.error && q.error('parsererror'), r && r.dataFilter && (o = r.dataFilter(o, t)), 'string' == typeof o && (('json' === t || !t) && 0 <= a.indexOf('json') ? o = L(o) : ('script' === t || !t) && 0 <= a.indexOf('javascript') && q.globalEval(o)), o; }; return g; } }, q.fn.ajaxForm = function (e, t, r, a) { if (('string' == typeof e || !1 === e && 0 < arguments.length) && (e = { url: e, data: t, dataType: r }, 'function' == typeof a && (e.success = a)), (e = e || {}).delegation = e.delegation && q.isFunction(q.fn.on), e.delegation || 0 !== this.length) return e.delegation ? (q(document). off('submit.form-plugin', this.selector, o). off('click.form-plugin', this.selector, i). on('submit.form-plugin', this.selector, e, o). on('click.form-plugin', this.selector, e, i), this) : (e.beforeFormUnbind && e.beforeFormUnbind(this, e), this.ajaxFormUnbind(). on('submit.form-plugin', e, o). on('click.form-plugin', e, i)); var n = { s: this.selector, c: this.context }; return !q.isReady && n.s ? (N('DOM not ready, queuing ajaxForm'), q( function () {q(n.s, n.c).ajaxForm(e);})) : N( 'terminating; zero elements found by selector' + (q.isReady ? '' : ' (DOM not ready)')), this; }, q.fn.ajaxFormUnbind = function () { return this.off('submit.form-plugin click.form-plugin'); }, q.fn.formToArray = function (e, t, r) { var a = []; if (0 === this.length) return a; var n, o, i, s, u, c, l, f, d, m, p = this[0], h = this.attr('id'), v = (v = e || void 0 === p.elements ? p.getElementsByTagName('*') : p.elements) && q.makeArray(v); if (h && (e || /(Edge|Trident)\//.test(navigator.userAgent)) && (n = q(':input[form="' + h + '"]').get()).length && (v = (v || []).concat(n)), !v || !v.length) return a; for (q.isFunction(r) && (v = q.map(v, r)), o = 0, c = v.length; o < c; o++) if ((m = (u = v[o]).name) && !u.disabled) if (e && p.clk && 'image' === u.type) p.clk === u && (a.push({ name: m, value: q(u).val(), type: u.type }), a.push( { name: m + '.x', value: p.clk_x }, { name: m + '.y', value: p.clk_y })); else if ((s = q.fieldValue(u, !0)) && s.constructor === Array) for (t && t.push( u), i = 0, l = s.length; i < l; i++) a.push( { name: m, value: s[i] }); else if (S.fileapi && 'file' === u.type) { t && t.push(u); var g = u.files; if (g.length) for (i = 0; i < g.length; i++) a.push( { name: m, value: g[i], type: u.type }); else a.push( { name: m, value: '', type: u.type }); } else null != s && (t && t.push(u), a.push( { name: m, value: s, type: u.type, required: u.required })); return e || !p.clk || (m = (d = (f = q(p.clk))[0]).name) && !d.disabled && 'image' === d.type && (a.push({ name: m, value: f.val() }), a.push( { name: m + '.x', value: p.clk_x }, { name: m + '.y', value: p.clk_y })), a; }, q.fn.formSerialize = function (e) { return q.param(this.formToArray(e)); }, q.fn.fieldSerialize = function (n) { var o = []; return this.each(function () { var e = this.name; if (e) { var t = q.fieldValue(this, n); if (t && t.constructor === Array) for (var r = 0, a = t.length; r < a; r++) o.push( { name: e, value: t[r] }); else null != t && o.push({ name: this.name, value: t }); } }), q.param(o); }, q.fn.fieldValue = function (e) { for (var t = [], r = 0, a = this.length; r < a; r++) { var n = this[r], o = q.fieldValue(n, e); null == o || o.constructor === Array && !o.length || (o.constructor === Array ? q.merge(t, o) : t.push(o)); } return t; }, q.fieldValue = function (e, t) { var r = e.name, a = e.type, n = e.tagName.toLowerCase(); if (void 0 === t && (t = !0), t && (!r || e.disabled || 'reset' === a || 'button' === a || ('checkbox' === a || 'radio' === a) && !e.checked || ('submit' === a || 'image' === a) && e.form && e.form.clk !== e || 'select' === n && -1 === e.selectedIndex)) return null; if ('select' !== n) return q(e).val().replace(m, '\r\n'); var o = e.selectedIndex; if (o < 0) return null; for (var i = [], s = e.options, u = 'select-one' === a, c = u ? o + 1 : s.length, l = u ? o : 0; l < c; l++) { var f = s[l]; if (f.selected && !f.disabled) { var d = (d = f.value) || (f.attributes && f.attributes.value && !f.attributes.value.specified ? f.text : f.value); if (u) return d; i.push(d); } } return i; }, q.fn.clearForm = function (e) { return this.each( function () {q('input,select,textarea', this).clearFields(e);}); }, q.fn.clearFields = q.fn.clearInputs = function (r) { var a = /^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i; return this.each(function () { var e = this.type, t = this.tagName.toLowerCase(); a.test(e) || 'textarea' === t ? this.value = '' : 'checkbox' === e || 'radio' === e ? this.checked = !1 : 'select' === t ? this.selectedIndex = -1 : 'file' === e ? /MSIE/.test(navigator.userAgent) ? q(this). replaceWith(q(this).clone(!0)) : q(this).val('') : r && (!0 === r && /hidden/.test(e) || 'string' == typeof r && q(this).is(r)) && (this.value = ''); }); }, q.fn.resetForm = function () { return this.each(function () { var t = q(this), e = this.tagName.toLowerCase(); switch (e) { case'input': this.checked = this.defaultChecked; case'textarea': return this.value = this.defaultValue, !0; case'option': case'optgroup': var r = t.parents('select'); return r.length && r[0].multiple ? 'option' === e ? this.selected = this.defaultSelected : t.find('option').resetForm() : r.resetForm(), !0; case'select': return t.find('option'). each(function (e) { if (this.selected = this.defaultSelected, this.defaultSelected && !t[0].multiple) return t[0].selectedIndex = e, !1; }), !0; case'label': var a = q(t.attr('for')), n = t.find('input,select,textarea'); return a[0] && n.unshift(a[0]), n.resetForm(), !0; case'form': return 'function' != typeof this.reset && ('object' != typeof this.reset || this.reset.nodeType) || this.reset(), !0; default: return t.find('form,input,label,select,textarea'). resetForm(), !0; } }); }, q.fn.enable = function (e) { return void 0 === e && (e = !0), this.each( function () {this.disabled = !e;}); }, q.fn.selected = function (r) { return void 0 === r && (r = !0), this.each(function () { var e, t = this.type; 'checkbox' === t || 'radio' === t ? this.checked = r : 'option' === this.tagName.toLowerCase() && (e = q(this).parent('select'), r && e[0] && 'select-one' === e[0].type && e.find('option').selected(!1), this.selected = r); }); }, q.fn.ajaxSubmit.debug = !1; }); window.scwAjaxFormPlugin = window.scwAjaxFormPlugin || {}; window.SEMICOLON_ajaxFormInit = function ($ajaxForm) { $ajaxForm = $ajaxForm.filter(':not(.customjs)'); if ($ajaxForm.length < 1) { return true; } $ajaxForm.each(function () { let element = $(this), $body = $('body'), elForm = element.find('form'), elFormId = elForm.attr('id'), elAlert = element.attr('data-alert-type'), elLoader = element.attr('data-loader'), elResult = element.find('.form-result'), elRedirect = element.attr('data-redirect'), defButton, alertType; if (!elAlert) { elAlert = 'notify'; } if (elFormId) { $body.addClass(elFormId + '-ready'); } element.find('form').validate({ errorPlacement: function (error, elementItem) { if (elementItem.parents('.form-group').length > 0) { error.appendTo(elementItem.parents('.form-group')); } else { error.insertAfter(elementItem); } }, focusCleanup: true, submitHandler: function (form) { if (element.hasClass('custom-submit')) { $(form).submit(); return true; } elResult.hide(); if (elLoader == 'button') { defButton = $(form).find('button'); defButtonText = defButton.html(); defButton.html( '<i class="icon-line-loader icon-spin m-0"></i>'); } else { $(form).find('.form-process').fadeIn(); } if (elFormId) { $body.removeClass( elFormId + '-ready ' + elFormId + '-complete ' + elFormId + '-success ' + elFormId + '-error'). addClass(elFormId + '-processing'); } $(form).ajaxSubmit({ target: elResult, dataType: 'json', success: function (data) { if (elLoader == 'button') { defButton.html(defButtonText); } else { $(form).find('.form-process').fadeOut(); } if (data.alert != 'error' && elRedirect) { window.location.replace(elRedirect); return true; } if (elAlert == 'inline') { if (data.alert == 'error') { alertType = 'alert-danger'; } else { alertType = 'alert-success'; } elResult.removeClass('alert-danger alert-success'). addClass('alert ' + alertType). html(data.message). slideDown(400); } else if (elAlert == 'notify') { elResult.attr('data-notify-type', data.alert). attr('data-notify-msg', data.message). html(''); SEMICOLON.widget.notifications({ el: elResult }); } if (data.alert != 'error') { $(form).resetForm(); $(form). find('.btn-group > .btn'). removeClass('active'); if ((typeof tinyMCE != 'undefined') && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden()) { tinymce.activeEditor.setContent(''); } let rangeSlider = $(form). find('.input-range-slider'); if (rangeSlider.length > 0) { rangeSlider.each(function () { let range = $(this).data('ionRangeSlider'); range.reset(); }); } let ratings = $(form).find('.input-rating'); if (ratings.length > 0) { ratings.each(function () { $(this).rating('reset'); }); } let selectPicker = $(form).find('.selectpicker'); if (selectPicker.length > 0) { selectPicker.each(function () { $(this).selectpicker('val', ''); $(this).selectpicker('deselectAll'); }); } $(form). find( '.input-select2,select[data-selectsplitter-firstselect-selector]'). change(); $(form).trigger('formSubmitSuccess', data); $body.removeClass(elFormId + '-error'). addClass(elFormId + '-success'); } else { $(form).trigger('formSubmitError', data); $body.removeClass(elFormId + '-success'). addClass(elFormId + '-error'); } if (elFormId) { $body.removeClass(elFormId + '-processing'). addClass(elFormId + '-complete'); } if ($(form). find('.g-recaptcha'). children('div').length > 0) { grecaptcha.reset(); } }, }); }, }); }); }; window.scwAjaxPortfolioPlugin = window.scwAjaxPortfolioPlugin || {}; let $portfolioAjaxItems = $('.portfolio-ajax').find('.portfolio-item'), $portfolioDetails = $('#portfolio-ajax-wrap'), $portfolioDetailsContainer = $('#portfolio-ajax-container'), $portfolioAjaxLoader = $('#portfolio-ajax-loader'), prevPostPortId = ''; window.SEMICOLON_portfolioAjaxloadInit = function () { if ($('.portfolio-ajax').length < 1) { return true; } $('.portfolio-ajax .portfolio-item a.portfolio-ajax-trigger'). off('click'). on('click', function (e) { let portPostId = $(this).parents('.portfolio-item').attr('id'); if (!$(this). parents('.portfolio-item'). hasClass('portfolio-active')) { SEMICOLON_portfolioLoadItem(portPostId, prevPostPortId); } e.preventDefault(); }); }; window.SEMICOLON_portfolionewNextPrev = function (portPostId) { let portNext = SEMICOLON_portfolioGetNextItem(portPostId); let portPrev = SEMICOLON_portfolioGetPrevItem(portPostId); $('#next-portfolio').attr('data-id', portNext); $('#prev-portfolio').attr('data-id', portPrev); }; window.SEMICOLON_portfolioLoadItem = function ( portPostId, prevPostPortId, getIt) { if (!getIt) { getIt = false; } let portNext = SEMICOLON_portfolioGetNextItem(portPostId); let portPrev = SEMICOLON_portfolioGetPrevItem(portPostId); if (getIt == false) { SEMICOLON_portfolioCloseItem(); $portfolioAjaxLoader.fadeIn(); let portfolioDataLoader = $('#' + portPostId).attr('data-loader'); $portfolioDetailsContainer.load(portfolioDataLoader, { portid: portPostId, portnext: portNext, portprev: portPrev }, function () { SEMICOLON_portfolioInitializeAjax(portPostId); SEMICOLON_portfolioOpenItem(); $portfolioAjaxItems.removeClass('portfolio-active'); $('#' + portPostId).addClass('portfolio-active'); }); } }; window.SEMICOLON_portfolioCloseItem = function () { if ($portfolioDetails && $portfolioDetails.height() > 32) { $portfolioAjaxLoader.fadeIn(); $portfolioDetails.find('#portfolio-ajax-single'). fadeOut('600', function () { $(this).remove(); }); $portfolioDetails.removeClass('portfolio-ajax-opened'); } }; window.SEMICOLON_portfolioOpenItem = function () { let noOfImages = $portfolioDetails.find('img').length; let noLoaded = 0; if (noOfImages > 0) { $portfolioDetails.find('img').on('load', function () { noLoaded++; let topOffsetScroll = SEMICOLON.initialize.topScrollOffset(); if (noOfImages === noLoaded) { $portfolioDetailsContainer.css({ 'display': 'block' }); $portfolioDetails.addClass('portfolio-ajax-opened'); $portfolioAjaxLoader.fadeOut(); setTimeout(function () { SEMICOLON.widget.loadFlexSlider(); SEMICOLON.initialize.lightbox( { 'parent': $portfolioDetails }); SEMICOLON.initialize.resizeVideos(); SEMICOLON.widget.masonryThumbs(); $('html,body').stop(true).animate({ 'scrollTop': $portfolioDetails.offset().top - topOffsetScroll, }, 900, 'easeOutQuad'); }, 500); } }); } else { let topOffsetScroll = SEMICOLON.initialize.topScrollOffset(); $portfolioDetailsContainer.css({ 'display': 'block' }); $portfolioDetails.addClass('portfolio-ajax-opened'); $portfolioAjaxLoader.fadeOut(); setTimeout(function () { SEMICOLON.widget.loadFlexSlider(); SEMICOLON.initialize.lightbox({ 'parent': $portfolioDetails }); SEMICOLON.initialize.resizeVideos(); SEMICOLON.widget.masonryThumbs(); $('html,body').stop(true).animate({ 'scrollTop': $portfolioDetails.offset().top - topOffsetScroll, }, 900, 'easeOutQuad'); }, 500); } }; window.SEMICOLON_portfolioGetNextItem = function (portPostId) { let portNext = ''; let hasNext = $('#' + portPostId).next(); if (hasNext.length != 0) { portNext = hasNext.attr('id'); } return portNext; }; window.SEMICOLON_portfolioGetPrevItem = function (portPostId) { let portPrev = ''; let hasPrev = $('#' + portPostId).prev(); if (hasPrev.length != 0) { portPrev = hasPrev.attr('id'); } return portPrev; }; window.SEMICOLON_portfolioInitializeAjax = function (portPostId) { prevPostPortId = $('#' + portPostId); $('#next-portfolio, #prev-portfolio').off('click').on('click', function () { let portPostId = $(this).attr('data-id'); $portfolioAjaxItems.removeClass('portfolio-active'); $('#' + portPostId).addClass('portfolio-active'); SEMICOLON_portfolioLoadItem(portPostId, prevPostPortId); return false; }); $('#close-portfolio').off('click').on('click', function () { $portfolioDetailsContainer.fadeOut('600', function () { $portfolioDetails.find('#portfolio-ajax-single').remove(); }); $portfolioDetails.removeClass('portfolio-ajax-opened'); $portfolioAjaxItems.removeClass('portfolio-active'); return false; }); }; window.scwAnimationsPlugin = window.scwAnimationsPlugin || {}; window.SEMICOLON_animationsInit = function ($animationEl) { $animationEl = $animationEl.filter(':not(.customjs)'); if ($animationEl.length < 1) { return true; } let SELECTOR = '[data-animate]', ANIMATE_CLASS_NAME = 'animated'; let isAnimated = function (element) { element.classList.contains(ANIMATE_CLASS_NAME); }; let intersectionObserver = new IntersectionObserver( function (entries, observer) { entries.forEach(function (entry) { let thisElement = $(entry.target), elAnimation = thisElement.attr('data-animate'), elAnimOut = thisElement.attr('data-animate-out'), elAnimDelay = thisElement.attr('data-delay'), elAnimDelayOut = thisElement.attr('data-delay-out'), elAnimDelayTime = 0, elAnimDelayOutTime = 3000; if (thisElement.parents('.fslider.no-thumbs-animate').length > 0) { return true; } if (thisElement.parents('.swiper-slide').length > 0) { return true; } if (elAnimDelay) { elAnimDelayTime = Number(elAnimDelay) + 500; } else { elAnimDelayTime = 500; } if (elAnimOut && elAnimDelayOut) { elAnimDelayOutTime = Number(elAnimDelayOut) + elAnimDelayTime; } if (!thisElement.hasClass('animated')) { thisElement.addClass('not-animated'); if (entry.intersectionRatio > 0) { setTimeout(function () { thisElement.removeClass('not-animated'). addClass(elAnimation + ' animated'); }, elAnimDelayTime); if (elAnimOut) { setTimeout(function () { thisElement.removeClass(elAnimation). addClass(elAnimOut); }, elAnimDelayOutTime); } } } if (!thisElement.hasClass('not-animated')) { observer.unobserve(entry.target); } }); }, ); let elements = [].filter.call( document.querySelectorAll(SELECTOR), function (element) { return !isAnimated(element, ANIMATE_CLASS_NAME); }); elements.forEach(function (element) { return intersectionObserver.observe(element); }); }; /** * Owl Carousel v2.3.4 * Copyright 2013-2018 David Deutsch * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE */ !function (a, b, c, d) { function e (b, c) { this.settings = null, this.options = a.extend({}, e.Defaults, c), this.$element = a( b), this._handlers = {}, this._plugins = {}, this._supress = {}, this._current = null, this._speed = null, this._coordinates = [], this._breakpoint = null, this._width = null, this._items = [], this._clones = [], this._mergers = [], this._widths = [], this._invalidated = {}, this._pipe = [], this._drag = { time: null, target: null, pointer: null, stage: { start: null, current: null }, direction: null, }, this._states = { current: {}, tags: { initializing: ['busy'], animating: ['busy'], dragging: ['interacting'], }, }, a.each(['onResize', 'onThrottledResize'], a.proxy( function (b, c) {this._handlers[c] = a.proxy(this[c], this);}, this)), a.each(e.Plugins, a.proxy(function (a, b) { this._plugins[a.charAt(0).toLowerCase() + a.slice(1)] = new b(this); }, this)), a.each(e.Workers, a.proxy(function (b, c) { this._pipe.push({ filter: c.filter, run: a.proxy(c.run, this) }); }, this)), this.setup(), this.initialize(); } e.Defaults = { items: 3, loop: !1, center: !1, rewind: !1, checkVisibility: !0, mouseDrag: !0, touchDrag: !0, pullDrag: !0, freeDrag: !1, margin: 0, stagePadding: 0, merge: !1, mergeFit: !0, autoWidth: !1, startPosition: 0, rtl: !1, smartSpeed: 250, fluidSpeed: !1, dragEndSpeed: !1, responsive: {}, responsiveRefreshRate: 200, responsiveBaseElement: b, fallbackEasing: 'swing', slideTransition: '', info: !1, nestedItemSelector: !1, itemElement: 'div', stageElement: 'div', refreshClass: 'owl-refresh', loadedClass: 'owl-loaded', loadingClass: 'owl-loading', rtlClass: 'owl-rtl', responsiveClass: 'owl-responsive', dragClass: 'owl-drag', itemClass: 'owl-item', stageClass: 'owl-stage', stageOuterClass: 'owl-stage-outer', grabClass: 'owl-grab', }, e.Width = { Default: 'default', Inner: 'inner', Outer: 'outer', }, e.Type = { Event: 'event', State: 'state', }, e.Plugins = {}, e.Workers = [ { filter: ['width', 'settings'], run: function () {this._width = this.$element.width();}, }, { filter: ['width', 'items', 'settings'], run: function (a) { a.current = this._items && this._items[this.relative(this._current)]; }, }, { filter: ['items', 'settings'], run: function () {this.$stage.children('.cloned').remove();}, }, { filter: ['width', 'items', 'settings'], run: function (a) { var b = this.settings.margin || '', c = !this.settings.autoWidth, d = this.settings.rtl, e = { width: 'auto', 'margin-left': d ? b : '', 'margin-right': d ? '' : b, }; !c && this.$stage.children().css(e), a.css = e; }, }, { filter: ['width', 'items', 'settings'], run: function (a) { var b = (this.width() / this.settings.items).toFixed(3) - this.settings.margin, c = null, d = this._items.length, e = !this.settings.autoWidth, f = []; for (a.items = { merge: !1, width: b, }; d--;) c = this._mergers[d], c = this.settings.mergeFit && Math.min(c, this.settings.items) || c, a.items.merge = c > 1 || a.items.merge, f[d] = e ? b * c : this._items[d].width(); this._widths = f; }, }, { filter: ['items', 'settings'], run: function () { var b = [], c = this._items, d = this.settings, e = Math.max(2 * d.items, 4), f = 2 * Math.ceil(c.length / 2), g = d.loop && c.length ? d.rewind ? e : Math.max(e, f) : 0, h = '', i = ''; for (g /= 2; g > 0;) b.push( this.normalize(b.length / 2, !0)), h += c[b[b.length - 1]][0].outerHTML, b.push( this.normalize(c.length - 1 - (b.length - 1) / 2, !0)), i = c[b[b.length - 1]][0].outerHTML + i, g -= 1; this._clones = b, a(h). addClass('cloned'). appendTo(this.$stage), a(i). addClass('cloned'). prependTo(this.$stage); }, }, { filter: ['width', 'items', 'settings'], run: function () { for (var a = this.settings.rtl ? 1 : -1, b = this._clones.length + this._items.length, c = -1, d = 0, e = 0, f = []; ++c < b;) d = f[c - 1] || 0, e = this._widths[this.relative(c)] + this.settings.margin, f.push(d + e * a); this._coordinates = f; }, }, { filter: ['width', 'items', 'settings'], run: function () { var a = this.settings.stagePadding, b = this._coordinates, c = { width: Math.ceil(Math.abs(b[b.length - 1])) + 2 * a, 'padding-left': a || '', 'padding-right': a || '', }; this.$stage.css(c); }, }, { filter: ['width', 'items', 'settings'], run: function (a) { var b = this._coordinates.length, c = !this.settings.autoWidth, d = this.$stage.children(); if (c && a.items.merge) for (; b--;) a.css.width = this._widths[this.relative( b)], d.eq(b).css(a.css); else c && (a.css.width = a.items.width, d.css(a.css)); }, }, { filter: ['items'], run: function () { this._coordinates.length < 1 && this.$stage.removeAttr('style'); }, }, { filter: ['width', 'items', 'settings'], run: function (a) { a.current = a.current ? this.$stage.children(). index(a.current) : 0, a.current = Math.max(this.minimum(), Math.min(this.maximum(), a.current)), this.reset(a.current); }, }, { filter: ['position'], run: function () {this.animate(this.coordinates(this._current));}, }, { filter: ['width', 'position', 'items', 'settings'], run: function () { var a, b, c, d, e = this.settings.rtl ? 1 : -1, f = 2 * this.settings.stagePadding, g = this.coordinates(this.current()) + f, h = g + this.width() * e, i = []; for (c = 0, d = this._coordinates.length; c < d; c++) a = this._coordinates[c - 1] || 0, b = Math.abs( this._coordinates[c]) + f * e, (this.op(a, '<=', g) && this.op(a, '>', h) || this.op(b, '<', g) && this.op(b, '>', h)) && i.push(c); this.$stage.children('.active'). removeClass('active'), this.$stage.children( ':eq(' + i.join('), :eq(') + ')'). addClass('active'), this.$stage.children('.center'). removeClass('center'), this.settings.center && this.$stage.children().eq(this.current()).addClass('center'); }, }], e.prototype.initializeStage = function () { this.$stage = this.$element.find( '.' + this.settings.stageClass), this.$stage.length || (this.$element.addClass(this.options.loadingClass), this.$stage = a( '<' + this.settings.stageElement + '>', { class: this.settings.stageClass }). wrap(a('<div/>', { class: this.settings.stageOuterClass })), this.$element.append( this.$stage.parent())); }, e.prototype.initializeItems = function () { var b = this.$element.find('.owl-item'); if (b.length) return this._items = b.get(). map(function (b) {return a(b);}), this._mergers = this._items.map( function () {return 1;}), void this.refresh(); this.replace(this.$element.children(). not(this.$stage.parent())), this.isVisible() ? this.refresh() : this.invalidate('width'), this.$element.removeClass( this.options.loadingClass).addClass(this.options.loadedClass); }, e.prototype.initialize = function () { if (this.enter('initializing'), this.trigger( 'initialize'), this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl), this.settings.autoWidth && !this.is('pre-loading')) { var a, b, c; a = this.$element.find('img'), b = this.settings.nestedItemSelector ? '.' + this.settings.nestedItemSelector : d, c = this.$element.children(b).width(), a.length && c <= 0 && this.preloadAutoWidthImages(a); } this.initializeStage(), this.initializeItems(), this.registerEventHandlers(), this.leave( 'initializing'), this.trigger('initialized'); }, e.prototype.isVisible = function () { return !this.settings.checkVisibility || this.$element.is(':visible'); }, e.prototype.setup = function () { var b = this.viewport(), c = this.options.responsive, d = -1, e = null; c ? (a.each(c, function (a) {a <= b && a > d && (d = Number(a));}), e = a.extend( {}, this.options, c[d]), 'function' == typeof e.stagePadding && (e.stagePadding = e.stagePadding()), delete e.responsive, e.responsiveClass && this.$element.attr('class', this.$element.attr('class'). replace(new RegExp('(' + this.options.responsiveClass + '-)\\S+\\s', 'g'), '$1' + d))) : e = a.extend({}, this.options), this.trigger('change', { property: { name: 'settings', value: e, }, }), this._breakpoint = d, this.settings = e, this.invalidate( 'settings'), this.trigger('changed', { property: { name: 'settings', value: this.settings } }); }, e.prototype.optionsLogic = function () { this.settings.autoWidth && (this.settings.stagePadding = !1, this.settings.merge = !1); }, e.prototype.prepare = function (b) { var c = this.trigger('prepare', { content: b }); return c.data || (c.data = a('<' + this.settings.itemElement + '/>'). addClass(this.options.itemClass). append(b)), this.trigger('prepared', { content: c.data }), c.data; }, e.prototype.update = function () { for (var b = 0, c = this._pipe.length, d = a.proxy( function (a) {return this[a];}, this._invalidated), e = {}; b < c;) (this._invalidated.all || a.grep(this._pipe[b].filter, d).length > 0) && this._pipe[b].run(e), b++; this._invalidated = {}, !this.is('valid') && this.enter('valid'); }, e.prototype.width = function (a) { switch (a = a || e.Width.Default) { case e.Width.Inner: case e.Width.Outer: return this._width; default: return this._width - 2 * this.settings.stagePadding + this.settings.margin; } }, e.prototype.refresh = function () { this.enter('refreshing'), this.trigger( 'refresh'), this.setup(), this.optionsLogic(), this.$element.addClass( this.options.refreshClass), this.update(), this.$element.removeClass( this.options.refreshClass), this.leave('refreshing'), this.trigger( 'refreshed'); }, e.prototype.onThrottledResize = function () { b.clearTimeout(this.resizeTimer), this.resizeTimer = b.setTimeout( this._handlers.onResize, this.settings.responsiveRefreshRate); }, e.prototype.onResize = function () { return !!this._items.length && (this._width !== this.$element.width() && (!!this.isVisible() && (this.enter('resizing'), this.trigger('resize'). isDefaultPrevented() ? (this.leave('resizing'), !1) : (this.invalidate('width'), this.refresh(), this.leave( 'resizing'), void this.trigger('resized'))))); }, e.prototype.registerEventHandlers = function () { a.support.transition && this.$stage.on(a.support.transition.end + '.owl.core', a.proxy(this.onTransitionEnd, this)), !1 !== this.settings.responsive && this.on(b, 'resize', this._handlers.onThrottledResize), this.settings.mouseDrag && (this.$element.addClass(this.options.dragClass), this.$stage.on( 'mousedown.owl.core', a.proxy(this.onDragStart, this)), this.$stage.on( 'dragstart.owl.core selectstart.owl.core', function () {return !1;})), this.settings.touchDrag && (this.$stage.on('touchstart.owl.core', a.proxy(this.onDragStart, this)), this.$stage.on( 'touchcancel.owl.core', a.proxy(this.onDragEnd, this))); }, e.prototype.onDragStart = function (b) { var d = null; 3 !== b.which && (a.support.transform ? (d = this.$stage.css('transform'). replace(/.*\(|\)| /g, ''). split(','), d = { x: d[16 === d.length ? 12 : 4], y: d[16 === d.length ? 13 : 5], }) : (d = this.$stage.position(), d = { x: this.settings.rtl ? d.left + this.$stage.width() - this.width() + this.settings.margin : d.left, y: d.top, }), this.is('animating') && (a.support.transform ? this.animate(d.x) : this.$stage.stop(), this.invalidate( 'position')), this.$element.toggleClass(this.options.grabClass, 'mousedown' === b.type), this.speed( 0), this._drag.time = (new Date).getTime(), this._drag.target = a( b.target), this._drag.stage.start = d, this._drag.stage.current = d, this._drag.pointer = this.pointer( b), a(c). on('mouseup.owl.core touchend.owl.core', a.proxy(this.onDragEnd, this)), a(c). one('mousemove.owl.core touchmove.owl.core', a.proxy(function (b) { var d = this.difference(this._drag.pointer, this.pointer(b)); a(c). on('mousemove.owl.core touchmove.owl.core', a.proxy(this.onDragMove, this)), Math.abs(d.x) < Math.abs(d.y) && this.is('valid') || (b.preventDefault(), this.enter('dragging'), this.trigger( 'drag')); }, this))); }, e.prototype.onDragMove = function (a) { var b = null, c = null, d = null, e = this.difference(this._drag.pointer, this.pointer(a)), f = this.difference(this._drag.stage.start, e); this.is('dragging') && (a.preventDefault(), this.settings.loop ? (b = this.coordinates( this.minimum()), c = this.coordinates(this.maximum() + 1) - b, f.x = ((f.x - b) % c + c) % c + b) : (b = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum()), c = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum()), d = this.settings.pullDrag ? -1 * e.x / 5 : 0, f.x = Math.max(Math.min(f.x, b + d), c + d)), this._drag.stage.current = f, this.animate(f.x)); }, e.prototype.onDragEnd = function (b) { var d = this.difference(this._drag.pointer, this.pointer(b)), e = this._drag.stage.current, f = d.x > 0 ^ this.settings.rtl ? 'left' : 'right'; a(c).off('.owl.core'), this.$element.removeClass( this.options.grabClass), (0 !== d.x && this.is('dragging') || !this.is('valid')) && (this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed), this.current(this.closest(e.x, 0 !== d.x ? f : this._drag.direction)), this.invalidate( 'position'), this.update(), this._drag.direction = f, (Math.abs( d.x) > 3 || (new Date).getTime() - this._drag.time > 300) && this._drag.target.one('click.owl.core', function () {return !1;})), this.is('dragging') && (this.leave('dragging'), this.trigger('dragged')); }, e.prototype.closest = function (b, c) { var e = -1, f = 30, g = this.width(), h = this.coordinates(); return this.settings.freeDrag || a.each(h, a.proxy(function (a, i) { return 'left' === c && b > i - f && b < i + f ? e = a : 'right' === c && b > i - g - f && b < i - g + f ? e = a + 1 : this.op(b, '<', i) && this.op(b, '>', h[a + 1] !== d ? h[a + 1] : i - g) && (e = 'left' === c ? a + 1 : a), -1 === e; }, this)), this.settings.loop || (this.op(b, '>', h[this.minimum()]) ? e = b = this.minimum() : this.op( b, '<', h[this.maximum()]) && (e = b = this.maximum())), e; }, e.prototype.animate = function (b) { var c = this.speed() > 0; this.is('animating') && this.onTransitionEnd(), c && (this.enter('animating'), this.trigger( 'translate')), a.support.transform3d && a.support.transition ? this.$stage.css({ transform: 'translate3d(' + b + 'px,0px,0px)', transition: this.speed() / 1e3 + 's' + (this.settings.slideTransition ? ' ' + this.settings.slideTransition : ''), }) : c ? this.$stage.animate({ left: b + 'px' }, this.speed(), this.settings.fallbackEasing, a.proxy(this.onTransitionEnd, this)) : this.$stage.css( { left: b + 'px' }); }, e.prototype.is = function (a) { return this._states.current[a] && this._states.current[a] > 0; }, e.prototype.current = function (a) { if (a === d) return this._current; if (0 === this._items.length) return d; if (a = this.normalize(a), this._current !== a) { var b = this.trigger('change', { property: { name: 'position', value: a } }); b.data !== d && (a = this.normalize(b.data)), this._current = a, this.invalidate( 'position'), this.trigger('changed', { property: { name: 'position', value: this._current } }); } return this._current; }, e.prototype.invalidate = function (b) { return 'string' === a.type(b) && (this._invalidated[b] = !0, this.is('valid') && this.leave('valid')), a.map(this._invalidated, function (a, b) {return b;}); }, e.prototype.reset = function (a) { (a = this.normalize(a)) !== d && (this._speed = 0, this._current = a, this.suppress( ['translate', 'translated']), this.animate( this.coordinates(a)), this.release(['translate', 'translated'])); }, e.prototype.normalize = function (a, b) { var c = this._items.length, e = b ? 0 : this._clones.length; return !this.isNumeric(a) || c < 1 ? a = d : (a < 0 || a >= c + e) && (a = ((a - e / 2) % c + c) % c + e / 2), a; }, e.prototype.relative = function (a) { return a -= this._clones.length / 2, this.normalize(a, !0); }, e.prototype.maximum = function (a) { var b, c, d, e = this.settings, f = this._coordinates.length; if (e.loop) f = this._clones.length / 2 + this._items.length - 1; else if (e.autoWidth || e.merge) { if (b = this._items.length) for (c = this._items[--b].width(), d = this.$element.width(); b-- && !((c += this._items[b].width() + this.settings.margin) > d);) ; f = b + 1; } else f = e.center ? this._items.length - 1 : this._items.length - e.items; return a && (f -= this._clones.length / 2), Math.max(f, 0); }, e.prototype.minimum = function (a) { return a ? 0 : this._clones.length / 2; }, e.prototype.items = function (a) { return a === d ? this._items.slice() : (a = this.normalize(a, !0), this._items[a]); }, e.prototype.mergers = function (a) { return a === d ? this._mergers.slice() : (a = this.normalize(a, !0), this._mergers[a]); }, e.prototype.clones = function (b) { var c = this._clones.length / 2, e = c + this._items.length, f = function (a) {return a % 2 == 0 ? e + a / 2 : c - (a + 1) / 2;}; return b === d ? a.map(this._clones, function (a, b) {return f(b);}) : a.map(this._clones, function (a, c) {return a === b ? f(c) : null;}); }, e.prototype.speed = function (a) { return a !== d && (this._speed = a), this._speed; }, e.prototype.coordinates = function (b) { var c, e = 1, f = b - 1; return b === d ? a.map(this._coordinates, a.proxy(function (a, b) {return this.coordinates(b);}, this)) : (this.settings.center ? (this.settings.rtl && (e = -1, f = b + 1), c = this._coordinates[b], c += (this.width() - c + (this._coordinates[f] || 0)) / 2 * e) : c = this._coordinates[f] || 0, c = Math.ceil(c)); }, e.prototype.duration = function (a, b, c) { return 0 === c ? 0 : Math.min(Math.max(Math.abs(b - a), 1), 6) * Math.abs(c || this.settings.smartSpeed); }, e.prototype.to = function (a, b) { var c = this.current(), d = null, e = a - this.relative(c), f = (e > 0) - (e < 0), g = this._items.length, h = this.minimum(), i = this.maximum(); this.settings.loop ? (!this.settings.rewind && Math.abs(e) > g / 2 && (e += -1 * f * g), a = c + e, (d = ((a - h) % g + g) % g + h) !== a && d - e <= i && d - e > 0 && (c = d - e, a = d, this.reset(c))) : this.settings.rewind ? (i += 1, a = (a % i + i) % i) : a = Math.max(h, Math.min(i, a)), this.speed( this.duration(c, a, b)), this.current(a), this.isVisible() && this.update(); }, e.prototype.next = function (a) { a = a || !1, this.to(this.relative(this.current()) + 1, a); }, e.prototype.prev = function (a) { a = a || !1, this.to(this.relative(this.current()) - 1, a); }, e.prototype.onTransitionEnd = function (a) { if (a !== d && (a.stopPropagation(), (a.target || a.srcElement || a.originalTarget) !== this.$stage.get(0))) return !1; this.leave('animating'), this.trigger('translated'); }, e.prototype.viewport = function () { var d; return this.options.responsiveBaseElement !== b ? d = a( this.options.responsiveBaseElement).width() : b.innerWidth ? d = b.innerWidth : c.documentElement && c.documentElement.clientWidth ? d = c.documentElement.clientWidth : console.warn('Can not detect viewport width.'), d; }, e.prototype.replace = function (b) { this.$stage.empty(), this._items = [], b && (b = b instanceof jQuery ? b : a( b)), this.settings.nestedItemSelector && (b = b.find('.' + this.settings.nestedItemSelector)), b.filter( function () {return 1 === this.nodeType;}). each(a.proxy(function (a, b) { b = this.prepare(b), this.$stage.append(b), this._items.push( b), this._mergers.push(1 * b.find('[data-merge]'). addBack('[data-merge]'). attr('data-merge') || 1); }, this)), this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0), this.invalidate('items'); }, e.prototype.add = function (b, c) { var e = this.relative(this._current); c = c === d ? this._items.length : this.normalize(c, !0), b = b instanceof jQuery ? b : a(b), this.trigger('add', { content: b, position: c }), b = this.prepare(b), 0 === this._items.length || c === this._items.length ? (0 === this._items.length && this.$stage.append(b), 0 !== this._items.length && this._items[c - 1].after(b), this._items.push(b), this._mergers.push(1 * b.find('[data-merge]').addBack('[data-merge]').attr('data-merge') || 1)) : (this._items[c].before(b), this._items.splice(c, 0, b), this._mergers.splice(c, 0, 1 * b.find('[data-merge]').addBack('[data-merge]').attr('data-merge') || 1)), this._items[e] && this.reset(this._items[e].index()), this.invalidate( 'items'), this.trigger('added', { content: b, position: c }); }, e.prototype.remove = function (a) { (a = this.normalize(a, !0)) !== d && (this.trigger('remove', { content: this._items[a], position: a, }), this._items[a].remove(), this._items.splice(a, 1), this._mergers.splice(a, 1), this.invalidate( 'items'), this.trigger('removed', { content: null, position: a })); }, e.prototype.preloadAutoWidthImages = function (b) { b.each(a.proxy(function (b, c) { this.enter('pre-loading'), c = a(c), a(new Image). one('load', a.proxy(function (a) { c.attr('src', a.target.src), c.css('opacity', 1), this.leave('pre-loading'), !this.is( 'pre-loading') && !this.is('initializing') && this.refresh(); }, this)). attr('src', c.attr('src') || c.attr('data-src') || c.attr('data-src-retina')); }, this)); }, e.prototype.destroy = function () { this.$element.off('.owl.core'), this.$stage.off('.owl.core'), a(c). off('.owl.core'), !1 !== this.settings.responsive && (b.clearTimeout(this.resizeTimer), this.off(b, 'resize', this._handlers.onThrottledResize)); for (var d in this._plugins) this._plugins[d].destroy(); this.$stage.children('.cloned'). remove(), this.$stage.unwrap(), this.$stage.children(). contents(). unwrap(), this.$stage.children(). unwrap(), this.$stage.remove(), this.$element.removeClass( this.options.refreshClass). removeClass(this.options.loadingClass). removeClass(this.options.loadedClass). removeClass(this.options.rtlClass). removeClass(this.options.dragClass). removeClass(this.options.grabClass). attr('class', this.$element.attr('class'). replace( new RegExp(this.options.responsiveClass + '-\\S+\\s', 'g'), '')). removeData('owl.carousel'); }, e.prototype.op = function (a, b, c) { var d = this.settings.rtl; switch (b) { case'<': return d ? a > c : a < c; case'>': return d ? a < c : a > c; case'>=': return d ? a <= c : a >= c; case'<=': return d ? a >= c : a <= c; } }, e.prototype.on = function (a, b, c, d) { a.addEventListener ? a.addEventListener(b, c, d) : a.attachEvent && a.attachEvent('on' + b, c); }, e.prototype.off = function (a, b, c, d) { a.removeEventListener ? a.removeEventListener(b, c, d) : a.detachEvent && a.detachEvent('on' + b, c); }, e.prototype.trigger = function ( b, c, d, f, g) { var h = { item: { count: this._items.length, index: this.current(), }, }, i = a.camelCase(a.grep(['on', b, d], function (a) {return a;}). join('-'). toLowerCase()), j = a.Event([b, 'owl', d || 'carousel'].join('.').toLowerCase(), a.extend({ relatedTarget: this }, h, c)); return this._supress[b] || (a.each(this._plugins, function (a, b) {b.onTrigger && b.onTrigger(j);}), this.register( { type: e.Type.Event, name: b }), this.$element.trigger( j), this.settings && 'function' == typeof this.settings[i] && this.settings[i].call(this, j)), j; }, e.prototype.enter = function (b) { a.each([b].concat(this._states.tags[b] || []), a.proxy(function (a, b) { this._states.current[b] === d && (this._states.current[b] = 0), this._states.current[b]++; }, this)); }, e.prototype.leave = function (b) { a.each([b].concat(this._states.tags[b] || []), a.proxy(function (a, b) {this._states.current[b]--;}, this)); }, e.prototype.register = function (b) { if (b.type === e.Type.Event) { if (a.event.special[b.name] || (a.event.special[b.name] = {}), !a.event.special[b.name].owl) { var c = a.event.special[b.name]._default; a.event.special[b.name]._default = function (a) { return !c || !c.apply || a.namespace && -1 !== a.namespace.indexOf('owl') ? a.namespace && a.namespace.indexOf('owl') > -1 : c.apply(this, arguments); }, a.event.special[b.name].owl = !0; } } else b.type === e.Type.State && (this._states.tags[b.name] ? this._states.tags[b.name] = this._states.tags[b.name].concat( b.tags) : this._states.tags[b.name] = b.tags, this._states.tags[b.name] = a.grep( this._states.tags[b.name], a.proxy(function (c, d) { return a.inArray(c, this._states.tags[b.name]) === d; }, this))); }, e.prototype.suppress = function (b) { a.each(b, a.proxy(function (a, b) {this._supress[b] = !0;}, this)); }, e.prototype.release = function (b) { a.each(b, a.proxy(function (a, b) {delete this._supress[b];}, this)); }, e.prototype.pointer = function (a) { var c = { x: null, y: null }; return a = a.originalEvent || a || b.event, a = a.touches && a.touches.length ? a.touches[0] : a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : a, a.pageX ? (c.x = a.pageX, c.y = a.pageY) : (c.x = a.clientX, c.y = a.clientY), c; }, e.prototype.isNumeric = function (a) { return !isNaN(parseFloat(a)); }, e.prototype.difference = function (a, b) { return { x: a.x - b.x, y: a.y - b.y, }; }, a.fn.owlCarousel = function (b) { var c = Array.prototype.slice.call(arguments, 1); return this.each(function () { var d = a(this), f = d.data('owl.carousel'); f || (f = new e(this, 'object' == typeof b && b), d.data( 'owl.carousel', f), a.each([ 'next', 'prev', 'to', 'destroy', 'refresh', 'replace', 'add', 'remove'], function (b, c) { f.register({ type: e.Type.Event, name: c }), f.$element.on( c + '.owl.carousel.core', a.proxy(function (a) { a.namespace && a.relatedTarget !== this && (this.suppress([c]), f[c].apply(this, [].slice.call(arguments, 1)), this.release([c])); }, f)); })), 'string' == typeof b && '_' !== b.charAt(0) && f[b].apply(f, c); }); }, a.fn.owlCarousel.Constructor = e; }(window.Zepto || window.jQuery, window, document), function (a, b, c, d) { var e = function (b) { this._core = b, this._interval = null, this._visible = null, this._handlers = { 'initialized.owl.carousel': a.proxy(function (a) { a.namespace && this._core.settings.autoRefresh && this.watch(); }, this), }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers); }; e.Defaults = { autoRefresh: !0, autoRefreshInterval: 500, }, e.prototype.watch = function () { this._interval || (this._visible = this._core.isVisible(), this._interval = b.setInterval( a.proxy(this.refresh, this), this._core.settings.autoRefreshInterval)); }, e.prototype.refresh = function () { this._core.isVisible() !== this._visible && (this._visible = !this._visible, this._core.$element.toggleClass( 'owl-hidden', !this._visible), this._visible && this._core.invalidate('width') && this._core.refresh()); }, e.prototype.destroy = function () { var a, c; b.clearInterval(this._interval); for (a in this._handlers) this._core.$element.off(a, this._handlers[a]); for (c in Object.getOwnPropertyNames(this)) 'function' != typeof this[c] && (this[c] = null); }, a.fn.owlCarousel.Constructor.Plugins.AutoRefresh = e; }(window.Zepto || window.jQuery, window, document), function (a, b, c, d) { var e = function (b) { this._core = b, this._loaded = [], this._handlers = { 'initialized.owl.carousel change.owl.carousel resized.owl.carousel': a.proxy( function (b) { if (b.namespace && this._core.settings && this._core.settings.lazyLoad && (b.property && 'position' == b.property.name || 'initialized' == b.type)) { var c = this._core.settings, e = c.center && Math.ceil(c.items / 2) || c.items, f = c.center && -1 * e || 0, g = (b.property && b.property.value !== d ? b.property.value : this._core.current()) + f, h = this._core.clones().length, i = a.proxy(function (a, b) {this.load(b);}, this); for (c.lazyLoadEager > 0 && (e += c.lazyLoadEager, c.loop && (g -= c.lazyLoadEager, e++)); f++ < e;) this.load( h / 2 + this._core.relative(g)), h && a.each(this._core.clones(this._core.relative(g)), i), g++; } }, this), }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers); }; e.Defaults = { lazyLoad: !1, lazyLoadEager: 0, }, e.prototype.load = function (c) { var d = this._core.$stage.children(). eq(c), e = d && d.find('.owl-lazy'); !e || a.inArray(d.get(0), this._loaded) > -1 || (e.each(a.proxy( function (c, d) { var e, f = a(d), g = b.devicePixelRatio > 1 && f.attr('data-src-retina') || f.attr('data-src') || f.attr('data-srcset'); this._core.trigger('load', { element: f, url: g }, 'lazy'), f.is('img') ? f.one('load.owl.lazy', a.proxy( function () { f.css('opacity', 1), this._core.trigger('loaded', { element: f, url: g }, 'lazy'); }, this)).attr('src', g) : f.is('source') ? f.one('load.owl.lazy', a.proxy(function () { this._core.trigger('loaded', { element: f, url: g }, 'lazy'); }, this)).attr('srcset', g) : (e = new Image, e.onload = a.proxy(function () { f.css({ 'background-image': 'url("' + g + '")', opacity: '1', }), this._core.trigger('loaded', { element: f, url: g }, 'lazy'); }, this), e.src = g); }, this)), this._loaded.push(d.get(0))); }, e.prototype.destroy = function () { var a, b; for (a in this.handlers) this._core.$element.off(a, this.handlers[a]); for (b in Object.getOwnPropertyNames(this)) 'function' != typeof this[b] && (this[b] = null); }, a.fn.owlCarousel.Constructor.Plugins.Lazy = e; }(window.Zepto || window.jQuery, window, document), function (a, b, c, d) { var e = function (c) { this._core = c, this._previousHeight = null, this._handlers = { 'initialized.owl.carousel refreshed.owl.carousel': a.proxy( function (a) { a.namespace && this._core.settings.autoHeight && this.update(); }, this), 'changed.owl.carousel': a.proxy(function (a) { a.namespace && this._core.settings.autoHeight && 'position' === a.property.name && this.update(); }, this), 'loaded.owl.lazy': a.proxy(function (a) { a.namespace && this._core.settings.autoHeight && a.element.closest('.' + this._core.settings.itemClass). index() === this._core.current() && this.update(); }, this), }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on( this._handlers), this._intervalId = null; var d = this; a(b). on('load', function () {d._core.settings.autoHeight && d.update();}), a(b). resize(function () { d._core.settings.autoHeight && (null != d._intervalId && clearTimeout(d._intervalId), d._intervalId = setTimeout( function () {d.update();}, 250)); }); }; e.Defaults = { autoHeight: !1, autoHeightClass: 'owl-height', }, e.prototype.update = function () { var b = this._core._current, c = b + this._core.settings.items, d = this._core.settings.lazyLoad, e = this._core.$stage.children().toArray().slice(b, c), f = [], g = 0; a.each(e, function (b, c) {f.push(a(c).height());}), g = Math.max.apply( null, f), g <= 1 && d && this._previousHeight && (g = this._previousHeight), this._previousHeight = g, this._core.$stage.parent(). height(g). addClass(this._core.settings.autoHeightClass); }, e.prototype.destroy = function () { var a, b; for (a in this._handlers) this._core.$element.off(a, this._handlers[a]); for (b in Object.getOwnPropertyNames(this)) 'function' != typeof this[b] && (this[b] = null); }, a.fn.owlCarousel.Constructor.Plugins.AutoHeight = e; }(window.Zepto || window.jQuery, window, document), function (a, b, c, d) { var e = function (b) { this._core = b, this._videos = {}, this._playing = null, this._handlers = { 'initialized.owl.carousel': a.proxy(function (a) { a.namespace && this._core.register( { type: 'state', name: 'playing', tags: ['interacting'] }); }, this), 'resize.owl.carousel': a.proxy(function (a) { a.namespace && this._core.settings.video && this.isInFullScreen() && a.preventDefault(); }, this), 'refreshed.owl.carousel': a.proxy(function (a) { a.namespace && this._core.is('resizing') && this._core.$stage.find('.cloned .owl-video-frame').remove(); }, this), 'changed.owl.carousel': a.proxy(function (a) { a.namespace && 'position' === a.property.name && this._playing && this.stop(); }, this), 'prepared.owl.carousel': a.proxy(function (b) { if (b.namespace) { var c = a(b.content). find('.owl-video'); c.length && (c.css('display', 'none'), this.fetch(c, a(b.content))); } }, this), }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on( this._handlers), this._core.$element.on('click.owl.video', '.owl-video-play-icon', a.proxy(function (a) {this.play(a);}, this)); }; e.Defaults = { video: !1, videoHeight: !1, videoWidth: !1, }, e.prototype.fetch = function (a, b) { var c = function () { return a.attr('data-vimeo-id') ? 'vimeo' : a.attr('data-vzaar-id') ? 'vzaar' : 'youtube'; }(), d = a.attr('data-vimeo-id') || a.attr('data-youtube-id') || a.attr('data-vzaar-id'), e = a.attr('data-width') || this._core.settings.videoWidth, f = a.attr('data-height') || this._core.settings.videoHeight, g = a.attr('href'); if (!g) throw new Error('Missing video URL.'); if (d = g.match( /(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/), d[3].indexOf( 'youtu') > -1) c = 'youtube'; else if (d[3].indexOf('vimeo') > -1) c = 'vimeo'; else { if (!(d[3].indexOf('vzaar') > -1)) throw new Error( 'Video URL not supported.'); c = 'vzaar'; } d = d[6], this._videos[g] = { type: c, id: d, width: e, height: f, }, b.attr('data-video', g), this.thumbnail(a, this._videos[g]); }, e.prototype.thumbnail = function (b, c) { var d, e, f, g = c.width && c.height ? 'width:' + c.width + 'px;height:' + c.height + 'px;' : '', h = b.find('img'), i = 'src', j = '', k = this._core.settings, l = function (c) { e = '<div class="owl-video-play-icon"></div>', d = k.lazyLoad ? a('<div/>', { class: 'owl-video-tn ' + j, srcType: c }) : a('<div/>', { class: 'owl-video-tn', style: 'opacity:1;background-image:url(' + c + ')', }), b.after(d), b.after(e); }; if (b.wrap(a('<div/>', { class: 'owl-video-wrapper', style: g, })), this._core.settings.lazyLoad && (i = 'data-src', j = 'owl-lazy'), h.length) return l( h.attr(i)), h.remove(), !1; 'youtube' === c.type ? (f = '//img.youtube.com/vi/' + c.id + '/hqdefault.jpg', l(f)) : 'vimeo' === c.type ? a.ajax({ type: 'GET', url: '//vimeo.com/api/v2/video/' + c.id + '.json', jsonp: 'callback', dataType: 'jsonp', success: function (a) {f = a[0].thumbnail_large, l(f);}, }) : 'vzaar' === c.type && a.ajax({ type: 'GET', url: '//vzaar.com/api/videos/' + c.id + '.json', jsonp: 'callback', dataType: 'jsonp', success: function (a) {f = a.framegrab_url, l(f);}, }); }, e.prototype.stop = function () { this._core.trigger('stop', null, 'video'), this._playing.find( '.owl-video-frame'). remove(), this._playing.removeClass( 'owl-video-playing'), this._playing = null, this._core.leave( 'playing'), this._core.trigger('stopped', null, 'video'); }, e.prototype.play = function (b) { var c, d = a(b.target), e = d.closest('.' + this._core.settings.itemClass), f = this._videos[e.attr('data-video')], g = f.width || '100%', h = f.height || this._core.$stage.height(); this._playing || (this._core.enter('playing'), this._core.trigger('play', null, 'video'), e = this._core.items( this._core.relative(e.index())), this._core.reset(e.index()), c = a( '<iframe frameborder="0" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>'), c.attr( 'height', h), c.attr('width', g), 'youtube' === f.type ? c.attr('src', '//www.youtube.com/embed/' + f.id + '?autoplay=1&rel=0&v=' + f.id) : 'vimeo' === f.type ? c.attr('src', '//player.vimeo.com/video/' + f.id + '?autoplay=1') : 'vzaar' === f.type && c.attr('src', '//view.vzaar.com/' + f.id + '/player?autoplay=true'), a(c). wrap('<div class="owl-video-frame" />'). insertAfter(e.find('.owl-video')), this._playing = e.addClass( 'owl-video-playing')); }, e.prototype.isInFullScreen = function () { var b = c.fullscreenElement || c.mozFullScreenElement || c.webkitFullscreenElement; return b && a(b).parent().hasClass('owl-video-frame'); }, e.prototype.destroy = function () { var a, b; this._core.$element.off('click.owl.video'); for (a in this._handlers) this._core.$element.off(a, this._handlers[a]); for (b in Object.getOwnPropertyNames(this)) 'function' != typeof this[b] && (this[b] = null); }, a.fn.owlCarousel.Constructor.Plugins.Video = e; }(window.Zepto || window.jQuery, window, document), function (a, b, c, d) { var e = function (b) { this.core = b, this.core.options = a.extend({}, e.Defaults, this.core.options), this.swapping = !0, this.previous = d, this.next = d, this.handlers = { 'change.owl.carousel': a.proxy(function (a) { a.namespace && 'position' == a.property.name && (this.previous = this.core.current(), this.next = a.property.value); }, this), 'drag.owl.carousel dragged.owl.carousel translated.owl.carousel': a.proxy( function (a) { a.namespace && (this.swapping = 'translated' == a.type); }, this), 'translate.owl.carousel': a.proxy(function (a) { a.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn) && this.swap(); }, this), }, this.core.$element.on(this.handlers); }; e.Defaults = { animateOut: !1, animateIn: !1, }, e.prototype.swap = function () { if (1 === this.core.settings.items && a.support.animation && a.support.transition) { this.core.speed(0); var b, c = a.proxy(this.clear, this), d = this.core.$stage.children().eq(this.previous), e = this.core.$stage.children().eq(this.next), f = this.core.settings.animateIn, g = this.core.settings.animateOut; this.core.current() !== this.previous && (g && (b = this.core.coordinates(this.previous) - this.core.coordinates(this.next), d.one(a.support.animation.end, c). css({ left: b + 'px' }). addClass('animated owl-animated-out'). addClass(g)), f && e.one(a.support.animation.end, c). addClass('animated owl-animated-in'). addClass(f)); } }, e.prototype.clear = function (b) { a(b.target). css({ left: '' }). removeClass('animated owl-animated-out owl-animated-in'). removeClass(this.core.settings.animateIn). removeClass( this.core.settings.animateOut), this.core.onTransitionEnd(); }, e.prototype.destroy = function () { var a, b; for (a in this.handlers) this.core.$element.off(a, this.handlers[a]); for (b in Object.getOwnPropertyNames(this)) 'function' != typeof this[b] && (this[b] = null); }, a.fn.owlCarousel.Constructor.Plugins.Animate = e; }(window.Zepto || window.jQuery, window, document), function (a, b, c, d) { var e = function (b) { this._core = b, this._call = null, this._time = 0, this._timeout = 0, this._paused = !0, this._handlers = { 'changed.owl.carousel': a.proxy(function (a) { a.namespace && 'settings' === a.property.name ? this._core.settings.autoplay ? this.play() : this.stop() : a.namespace && 'position' === a.property.name && this._paused && (this._time = 0); }, this), 'initialized.owl.carousel': a.proxy(function (a) { a.namespace && this._core.settings.autoplay && this.play(); }, this), 'play.owl.autoplay': a.proxy( function (a, b, c) {a.namespace && this.play(b, c);}, this), 'stop.owl.autoplay': a.proxy( function (a) {a.namespace && this.stop();}, this), 'mouseover.owl.autoplay': a.proxy(function () { this._core.settings.autoplayHoverPause && this._core.is('rotating') && this.pause(); }, this), 'mouseleave.owl.autoplay': a.proxy(function () { this._core.settings.autoplayHoverPause && this._core.is('rotating') && this.play(); }, this), 'touchstart.owl.core': a.proxy(function () { this._core.settings.autoplayHoverPause && this._core.is('rotating') && this.pause(); }, this), 'touchend.owl.core': a.proxy(function () { this._core.settings.autoplayHoverPause && this.play(); }, this), }, this._core.$element.on( this._handlers), this._core.options = a.extend({}, e.Defaults, this._core.options); }; e.Defaults = { autoplay: !1, autoplayTimeout: 5e3, autoplayHoverPause: !1, autoplaySpeed: !1, }, e.prototype._next = function (d) { this._call = b.setTimeout(a.proxy(this._next, this, d), this._timeout * (Math.round(this.read() / this._timeout) + 1) - this.read()), this._core.is('interacting') || c.hidden || this._core.next(d || this._core.settings.autoplaySpeed); }, e.prototype.read = function () { return (new Date).getTime() - this._time; }, e.prototype.play = function (c, d) { var e; this._core.is('rotating') || this._core.enter('rotating'), c = c || this._core.settings.autoplayTimeout, e = Math.min( this._time % (this._timeout || c), c), this._paused ? (this._time = this.read(), this._paused = !1) : b.clearTimeout(this._call), this._time += this.read() % c - e, this._timeout = c, this._call = b.setTimeout( a.proxy(this._next, this, d), c - e); }, e.prototype.stop = function () { this._core.is('rotating') && (this._time = 0, this._paused = !0, b.clearTimeout( this._call), this._core.leave('rotating')); }, e.prototype.pause = function () { this._core.is('rotating') && !this._paused && (this._time = this.read(), this._paused = !0, b.clearTimeout( this._call)); }, e.prototype.destroy = function () { var a, b; this.stop(); for (a in this._handlers) this._core.$element.off(a, this._handlers[a]); for (b in Object.getOwnPropertyNames(this)) 'function' != typeof this[b] && (this[b] = null); }, a.fn.owlCarousel.Constructor.Plugins.autoplay = e; }(window.Zepto || window.jQuery, window, document), function (a, b, c, d) { 'use strict'; var e = function (b) { this._core = b, this._initialized = !1, this._pages = [], this._controls = {}, this._templates = [], this.$element = this._core.$element, this._overrides = { next: this._core.next, prev: this._core.prev, to: this._core.to, }, this._handlers = { 'prepared.owl.carousel': a.proxy(function (b) { b.namespace && this._core.settings.dotsData && this._templates.push( '<div class="' + this._core.settings.dotClass + '">' + a(b.content). find('[data-dot]'). addBack('[data-dot]'). attr('data-dot') + '</div>'); }, this), 'added.owl.carousel': a.proxy(function (a) { a.namespace && this._core.settings.dotsData && this._templates.splice(a.position, 0, this._templates.pop()); }, this), 'remove.owl.carousel': a.proxy(function (a) { a.namespace && this._core.settings.dotsData && this._templates.splice(a.position, 1); }, this), 'changed.owl.carousel': a.proxy(function (a) { a.namespace && 'position' == a.property.name && this.draw(); }, this), 'initialized.owl.carousel': a.proxy(function (a) { a.namespace && !this._initialized && (this._core.trigger('initialize', null, 'navigation'), this.initialize(), this.update(), this.draw(), this._initialized = !0, this._core.trigger( 'initialized', null, 'navigation')); }, this), 'refreshed.owl.carousel': a.proxy(function (a) { a.namespace && this._initialized && (this._core.trigger('refresh', null, 'navigation'), this.update(), this.draw(), this._core.trigger( 'refreshed', null, 'navigation')); }, this), }, this._core.options = a.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers); }; e.Defaults = { nav: !1, navText: [ '<span aria-label="Previous">‹</span>', '<span aria-label="Next">›</span>'], navSpeed: !1, navElement: 'button type="button" role="presentation"', navContainer: !1, navContainerClass: 'owl-nav', navClass: ['owl-prev', 'owl-next'], slideBy: 1, dotClass: 'owl-dot', dotsClass: 'owl-dots', dots: !0, dotsEach: !1, dotsData: !1, dotsSpeed: !1, dotsContainer: !1, }, e.prototype.initialize = function () { var b, c = this._core.settings; this._controls.$relative = (c.navContainer ? a(c.navContainer) : a( '<div>'). addClass(c.navContainerClass). appendTo(this.$element)).addClass( 'disabled'), this._controls.$previous = a('<' + c.navElement + '>'). addClass(c.navClass[0]). html(c.navText[0]). prependTo(this._controls.$relative). on('click', a.proxy(function (a) {this.prev(c.navSpeed);}, this)), this._controls.$next = a('<' + c.navElement + '>'). addClass(c.navClass[1]). html(c.navText[1]). appendTo(this._controls.$relative). on('click', a.proxy(function (a) {this.next(c.navSpeed);}, this)), c.dotsData || (this._templates = [ a('<button role="button">'). addClass(c.dotClass). append(a('<span>')). prop('outerHTML')]), this._controls.$absolute = (c.dotsContainer ? a(c.dotsContainer) : a('<div>'). addClass(c.dotsClass). appendTo(this.$element)).addClass( 'disabled'), this._controls.$absolute.on('click', 'button', a.proxy( function (b) { var d = a(b.target). parent(). is(this._controls.$absolute) ? a(b.target).index() : a( b.target).parent().index(); b.preventDefault(), this.to(d, c.dotsSpeed); }, this)); for (b in this._overrides) this._core[b] = a.proxy(this[b], this); }, e.prototype.destroy = function () { var a, b, c, d, e; e = this._core.settings; for (a in this._handlers) this.$element.off(a, this._handlers[a]); for (b in this._controls) '$relative' === b && e.navContainer ? this._controls[b].html('') : this._controls[b].remove(); for (d in this.overides) this._core[d] = this._overrides[d]; for (c in Object.getOwnPropertyNames(this)) 'function' != typeof this[c] && (this[c] = null); }, e.prototype.update = function () { var a, b, c, d = this._core.clones().length / 2, e = d + this._core.items().length, f = this._core.maximum(!0), g = this._core.settings, h = g.center || g.autoWidth || g.dotsData ? 1 : g.dotsEach || g.items; if ('page' !== g.slideBy && (g.slideBy = Math.min(g.slideBy, g.items)), g.dots || 'page' == g.slideBy) for (this._pages = [], a = d, b = 0, c = 0; a < e; a++) { if (b >= h || 0 === b) { if (this._pages.push({ start: Math.min(f, a - d), end: a - d + h - 1, }), Math.min(f, a - d) === f) break; b = 0, ++c; } b += this._core.mergers(this._core.relative(a)); } }, e.prototype.draw = function () { var b, c = this._core.settings, d = this._core.items().length <= c.items, e = this._core.relative(this._core.current()), f = c.loop || c.rewind; this._controls.$relative.toggleClass('disabled', !c.nav || d), c.nav && (this._controls.$previous.toggleClass('disabled', !f && e <= this._core.minimum(!0)), this._controls.$next.toggleClass( 'disabled', !f && e >= this._core.maximum(!0))), this._controls.$absolute.toggleClass( 'disabled', !c.dots || d), c.dots && (b = this._pages.length - this._controls.$absolute.children().length, c.dotsData && 0 !== b ? this._controls.$absolute.html(this._templates.join('')) : b > 0 ? this._controls.$absolute.append( new Array(b + 1).join(this._templates[0])) : b < 0 && this._controls.$absolute.children(). slice(b). remove(), this._controls.$absolute.find('.active'). removeClass('active'), this._controls.$absolute.children(). eq(a.inArray(this.current(), this._pages)). addClass('active')); }, e.prototype.onTrigger = function (b) { var c = this._core.settings; b.page = { index: a.inArray(this.current(), this._pages), count: this._pages.length, size: c && (c.center || c.autoWidth || c.dotsData ? 1 : c.dotsEach || c.items), }; }, e.prototype.current = function () { var b = this._core.relative(this._core.current()); return a.grep(this._pages, a.proxy(function (a, c) {return a.start <= b && a.end >= b;}, this)). pop(); }, e.prototype.getPosition = function (b) { var c, d, e = this._core.settings; return 'page' == e.slideBy ? (c = a.inArray(this.current(), this._pages), d = this._pages.length, b ? ++c : --c, c = this._pages[(c % d + d) % d].start) : (c = this._core.relative( this._core.current()), d = this._core.items().length, b ? c += e.slideBy : c -= e.slideBy), c; }, e.prototype.next = function (b) { a.proxy(this._overrides.to, this._core)(this.getPosition(!0), b); }, e.prototype.prev = function (b) { a.proxy(this._overrides.to, this._core)(this.getPosition(!1), b); }, e.prototype.to = function (b, c, d) { var e; !d && this._pages.length ? (e = this._pages.length, a.proxy( this._overrides.to, this._core)(this._pages[(b % e + e) % e].start, c)) : a.proxy(this._overrides.to, this._core)(b, c); }, a.fn.owlCarousel.Constructor.Plugins.Navigation = e; }(window.Zepto || window.jQuery, window, document), function (a, b, c, d) { 'use strict'; var e = function (c) { this._core = c, this._hashes = {}, this.$element = this._core.$element, this._handlers = { 'initialized.owl.carousel': a.proxy(function (c) { c.namespace && 'URLHash' === this._core.settings.startPosition && a(b).trigger('hashchange.owl.navigation'); }, this), 'prepared.owl.carousel': a.proxy(function (b) { if (b.namespace) { var c = a(b.content). find('[data-hash]'). addBack('[data-hash]'). attr('data-hash'); if (!c) return; this._hashes[c] = b.content; } }, this), 'changed.owl.carousel': a.proxy(function (c) { if (c.namespace && 'position' === c.property.name) { var d = this._core.items( this._core.relative(this._core.current())), e = a.map(this._hashes, function (a, b) {return a === d ? b : null;}). join(); if (!e || b.location.hash.slice(1) === e) return; b.location.hash = e; } }, this), }, this._core.options = a.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers), a(b). on('hashchange.owl.navigation', a.proxy(function (a) { var c = b.location.hash.substring(1), e = this._core.$stage.children(), f = this._hashes[c] && e.index(this._hashes[c]); f !== d && f !== this._core.current() && this._core.to(this._core.relative(f), !1, !0); }, this)); }; e.Defaults = { URLhashListener: !1 }, e.prototype.destroy = function () { var c, d; a(b).off('hashchange.owl.navigation'); for (c in this._handlers) this._core.$element.off(c, this._handlers[c]); for (d in Object.getOwnPropertyNames(this)) 'function' != typeof this[d] && (this[d] = null); }, a.fn.owlCarousel.Constructor.Plugins.Hash = e; }(window.Zepto || window.jQuery, window, document), function (a, b, c, d) { function e (b, c) { var e = !1, f = b.charAt(0).toUpperCase() + b.slice(1); return a.each((b + ' ' + h.join(f + ' ') + f).split(' '), function (a, b) {if (g[b] !== d) return e = !c || b, !1;}), e; } function f (a) {return e(a, !0);} var g = a('<support>').get(0).style, h = 'Webkit Moz O ms'.split(' '), i = { transition: { end: { WebkitTransition: 'webkitTransitionEnd', MozTransition: 'transitionend', OTransition: 'oTransitionEnd', transition: 'transitionend', }, }, animation: { end: { WebkitAnimation: 'webkitAnimationEnd', MozAnimation: 'animationend', OAnimation: 'oAnimationEnd', animation: 'animationend', }, }, }, j = { csstransforms: function () {return !!e('transform');}, csstransforms3d: function () {return !!e('perspective');}, csstransitions: function () {return !!e('transition');}, cssanimations: function () {return !!e('animation');}, }; j.csstransitions() && (a.support.transition = new String( f('transition')), a.support.transition.end = i.transition.end[a.support.transition]), j.cssanimations() && (a.support.animation = new String( f('animation')), a.support.animation.end = i.animation.end[a.support.animation]), j.csstransforms() && (a.support.transform = new String( f('transform')), a.support.transform3d = j.csstransforms3d()); }(window.Zepto || window.jQuery, window, document); window.SEMICOLON_carouselInit = function ($carouselEl) { $carouselEl = $carouselEl.filter(':not(.customjs)'); if ($carouselEl.length < 1) { return true; } $carouselEl.each(function () { let element = $(this), elItems = element.attr('data-items') || 4, elItemsXl = element.attr('data-items-xl') || Number(elItems), elItemsLg = element.attr('data-items-lg') || Number(elItemsXl), elItemsMd = element.attr('data-items-md') || Number(elItemsLg), elItemsSm = element.attr('data-items-sm') || Number(elItemsMd), elItemsXs = element.attr('data-items-xs') || Number(elItemsSm), elLoop = element.attr('data-loop'), elAutoPlay = element.attr('data-autoplay'), elSpeed = element.attr('data-speed') || 250, elAnimateIn = element.attr('data-animate-in'), elAnimateOut = element.attr('data-animate-out'), elNav = element.attr('data-nav'), elNavPrev = element.attr('data-nav-prev') || '<i class="icon-angle-left"></i>', elNavNext = element.attr('data-nav-next') || '<i class="icon-angle-right"></i>', elPagi = element.attr('data-pagi'), elMargin = element.attr('data-margin') || 20, elStage = element.attr('data-stage-padding') || 0, elMerge = element.attr('data-merge'), elStart = element.attr('data-start') || 0, elRewind = element.attr('data-rewind'), elSlideBy = element.attr('data-slideby') || 1, elCenter = element.attr('data-center'), elLazy = element.attr('data-lazyload'), elVideo = element.attr('data-video'), elRTL = element.attr('data-rtl'), elAutoPlayTime = 5000, elAutoPlayHoverP = true; if (elSlideBy == 'page') { elSlideBy = 'page'; } else { elSlideBy = Number(elSlideBy); } if (elLoop == 'true') { elLoop = true; } else { elLoop = false; } if (!elAutoPlay) { elAutoPlay = false; elAutoPlayHoverP = false; } else { elAutoPlayTime = Number(elAutoPlay); elAutoPlay = true; } if (!elAnimateIn) { elAnimateIn = false; } if (!elAnimateOut) { elAnimateOut = false; } if (elNav == 'false') { elNav = false; } else { elNav = true; } if (elPagi == 'false') { elPagi = false; } else { elPagi = true; } if (elRewind == 'true') { elRewind = true; } else { elRewind = false; } if (elMerge == 'true') { elMerge = true; } else { elMerge = false; } if (elCenter == 'true') { elCenter = true; } else { elCenter = false; } if (elLazy == 'true') { elLazy = true; } else { elLazy = false; } if (elVideo == 'true') { elVideo = true; } else { elVideo = false; } if (elRTL == 'true' || $('body').hasClass('rtl')) { elRTL = true; } else { elRTL = false; } let carousel = element.owlCarousel({ margin: Number(elMargin), loop: elLoop, stagePadding: Number(elStage), merge: elMerge, startPosition: Number(elStart), rewind: elRewind, slideBy: elSlideBy, center: elCenter, lazyLoad: elLazy, nav: elNav, navText: [elNavPrev, elNavNext], autoplay: elAutoPlay, autoplayTimeout: elAutoPlayTime, autoplayHoverPause: elAutoPlayHoverP, dots: elPagi, smartSpeed: Number(elSpeed), fluidSpeed: Number(elSpeed), video: elVideo, animateIn: elAnimateIn, animateOut: elAnimateOut, rtl: elRTL, responsive: { 0: { items: elItemsXs }, 576: { items: elItemsSm }, 768: { items: elItemsMd }, 992: { items: elItemsLg }, 1200: { items: elItemsXl }, }, onInitialized: function () { SEMICOLON.slider.sliderDimensions( { 'parent': element.parents('.slider-element') }); SEMICOLON.initialize.lightbox({ 'parent': element }); SEMICOLON.widget.hoverAnimation({ 'parent': element }); SEMICOLON.widget.loadFlexSlider({ 'parent': element }); SEMICOLON.widget.counter({ 'parent': element }); SEMICOLON.widget.progress({ 'parent': element }); SEMICOLON.initialize.resizeVideos(); if (element.find('.owl-dot').length > 0) { element.addClass('with-carousel-dots'); } }, }); $(window).on('lazyLoadLoaded', function () { if (element.find('.lazy').length == element.find('.lazy.lazy-loaded').length) { lazyLoadInstance.update(); setTimeout(function () { carousel.trigger('refresh.owl.carousel'); }, 500); } }); }); }; /*! js-cookie v3.0.0 | MIT */ !function (e, t) { 'object' == typeof exports && 'undefined' != typeof module ? module.exports = t() : 'function' == typeof define && define.amd ? define(t) : (e = e || self, function () { var n = e.Cookies, r = e.Cookies = t(); r.noConflict = function () {return e.Cookies = n, r;}; }()); }(this, (function () { 'use strict'; function e (e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var r in n) e[r] = n[r]; } return e; } var t = { read: function (e) { return e.replace(/(%[\dA-F]{2})+/gi, decodeURIComponent); }, write: function (e) { return encodeURIComponent(e). replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, decodeURIComponent); }, }; return function n (r, o) { function i (t, n, i) { if ('undefined' != typeof document) { 'number' == typeof (i = e({}, o, i)).expires && (i.expires = new Date( Date.now() + 864e5 * i.expires)), i.expires && (i.expires = i.expires.toUTCString()), t = encodeURIComponent( t). replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent). replace(/[()]/g, escape), n = r.write(n, t); var c = ''; for (var u in i) i[u] && (c += '; ' + u, !0 !== i[u] && (c += '=' + i[u].split(';')[0])); return document.cookie = t + '=' + n + c; } } return Object.create({ set: i, get: function (e) { if ('undefined' != typeof document && (!arguments.length || e)) { for (var n = document.cookie ? document.cookie.split('; ') : [], o = {}, i = 0; i < n.length; i++) { var c = n[i].split('='), u = c.slice(1).join('='); '"' === u[0] && (u = u.slice(1, -1)); try { var f = t.read(c[0]); if (o[f] = r.read(u, f), e === f) break; } catch (e) {} } return e ? o[e] : o; } }, remove: function (t, n) {i(t, '', e({}, n, { expires: -1 }));}, withAttributes: function (t) { return n(this.converter, e({}, this.attributes, t)); }, withConverter: function (t) { return n(e({}, this.converter, t), this.attributes); }, }, { attributes: { value: Object.freeze(o) }, converter: { value: Object.freeze(r) }, }); }(t, { path: '/' }); })); window.SEMICOLON_cookieInit = function ($cookieEl) { $cookieEl = $cookieEl.filter(':not(.customjs)'); if ($cookieEl.length < 1) { return true; } let $cookieBar = $('.gdpr-settings'), elSpeed = $cookieBar.attr('data-speed') || 300, elExpire = $cookieBar.attr('data-expire') || 30, elDelay = $cookieBar.attr('data-delay') || 1500, elPersist = $cookieBar.attr('data-persistent'), elDirection = 'bottom', elHeight = $cookieBar.outerHeight() + 100, elWidth = $cookieBar.outerWidth() + 100, elProp = {}, elSize, elSettings = $('.gdpr-cookie-settings'), elSwitches = elSettings.find('[data-cookie-name]'); if (elPersist == 'true') { Cookies.set('websiteUsesCookies', ''); } if ($cookieBar.hasClass('gdpr-settings-sm') && $cookieBar.hasClass('gdpr-settings-right')) { elDirection = 'right'; } else if ($cookieBar.hasClass('gdpr-settings-sm')) { elDirection = 'left'; } if (elDirection == 'left') { elSize = -elWidth; elProp = { 'left': elSize, 'right': 'auto' }; elProp.marginLeft = '1rem'; } else if (elDirection == 'right') { elSize = -elWidth; elProp = { 'right': elSize, 'left': 'auto' }; elProp.marginRight = '1rem'; } else { elSize = -elHeight; elProp[elDirection] = elSize; } $cookieBar.css(elProp); if (Cookies.get('websiteUsesCookies') != 'yesConfirmed') { elProp[elDirection] = 0; elProp.opacity = 1; setTimeout(function () { $cookieBar.css(elProp); }, Number(elDelay)); } $('.gdpr-accept').off('click').on('click', function () { elProp[elDirection] = elSize; elProp.opacity = 0; $cookieBar.css(elProp); Cookies.set('websiteUsesCookies', 'yesConfirmed', { expires: Number(elExpire) }); return false; }); elSwitches.each(function () { let elSwitch = $(this), elCookie = elSwitch.attr('data-cookie-name'), getCookie = Cookies.get(elCookie); if (typeof getCookie !== 'undefined' && getCookie == '1') { elSwitch.prop('checked', true); } else { elSwitch.prop('checked', false); } }); $('.gdpr-save-cookies').off('click').on('click', function () { elSwitches.each(function () { let elSwitch = $(this), elCookie = elSwitch.attr('data-cookie-name'); if (elSwitch.prop('checked')) { Cookies.set(elCookie, '1', { expires: Number(elExpire) }); } else { Cookies.remove(elCookie, ''); } }); if (elSettings.parents('.mfp-content').length > 0) { $.magnificPopup.close(); } setTimeout(function () { window.location.reload(); }, 500); return false; }); $('.gdpr-container').each(function () { let element = $(this), elCookie = element.attr('data-cookie-name'), elContent = element.attr('data-cookie-content'), elContentAjax = element.attr('data-cookie-content-ajax'), getCookie = Cookies.get(elCookie); if (typeof getCookie !== 'undefined' && getCookie == '1') { element.addClass('gdpr-content-active'); if (elContentAjax) { element.load(elContentAjax); } else { if (elContent) { element.append(elContent); } } SEMICOLON.initialize.resizeVideos({ parent: element }); } else { element.addClass('gdpr-content-blocked'); } }); }; /** Abstract base class for collection plugins. Written by Keith Wood (kbwood{at}iinet.com.au) December 2013. Licensed under the MIT (https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt) license. */ (function () { var j = false; window.JQClass = function () {}; JQClass.classes = {}; JQClass.extend = function extender (f) { var g = this.prototype; j = true; var h = new this(); j = false; for (var i in f) { h[i] = typeof f[i] == 'function' && typeof g[i] == 'function' ? (function (d, e) { return function () { var b = this._super; this._super = function (a) { return g[d].apply(this, a); }; var c = e.apply(this, arguments); this._super = b; return c; }; })(i, f[i]) : f[i]; } function JQClass () { if (!j && this._init) { this._init.apply(this, arguments); } } JQClass.prototype = h; JQClass.prototype.constructor = JQClass; JQClass.extend = extender; return JQClass; }; })(); (function ($) { JQClass.classes.JQPlugin = JQClass.extend({ name: 'plugin', defaultOptions: {}, regionalOptions: {}, _getters: [], _getMarker: function () {return 'is-' + this.name;}, _init: function () { $.extend(this.defaultOptions, (this.regionalOptions && this.regionalOptions['']) || {}); var c = camelCase(this.name); $[c] = this; $.fn[c] = function (a) { var b = Array.prototype.slice.call(arguments, 1); if ($[c]._isNotChained(a, b)) { return $[c][a].apply($[c], [this[0]].concat(b)); } return this.each(function () { if (typeof a === 'string') { if (a[0] === '_' || !$[c][a]) { throw'Unknown method: ' + a; } $[c][a].apply($[c], [this].concat(b)); } else {$[c]._attach(this, a);} }); }; }, setDefaults: function (a) {$.extend(this.defaultOptions, a || {});}, _isNotChained: function (a, b) { if (a === 'option' && (b.length === 0 || (b.length === 1 && typeof b[0] === 'string'))) {return true;} return $.inArray(a, this._getters) > -1; }, _attach: function (a, b) { a = $(a); if (a.hasClass(this._getMarker())) {return;} a.addClass(this._getMarker()); b = $.extend({}, this.defaultOptions, this._getMetadata(a), b || {}); var c = $.extend({ name: this.name, elem: a, options: b }, this._instSettings(a, b)); a.data(this.name, c); this._postAttach(a, c); this.option(a, b); }, _instSettings: function (a, b) {return {};}, _postAttach: function (a, b) {}, _getMetadata: function (d) { try { var f = d.data(this.name.toLowerCase()) || ''; f = f.replace(/'/g, '"'); f = f.replace(/([a-zA-Z0-9]+):/g, function (a, b, i) { var c = f.substring(0, i).match(/"/g); return (!c || c.length % 2 === 0 ? '"' + b + '":' : b + ':'); }); f = $.parseJSON('{' + f + '}'); for (var g in f) { var h = f[g]; if (typeof h === 'string' && h.match(/^new Date\((.*)\)$/)) {f[g] = eval(h);} } return f; } catch (e) {return {};} }, _getInst: function (a) {return $(a).data(this.name) || {};}, option: function (a, b, c) { a = $(a); var d = a.data(this.name); if (!b || (typeof b === 'string' && c == null)) { var e = (d || {}).options; return (e && b ? e[b] : e); } if (!a.hasClass(this._getMarker())) {return;} var e = b || {}; if (typeof b === 'string') { e = {}; e[b] = c; } this._optionsChanged(a, d, e); $.extend(d.options, e); }, _optionsChanged: function (a, b, c) {}, destroy: function (a) { a = $(a); if (!a.hasClass(this._getMarker())) {return;} this._preDestroy(a, this._getInst(a)); a.removeData(this.name).removeClass(this._getMarker()); }, _preDestroy: function (a, b) {}, }); function camelCase (c) { return c.replace(/-([a-z])/g, function (a, b) {return b.toUpperCase();}); } $.JQPlugin = { createPlugin: function (a, b) { if (typeof a === 'object') { b = a; a = 'JQPlugin'; } a = camelCase(a); var c = camelCase(b.name); JQClass.classes[c] = JQClass.classes[a].extend(b); new JQClass.classes[c](); }, }; })(jQuery); /*! http://keith-wood.name/countdown.html Countdown for jQuery v2.1.0. Written by Keith Wood (wood.keith{at}optusnet.com.au) January 2008. Available under the MIT (http://keith-wood.name/licence.html) license. Please attribute the author if you use it. */ !function (a) { 'use strict'; var b = 'countdown', c = 0, d = 1, e = 2, f = 3, g = 4, h = 5, i = 6; a.JQPlugin.createPlugin({ name: b, defaultOptions: { until: null, since: null, timezone: null, serverSync: null, format: 'dHMS', layout: '', compact: !1, padZeroes: !1, significant: 0, description: '', expiryUrl: '', expiryText: '', alwaysExpire: !1, onExpiry: null, onTick: null, tickInterval: 1, }, regionalOptions: { '': { labels: [ 'Years', 'Months', 'Weeks', 'Days', 'Hours', 'Minutes', 'Seconds'], labels1: [ 'Year', 'Month', 'Week', 'Day', 'Hour', 'Minute', 'Second'], compactLabels: ['y', 'm', 'w', 'd'], whichLabels: null, digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], timeSeparator: ':', isRTL: !1, }, }, _rtlClass: b + '-rtl', _sectionClass: b + '-section', _amountClass: b + '-amount', _periodClass: b + '-period', _rowClass: b + '-row', _holdingClass: b + '-holding', _showClass: b + '-show', _descrClass: b + '-descr', _timerElems: [], _init: function () { function b (a) { var h = a < 1e12 ? e ? window.performance.now() + window.performance.timing.navigationStart : d() : a || d(); h - g >= 1e3 && (c._updateElems(), g = h), f(b); } var c = this; this._super(), this._serverSyncs = []; var d = 'function' == typeof Date.now ? Date.now : function () {return (new Date).getTime();}, e = window.performance && 'function' == typeof window.performance.now, f = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || null, g = 0; !f || a.noRequestAnimationFrame ? (a.noRequestAnimationFrame = null, a.countdown._timer = setInterval( function () {c._updateElems();}, 1e3)) : (g = window.animationStartTime || window.webkitAnimationStartTime || window.mozAnimationStartTime || window.oAnimationStartTime || window.msAnimationStartTime || d(), f(b)); }, UTCDate: function (a, b, c, d, e, f, g, h) { 'object' == typeof b && b instanceof Date && (h = b.getMilliseconds(), g = b.getSeconds(), f = b.getMinutes(), e = b.getHours(), d = b.getDate(), c = b.getMonth(), b = b.getFullYear()); var i = new Date; return i.setUTCFullYear(b), i.setUTCDate(1), i.setUTCMonth( c || 0), i.setUTCDate(d || 1), i.setUTCHours( e || 0), i.setUTCMinutes( (f || 0) - (Math.abs(a) < 30 ? 60 * a : a)), i.setUTCSeconds( g || 0), i.setUTCMilliseconds(h || 0), i; }, periodsToSeconds: function (a) { return 31557600 * a[0] + 2629800 * a[1] + 604800 * a[2] + 86400 * a[3] + 3600 * a[4] + 60 * a[5] + a[6]; }, resync: function () { var b = this; a('.' + this._getMarker()). each(function () { var c = a.data(this, b.name); if (c.options.serverSync) { for (var d = null, e = 0; e < b._serverSyncs.length; e++) if (b._serverSyncs[e][0] === c.options.serverSync) { d = b._serverSyncs[e]; break; } if (b._eqNull(d[2])) { var f = a.isFunction(c.options.serverSync) ? c.options.serverSync.apply(this, []) : null; d[2] = (f ? (new Date).getTime() - f.getTime() : 0) - d[1]; } c._since && c._since.setMilliseconds( c._since.getMilliseconds() + d[2]), c._until.setMilliseconds( c._until.getMilliseconds() + d[2]); } }); for (var c = 0; c < b._serverSyncs.length; c++) b._eqNull( b._serverSyncs[c][2]) || (b._serverSyncs[c][1] += b._serverSyncs[c][2], delete b._serverSyncs[c][2]); }, _instSettings: function (a, b) { return { _periods: [ 0, 0, 0, 0, 0, 0, 0], }; }, _addElem: function (a) {this._hasElem(a) || this._timerElems.push(a);}, _hasElem: function (b) {return a.inArray(b, this._timerElems) > -1;}, _removeElem: function (b) { this._timerElems = a.map(this._timerElems, function (a) {return a === b ? null : a;}); }, _updateElems: function () { for (var a = this._timerElems.length - 1; a >= 0; a--) this._updateCountdown(this._timerElems[a]); }, _optionsChanged: function (b, c, d) { d.layout && (d.layout = d.layout.replace(/</g, '<'). replace(/>/g, '>')), this._resetExtraLabels(c.options, d); var e = c.options.timezone !== d.timezone; a.extend(c.options, d), this._adjustSettings(b, c, !this._eqNull(d.until) || !this._eqNull(d.since) || e); var f = new Date; (c._since && c._since < f || c._until && c._until > f) && this._addElem(b[0]), this._updateCountdown(b, c); }, _updateCountdown: function (b, c) { if (b = b.jquery ? b : a(b), c = c || this._getInst(b)) { if (b.html(this._generateHTML(c)). toggleClass(this._rtlClass, c.options.isRTL), 'pause' !== c._hold && a.isFunction(c.options.onTick)) { var d = 'lap' !== c._hold ? c._periods : this._calculatePeriods(c, c._show, c.options.significant, new Date); 1 !== c.options.tickInterval && this.periodsToSeconds(d) % c.options.tickInterval !== 0 || c.options.onTick.apply(b[0], [d]); } var e = 'pause' !== c._hold && (c._since ? c._now.getTime() < c._since.getTime() : c._now.getTime() >= c._until.getTime()); if (e && !c._expiring) { if (c._expiring = !0, this._hasElem(b[0]) || c.options.alwaysExpire) { if (this._removeElem(b[0]), a.isFunction( c.options.onExpiry) && c.options.onExpiry.apply(b[0], []), c.options.expiryText) { var f = c.options.layout; c.options.layout = c.options.expiryText, this._updateCountdown( b[0], c), c.options.layout = f; } c.options.expiryUrl && (window.location = c.options.expiryUrl); } c._expiring = !1; } else 'pause' === c._hold && this._removeElem(b[0]); } }, _resetExtraLabels: function (a, b) { var c = null; for (c in b) c.match(/[Ll]abels[02-9]|compactLabels1/) && (a[c] = b[c]); for (c in a) c.match(/[Ll]abels[02-9]|compactLabels1/) && 'undefined' == typeof b[c] && (a[c] = null); }, _eqNull: function (a) {return 'undefined' == typeof a || null === a;}, _adjustSettings: function (b, c, d) { for (var e = null, f = 0; f < this._serverSyncs.length; f++) if (this._serverSyncs[f][0] === c.options.serverSync) { e = this._serverSyncs[f][1]; break; } var g = null, h = null; if (this._eqNull(e)) { var i = a.isFunction(c.options.serverSync) ? c.options.serverSync.apply(b[0], []) : null; g = new Date, h = i ? g.getTime() - i.getTime() : 0, this._serverSyncs.push([c.options.serverSync, h]); } else g = new Date, h = c.options.serverSync ? e : 0; var j = c.options.timezone; j = this._eqNull(j) ? -g.getTimezoneOffset() : j, (d || !d && this._eqNull(c._until) && this._eqNull(c._since)) && (c._since = c.options.since, this._eqNull(c._since) || (c._since = this.UTCDate(j, this._determineTime(c._since, null)), c._since && h && c._since.setMilliseconds( c._since.getMilliseconds() + h)), c._until = this.UTCDate(j, this._determineTime(c.options.until, g)), h && c._until.setMilliseconds( c._until.getMilliseconds() + h)), c._show = this._determineShow( c); }, _preDestroy: function (a, b) {this._removeElem(a[0]), a.empty();}, pause: function (a) {this._hold(a, 'pause');}, lap: function (a) {this._hold(a, 'lap');}, resume: function (a) {this._hold(a, null);}, toggle: function (b) { var c = a.data(b, this.name) || {}; this[c._hold ? 'resume' : 'pause'](b); }, toggleLap: function (b) { var c = a.data(b, this.name) || {}; this[c._hold ? 'resume' : 'lap'](b); }, _hold: function (b, c) { var d = a.data(b, this.name); if (d) { if ('pause' === d._hold && !c) { d._periods = d._savePeriods; var e = d._since ? '-' : '+'; d[d._since ? '_since' : '_until'] = this._determineTime( e + d._periods[0] + 'y' + e + d._periods[1] + 'o' + e + d._periods[2] + 'w' + e + d._periods[3] + 'd' + e + d._periods[4] + 'h' + e + d._periods[5] + 'm' + e + d._periods[6] + 's'), this._addElem(b); } d._hold = c, d._savePeriods = 'pause' === c ? d._periods : null, a.data(b, this.name, d), this._updateCountdown(b, d); } }, getTimes: function (b) { var c = a.data(b, this.name); return c ? 'pause' === c._hold ? c._savePeriods : c._hold ? this._calculatePeriods(c, c._show, c.options.significant, new Date) : c._periods : null; }, _determineTime: function (a, b) { var c = this, d = function (a) { var b = new Date; return b.setTime(b.getTime() + 1e3 * a), b; }, e = function (a) { a = a.toLowerCase(); for (var b = new Date, d = b.getFullYear(), e = b.getMonth(), f = b.getDate(), g = b.getHours(), h = b.getMinutes(), i = b.getSeconds(), j = /([+-]?[0-9]+)\s*(s|m|h|d|w|o|y)?/g, k = j.exec( a); k;) { switch (k[2] || 's') { case's': i += parseInt(k[1], 10); break; case'm': h += parseInt(k[1], 10); break; case'h': g += parseInt(k[1], 10); break; case'd': f += parseInt(k[1], 10); break; case'w': f += 7 * parseInt(k[1], 10); break; case'o': e += parseInt(k[1], 10), f = Math.min(f, c._getDaysInMonth(d, e)); break; case'y': d += parseInt(k[1], 10), f = Math.min(f, c._getDaysInMonth(d, e)); } k = j.exec(a); } return new Date(d, e, f, g, h, i, 0); }, f = this._eqNull(a) ? b : 'string' == typeof a ? e(a) : 'number' == typeof a ? d(a) : a; return f && f.setMilliseconds(0), f; }, _getDaysInMonth: function (a, b) { return 32 - new Date(a, b, 32).getDate(); }, _normalLabels: function (a) {return a;}, _generateHTML: function (b) { var j = this; b._periods = b._hold ? b._periods : this._calculatePeriods(b, b._show, b.options.significant, new Date); var k = !1, l = 0, m = b.options.significant, n = a.extend({}, b._show), o = null; for (o = c; o <= i; o++) k = k || '?' === b._show[o] && b._periods[o] > 0, n[o] = '?' !== b._show[o] || k ? b._show[o] : null, l += n[o] ? 1 : 0, m -= b._periods[o] > 0 ? 1 : 0; var p = [!1, !1, !1, !1, !1, !1, !1]; for (o = i; o >= c; o--) b._show[o] && (b._periods[o] ? p[o] = !0 : (p[o] = m > 0, m--)); var q = b.options.compact ? b.options.compactLabels : b.options.labels, r = b.options.whichLabels || this._normalLabels, s = function (a) { var c = b.options['compactLabels' + r(b._periods[a])]; return n[a] ? j._translateDigits(b, b._periods[a]) + (c ? c[a] : q[a]) + ' ' : ''; }, t = b.options.padZeroes ? 2 : 1, u = function (a) { var c = b.options['labels' + r(b._periods[a])]; return !b.options.significant && n[a] || b.options.significant && p[a] ? '<span class="' + j._sectionClass + '"><span class="' + j._amountClass + '">' + j._minDigits(b, b._periods[a], t) + '</span><span class="' + j._periodClass + '">' + (c ? c[a] : q[a]) + '</span></span>' : ''; }; return b.options.layout ? this._buildLayout(b, n, b.options.layout, b.options.compact, b.options.significant, p) : (b.options.compact ? '<span class="' + this._rowClass + ' ' + this._amountClass + (b._hold ? ' ' + this._holdingClass : '') + '">' + s(c) + s(d) + s(e) + s(f) + (n[g] ? this._minDigits(b, b._periods[g], 2) : '') + (n[h] ? (n[g] ? b.options.timeSeparator : '') + this._minDigits(b, b._periods[h], 2) : '') + (n[i] ? (n[g] || n[h] ? b.options.timeSeparator : '') + this._minDigits(b, b._periods[i], 2) : '') : '<span class="' + this._rowClass + ' ' + this._showClass + (b.options.significant || l) + (b._hold ? ' ' + this._holdingClass : '') + '">' + u(c) + u(d) + u(e) + u(f) + u(g) + u(h) + u(i)) + '</span>' + (b.options.description ? '<span class="' + this._rowClass + ' ' + this._descrClass + '">' + b.options.description + '</span>' : ''); }, _buildLayout: function (b, j, k, l, m, n) { for (var o = b.options[l ? 'compactLabels' : 'labels'], p = b.options.whichLabels || this._normalLabels, q = function (a) { return (b.options[(l ? 'compactLabels' : 'labels') + p(b._periods[a])] || o)[a]; }, r = function (a, c) { return b.options.digits[Math.floor(a / c) % 10]; }, s = { desc: b.options.description, sep: b.options.timeSeparator, yl: q(c), yn: this._minDigits(b, b._periods[c], 1), ynn: this._minDigits(b, b._periods[c], 2), ynnn: this._minDigits(b, b._periods[c], 3), y1: r(b._periods[c], 1), y10: r(b._periods[c], 10), y100: r(b._periods[c], 100), y1000: r(b._periods[c], 1e3), ol: q(d), on: this._minDigits(b, b._periods[d], 1), onn: this._minDigits(b, b._periods[d], 2), onnn: this._minDigits(b, b._periods[d], 3), o1: r(b._periods[d], 1), o10: r(b._periods[d], 10), o100: r(b._periods[d], 100), o1000: r(b._periods[d], 1e3), wl: q(e), wn: this._minDigits(b, b._periods[e], 1), wnn: this._minDigits(b, b._periods[e], 2), wnnn: this._minDigits(b, b._periods[e], 3), w1: r(b._periods[e], 1), w10: r(b._periods[e], 10), w100: r(b._periods[e], 100), w1000: r(b._periods[e], 1e3), dl: q(f), dn: this._minDigits(b, b._periods[f], 1), dnn: this._minDigits(b, b._periods[f], 2), dnnn: this._minDigits(b, b._periods[f], 3), d1: r(b._periods[f], 1), d10: r(b._periods[f], 10), d100: r(b._periods[f], 100), d1000: r(b._periods[f], 1e3), hl: q(g), hn: this._minDigits(b, b._periods[g], 1), hnn: this._minDigits(b, b._periods[g], 2), hnnn: this._minDigits(b, b._periods[g], 3), h1: r(b._periods[g], 1), h10: r(b._periods[g], 10), h100: r(b._periods[g], 100), h1000: r(b._periods[g], 1e3), ml: q(h), mn: this._minDigits(b, b._periods[h], 1), mnn: this._minDigits(b, b._periods[h], 2), mnnn: this._minDigits(b, b._periods[h], 3), m1: r(b._periods[h], 1), m10: r(b._periods[h], 10), m100: r(b._periods[h], 100), m1000: r(b._periods[h], 1e3), sl: q(i), sn: this._minDigits(b, b._periods[i], 1), snn: this._minDigits(b, b._periods[i], 2), snnn: this._minDigits(b, b._periods[i], 3), s1: r(b._periods[i], 1), s10: r(b._periods[i], 10), s100: r(b._periods[i], 100), s1000: r(b._periods[i], 1e3), }, t = k, u = c; u <= i; u++) { var v = 'yowdhms'.charAt(u), w = new RegExp( '\\{' + v + '<\\}([\\s\\S]*)\\{' + v + '>\\}', 'g'); t = t.replace(w, !m && j[u] || m && n[u] ? '$1' : ''); } return a.each(s, function (a, b) { var c = new RegExp('\\{' + a + '\\}', 'g'); t = t.replace(c, b); }), t; }, _minDigits: function (a, b, c) { return b = '' + b, b.length >= c ? this._translateDigits(a, b) : (b = '0000000000' + b, this._translateDigits(a, b.substr(b.length - c))); }, _translateDigits: function (a, b) { return ('' + b).replace(/[0-9]/g, function (b) {return a.options.digits[b];}); }, _determineShow: function (a) { var b = a.options.format, j = []; return j[c] = b.match('y') ? '?' : b.match('Y') ? '!' : null, j[d] = b.match('o') ? '?' : b.match('O') ? '!' : null, j[e] = b.match('w') ? '?' : b.match('W') ? '!' : null, j[f] = b.match('d') ? '?' : b.match('D') ? '!' : null, j[g] = b.match('h') ? '?' : b.match('H') ? '!' : null, j[h] = b.match('m') ? '?' : b.match('M') ? '!' : null, j[i] = b.match('s') ? '?' : b.match('S') ? '!' : null, j; }, _calculatePeriods: function (a, b, j, k) { a._now = k, a._now.setMilliseconds(0); var l = new Date(a._now.getTime()); a._since ? k.getTime() < a._since.getTime() ? a._now = k = l : k = a._since : (l.setTime(a._until.getTime()), k.getTime() > a._until.getTime() && (a._now = k = l)); var m = [0, 0, 0, 0, 0, 0, 0]; if (b[c] || b[d]) { var n = this._getDaysInMonth(k.getFullYear(), k.getMonth()), o = this._getDaysInMonth(l.getFullYear(), l.getMonth()), p = l.getDate() === k.getDate() || l.getDate() >= Math.min(n, o) && k.getDate() >= Math.min(n, o), q = function (a) { return 60 * (60 * a.getHours() + a.getMinutes()) + a.getSeconds(); }, r = Math.max(0, 12 * (l.getFullYear() - k.getFullYear()) + l.getMonth() - k.getMonth() + (l.getDate() < k.getDate() && !p || p && q(l) < q(k) ? -1 : 0)); m[c] = b[c] ? Math.floor(r / 12) : 0, m[d] = b[d] ? r - 12 * m[c] : 0, k = new Date(k.getTime()); var s = k.getDate() === n, t = this._getDaysInMonth(k.getFullYear() + m[c], k.getMonth() + m[d]); k.getDate() > t && k.setDate(t), k.setFullYear( k.getFullYear() + m[c]), k.setMonth( k.getMonth() + m[d]), s && k.setDate(t); } var u = Math.floor((l.getTime() - k.getTime()) / 1e3), v = null, w = function (a, c) { m[a] = b[a] ? Math.floor(u / c) : 0, u -= m[a] * c; }; if (w(e, 604800), w(f, 86400), w(g, 3600), w(h, 60), w(i, 1), u > 0 && !a._since) { var x = [1, 12, 4.3482, 7, 24, 60, 60], y = i, z = 1; for (v = i; v >= c; v--) b[v] && (m[y] >= z && (m[y] = 0, u = 1), u > 0 && (m[v]++, u = 0, y = v, z = 1)), z *= x[v]; } if (j) for (v = c; v <= i; v++) j && m[v] ? j-- : j || (m[v] = 0); return m; }, }); }(jQuery); window.SEMICOLON_countdownInit = function ($countdownEl) { $countdownEl = $countdownEl.filter(':not(.customjs)'); if ($countdownEl.length < 1) { return true; } $countdownEl.each(function () { let element = $(this), elFormat = element.attr('data-format') || 'dHMS', elSince = element.attr('data-since'), elYear = element.attr('data-year'), elMonth = element.attr('data-month'), elDay = element.attr('data-day'), elHour = element.attr('data-hour'), elMin = element.attr('data-minute'), elSec = element.attr('data-second'), elRedirect = element.attr('data-redirect'), dateFormat = ''; if (elYear) { dateFormat = elYear; } if (elMonth && elMonth < 13) { dateFormat = dateFormat + '-' + (elMonth < 10 ? '0' + elMonth : elMonth); } else { if (elYear) { dateFormat = dateFormat + '-01'; } } if (elDay && elDay < 32) { dateFormat = dateFormat + '-' + (elDay < 10 ? '0' + elDay : elDay); } else { if (elYear) { dateFormat = dateFormat + '-01'; } } setDate = dateFormat != '' ? new Date(moment(dateFormat)) : new Date(); if (elHour && elHour < 25) { setDate.setHours(setDate.getHours() + Number(elHour)); } if (elMin && elMin < 60) { setDate.setMinutes(setDate.getMinutes() + Number(elMin)); } if (elSec && elSec < 60) { setDate.setSeconds(setDate.getSeconds() + Number(elSec)); } if (!elRedirect) { elRedirect = false; } if (elSince == 'true') { element.countdown({ since: setDate, format: elFormat, expiryUrl: elRedirect, }); } else { element.countdown({ until: setDate, format: elFormat, expiryUrl: elRedirect, }); } }); }; /* https://github.com/mhuggins/jquery-countTo CountTo */ (function (e) { function t (e, t) {return e.toFixed(t.decimals);} e.fn.countTo = function (t) { t = t || {}; return e(this).each(function () { function l () { a += i; u++; c(a); if (typeof n.onUpdate == 'function') {n.onUpdate.call(s, a);} if (u >= r) { o.removeData('countTo'); clearInterval(f.interval); a = n.to; if (typeof n.onComplete == 'function') { n.onComplete.call(s, a); } } } function c (e) { var t = n.formatter.call(s, e, n); o.text(t); } var n = e.extend({}, e.fn.countTo.defaults, { from: e(this).data('from'), to: e(this).data('to'), speed: e(this).data('speed'), refreshInterval: e(this).data('refresh-interval'), decimals: e(this).data('decimals'), }, t); var r = Math.ceil(n.speed / n.refreshInterval), i = (n.to - n.from) / r; var s = this, o = e(this), u = 0, a = n.from, f = o.data('countTo') || {}; o.data('countTo', f); if (f.interval) {clearInterval(f.interval);} f.interval = setInterval(l, n.refreshInterval); c(a); }); }; e.fn.countTo.defaults = { from: 0, to: 0, speed: 1e3, refreshInterval: 100, decimals: 0, formatter: t, onUpdate: null, onComplete: null, }; })(jQuery); window.SEMICOLON_counterInit = function ($counterEl) { $counterEl = $counterEl.filter(':not(.customjs)'); if ($counterEl.length < 1) { return true; } $counterEl.each(function () { let element = $(this), elComma = element.find('span').attr('data-comma'), elSep = element.find('span').attr('data-sep') || ',', elPlaces = element.find('span').attr('data-places') || 3; let elCommaObj = { comma: elComma, sep: elSep, places: Number(elPlaces), }; if (element.hasClass('counter-instant')) { SEMICOLON_runCounterInit(element, elCommaObj); return; } let observer = new IntersectionObserver(function (entries, observer) { entries.forEach(function (entry) { if (entry.isIntersecting) { SEMICOLON_runCounterInit(element, elCommaObj); observer.unobserve(entry.target); } }); }, { rootMargin: '-50px' }); observer.observe(element[0]); }); }; window.SEMICOLON_runCounterInit = function (elCounter, elFormat) { if (elFormat.comma == 'true') { let reFormat = '\\B(?=(\\d{' + elFormat.places + '})+(?!\\d))', regExp = new RegExp(reFormat, 'g'); elCounter.find('span').countTo({ formatter: function (value, options) { value = value.toFixed(options.decimals); value = value.replace(regExp, elFormat.sep); return value; }, }); } else { elCounter.find('span').countTo(); } }; window.scwDataClassesPlugin = window.scwDataClassesPlugin || {}; window.SEMICOLON_dataClassesInit = function ($dataClassesEl) { if ($dataClassesEl.length < 1) { return true; } let $dataClassXs = $('[data-class-xs]'), $dataClassSm = $('[data-class-sm]'), $dataClassMd = $('[data-class-md]'), $dataClassLg = $('[data-class-lg]'), $dataClassXl = $('[data-class-xl]'), $body = $('body'); if ($dataClassXs.length > 0) { $dataClassXs.each(function () { let element = $(this), elementClass = element.attr('data-class-xs'), elementClassDelete = element.attr('data-class-sm') + ' ' + element.attr('data-class-md') + ' ' + element.attr('data-class-lg') + ' ' + element.attr('data-class-xl'); if ($body.hasClass('device-xs')) { element.removeClass(elementClassDelete); element.addClass(elementClass); } }); } if ($dataClassSm.length > 0) { $dataClassSm.each(function () { let element = $(this), elementClass = element.attr('data-class-sm'), elementClassDelete = element.attr('data-class-xs') + ' ' + element.attr('data-class-md') + ' ' + element.attr('data-class-lg') + ' ' + element.attr('data-class-xl'); if ($body.hasClass('device-sm')) { element.removeClass(elementClassDelete); element.addClass(elementClass); } }); } if ($dataClassMd.length > 0) { $dataClassMd.each(function () { let element = $(this), elementClass = element.attr('data-class-md'), elementClassDelete = element.attr('data-class-xs') + ' ' + element.attr('data-class-sm') + ' ' + element.attr('data-class-lg') + ' ' + element.attr('data-class-xl'); if ($body.hasClass('device-md')) { element.removeClass(elementClassDelete); element.addClass(elementClass); } }); } if ($dataClassLg.length > 0) { $dataClassLg.each(function () { let element = $(this), elementClass = element.attr('data-class-lg'), elementClassDelete = element.attr('data-class-xs') + ' ' + element.attr('data-class-sm') + ' ' + element.attr('data-class-md') + ' ' + element.attr('data-class-xl'); if ($body.hasClass('device-lg')) { element.removeClass(elementClassDelete); element.addClass(elementClass); } }); } if ($dataClassXl.length > 0) { $dataClassXl.each(function () { let element = $(this), elementClass = element.attr('data-class-xl'), elementClassDelete = element.attr('data-class-xs') + ' ' + element.attr('data-class-sm') + ' ' + element.attr('data-class-md') + ' ' + element.attr('data-class-lg'); if ($body.hasClass('device-xl')) { element.removeClass(elementClassDelete); element.addClass(elementClass); } }); } }; window.scwDataHeightsPlugin = window.scwDataHeightsPlugin || {}; window.SEMICOLON_dataHeightsInit = function ($dataHeightsEl) { if ($dataHeightsEl.length < 1) { return true; } let $dataHeightXs = $('[data-height-xs]'), $dataHeightSm = $('[data-height-sm]'), $dataHeightMd = $('[data-height-md]'), $dataHeightLg = $('[data-height-lg]'), $dataHeightXl = $('[data-height-xl]'), $body = $('body'); if ($dataHeightXs.length > 0) { $dataHeightXs.each(function () { let element = $(this), elementHeight = element.attr('data-height-xs'); if ($body.hasClass('device-xs')) { if (elementHeight != '') { element.css('height', elementHeight); } } }); } if ($dataHeightSm.length > 0) { $dataHeightSm.each(function () { let element = $(this), elementHeight = element.attr('data-height-sm'); if ($body.hasClass('device-sm')) { if (elementHeight != '') { element.css('height', elementHeight); } } }); } if ($dataHeightMd.length > 0) { $dataHeightMd.each(function () { let element = $(this), elementHeight = element.attr('data-height-md'); if ($body.hasClass('device-md')) { if (elementHeight != '') { element.css('height', elementHeight); } } }); } if ($dataHeightLg.length > 0) { $dataHeightLg.each(function () { let element = $(this), elementHeight = element.attr('data-height-lg'); if ($body.hasClass('device-lg')) { if (elementHeight != '') { element.css('height', elementHeight); } } }); } if ($dataHeightXl.length > 0) { $dataHeightXl.each(function () { let element = $(this), elementHeight = element.attr('data-height-xl'); if ($body.hasClass('device-xl')) { if (elementHeight != '') { element.css('height', elementHeight); } } }); } }; /** * @preserve * Jribbble v2.0.4 | Thu Jun 4 01:49:29 2015 -0400 * Copyright (c) 2015, Tyler Gaw [email protected] * Released under the ISC-LICENSE */ !function (e, t, r, s) { 'use strict'; e.jribbble = {}; var n = null, o = 'https://api.dribbble.com/v1', i = [ 'animated', 'attachments', 'debuts', 'playoffs', 'rebounds', 'teams'], u = { token: 'Jribbble: Missing Dribbble access token. Set one with $.jribbble.accessToken = YOUR_ACCESS_TOKEN. If you do not have an access token, you must register a new application at https://dribbble.com/account/applications/new', singular: function (e) {return e.substr(0, e.length - 1);}, idRequired: function (e) { return 'Jribbble: You have to provide a ' + this.singular(e) + ' ID. ex: $.jribbble.%@("1234").'.replace(/%@/g, e); }, subResource: function (e) { return 'Jribbble: You have to provide a ' + this.singular(e) + ' ID to get %@. ex: $.jribbble.%@("1234").%@()'.replace(/%@/g, e); }, shotId: function (e) { return 'Jribbble: You have to provide a shot ID to get %@. ex: ' + ' $.jribbble.shots("1234").%@()'.replace(/%@/g, e); }, commentLikes: 'Jribbble: You have to provide a comment ID to get likes. ex: $.jribbble.shots("1234").comments("456").likes()', }, c = function (e, t) { if (e && 'object' != typeof e) return e; throw new Error(u.idRequired(t)); }, l = function (e) { var t = {}; return e.forEach(function (e) {t[e] = d.call(this, e);}.bind(this)), t; }, h = function (t) { var r = e.param(t); return r ? '?' + r : ''; }, a = function (e) { if (0 !== e.length) { var t = e[0], r = typeof t, s = {}; if ('number' === r || 'string' === r) { var n = i.indexOf(t); n > -1 ? s.list = t : s.resource = t; } else 'object' === r && (s = t); return s; } }, b = function () { var t = e.extend({}, e.Deferred()), r = function () { return this.methods = [], this.response = null, this.flushed = !1, this.add = function (e) { this.flushed ? e(this.scope) : this.methods.push(e); }, this.flush = function (e) { if (!this.flushed) { for (this.scope = e, this.flushed = !0; this.methods[0];) this.methods.shift()( e); return e; } }, this; }; return t.queue = new r, t.url = o, t.get = function () { return n ? (e.ajax({ type: 'GET', url: this.url, beforeSend: function (e) { e.setRequestHeader('Authorization', 'Bearer ' + n); }, success: function (e) {this.resolve(e);}.bind(this), error: function (e) {this.reject(e);}.bind(this), }), this) : (console.error(u.token), !1); }, t; }, f = function (t) { return function (r) { return e.extend(this, b()), this.queue.add( function (e) {e.url += '/' + t + '/' + r;}), setTimeout( function () {this.queue.flush(this).get();}.bind(this)), this; }; }, d = function (e) { return function (t) { return this.queue.add( function (r) {r.url += '/' + e + '/' + h(t || {});}), this; }; }; e.jribbble.shots = function (t, r) { var s = a([].slice.call(arguments)) || {}, n = r || {}, o = function (t) { return function (r, s) { var n = a([].slice.call(arguments)) || {}, o = s || {}; return this.queue.add(function (r) { if (!r.shotId) throw new Error(u.shotId(t)); r.url += '/' + t + '/', n.resource && (r.url += n.resource, delete n.resource), r.url += h( e.extend(n, o)); }), this; }; }, i = function () { return e.extend(this, b()), this.url += '/shots/', this.queue.add( function (t) { s.resource && (t.shotId = s.resource, t.url += s.resource, delete s.resource), t.url += h( e.extend(s, n)); }), setTimeout( function () {this.queue.flush(this).get();}.bind(this)), this; }; return i.prototype.attachments = o( 'attachments'), i.prototype.buckets = o( 'buckets'), i.prototype.likes = o( 'likes'), i.prototype.projects = o( 'projects'), i.prototype.rebounds = o( 'rebounds'), i.prototype.comments = function (t, r) { var s = a([].slice.call(arguments)) || {}, n = r || {}; return this.queue.add(function (t) { if (!t.shotId) throw new Error(u.shotId('comments')); t.url += '/comments/', s.resource && (t.commentId = s.resource, t.url += s.resource + '/', delete s.resource), t.url += h(e.extend(s, n)); }), this.likes = function (e) { var t = e || {}; return this.queue.add(function (e) { if (!e.commentId) throw new Error(u.commentLikes); e.url += 'likes/' + h(t); }), this; }, this; }, new i; }, e.jribbble.teams = function (e) { var t = 'teams', r = c(e, t), s = f.call(this, t); return s.prototype = l.call(this, ['members', 'shots']), new s(r); }, e.jribbble.users = function (e) { var t = 'users', r = c(e, t), s = f.call(this, t); return s.prototype = l.call(this, [ 'buckets', 'followers', 'following', 'likes', 'projects', 'shots', 'teams']), s.prototype.isFollowing = function (e) { return this.queue.add( function (t) {t.url += '/following/' + e;}), this; }, new s(r); }, e.jribbble.buckets = function (e) { var t = 'buckets', r = c(e, t), s = f.call(this, t); return s.prototype = l.call(this, ['shots']), new s(r); }, e.jribbble.projects = function (e) { var t = 'projects', r = c(e, t), s = f.call(this, t); return s.prototype = l.call(this, ['shots']), new s(r); }, e.jribbble.setToken = function (e) {return n = e, this;}; }(jQuery, window, document); window.SEMICOLON_dribbbleShotsInit = function ($dribbbleShotsEl) { $dribbbleShotsEl = $dribbbleShotsEl.filter(':not(.customjs)'); if ($dribbbleShotsEl.length < 1) { return true; } $.jribbble.setToken( '012d3d72d12f93e1d41a19195d7da2fc87e6b5afa48a184256e398eb793cfe56'); $dribbbleShotsEl.each(function () { let element = $(this), elUsername = element.attr('data-user'), elCount = element.attr('data-count') || 9, elList = element.attr('data-list'), elType = element.attr('data-type'); element.addClass('customjs'); if (elType == 'user') { $.jribbble.users(elUsername).shots({ 'sort': 'recent', 'page': 1, 'per_page': Number(elCount), }).then(function (res) { let html = []; res.forEach(function (shot) { html.push('<a class="grid-item" href="' + shot.html_url + '" target="_blank">'); html.push('<img src="' + shot.images.teaser + '" '); html.push('alt="' + shot.title + '"></a>'); }); element.html(html.join('')); $(window).on('pluginImagesLoadedReady', function () { element.imagesLoaded().done(function () { element.removeClass('customjs'); SEMICOLON.widget.masonryThumbs(); }); }); }); } else if (elType == 'list') { $.jribbble.shots(elList, { 'sort': 'recent', 'page': 1, 'per_page': Number(elCount), }).then(function (res) { let html = []; res.forEach(function (shot) { html.push('<a class="grid-item" href="' + shot.html_url + '" target="_blank">'); html.push('<img src="' + shot.images.teaser + '" '); html.push('alt="' + shot.title + '"></a>'); }); element.html(html.join('')); $(window).on('pluginImagesLoadedReady', function () { element.imagesLoaded().done(function () { element.removeClass('customjs'); SEMICOLON.widget.masonryThumbs(); }); }); }); } }); }; /*! * FitVids 1.1 * * Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com * Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/ * Released under the WTFPL license - http://sam.zoy.org/wtfpl/ * */ !function (t) { 'use strict'; t.fn.fitVids = function (e) { var i = { customSelector: null, ignore: null }; if (!document.getElementById('fit-vids-style')) { var r = document.head || document.getElementsByTagName('head')[0], a = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}', d = document.createElement('div'); d.innerHTML = '<p>x</p><style id="fit-vids-style">' + a + '</style>', r.appendChild(d.childNodes[1]); } return e && t.extend(i, e), this.each(function () { var e = [ 'iframe[src*="player.vimeo.com"]', 'iframe[src*="youtube.com"]', 'iframe[src*="youtube-nocookie.com"]', 'iframe[src*="kickstarter.com"][src*="video.html"]', 'object', 'embed']; i.customSelector && e.push(i.customSelector); var r = '.fitvidsignore'; i.ignore && (r = r + ', ' + i.ignore); var a = t(this).find(e.join(',')); a = a.not('object object'), a = a.not(r), a.each(function (e) { var i = t(this); if (!(i.parents(r).length > 0 || 'embed' === this.tagName.toLowerCase() && i.parent('object').length || i.parent('.fluid-width-video-wrapper').length)) { i.css('height') || i.css('width') || !isNaN(i.attr('height')) && !isNaN(i.attr('width')) || (i.attr('height', 9), i.attr('width', 16)); var a = 'object' === this.tagName.toLowerCase() || i.attr('height') && !isNaN(parseInt(i.attr('height'), 10)) ? parseInt(i.attr('height'), 10) : i.height(), d = isNaN(parseInt(i.attr('width'), 10)) ? i.width() : parseInt(i.attr('width'), 10), o = a / d; if (!i.attr('id')) { var h = 'fitvid' + e; i.attr('id', h); } i.wrap('<div class="fluid-width-video-wrapper"></div>'). parent('.fluid-width-video-wrapper'). css('padding-top', 100 * o + '%'), i.removeAttr( 'height').removeAttr('width'); } }); }); }; }(window.jQuery || window.Zepto); window.SEMICOLON_resizeVideosInit = function ($videoEl) { $videoEl = $videoEl.filter(':not(.customjs)'); if ($videoEl.length < 1) { return true; } $videoEl.parent().fitVids({ customSelector: 'iframe[src*="youtube"],iframe[src*="vimeo"],iframe[src*="dailymotion"],iframe[src*="maps.google.com"],iframe[src*="google.com/maps"]', ignore: '.no-fv', }); }; /* * jQuery FlexSlider v2.7.2 * Copyright 2012 WooThemes * Contributing Author: Tyler Smith */ !function ($) { var e = !0; $.flexslider = function (t, a) { var n = $(t); void 0 === a.rtl && 'rtl' == $('html').attr('dir') && (a.rtl = !0), n.vars = $.extend({}, $.flexslider.defaults, a); var i = n.vars.namespace, r = window.navigator && window.navigator.msPointerEnabled && window.MSGesture, s = ('ontouchstart' in window || r || window.DocumentTouch && document instanceof DocumentTouch) && n.vars.touch, o = 'click touchend MSPointerUp keyup', l = '', c, d = 'vertical' === n.vars.direction, u = n.vars.reverse, v = n.vars.itemWidth > 0, p = 'fade' === n.vars.animation, m = '' !== n.vars.asNavFor, f = {}; $.data(t, 'flexslider', n), f = { init: function () { n.animating = !1, n.currentSlide = parseInt( n.vars.startAt ? n.vars.startAt : 0, 10), isNaN( n.currentSlide) && (n.currentSlide = 0), n.animatingTo = n.currentSlide, n.atEnd = 0 === n.currentSlide || n.currentSlide === n.last, n.containerSelector = n.vars.selector.substr(0, n.vars.selector.search(' ')), n.slides = $(n.vars.selector, n), n.container = $(n.containerSelector, n), n.count = n.slides.length, n.syncExists = $( n.vars.sync).length > 0, 'slide' === n.vars.animation && (n.vars.animation = 'swing'), n.prop = d ? 'top' : n.vars.rtl ? 'marginRight' : 'marginLeft', n.args = {}, n.manualPause = !1, n.stopped = !1, n.started = !1, n.startTimeout = null, n.transitions = !n.vars.video && !p && n.vars.useCSS && function () { var e = document.createElement('div'), t = [ 'perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; for (var a in t) if (void 0 !== e.style[t[a]]) return n.pfx = t[a].replace( 'Perspective', '').toLowerCase(), n.prop = '-' + n.pfx + '-transform', !0; return !1; }(), n.isFirefox = navigator.userAgent.toLowerCase(). indexOf('firefox') > -1, n.ensureAnimationEnd = '', '' !== n.vars.controlsContainer && (n.controlsContainer = $(n.vars.controlsContainer).length > 0 && $(n.vars.controlsContainer)), '' !== n.vars.manualControls && (n.manualControls = $(n.vars.manualControls).length > 0 && $(n.vars.manualControls)), '' !== n.vars.customDirectionNav && (n.customDirectionNav = 2 === $(n.vars.customDirectionNav).length && $(n.vars.customDirectionNav)), n.vars.randomize && (n.slides.sort(function () { return Math.round(Math.random()) - .5; }), n.container.empty().append(n.slides)), n.doMath(), n.setup( 'init'), n.vars.controlNav && f.controlNav.setup(), n.vars.directionNav && f.directionNav.setup(), n.vars.keyboard && (1 === $(n.containerSelector).length || n.vars.multipleKeyboard) && $(document).bind('keyup', function (e) { var t = e.keyCode; if (!n.animating && (39 === t || 37 === t)) { var a = n.vars.rtl ? 37 === t ? n.getTarget('next') : 39 === t && n.getTarget('prev') : 39 === t ? n.getTarget('next') : 37 === t && n.getTarget('prev'); n.flexAnimate(a, n.vars.pauseOnAction); } }), n.vars.mousewheel && n.bind('mousewheel', function (e, t, a, i) { e.preventDefault(); var r = t < 0 ? n.getTarget('next') : n.getTarget('prev'); n.flexAnimate(r, n.vars.pauseOnAction); }), n.vars.pausePlay && f.pausePlay.setup(), n.vars.slideshow && n.vars.pauseInvisible && f.pauseInvisible.init(), n.vars.slideshow && (n.vars.pauseOnHover && n.hover( function () {n.manualPlay || n.manualPause || n.pause();}, function () { n.manualPause || n.manualPlay || n.stopped || n.play(); }), n.vars.pauseInvisible && f.pauseInvisible.isHidden() || (n.vars.initDelay > 0 ? n.startTimeout = setTimeout(n.play, n.vars.initDelay) : n.play())), m && f.asNav.setup(), s && n.vars.touch && f.touch(), (!p || p && n.vars.smoothHeight) && $(window). bind('resize orientationchange focus', f.resize), n.find( 'img').attr('draggable', 'false'), setTimeout( function () {n.vars.start(n);}, 200); }, asNav: { setup: function () { n.asNav = !0, n.animatingTo = Math.floor(n.currentSlide / n.move), n.currentItem = n.currentSlide, n.slides.removeClass( i + 'active-slide'). eq(n.currentItem). addClass(i + 'active-slide'), r ? (t._slider = n, n.slides.each(function () { var e = this; e._gesture = new MSGesture, e._gesture.target = e, e.addEventListener( 'MSPointerDown', function (e) { e.preventDefault(), e.currentTarget._gesture && e.currentTarget._gesture.addPointer( e.pointerId); }, !1), e.addEventListener('MSGestureTap', function (e) { e.preventDefault(); var t = $(this), a = t.index(); $(n.vars.asNavFor). data('flexslider').animating || t.hasClass('active') || (n.direction = n.currentItem < a ? 'next' : 'prev', n.flexAnimate(a, n.vars.pauseOnAction, !1, !0, !0)); }); })) : n.slides.on(o, function (e) { e.preventDefault(); var t = $(this), a = t.index(), r; r = n.vars.rtl ? -1 * (t.offset().right - $(n).scrollLeft()) : t.offset().left - $(n).scrollLeft(), r <= 0 && t.hasClass(i + 'active-slide') ? n.flexAnimate( n.getTarget('prev'), !0) : $(n.vars.asNavFor). data('flexslider').animating || t.hasClass(i + 'active-slide') || (n.direction = n.currentItem < a ? 'next' : 'prev', n.flexAnimate(a, n.vars.pauseOnAction, !1, !0, !0)); }); }, }, controlNav: { setup: function () { n.manualControls ? f.controlNav.setupManual() : f.controlNav.setupPaging(); }, setupPaging: function () { var e = 'thumbnails' === n.vars.controlNav ? 'control-thumbs' : 'control-paging', t = 1, a, r; if (n.controlNavScaffold = $( '<ol class="' + i + 'control-nav ' + i + e + '"></ol>'), n.pagingCount > 1) for (var s = 0; s < n.pagingCount; s++) { if (r = n.slides.eq(s), void 0 === r.attr('data-thumb-alt') && r.attr('data-thumb-alt', ''), a = $('<a></a>'). attr('href', '#'). text(t), 'thumbnails' === n.vars.controlNav && (a = $('<img/>'). attr('src', r.attr('data-thumb'))), '' !== r.attr('data-thumb-alt') && a.attr('alt', r.attr('data-thumb-alt')), 'thumbnails' === n.vars.controlNav && !0 === n.vars.thumbCaptions) { var c = r.attr('data-thumbcaption'); if ('' !== c && void 0 !== c) { var d = $('<span></span>'). addClass(i + 'caption'). text(c); a.append(d); } } var u = $('<li>'); a.appendTo(u), u.append( '</li>'), n.controlNavScaffold.append(u), t++; } n.controlsContainer ? $(n.controlsContainer). append(n.controlNavScaffold) : n.append( n.controlNavScaffold), f.controlNav.set(), f.controlNav.active(), n.controlNavScaffold.delegate( 'a, img', o, function (e) { if (e.preventDefault(), '' === l || l === e.type) { var t = $(this), a = n.controlNav.index(t); t.hasClass(i + 'active') || (n.direction = a > n.currentSlide ? 'next' : 'prev', n.flexAnimate(a, n.vars.pauseOnAction)); } '' === l && (l = e.type), f.setToClearWatchedEvent(); }); }, setupManual: function () { n.controlNav = n.manualControls, f.controlNav.active(), n.controlNav.bind( o, function (e) { if (e.preventDefault(), '' === l || l === e.type) { var t = $(this), a = n.controlNav.index(t); t.hasClass(i + 'active') || (a > n.currentSlide ? n.direction = 'next' : n.direction = 'prev', n.flexAnimate(a, n.vars.pauseOnAction)); } '' === l && (l = e.type), f.setToClearWatchedEvent(); }); }, set: function () { var e = 'thumbnails' === n.vars.controlNav ? 'img' : 'a'; n.controlNav = $('.' + i + 'control-nav li ' + e, n.controlsContainer ? n.controlsContainer : n); }, active: function () { n.controlNav.removeClass(i + 'active'). eq(n.animatingTo). addClass(i + 'active'); }, update: function (e, t) { n.pagingCount > 1 && 'add' === e ? n.controlNavScaffold.append( $('<li><a href="#">' + n.count + '</a></li>')) : 1 === n.pagingCount ? n.controlNavScaffold.find('li'). remove() : n.controlNav.eq(t). closest('li'). remove(), f.controlNav.set(), n.pagingCount > 1 && n.pagingCount !== n.controlNav.length ? n.update(t, e) : f.controlNav.active(); }, }, directionNav: { setup: function () { var e = $( '<ul class="' + i + 'direction-nav"><li class="' + i + 'nav-prev"><a class="' + i + 'prev" href="#">' + n.vars.prevText + '</a></li><li class="' + i + 'nav-next"><a class="' + i + 'next" href="#">' + n.vars.nextText + '</a></li></ul>'); n.customDirectionNav ? n.directionNav = n.customDirectionNav : n.controlsContainer ? ($(n.controlsContainer). append(e), n.directionNav = $( '.' + i + 'direction-nav li a', n.controlsContainer)) : (n.append(e), n.directionNav = $( '.' + i + 'direction-nav li a', n)), f.directionNav.update(), n.directionNav.bind(o, function (e) { e.preventDefault(); var t; '' !== l && l !== e.type || (t = $(this).hasClass(i + 'next') ? n.getTarget( 'next') : n.getTarget('prev'), n.flexAnimate(t, n.vars.pauseOnAction)), '' === l && (l = e.type), f.setToClearWatchedEvent(); }); }, update: function () { var e = i + 'disabled'; 1 === n.pagingCount ? n.directionNav.addClass(e). attr('tabindex', '-1') : n.vars.animationLoop ? n.directionNav.removeClass(e).removeAttr('tabindex') : 0 === n.animatingTo ? n.directionNav.removeClass(e). filter('.' + i + 'prev'). addClass(e). attr('tabindex', '-1') : n.animatingTo === n.last ? n.directionNav.removeClass(e). filter('.' + i + 'next'). addClass(e). attr('tabindex', '-1') : n.directionNav.removeClass(e). removeAttr('tabindex'); }, }, pausePlay: { setup: function () { var e = $('<div class="' + i + 'pauseplay"><a href="#"></a></div>'); n.controlsContainer ? (n.controlsContainer.append( e), n.pausePlay = $('.' + i + 'pauseplay a', n.controlsContainer)) : (n.append(e), n.pausePlay = $( '.' + i + 'pauseplay a', n)), f.pausePlay.update( n.vars.slideshow ? i + 'pause' : i + 'play'), n.pausePlay.bind(o, function (e) { e.preventDefault(), '' !== l && l !== e.type || ($(this).hasClass(i + 'pause') ? (n.manualPause = !0, n.manualPlay = !1, n.pause()) : (n.manualPause = !1, n.manualPlay = !0, n.play())), '' === l && (l = e.type), f.setToClearWatchedEvent(); }); }, update: function (e) { 'play' === e ? n.pausePlay.removeClass(i + 'pause'). addClass(i + 'play'). html(n.vars.playText) : n.pausePlay.removeClass( i + 'play'). addClass(i + 'pause'). html(n.vars.pauseText); }, }, touch: function () { function e (e) { e.stopPropagation(), n.animating ? e.preventDefault() : (n.pause(), t._gesture.addPointer( e.pointerId), w = 0, c = d ? n.h : n.w, f = Number( new Date), l = v && u && n.animatingTo === n.last ? 0 : v && u ? n.limit - (n.itemW + n.vars.itemMargin) * n.move * n.animatingTo : v && n.currentSlide === n.last ? n.limit : v ? (n.itemW + n.vars.itemMargin) * n.move * n.currentSlide : u ? (n.last - n.currentSlide + n.cloneOffset) * c : (n.currentSlide + n.cloneOffset) * c); } function a (e) { e.stopPropagation(); var a = e.target._slider; if (a) { var n = -e.translationX, i = -e.translationY; if (w += d ? i : n, m = (a.vars.rtl ? -1 : 1) * w, x = d ? Math.abs(w) < Math.abs(-n) : Math.abs(w) < Math.abs(-i), e.detail === e.MSGESTURE_FLAG_INERTIA) return void setImmediate( function () {t._gesture.stop();}); (!x || Number(new Date) - f > 500) && (e.preventDefault(), !p && a.transitions && (a.vars.animationLoop || (m = w / (0 === a.currentSlide && w < 0 || a.currentSlide === a.last && w > 0 ? Math.abs(w) / c + 2 : 1)), a.setProps(l + m, 'setTouch'))); } } function i (e) { e.stopPropagation(); var t = e.target._slider; if (t) { if (t.animatingTo === t.currentSlide && !x && null !== m) { var a = u ? -m : m, n = a > 0 ? t.getTarget('next') : t.getTarget( 'prev'); t.canAdvance(n) && (Number(new Date) - f < 550 && Math.abs(a) > 50 || Math.abs(a) > c / 2) ? t.flexAnimate(n, t.vars.pauseOnAction) : p || t.flexAnimate(t.currentSlide, t.vars.pauseOnAction, !0); } s = null, o = null, m = null, l = null, w = 0; } } var s, o, l, c, m, f, g, h, S, x = !1, y = 0, b = 0, w = 0; r ? (t.style.msTouchAction = 'none', t._gesture = new MSGesture, t._gesture.target = t, t.addEventListener( 'MSPointerDown', e, !1), t._slider = n, t.addEventListener( 'MSGestureChange', a, !1), t.addEventListener( 'MSGestureEnd', i, !1)) : (g = function (e) { n.animating ? e.preventDefault() : (window.navigator.msPointerEnabled || 1 === e.touches.length) && (n.pause(), c = d ? n.h : n.w, f = Number( new Date), y = e.touches[0].pageX, b = e.touches[0].pageY, l = v && u && n.animatingTo === n.last ? 0 : v && u ? n.limit - (n.itemW + n.vars.itemMargin) * n.move * n.animatingTo : v && n.currentSlide === n.last ? n.limit : v ? (n.itemW + n.vars.itemMargin) * n.move * n.currentSlide : u ? (n.last - n.currentSlide + n.cloneOffset) * c : (n.currentSlide + n.cloneOffset) * c, s = d ? b : y, o = d ? y : b, t.addEventListener('touchmove', h, !1), t.addEventListener('touchend', S, !1)); }, h = function (e) { y = e.touches[0].pageX, b = e.touches[0].pageY, m = d ? s - b : (n.vars.rtl ? -1 : 1) * (s - y), x = d ? Math.abs(m) < Math.abs(y - o) : Math.abs(m) < Math.abs(b - o); var t = 500; (!x || Number(new Date) - f > 500) && (e.preventDefault(), !p && n.transitions && (n.vars.animationLoop || (m /= 0 === n.currentSlide && m < 0 || n.currentSlide === n.last && m > 0 ? Math.abs(m) / c + 2 : 1), n.setProps( l + m, 'setTouch'))); }, S = function (e) { if (t.removeEventListener('touchmove', h, !1), n.animatingTo === n.currentSlide && !x && null !== m) { var a = u ? -m : m, i = a > 0 ? n.getTarget('next') : n.getTarget( 'prev'); n.canAdvance(i) && (Number(new Date) - f < 550 && Math.abs(a) > 50 || Math.abs(a) > c / 2) ? n.flexAnimate(i, n.vars.pauseOnAction) : p || n.flexAnimate(n.currentSlide, n.vars.pauseOnAction, !0); } t.removeEventListener('touchend', S, !1), s = null, o = null, m = null, l = null; }, t.addEventListener('touchstart', g, !1)); }, resize: function () { !n.animating && n.is(':visible') && (v || n.doMath(), p ? f.smoothHeight() : v ? (n.slides.width( n.computedW), n.update(n.pagingCount), n.setProps()) : d ? (n.viewport.height(n.h), n.setProps(n.h, 'setTotal')) : (n.vars.smoothHeight && f.smoothHeight(), n.newSlides.width( n.computedW), n.setProps(n.computedW, 'setTotal'))); }, smoothHeight: function (e) { if (!d || p) { var t = p ? n : n.viewport; e ? t.animate( { height: n.slides.eq(n.animatingTo).innerHeight() }, e) : t.innerHeight( n.slides.eq(n.animatingTo).innerHeight()); } }, sync: function (e) { var t = $(n.vars.sync).data('flexslider'), a = n.animatingTo; switch (e) { case'animate': t.flexAnimate(a, n.vars.pauseOnAction, !1, !0); break; case'play': t.playing || t.asNav || t.play(); break; case'pause': t.pause(); break; } }, uniqueID: function (e) { return e.filter('[id]'). add(e.find('[id]')). each(function () { var e = $(this); e.attr('id', e.attr('id') + '_clone'); }), e; }, pauseInvisible: { visProp: null, init: function () { var e = f.pauseInvisible.getHiddenProp(); if (e) { var t = e.replace(/[H|h]idden/, '') + 'visibilitychange'; document.addEventListener(t, function () { f.pauseInvisible.isHidden() ? n.startTimeout ? clearTimeout(n.startTimeout) : n.pause() : n.started ? n.play() : n.vars.initDelay > 0 ? setTimeout(n.play, n.vars.initDelay) : n.play(); }); } }, isHidden: function () { var e = f.pauseInvisible.getHiddenProp(); return !!e && document[e]; }, getHiddenProp: function () { var e = [ 'webkit', 'moz', 'ms', 'o']; if ('hidden' in document) return 'hidden'; for (var t = 0; t < e.length; t++) if (e[t] + 'Hidden' in document) return e[t] + 'Hidden'; return null; }, }, setToClearWatchedEvent: function () { clearTimeout(c), c = setTimeout(function () {l = '';}, 3e3); }, }, n.flexAnimate = function (e, t, a, r, o) { if (n.vars.animationLoop || e === n.currentSlide || (n.direction = e > n.currentSlide ? 'next' : 'prev'), m && 1 === n.pagingCount && (n.direction = n.currentItem < e ? 'next' : 'prev'), !n.animating && (n.canAdvance(e, o) || a) && n.is(':visible')) { if (m && r) { var l = $(n.vars.asNavFor).data('flexslider'); if (n.atEnd = 0 === e || e === n.count - 1, l.flexAnimate(e, !0, !1, !0, o), n.direction = n.currentItem < e ? 'next' : 'prev', l.direction = n.direction, Math.ceil( (e + 1) / n.visible) - 1 === n.currentSlide || 0 === e) return n.currentItem = e, n.slides.removeClass( i + 'active-slide'). eq(e). addClass(i + 'active-slide'), !1; n.currentItem = e, n.slides.removeClass(i + 'active-slide'). eq(e). addClass(i + 'active-slide'), e = Math.floor( e / n.visible); } if (n.animating = !0, n.animatingTo = e, t && n.pause(), n.vars.before(n), n.syncExists && !o && f.sync('animate'), n.vars.controlNav && f.controlNav.active(), v || n.slides.removeClass(i + 'active-slide'). eq(e). addClass(i + 'active-slide'), n.atEnd = 0 === e || e === n.last, n.vars.directionNav && f.directionNav.update(), e === n.last && (n.vars.end(n), n.vars.animationLoop || n.pause()), p) s ? (n.slides.eq(n.currentSlide). css({ opacity: 0, zIndex: 1 }), n.slides.eq(e). css({ opacity: 1, zIndex: 2 }), n.wrapup(c)) : (n.slides.eq(n.currentSlide). css({ zIndex: 1 }). animate({ opacity: 0 }, n.vars.animationSpeed, n.vars.easing), n.slides.eq(e). css({ zIndex: 2 }). animate({ opacity: 1 }, n.vars.animationSpeed, n.vars.easing, n.wrapup)); else { var c = d ? n.slides.filter(':first').height() : n.computedW, g, h, S; v ? (g = n.vars.itemMargin, S = (n.itemW + g) * n.move * n.animatingTo, h = S > n.limit && 1 !== n.visible ? n.limit : S) : h = 0 === n.currentSlide && e === n.count - 1 && n.vars.animationLoop && 'next' !== n.direction ? u ? (n.count + n.cloneOffset) * c : 0 : n.currentSlide === n.last && 0 === e && n.vars.animationLoop && 'prev' !== n.direction ? u ? 0 : (n.count + 1) * c : u ? (n.count - 1 - e + n.cloneOffset) * c : (e + n.cloneOffset) * c, n.setProps(h, '', n.vars.animationSpeed), n.transitions ? (n.vars.animationLoop && n.atEnd || (n.animating = !1, n.currentSlide = n.animatingTo), n.container.unbind( 'webkitTransitionEnd transitionend'), n.container.bind( 'webkitTransitionEnd transitionend', function () { clearTimeout(n.ensureAnimationEnd), n.wrapup(c); }), clearTimeout( n.ensureAnimationEnd), n.ensureAnimationEnd = setTimeout( function () {n.wrapup(c);}, n.vars.animationSpeed + 100)) : n.container.animate(n.args, n.vars.animationSpeed, n.vars.easing, function () {n.wrapup(c);}); } n.vars.smoothHeight && f.smoothHeight(n.vars.animationSpeed); } }, n.wrapup = function (e) { p || v || (0 === n.currentSlide && n.animatingTo === n.last && n.vars.animationLoop ? n.setProps(e, 'jumpEnd') : n.currentSlide === n.last && 0 === n.animatingTo && n.vars.animationLoop && n.setProps(e, 'jumpStart')), n.animating = !1, n.currentSlide = n.animatingTo, n.vars.after( n); }, n.animateSlides = function () { !n.animating && e && n.flexAnimate(n.getTarget('next')); }, n.pause = function () { clearInterval( n.animatedSlides), n.animatedSlides = null, n.playing = !1, n.vars.pausePlay && f.pausePlay.update('play'), n.syncExists && f.sync('pause'); }, n.play = function () { n.playing && clearInterval( n.animatedSlides), n.animatedSlides = n.animatedSlides || setInterval(n.animateSlides, n.vars.slideshowSpeed), n.started = n.playing = !0, n.vars.pausePlay && f.pausePlay.update('pause'), n.syncExists && f.sync('play'); }, n.stop = function () {n.pause(), n.stopped = !0;}, n.canAdvance = function ( e, t) { var a = m ? n.pagingCount - 1 : n.last; return !!t || (!(!m || n.currentItem !== n.count - 1 || 0 !== e || 'prev' !== n.direction) || (!m || 0 !== n.currentItem || e !== n.pagingCount - 1 || 'next' === n.direction) && (!(e === n.currentSlide && !m) && (!!n.vars.animationLoop || (!n.atEnd || 0 !== n.currentSlide || e !== a || 'next' === n.direction) && (!n.atEnd || n.currentSlide !== a || 0 !== e || 'next' !== n.direction)))); }, n.getTarget = function (e) { return n.direction = e, 'next' === e ? n.currentSlide === n.last ? 0 : n.currentSlide + 1 : 0 === n.currentSlide ? n.last : n.currentSlide - 1; }, n.setProps = function (e, t, a) { var i = function () { var a = e || (n.itemW + n.vars.itemMargin) * n.move * n.animatingTo; return function () { if (v) return 'setTouch' === t ? e : u && n.animatingTo === n.last ? 0 : u ? n.limit - (n.itemW + n.vars.itemMargin) * n.move * n.animatingTo : n.animatingTo === n.last ? n.limit : a; switch (t) { case'setTotal': return u ? (n.count - 1 - n.currentSlide + n.cloneOffset) * e : (n.currentSlide + n.cloneOffset) * e; case'setTouch': return e; case'jumpEnd': return u ? e : n.count * e; case'jumpStart': return u ? n.count * e : e; default: return e; } }() * (n.vars.rtl ? 1 : -1) + 'px'; }(); n.transitions && (i = n.isFirefox ? d ? 'translate3d(0,' + i + ',0)' : 'translate3d(' + parseInt(i) + 'px,0,0)' : d ? 'translate3d(0,' + i + ',0)' : 'translate3d(' + (n.vars.rtl ? -1 : 1) * parseInt(i) + 'px,0,0)', a = void 0 !== a ? a / 1e3 + 's' : '0s', n.container.css('-' + n.pfx + '-transition-duration', a), n.container.css('transition-duration', a)), n.args[n.prop] = i, (n.transitions || void 0 === a) && n.container.css(n.args), n.container.css('transform', i); }, n.setup = function (e) { if (p) n.vars.rtl ? n.slides.css({ width: '100%', float: 'right', marginLeft: '-100%', position: 'relative', }) : n.slides.css({ width: '100%', float: 'left', marginRight: '-100%', position: 'relative', }), 'init' === e && (s ? n.slides.css({ opacity: 0, display: 'block', webkitTransition: 'opacity ' + n.vars.animationSpeed / 1e3 + 's ease', zIndex: 1, }).eq(n.currentSlide).css({ opacity: 1, zIndex: 2 }) : 0 == n.vars.fadeFirstSlide ? n.slides.css( { opacity: 0, display: 'block', zIndex: 1 }). eq(n.currentSlide). css({ zIndex: 2 }). css({ opacity: 1 }) : n.slides.css( { opacity: 0, display: 'block', zIndex: 1 }). eq(n.currentSlide). css({ zIndex: 2 }). animate({ opacity: 1 }, n.vars.animationSpeed, n.vars.easing)), n.vars.smoothHeight && f.smoothHeight(); else { var t, a; 'init' === e && (n.viewport = $('<div class="' + i + 'viewport"></div>'). css({ overflow: 'hidden', position: 'relative' }). appendTo(n). append( n.container), n.cloneCount = 0, n.cloneOffset = 0, u && (a = $.makeArray(n.slides).reverse(), n.slides = $( a), n.container.empty(). append(n.slides))), n.vars.animationLoop && !v && (n.cloneCount = 2, n.cloneOffset = 1, 'init' !== e && n.container.find('.clone').remove(), n.container.append( f.uniqueID(n.slides.first().clone().addClass('clone')). attr('aria-hidden', 'true')). prepend( f.uniqueID(n.slides.last().clone().addClass('clone')). attr('aria-hidden', 'true'))), n.newSlides = $( n.vars.selector, n), t = u ? n.count - 1 - n.currentSlide + n.cloneOffset : n.currentSlide + n.cloneOffset, d && !v ? (n.container.height(200 * (n.count + n.cloneCount) + '%'). css('position', 'absolute'). width('100%'), setTimeout(function () { n.newSlides.css( { display: 'block' }), n.doMath(), n.viewport.height( n.h), n.setProps(t * n.h, 'init'); }, 'init' === e ? 100 : 0)) : (n.container.width( 200 * (n.count + n.cloneCount) + '%'), n.setProps( t * n.computedW, 'init'), setTimeout(function () { n.doMath(), n.vars.rtl && n.isFirefox ? n.newSlides.css({ width: n.computedW, marginRight: n.computedM, float: 'right', display: 'block', }) : n.newSlides.css({ width: n.computedW, marginRight: n.computedM, float: 'left', display: 'block', }), n.vars.smoothHeight && f.smoothHeight(); }, 'init' === e ? 100 : 0)); } v || n.slides.removeClass(i + 'active-slide'). eq(n.currentSlide). addClass(i + 'active-slide'), n.vars.init(n); }, n.doMath = function () { var e = n.slides.first(), t = n.vars.itemMargin, a = n.vars.minItems, i = n.vars.maxItems; n.w = void 0 === n.viewport ? n.width() : n.viewport.width(), n.isFirefox && (n.w = n.width()), n.h = e.height(), n.boxPadding = e.outerWidth() - e.width(), v ? (n.itemT = n.vars.itemWidth + t, n.itemM = t, n.minW = a ? a * n.itemT : n.w, n.maxW = i ? i * n.itemT - t : n.w, n.itemW = n.minW > n.w ? (n.w - t * (a - 1)) / a : n.maxW < n.w ? (n.w - t * (i - 1)) / i : n.vars.itemWidth > n.w ? n.w : n.vars.itemWidth, n.visible = Math.floor( n.w / n.itemW), n.move = n.vars.move > 0 && n.vars.move < n.visible ? n.vars.move : n.visible, n.pagingCount = Math.ceil( (n.count - n.visible) / n.move + 1), n.last = n.pagingCount - 1, n.limit = 1 === n.pagingCount ? 0 : n.vars.itemWidth > n.w ? n.itemW * (n.count - 1) + t * (n.count - 1) : (n.itemW + t) * n.count - n.w - t) : (n.itemW = n.w, n.itemM = t, n.pagingCount = n.count, n.last = n.count - 1), n.computedW = n.itemW - n.boxPadding, n.computedM = n.itemM; }, n.update = function (e, t) { n.doMath(), v || (e < n.currentSlide ? n.currentSlide += 1 : e <= n.currentSlide && 0 !== e && (n.currentSlide -= 1), n.animatingTo = n.currentSlide), n.vars.controlNav && !n.manualControls && ('add' === t && !v || n.pagingCount > n.controlNav.length ? f.controlNav.update('add') : ('remove' === t && !v || n.pagingCount < n.controlNav.length) && (v && n.currentSlide > n.last && (n.currentSlide -= 1, n.animatingTo -= 1), f.controlNav.update( 'remove', n.last))), n.vars.directionNav && f.directionNav.update(); }, n.addSlide = function (e, t) { var a = $(e); n.count += 1, n.last = n.count - 1, d && u ? void 0 !== t ? n.slides.eq(n.count - t).after(a) : n.container.prepend(a) : void 0 !== t ? n.slides.eq(t). before(a) : n.container.append(a), n.update(t, 'add'), n.slides = $(n.vars.selector + ':not(.clone)', n), n.setup(), n.vars.added(n); }, n.removeSlide = function (e) { var t = isNaN(e) ? n.slides.index($(e)) : e; n.count -= 1, n.last = n.count - 1, isNaN(e) ? $(e, n.slides). remove() : d && u ? n.slides.eq(n.last).remove() : n.slides.eq( e).remove(), n.doMath(), n.update(t, 'remove'), n.slides = $( n.vars.selector + ':not(.clone)', n), n.setup(), n.vars.removed( n); }, f.init(); }, $(window). blur(function (t) {e = !1;}). focus(function (t) {e = !0;}), $.flexslider.defaults = { namespace: 'flex-', selector: '.slides > li', animation: 'fade', easing: 'swing', direction: 'horizontal', reverse: !1, animationLoop: !0, smoothHeight: !1, startAt: 0, slideshow: !0, slideshowSpeed: 7e3, animationSpeed: 600, initDelay: 0, randomize: !1, fadeFirstSlide: !0, thumbCaptions: !1, pauseOnAction: !0, pauseOnHover: !1, pauseInvisible: !0, useCSS: !0, touch: !0, video: !1, controlNav: !0, directionNav: !0, prevText: 'Previous', nextText: 'Next', keyboard: !0, multipleKeyboard: !1, mousewheel: !1, pausePlay: !1, pauseText: 'Pause', playText: 'Play', controlsContainer: '', manualControls: '', customDirectionNav: '', sync: '', asNavFor: '', itemWidth: 0, itemMargin: 0, minItems: 1, maxItems: 0, move: 0, allowOneSlide: !0, isFirefox: !1, start: function () {}, before: function () {}, after: function () {}, end: function () {}, added: function () {}, removed: function () {}, init: function () {}, rtl: !1, }, $.fn.flexslider = function (e) { if (void 0 === e && (e = {}), 'object' == typeof e) return this.each( function () { var t = $(this), a = e.selector ? e.selector : '.slides > li', n = t.find(a); 1 === n.length && !1 === e.allowOneSlide || 0 === n.length ? (n.fadeIn(400), e.start && e.start(t)) : void 0 === t.data('flexslider') && new $.flexslider(this, e); }); var t = $(this).data('flexslider'); switch (e) { case'play': t.play(); break; case'pause': t.pause(); break; case'stop': t.stop(); break; case'next': t.flexAnimate(t.getTarget('next'), !0); break; case'prev': case'previous': t.flexAnimate(t.getTarget('prev'), !0); break; default: 'number' == typeof e && t.flexAnimate(e, !0); } }; }(jQuery); window.SEMICOLON_flexSliderInit = function ($flexSliderEl) { $flexSliderEl = $flexSliderEl.filter(':not(.customjs)'); if ($flexSliderEl.length < 1) { return true; } $flexSliderEl.each(function () { let element = $(this), elLazy = element.find('.lazy'), elAnimation = element.attr('data-animation') || 'slide', elEasing = element.attr('data-easing') || 'swing', elDirection = element.attr('data-direction') || 'horizontal', elReverse = element.attr('data-reverse'), elSlideshow = element.attr('data-slideshow'), elPause = element.attr('data-pause') || 5000, elSpeed = element.attr('data-speed') || 600, elVideo = element.attr('data-video'), elPagi = element.attr('data-pagi'), elArrows = element.attr('data-arrows'), elArrowLeft = element.attr('data-arrow-left') || 'icon-angle-left', elArrowRight = element.attr('data-arrow-right') || 'icon-angle-right', elThumbs = element.attr('data-thumbs'), elHover = element.attr('data-hover'), elSheight = element.attr('data-smooth-height'), elTouch = element.attr('data-touch'), elUseCSS = false; if (elEasing == 'swing') { elEasing = 'swing'; elUseCSS = true; } if (elReverse == 'true') { elReverse = true; } else { elReverse = false; } if (!elSlideshow) { elSlideshow = true; } else { elSlideshow = false; } if (!elVideo) { elVideo = false; } if (elSheight == 'false') { elSheight = false; } else { elSheight = true; } if (elDirection == 'vertical') { elSheight = false; } if (elPagi == 'false') { elPagi = false; } else { elPagi = true; } if (elThumbs == 'true') { elPagi = 'thumbnails'; } else { elPagi = elPagi; } if (elArrows == 'false') { elArrows = false; } else { elArrows = true; } if (elHover == 'false') { elHover = false; } else { elHover = true; } if (elTouch == 'false') { elTouch = false; } else { elTouch = true; } element.find('.flexslider').flexslider({ selector: '.slider-wrap > .slide', animation: elAnimation, easing: elEasing, direction: elDirection, reverse: elReverse, slideshow: elSlideshow, slideshowSpeed: Number(elPause), animationSpeed: Number(elSpeed), pauseOnHover: elHover, video: elVideo, controlNav: elPagi, directionNav: elArrows, smoothHeight: elSheight, useCSS: elUseCSS, touch: elTouch, start: function (slider) { SEMICOLON.widget.animations(); SEMICOLON.initialize.lightbox({ 'parent': element }); $('.flex-prev').html('<i class="' + elArrowLeft + '"></i>'); $('.flex-next').html('<i class="' + elArrowRight + '"></i>'); setTimeout(function () { if (slider.parents( '.grid-container.has-init-isotope').length > 0) { slider.parents('.grid-container.has-init-isotope'). isotope('layout'); } }, 1200); if (typeof skrollrInstance !== 'undefined') { skrollrInstance.refresh(); } }, after: function (slider) { if (slider.parents('.grid-container.has-init-isotope').length > 0) { slider.parents('.grid-container.has-init-isotope'). isotope('layout'); } $('.menu-item:visible').find('.flexslider .slide').resize(); }, }); $(window).on('lazyLoadLoaded', function () { if (elLazy.length == element.find('.lazy.lazy-loaded').length) { lazyLoadInstance.update(); setTimeout(function () { element.find('.flexslider').resize(); }, 500); } }); }); }; /*! * Original copyright: * * Copyright (C) 2009 Joel Sutherland * Licenced under the MIT license * http://www.newmediacampaigns.com/page/jquery-flickr-plugin * * Available tags for templates: * title, link, date_taken, description, published, author, author_id, tags, image* */ !function (a) { a.fn.jflickrfeed = function (b, c) { b = a.extend(!0, { flickrbase: 'https://api.flickr.com/services/feeds/', feedapi: 'photos_public.gne', limit: 20, qstrings: { lang: 'en-us', format: 'json', jsoncallback: '?' }, cleanDescription: !0, useTemplate: !0, itemTemplate: '', itemCallback: function () {}, }, b); var d, e = b.flickrbase + b.feedapi + '?', f = !0; for (d in b.qstrings) f || (e += '&'), e += d + '=' + b.qstrings[d], f = !1; return a(this).each(function () { var d = a(this), f = this; a.getJSON(e, function (e) { a.each(e.items, function (a, c) { var e, g, h, i; if (a < b.limit) { if (b.cleanDescription && (e = /<p>(.*?)<\/p>/g, g = c.description, e.test(g) && (c.description = g.match(e)[2], void 0 !== c.description && (c.description = c.description.replace('<p>', ''). replace('</p>', '')))), c.image_s = c.media.m.replace('_m', '_s'), c.image_t = c.media.m.replace('_m', '_t'), c.image_m = c.media.m.replace('_m', '_m'), c.image = c.media.m.replace('_m', ''), c.image_b = c.media.m.replace('_m', '_b'), c.image_q = c.media.m.replace('_m', '_q'), delete c.media, b.useTemplate) { i = b.itemTemplate; for (h in c) e = new RegExp('{{' + h + '}}', 'g'), i = i.replace(e, c[h]); d.append(i); } b.itemCallback.call(f, c); } }), a.isFunction(c) && c.call(f, e); }); }); }; }(jQuery); window.SEMICOLON_flickrFeedInit = function ($flickrFeedEl) { $flickrFeedEl = $flickrFeedEl.filter(':not(.customjs)'); if ($flickrFeedEl.length < 1) { return true; } $flickrFeedEl.each(function () { let element = $(this), elID = element.attr('data-id'), elCount = element.attr('data-count') || 9, elType = element.attr('data-type'), elTypeGet = 'photos_public.gne'; if (elType == 'group') { elTypeGet = 'groups_pool.gne'; } element.jflickrfeed({ feedapi: elTypeGet, limit: Number(elCount), qstrings: { id: elID, }, itemTemplate: '<a class="grid-item" href="{{image_b}}" title="{{title}}" data-lightbox="gallery-item">' + '<img src="{{image_s}}" alt="{{title}}" />' + '</a>', }, function (data) { SEMICOLON.initialize.lightbox({ 'parent': element }); }); }); }; /** * jQuery gMap - Google Maps API V3 * * @license MIT License; https://www.opensource.org/licenses/mit-license.php * @url https://github.com/marioestrada/jQuery-gMap * @author Mario Estrada <[email protected]> based on original plugin by Cedric Kastner <[email protected]> * @version 2.2 */ /* global google */ !function (e) { e.fn.gMap = function (o, a) { switch (o) { case'addMarker': return e(this). trigger('gMap.addMarker', [a.latitude, a.longitude, a.content, a.icon, a.popup]); case'centerAt': return e(this). trigger('gMap.centerAt', [a.latitude, a.longitude, a.zoom]); case'clearMarkers': return e(this).trigger('gMap.clearMarkers'); } var n = e.extend({}, e.fn.gMap.defaults, o); return this.each(function () { var o = new google.maps.Map(this); e(this).data('gMap.reference', o); var a = new google.maps.Geocoder; n.address ? a.geocode({ address: n.address }, function (e) { e && e.length && o.setCenter(e[0].geometry.location); }) : n.latitude && n.longitude ? o.setCenter( new google.maps.LatLng(n.latitude, n.longitude)) : e.isArray( n.markers) && n.markers.length > 0 ? n.markers[0].address ? a.geocode({ address: n.markers[0].address }, function (e) { e && e.length > 0 && o.setCenter(e[0].geometry.location); }) : o.setCenter(new google.maps.LatLng(n.markers[0].latitude, n.markers[0].longitude)) : o.setCenter( new google.maps.LatLng(34.885931, 9.84375)), o.setZoom( n.zoom), o.setMapTypeId(google.maps.MapTypeId[n.maptype]); var s = { scrollwheel: n.scrollwheel, disableDoubleClickZoom: !n.doubleclickzoom, }; n.controls === !1 ? e.extend(s, { disableDefaultUI: !0 }) : 0 !== n.controls.length && e.extend(s, n.controls, { disableDefaultUI: !0 }), o.setOptions( s), o.setOptions({ styles: n.styles }); var t, r, i = new google.maps.Marker; t = new google.maps.MarkerImage( n.icon.image), t.size = new google.maps.Size(n.icon.iconsize[0], n.icon.iconsize[1]), t.anchor = new google.maps.Point( n.icon.iconanchor[0], n.icon.iconanchor[1]), i.setIcon( t), n.icon.shadow && (r = new google.maps.MarkerImage( n.icon.shadow), r.size = new google.maps.Size( n.icon.shadowsize[0], n.icon.shadowsize[1]), r.anchor = new google.maps.Point( n.icon.shadowanchor[0], n.icon.shadowanchor[1]), i.setShadow( r)), e(this). bind('gMap.centerAt', function (e, a, n, s) { s && o.setZoom(s), o.panTo( new google.maps.LatLng(parseFloat(a), parseFloat(n))); }); var g = []; e(this). bind('gMap.clearMarkers', function () {for (; g[0];) g.pop().setMap(null);}); var l; e(this). bind('gMap.addMarker', function (e, a, s, t, r, d) { var c, p, m = new google.maps.LatLng(parseFloat(a), parseFloat(s)), h = new google.maps.Marker({ position: m }); if (r ? (c = new google.maps.MarkerImage( r.image), c.size = new google.maps.Size( r.iconsize[0], r.iconsize[1]), c.anchor = new google.maps.Point( r.iconanchor[0], r.iconanchor[1]), h.setIcon( c), r.shadow && (p = new google.maps.MarkerImage( r.shadow), p.size = new google.maps.Size( r.shadowsize[0], r.shadowsize[1]), p.anchor = new google.maps.Point( r.shadowanchor[0], r.shadowanchor[1]), i.setShadow( p))) : (h.setIcon(i.getIcon()), h.setShadow( i.getShadow())), t) { '_latlng' === t && (t = a + ', ' + s); var w = new google.maps.InfoWindow( { content: n.html_prepend + t + n.html_append }); google.maps.event.addListener(h, 'click', function () { l && l.close(), w.open(o, h), l = w; }), d && google.maps.event.addListenerOnce(o, 'tilesloaded', function () {w.open(o, h);}); } h.setMap(o), g.push(h); }); for (var d, c = this, p = function (o) { return function (a) { a && a.length > 0 && e(c). trigger('gMap.addMarker', [ a[0].geometry.location.lat(), a[0].geometry.location.lng(), o.html, o.icon, o.popup]); }; }, m = 0; m < n.markers.length; m++) d = n.markers[m], d.address ? ('_address' === d.html && (d.html = d.address), a.geocode( { address: d.address }, p(d))) : e(this). trigger('gMap.addMarker', [d.latitude, d.longitude, d.html, d.icon, d.popup]); }); }, e.fn.gMap.defaults = { address: '', latitude: 0, longitude: 0, zoom: 1, markers: [], controls: [], styles: [], scrollwheel: !1, doubleclickzoom: !0, maptype: 'ROADMAP', html_prepend: '<div class="gmap_marker">', html_append: '</div>', icon: { image: 'https://www.google.com/mapfiles/marker.png', shadow: 'https://www.google.com/mapfiles/shadow50.png', iconsize: [20, 34], shadowsize: [37, 34], iconanchor: [9, 34], shadowanchor: [6, 34], }, }; }(jQuery); window.SEMICOLON_gmapInit = function ($gmapEl) { $gmapEl = $gmapEl.filter(':not(.customjs)'); if ($gmapEl.length < 1) { return true; } $gmapEl.each(function () { let element = $(this), elLat = element.attr('data-latitude'), elLon = element.attr('data-longitude'), elAdd = element.attr('data-address'), elCon = element.attr('data-content'), elScroll = element.attr('data-scrollwheel') || true, elType = element.attr('data-maptype') || 'ROADMAP', elZoom = element.attr('data-zoom') || 12, elStyles = element.attr('data-styles'), elMarkers = element.attr('data-markers'), elIcon = element.attr('data-icon'), elConPan = element.attr('data-control-pan') || false, elConZoom = element.attr('data-control-zoom') || false, elConMapT = element.attr('data-control-maptype') || false, elConScale = element.attr('data-control-scale') || false, elConStreetV = element.attr('data-control-streetview') || false, elConOverview = element.attr('data-control-overview') || false; if (elAdd) { elLat = elLon = false; } else { if (!elLat && !elLon) { console.log('Google Map co-ordinates not entered.'); return true; } } if (elStyles) { elStyles = JSON.parse(elStyles); } if (elScroll == 'false') { elScroll = false; } if (elConPan == 'true') { elConPan = true; } if (elConZoom == 'true') { elConZoom = true; } if (elConMapT == 'true') { elConMapT = true; } if (elConScale == 'true') { elConScale = true; } if (elConStreetV == 'true') { elConStreetV = true; } if (elConOverview == 'true') { elConOverview = true; } if (elMarkers) { elMarkers = Function('return ' + elMarkers)(); } else { if (elAdd) { elMarkers = [ { address: elAdd, html: elCon ? elCon : elAdd, }, ]; } else { elMarkers = [ { latitude: elLat, longitude: elLon, html: elCon ? elCon : false, }, ]; } } if (elIcon) { elIcon = Function('return ' + elIcon)(); } else { elIcon = { image: 'https://www.google.com/mapfiles/marker.png', shadow: 'https://www.google.com/mapfiles/shadow50.png', iconsize: [20, 34], shadowsize: [37, 34], iconanchor: [9, 34], shadowanchor: [19, 34], }; } element.gMap({ controls: { panControl: elConPan, zoomControl: elConZoom, mapTypeControl: elConMapT, scaleControl: elConScale, streetViewControl: elConStreetV, overviewMapControl: elConOverview, }, scrollwheel: elScroll, maptype: elType, markers: elMarkers, icon: elIcon, latitude: elLat, longitude: elLon, address: elAdd, zoom: Number(elZoom), styles: elStyles, }); }); }; window.scwGridFilterPlugin = window.scwGridFilterPlugin || {}; window.SEMICOLON_gridFilterInit = function ($gridFilterEl) { $gridFilterEl = $gridFilterEl.filter(':not(.customjs)'); if ($gridFilterEl.length < 1) { return true; } $gridFilterEl.each(function () { let element = $(this), elCon = element.attr('data-container'), elActClass = element.attr('data-active-class'), elDefFilter = element.attr('data-default'); if (!elActClass) { elActClass = 'activeFilter'; } element.find('a').off('click').on('click', function () { element.find('li').removeClass(elActClass); $(this).parent('li').addClass(elActClass); let selector = $(this).attr('data-filter'); $(elCon).isotope({ filter: selector }); return false; }); if (elDefFilter) { element.find('li').removeClass(elActClass); element.find('[data-filter="' + elDefFilter + '"]'). parent('li'). addClass(elActClass); $(elCon).isotope({ filter: elDefFilter }); } }); $('.grid-shuffle').off('click').on('click', function () { let element = $(this), elCon = element.attr('data-container'); $(elCon).isotope('shuffle'); }); }; window.scwHoverAnimationPlugin = window.scwHoverAnimationPlugin || {}; window.SEMICOLON_hoverAnimationInit = function ($hoverAnimationEl) { $hoverAnimationEl = $hoverAnimationEl.filter(':not(.customjs)'); if ($hoverAnimationEl.length < 1) { return true; } $hoverAnimationEl.each(function () { let element = $(this), elAnimate = element.attr('data-hover-animate'), elAnimateOut = element.attr('data-hover-animate-out') || 'fadeOut', elSpeed = element.attr('data-hover-speed') || 600, elDelay = element.attr('data-hover-delay'), elParent = element.attr('data-hover-parent'), elReset = element.attr('data-hover-reset') || 'false'; element.addClass('not-animated'); if (!elParent) { if (element.parents('.bg-overlay').length > 0) { elParent = element.parents('.bg-overlay'); } else { elParent = element; } } else { if (elParent == 'self') { elParent = element; } else { elParent = element.parents(elParent); } } let elDelayT = 0; if (elDelay) { elDelayT = Number(elDelay); } if (elSpeed) { element.css({ 'animation-duration': Number(elSpeed) + 'ms' }); } let t, x; elParent.hover(function () { clearTimeout(x); t = setTimeout(function () { element.addClass('not-animated'). removeClass(elAnimateOut + ' not-animated'). addClass(elAnimate + ' animated'); }, elDelayT); }, function () { element.addClass('not-animated'). removeClass(elAnimate + ' not-animated'). addClass(elAnimateOut + ' animated'); if (elReset == 'true') { x = setTimeout(function () { element.removeClass(elAnimateOut + ' animated'). addClass('not-animated'); }, Number(elSpeed)); } clearTimeout(t); }); }); }; window.scwHtml5VideoPlugin = window.scwHtml5VideoPlugin || {}; window.SEMICOLON_html5VideoInit = function ($html5Video) { if ($html5Video.length < 1) { return true; } $html5Video.each(function () { let element = $(this), elVideo = element.find('video'), divWidth = element.outerWidth(), divHeight = element.outerHeight(), elWidth = ((16 * divHeight) / 9), elHeight = divHeight; if (elWidth < divWidth) { elWidth = divWidth; elHeight = ((9 * divWidth) / 16); } elVideo.css({ width: elWidth + 'px', height: elHeight + 'px' }); if (elHeight > divHeight) { elVideo.css( { 'left': '', 'top': -((elHeight - divHeight) / 2) + 'px' }); } if (elWidth > divWidth) { elVideo.css( { 'top': '', 'left': -((elWidth - divWidth) / 2) + 'px' }); } if (SEMICOLON.isMobile.any() && !element.hasClass('no-placeholder')) { let placeholderImg = elVideo.attr('poster'); if (placeholderImg != '') { element.append( '<div class="video-placeholder" style="background-image: url(' + placeholderImg + ');"></div>'); } elVideo.hide(); } }); }; /*! * imagesLoaded PACKAGED v4.1.4 * JavaScript is all like "You images are done yet or what?" * MIT License */ !function (e, t) { 'function' == typeof define && define.amd ? define('ev-emitter/ev-emitter', t) : 'object' == typeof module && module.exports ? module.exports = t() : e.EvEmitter = t(); }('undefined' != typeof window ? window : this, function () { function e () {} var t = e.prototype; return t.on = function (e, t) { if (e && t) { var i = this._events = this._events || {}, n = i[e] = i[e] || []; return n.indexOf(t) == -1 && n.push(t), this; } }, t.once = function (e, t) { if (e && t) { this.on(e, t); var i = this._onceEvents = this._onceEvents || {}, n = i[e] = i[e] || {}; return n[t] = !0, this; } }, t.off = function (e, t) { var i = this._events && this._events[e]; if (i && i.length) { var n = i.indexOf(t); return n != -1 && i.splice(n, 1), this; } }, t.emitEvent = function (e, t) { var i = this._events && this._events[e]; if (i && i.length) { i = i.slice(0), t = t || []; for (var n = this._onceEvents && this._onceEvents[e], o = 0; o < i.length; o++) { var r = i[o], s = n && n[r]; s && (this.off(e, r), delete n[r]), r.apply(this, t); } return this; } }, t.allOff = function () {delete this._events, delete this._onceEvents;}, e; }), function (e, t) { 'use strict'; 'function' == typeof define && define.amd ? define( ['ev-emitter/ev-emitter'], function (i) {return t(e, i);}) : 'object' == typeof module && module.exports ? module.exports = t(e, require('ev-emitter')) : e.imagesLoaded = t(e, e.EvEmitter); }('undefined' != typeof window ? window : this, function (e, t) { function i (e, t) { for (var i in t) e[i] = t[i]; return e; } function n (e) { if (Array.isArray(e)) return e; var t = 'object' == typeof e && 'number' == typeof e.length; return t ? d.call(e) : [e]; } function o (e, t, r) { if (!(this instanceof o)) return new o(e, t, r); var s = e; return 'string' == typeof e && (s = document.querySelectorAll(e)), s ? (this.elements = n(s), this.options = i({}, this.options), 'function' == typeof t ? r = t : i(this.options, t), r && this.on('always', r), this.getImages(), h && (this.jqDeferred = new h.Deferred), void setTimeout( this.check.bind(this))) : void a.error('Bad element for imagesLoaded ' + (s || e)); } function r (e) {this.img = e;} function s (e, t) {this.url = e, this.element = t, this.img = new Image;} var h = e.jQuery, a = e.console, d = Array.prototype.slice; o.prototype = Object.create( t.prototype), o.prototype.options = {}, o.prototype.getImages = function () { this.images = [], this.elements.forEach(this.addElementImages, this); }, o.prototype.addElementImages = function (e) { 'IMG' == e.nodeName && this.addImage(e), this.options.background === !0 && this.addElementBackgroundImages(e); var t = e.nodeType; if (t && u[t]) { for (var i = e.querySelectorAll('img'), n = 0; n < i.length; n++) { var o = i[n]; this.addImage(o); } if ('string' == typeof this.options.background) { var r = e.querySelectorAll(this.options.background); for (n = 0; n < r.length; n++) { var s = r[n]; this.addElementBackgroundImages(s); } } } }; var u = { 1: !0, 9: !0, 11: !0 }; return o.prototype.addElementBackgroundImages = function (e) { var t = getComputedStyle(e); if (t) for (var i = /url\((['"])?(.*?)\1\)/gi, n = i.exec( t.backgroundImage); null !== n;) { var o = n && n[2]; o && this.addBackground(o, e), n = i.exec(t.backgroundImage); } }, o.prototype.addImage = function (e) { var t = new r(e); this.images.push(t); }, o.prototype.addBackground = function (e, t) { var i = new s(e, t); this.images.push(i); }, o.prototype.check = function () { function e (e, i, n) { setTimeout(function () {t.progress(e, i, n);}); } var t = this; return this.progressedCount = 0, this.hasAnyBroken = !1, this.images.length ? void this.images.forEach( function (t) {t.once('progress', e), t.check();}) : void this.complete(); }, o.prototype.progress = function ( e, t, i) { this.progressedCount++, this.hasAnyBroken = this.hasAnyBroken || !e.isLoaded, this.emitEvent('progress', [this, e, t]), this.jqDeferred && this.jqDeferred.notify && this.jqDeferred.notify(this, e), this.progressedCount == this.images.length && this.complete(), this.options.debug && a && a.log('progress: ' + i, e, t); }, o.prototype.complete = function () { var e = this.hasAnyBroken ? 'fail' : 'done'; if (this.isComplete = !0, this.emitEvent(e, [this]), this.emitEvent( 'always', [this]), this.jqDeferred) { var t = this.hasAnyBroken ? 'reject' : 'resolve'; this.jqDeferred[t](this); } }, r.prototype = Object.create( t.prototype), r.prototype.check = function () { var e = this.getIsImageComplete(); return e ? void this.confirm(0 !== this.img.naturalWidth, 'naturalWidth') : (this.proxyImage = new Image, this.proxyImage.addEventListener( 'load', this), this.proxyImage.addEventListener('error', this), this.img.addEventListener('load', this), this.img.addEventListener('error', this), void (this.proxyImage.src = this.img.src)); }, r.prototype.getIsImageComplete = function () { return this.img.complete && this.img.naturalWidth; }, r.prototype.confirm = function (e, t) { this.isLoaded = e, this.emitEvent('progress', [this, this.img, t]); }, r.prototype.handleEvent = function (e) { var t = 'on' + e.type; this[t] && this[t](e); }, r.prototype.onload = function () { this.confirm(!0, 'onload'), this.unbindEvents(); }, r.prototype.onerror = function () { this.confirm(!1, 'onerror'), this.unbindEvents(); }, r.prototype.unbindEvents = function () { this.proxyImage.removeEventListener('load', this), this.proxyImage.removeEventListener('error', this), this.img.removeEventListener('load', this), this.img.removeEventListener('error', this); }, s.prototype = Object.create( r.prototype), s.prototype.check = function () { this.img.addEventListener('load', this), this.img.addEventListener( 'error', this), this.img.src = this.url; var e = this.getIsImageComplete(); e && (this.confirm(0 !== this.img.naturalWidth, 'naturalWidth'), this.unbindEvents()); }, s.prototype.unbindEvents = function () { this.img.removeEventListener('load', this), this.img.removeEventListener('error', this); }, s.prototype.confirm = function (e, t) { this.isLoaded = e, this.emitEvent('progress', [this, this.element, t]); }, o.makeJQueryPlugin = function (t) { t = t || e.jQuery, t && (h = t, h.fn.imagesLoaded = function (e, t) { var i = new o(this, e, t); return i.jqDeferred.promise(h(this)); }); }, o.makeJQueryPlugin(), o; }); window.scwInstagramPlugin = window.scwInstagramPlugin || {}; window.SEMICOLON_instagramPhotosInit = function ($instagramPhotosEl) { if ($instagramPhotosEl.length < 1) { return true; } $instagramPhotosEl.each(function () { let element = $(this), elLimit = element.attr('data-count') || 12, elLoader = element.attr('data-loader') || 'include/instagram/instagram.php', elFetch = element.attr('data-fetch-message') || 'Fetching Photos from Instagram...'; if (Number(elLimit) > 12) { elLimit = 12; } SEMICOLON_getInstagramPhotos(element, elLoader, elLimit, elFetch); }); }; window.SEMICOLON_getInstagramPhotos = function ( element, loader, limit, fetchAlert) { let newimages = ''; element.after( '<div class="alert alert-warning instagram-widget-alert text-center"><div class="spinner-grow spinner-grow-sm mr-2" role="status"><span class="visually-hidden">Loading...</span></div> ' + fetchAlert + '</div>'); $.getJSON(loader, function (images) { if (images.length > 0) { element.parents().find('.instagram-widget-alert').remove(); let html = ''; for (let i = 0; i < limit; i++) { if (i === limit) continue; let photo = images[i], thumb = photo.media_url; if (photo.media_type === 'VIDEO') { thumb = photo.thumbnail_url; } element.append('<a class="grid-item" href="' + photo.permalink + '" target="_blank"><img src="' + thumb + '" alt="Image"></a>'); // $.getJSON( 'https://graph.instagram.com/' + images[i].id + '?fields=media_url,permalink,media_type,thumbnail_url&access_token=' + accessToken, function( photo ){ // }); } } element.removeClass('customjs'); setTimeout(function () { SEMICOLON.widget.gridInit(); SEMICOLON.widget.masonryThumbs(); }, 500); }); }; /*! * Isotope PACKAGED v3.0.6 * * Licensed GPLv3 for open source use * or Isotope Commercial License for commercial use * * https://isotope.metafizzy.co * Copyright 2010-2018 Metafizzy */ !function (t, e) { 'function' == typeof define && define.amd ? define('jquery-bridget/jquery-bridget', ['jquery'], function (i) {return e(t, i);}) : 'object' == typeof module && module.exports ? module.exports = e(t, require('jquery')) : t.jQueryBridget = e(t, t.jQuery); }(window, function (t, e) { 'use strict'; function i (i, s, a) { function u (t, e, o) { var n, s = '$().' + i + '("' + e + '")'; return t.each(function (t, u) { var h = a.data(u, i); if (!h) return void r( i + ' not initialized. Cannot call methods, i.e. ' + s); var d = h[e]; if (!d || '_' == e.charAt(0)) return void r( s + ' is not a valid method'); var l = d.apply(h, o); n = void 0 === n ? l : n; }), void 0 !== n ? n : t; } function h (t, e) { t.each(function (t, o) { var n = a.data(o, i); n ? (n.option(e), n._init()) : (n = new s(o, e), a.data(o, i, n)); }); } a = a || e || t.jQuery, a && (s.prototype.option || (s.prototype.option = function (t) { a.isPlainObject(t) && (this.options = a.extend(!0, this.options, t)); }), a.fn[i] = function (t) { if ('string' == typeof t) { var e = n.call(arguments, 1); return u(this, t, e); } return h(this, t), this; }, o(a)); } function o (t) {!t || t && t.bridget || (t.bridget = i);} var n = Array.prototype.slice, s = t.console, r = 'undefined' == typeof s ? function () {} : function (t) { s.error(t); }; return o(e || t.jQuery), i; }), function (t, e) { 'function' == typeof define && define.amd ? define('ev-emitter/ev-emitter', e) : 'object' == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e(); }('undefined' != typeof window ? window : this, function () { function t () {} var e = t.prototype; return e.on = function (t, e) { if (t && e) { var i = this._events = this._events || {}, o = i[t] = i[t] || []; return o.indexOf(e) == -1 && o.push(e), this; } }, e.once = function (t, e) { if (t && e) { this.on(t, e); var i = this._onceEvents = this._onceEvents || {}, o = i[t] = i[t] || {}; return o[e] = !0, this; } }, e.off = function (t, e) { var i = this._events && this._events[t]; if (i && i.length) { var o = i.indexOf(e); return o != -1 && i.splice(o, 1), this; } }, e.emitEvent = function (t, e) { var i = this._events && this._events[t]; if (i && i.length) { i = i.slice(0), e = e || []; for (var o = this._onceEvents && this._onceEvents[t], n = 0; n < i.length; n++) { var s = i[n], r = o && o[s]; r && (this.off(t, s), delete o[s]), s.apply(this, e); } return this; } }, e.allOff = function () {delete this._events, delete this._onceEvents;}, t; }), function (t, e) { 'function' == typeof define && define.amd ? define('get-size/get-size', e) : 'object' == typeof module && module.exports ? module.exports = e() : t.getSize = e(); }(window, function () { 'use strict'; function t (t) { var e = parseFloat(t), i = t.indexOf('%') == -1 && !isNaN(e); return i && e; } function e () {} function i () { for (var t = { width: 0, height: 0, innerWidth: 0, innerHeight: 0, outerWidth: 0, outerHeight: 0, }, e = 0; e < h; e++) { var i = u[e]; t[i] = 0; } return t; } function o (t) { var e = getComputedStyle(t); return e || a('Style returned ' + e + '. Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1'), e; } function n () { if (!d) { d = !0; var e = document.createElement('div'); e.style.width = '200px', e.style.padding = '1px 2px 3px 4px', e.style.borderStyle = 'solid', e.style.borderWidth = '1px 2px 3px 4px', e.style.boxSizing = 'border-box'; var i = document.body || document.documentElement; i.appendChild(e); var n = o(e); r = 200 == Math.round(t(n.width)), s.isBoxSizeOuter = r, i.removeChild(e); } } function s (e) { if (n(), 'string' == typeof e && (e = document.querySelector(e)), e && 'object' == typeof e && e.nodeType) { var s = o(e); if ('none' == s.display) return i(); var a = {}; a.width = e.offsetWidth, a.height = e.offsetHeight; for (var d = a.isBorderBox = 'border-box' == s.boxSizing, l = 0; l < h; l++) { var f = u[l], c = s[f], m = parseFloat(c); a[f] = isNaN(m) ? 0 : m; } var p = a.paddingLeft + a.paddingRight, y = a.paddingTop + a.paddingBottom, g = a.marginLeft + a.marginRight, v = a.marginTop + a.marginBottom, _ = a.borderLeftWidth + a.borderRightWidth, z = a.borderTopWidth + a.borderBottomWidth, I = d && r, x = t(s.width); x !== !1 && (a.width = x + (I ? 0 : p + _)); var S = t(s.height); return S !== !1 && (a.height = S + (I ? 0 : y + z)), a.innerWidth = a.width - (p + _), a.innerHeight = a.height - (y + z), a.outerWidth = a.width + g, a.outerHeight = a.height + v, a; } } var r, a = 'undefined' == typeof console ? e : function (t) { console.error(t); }, u = [ 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth', 'borderBottomWidth'], h = u.length, d = !1; return s; }), function (t, e) { 'use strict'; 'function' == typeof define && define.amd ? define( 'desandro-matches-selector/matches-selector', e) : 'object' == typeof module && module.exports ? module.exports = e() : t.matchesSelector = e(); }(window, function () { 'use strict'; var t = function () { var t = window.Element.prototype; if (t.matches) return 'matches'; if (t.matchesSelector) return 'matchesSelector'; for (var e = ['webkit', 'moz', 'ms', 'o'], i = 0; i < e.length; i++) { var o = e[i], n = o + 'MatchesSelector'; if (t[n]) return n; } }(); return function (e, i) {return e[t](i);}; }), function (t, e) { 'function' == typeof define && define.amd ? define('fizzy-ui-utils/utils', ['desandro-matches-selector/matches-selector'], function (i) {return e(t, i);}) : 'object' == typeof module && module.exports ? module.exports = e(t, require('desandro-matches-selector')) : t.fizzyUIUtils = e(t, t.matchesSelector); }(window, function (t, e) { var i = {}; i.extend = function (t, e) { for (var i in e) t[i] = e[i]; return t; }, i.modulo = function (t, e) {return (t % e + e) % e;}; var o = Array.prototype.slice; i.makeArray = function (t) { if (Array.isArray(t)) return t; if (null === t || void 0 === t) return []; var e = 'object' == typeof t && 'number' == typeof t.length; return e ? o.call(t) : [t]; }, i.removeFrom = function (t, e) { var i = t.indexOf(e); i != -1 && t.splice(i, 1); }, i.getParent = function (t, i) { for (; t.parentNode && t != document.body;) if (t = t.parentNode, e(t, i)) return t; }, i.getQueryElement = function (t) { return 'string' == typeof t ? document.querySelector(t) : t; }, i.handleEvent = function (t) { var e = 'on' + t.type; this[e] && this[e](t); }, i.filterFindElements = function (t, o) { t = i.makeArray(t); var n = []; return t.forEach(function (t) { if (t instanceof HTMLElement) { if (!o) return void n.push(t); e(t, o) && n.push(t); for (var i = t.querySelectorAll(o), s = 0; s < i.length; s++) n.push(i[s]); } }), n; }, i.debounceMethod = function (t, e, i) { i = i || 100; var o = t.prototype[e], n = e + 'Timeout'; t.prototype[e] = function () { var t = this[n]; clearTimeout(t); var e = arguments, s = this; this[n] = setTimeout(function () {o.apply(s, e), delete s[n];}, i); }; }, i.docReady = function (t) { var e = document.readyState; 'complete' == e || 'interactive' == e ? setTimeout(t) : document.addEventListener('DOMContentLoaded', t); }, i.toDashed = function (t) { return t.replace(/(.)([A-Z])/g, function (t, e, i) {return e + '-' + i;}).toLowerCase(); }; var n = t.console; return i.htmlInit = function (e, o) { i.docReady(function () { var s = i.toDashed(o), r = 'data-' + s, a = document.querySelectorAll('[' + r + ']'), u = document.querySelectorAll('.js-' + s), h = i.makeArray(a).concat(i.makeArray(u)), d = r + '-options', l = t.jQuery; h.forEach(function (t) { var i, s = t.getAttribute(r) || t.getAttribute(d); try {i = s && JSON.parse(s);} catch (a) { return void (n && n.error( 'Error parsing ' + r + ' on ' + t.className + ': ' + a)); } var u = new e(t, i); l && l.data(t, o, u); }); }); }, i; }), function (t, e) { 'function' == typeof define && define.amd ? define('outlayer/item', ['ev-emitter/ev-emitter', 'get-size/get-size'], e) : 'object' == typeof module && module.exports ? module.exports = e(require('ev-emitter'), require('get-size')) : (t.Outlayer = {}, t.Outlayer.Item = e(t.EvEmitter, t.getSize)); }(window, function (t, e) { 'use strict'; function i (t) { for (var e in t) return !1; return e = null, !0; } function o (t, e) { t && (this.element = t, this.layout = e, this.position = { x: 0, y: 0, }, this._create()); } function n (t) { return t.replace(/([A-Z])/g, function (t) {return '-' + t.toLowerCase();}); } var s = document.documentElement.style, r = 'string' == typeof s.transition ? 'transition' : 'WebkitTransition', a = 'string' == typeof s.transform ? 'transform' : 'WebkitTransform', u = { WebkitTransition: 'webkitTransitionEnd', transition: 'transitionend', }[r], h = { transform: a, transition: r, transitionDuration: r + 'Duration', transitionProperty: r + 'Property', transitionDelay: r + 'Delay', }, d = o.prototype = Object.create(t.prototype); d.constructor = o, d._create = function () { this._transn = { ingProperties: {}, clean: {}, onEnd: {}, }, this.css({ position: 'absolute' }); }, d.handleEvent = function (t) { var e = 'on' + t.type; this[e] && this[e](t); }, d.getSize = function () { this.size = e(this.element); }, d.css = function (t) { var e = this.element.style; for (var i in t) { var o = h[i] || i; e[o] = t[i]; } }, d.getPosition = function () { var t = getComputedStyle(this.element), e = this.layout._getOption('originLeft'), i = this.layout._getOption('originTop'), o = t[e ? 'left' : 'right'], n = t[i ? 'top' : 'bottom'], s = parseFloat(o), r = parseFloat(n), a = this.layout.size; o.indexOf('%') != -1 && (s = s / 100 * a.width), n.indexOf('%') != -1 && (r = r / 100 * a.height), s = isNaN(s) ? 0 : s, r = isNaN(r) ? 0 : r, s -= e ? a.paddingLeft : a.paddingRight, r -= i ? a.paddingTop : a.paddingBottom, this.position.x = s, this.position.y = r; }, d.layoutPosition = function () { var t = this.layout.size, e = {}, i = this.layout._getOption('originLeft'), o = this.layout._getOption('originTop'), n = i ? 'paddingLeft' : 'paddingRight', s = i ? 'left' : 'right', r = i ? 'right' : 'left', a = this.position.x + t[n]; e[s] = this.getXValue(a), e[r] = ''; var u = o ? 'paddingTop' : 'paddingBottom', h = o ? 'top' : 'bottom', d = o ? 'bottom' : 'top', l = this.position.y + t[u]; e[h] = this.getYValue(l), e[d] = '', this.css(e), this.emitEvent( 'layout', [this]); }, d.getXValue = function (t) { var e = this.layout._getOption('horizontal'); return this.layout.options.percentPosition && !e ? t / this.layout.size.width * 100 + '%' : t + 'px'; }, d.getYValue = function (t) { var e = this.layout._getOption('horizontal'); return this.layout.options.percentPosition && e ? t / this.layout.size.height * 100 + '%' : t + 'px'; }, d._transitionTo = function (t, e) { this.getPosition(); var i = this.position.x, o = this.position.y, n = t == this.position.x && e == this.position.y; if (this.setPosition(t, e), n && !this.isTransitioning) return void this.layoutPosition(); var s = t - i, r = e - o, a = {}; a.transform = this.getTranslate(s, r), this.transition({ to: a, onTransitionEnd: { transform: this.layoutPosition }, isCleaning: !0, }); }, d.getTranslate = function (t, e) { var i = this.layout._getOption('originLeft'), o = this.layout._getOption('originTop'); return t = i ? t : -t, e = o ? e : -e, 'translate3d(' + t + 'px, ' + e + 'px, 0)'; }, d.goTo = function (t, e) { this.setPosition(t, e), this.layoutPosition(); }, d.moveTo = d._transitionTo, d.setPosition = function ( t, e) { this.position.x = parseFloat(t), this.position.y = parseFloat(e); }, d._nonTransition = function (t) { this.css(t.to), t.isCleaning && this._removeStyles(t.to); for (var e in t.onTransitionEnd) t.onTransitionEnd[e].call(this); }, d.transition = function (t) { if (!parseFloat( this.layout.options.transitionDuration)) return void this._nonTransition( t); var e = this._transn; for (var i in t.onTransitionEnd) e.onEnd[i] = t.onTransitionEnd[i]; for (i in t.to) e.ingProperties[i] = !0, t.isCleaning && (e.clean[i] = !0); if (t.from) { this.css(t.from); var o = this.element.offsetHeight; o = null; } this.enableTransition(t.to), this.css(t.to), this.isTransitioning = !0; }; var l = 'opacity,' + n(a); d.enableTransition = function () { if (!this.isTransitioning) { var t = this.layout.options.transitionDuration; t = 'number' == typeof t ? t + 'ms' : t, this.css({ transitionProperty: l, transitionDuration: t, transitionDelay: this.staggerDelay || 0, }), this.element.addEventListener(u, this, !1); } }, d.onwebkitTransitionEnd = function (t) { this.ontransitionend(t); }, d.onotransitionend = function (t) {this.ontransitionend(t);}; var f = { '-webkit-transform': 'transform' }; d.ontransitionend = function (t) { if (t.target === this.element) { var e = this._transn, o = f[t.propertyName] || t.propertyName; if (delete e.ingProperties[o], i(e.ingProperties) && this.disableTransition(), o in e.clean && (this.element.style[t.propertyName] = '', delete e.clean[o]), o in e.onEnd) { var n = e.onEnd[o]; n.call(this), delete e.onEnd[o]; } this.emitEvent('transitionEnd', [this]); } }, d.disableTransition = function () { this.removeTransitionStyles(), this.element.removeEventListener(u, this, !1), this.isTransitioning = !1; }, d._removeStyles = function (t) { var e = {}; for (var i in t) e[i] = ''; this.css(e); }; var c = { transitionProperty: '', transitionDuration: '', transitionDelay: '', }; return d.removeTransitionStyles = function () { this.css(c); }, d.stagger = function (t) { t = isNaN(t) ? 0 : t, this.staggerDelay = t + 'ms'; }, d.removeElem = function () { this.element.parentNode.removeChild(this.element), this.css( { display: '' }), this.emitEvent('remove', [this]); }, d.remove = function () { return r && parseFloat(this.layout.options.transitionDuration) ? (this.once('transitionEnd', function () {this.removeElem();}), void this.hide()) : void this.removeElem(); }, d.reveal = function () { delete this.isHidden, this.css({ display: '' }); var t = this.layout.options, e = {}, i = this.getHideRevealTransitionEndProperty('visibleStyle'); e[i] = this.onRevealTransitionEnd, this.transition({ from: t.hiddenStyle, to: t.visibleStyle, isCleaning: !0, onTransitionEnd: e, }); }, d.onRevealTransitionEnd = function () { this.isHidden || this.emitEvent('reveal'); }, d.getHideRevealTransitionEndProperty = function (t) { var e = this.layout.options[t]; if (e.opacity) return 'opacity'; for (var i in e) return i; }, d.hide = function () { this.isHidden = !0, this.css({ display: '' }); var t = this.layout.options, e = {}, i = this.getHideRevealTransitionEndProperty('hiddenStyle'); e[i] = this.onHideTransitionEnd, this.transition({ from: t.visibleStyle, to: t.hiddenStyle, isCleaning: !0, onTransitionEnd: e, }); }, d.onHideTransitionEnd = function () { this.isHidden && (this.css({ display: 'none' }), this.emitEvent('hide')); }, d.destroy = function () { this.css({ position: '', left: '', right: '', top: '', bottom: '', transition: '', transform: '', }); }, o; }), function (t, e) { 'use strict'; 'function' == typeof define && define.amd ? define('outlayer/outlayer', [ 'ev-emitter/ev-emitter', 'get-size/get-size', 'fizzy-ui-utils/utils', './item'], function (i, o, n, s) {return e(t, i, o, n, s);}) : 'object' == typeof module && module.exports ? module.exports = e(t, require('ev-emitter'), require('get-size'), require('fizzy-ui-utils'), require('./item')) : t.Outlayer = e(t, t.EvEmitter, t.getSize, t.fizzyUIUtils, t.Outlayer.Item); }(window, function (t, e, i, o, n) { 'use strict'; function s (t, e) { var i = o.getQueryElement(t); if (!i) return void (u && u.error( 'Bad element for ' + this.constructor.namespace + ': ' + (i || t))); this.element = i, h && (this.$element = h(this.element)), this.options = o.extend({}, this.constructor.defaults), this.option(e); var n = ++l; this.element.outlayerGUID = n, f[n] = this, this._create(); var s = this._getOption('initLayout'); s && this.layout(); } function r (t) { function e () {t.apply(this, arguments);} return e.prototype = Object.create( t.prototype), e.prototype.constructor = e, e; } function a (t) { if ('number' == typeof t) return t; var e = t.match(/(^\d*\.?\d*)(\w*)/), i = e && e[1], o = e && e[2]; if (!i.length) return 0; i = parseFloat(i); var n = m[o] || 1; return i * n; } var u = t.console, h = t.jQuery, d = function () {}, l = 0, f = {}; s.namespace = 'outlayer', s.Item = n, s.defaults = { containerStyle: { position: 'relative' }, initLayout: !0, originLeft: !0, originTop: !0, resize: !0, resizeContainer: !0, transitionDuration: '0.4s', hiddenStyle: { opacity: 0, transform: 'scale(0.001)' }, visibleStyle: { opacity: 1, transform: 'scale(1)' }, }; var c = s.prototype; o.extend(c, e.prototype), c.option = function (t) { o.extend(this.options, t); }, c._getOption = function (t) { var e = this.constructor.compatOptions[t]; return e && void 0 !== this.options[e] ? this.options[e] : this.options[t]; }, s.compatOptions = { initLayout: 'isInitLayout', horizontal: 'isHorizontal', layoutInstant: 'isLayoutInstant', originLeft: 'isOriginLeft', originTop: 'isOriginTop', resize: 'isResizeBound', resizeContainer: 'isResizingContainer', }, c._create = function () { this.reloadItems(), this.stamps = [], this.stamp( this.options.stamp), o.extend(this.element.style, this.options.containerStyle); var t = this._getOption('resize'); t && this.bindResize(); }, c.reloadItems = function () { this.items = this._itemize(this.element.children); }, c._itemize = function (t) { for (var e = this._filterFindItemElements( t), i = this.constructor.Item, o = [], n = 0; n < e.length; n++) { var s = e[n], r = new i(s, this); o.push(r); } return o; }, c._filterFindItemElements = function (t) { return o.filterFindElements(t, this.options.itemSelector); }, c.getItemElements = function () { return this.items.map(function (t) {return t.element;}); }, c.layout = function () { this._resetLayout(), this._manageStamps(); var t = this._getOption('layoutInstant'), e = void 0 !== t ? t : !this._isLayoutInited; this.layoutItems(this.items, e), this._isLayoutInited = !0; }, c._init = c.layout, c._resetLayout = function () {this.getSize();}, c.getSize = function () { this.size = i(this.element); }, c._getMeasurement = function (t, e) { var o, n = this.options[t]; n ? ('string' == typeof n ? o = this.element.querySelector(n) : n instanceof HTMLElement && (o = n), this[t] = o ? i(o)[e] : n) : this[t] = 0; }, c.layoutItems = function (t, e) { t = this._getItemsForLayout(t), this._layoutItems(t, e), this._postLayout(); }, c._getItemsForLayout = function (t) { return t.filter(function (t) {return !t.isIgnored;}); }, c._layoutItems = function (t, e) { if (this._emitCompleteOnItems('layout', t), t && t.length) { var i = []; t.forEach(function (t) { var o = this._getItemLayoutPosition(t); o.item = t, o.isInstant = e || t.isLayoutInstant, i.push(o); }, this), this._processLayoutQueue(i); } }, c._getItemLayoutPosition = function () { return { x: 0, y: 0, }; }, c._processLayoutQueue = function (t) { this.updateStagger(), t.forEach(function (t, e) { this._positionItem(t.item, t.x, t.y, t.isInstant, e); }, this); }, c.updateStagger = function () { var t = this.options.stagger; return null === t || void 0 === t ? void (this.stagger = 0) : (this.stagger = a(t), this.stagger); }, c._positionItem = function (t, e, i, o, n) { o ? t.goTo(e, i) : (t.stagger(n * this.stagger), t.moveTo(e, i)); }, c._postLayout = function () {this.resizeContainer();}, c.resizeContainer = function () { var t = this._getOption('resizeContainer'); if (t) { var e = this._getContainerSize(); e && (this._setContainerMeasure(e.width, !0), this._setContainerMeasure( e.height, !1)); } }, c._getContainerSize = d, c._setContainerMeasure = function ( t, e) { if (void 0 !== t) { var i = this.size; i.isBorderBox && (t += e ? i.paddingLeft + i.paddingRight + i.borderLeftWidth + i.borderRightWidth : i.paddingBottom + i.paddingTop + i.borderTopWidth + i.borderBottomWidth), t = Math.max(t, 0), this.element.style[e ? 'width' : 'height'] = t + 'px'; } }, c._emitCompleteOnItems = function (t, e) { function i () { n.dispatchEvent(t + 'Complete', null, [e]); } function o () {r++, r == s && i();} var n = this, s = e.length; if (!e || !s) return void i(); var r = 0; e.forEach(function (e) {e.once(t, o);}); }, c.dispatchEvent = function (t, e, i) { var o = e ? [e].concat(i) : i; if (this.emitEvent(t, o), h) if (this.$element = this.$element || h(this.element), e) { var n = h.Event(e); n.type = t, this.$element.trigger(n, i); } else this.$element.trigger(t, i); }, c.ignore = function (t) { var e = this.getItem(t); e && (e.isIgnored = !0); }, c.unignore = function (t) { var e = this.getItem(t); e && delete e.isIgnored; }, c.stamp = function (t) { t = this._find(t), t && (this.stamps = this.stamps.concat(t), t.forEach(this.ignore, this)); }, c.unstamp = function (t) { t = this._find(t), t && t.forEach( function (t) {o.removeFrom(this.stamps, t), this.unignore(t);}, this); }, c._find = function (t) { if (t) return 'string' == typeof t && (t = this.element.querySelectorAll(t)), t = o.makeArray(t); }, c._manageStamps = function () { this.stamps && this.stamps.length && (this._getBoundingRect(), this.stamps.forEach(this._manageStamp, this)); }, c._getBoundingRect = function () { var t = this.element.getBoundingClientRect(), e = this.size; this._boundingRect = { left: t.left + e.paddingLeft + e.borderLeftWidth, top: t.top + e.paddingTop + e.borderTopWidth, right: t.right - (e.paddingRight + e.borderRightWidth), bottom: t.bottom - (e.paddingBottom + e.borderBottomWidth), }; }, c._manageStamp = d, c._getElementOffset = function (t) { var e = t.getBoundingClientRect(), o = this._boundingRect, n = i(t), s = { left: e.left - o.left - n.marginLeft, top: e.top - o.top - n.marginTop, right: o.right - e.right - n.marginRight, bottom: o.bottom - e.bottom - n.marginBottom, }; return s; }, c.handleEvent = o.handleEvent, c.bindResize = function () { t.addEventListener('resize', this), this.isResizeBound = !0; }, c.unbindResize = function () { t.removeEventListener('resize', this), this.isResizeBound = !1; }, c.onresize = function () {this.resize();}, o.debounceMethod(s, 'onresize', 100), c.resize = function () { this.isResizeBound && this.needsResizeLayout() && this.layout(); }, c.needsResizeLayout = function () { var t = i(this.element), e = this.size && t; return e && t.innerWidth !== this.size.innerWidth; }, c.addItems = function (t) { var e = this._itemize(t); return e.length && (this.items = this.items.concat(e)), e; }, c.appended = function (t) { var e = this.addItems(t); e.length && (this.layoutItems(e, !0), this.reveal(e)); }, c.prepended = function (t) { var e = this._itemize(t); if (e.length) { var i = this.items.slice(0); this.items = e.concat( i), this._resetLayout(), this._manageStamps(), this.layoutItems( e, !0), this.reveal(e), this.layoutItems(i); } }, c.reveal = function (t) { if (this._emitCompleteOnItems('reveal', t), t && t.length) { var e = this.updateStagger(); t.forEach(function (t, i) {t.stagger(i * e), t.reveal();}); } }, c.hide = function (t) { if (this._emitCompleteOnItems('hide', t), t && t.length) { var e = this.updateStagger(); t.forEach(function (t, i) {t.stagger(i * e), t.hide();}); } }, c.revealItemElements = function (t) { var e = this.getItems(t); this.reveal(e); }, c.hideItemElements = function (t) { var e = this.getItems(t); this.hide(e); }, c.getItem = function (t) { for (var e = 0; e < this.items.length; e++) { var i = this.items[e]; if (i.element == t) return i; } }, c.getItems = function (t) { t = o.makeArray(t); var e = []; return t.forEach(function (t) { var i = this.getItem(t); i && e.push(i); }, this), e; }, c.remove = function (t) { var e = this.getItems(t); this._emitCompleteOnItems('remove', e), e && e.length && e.forEach(function (t) {t.remove(), o.removeFrom(this.items, t);}, this); }, c.destroy = function () { var t = this.element.style; t.height = '', t.position = '', t.width = '', this.items.forEach( function (t) {t.destroy();}), this.unbindResize(); var e = this.element.outlayerGUID; delete f[e], delete this.element.outlayerGUID, h && h.removeData(this.element, this.constructor.namespace); }, s.data = function (t) { t = o.getQueryElement(t); var e = t && t.outlayerGUID; return e && f[e]; }, s.create = function (t, e) { var i = r(s); return i.defaults = o.extend({}, s.defaults), o.extend(i.defaults, e), i.compatOptions = o.extend({}, s.compatOptions), i.namespace = t, i.data = s.data, i.Item = r( n), o.htmlInit(i, t), h && h.bridget && h.bridget(t, i), i; }; var m = { ms: 1, s: 1e3 }; return s.Item = n, s; }), function (t, e) { 'function' == typeof define && define.amd ? define('isotope-layout/js/item', ['outlayer/outlayer'], e) : 'object' == typeof module && module.exports ? module.exports = e(require('outlayer')) : (t.Isotope = t.Isotope || {}, t.Isotope.Item = e(t.Outlayer)); }(window, function (t) { 'use strict'; function e () {t.Item.apply(this, arguments);} var i = e.prototype = Object.create(t.Item.prototype), o = i._create; i._create = function () { this.id = this.layout.itemGUID++, o.call(this), this.sortData = {}; }, i.updateSortData = function () { if (!this.isIgnored) { this.sortData.id = this.id, this.sortData['original-order'] = this.id, this.sortData.random = Math.random(); var t = this.layout.options.getSortData, e = this.layout._sorters; for (var i in t) { var o = e[i]; this.sortData[i] = o(this.element, this); } } }; var n = i.destroy; return i.destroy = function () { n.apply(this, arguments), this.css({ display: '' }); }, e; }), function (t, e) { 'function' == typeof define && define.amd ? define( 'isotope-layout/js/layout-mode', ['get-size/get-size', 'outlayer/outlayer'], e) : 'object' == typeof module && module.exports ? module.exports = e(require('get-size'), require('outlayer')) : (t.Isotope = t.Isotope || {}, t.Isotope.LayoutMode = e(t.getSize, t.Outlayer)); }(window, function (t, e) { 'use strict'; function i (t) { this.isotope = t, t && (this.options = t.options[this.namespace], this.element = t.element, this.items = t.filteredItems, this.size = t.size); } var o = i.prototype, n = [ '_resetLayout', '_getItemLayoutPosition', '_manageStamp', '_getContainerSize', '_getElementOffset', 'needsResizeLayout', '_getOption']; return n.forEach(function (t) { o[t] = function () { return e.prototype[t].apply(this.isotope, arguments); }; }), o.needsVerticalResizeLayout = function () { var e = t(this.isotope.element), i = this.isotope.size && e; return i && e.innerHeight != this.isotope.size.innerHeight; }, o._getMeasurement = function () { this.isotope._getMeasurement.apply(this, arguments); }, o.getColumnWidth = function () { this.getSegmentSize('column', 'Width'); }, o.getRowHeight = function () { this.getSegmentSize('row', 'Height'); }, o.getSegmentSize = function (t, e) { var i = t + e, o = 'outer' + e; if (this._getMeasurement(i, o), !this[i]) { var n = this.getFirstItemSize(); this[i] = n && n[o] || this.isotope.size['inner' + e]; } }, o.getFirstItemSize = function () { var e = this.isotope.filteredItems[0]; return e && e.element && t(e.element); }, o.layout = function () { this.isotope.layout.apply(this.isotope, arguments); }, o.getSize = function () {this.isotope.getSize(), this.size = this.isotope.size;}, i.modes = {}, i.create = function ( t, e) { function n () { i.apply(this, arguments); } return n.prototype = Object.create(o), n.prototype.constructor = n, e && (n.options = e), n.prototype.namespace = t, i.modes[t] = n, n; }, i; }), function (t, e) { 'function' == typeof define && define.amd ? define('masonry-layout/masonry', ['outlayer/outlayer', 'get-size/get-size'], e) : 'object' == typeof module && module.exports ? module.exports = e( require('outlayer'), require('get-size')) : t.Masonry = e(t.Outlayer, t.getSize); }(window, function (t, e) { var i = t.create('masonry'); i.compatOptions.fitWidth = 'isFitWidth'; var o = i.prototype; return o._resetLayout = function () { this.getSize(), this._getMeasurement('columnWidth', 'outerWidth'), this._getMeasurement('gutter', 'outerWidth'), this.measureColumns(), this.colYs = []; for (var t = 0; t < this.cols; t++) this.colYs.push(0); this.maxY = 0, this.horizontalColIndex = 0; }, o.measureColumns = function () { if (this.getContainerWidth(), !this.columnWidth) { var t = this.items[0], i = t && t.element; this.columnWidth = i && e(i).outerWidth || this.containerWidth; } var o = this.columnWidth += this.gutter, n = this.containerWidth + this.gutter, s = n / o, r = o - n % o, a = r && r < 1 ? 'round' : 'floor'; s = Math[a](s), this.cols = Math.max(s, 1); }, o.getContainerWidth = function () { var t = this._getOption('fitWidth'), i = t ? this.element.parentNode : this.element, o = e(i); this.containerWidth = o && o.innerWidth; }, o._getItemLayoutPosition = function (t) { t.getSize(); var e = t.size.outerWidth % this.columnWidth, i = e && e < 1 ? 'round' : 'ceil', o = Math[i](t.size.outerWidth / this.columnWidth); o = Math.min(o, this.cols); for (var n = this.options.horizontalOrder ? '_getHorizontalColPosition' : '_getTopColPosition', s = this[n](o, t), r = { x: this.columnWidth * s.col, y: s.y }, a = s.y + t.size.outerHeight, u = o + s.col, h = s.col; h < u; h++) this.colYs[h] = a; return r; }, o._getTopColPosition = function (t) { var e = this._getTopColGroup(t), i = Math.min.apply(Math, e); return { col: e.indexOf(i), y: i }; }, o._getTopColGroup = function (t) { if (t < 2) return this.colYs; for (var e = [], i = this.cols + 1 - t, o = 0; o < i; o++) e[o] = this._getColGroupY(o, t); return e; }, o._getColGroupY = function (t, e) { if (e < 2) return this.colYs[t]; var i = this.colYs.slice(t, t + e); return Math.max.apply(Math, i); }, o._getHorizontalColPosition = function ( t, e) { var i = this.horizontalColIndex % this.cols, o = t > 1 && i + t > this.cols; i = o ? 0 : i; var n = e.size.outerWidth && e.size.outerHeight; return this.horizontalColIndex = n ? i + t : this.horizontalColIndex, { col: i, y: this._getColGroupY(i, t) }; }, o._manageStamp = function (t) { var i = e(t), o = this._getElementOffset(t), n = this._getOption('originLeft'), s = n ? o.left : o.right, r = s + i.outerWidth, a = Math.floor(s / this.columnWidth); a = Math.max(0, a); var u = Math.floor(r / this.columnWidth); u -= r % this.columnWidth ? 0 : 1, u = Math.min(this.cols - 1, u); for (var h = this._getOption('originTop'), d = (h ? o.top : o.bottom) + i.outerHeight, l = a; l <= u; l++) this.colYs[l] = Math.max(d, this.colYs[l]); }, o._getContainerSize = function () { this.maxY = Math.max.apply(Math, this.colYs); var t = { height: this.maxY }; return this._getOption('fitWidth') && (t.width = this._getContainerFitWidth()), t; }, o._getContainerFitWidth = function () { for (var t = 0, e = this.cols; --e && 0 === this.colYs[e];) t++; return (this.cols - t) * this.columnWidth - this.gutter; }, o.needsResizeLayout = function () { var t = this.containerWidth; return this.getContainerWidth(), t != this.containerWidth; }, i; }), function (t, e) { 'function' == typeof define && define.amd ? define( 'isotope-layout/js/layout-modes/masonry', ['../layout-mode', 'masonry-layout/masonry'], e) : 'object' == typeof module && module.exports ? module.exports = e( require('../layout-mode'), require('masonry-layout')) : e( t.Isotope.LayoutMode, t.Masonry); }(window, function (t, e) { 'use strict'; var i = t.create('masonry'), o = i.prototype, n = { _getElementOffset: !0, layout: !0, _getMeasurement: !0 }; for (var s in e.prototype) n[s] || (o[s] = e.prototype[s]); var r = o.measureColumns; o.measureColumns = function () { this.items = this.isotope.filteredItems, r.call(this); }; var a = o._getOption; return o._getOption = function (t) { return 'fitWidth' == t ? void 0 !== this.options.isFitWidth ? this.options.isFitWidth : this.options.fitWidth : a.apply(this.isotope, arguments); }, i; }), function (t, e) { 'function' == typeof define && define.amd ? define('isotope-layout/js/layout-modes/fit-rows', ['../layout-mode'], e) : 'object' == typeof exports ? module.exports = e(require('../layout-mode')) : e(t.Isotope.LayoutMode); }(window, function (t) { 'use strict'; var e = t.create('fitRows'), i = e.prototype; return i._resetLayout = function () { this.x = 0, this.y = 0, this.maxY = 0, this._getMeasurement('gutter', 'outerWidth'); }, i._getItemLayoutPosition = function (t) { t.getSize(); var e = t.size.outerWidth + this.gutter, i = this.isotope.size.innerWidth + this.gutter; 0 !== this.x && e + this.x > i && (this.x = 0, this.y = this.maxY); var o = { x: this.x, y: this.y }; return this.maxY = Math.max(this.maxY, this.y + t.size.outerHeight), this.x += e, o; }, i._getContainerSize = function () {return { height: this.maxY };}, e; }), function (t, e) { 'function' == typeof define && define.amd ? define('isotope-layout/js/layout-modes/vertical', ['../layout-mode'], e) : 'object' == typeof module && module.exports ? module.exports = e( require('../layout-mode')) : e(t.Isotope.LayoutMode); }(window, function (t) { 'use strict'; var e = t.create('vertical', { horizontalAlignment: 0 }), i = e.prototype; return i._resetLayout = function () {this.y = 0;}, i._getItemLayoutPosition = function (t) { t.getSize(); var e = (this.isotope.size.innerWidth - t.size.outerWidth) * this.options.horizontalAlignment, i = this.y; return this.y += t.size.outerHeight, { x: e, y: i }; }, i._getContainerSize = function () {return { height: this.y };}, e; }), function (t, e) { 'function' == typeof define && define.amd ? define([ 'outlayer/outlayer', 'get-size/get-size', 'desandro-matches-selector/matches-selector', 'fizzy-ui-utils/utils', 'isotope-layout/js/item', 'isotope-layout/js/layout-mode', 'isotope-layout/js/layout-modes/masonry', 'isotope-layout/js/layout-modes/fit-rows', 'isotope-layout/js/layout-modes/vertical'], function (i, o, n, s, r, a) {return e(t, i, o, n, s, r, a);}) : 'object' == typeof module && module.exports ? module.exports = e(t, require('outlayer'), require('get-size'), require('desandro-matches-selector'), require('fizzy-ui-utils'), require('isotope-layout/js/item'), require('isotope-layout/js/layout-mode'), require('isotope-layout/js/layout-modes/masonry'), require('isotope-layout/js/layout-modes/fit-rows'), require('isotope-layout/js/layout-modes/vertical')) : t.Isotope = e(t, t.Outlayer, t.getSize, t.matchesSelector, t.fizzyUIUtils, t.Isotope.Item, t.Isotope.LayoutMode); }(window, function (t, e, i, o, n, s, r) { function a (t, e) { return function (i, o) { for (var n = 0; n < t.length; n++) { var s = t[n], r = i.sortData[s], a = o.sortData[s]; if (r > a || r < a) { var u = void 0 !== e[s] ? e[s] : e, h = u ? 1 : -1; return (r > a ? 1 : -1) * h; } } return 0; }; } var u = t.jQuery, h = String.prototype.trim ? function (t) {return t.trim();} : function (t) {return t.replace(/^\s+|\s+$/g, '');}, d = e.create('isotope', { layoutMode: 'masonry', isJQueryFiltering: !0, sortAscending: !0, }); d.Item = s, d.LayoutMode = r; var l = d.prototype; l._create = function () { this.itemGUID = 0, this._sorters = {}, this._getSorters(), e.prototype._create.call( this), this.modes = {}, this.filteredItems = this.items, this.sortHistory = ['original-order']; for (var t in r.modes) this._initLayoutMode(t); }, l.reloadItems = function () { this.itemGUID = 0, e.prototype.reloadItems.call(this); }, l._itemize = function () { for (var t = e.prototype._itemize.apply(this, arguments), i = 0; i < t.length; i++) { var o = t[i]; o.id = this.itemGUID++; } return this._updateItemsSortData(t), t; }, l._initLayoutMode = function (t) { var e = r.modes[t], i = this.options[t] || {}; this.options[t] = e.options ? n.extend(e.options, i) : i, this.modes[t] = new e(this); }, l.layout = function () { return !this._isLayoutInited && this._getOption('initLayout') ? void this.arrange() : void this._layout(); }, l._layout = function () { var t = this._getIsInstant(); this._resetLayout(), this._manageStamps(), this.layoutItems( this.filteredItems, t), this._isLayoutInited = !0; }, l.arrange = function (t) { this.option(t), this._getIsInstant(); var e = this._filter(this.items); this.filteredItems = e.matches, this._bindArrangeComplete(), this._isInstant ? this._noTransition(this._hideReveal, [e]) : this._hideReveal(e), this._sort(), this._layout(); }, l._init = l.arrange, l._hideReveal = function (t) { this.reveal(t.needReveal), this.hide(t.needHide); }, l._getIsInstant = function () { var t = this._getOption('layoutInstant'), e = void 0 !== t ? t : !this._isLayoutInited; return this._isInstant = e, e; }, l._bindArrangeComplete = function () { function t () { e && i && o && n.dispatchEvent('arrangeComplete', null, [n.filteredItems]); } var e, i, o, n = this; this.once('layoutComplete', function () {e = !0, t();}), this.once( 'hideComplete', function () {i = !0, t();}), this.once( 'revealComplete', function () {o = !0, t();}); }, l._filter = function (t) { var e = this.options.filter; e = e || '*'; for (var i = [], o = [], n = [], s = this._getFilterTest(e), r = 0; r < t.length; r++) { var a = t[r]; if (!a.isIgnored) { var u = s(a); u && i.push(a), u && a.isHidden ? o.push(a) : u || a.isHidden || n.push(a); } } return { matches: i, needReveal: o, needHide: n }; }, l._getFilterTest = function (t) { return u && this.options.isJQueryFiltering ? function (e) {return u(e.element).is(t);} : 'function' == typeof t ? function (e) {return t(e.element);} : function (e) {return o(e.element, t);}; }, l.updateSortData = function (t) { var e; t ? (t = n.makeArray(t), e = this.getItems(t)) : e = this.items, this._getSorters(), this._updateItemsSortData(e); }, l._getSorters = function () { var t = this.options.getSortData; for (var e in t) { var i = t[e]; this._sorters[e] = f(i); } }, l._updateItemsSortData = function (t) { for (var e = t && t.length, i = 0; e && i < e; i++) { var o = t[i]; o.updateSortData(); } }; var f = function () { function t (t) { if ('string' != typeof t) return t; var i = h(t).split(' '), o = i[0], n = o.match(/^\[(.+)\]$/), s = n && n[1], r = e(s, o), a = d.sortDataParsers[i[1]]; return t = a ? function (t) {return t && a(r(t));} : function (t) {return t && r(t);}; } function e (t, e) { return t ? function (e) {return e.getAttribute(t);} : function (t) { var i = t.querySelector(e); return i && i.textContent; }; } return t; }(); d.sortDataParsers = { parseInt: function (t) {return parseInt(t, 10);}, parseFloat: function (t) {return parseFloat(t);}, }, l._sort = function () { if (this.options.sortBy) { var t = n.makeArray(this.options.sortBy); this._getIsSameSortBy(t) || (this.sortHistory = t.concat(this.sortHistory)); var e = a(this.sortHistory, this.options.sortAscending); this.filteredItems.sort(e); } }, l._getIsSameSortBy = function (t) { for (var e = 0; e < t.length; e++) if (t[e] != this.sortHistory[e]) return !1; return !0; }, l._mode = function () { var t = this.options.layoutMode, e = this.modes[t]; if (!e) throw new Error('No layout mode: ' + t); return e.options = this.options[t], e; }, l._resetLayout = function () { e.prototype._resetLayout.call(this), this._mode()._resetLayout(); }, l._getItemLayoutPosition = function (t) { return this._mode(). _getItemLayoutPosition(t); }, l._manageStamp = function (t) { this._mode(). _manageStamp(t); }, l._getContainerSize = function () { return this._mode(). _getContainerSize(); }, l.needsResizeLayout = function () { return this._mode(). needsResizeLayout(); }, l.appended = function (t) { var e = this.addItems(t); if (e.length) { var i = this._filterRevealAdded(e); this.filteredItems = this.filteredItems.concat(i); } }, l.prepended = function (t) { var e = this._itemize(t); if (e.length) { this._resetLayout(), this._manageStamps(); var i = this._filterRevealAdded(e); this.layoutItems(this.filteredItems), this.filteredItems = i.concat( this.filteredItems), this.items = e.concat(this.items); } }, l._filterRevealAdded = function (t) { var e = this._filter(t); return this.hide(e.needHide), this.reveal(e.matches), this.layoutItems( e.matches, !0), e.matches; }, l.insert = function (t) { var e = this.addItems(t); if (e.length) { var i, o, n = e.length; for (i = 0; i < n; i++) o = e[i], this.element.appendChild( o.element); var s = this._filter(e).matches; for (i = 0; i < n; i++) e[i].isLayoutInstant = !0; for (this.arrange(), i = 0; i < n; i++) delete e[i].isLayoutInstant; this.reveal(s); } }; var c = l.remove; return l.remove = function (t) { t = n.makeArray(t); var e = this.getItems(t); c.call(this, t); for (var i = e && e.length, o = 0; i && o < i; o++) { var s = e[o]; n.removeFrom(this.filteredItems, s); } }, l.shuffle = function () { for (var t = 0; t < this.items.length; t++) { var e = this.items[t]; e.sortData.random = Math.random(); } this.options.sortBy = 'random', this._sort(), this._layout(); }, l._noTransition = function ( t, e) { var i = this.options.transitionDuration; this.options.transitionDuration = 0; var o = t.apply(this, e); return this.options.transitionDuration = i, o; }, l.getFilteredItemElements = function () { return this.filteredItems.map(function (t) {return t.element;}); }, d; }); window.SEMICOLON_gridContainerInit = function ($gridContainerEl) { $gridContainerEl = $gridContainerEl.filter(':not(.customjs)'); if ($gridContainerEl.length < 1) { return true; } $gridContainerEl.each(function () { let element = $(this), elTransition = element.attr('data-transition') || '0.65s', elLayoutMode = element.attr('data-layout') || 'masonry', elStagger = element.attr('data-stagger') || 0, elBase = element.attr('data-basewidth') || '.portfolio-item:not(.wide):eq(0)', elOriginLeft = true, elGrid; if ($('body').hasClass('rtl')) { elOriginLeft = false; } if (element.hasClass('portfolio') || element.hasClass('post-timeline')) { elGrid = element.isotope({ layoutMode: elLayoutMode, isOriginLeft: elOriginLeft, transitionDuration: elTransition, stagger: Number(elStagger), percentPosition: true, masonry: { columnWidth: element.find(elBase)[0], }, }); } else { elGrid = element.isotope({ layoutMode: elLayoutMode, isOriginLeft: elOriginLeft, transitionDuration: elTransition, stagger: Number(elStagger), percentPosition: true, }); } if (element.data('isotope')) { element.addClass('has-init-isotope'); } let elementInterval = setInterval(function () { if (element.find('.lazy.lazy-loaded').length == element.find('.lazy').length) { setTimeout(function () { element.filter('.has-init-isotope').isotope('layout'); }, 800); clearInterval(elementInterval); } }, 1000); let resizeTimer; $(window).on('resize', function () { clearTimeout(resizeTimer); resizeTimer = setTimeout(function () { element.filter('.has-init-isotope').isotope('layout'); }, 250); }); $(window).on('lazyLoadLoaded', function () { element.filter('.has-init-isotope').isotope('layout'); }); }); }; // Lazyload v17.4.0 !function (t, n) { 'object' == typeof exports && 'undefined' != typeof module ? module.exports = n() : 'function' == typeof define && define.amd ? define(n) : (t = 'undefined' != typeof globalThis ? globalThis : t || self).LazyLoad = n(); }(this, (function () { 'use strict'; function t () { return (t = Object.assign || function (t) { for (var n = 1; n < arguments.length; n++) { var e = arguments[n]; for (var i in e) Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]); } return t; }).apply(this, arguments); } var n = 'undefined' != typeof window, e = n && !('onscroll' in window) || 'undefined' != typeof navigator && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent), i = n && 'IntersectionObserver' in window, o = n && 'classList' in document.createElement('p'), r = n && window.devicePixelRatio > 1, a = { elements_selector: '.lazy', container: e || n ? document : null, threshold: 300, thresholds: null, data_src: 'src', data_srcset: 'srcset', data_sizes: 'sizes', data_bg: 'bg', data_bg_hidpi: 'bg-hidpi', data_bg_multi: 'bg-multi', data_bg_multi_hidpi: 'bg-multi-hidpi', data_poster: 'poster', class_applied: 'applied', class_loading: 'loading', class_loaded: 'loaded', class_error: 'error', class_entered: 'entered', class_exited: 'exited', unobserve_completed: !0, unobserve_entered: !1, cancel_on_exit: !0, callback_enter: null, callback_exit: null, callback_applied: null, callback_loading: null, callback_loaded: null, callback_error: null, callback_finish: null, callback_cancel: null, use_native: !1, }, c = function (n) {return t({}, a, n);}, s = function (t, n) { var e, i = 'LazyLoad::Initialized', o = new t(n); try { e = new CustomEvent(i, { detail: { instance: o } }); } catch (t) { (e = document.createEvent('CustomEvent')).initCustomEvent(i, !1, !1, { instance: o }); } window.dispatchEvent(e); }, l = 'loading', u = 'loaded', d = 'applied', f = 'error', _ = 'native', g = 'data-', v = 'll-status', b = function (t, n) {return t.getAttribute(g + n);}, p = function (t) {return b(t, v);}, h = function (t, n) { return function (t, n, e) { var i = 'data-ll-status'; null !== e ? t.setAttribute(i, e) : t.removeAttribute(i); }(t, 0, n); }, m = function (t) {return h(t, null);}, E = function (t) {return null === p(t);}, y = function (t) {return p(t) === _;}, I = [l, u, d, f], A = function (t, n, e, i) { t && (void 0 === i ? void 0 === e ? t(n) : t(n, e) : t(n, e, i)); }, L = function (t, n) { o ? t.classList.add(n) : t.className += (t.className ? ' ' : '') + n; }, w = function (t, n) { o ? t.classList.remove(n) : t.className = t.className.replace( new RegExp('(^|\\s+)' + n + '(\\s+|$)'), ' '). replace(/^\s+/, ''). replace(/\s+$/, ''); }, k = function (t) {return t.llTempImage;}, O = function (t, n) { if (n) { var e = n._observer; e && e.unobserve(t); } }, x = function (t, n) {t && (t.loadingCount += n);}, z = function (t, n) {t && (t.toLoadCount = n);}, C = function (t) { for (var n, e = [], i = 0; n = t.children[i]; i += 1) 'SOURCE' === n.tagName && e.push(n); return e; }, N = function (t, n, e) {e && t.setAttribute(n, e);}, M = function (t, n) {t.removeAttribute(n);}, R = function (t) {return !!t.llOriginalAttrs;}, T = function (t) { if (!R(t)) { var n = {}; n.src = t.getAttribute('src'), n.srcset = t.getAttribute( 'srcset'), n.sizes = t.getAttribute( 'sizes'), t.llOriginalAttrs = n; } }, G = function (t) { if (R(t)) { var n = t.llOriginalAttrs; N(t, 'src', n.src), N(t, 'srcset', n.srcset), N(t, 'sizes', n.sizes); } }, D = function (t, n) { N(t, 'sizes', b(t, n.data_sizes)), N(t, 'srcset', b(t, n.data_srcset)), N(t, 'src', b(t, n.data_src)); }, V = function (t) {M(t, 'src'), M(t, 'srcset'), M(t, 'sizes');}, j = function (t, n) { var e = t.parentNode; e && 'PICTURE' === e.tagName && C(e).forEach(n); }, F = { IMG: function (t, n) { j(t, (function (t) {T(t), D(t, n);})), T(t), D(t, n); }, IFRAME: function (t, n) {N(t, 'src', b(t, n.data_src));}, VIDEO: function (t, n) { !function (t, e) { C(t). forEach((function (t) {N(t, 'src', b(t, n.data_src));})); }(t), N(t, 'poster', b(t, n.data_poster)), N(t, 'src', b(t, n.data_src)), t.load(); }, }, P = function (t, n) { var e = F[t.tagName]; e && e(t, n); }, S = function (t, n, e) { x(e, 1), L(t, n.class_loading), h(t, l), A(n.callback_loading, t, e); }, U = ['IMG', 'IFRAME', 'VIDEO'], $ = function (t, n) { !n || function (t) {return t.loadingCount > 0;}(n) || function (t) {return t.toLoadCount > 0;}(n) || A(t.callback_finish, n); }, q = function (t, n, e) {t.addEventListener(n, e), t.llEvLisnrs[n] = e;}, H = function (t, n, e) {t.removeEventListener(n, e);}, B = function (t) {return !!t.llEvLisnrs;}, J = function (t) { if (B(t)) { var n = t.llEvLisnrs; for (var e in n) { var i = n[e]; H(t, e, i); } delete t.llEvLisnrs; } }, K = function (t, n, e) { !function (t) {delete t.llTempImage;}(t), x(e, -1), function (t) { t && (t.toLoadCount -= 1); }(e), w(t, n.class_loading), n.unobserve_completed && O(t, e); }, Q = function (t, n, e) { var i = k(t) || t; B(i) || function (t, n, e) { B(t) || (t.llEvLisnrs = {}); var i = 'VIDEO' === t.tagName ? 'loadeddata' : 'load'; q(t, i, n), q(t, 'error', e); }(i, (function (o) { !function (t, n, e, i) { var o = y(n); K(n, e, i), L(n, e.class_loaded), h(n, u), A(e.callback_loaded, n, i), o || $(e, i); }(0, t, n, e), J(i); }), (function (o) { !function (t, n, e, i) { var o = y(n); K(n, e, i), L(n, e.class_error), h(n, f), A(e.callback_error, n, i), o || $(e, i); }(0, t, n, e), J(i); })); }, W = function (t, n, e) { !function (t) {t.llTempImage = document.createElement('IMG');}(t), Q(t, n, e), function (t, n, e) { var i = b(t, n.data_bg), o = b(t, n.data_bg_hidpi), a = r && o ? o : i; a && (t.style.backgroundImage = 'url("'.concat(a, '")'), k(t). setAttribute('src', a), S(t, n, e)); }(t, n, e), function (t, n, e) { var i = b(t, n.data_bg_multi), o = b(t, n.data_bg_multi_hidpi), a = r && o ? o : i; a && (t.style.backgroundImage = a, function (t, n, e) { L(t, n.class_applied), h(t, d), n.unobserve_completed && O(t, n), A(n.callback_applied, t, e); }(t, n, e)); }(t, n, e); }, X = function (t, n, e) { !function (t) { return U.indexOf(t.tagName) > -1; }(t) ? W(t, n, e) : function (t, n, e) { Q(t, n, e), P(t, n), S(t, n, e); }(t, n, e); }, Y = ['IMG', 'IFRAME', 'VIDEO'], Z = function (t) { return t.use_native && 'loading' in HTMLImageElement.prototype; }, tt = function (t, n, e) { t.forEach((function (t) { return function (t) { return t.isIntersecting || t.intersectionRatio > 0; }(t) ? function ( t, n, e, i) { var o = function (t) { return I.indexOf(p(t)) >= 0; }(t); h(t, 'entered'), L(t, e.class_entered), w(t, e.class_exited), function (t, n, e) { n.unobserve_entered && O(t, e); }(t, e, i), A(e.callback_enter, t, n, i), o || X(t, e, i); }(t.target, t, n, e) : function (t, n, e, i) { E(t) || (L(t, e.class_exited), function (t, n, e, i) { e.cancel_on_exit && function (t) {return p(t) === l;}(t) && 'IMG' === t.tagName && (J(t), function (t) {j(t, (function (t) {V(t);})), V(t);}( t), function (t) {j(t, (function (t) {G(t);})), G(t);}( t), w(t, e.class_loading), x(i, -1), m(t), A( e.callback_cancel, t, n, i)); }(t, n, e, i), A(e.callback_exit, t, n, i)); }(t.target, t, n, e); })); }, nt = function (t) {return Array.prototype.slice.call(t);}, et = function (t) { return t.container.querySelectorAll(t.elements_selector); }, it = function (t) {return function (t) {return p(t) === f;}(t);}, ot = function (t, n) { return function (t) {return nt(t).filter(E);}(t || et(n)); }, rt = function (t, e) { var o = c(t); this._settings = o, this.loadingCount = 0, function (t, n) { i && !Z(t) && (n._observer = new IntersectionObserver( (function (e) {tt(e, t, n);}), function (t) { return { root: t.container === document ? null : t.container, rootMargin: t.thresholds || t.threshold + 'px', }; }(t))); }(o, this), function (t, e) { n && window.addEventListener('online', (function () { !function (t, n) { var e; (e = et(t), nt(e).filter(it)).forEach( (function (n) { w(n, t.class_error), m(n); })), n.update(); }(t, e); })); }(o, this), this.update(e); }; return rt.prototype = { update: function (t) { var n, o, r = this._settings, a = ot(t, r); z(this, a.length), !e && i ? Z(r) ? function (t, n, e) { t.forEach((function (t) { -1 !== Y.indexOf(t.tagName) && function (t, n, e) { t.setAttribute('loading', 'lazy'), Q(t, n, e), P(t, n), h(t, _); }(t, n, e); })), z(e, 0); }(a, r, this) : (o = a, function (t) {t.disconnect();}( n = this._observer), function (t, n) { n.forEach((function (n) {t.observe(n);})); }(n, o)) : this.loadAll(a); }, destroy: function () { this._observer && this._observer.disconnect(), et(this._settings). forEach( (function (t) {delete t.llOriginalAttrs;})), delete this._observer, delete this._settings, delete this.loadingCount, delete this.toLoadCount; }, loadAll: function (t) { var n = this, e = this._settings; ot(t, e).forEach((function (t) {O(t, n), X(t, e, n);})); }, }, rt.load = function (t, n) { var e = c(n); X(t, e); }, rt.resetStatus = function (t) {m(t);}, n && function (t, n) { if (n) if (n.length) for (var e, i = 0; e = n[i]; i += 1) s(t, e); else s(t, n); }(rt, window.lazyLoadOptions), rt; })); window.SEMICOLON_lazyLoadInit = function ($lazyLoadEl) { window.lazyLoadInstance = new LazyLoad({ threshold: 150, elements_selector: '.lazy', class_loading: 'lazy-loading', class_loaded: 'lazy-loaded', class_error: 'lazy-error', callback_loaded: (el) => { $(window).trigger('lazyLoadLoaded'); }, }); }; /*! Magnific Popup - v1.1.0 - 2016-02-20 * http://dimsemenov.com/plugins/magnific-popup/ * Copyright (c) 2016 Dmitry Semenov; */ !function (e) { 'function' == typeof define && define.amd ? define(['jquery'], e) : 'object' == typeof exports ? e(require('jquery')) : e( window.jQuery || window.Zepto); }(function (e) { var t, i, n, o, a, r, s = function () {}, l = !!window.jQuery, c = e(window), d = function (e, i) {t.ev.on('mfp' + e + '.mfp', i);}, p = function (t, i, n, o) { var a = document.createElement('div'); return a.className = 'mfp-' + t, n && (a.innerHTML = n), o ? i && i.appendChild(a) : (a = e(a), i && a.appendTo(i)), a; }, u = function (i, n) { t.ev.triggerHandler('mfp' + i, n), t.st.callbacks && (i = i.charAt(0).toLowerCase() + i.slice(1), t.st.callbacks[i] && t.st.callbacks[i].apply(t, e.isArray(n) ? n : [n])); }, f = function (i) { return i === r && t.currTemplate.closeBtn || (t.currTemplate.closeBtn = e(t.st.closeMarkup.replace('%title%', t.st.tClose)), r = i), t.currTemplate.closeBtn; }, m = function () { e.magnificPopup.instance || ((t = new s).init(), e.magnificPopup.instance = t); }; s.prototype = { constructor: s, init: function () { var i = navigator.appVersion; t.isLowIE = t.isIE8 = document.all && !document.addEventListener, t.isAndroid = /android/gi.test( i), t.isIOS = /iphone|ipad|ipod/gi.test( i), t.supportsTransition = function () { var e = document.createElement('p').style, t = ['ms', 'O', 'Moz', 'Webkit']; if (void 0 !== e.transition) return !0; for (; t.length;) if (t.pop() + 'Transition' in e) return !0; return !1; }(), t.probablyMobile = t.isAndroid || t.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test( navigator.userAgent), n = e(document), t.popupsCache = {}; }, open: function (i) { var o; if (!1 === i.isObj) { t.items = i.items.toArray(), t.index = 0; var r, s = i.items; for (o = 0; o < s.length; o++) if ((r = s[o]).parsed && (r = r.el[0]), r === i.el[0]) { t.index = o; break; } } else t.items = e.isArray(i.items) ? i.items : [i.items], t.index = i.index || 0; if (!t.isOpen) { t.types = [], a = '', i.mainEl && i.mainEl.length ? t.ev = i.mainEl.eq(0) : t.ev = n, i.key ? (t.popupsCache[i.key] || (t.popupsCache[i.key] = {}), t.currTemplate = t.popupsCache[i.key]) : t.currTemplate = {}, t.st = e.extend(!0, {}, e.magnificPopup.defaults, i), t.fixedContentPos = 'auto' === t.st.fixedContentPos ? !t.probablyMobile : t.st.fixedContentPos, t.st.modal && (t.st.closeOnContentClick = !1, t.st.closeOnBgClick = !1, t.st.showCloseBtn = !1, t.st.enableEscapeKey = !1), t.bgOverlay || (t.bgOverlay = p('bg'). on('click.mfp', function () {t.close();}), t.wrap = p( 'wrap'). attr('tabindex', -1). on('click.mfp', function (e) { t._checkIfClose(e.target) && t.close(); }), t.container = p('container', t.wrap)), t.contentContainer = p( 'content'), t.st.preloader && (t.preloader = p('preloader', t.container, t.st.tLoading)); var l = e.magnificPopup.modules; for (o = 0; o < l.length; o++) { var m = l[o]; m = m.charAt(0).toUpperCase() + m.slice(1), t['init' + m].call(t); } u('BeforeOpen'), t.st.showCloseBtn && (t.st.closeBtnInside ? (d('MarkupParse', function (e, t, i, n) { i.close_replaceWith = f(n.type); }), a += ' mfp-close-btn-in') : t.wrap.append( f())), t.st.alignTop && (a += ' mfp-align-top'), t.fixedContentPos ? t.wrap.css({ overflow: t.st.overflowY, overflowX: 'hidden', overflowY: t.st.overflowY, }) : t.wrap.css( { top: c.scrollTop(), position: 'absolute' }), (!1 === t.st.fixedBgPos || 'auto' === t.st.fixedBgPos && !t.fixedContentPos) && t.bgOverlay.css({ height: n.height(), position: 'absolute', }), t.st.enableEscapeKey && n.on('keyup.mfp', function (e) {27 === e.keyCode && t.close();}), c.on( 'resize.mfp', function () {t.updateSize();}), t.st.closeOnContentClick || (a += ' mfp-auto-cursor'), a && t.wrap.addClass(a); var g = t.wH = c.height(), v = {}; if (t.fixedContentPos && t._hasScrollBar(g)) { var h = t._getScrollbarSize(); h && (v.marginRight = h); } t.fixedContentPos && (t.isIE7 ? e('body, html').css('overflow', 'hidden') : v.overflow = 'hidden'); var C = t.st.mainClass; return t.isIE7 && (C += ' mfp-ie7'), C && t._addClassToMFP(C), t.updateItemHTML(), u('BuildControls'), e( 'html').css(v), t.bgOverlay.add(t.wrap). prependTo(t.st.prependTo || e(document.body)), t._lastFocusedEl = document.activeElement, setTimeout( function () { t.content ? (t._addClassToMFP( 'mfp-ready'), t._setFocus()) : t.bgOverlay.addClass( 'mfp-ready'), n.on('focusin.mfp', t._onFocusIn); }, 16), t.isOpen = !0, t.updateSize(g), u('Open'), i; } t.updateItemHTML(); }, close: function () { t.isOpen && (u('BeforeClose'), t.isOpen = !1, t.st.removalDelay && !t.isLowIE && t.supportsTransition ? (t._addClassToMFP( 'mfp-removing'), setTimeout(function () {t._close();}, t.st.removalDelay)) : t._close()); }, _close: function () { u('Close'); var i = 'mfp-removing mfp-ready '; if (t.bgOverlay.detach(), t.wrap.detach(), t.container.empty(), t.st.mainClass && (i += t.st.mainClass + ' '), t._removeClassFromMFP( i), t.fixedContentPos) { var o = { marginRight: '' }; t.isIE7 ? e('body, html').css('overflow', '') : o.overflow = '', e('html').css(o); } n.off('keyup.mfp focusin.mfp'), t.ev.off('.mfp'), t.wrap.attr( 'class', 'mfp-wrap').removeAttr('style'), t.bgOverlay.attr( 'class', 'mfp-bg'), t.container.attr('class', 'mfp-container'), !t.st.showCloseBtn || t.st.closeBtnInside && !0 !== t.currTemplate[t.currItem.type] || t.currTemplate.closeBtn && t.currTemplate.closeBtn.detach(), t.st.autoFocusLast && t._lastFocusedEl && e(t._lastFocusedEl). focus(), t.currItem = null, t.content = null, t.currTemplate = null, t.prevHeight = 0, u( 'AfterClose'); }, updateSize: function (e) { if (t.isIOS) { var i = document.documentElement.clientWidth / window.innerWidth, n = window.innerHeight * i; t.wrap.css('height', n), t.wH = n; } else t.wH = e || c.height(); t.fixedContentPos || t.wrap.css('height', t.wH), u('Resize'); }, updateItemHTML: function () { var i = t.items[t.index]; t.contentContainer.detach(), t.content && t.content.detach(), i.parsed || (i = t.parseEl(t.index)); var n = i.type; if (u('BeforeChange', [ t.currItem ? t.currItem.type : '', n]), t.currItem = i, !t.currTemplate[n]) { var a = !!t.st[n] && t.st[n].markup; u('FirstMarkupParse', a), t.currTemplate[n] = !a || e(a); } o && o !== i.type && t.container.removeClass('mfp-' + o + '-holder'); var r = t['get' + n.charAt(0).toUpperCase() + n.slice(1)](i, t.currTemplate[n]); t.appendContent(r, n), i.preloaded = !0, u('Change', i), o = i.type, t.container.prepend(t.contentContainer), u( 'AfterChange'); }, appendContent: function (e, i) { t.content = e, e ? t.st.showCloseBtn && t.st.closeBtnInside && !0 === t.currTemplate[i] ? t.content.find('.mfp-close').length || t.content.append(f()) : t.content = e : t.content = '', u( 'BeforeAppend'), t.container.addClass( 'mfp-' + i + '-holder'), t.contentContainer.append(t.content); }, parseEl: function (i) { var n, o = t.items[i]; if (o.tagName ? o = { el: e(o) } : (n = o.type, o = { data: o, src: o.src, }), o.el) { for (var a = t.types, r = 0; r < a.length; r++) if (o.el.hasClass('mfp-' + a[r])) { n = a[r]; break; } o.src = o.el.attr('data-mfp-src'), o.src || (o.src = o.el.attr('href')), o.srcset = o.el.attr( 'data-srcset') || '', o.sizes = o.el.attr('data-sizes') || ''; } return o.type = n || t.st.type || 'inline', o.index = i, o.parsed = !0, t.items[i] = o, u( 'ElementParse', o), t.items[i]; }, addGroup: function (e, i) { var n = function (n) {n.mfpEl = this, t._openClick(n, e, i);}; i || (i = {}); var o = 'click.magnificPopup'; i.mainEl = e, i.items ? (i.isObj = !0, e.off(o).on(o, n)) : (i.isObj = !1, i.delegate ? e.off(o).on(o, i.delegate, n) : (i.items = e, e.off(o).on(o, n))); }, _openClick: function (i, n, o) { if ((void 0 !== o.midClick ? o.midClick : e.magnificPopup.defaults.midClick) || !(2 === i.which || i.ctrlKey || i.metaKey || i.altKey || i.shiftKey)) { var a = void 0 !== o.disableOn ? o.disableOn : e.magnificPopup.defaults.disableOn; if (a) if (e.isFunction(a)) { if (!a.call(t)) return !0; } else if (c.width() < a) return !0; i.type && (i.preventDefault(), t.isOpen && i.stopPropagation()), o.el = e( i.mfpEl), o.delegate && (o.items = n.find(o.delegate)), t.open(o); } }, updateStatus: function (e, n) { if (t.preloader) { i !== e && t.container.removeClass('mfp-s-' + i), n || 'loading' !== e || (n = t.st.tLoading); var o = { status: e, text: n }; u('UpdateStatus', o), e = o.status, n = o.text, t.preloader.html( n), t.preloader.find('a'). on('click', function (e) {e.stopImmediatePropagation();}), t.container.addClass( 'mfp-s-' + e), i = e; } }, _checkIfClose: function (i) { if (!e(i). hasClass('mfp-prevent-close')) { var n = t.st.closeOnContentClick, o = t.st.closeOnBgClick; if (n && o) return !0; if (!t.content || e(i).hasClass('mfp-close') || t.preloader && i === t.preloader[0]) return !0; if (i === t.content[0] || e.contains(t.content[0], i)) {if (n) return !0;} else if (o && e.contains(document, i)) return !0; return !1; } }, _addClassToMFP: function (e) { t.bgOverlay.addClass(e), t.wrap.addClass(e); }, _removeClassFromMFP: function (e) { this.bgOverlay.removeClass(e), t.wrap.removeClass(e); }, _hasScrollBar: function (e) { return (t.isIE7 ? n.height() : document.body.scrollHeight) > (e || c.height()); }, _setFocus: function () { (t.st.focus ? t.content.find(t.st.focus).eq(0) : t.wrap).focus(); }, _onFocusIn: function (i) { if (i.target !== t.wrap[0] && !e.contains(t.wrap[0], i.target)) return t._setFocus(), !1; }, _parseMarkup: function (t, i, n) { var o; n.data && (i = e.extend(n.data, i)), u('MarkupParse', [t, i, n]), e.each(i, function (i, n) { if (void 0 === n || !1 === n) return !0; if ((o = i.split('_')).length > 1) { var a = t.find('.mfp-' + o[0]); if (a.length > 0) { var r = o[1]; 'replaceWith' === r ? a[0] !== n[0] && a.replaceWith(n) : 'img' === r ? a.is('img') ? a.attr('src', n) : a.replaceWith(e('<img>'). attr('src', n). attr('class', a.attr('class'))) : a.attr(o[1], n); } } else t.find('.mfp-' + i).html(n); }); }, _getScrollbarSize: function () { if (void 0 === t.scrollbarSize) { var e = document.createElement('div'); e.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;', document.body.appendChild( e), t.scrollbarSize = e.offsetWidth - e.clientWidth, document.body.removeChild(e); } return t.scrollbarSize; }, }, e.magnificPopup = { instance: null, proto: s.prototype, modules: [], open: function (t, i) { return m(), (t = t ? e.extend(!0, {}, t) : {}).isObj = !0, t.index = i || 0, this.instance.open(t); }, close: function () { return e.magnificPopup.instance && e.magnificPopup.instance.close(); }, registerModule: function (t, i) { i.options && (e.magnificPopup.defaults[t] = i.options), e.extend( this.proto, i.proto), this.modules.push(t); }, defaults: { disableOn: 0, key: null, midClick: !1, mainClass: '', preloader: !0, focus: '', closeOnContentClick: !1, closeOnBgClick: !0, closeBtnInside: !0, showCloseBtn: !0, enableEscapeKey: !0, modal: !1, alignTop: !1, removalDelay: 0, prependTo: null, fixedContentPos: 'auto', fixedBgPos: 'auto', overflowY: 'auto', closeMarkup: '<button title="%title%" type="button" class="mfp-close">×</button>', tClose: 'Close (Esc)', tLoading: 'Loading...', autoFocusLast: !0, }, }, e.fn.magnificPopup = function (i) { m(); var n = e(this); if ('string' == typeof i) if ('open' === i) { var o, a = l ? n.data('magnificPopup') : n[0].magnificPopup, r = parseInt(arguments[1], 10) || 0; a.items ? o = a.items[r] : (o = n, a.delegate && (o = o.find(a.delegate)), o = o.eq(r)), t._openClick({ mfpEl: o }, n, a); } else t.isOpen && t[i].apply(t, Array.prototype.slice.call(arguments, 1)); else i = e.extend(!0, {}, i), l ? n.data('magnificPopup', i) : n[0].magnificPopup = i, t.addGroup(n, i); return n; }; var g, v, h, C = function () {h && (v.after(h.addClass(g)).detach(), h = null);}; e.magnificPopup.registerModule('inline', { options: { hiddenClass: 'hide', markup: '', tNotFound: 'Content not found', }, proto: { initInline: function () { t.types.push('inline'), d('Close.inline', function () {C();}); }, getInline: function (i, n) { if (C(), i.src) { var o = t.st.inline, a = e(i.src); if (a.length) { var r = a[0].parentNode; r && r.tagName && (v || (g = o.hiddenClass, v = p(g), g = 'mfp-' + g), h = a.after(v). detach(). removeClass(g)), t.updateStatus('ready'); } else t.updateStatus('error', o.tNotFound), a = e('<div>'); return i.inlineElement = a, a; } return t.updateStatus('ready'), t._parseMarkup(n, {}, i), n; }, }, }); var y, w = function () {y && e(document.body).removeClass(y);}, b = function () {w(), t.req && t.req.abort();}; e.magnificPopup.registerModule('ajax', { options: { settings: null, cursor: 'mfp-ajax-cur', tError: '<a href="%url%">The content</a> could not be loaded.', }, proto: { initAjax: function () { t.types.push('ajax'), y = t.st.ajax.cursor, d('Close.ajax', b), d('BeforeChange.ajax', b); }, getAjax: function (i) { y && e(document.body).addClass(y), t.updateStatus('loading'); var n = e.extend({ url: i.src, success: function (n, o, a) { var r = { data: n, xhr: a }; u('ParseAjax', r), t.appendContent(e(r.data), 'ajax'), i.finished = !0, w(), t._setFocus(), setTimeout( function () {t.wrap.addClass('mfp-ready');}, 16), t.updateStatus('ready'), u('AjaxContentAdded'); }, error: function () { w(), i.finished = i.loadError = !0, t.updateStatus( 'error', t.st.ajax.tError.replace('%url%', i.src)); }, }, t.st.ajax.settings); return t.req = e.ajax(n), ''; }, }, }); var I, x = function (i) { if (i.data && void 0 !== i.data.title) return i.data.title; var n = t.st.image.titleSrc; if (n) { if (e.isFunction(n)) return n.call(t, i); if (i.el) return i.el.attr(n) || ''; } return ''; }; e.magnificPopup.registerModule('image', { options: { markup: '<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>', cursor: 'mfp-zoom-out-cur', titleSrc: 'title', verticalFit: !0, tError: '<a href="%url%">The image</a> could not be loaded.', }, proto: { initImage: function () { var i = t.st.image, n = '.image'; t.types.push('image'), d('Open' + n, function () { 'image' === t.currItem.type && i.cursor && e(document.body).addClass(i.cursor); }), d('Close' + n, function () { i.cursor && e(document.body).removeClass(i.cursor), c.off( 'resize.mfp'); }), d('Resize' + n, t.resizeImage), t.isLowIE && d('AfterChange', t.resizeImage); }, resizeImage: function () { var e = t.currItem; if (e && e.img && t.st.image.verticalFit) { var i = 0; t.isLowIE && (i = parseInt(e.img.css('padding-top'), 10) + parseInt(e.img.css('padding-bottom'), 10)), e.img.css( 'max-height', t.wH - i); } }, _onImageHasSize: function (e) { e.img && (e.hasSize = !0, I && clearInterval(I), e.isCheckingImgSize = !1, u('ImageHasSize', e), e.imgHidden && (t.content && t.content.removeClass('mfp-loading'), e.imgHidden = !1)); }, findImageSize: function (e) { var i = 0, n = e.img[0], o = function (a) { I && clearInterval(I), I = setInterval(function () { n.naturalWidth > 0 ? t._onImageHasSize(e) : (i > 200 && clearInterval(I), 3 === ++i ? o(10) : 40 === i ? o(50) : 100 === i && o(500)); }, a); }; o(1); }, getImage: function (i, n) { var o = 0, a = function () { i && (i.img[0].complete ? (i.img.off('.mfploader'), i === t.currItem && (t._onImageHasSize(i), t.updateStatus( 'ready')), i.hasSize = !0, i.loaded = !0, u( 'ImageLoadComplete')) : ++o < 200 ? setTimeout(a, 100) : r()); }, r = function () { i && (i.img.off('.mfploader'), i === t.currItem && (t._onImageHasSize(i), t.updateStatus('error', s.tError.replace('%url%', i.src))), i.hasSize = !0, i.loaded = !0, i.loadError = !0); }, s = t.st.image, l = n.find('.mfp-img'); if (l.length) { var c = document.createElement('img'); c.className = 'mfp-img', i.el && i.el.find('img').length && (c.alt = i.el.find('img').attr('alt')), i.img = e(c). on('load.mfploader', a). on('error.mfploader', r), c.src = i.src, c.srcset = i.srcset, c.sizes = i.sizes, l.is( 'img') && (i.img = i.img.clone()), (c = i.img[0]).naturalWidth > 0 ? i.hasSize = !0 : c.width || (i.hasSize = !1); } return t._parseMarkup(n, { title: x(i), img_replaceWith: i.img }, i), t.resizeImage(), i.hasSize ? (I && clearInterval(I), i.loadError ? (n.addClass( 'mfp-loading'), t.updateStatus('error', s.tError.replace('%url%', i.src))) : (n.removeClass( 'mfp-loading'), t.updateStatus('ready')), n) : (t.updateStatus('loading'), i.loading = !0, i.hasSize || (i.imgHidden = !0, n.addClass( 'mfp-loading'), t.findImageSize(i)), n); }, }, }); var k; e.magnificPopup.registerModule('zoom', { options: { enabled: !1, easing: 'ease-in-out', duration: 300, opener: function (e) {return e.is('img') ? e : e.find('img');}, }, proto: { initZoom: function () { var e, i = t.st.zoom, n = '.zoom'; if (i.enabled && t.supportsTransition) { var o, a, r = i.duration, s = function (e) { var t = e.clone(). removeAttr('style'). removeAttr('class'). addClass('mfp-animated-image'), n = 'all ' + i.duration / 1e3 + 's ' + i.easing, o = { position: 'fixed', zIndex: 9999, left: 0, top: 0, '-webkit-backface-visibility': 'hidden', }, a = 'transition'; return o['-webkit-' + a] = o['-moz-' + a] = o['-o-' + a] = o[a] = n, t.css(o), t; }, l = function () { t.content.css('visibility', 'visible'); }; d('BuildControls' + n, function () { if (t._allowZoom()) { if (clearTimeout(o), t.content.css('visibility', 'hidden'), !(e = t._getItemToZoom())) return void l(); (a = s(e)).css(t._getOffset()), t.wrap.append( a), o = setTimeout(function () { a.css(t._getOffset(!0)), o = setTimeout( function () { l(), setTimeout(function () { a.remove(), e = a = null, u( 'ZoomAnimationEnded'); }, 16); }, r); }, 16); } }), d('BeforeClose' + n, function () { if (t._allowZoom()) { if (clearTimeout(o), t.st.removalDelay = r, !e) { if (!(e = t._getItemToZoom())) return; a = s(e); } a.css(t._getOffset(!0)), t.wrap.append( a), t.content.css('visibility', 'hidden'), setTimeout( function () {a.css(t._getOffset());}, 16); } }), d('Close' + n, function () { t._allowZoom() && (l(), a && a.remove(), e = null); }); } }, _allowZoom: function () {return 'image' === t.currItem.type;}, _getItemToZoom: function () { return !!t.currItem.hasSize && t.currItem.img; }, _getOffset: function (i) { var n, o = (n = i ? t.currItem.img : t.st.zoom.opener( t.currItem.el || t.currItem)).offset(), a = parseInt(n.css('padding-top'), 10), r = parseInt(n.css('padding-bottom'), 10); o.top -= e(window).scrollTop() - a; var s = { width: n.width(), height: (l ? n.innerHeight() : n[0].offsetHeight) - r - a, }; return void 0 === k && (k = void 0 !== document.createElement('p').style.MozTransform), k ? s['-moz-transform'] = s.transform = 'translate(' + o.left + 'px,' + o.top + 'px)' : (s.left = o.left, s.top = o.top), s; }, }, }); var T = function (e) { if (t.currTemplate.iframe) { var i = t.currTemplate.iframe.find('iframe'); i.length && (e || (i[0].src = '//about:blank'), t.isIE8 && i.css('display', e ? 'block' : 'none')); } }; e.magnificPopup.registerModule('iframe', { options: { markup: '<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>', srcAction: 'iframe_src', patterns: { youtube: { index: 'youtube.com', id: 'v=', src: '//www.youtube.com/embed/%id%?autoplay=1', }, vimeo: { index: 'vimeo.com/', id: '/', src: '//player.vimeo.com/video/%id%?autoplay=1', }, gmaps: { index: '//maps.google.', src: '%id%&output=embed' }, }, }, proto: { initIframe: function () { t.types.push('iframe'), d('BeforeChange', function (e, t, i) { t !== i && ('iframe' === t ? T() : 'iframe' === i && T(!0)); }), d('Close.iframe', function () {T();}); }, getIframe: function (i, n) { var o = i.src, a = t.st.iframe; e.each(a.patterns, function () { if (o.indexOf(this.index) > -1) return this.id && (o = 'string' == typeof this.id ? o.substr(o.lastIndexOf(this.id) + this.id.length, o.length) : this.id.call(this, o)), o = this.src.replace('%id%', o), !1; }); var r = {}; return a.srcAction && (r[a.srcAction] = o), t._parseMarkup(n, r, i), t.updateStatus('ready'), n; }, }, }); var _ = function (e) { var i = t.items.length; return e > i - 1 ? e - i : e < 0 ? i + e : e; }, P = function (e, t, i) { return e.replace(/%curr%/gi, t + 1). replace(/%total%/gi, i); }; e.magnificPopup.registerModule('gallery', { options: { enabled: !1, arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>', preload: [0, 2], navigateByImgClick: !0, arrows: !0, tPrev: 'Previous (Left arrow key)', tNext: 'Next (Right arrow key)', tCounter: '%curr% of %total%', }, proto: { initGallery: function () { var i = t.st.gallery, o = '.mfp-gallery'; if (t.direction = !0, !i || !i.enabled) return !1; a += ' mfp-gallery', d('Open' + o, function () { i.navigateByImgClick && t.wrap.on('click' + o, '.mfp-img', function () { if (t.items.length > 1) return t.next(), !1; }), n.on('keydown' + o, function (e) { 37 === e.keyCode ? t.prev() : 39 === e.keyCode && t.next(); }); }), d('UpdateStatus' + o, function (e, i) { i.text && (i.text = P(i.text, t.currItem.index, t.items.length)); }), d('MarkupParse' + o, function (e, n, o, a) { var r = t.items.length; o.counter = r > 1 ? P(i.tCounter, a.index, r) : ''; }), d('BuildControls' + o, function () { if (t.items.length > 1 && i.arrows && !t.arrowLeft) { var n = i.arrowMarkup, o = t.arrowLeft = e( n.replace(/%title%/gi, i.tPrev). replace(/%dir%/gi, 'left')). addClass('mfp-prevent-close'), a = t.arrowRight = e( n.replace(/%title%/gi, i.tNext). replace(/%dir%/gi, 'right')). addClass('mfp-prevent-close'); o.click(function () {t.prev();}), a.click( function () {t.next();}), t.container.append( o.add(a)); } }), d('Change' + o, function () { t._preloadTimeout && clearTimeout( t._preloadTimeout), t._preloadTimeout = setTimeout( function () {t.preloadNearbyImages(), t._preloadTimeout = null;}, 16); }), d('Close' + o, function () { n.off(o), t.wrap.off( 'click' + o), t.arrowRight = t.arrowLeft = null; }); }, next: function () { t.direction = !0, t.index = _(t.index + 1), t.updateItemHTML(); }, prev: function () { t.direction = !1, t.index = _(t.index - 1), t.updateItemHTML(); }, goTo: function (e) { t.direction = e >= t.index, t.index = e, t.updateItemHTML(); }, preloadNearbyImages: function () { var e, i = t.st.gallery.preload, n = Math.min(i[0], t.items.length), o = Math.min(i[1], t.items.length); for (e = 1; e <= (t.direction ? o : n); e++) t._preloadItem( t.index + e); for (e = 1; e <= (t.direction ? n : o); e++) t._preloadItem( t.index - e); }, _preloadItem: function (i) { if (i = _(i), !t.items[i].preloaded) { var n = t.items[i]; n.parsed || (n = t.parseEl(i)), u('LazyLoad', n), 'image' === n.type && (n.img = e('<img class="mfp-img" />'). on('load.mfploader', function () {n.hasSize = !0;}). on('error.mfploader', function () { n.hasSize = !0, n.loadError = !0, u('LazyLoadError', n); }). attr('src', n.src). attr('srcset', n.srcset). attr('sizes', n.sizes)), n.preloaded = !0; } }, }, }); e.magnificPopup.registerModule('retina', { options: { replaceSrc: function (e) { return e.src.replace(/\.\w+$/, function (e) {return '@2x' + e;}); }, ratio: 1, }, proto: { initRetina: function () { if (window.devicePixelRatio > 1) { var e = t.st.retina, i = e.ratio; (i = isNaN(i) ? i() : i) > 1 && (d('ImageHasSize.retina', function (e, t) { t.img.css({ 'max-width': t.img[0].naturalWidth / i, width: '100%', }); }), d('ElementParse.retina', function (t, n) {n.src = e.replaceSrc(n, i);})); } }, }, }), m(); }); window.SEMICOLON_lightboxInit = function ($lightboxEl) { $lightboxEl = $lightboxEl.filter(':not(.customjs)'); if ($lightboxEl.length < 1) { return true; } $lightboxEl.each(function () { let element = $(this), elType = element.attr('data-lightbox'), elCloseButton = element.attr('data-close-button') || 'outside', elDisableUnder = element.attr('data-disable-under') || 600, $body = $('body'); if (elCloseButton == 'inside') { elCloseButton = true; } else { elCloseButton = false; } if (elType == 'image') { element.magnificPopup({ type: 'image', closeOnContentClick: true, closeBtnInside: elCloseButton, fixedContentPos: true, mainClass: 'mfp-no-margins mfp-fade', // class to remove default margin from left and right side image: { verticalFit: true, }, }); } if (elType == 'gallery') { if (element.find('a[data-lightbox="gallery-item"]'). parent('.clone'). hasClass('clone')) { element.find('a[data-lightbox="gallery-item"]'). parent('.clone'). find('a[data-lightbox="gallery-item"]'). attr('data-lightbox', ''); } if (element.find('a[data-lightbox="gallery-item"]'). parents('.cloned'). hasClass('cloned')) { element.find('a[data-lightbox="gallery-item"]'). parents('.cloned'). find('a[data-lightbox="gallery-item"]'). attr('data-lightbox', ''); } element.magnificPopup({ delegate: 'a[data-lightbox="gallery-item"]', type: 'image', closeOnContentClick: true, closeBtnInside: elCloseButton, fixedContentPos: true, mainClass: 'mfp-no-margins mfp-fade', // class to remove default margin from left and right side image: { verticalFit: true, }, gallery: { enabled: true, navigateByImgClick: true, preload: [0, 1], // Will preload 0 - before current, and 1 after the current image }, }); } if (elType == 'iframe') { element.magnificPopup({ disableOn: Number(elDisableUnder), type: 'iframe', removalDelay: 160, preloader: false, fixedContentPos: false, }); } if (elType == 'inline') { element.magnificPopup({ type: 'inline', mainClass: 'mfp-no-margins mfp-fade', closeBtnInside: elCloseButton, fixedContentPos: true, overflowY: 'scroll', }); } if (elType == 'ajax') { element.magnificPopup({ type: 'ajax', closeBtnInside: elCloseButton, autoFocusLast: false, callbacks: { ajaxContentAdded: function (mfpResponse) { SEMICOLON.widget.loadFlexSlider(); SEMICOLON.initialize.resizeVideos(); SEMICOLON.widget.masonryThumbs(); }, open: function () { $body.addClass('ohidden'); }, close: function () { $body.removeClass('ohidden'); }, }, }); } if (elType == 'ajax-gallery') { element.magnificPopup({ delegate: 'a[data-lightbox="ajax-gallery-item"]', type: 'ajax', closeBtnInside: elCloseButton, autoFocusLast: false, gallery: { enabled: true, preload: 0, navigateByImgClick: false, }, callbacks: { ajaxContentAdded: function (mfpResponse) { SEMICOLON.widget.loadFlexSlider(); SEMICOLON.initialize.resizeVideos(); SEMICOLON.widget.masonryThumbs(); }, open: function () { $body.addClass('ohidden'); }, close: function () { $body.removeClass('ohidden'); }, }, }); } element.on('mfpOpen', function () { let lightboxItem = $.magnificPopup.instance.currItem.el, lightboxClass = $(lightboxItem).attr('data-lightbox-class'), lightboxBgClass = $(lightboxItem). attr('data-lightbox-bg-class'); if (lightboxClass != '') { $($.magnificPopup.instance.container).addClass(lightboxClass); } if (lightboxBgClass != '') { $($.magnificPopup.instance.bgOverlay).addClass(lightboxBgClass); } }); }); }; window.SEMICOLON_modalInit = function ($modalEl) { $modalEl = $modalEl.filter(':not(.customjs)'); if ($modalEl.length < 1) { return true; } $modalEl.each(function () { let element = $(this), elTarget = element.attr('data-target'), elTargetValue = elTarget.split('#')[1], elDelay = element.attr('data-delay') || 500, elTimeout = element.attr('data-timeout'), elAnimateIn = element.attr('data-animate-in'), elAnimateOut = element.attr('data-animate-out'), elBgClick = element.attr('data-bg-click'), elCloseBtn = element.attr('data-close-btn'), elCookies = element.attr('data-cookies'), elCookiePath = element.attr('data-cookie-path'), elCookieExp = element.attr('data-cookie-expire'); if (elCookies == 'false') { Cookies.remove(elTargetValue); } if (elCookies == 'true') { let elementCookie = Cookies.get(elTargetValue); if (typeof elementCookie !== 'undefined' && elementCookie == '0') { return true; } } if (elBgClick == 'false') { elBgClick = false; } else { elBgClick = true; } if (elCloseBtn == 'false') { elCloseBtn = false; } else { elCloseBtn = true; } elDelay = Number(elDelay) + 500; setTimeout(function () { $.magnificPopup.open({ items: { src: elTarget }, type: 'inline', mainClass: 'mfp-no-margins mfp-fade', closeBtnInside: false, fixedContentPos: true, closeOnBgClick: elBgClick, showCloseBtn: elCloseBtn, removalDelay: 500, callbacks: { open: function () { if (elAnimateIn != '') { $(elTarget).addClass(elAnimateIn + ' animated'); } }, beforeClose: function () { if (elAnimateOut != '') { $(elTarget). removeClass(elAnimateIn). addClass(elAnimateOut); } }, afterClose: function () { if (elAnimateIn != '' || elAnimateOut != '') { $(elTarget). removeClass(elAnimateIn + ' ' + elAnimateOut + ' animated'); } if (elCookies == 'true') { let cookieOps = {}; if (elCookieExp) { cookieOps.expires = Number(elCookieExp); } if (elCookiePath) { cookieOps.path = elCookiePath; } Cookies.set(elTargetValue, '0', cookieOps); } }, }, }, 0); }, elDelay); if (elTimeout != '') { setTimeout(function () { $.magnificPopup.close(); }, elDelay + Number(elTimeout)); } }); }; window.scwLinkScrollPlugin = window.scwLinkScrollPlugin || {}; /*! * jQuery Color Animations v@VERSION * https://github.com/jquery/jquery-color * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * Date: @DATE */ !function (r, n) { function t (r, n, t) { var e = f[n.type] || {}; return null == r ? t || !n.def ? null : n.def : (r = e.floor ? ~~r : parseFloat(r), isNaN(r) ? n.def : e.mod ? (r + e.mod) % e.mod : 0 > r ? 0 : e.max < r ? e.max : r); } function e (n) { var t = l(), e = t._rgba = []; return n = n.toLowerCase(), h(u, function (r, o) { var a, s = o.re.exec(n), i = s && o.parse(s), u = o.space || 'rgba'; return i ? (a = t[u]( i), t[c[u].cache] = a[c[u].cache], e = t._rgba = a._rgba, !1) : void 0; }), e.length ? ('0,0,0,0' === e.join() && r.extend(e, a.transparent), t) : a[n]; } function o (r, n, t) { return t = (t + 1) % 1, 1 > 6 * t ? r + (n - r) * t * 6 : 1 > 2 * t ? n : 2 > 3 * t ? r + (n - r) * (2 / 3 - t) * 6 : r; } var a, s = 'backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor', i = /^([\-+])=\s*(\d+\.?\d*)/, u = [ { re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, parse: function (r) {return [r[1], r[2], r[3], r[4]];}, }, { re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, parse: function (r) { return [ 2.55 * r[1], 2.55 * r[2], 2.55 * r[3], r[4]]; }, }, { re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, parse: function (r) { return [ parseInt(r[1], 16), parseInt(r[2], 16), parseInt(r[3], 16)]; }, }, { re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, parse: function (r) { return [ parseInt(r[1] + r[1], 16), parseInt(r[2] + r[2], 16), parseInt(r[3] + r[3], 16)]; }, }, { re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, space: 'hsla', parse: function (r) {return [r[1], r[2] / 100, r[3] / 100, r[4]];}, }], l = r.Color = function (n, t, e, o) { return new r.Color.fn.parse(n, t, e, o); }, c = { rgba: { props: { red: { idx: 0, type: 'byte' }, green: { idx: 1, type: 'byte' }, blue: { idx: 2, type: 'byte' }, }, }, hsla: { props: { hue: { idx: 0, type: 'degrees' }, saturation: { idx: 1, type: 'percent' }, lightness: { idx: 2, type: 'percent' }, }, }, }, f = { 'byte': { floor: !0, max: 255 }, percent: { max: 1 }, degrees: { mod: 360, floor: !0 }, }, p = l.support = {}, d = r('<p>')[0], h = r.each; d.style.cssText = 'background-color:rgba(1,1,1,.5)', p.rgba = d.style.backgroundColor.indexOf( 'rgba') > -1, h(c, function (r, n) { n.cache = '_' + r, n.props.alpha = { idx: 3, type: 'percent', def: 1, }; }), l.fn = r.extend(l.prototype, { parse: function (o, s, i, u) { if (o === n) return this._rgba = [ null, null, null, null], this; (o.jquery || o.nodeType) && (o = r(o).css(s), s = n); var f = this, p = r.type(o), d = this._rgba = []; return s !== n && (o = [o, s, i, u], p = 'array'), 'string' === p ? this.parse(e(o) || a._default) : 'array' === p ? (h(c.rgba.props, function (r, n) {d[n.idx] = t(o[n.idx], n);}), this) : 'object' === p ? (o instanceof l ? h(c, function (r, n) { o[n.cache] && (f[n.cache] = o[n.cache].slice()); }) : h(c, function (n, e) { var a = e.cache; h(e.props, function (r, n) { if (!f[a] && e.to) { if ('alpha' === r || null == o[r]) return; f[a] = e.to(f._rgba); } f[a][n.idx] = t(o[r], n, !0); }), f[a] && r.inArray(null, f[a].slice(0, 3)) < 0 && (f[a][3] = 1, e.from && (f._rgba = e.from(f[a]))); }), this) : void 0; }, is: function (r) { var n = l(r), t = !0, e = this; return h(c, function (r, o) { var a, s = n[o.cache]; return s && (a = e[o.cache] || o.to && o.to(e._rgba) || [], h(o.props, function (r, n) { return null != s[n.idx] ? t = s[n.idx] === a[n.idx] : void 0; })), t; }), t; }, _space: function () { var r = [], n = this; return h(c, function (t, e) {n[e.cache] && r.push(t);}), r.pop(); }, transition: function (r, n) { var e = l(r), o = e._space(), a = c[o], s = 0 === this.alpha() ? l('transparent') : this, i = s[a.cache] || a.to(s._rgba), u = i.slice(); return e = e[a.cache], h(a.props, function (r, o) { var a = o.idx, s = i[a], l = e[a], c = f[o.type] || {}; null !== l && (null === s ? u[a] = l : (c.mod && (l - s > c.mod / 2 ? s += c.mod : s - l > c.mod / 2 && (s -= c.mod)), u[a] = t((l - s) * n + s, o))); }), this[o](u); }, blend: function (n) { if (1 === this._rgba[3]) return this; var t = this._rgba.slice(), e = t.pop(), o = l(n)._rgba; return l( r.map(t, function (r, n) {return (1 - e) * o[n] + e * r;})); }, toRgbaString: function () { var n = 'rgba(', t = r.map(this._rgba, function (r, n) {return null == r ? n > 2 ? 1 : 0 : r;}); return 1 === t[3] && (t.pop(), n = 'rgb('), n + t.join() + ')'; }, toHslaString: function () { var n = 'hsla(', t = r.map(this.hsla(), function (r, n) { return null == r && (r = n > 2 ? 1 : 0), n && 3 > n && (r = Math.round(100 * r) + '%'), r; }); return 1 === t[3] && (t.pop(), n = 'hsl('), n + t.join() + ')'; }, toHexString: function (n) { var t = this._rgba.slice(), e = t.pop(); return n && t.push(~~(255 * e)), '#' + r.map(t, function (r) { return r = (r || 0).toString(16), 1 === r.length ? '0' + r : r; }).join(''); }, toString: function () { return 0 === this._rgba[3] ? 'transparent' : this.toRgbaString(); }, }), l.fn.parse.prototype = l.fn, c.hsla.to = function (r) { if (null == r[0] || null == r[1] || null == r[2]) return [ null, null, null, r[3]]; var n, t, e = r[0] / 255, o = r[1] / 255, a = r[2] / 255, s = r[3], i = Math.max(e, o, a), u = Math.min(e, o, a), l = i - u, c = i + u, f = .5 * c; return n = u === i ? 0 : e === i ? 60 * (o - a) / l + 360 : o === i ? 60 * (a - e) / l + 120 : 60 * (e - o) / l + 240, t = 0 === l ? 0 : .5 >= f ? l / c : l / (2 - c), [Math.round(n) % 360, t, f, null == s ? 1 : s]; }, c.hsla.from = function (r) { if (null == r[0] || null == r[1] || null == r[2]) return [ null, null, null, r[3]]; var n = r[0] / 360, t = r[1], e = r[2], a = r[3], s = .5 >= e ? e * (1 + t) : e + t - e * t, i = 2 * e - s; return [ Math.round(255 * o(i, s, n + 1 / 3)), Math.round(255 * o(i, s, n)), Math.round(255 * o(i, s, n - 1 / 3)), a]; }, h(c, function (e, o) { var a = o.props, s = o.cache, u = o.to, c = o.from; l.fn[e] = function (e) { if (u && !this[s] && (this[s] = u(this._rgba)), e === n) return this[s].slice(); var o, i = r.type(e), f = 'array' === i || 'object' === i ? e : arguments, p = this[s].slice(); return h(a, function (r, n) { var e = f['object' === i ? r : n.idx]; null == e && (e = p[n.idx]), p[n.idx] = t(e, n); }), c ? (o = l(c(p)), o[s] = p, o) : l(p); }, h(a, function (n, t) { l.fn[n] || (l.fn[n] = function (o) { var a, s = r.type(o), u = 'alpha' === n ? this._hsla ? 'hsla' : 'rgba' : e, l = this[u](), c = l[t.idx]; return 'undefined' === s ? c : ('function' === s && (o = o.call(this, c), s = r.type(o)), null == o && t.empty ? this : ('string' === s && (a = i.exec(o), a && (o = c + parseFloat(a[2]) * ('+' === a[1] ? 1 : -1))), l[t.idx] = o, this[u](l))); }); }); }), l.hook = function (n) { var t = n.split(' '); h(t, function (n, t) { r.cssHooks[t] = { set: function (n, o) { var a, s, i = ''; if ('transparent' !== o && ('string' !== r.type(o) || (a = e(o)))) { if (o = l(a || o), !p.rgba && 1 !== o._rgba[3]) { for (s = 'backgroundColor' === t ? n.parentNode : n; ("" === i || "transparent" === i) && s && s.style;) try { i = r.css(s, 'backgroundColor'), s = s.parentNode; } catch (u) {} o = o.blend( i && 'transparent' !== i ? i : '_default'); } o = o.toRgbaString(); } try {n.style[t] = o;} catch (u) {} }, }, r.fx.step[t] = function (n) { n.colorInit || (n.start = l(n.elem, t), n.end = l( n.end), n.colorInit = !0), r.cssHooks[t].set(n.elem, n.start.transition(n.end, n.pos)); }; }); }, l.hook(s), r.cssHooks.borderColor = { expand: function (r) { var n = {}; return h(['Top', 'Right', 'Bottom', 'Left'], function (t, e) {n['border' + e + 'Color'] = r;}), n; }, }, a = r.Color.names = { aqua: '#00ffff', black: '#000000', blue: '#0000ff', fuchsia: '#ff00ff', gray: '#808080', green: '#008000', lime: '#00ff00', maroon: '#800000', navy: '#000080', olive: '#808000', purple: '#800080', red: '#ff0000', silver: '#c0c0c0', teal: '#008080', white: '#ffffff', yellow: '#ffff00', transparent: [null, null, null, 0], _default: '#ffffff', }; }(jQuery); let windowElLs = jQuery(window), $bodyLs = jQuery('body'), $pageSectionElLs, locationHashLs = location.hash; window.SEMICOLON_linkScrollInit = function ($linkScrollEl) { $linkScrollEl = $linkScrollEl.filter(':not(.customjs)'); if ($linkScrollEl.length < 1) { return true; } if ($('[data-scrollto="' + locationHashLs + '"]').length > 0) { windowElLs.on('beforeunload', function () { windowElLs.scrollTop(0); }); windowElLs.scrollTop(0); let linkElement = $(locationHashLs); if (linkElement.length > 0) { setTimeout(function () { let linkElementOff = linkElement.offset().top, linkElSettings = JSON.parse( linkElement.attr('data-scrollto-settings')); $('html,body').stop(true, true).animate({ 'scrollTop': linkElementOff - Number(linkElSettings.offset), }, linkElSettings.speed, linkElSettings.easing, function () { if (linkElSettings.highlight) { if (linkElement.find('.highlight-me').length > 0) { linkElement.find('.highlight-me'). animate( { 'backgroundColor': linkElSettings.highlight }, 300); setTimeout(function () { linkElement.find('.highlight-me'). animate( { 'backgroundColor': 'transparent' }, 300); }, 500); } else { linkElement.animate( { 'backgroundColor': linkElSettings.highlight }, 300); setTimeout(function () { linkElement.animate( { 'backgroundColor': 'transparent' }, 300); }, 500); } } }); }, 1200); } } $linkScrollEl.each(function () { let linkEl = $(this), linkElAnchor = linkEl.attr('data-scrollto'), linkElement = $(linkElAnchor); if (linkElement.length > 0) { let linkElSettings = SEMICOLON_linkScrollSettings(linkElAnchor, $('[data-scrollto="' + linkElAnchor + '"]')); setTimeout(function () { linkElement.attr('data-scrollto-settings', JSON.stringify(linkElSettings)); $pageSectionElLs = $('[data-scrollto-settings]'); }, 1000); } }); $linkScrollEl.off('click').on('click', function () { let linkEl = $(this), linkElAnchor = linkEl.attr('data-scrollto'), linkElement = $(linkElAnchor); if (linkEl.parents('.primary-menu'). hasClass('on-click')) { return true; } if (linkElement.length > 0) { let linkElSettings = JSON.parse( linkElement.attr('data-scrollto-settings')); $('html,body').stop(true).animate({ 'scrollTop': linkElement.offset().top - Number(linkElSettings.offset), }, Number(linkElSettings.speed), linkElSettings.easing, function () { if (linkElSettings.highlight) { if (linkElement.find('.highlight-me').length > 0) { linkElement.find('.highlight-me'). animate( { 'backgroundColor': linkElSettings.highlight }, 300); setTimeout(function () { linkElement.find('.highlight-me'). animate( { 'backgroundColor': 'transparent' }, 300); }, 500); } else { linkElement.animate( { 'backgroundColor': linkElSettings.highlight }, 300); setTimeout(function () { linkElement.animate( { 'backgroundColor': 'transparent' }, 300); }, 500); } } }); return false; } }); }; window.SEMICOLON_linkScrollSettings = function (hash, element) { if (typeof hash === 'undefined' && element.length < 1) { return true; } let settings = {}, offsetTop = $(hash).offset().top, elSpeed = element.attr('data-speed') || 1250, elOffset = element.attr('data-offset') || SEMICOLON.initialize.topScrollOffset(), elEasing = element.attr('data-easing') || 'easeOutQuad', elHighlight = element.attr('data-highlight'); let elOffsetXXL = element.attr('data-offset-xxl'), elOffsetXL = element.attr('data-offset-xl'), elOffsetLG = element.attr('data-offset-lg'), elOffsetMD = element.attr('data-offset-md'), elOffsetSM = element.attr('data-offset-sm'), elOffsetXS = element.attr('data-offset-xs'); if (!elOffsetXS) { elOffsetXS = elOffset; } if (!elOffsetSM) { elOffsetSM = elOffsetXS; } if (!elOffsetMD) { elOffsetMD = elOffsetSM; } if (!elOffsetLG) { elOffsetLG = elOffsetMD; } if (!elOffsetXL) { elOffsetXL = elOffsetLG; } if (!elOffsetXXL) { elOffsetXXL = elOffsetXL; } if ($bodyLs.hasClass('device-xxl')) { elOffset = elOffsetXXL; } else if ($bodyLs.hasClass('device-xl')) { elOffset = elOffsetXL; } else if ($bodyLs.hasClass('device-lg')) { elOffset = elOffsetLG; } else if ($bodyLs.hasClass('device-md')) { elOffset = elOffsetMD; } else if ($bodyLs.hasClass('device-sm')) { elOffset = elOffsetSM; } else if ($bodyLs.hasClass('device-xs')) { elOffset = elOffsetXS; } settings.offset = Number(elOffset); settings.speed = elSpeed; settings.easing = elEasing; settings.highlight = elHighlight; return settings; }; window.scwMasonryThumbsPlugin = window.scwMasonryThumbsPlugin || {}; window.SEMICOLON_masonryThumbsInit = function ($masonryThumbsEl) { if ($masonryThumbsEl.length < 1) { return true; } let $body = $('body'); $masonryThumbsEl.each(function () { let element = $(this), elBig = element.attr('data-big'); element.children().css({ 'width': '' }); let firstElementWidth = element.children().eq(0).outerWidth(); element.filter('.has-init-isotope').isotope({ masonry: { columnWidth: firstElementWidth, }, }); if (elBig) { elBig = elBig.split(','); let elBigNum = '', bigi = ''; for (bigi = 0; bigi < elBig.length; bigi++) { elBigNum = Number(elBig[bigi]) - 1; element.children().eq(elBigNum).addClass('grid-item-big'); } } element.find('.grid-item-big'). css({ width: firstElementWidth * 2 + 'px' }); setTimeout(function () { element.filter('.has-init-isotope').isotope('layout'); }, 500); }); }; window.scwNavTreePlugin = window.scwNavTreePlugin || {}; window.SEMICOLON_navtreeInit = function ($navTreeEl) { $navTreeEl = $navTreeEl.filter(':not(.customjs)'); if ($navTreeEl.length < 1) { return true; } $navTreeEl.each(function () { let element = $(this), elSpeed = element.attr('data-speed') || 250, elEasing = element.attr('data-easing') || 'swing'; element.find('ul li:has(ul)').addClass('sub-menu'); element.find('ul li:has(ul) > a'). append(' <i class="icon-angle-down"></i>'); if (element.hasClass('on-hover')) { element.find('ul li:has(ul):not(.active)').hover(function (e) { $(this). children('ul'). stop(true, true). slideDown(Number(elSpeed), elEasing); }, function () { $(this). children('ul'). delay(250). slideUp(Number(elSpeed), elEasing); }); } else { element.find('ul li:has(ul) > a'). off('click'). on('click', function (e) { let childElement = $(this); element.find('ul li'). not(childElement.parents()). removeClass('active'); childElement.parent(). children('ul'). slideToggle(Number(elSpeed), elEasing, function () { $(this).find('ul').hide(); $(this).find('li.active').removeClass('active'); }); element.find('ul li > ul'). not(childElement.parent().children('ul')). not(childElement.parents('ul')). slideUp(Number(elSpeed), elEasing); childElement.parent('li:has(ul)').toggleClass('active'); e.preventDefault(); }); } }); }; window.scwNotificationPlugin = window.scwNotificationPlugin || {}; window.SEMICOLON_notificationInit = function ($notifyEl) { $notifyEl = $notifyEl.filter(':not(.customjs)'); let element = $notifyEl, elPosition = element.attr('data-notify-position') || 'top-right', elType = element.attr('data-notify-type'), elMsg = element.attr('data-notify-msg') || 'Please set a message!', elTimeout = element.attr('data-notify-timeout') || 5000, elClose = element.attr('data-notify-close') || 'true', elAutoHide = element.attr('data-notify-autohide') || 'true', elId = 'toast-' + Math.floor(Math.random() * 10000), elTrigger = element.attr('data-notify-trigger') || 'self', elTarget = element.attr('data-notify-target'), elCloseHtml = '', elPosClass, elTypeClass, elCloseClass; switch (elType) { case 'primary': elTypeClass = 'text-white bg-primary border-0'; break; case 'warning': elTypeClass = 'text-dark bg-warning border-0'; break; case 'error': elTypeClass = 'text-white bg-danger border-0'; break; case 'success': elTypeClass = 'text-white bg-success border-0'; break; case 'info': elTypeClass = 'bg-info text-dark border-0'; break; case 'dark': elTypeClass = 'text-white bg-dark border-0'; break; default: elTypeClass = ''; break; } switch (elPosition) { case 'top-left': elPosClass = 'top-0 start-0'; break; case 'top-center': elPosClass = 'top-0 start-50 translate-middle-x'; break; case 'middle-left': elPosClass = 'top-50 start-0 translate-middle-y'; break; case 'middle-center': elPosClass = 'top-50 start-50 translate-middle'; break; case 'middle-right': elPosClass = 'top-50 end-0 translate-middle-y'; break; case 'bottom-left': elPosClass = 'bottom-0 start-0'; break; case 'bottom-center': elPosClass = 'bottom-0 start-50 translate-middle-x'; break; case 'bottom-right': elPosClass = 'bottom-0 end-0'; break; default: elPosClass = 'top-0 end-0'; break; } if (elType == 'info' || elType == 'warning' || !elType) { elCloseClass = ''; } else { elCloseClass = 'btn-close-white'; } if (elClose == 'true') { elCloseHtml = '<button type="button" class="btn-close ' + elCloseClass + ' btn-sm me-2 mt-2 ms-auto" data-bs-dismiss="toast" aria-label="Close"></button>'; } if (elAutoHide != 'true') { elAutoHide = false; } else { elAutoHide = true; } let elTemplate = '<div class="position-fixed ' + elPosClass + ' p-3" style="z-index: 999999;">' + '<div id="' + elId + '" class="toast p-2 hide ' + elTypeClass + '" role="alert" aria-live="assertive" aria-atomic="true">' + '<div class="d-flex">' + '<div class="toast-body">' + elMsg + '</div>' + elCloseHtml + '</div>' + '</div>'; '</div>'; if (elTrigger == 'self') { if (!elTarget) { element.attr('data-notify-target', '#' + elId); $('body').append(elTemplate); } } let toastElList = [].slice.call(document.querySelectorAll('.toast')); let toastList = toastElList.map(function (toastEl) { return new bootstrap.Toast(toastEl); }); toastList.forEach(toast => { toast.hide(); }); let toastElement = element.attr('data-notify-target'); if ($(toastElement).length > 0) { let toast = new bootstrap.Toast($(toastElement).get(0), { delay: Number(elTimeout), autohide: elAutoHide, }); toast.show(); } return false; }; window.scwOnePageModulePlugin = window.scwOnePageModulePlugin || {}; let $onePageMenu, windowEl = $(window), windowWidth = windowEl.width(), $body = $('body'), $pageSectionEl, locationHash = location.hash, onePageMenuActiveClass; window.SEMICOLON_onePageModule = function ($onePageMenuEl) { $onePageMenu = $onePageMenuEl.filter(':not(.customjs)'); if ($onePageMenu.length < 1) { return true; } if ($('a[data-href="' + locationHash + '"]'). parents('.one-page-menu').length > 0) { windowEl.on('beforeunload', function () { windowEl.scrollTop(0); }); windowEl.scrollTop(0); let linkElement = $(locationHash); if (linkElement.length > 0) { setTimeout(function () { let linkElementOff = linkElement.offset().top, linkElSettings = JSON.parse( linkElement.attr('data-onepage-settings')); $('html,body').stop(true, true).animate({ 'scrollTop': linkElementOff - Number(linkElSettings.offset), }, linkElSettings.speed, linkElSettings.easing); }, 1200); } } let onePageScrollInterval = setInterval(function () { if ('pluginOnePageModuleReady' in scwEvents) { windowEl.scrollEnd(function () { SEMICOLON_onePageScroller(); }, 500); clearInterval(onePageScrollInterval); } }, 1000); $onePageMenu.each(function () { let element = $(this); onePageMenuActiveClass = element.attr('data-active-class') || 'current'; $onePageMenu = element; if (element.hasClass('no-offset')) { elOffset = 0; } let linkEls = element.find('a[data-href]'); linkEls.each(function () { let linkEl = $(this), linkElAnchor = linkEl.attr('data-href'), linkElement = $(linkElAnchor); if (linkElement.length > 0) { let linkElSettings = SEMICOLON_onePageSettings(linkElAnchor, $('a[data-href="' + linkElAnchor + '"]')); setTimeout(function () { linkElement.attr('data-onepage-settings', JSON.stringify(linkElSettings)); $pageSectionEl = $('[data-onepage-settings]'); }, 1000); } }); linkEls.off('click').on('click', function () { let linkEl = $(this), linkElAnchor = linkEl.attr('data-href'), linkElement = $(linkElAnchor); if (linkElement.length > 0) { let linkElSettings = JSON.parse( linkElement.attr('data-onepage-settings')); element.find('li').removeClass(onePageMenuActiveClass); element.find('a[data-href="' + linkElAnchor + '"]'). parent('li'). addClass(onePageMenuActiveClass); if (windowWidth < 992 || $body.hasClass('overlay-menu')) { $onePageMenuEl.parents('.primary-menu'). filter(':not(.mobile-menu-off-canvas)'). find('.menu-container'). stop(true, true). slideUp(200); $('.primary-menu.mobile-menu-off-canvas .menu-container'). toggleClass('d-block', false); $('#page-menu').toggleClass('page-menu-open', false); $body.toggleClass('primary-menu-open', false); } setTimeout(function () { let linkElementOff = linkElement.offset().top; $('html,body').stop(true, true).animate({ 'scrollTop': linkElementOff - Number(linkElSettings.offset), }, Number(linkElSettings.speed), linkElSettings.easing); }, 250); } return false; }); }); }; window.SEMICOLON_onePageScroller = function () { $onePageMenu.find('[data-href]'). parent(). removeClass(onePageMenuActiveClass); $onePageMenu.find( '[data-href="#' + SEMICOLON_onePageCurrentSection() + '"]'). parent(). addClass(onePageMenuActiveClass); }; window.SEMICOLON_onePageCurrentSection = function () { let currentOnePageSection; if (typeof $pageSectionEl === 'undefined') { return true; } $pageSectionEl.each(function (index) { let element = $(this), elSettings = JSON.parse(element.attr('data-onepage-settings')), h = element.offset().top - elSettings.offset - 5, y = windowEl.scrollTop(); if ((y >= h) && (y < h + element.height()) && (element.attr('id') != currentOnePageSection)) { currentOnePageSection = element.attr('id'); } }); return currentOnePageSection; }; window.SEMICOLON_onePageSettings = function (hash, element) { if (typeof hash === 'undefined' || element.length < 1) { return true; } if ($(hash).length < 1) { return true; } let settings = {}, child = element, parent = element.parents('.one-page-menu'), offsetTop = $(hash).offset().top, elSpeed = child.attr('data-speed'), elOffset = child.attr('data-offset'), elEasing = child.attr('data-easing'); if (!elSpeed) { elSpeed = parent.attr('data-speed') || 1250; } if (!elEasing) { elEasing = parent.attr('data-easing') || 'easeOutQuad'; } if (!elOffset) { element = parent; elOffset = parent.attr('data-offset') || SEMICOLON.initialize.topScrollOffset(); } let elOffsetXXL = element.attr('data-offset-xxl'), elOffsetXL = element.attr('data-offset-xl'), elOffsetLG = element.attr('data-offset-lg'), elOffsetMD = element.attr('data-offset-md'), elOffsetSM = element.attr('data-offset-sm'), elOffsetXS = element.attr('data-offset-xs'); if (!elOffsetXXL) { elOffsetXXL = Number(elOffset); } if (!elOffsetXL) { elOffsetXL = Number(elOffsetXXL); } if (!elOffsetLG) { elOffsetLG = Number(elOffsetXL); } if (!elOffsetMD) { elOffsetMD = Number(elOffsetLG); } if (!elOffsetSM) { elOffsetSM = Number(elOffsetMD); } if (!elOffsetXS) { elOffsetXS = Number(elOffsetSM); } if ($body.hasClass('device-xxl')) { elOffset = elOffsetXXL; } else if ($body.hasClass('device-xl')) { elOffset = elOffsetXL; } else if ($body.hasClass('device-lg')) { elOffset = elOffsetLG; } else if ($body.hasClass('device-md')) { elOffset = elOffsetMD; } else if ($body.hasClass('device-sm')) { elOffset = elOffsetSM; } else if ($body.hasClass('device-xs')) { elOffset = elOffsetXS; } settings.offset = elOffset; settings.speed = elSpeed; settings.easing = elEasing; return settings; }; /*! * animsition v4.0.2 * A simple and easy jQuery plugin for CSS animated page transitions. * http://blivesta.github.io/animsition * License : MIT * Author : blivesta (http://blivesta.com/) */ !function (t) { 'use strict'; 'function' == typeof define && define.amd ? define(['jquery'], t) : 'object' == typeof exports ? module.exports = t(require('jquery')) : t(jQuery); }(function (t) { 'use strict'; var n = !1; t(window).on('load', function () {n = !0;}); var i = 'animsition', a = { init: function (o) { o = t.extend({ inClass: 'fade-in', outClass: 'fade-out', inDuration: 1500, outDuration: 800, linkElement: '.animsition-link', loading: !0, loadingParentElement: 'body', loadingClass: 'animsition-loading', loadingInner: '', timeout: !1, timeoutCountdown: 5e3, onLoadEvent: !0, browser: ['animation-duration', '-webkit-animation-duration'], overlay: !1, overlayClass: 'animsition-overlay-slide', overlayParentElement: 'body', transition: function (t) {window.location.href = t;}, }, o), a.settings = { timer: !1, data: { inClass: 'animsition-in-class', inDuration: 'animsition-in-duration', outClass: 'animsition-out-class', outDuration: 'animsition-out-duration', overlay: 'animsition-overlay', }, events: { inStart: 'animsition.inStart', inEnd: 'animsition.inEnd', outStart: 'animsition.outStart', outEnd: 'animsition.outEnd', }, }; var e = a.supportCheck.call(this, o); if (!e && o.browser.length > 0 && (!e || !this.length)) return 'console' in window || (window.console = {}, window.console.log = function (t) {return t;}), this.length || console.log('Animsition: Element does not exist on page.'), e || console.log( 'Animsition: Does not support this browser.'), a.destroy.call( this); var s = a.optionCheck.call(this, o); return s && t('.' + o.overlayClass).length <= 0 && a.addOverlay.call(this, o), o.loading && t('.' + o.loadingClass).length <= 0 && a.addLoading.call(this, o), this.each(function () { var e = this, s = t(this), r = t(window), l = t(document), d = s.data(i); d || (o = t.extend({}, o), s.data(i, { options: o }), o.timeout && a.addTimer.call(e), o.onLoadEvent && (n ? (a.settings.timer && clearTimeout(a.settings.timer), a['in'].call(e)) : r.on( 'load.' + i, function () { a.settings.timer && clearTimeout(a.settings.timer), a['in'].call(e); })), r.on('pageshow.' + i, function (t) { t.originalEvent.persisted && a['in'].call(e); }), r.on('unload.' + i, function () {}), l.on('click.' + i, o.linkElement, function (n) { n.preventDefault(); var i = t(this), o = i.attr('href'); 2 === n.which || n.metaKey || n.shiftKey || -1 !== navigator.platform.toUpperCase().indexOf('WIN') && n.ctrlKey ? window.open(o, '_blank') : a.out.call(e, i, o); })); }); }, addOverlay: function (n) { t(n.overlayParentElement). prepend('<div class="' + n.overlayClass + '"></div>'); }, addLoading: function (n) { t(n.loadingParentElement). append('<div class="' + n.loadingClass + '">' + n.loadingInner + '</div>'); }, removeLoading: function () { var n = t(this), a = n.data(i).options, o = t(a.loadingParentElement).children('.' + a.loadingClass); o.fadeOut().remove(); }, addTimer: function () { var n = this, o = t(this), e = o.data(i).options; a.settings.timer = setTimeout( function () {a['in'].call(n), t(window).off('load.' + i);}, e.timeoutCountdown); }, supportCheck: function (n) { var i = t(this), a = n.browser, o = a.length, e = !1; 0 === o && (e = !0); for (var s = 0; o > s; s++) if ('string' == typeof i.css(a[s])) { e = !0; break; } return e; }, optionCheck: function (n) { var i, o = t(this); return i = n.overlay || o.data(a.settings.data.overlay) ? !0 : !1; }, animationCheck: function (n, a, o) { var e = t(this), s = e.data(i).options, r = typeof n, l = !a && 'number' === r, d = a && 'string' === r && n.length > 0; return l || d ? n = n : a && o ? n = s.inClass : !a && o ? n = s.inDuration : a && !o ? n = s.outClass : a || o || (n = s.outDuration), n; }, 'in': function () { var n = this, o = t(this), e = o.data(i).options, s = o.data(a.settings.data.inDuration), r = o.data(a.settings.data.inClass), l = a.animationCheck.call(n, s, !1, !0), d = a.animationCheck.call(n, r, !0, !0), u = a.optionCheck.call(n, e), c = o.data(i).outClass; e.loading && a.removeLoading.call(n), c && o.removeClass(c), u ? a.inOverlay.call(n, d, l) : a.inDefault.call(n, d, l); }, inDefault: function (n, i) { var o = t(this); o.css({ 'animation-duration': i + 'ms' }). addClass(n). trigger(a.settings.events.inStart). animateCallback(function () { o.removeClass(n). css({ opacity: 1 }). trigger(a.settings.events.inEnd); }); }, inOverlay: function (n, o) { var e = t(this), s = e.data(i).options; e.css({ opacity: 1 }).trigger(a.settings.events.inStart), t( s.overlayParentElement). children('.' + s.overlayClass). css({ 'animation-duration': o + 'ms' }). addClass(n). animateCallback( function () {e.trigger(a.settings.events.inEnd);}); }, out: function (n, o) { var e = this, s = t(this), r = s.data(i).options, l = n.data(a.settings.data.outClass), d = s.data(a.settings.data.outClass), u = n.data(a.settings.data.outDuration), c = s.data(a.settings.data.outDuration), m = l ? l : d, g = u ? u : c, f = a.animationCheck.call(e, m, !0, !1), v = a.animationCheck.call(e, g, !1, !1), h = a.optionCheck.call(e, r); s.data(i).outClass = f, h ? a.outOverlay.call(e, f, v, o) : a.outDefault.call(e, f, v, o); }, outDefault: function (n, o, e) { var s = t(this), r = s.data(i).options; s.css({ 'animation-duration': o + 1 + 'ms' }). addClass(n). trigger(a.settings.events.outStart). animateCallback(function () { s.trigger(a.settings.events.outEnd), r.transition(e); }); }, outOverlay: function (n, o, e) { var s = this, r = t(this), l = r.data(i).options, d = r.data(a.settings.data.inClass), u = a.animationCheck.call(s, d, !0, !0); t(l.overlayParentElement). children('.' + l.overlayClass). css({ 'animation-duration': o + 1 + 'ms' }). removeClass(u). addClass(n). trigger(a.settings.events.outStart). animateCallback(function () { r.trigger(a.settings.events.outEnd), l.transition(e); }); }, destroy: function () { return this.each(function () { var n = t(this); t(window).off('.' + i), n.css({ opacity: 1 }).removeData(i); }); }, }; t.fn.animateCallback = function (n) { var i = 'animationend webkitAnimationEnd'; return this.each(function () { var a = t(this); a.on(i, function () {return a.off(i), n.call(this);}); }); }, t.fn.animsition = function (n) { return a[n] ? a[n].apply(this, Array.prototype.slice.call(arguments, 1)) : 'object' != typeof n && n ? void t.error('Method ' + n + ' does not exist on jQuery.' + i) : a.init.apply(this, arguments); }; }); window.SEMICOLON_pageTransitionInit = function ($wrapperEl) { let $body = $('body'), $wrapper = $('#wrapper'); if ($body.hasClass('no-transition')) { return true; } if (!$body.hasClass('page-transition')) { return true; } if (!$().animsition) { $body.addClass('no-transition'); console.log('pageTransition: Animsition not Defined.'); return true; } window.onpageshow = function (event) { if (event.persisted) { window.location.reload(); } }; let elAnimIn = $body.attr('data-animation-in') || 'fadeIn', elAnimOut = $body.attr('data-animation-out') || 'fadeOut', elSpeedIn = $body.attr('data-speed-in') || 1500, elSpeedOut = $body.attr('data-speed-out') || 800, elTimeoutActive = false, elTimeout = $body.attr('data-loader-timeout'), elLoader = $body.attr('data-loader'), elLoaderColor = $body.attr('data-loader-color'), elLoaderHtml = $body.attr('data-loader-html'), elLoaderAppend = '', elLoaderBefore = '<div class="css3-spinner">', elLoaderAfter = '</div>', elLoaderBg = '', elLoaderBorder = '', elLoaderBgClass = '', elLoaderBorderClass = '', elLoaderBgClass2 = '', elLoaderBorderClass2 = ''; if (!elTimeout) { elTimeoutActive = false; elTimeout = false; } else { elTimeoutActive = true; elTimeout = Number(elTimeout); } if (elLoaderColor) { if (elLoaderColor == 'theme') { elLoaderBgClass = ' bg-color'; elLoaderBorderClass = ' border-color'; elLoaderBgClass2 = ' class="bg-color"'; elLoaderBorderClass2 = ' class="border-color"'; } else { elLoaderBg = ' style="background-color:' + elLoaderColor + ';"'; elLoaderBorder = ' style="border-color:' + elLoaderColor + ';"'; } } if (elLoader == '2') { elLoaderAppend = '<div class="css3-spinner-flipper' + elLoaderBgClass + '"' + elLoaderBg + '></div>'; } else if (elLoader == '3') { elLoaderAppend = '<div class="css3-spinner-double-bounce1' + elLoaderBgClass + '"' + elLoaderBg + '></div><div class="css3-spinner-double-bounce2' + elLoaderBgClass + '"' + elLoaderBg + '></div>'; } else if (elLoader == '4') { elLoaderAppend = '<div class="css3-spinner-rect1' + elLoaderBgClass + '"' + elLoaderBg + '></div><div class="css3-spinner-rect2' + elLoaderBgClass + '"' + elLoaderBg + '></div><div class="css3-spinner-rect3' + elLoaderBgClass + '"' + elLoaderBg + '></div><div class="css3-spinner-rect4' + elLoaderBgClass + '"' + elLoaderBg + '></div><div class="css3-spinner-rect5' + elLoaderBgClass + '"' + elLoaderBg + '></div>'; } else if (elLoader == '5') { elLoaderAppend = '<div class="css3-spinner-cube1' + elLoaderBgClass + '"' + elLoaderBg + '></div><div class="css3-spinner-cube2' + elLoaderBgClass + '"' + elLoaderBg + '></div>'; } else if (elLoader == '6') { elLoaderAppend = '<div class="css3-spinner-scaler' + elLoaderBgClass + '"' + elLoaderBg + '></div>'; } else if (elLoader == '7') { elLoaderAppend = '<div class="css3-spinner-grid-pulse"><div' + elLoaderBgClass2 + elLoaderBg + '></div><div' + elLoaderBgClass2 + elLoaderBg + '></div><div' + elLoaderBgClass2 + elLoaderBg + '></div><div' + elLoaderBgClass2 + elLoaderBg + '></div><div' + elLoaderBgClass2 + elLoaderBg + '></div><div' + elLoaderBgClass2 + elLoaderBg + '></div><div' + elLoaderBgClass2 + elLoaderBg + '></div><div' + elLoaderBgClass2 + elLoaderBg + '></div><div' + elLoaderBgClass2 + elLoaderBg + '></div></div>'; } else if (elLoader == '8') { elLoaderAppend = '<div class="css3-spinner-clip-rotate"><div' + elLoaderBorderClass2 + elLoaderBorder + '></div></div>'; } else if (elLoader == '9') { elLoaderAppend = '<div class="css3-spinner-ball-rotate"><div' + elLoaderBgClass2 + elLoaderBg + '></div><div' + elLoaderBgClass2 + elLoaderBg + '></div><div' + elLoaderBgClass2 + elLoaderBg + '></div></div>'; } else if (elLoader == '10') { elLoaderAppend = '<div class="css3-spinner-zig-zag"><div' + elLoaderBgClass2 + elLoaderBg + '></div><div' + elLoaderBgClass2 + elLoaderBg + '></div></div>'; } else if (elLoader == '11') { elLoaderAppend = '<div class="css3-spinner-triangle-path"><div' + elLoaderBgClass2 + elLoaderBg + '></div><div' + elLoaderBgClass2 + elLoaderBg + '></div><div' + elLoaderBgClass2 + elLoaderBg + '></div></div>'; } else if (elLoader == '12') { elLoaderAppend = '<div class="css3-spinner-ball-scale-multiple"><div' + elLoaderBgClass2 + elLoaderBg + '></div><div' + elLoaderBgClass2 + elLoaderBg + '></div><div' + elLoaderBgClass2 + elLoaderBg + '></div></div>'; } else if (elLoader == '13') { elLoaderAppend = '<div class="css3-spinner-ball-pulse-sync"><div' + elLoaderBgClass2 + elLoaderBg + '></div><div' + elLoaderBgClass2 + elLoaderBg + '></div><div' + elLoaderBgClass2 + elLoaderBg + '></div></div>'; } else if (elLoader == '14') { elLoaderAppend = '<div class="css3-spinner-scale-ripple"><div' + elLoaderBorderClass2 + elLoaderBorder + '></div><div' + elLoaderBorderClass2 + elLoaderBorder + '></div><div' + elLoaderBorderClass2 + elLoaderBorder + '></div></div>'; } else { elLoaderAppend = '<div class="css3-spinner-bounce1' + elLoaderBgClass + '"' + elLoaderBg + '></div><div class="css3-spinner-bounce2' + elLoaderBgClass + '"' + elLoaderBg + '></div><div class="css3-spinner-bounce3' + elLoaderBgClass + '"' + elLoaderBg + '></div>'; } if (!elLoaderHtml) { elLoaderHtml = elLoaderAppend; } elLoaderHtml = elLoaderBefore + elLoaderHtml + elLoaderAfter; $wrapper.css({ 'opacity': 1 }); $wrapper.animsition({ inClass: elAnimIn, outClass: elAnimOut, inDuration: Number(elSpeedIn), outDuration: Number(elSpeedOut), linkElement: 'body:not(.device-md):not(.device-sm):not(.device-xs) .primary-menu:not(.on-click) .menu-link:not([target="_blank"]):not([href*="#"]):not([data-lightbox]):not([href^="mailto"]):not([href^="tel"]):not([href^="sms"]):not([href^="call"])', loading: true, loadingParentElement: 'body', loadingClass: 'page-transition-wrap', loadingInner: elLoaderHtml, timeout: elTimeoutActive, timeoutCountdown: elTimeout, onLoadEvent: true, browser: ['animation-duration', '-webkit-animation-duration'], overlay: false, overlayClass: 'animsition-overlay-slide', overlayParentElement: 'body', }); }; /*! skrollr 0.6.30 (2015-06-19) | Alexander Prinzhorn - https://github.com/Prinzhorn/skrollr | Free to use under terms of MIT license */ !function (a, b, c) { 'use strict'; function d (c) { if (e = b.documentElement, f = b.body, T(), ha = this, c = c || {}, ma = c.constants || {}, c.easing) for (var d in c.easing) W[d] = c.easing[d]; ta = c.edgeStrategy || 'set', ka = { beforerender: c.beforerender, render: c.render, keyframe: c.keyframe, }, la = c.forceHeight !== !1, la && (Ka = c.scale || 1), na = c.mobileDeceleration || y, pa = c.smoothScrolling !== !1, qa = c.smoothScrollingDuration || A, ra = { targetTop: ha.getScrollTop() }, Sa = (c.mobileCheck || function () { return /Android|iPhone|iPad|iPod|BlackBerry/i.test( navigator.userAgent || navigator.vendor || a.opera); })(), Sa ? (ja = b.getElementById(c.skrollrBody || z), ja && ga(), X(), Ea(e, [s, v], [t])) : Ea(e, [s, u], [t]), ha.refresh(), wa(a, 'resize orientationchange', function () { var a = e.clientWidth, b = e.clientHeight; (b !== Pa || a !== Oa) && (Pa = b, Oa = a, Qa = !0); }); var g = U(); return function h () {$(), va = g(h);}(), ha; } var e, f, g = { get: function () {return ha;}, init: function (a) {return ha || new d(a);}, VERSION: '0.6.29', }, h = Object.prototype.hasOwnProperty, i = a.Math, j = a.getComputedStyle, k = 'touchstart', l = 'touchmove', m = 'touchcancel', n = 'touchend', o = 'skrollable', p = o + '-before', q = o + '-between', r = o + '-after', s = 'skrollr', t = 'no-' + s, u = s + '-desktop', v = s + '-mobile', w = 'linear', x = 1e3, y = .004, z = 'skrollr-body', A = 200, B = 'start', C = 'end', D = 'center', E = 'bottom', F = '___skrollable_id', G = /^(?:input|textarea|button|select)$/i, H = /^\s+|\s+$/g, I = /^data(?:-(_\w+))?(?:-?(-?\d*\.?\d+p?))?(?:-?(start|end|top|center|bottom))?(?:-?(top|center|bottom))?$/, J = /\s*(@?[\w\-\[\]]+)\s*:\s*(.+?)\s*(?:;|$)/gi, K = /^(@?[a-z\-]+)\[(\w+)\]$/, L = /-([a-z0-9_])/g, M = function (a, b) {return b.toUpperCase();}, N = /[\-+]?[\d]*\.?[\d]+/g, O = /\{\?\}/g, P = /rgba?\(\s*-?\d+\s*,\s*-?\d+\s*,\s*-?\d+/g, Q = /[a-z\-]+-gradient/g, R = '', S = '', T = function () { var a = /^(?:O|Moz|webkit|ms)|(?:-(?:o|moz|webkit|ms)-)/; if (j) { var b = j(f, null); for (var c in b) if (R = c.match(a) || +c == c && b[c].match(a)) break; if (!R) return void (R = S = ''); R = R[0], '-' === R.slice(0, 1) ? (S = R, R = { '-webkit-': 'webkit', '-moz-': 'Moz', '-ms-': 'ms', '-o-': 'O', }[R]) : S = '-' + R.toLowerCase() + '-'; } }, U = function () { var b = a.requestAnimationFrame || a[R.toLowerCase() + 'RequestAnimationFrame'], c = Ha(); return (Sa || !b) && (b = function (b) { var d = Ha() - c, e = i.max(0, 1e3 / 60 - d); return a.setTimeout(function () {c = Ha(), b();}, e); }), b; }, V = function () { var b = a.cancelAnimationFrame || a[R.toLowerCase() + 'CancelAnimationFrame']; return (Sa || !b) && (b = function (b) {return a.clearTimeout(b);}), b; }, W = { begin: function () {return 0;}, end: function () {return 1;}, linear: function (a) {return a;}, quadratic: function (a) {return a * a;}, cubic: function (a) {return a * a * a;}, swing: function (a) {return -i.cos(a * i.PI) / 2 + .5;}, sqrt: function (a) {return i.sqrt(a);}, outCubic: function (a) {return i.pow(a - 1, 3) + 1;}, bounce: function (a) { var b; if (.5083 >= a) b = 3; else if (.8489 >= a) b = 9; else if (.96208 >= a) b = 27; else { if (!(.99981 >= a)) return 1; b = 91; } return 1 - i.abs(3 * i.cos(a * b * 1.028) / b); }, }; d.prototype.refresh = function (a) { var d, e, f = !1; for (a === c ? (f = !0, ia = [], Ra = 0, a = b.getElementsByTagName( '*')) : a.length === c && (a = [a]), d = 0, e = a.length; e > d; d++) { var g = a[d], h = g, i = [], j = pa, k = ta, l = !1; if (f && F in g && delete g[F], g.attributes) { for (var m = 0, n = g.attributes.length; n > m; m++) { var p = g.attributes[m]; if ('data-anchor-target' !== p.name) if ('data-smooth-scrolling' !== p.name) if ('data-edge-strategy' !== p.name) if ('data-emit-events' !== p.name) { var q = p.name.match(I); if (null !== q) { var r = { props: p.value, element: g, eventType: p.name.replace(L, M), }; i.push(r); var s = q[1]; s && (r.constant = s.substr(1)); var t = q[2]; /p$/.test(t) ? (r.isPercentage = !0, r.offset = (0 | t.slice(0, -1)) / 100) : r.offset = 0 | t; var u = q[3], v = q[4] || u; u && u !== B && u !== C ? (r.mode = 'relative', r.anchors = [u, v]) : (r.mode = 'absolute', u === C ? r.isEnd = !0 : r.isPercentage || (r.offset = r.offset * Ka)); } } else l = !0; else k = p.value; else j = 'off' !== p.value; else if (h = b.querySelector(p.value), null === h) throw'Unable to find anchor target "' + p.value + '"'; } if (i.length) { var w, x, y; !f && F in g ? (y = g[F], w = ia[y].styleAttr, x = ia[y].classAttr) : (y = g[F] = Ra++, w = g.style.cssText, x = Da( g)), ia[y] = { element: g, styleAttr: w, classAttr: x, anchorTarget: h, keyFrames: i, smoothScrolling: j, edgeStrategy: k, emitEvents: l, lastFrameIndex: -1, }, Ea(g, [o], []); } } } for (Aa(), d = 0, e = a.length; e > d; d++) { var z = ia[a[d][F]]; z !== c && (_(z), ba(z)); } return ha; }, d.prototype.relativeToAbsolute = function ( a, b, c) { var d = e.clientHeight, f = a.getBoundingClientRect(), g = f.top, h = f.bottom - f.top; return b === E ? g -= d : b === D && (g -= d / 2), c === E ? g += h : c === D && (g += h / 2), g += ha.getScrollTop(), g + .5 | 0; }, d.prototype.animateTo = function (a, b) { b = b || {}; var d = Ha(), e = ha.getScrollTop(), f = b.duration === c ? x : b.duration; return oa = { startTop: e, topDiff: a - e, targetTop: a, duration: f, startTime: d, endTime: d + f, easing: W[b.easing || w], done: b.done, }, oa.topDiff || (oa.done && oa.done.call(ha, !1), oa = c), ha; }, d.prototype.stopAnimateTo = function () { oa && oa.done && oa.done.call(ha, !0), oa = c; }, d.prototype.isAnimatingTo = function () {return !!oa;}, d.prototype.isMobile = function () {return Sa;}, d.prototype.setScrollTop = function ( b, c) { return sa = c === !0, Sa ? Ta = i.min(i.max(b, 0), Ja) : a.scrollTo(0, b), ha; }, d.prototype.getScrollTop = function () { return Sa ? Ta : a.pageYOffset || e.scrollTop || f.scrollTop || 0; }, d.prototype.getMaxScrollTop = function () {return Ja;}, d.prototype.on = function ( a, b) {return ka[a] = b, ha;}, d.prototype.off = function (a) {return delete ka[a], ha;}, d.prototype.destroy = function () { var a = V(); a(va), ya(), Ea(e, [t], [s, u, v]); for (var b = 0, d = ia.length; d > b; b++) fa(ia[b].element); e.style.overflow = f.style.overflow = '', e.style.height = f.style.height = '', ja && g.setStyle(ja, 'transform', 'none'), ha = c, ja = c, ka = c, la = c, Ja = 0, Ka = 1, ma = c, na = c, La = 'down', Ma = -1, Oa = 0, Pa = 0, Qa = !1, oa = c, pa = c, qa = c, ra = c, sa = c, Ra = 0, ta = c, Sa = !1, Ta = 0, ua = c; }; var X = function () { var d, g, h, j, o, p, q, r, s, t, u, v; wa(e, [k, l, m, n].join(' '), function (a) { var e = a.changedTouches[0]; for (j = a.target; 3 === j.nodeType;) j = j.parentNode; switch (o = e.clientY, p = e.clientX, t = a.timeStamp, G.test( j.tagName) || a.preventDefault(), a.type) { case k: d && d.blur(), ha.stopAnimateTo(), d = j, g = q = o, h = p, s = t; break; case l: G.test(j.tagName) && b.activeElement !== j && a.preventDefault(), r = o - q, v = t - u, ha.setScrollTop( Ta - r, !0), q = o, u = t; break; default: case m: case n: var f = g - o, w = h - p, x = w * w + f * f; if (49 > x) { if (!G.test(d.tagName)) { d.focus(); var y = b.createEvent('MouseEvents'); y.initMouseEvent('click', !0, !0, a.view, 1, e.screenX, e.screenY, e.clientX, e.clientY, a.ctrlKey, a.altKey, a.shiftKey, a.metaKey, 0, null), d.dispatchEvent(y); } return; } d = c; var z = r / v; z = i.max(i.min(z, 3), -3); var A = i.abs(z / na), B = z * A + .5 * na * A * A, C = ha.getScrollTop() - B, D = 0; C > Ja ? (D = (Ja - C) / B, C = Ja) : 0 > C && (D = -C / B, C = 0), A *= 1 - D, ha.animateTo( C + .5 | 0, { easing: 'outCubic', duration: A }); } }), a.scrollTo(0, 0), e.style.overflow = f.style.overflow = 'hidden'; }, Y = function () { var a, b, c, d, f, g, h, j, k, l, m, n = e.clientHeight, o = Ba(); for (j = 0, k = ia.length; k > j; j++) for (a = ia[j], b = a.element, c = a.anchorTarget, d = a.keyFrames, f = 0, g = d.length; g > f; f++) h = d[f], l = h.offset, m = o[h.constant] || 0, h.frame = l, h.isPercentage && (l *= n, h.frame = l), 'relative' === h.mode && (fa(b), h.frame = ha.relativeToAbsolute(c, h.anchors[0], h.anchors[1]) - l, fa(b, !0)), h.frame += m, la && !h.isEnd && h.frame > Ja && (Ja = h.frame); for (Ja = i.max(Ja, Ca()), j = 0, k = ia.length; k > j; j++) { for (a = ia[j], d = a.keyFrames, f = 0, g = d.length; g > f; f++) h = d[f], m = o[h.constant] || 0, h.isEnd && (h.frame = Ja - h.offset + m); a.keyFrames.sort(Ia); } }, Z = function (a, b) { for (var c = 0, d = ia.length; d > c; c++) { var e, f, i = ia[c], j = i.element, k = i.smoothScrolling ? a : b, l = i.keyFrames, m = l.length, n = l[0], s = l[l.length - 1], t = k < n.frame, u = k > s.frame, v = t ? n : s, w = i.emitEvents, x = i.lastFrameIndex; if (t || u) { if (t && -1 === i.edge || u && 1 === i.edge) continue; switch (t ? (Ea(j, [p], [r, q]), w && x > -1 && (za(j, n.eventType, La), i.lastFrameIndex = -1)) : (Ea(j, [r], [p, q]), w && m > x && (za(j, s.eventType, La), i.lastFrameIndex = m)), i.edge = t ? -1 : 1, i.edgeStrategy) { case'reset': fa(j); continue; case'ease': k = v.frame; break; default: case'set': var y = v.props; for (e in y) h.call(y, e) && (f = ea(y[e].value), 0 === e.indexOf('@') ? j.setAttribute(e.substr(1), f) : g.setStyle(j, e, f)); continue; } } else 0 !== i.edge && (Ea(j, [o, q], [p, r]), i.edge = 0); for (var z = 0; m - 1 > z; z++) if (k >= l[z].frame && k <= l[z + 1].frame) { var A = l[z], B = l[z + 1]; for (e in A.props) if (h.call(A.props, e)) { var C = (k - A.frame) / (B.frame - A.frame); C = A.props[e].easing(C), f = da(A.props[e].value, B.props[e].value, C), f = ea(f), 0 === e.indexOf('@') ? j.setAttribute(e.substr(1), f) : g.setStyle(j, e, f); } w && x !== z && ('down' === La ? za(j, A.eventType, La) : za(j, B.eventType, La), i.lastFrameIndex = z); break; } } }, $ = function () { Qa && (Qa = !1, Aa()); var a, b, d = ha.getScrollTop(), e = Ha(); if (oa) e >= oa.endTime ? (d = oa.targetTop, a = oa.done, oa = c) : (b = oa.easing( (e - oa.startTime) / oa.duration), d = oa.startTop + b * oa.topDiff | 0), ha.setScrollTop(d, !0); else if (!sa) { var f = ra.targetTop - d; f && (ra = { startTop: Ma, topDiff: d - Ma, targetTop: d, startTime: Na, endTime: Na + qa, }), e <= ra.endTime && (b = W.sqrt((e - ra.startTime) / qa), d = ra.startTop + b * ra.topDiff | 0); } if (sa || Ma !== d) { La = d > Ma ? 'down' : Ma > d ? 'up' : La, sa = !1; var h = { curTop: d, lastTop: Ma, maxTop: Ja, direction: La }, i = ka.beforerender && ka.beforerender.call(ha, h); i !== !1 && (Z(d, ha.getScrollTop()), Sa && ja && g.setStyle(ja, 'transform', 'translate(0, ' + -Ta + 'px) ' + ua), Ma = d, ka.render && ka.render.call(ha, h)), a && a.call(ha, !1); } Na = e; }, _ = function (a) { for (var b = 0, c = a.keyFrames.length; c > b; b++) { for (var d, e, f, g, h = a.keyFrames[b], i = {}; null !== (g = J.exec(h.props));) f = g[1], e = g[2], d = f.match(K), null !== d ? (f = d[1], d = d[2]) : d = w, e = e.indexOf('!') ? aa(e) : [ e.slice(1)], i[f] = { value: e, easing: W[d] }; h.props = i; } }, aa = function (a) { var b = []; return P.lastIndex = 0, a = a.replace(P, function (a) { return a.replace(N, function (a) {return a / 255 * 100 + '%';}); }), S && (Q.lastIndex = 0, a = a.replace(Q, function (a) {return S + a;})), a = a.replace(N, function (a) {return b.push(+a), '{?}';}), b.unshift(a), b; }, ba = function (a) { var b, c, d = {}; for (b = 0, c = a.keyFrames.length; c > b; b++) ca(a.keyFrames[b], d); for (d = {}, b = a.keyFrames.length - 1; b >= 0; b--) ca(a.keyFrames[b], d); }, ca = function (a, b) { var c; for (c in b) h.call(a.props, c) || (a.props[c] = b[c]); for (c in a.props) b[c] = a.props[c]; }, da = function (a, b, c) { var d, e = a.length; if (e !== b.length) throw'Can\'t interpolate between "' + a[0] + '" and "' + b[0] + '"'; var f = [a[0]]; for (d = 1; e > d; d++) f[d] = a[d] + (b[d] - a[d]) * c; return f; }, ea = function (a) { var b = 1; return O.lastIndex = 0, a[0].replace(O, function () {return a[b++];}); }, fa = function (a, b) { a = [].concat(a); for (var c, d, e = 0, f = a.length; f > e; e++) d = a[e], c = ia[d[F]], c && (b ? (d.style.cssText = c.dirtyStyleAttr, Ea(d, c.dirtyClassAttr)) : (c.dirtyStyleAttr = d.style.cssText, c.dirtyClassAttr = Da( d), d.style.cssText = c.styleAttr, Ea(d, c.classAttr))); }, ga = function () { ua = 'translateZ(0)', g.setStyle(ja, 'transform', ua); var a = j(ja), b = a.getPropertyValue('transform'), c = a.getPropertyValue(S + 'transform'), d = b && 'none' !== b || c && 'none' !== c; d || (ua = ''); }; g.setStyle = function (a, b, c) { var d = a.style; if (b = b.replace(L, M).replace('-', ''), 'zIndex' === b) isNaN(c) ? d[b] = c : d[b] = '' + (0 | c); else if ('float' === b) d.styleFloat = d.cssFloat = c; else try { R && (d[R + b.slice(0, 1).toUpperCase() + b.slice(1)] = c), d[b] = c; } catch (e) {} }; var ha, ia, ja, ka, la, ma, na, oa, pa, qa, ra, sa, ta, ua, va, wa = g.addEvent = function (b, c, d) { var e = function (b) { return b = b || a.event, b.target || (b.target = b.srcElement), b.preventDefault || (b.preventDefault = function () {b.returnValue = !1, b.defaultPrevented = !0;}), d.call( this, b); }; c = c.split(' '); for (var f, g = 0, h = c.length; h > g; g++) f = c[g], b.addEventListener ? b.addEventListener(f, d, !1) : b.attachEvent('on' + f, e), Ua.push( { element: b, name: f, listener: d }); }, xa = g.removeEvent = function (a, b, c) { b = b.split(' '); for (var d = 0, e = b.length; e > d; d++) a.removeEventListener ? a.removeEventListener(b[d], c, !1) : a.detachEvent('on' + b[d], c); }, ya = function () { for (var a, b = 0, c = Ua.length; c > b; b++) a = Ua[b], xa(a.element, a.name, a.listener); Ua = []; }, za = function (a, b, c) {ka.keyframe && ka.keyframe.call(ha, a, b, c);}, Aa = function () { var a = ha.getScrollTop(); Ja = 0, la && !Sa && (f.style.height = ''), Y(), la && !Sa && (f.style.height = Ja + e.clientHeight + 'px'), Sa ? ha.setScrollTop( i.min(ha.getScrollTop(), Ja)) : ha.setScrollTop(a, !0), sa = !0; }, Ba = function () { var a, b, c = e.clientHeight, d = {}; for (a in ma) b = ma[a], 'function' == typeof b ? b = b.call(ha) : /p$/.test(b) && (b = b.slice(0, -1) / 100 * c), d[a] = b; return d; }, Ca = function () { var a, b = 0; return ja && (b = i.max(ja.offsetHeight, ja.scrollHeight)), a = i.max(b, f.scrollHeight, f.offsetHeight, e.scrollHeight, e.offsetHeight, e.clientHeight), a - e.clientHeight; }, Da = function (b) { var c = 'className'; return a.SVGElement && b instanceof a.SVGElement && (b = b[c], c = 'baseVal'), b[c]; }, Ea = function (b, d, e) { var f = 'className'; if (a.SVGElement && b instanceof a.SVGElement && (b = b[f], f = 'baseVal'), e === c) return void (b[f] = d); for (var g = b[f], h = 0, i = e.length; i > h; h++) g = Ga(g). replace(Ga(e[h]), ' '); g = Fa(g); for (var j = 0, k = d.length; k > j; j++) -1 === Ga(g).indexOf(Ga(d[j])) && (g += ' ' + d[j]); b[f] = Fa(g); }, Fa = function (a) {return a.replace(H, '');}, Ga = function (a) {return ' ' + a + ' ';}, Ha = Date.now || function () {return +new Date;}, Ia = function (a, b) {return a.frame - b.frame;}, Ja = 0, Ka = 1, La = 'down', Ma = -1, Na = Ha(), Oa = 0, Pa = 0, Qa = !1, Ra = 0, Sa = !1, Ta = 0, Ua = []; 'function' == typeof define && define.amd ? define([], function () {return g;}) : 'undefined' != typeof module && module.exports ? module.exports = g : a.skrollr = g; }(window, document); window.SEMICOLON_parallaxInit = function ($parallaxEl) { $parallaxEl = $parallaxEl.filter(':not(.customjs)'); if ($parallaxEl.length < 1) { return true; } if (!SEMICOLON.isMobile.any()) { window.skrollrInstance = skrollr.init({ forceHeight: false }); } else { $parallaxEl.addClass('mobile-parallax'); } }; /**! * easy-pie-chart * Lightweight plugin to render simple, animated and retina optimized pie charts * * @license * @author Robert Fleischmann <[email protected]> (http://robert-fleischmann.de) * @version 2.1.7 **/ !function (a, b) { 'function' == typeof define && define.amd ? define(['jquery'], function (a) {return b(a);}) : 'object' == typeof exports ? module.exports = b(require('jquery')) : b(jQuery); }(this, function (a) { var b = function (a, b) { var c, d = document.createElement('canvas'); a.appendChild(d), 'object' == typeof G_vmlCanvasManager && G_vmlCanvasManager.initElement(d); var e = d.getContext('2d'); d.width = d.height = b.size; var f = 1; window.devicePixelRatio > 1 && (f = window.devicePixelRatio, d.style.width = d.style.height = [ b.size, 'px'].join(''), d.width = d.height = b.size * f, e.scale(f, f)), e.translate(b.size / 2, b.size / 2), e.rotate( (-0.5 + b.rotate / 180) * Math.PI); var g = (b.size - b.lineWidth) / 2; b.scaleColor && b.scaleLength && (g -= b.scaleLength + 2), Date.now = Date.now || function () {return +new Date;}; var h = function (a, b, c) { c = Math.min(Math.max(-1, c || 0), 1); var d = 0 >= c ? !0 : !1; e.beginPath(), e.arc(0, 0, g, 0, 2 * Math.PI * c, d), e.strokeStyle = a, e.lineWidth = b, e.stroke(); }, i = function () { var a, c; e.lineWidth = 1, e.fillStyle = b.scaleColor, e.save(); for (var d = 24; d > 0; --d) d % 6 === 0 ? (c = b.scaleLength, a = 0) : (c = .6 * b.scaleLength, a = b.scaleLength - c), e.fillRect( -b.size / 2 + a, 0, c, 1), e.rotate(Math.PI / 12); e.restore(); }, j = function () { return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (a) {window.setTimeout(a, 1e3 / 60);}; }(), k = function () { b.scaleColor && i(), b.trackColor && h(b.trackColor, b.trackWidth || b.lineWidth, 1); }; this.getCanvas = function () {return d;}, this.getCtx = function () {return e;}, this.clear = function () { e.clearRect(b.size / -2, b.size / -2, b.size, b.size); }, this.draw = function (a) { b.scaleColor || b.trackColor ? e.getImageData && e.putImageData ? c ? e.putImageData(c, 0, 0) : (k(), c = e.getImageData(0, 0, b.size * f, b.size * f)) : (this.clear(), k()) : this.clear(), e.lineCap = b.lineCap; var d; d = 'function' == typeof b.barColor ? b.barColor(a) : b.barColor, h( d, b.lineWidth, a / 100); }.bind(this), this.animate = function (a, c) { var d = Date.now(); b.onStart(a, c); var e = function () { var f = Math.min(Date.now() - d, b.animate.duration), g = b.easing(this, f, a, c - a, b.animate.duration); this.draw(g), b.onStep(a, c, g), f >= b.animate.duration ? b.onStop(a, c) : j(e); }.bind(this); j(e); }.bind(this); }, c = function (a, c) { var d = { barColor: '#ef1e25', trackColor: '#f9f9f9', scaleColor: '#dfe0e0', scaleLength: 5, lineCap: 'round', lineWidth: 3, trackWidth: void 0, size: 110, rotate: 0, animate: { duration: 1e3, enabled: !0 }, easing: function (a, b, c, d, e) { return b /= e / 2, 1 > b ? d / 2 * b * b + c : -d / 2 * (--b * (b - 2) - 1) + c; }, onStart: function (a, b) {}, onStep: function (a, b, c) {}, onStop: function (a, b) {}, }; if ('undefined' != typeof b) d.renderer = b; else { if ('undefined' == typeof SVGRenderer) throw new Error( 'Please load either the SVG- or the CanvasRenderer'); d.renderer = SVGRenderer; } var e = {}, f = 0, g = function () { this.el = a, this.options = e; for (var b in d) d.hasOwnProperty(b) && (e[b] = c && 'undefined' != typeof c[b] ? c[b] : d[b], 'function' == typeof e[b] && (e[b] = e[b].bind(this))); 'string' == typeof e.easing && 'undefined' != typeof jQuery && jQuery.isFunction(jQuery.easing[e.easing]) ? e.easing = jQuery.easing[e.easing] : e.easing = d.easing, 'number' == typeof e.animate && (e.animate = { duration: e.animate, enabled: !0 }), 'boolean' != typeof e.animate || e.animate || (e.animate = { duration: 1e3, enabled: e.animate, }), this.renderer = new e.renderer(a, e), this.renderer.draw( f), a.dataset && a.dataset.percent ? this.update( parseFloat(a.dataset.percent)) : a.getAttribute && a.getAttribute('data-percent') && this.update(parseFloat(a.getAttribute('data-percent'))); }.bind(this); this.update = function (a) { return a = parseFloat(a), e.animate.enabled ? this.renderer.animate(f, a) : this.renderer.draw(a), f = a, this; }.bind( this), this.disableAnimation = function () {return e.animate.enabled = !1, this;}, this.enableAnimation = function () {return e.animate.enabled = !0, this;}, g(); }; a.fn.easyPieChart = function (b) { return this.each(function () { var d; a.data(this, 'easyPieChart') || (d = a.extend({}, b, a(this).data()), a.data(this, 'easyPieChart', new c(this, d))); }); }; }); window.SEMICOLON_roundedSkillInit = function ($roundedSkillEl) { $roundedSkillEl = $roundedSkillEl.filter(':not(.customjs)'); if ($roundedSkillEl.length < 1) { return true; } $roundedSkillEl.each(function () { let element = $(this), elSize = element.attr('data-size') || 140, elSpeed = element.attr('data-speed') || 2000, elWidth = element.attr('data-width') || 4, elColor = element.attr('data-color') || '#0093BF', elTrackColor = element.attr('data-trackcolor') || 'rgba(0,0,0,0.04)'; let properties = { size: Number(elSize), speed: Number(elSpeed), width: Number(elWidth), color: elColor, trackcolor: elTrackColor, }; element.css({ 'width': elSize + 'px', 'height': elSize + 'px', 'line-height': elSize + 'px', }); if ($('body').hasClass('device-xl') || $('body').hasClass('device-lg')) { element.animate({ opacity: 0 }, 10); let observer = new IntersectionObserver( function (entries, observer) { entries.forEach(function (entry) { if (entry.isIntersecting) { if (!element.hasClass('skills-animated')) { var t = setTimeout(function () { element.css({ opacity: 1 }); }, 100); SEMICOLON_runRoundedSkills(element, properties); element.addClass('skills-animated'); } observer.unobserve(entry.target); } }); }, { rootMargin: '-50px' }); observer.observe(element[0]); } else { SEMICOLON_runRoundedSkills(element, properties); } }); }; window.SEMICOLON_runRoundedSkills = function (element, properties) { element.easyPieChart({ size: properties.size, animate: properties.speed, scaleColor: false, trackColor: properties.trackcolor, lineWidth: properties.width, lineCap: 'square', barColor: properties.color, }); }; window.scwPricingSwitcherPlugin = window.scwPricingSwitcherPlugin || {}; window.SEMICOLON_pricingSwitcherFn = function ( checkbox, parent, pricing, defClass, actClass) { parent.find('.pts-left,.pts-right'). removeClass(actClass). addClass(defClass); pricing.find('.pts-switch-content-left,.pts-switch-content-right'). addClass('d-none'); if (checkbox.filter(':checked').length > 0) { parent.find('.pts-right').removeClass(defClass).addClass(actClass); pricing.find('.pts-switch-content-right').removeClass('d-none'); } else { parent.find('.pts-left').removeClass(defClass).addClass(actClass); pricing.find('.pts-switch-content-left').removeClass('d-none'); } }; window.SEMICOLON_pricingSwitcherInit = function ($pricingSwitcherEl) { $pricingSwitcherEl = $pricingSwitcherEl.filter(':not(.customjs)'); if ($pricingSwitcherEl.length < 1) { return true; } $pricingSwitcherEl.each(function () { var element = $(this), elCheck = element.find(':checkbox'), elParent = $(this).parents('.pricing-tenure-switcher'), elDefClass = $(this).attr('data-default-class') || 'text-muted op-05', elActClass = $(this).attr('data-active-class') || 'fw-bold', elPricing = $(elParent.attr('data-container')); SEMICOLON_pricingSwitcherFn(elCheck, elParent, elPricing, elDefClass, elActClass); elCheck.on('change', function () { SEMICOLON_pricingSwitcherFn(elCheck, elParent, elPricing, elDefClass, elActClass); }); }); }; window.scwProgressPlugin = window.scwProgressPlugin || {}; window.SEMICOLON_progressInit = function ($progressEl) { $progressEl = $progressEl.filter(':not(.customjs)'); if ($progressEl.length < 1) { return true; } $progressEl.each(function () { let element = $(this), elBar = element.parent('li'), elValue = elBar.attr('data-percent'); if (element.parent('.kv-upload-progress').length > 0 || element.children('.progress-bar').length > 0) { return true; } let observer = new IntersectionObserver(function (entries, observer) { entries.forEach(function (entry) { if (entry.isIntersecting) { if (!elBar.hasClass('skills-animated')) { SEMICOLON.widget.counter({ el: element.find('.counter-instant'), }); elBar.find('.progress'). css({ width: elValue + '%' }). addClass('skills-animated'); } observer.unobserve(entry.target); } }); }, { rootMargin: '-50px' }); observer.observe(elBar[0]); }); }; window.scwQuantityPlugin = window.scwQuantityPlugin || {}; window.SEMICOLON_quantityInit = function ($quantityEl) { $quantityEl = $quantityEl.filter(':not(.customjs)'); if ($quantityEl.length < 1) { return true; } $('.plus').off('click').on('click', function () { let element = $(this).parents('.quantity').find('.qty'), elValue = element.val(), elStep = element.attr('step') || 1, elMax = element.attr('max'), intRegex = /^\d+$/; if (elMax && (Number(elValue) >= Number(elMax))) { return false; } if (intRegex.test(elValue)) { let elValuePlus = Number(elValue) + Number(elStep); element.val(elValuePlus).change(); } else { element.val(Number(elStep)).change(); } return false; }); $('.minus').off('click').on('click', function () { let element = $(this).parents('.quantity').find('.qty'), elValue = element.val(), elStep = element.attr('step') || 1, elMin = element.attr('min'), intRegex = /^\d+$/; if (!elMin || elMin < 0) { elMin = 1; } if (intRegex.test(elValue)) { if (Number(elValue) > Number(elMin)) { let elValueMinus = Number(elValue) - Number(elStep); element.val(elValueMinus).change(); } } else { element.val(Number(elStep)).change(); } return false; }); }; window.scwReadMorePlugin = window.scwReadMorePlugin || {}; window.SEMICOLON_readmoreInit = function ($readmoreEl) { $readmoreEl = $readmoreEl.filter(':not(.customjs)'); if ($readmoreEl.length < 1) { return true; } $readmoreEl.each(function () { let element = $(this), elHeight = element.outerHeight(), elSize = element.attr('data-readmore-size') || '10rem', elSpeed = element.attr('data-readmore-speed') || 500, elTrigger = element.attr('data-readmore-trigger') || '.read-more-trigger', elTriggerO = element.attr('data-readmore-trigger-open') || 'Read More', elTriggerC = element.attr('data-readmore-trigger-close') || 'Read Less'; elTrigger = element.find(elTrigger); elTrigger.html(elTriggerO); elSpeed = Number(elSpeed); element.addClass('read-more-wrap'). css({ 'height': elSize, '-webkit-transition-duration': elSpeed + 'ms', 'transition-duration': elSpeed + 'ms', }). append('<div class="read-more-mask"></div>'); let elMask = element.find('.read-more-mask'), elMaskD = element.attr('data-readmore-mask') || 'true', elMaskColor = element.attr('data-readmore-maskcolor') || '#FFF', elMaskSize = element.attr('data-readmore-masksize') || '100%'; if (elMaskD == 'true') { elMask.css({ 'height': elMaskSize, 'background-image': 'linear-gradient( ' + SEMICOLON_HEXtoRGBA(elMaskColor, 0) + ', ' + SEMICOLON_HEXtoRGBA(elMaskColor, 1) + ' )', }); } else { elMask.addClass('d-none'); } elTrigger.off('click').on('click', function () { if (element.hasClass('read-more-wrap-open')) { element.css({ 'height': elSize }). removeClass('read-more-wrap-open'); setTimeout(function () { elTrigger.html(elTriggerO); }, elSpeed); if (elMaskD == 'true') { elMask.fadeIn(elSpeed); } } else { if (elTriggerC == 'false') { elTrigger.remove(); } let elHeightN = elHeight + elTrigger.outerHeight(); element.css({ 'height': elHeightN, 'overflow': '' }). addClass('read-more-wrap-open'); setTimeout(function () { elTrigger.html(elTriggerC); }, elSpeed); if (elMaskD == 'true') { elMask.fadeOut(elSpeed); } } return false; }); }); }; window.SEMICOLON_HEXtoRGBA = function (hex, op) { let c; if (/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)) { c = hex.substring(1).split(''); if (c.length == 3) { c = [c[0], c[0], c[1], c[1], c[2], c[2]]; } c = '0x' + c.join(''); return 'rgba(' + [(c >> 16) & 255, (c >> 8) & 255, c & 255].join(',') + ',' + op + ')'; } console.log('Bad Hex'); }; window.scwShapeDividerPlugin = window.scwShapeDividerPlugin || {}; window.SEMICOLON_shapeDividerInit = function ($shapeDividerEl) { $shapeDividerEl = $shapeDividerEl.filter(':not(.customjs)'); if ($shapeDividerEl.length < 1) { return true; } $shapeDividerEl.each(function () { let element = $(this), elShape = element.attr('data-shape') || 'valley', elWidth = element.attr('data-width') || 100, elHeight = element.attr('data-height') || 100, elFill = element.attr('data-fill'), elOut = element.attr('data-outside') || 'false', elPos = element.attr('data-position') || 'top', elId = 'shape-divider-' + Math.floor(Math.random() * 10000), shape = '', width, height, fill, outside = ''; if (elWidth < 100) { elWidth = 100; } width = 'width: calc( ' + Number(elWidth) + '% + 1.5px );'; height = 'height: ' + Number(elHeight) + 'px;'; fill = 'fill: ' + elFill + ';'; if (elOut == 'true') { if (elPos == 'bottom') { outside = '#' + elId + '.shape-divider { bottom: -' + (Number(elHeight) - 1) + 'px; } '; } else { outside = '#' + elId + '.shape-divider { top: -' + (Number(elHeight) - 1) + 'px; } '; } } let css = outside + '#' + elId + '.shape-divider svg { ' + width + height + ' } #' + elId + '.shape-divider .shape-divider-fill { ' + fill + ' }', head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text/css'; style.appendChild(document.createTextNode(css)); element.attr('id', elId); switch (elShape) { case 'valley': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 355" preserveAspectRatio="none"><defs><style>.b{opacity:.5}.c{opacity:.3}</style></defs><path fill="none" d="M999.45 0H0v165.72l379.95 132.46L999.45 0z"></path><path class="b shape-divider-fill" d="M379.95 298.18l28.47 9.92L1000 118.75V0h-.55l-619.5 298.18zM492.04 337.25L1000 252.63V118.75L408.42 308.1l83.62 29.15z"></path><path class="b shape-divider-fill" d="M492.04 337.25L1000 252.63V118.75L408.42 308.1l83.62 29.15z"></path><path class="shape-divider-fill" d="M530.01 350.49l20.22 4.51H1000V252.63l-507.96 84.62 37.97 13.24z"></path><path class="b shape-divider-fill" d="M530.01 350.49l20.22 4.51H1000V252.63l-507.96 84.62 37.97 13.24z"></path><path class="b shape-divider-fill" d="M530.01 350.49l20.22 4.51H1000V252.63l-507.96 84.62 37.97 13.24z"></path><path class="shape-divider-fill" d="M542.94 355h7.29l-20.22-4.51 12.93 4.51z"></path><path class="b shape-divider-fill" d="M542.94 355h7.29l-20.22-4.51 12.93 4.51z"></path><path class="c shape-divider-fill" d="M542.94 355h7.29l-20.22-4.51 12.93 4.51z"></path><path class="b shape-divider-fill" d="M542.94 355h7.29l-20.22-4.51 12.93 4.51z"></path><path class="c shape-divider-fill" d="M379.95 298.18L0 165.72v66.59l353.18 78.75 26.77-12.88z"></path><path class="c shape-divider-fill" d="M353.18 311.06L0 232.31v71.86l288.42 38.06 64.76-31.17z"></path><path class="c shape-divider-fill" d="M353.18 311.06L0 232.31v71.86l288.42 38.06 64.76-31.17z"></path><path class="b shape-divider-fill" d="M380.28 317.11l28.14-9.01-28.47-9.92-26.77 12.88 27.1 6.05z"></path><path class="c shape-divider-fill" d="M380.28 317.11l28.14-9.01-28.47-9.92-26.77 12.88 27.1 6.05z"></path><path class="b shape-divider-fill" d="M479.79 339.29l12.25-2.04-83.62-29.15-28.14 9.01 99.51 22.18z"></path><path class="b shape-divider-fill" d="M479.79 339.29l12.25-2.04-83.62-29.15-28.14 9.01 99.51 22.18z"></path><path class="c shape-divider-fill" d="M479.79 339.29l12.25-2.04-83.62-29.15-28.14 9.01 99.51 22.18z"></path><path class="shape-divider-fill" d="M530.01 350.49l-37.97-13.24-12.25 2.04 50.22 11.2z"></path><path class="b shape-divider-fill" d="M530.01 350.49l-37.97-13.24-12.25 2.04 50.22 11.2z"></path><path class="b shape-divider-fill" d="M530.01 350.49l-37.97-13.24-12.25 2.04 50.22 11.2z"></path><path class="c shape-divider-fill" d="M530.01 350.49l-37.97-13.24-12.25 2.04 50.22 11.2zM288.42 342.23l9.46 1.25 82.4-26.37-27.1-6.05-64.76 31.17z"></path><path class="b shape-divider-fill" d="M288.42 342.23l9.46 1.25 82.4-26.37-27.1-6.05-64.76 31.17z"></path><path class="c shape-divider-fill" d="M288.42 342.23l9.46 1.25 82.4-26.37-27.1-6.05-64.76 31.17z"></path><path class="b shape-divider-fill" d="M380.28 317.11l-82.4 26.37 87.3 11.52h.34l94.27-15.71-99.51-22.18z"></path><path class="c shape-divider-fill" d="M380.28 317.11l-82.4 26.37 87.3 11.52h.34l94.27-15.71-99.51-22.18z"></path><path class="b shape-divider-fill" d="M380.28 317.11l-82.4 26.37 87.3 11.52h.34l94.27-15.71-99.51-22.18z"></path><path class="c shape-divider-fill" d="M380.28 317.11l-82.4 26.37 87.3 11.52h.34l94.27-15.71-99.51-22.18z"></path><path class="shape-divider-fill" d="M479.79 339.29L385.52 355h157.42l-12.93-4.51-50.22-11.2z"></path><path class="b shape-divider-fill" d="M479.79 339.29L385.52 355h157.42l-12.93-4.51-50.22-11.2z"></path><path class="c shape-divider-fill" d="M479.79 339.29L385.52 355h157.42l-12.93-4.51-50.22-11.2z"></path><path class="b shape-divider-fill" d="M479.79 339.29L385.52 355h157.42l-12.93-4.51-50.22-11.2z"></path><path class="c shape-divider-fill" d="M479.79 339.29L385.52 355h157.42l-12.93-4.51-50.22-11.2z"></path><path class="shape-divider-fill" d="M288.42 342.23L0 304.17V355h385.18l-87.3-11.52-9.46-1.25z"></path></svg>'; break; case 'valley-2': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 100" preserveAspectRatio="none"><path class="shape-divider-fill" d="M194,99c186.7,0.7,305-78.3,306-97.2c1,18.9,119.3,97.9,306,97.2c114.3-0.3,194,0.3,194,0.3s0-91.7,0-100c0,0,0,0,0-0 L0,0v99.3C0,99.3,79.7,98.7,194,99z"></path></svg>'; break; case 'valley-3': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 140" preserveAspectRatio="none"><path class="shape-divider-fill" d="M1280 0L640 70 0 0v140l640-70 640 70V0z" opacity="0.5"></path><path class="shape-divider-fill" d="M1280 0H0l640 70 640-70z"></path></svg>'; break; case 'mountain': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 100" preserveAspectRatio="none"><path class="shape-divider-fill" d="M500,98.9L0,6.1V0h1000v6.1L500,98.9z"></path></svg>'; break; case 'mountain-2': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 140" preserveAspectRatio="none"><path class="shape-divider-fill" d="M640 140L1280 0H0z" opacity="0.5"/><path class="shape-divider-fill" d="M640 98l640-98H0z"/></svg>'; break; case 'mountain-3': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 491.58" preserveAspectRatio="none"><g style="isolation:isolate"><path class="shape-divider-fill" d="M1000 479.4v-87.96L500 0 0 391.46v87.96l500-335.94 500 335.92z" opacity="0.12" mix-blend-mode="overlay"/><path class="shape-divider-fill" d="M1000 487.31v-7.91L500 143.48 0 479.42v7.91l500-297.96 500 297.94z" opacity="0.25" mix-blend-mode="overlay"/><path class="shape-divider-fill" d="M1000 487.31L500 189.37 0 487.33v4.25h1000v-4.27z"/></g></svg>'; break; case 'mountain-4': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 100" preserveAspectRatio="none"><path class="shape-divider-fill" d="M738,99l262-93V0H0v5.6L738,99z"></path></svg>'; break; case 'mountain-5': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 140" preserveAspectRatio="none"><path class="shape-divider-fill" d="M978.81 122.25L0 0h1280l-262.1 116.26a73.29 73.29 0 0 1-39.09 5.99z" opacity="0.5"></path><path class="shape-divider-fill" d="M983.19 95.23L0 0h1280l-266 91.52a72.58 72.58 0 0 1-30.81 3.71z"></path></svg>'; break; case 'mountains': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 100" preserveAspectRatio="none"><path class="shape-divider-fill" opacity="0.33" d="M473,67.3c-203.9,88.3-263.1-34-320.3,0C66,119.1,0,59.7,0,59.7V0h1000v59.7 c0,0-62.1,26.1-94.9,29.3c-32.8,3.3-62.8-12.3-75.8-22.1C806,49.6,745.3,8.7,694.9,4.7S492.4,59,473,67.3z"></path><path class="shape-divider-fill" opacity="0.66" d="M734,67.3c-45.5,0-77.2-23.2-129.1-39.1c-28.6-8.7-150.3-10.1-254,39.1 s-91.7-34.4-149.2,0C115.7,118.3,0,39.8,0,39.8V0h1000v36.5c0,0-28.2-18.5-92.1-18.5C810.2,18.1,775.7,67.3,734,67.3z"></path><path class="shape-divider-fill" d="M766.1,28.9c-200-57.5-266,65.5-395.1,19.5C242,1.8,242,5.4,184.8,20.6C128,35.8,132.3,44.9,89.9,52.5C28.6,63.7,0,0,0,0 h1000c0,0-9.9,40.9-83.6,48.1S829.6,47,766.1,28.9z"></path></svg>'; break; case 'mountains-2': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 247" preserveAspectRatio="none"><path class="shape-divider-fill" d="M0 200.92v.26l.75-.77-.75.51z"></path><path class="shape-divider-fill" d="M279.29 208.39c0-4.49 74.71-29.88 74.71-29.88l61.71 61.26L550 153.1l134.14 88.17L874.28 50 1000 178.51v-.33L874.28 0 684.14 191.27 550 103.1l-134.29 86.67L354 128.51s-74.71 25.39-74.71 29.88S144.23 52.08 144.23 52.08L.75 200.41l143.48-98.33s135.06 110.8 135.06 106.31z" opacity="0.25" isolation="isolate"></path><path class="shape-divider-fill" d="M1000 178.51L874.28 50 684.14 241.27 550 153.1l-134.29 86.67L354 178.51s-74.71 25.39-74.71 29.88-135.06-106.31-135.06-106.31L.75 200.41l-.75.77V247h1000z"></path><path class="shape-divider-fill" d="M1000 178.51L874.28 50 684.14 241.27 550 153.1l-134.29 86.67L354 178.51s-74.71 25.39-74.71 29.88-135.06-106.31-135.06-106.31L.75 200.41l-.75.77V247h1000z" opacity="0.25" isolation="isolate"></path></svg>'; break; case 'mountains-3': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 100" preserveAspectRatio="none"><path class="shape-divider-fill" d="M761.9,44.1L643.1,27.2L333.8,98L0,3.8V0l1000,0v3.9"></path></svg>'; break; case 'mountains-4': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 140" preserveAspectRatio="none"><path class="shape-divider-fill" d="M0 90.72l140-28.28 315.52 24.14L796.48 65.8 1140 104.89l140-14.17V0H0v90.72z" opacity="0.5"></path><path class="shape-divider-fill" d="M0 0v47.44L170 0l626.48 94.89L1110 87.11l170-39.67V0H0z"></path></svg>'; break; case 'plataeu': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 140" preserveAspectRatio="none"><path class="shape-divider-fill" d="M1280 0l-131.81 111.68c-16.47 14-35.47 21-54.71 20.17L173 94a76.85 76.85 0 0 1-36.79-11.46L0 0z"></path></svg>'; break; case 'plataeu-2': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 140" preserveAspectRatio="none"><path class="shape-divider-fill" d="M1093.48 131.85L173 94a76.85 76.85 0 0 1-36.79-11.46L0 0h1280l-131.81 111.68c-16.47 13.96-35.47 20.96-54.71 20.17z" opacity="0.5"></path><path class="shape-divider-fill" d="M1094.44 119L172.7 68.72a74.54 74.54 0 0 1-25.19-5.95L0 0h1280l-133.85 102c-15.84 12.09-33.7 17.95-51.71 17z"></path></svg>'; break; case 'hills': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 140" preserveAspectRatio="none"><path class="shape-divider-fill" d="M156.258 127.903l86.363-18.654 78.684 13.079L411.441 99.4l94.454 10.303L582.82 93.8l82.664 18.728 76.961-11.39L816.109 71.4l97.602 9.849L997.383 50.4l66.285 14.694 70.793-24.494h79.863L1280 0H0v122.138l60.613 9.965z"/></svg>'; break; case 'hills-2': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 140" preserveAspectRatio="none"><path class="shape-divider-fill" d="M1214.323 66.051h-79.863l-70.793 18.224-66.285-10.933-83.672 22.953-97.601-7.328-73.664 22.125-76.961 8.475-82.664-13.934-76.926 11.832-94.453-7.666-90.137 17.059-78.684-9.731-86.363 13.879-95.644 3.125L0 126.717V0h1280l-.001 35.844z" opacity="0.5"></path><path class="shape-divider-fill" d="M0 0h1280v.006l-70.676 36.578-74.863 4.641-70.793 23.334-66.285-11.678-83.672 29.618-97.602-7.07-63.664 21.421-76.961 12.649-91.664-20.798-77.926 17.66-94.453-7.574-90.137 21.595-78.683-9.884-86.363 16.074-95.645 6.211L0 127.905z"></path></svg>'; break; case 'hills-3': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 140" preserveAspectRatio="none"><path class="shape-divider-fill" d="M156 35.51l95.46 34.84 120.04.24 71.5 33.35 90.09-3.91L640 137.65l102.39-37.17 85.55 10.65 88.11-7.19L992 65.28l73.21 5.31 66.79-22.1 77-.42L1280 0H0l64.8 38.69 91.2-3.18z"/></svg>'; break; case 'hills-4': shape = '<svg viewBox="0 0 1280 140" preserveAspectRatio="none"><path class="shape-divider-fill" d="M156 35.41l95.46 34.73 120.04.25 71.5 33.24 90.09-3.89L640 137.25l102.39-37.06 85.55 10.61 88.11-7.17L992 65.08l73.21 5.31L1132 48.35l77-.42L1280 0H0l64.8 38.57 91.2-3.16z" opacity="0.5"/><path class="shape-divider-fill" d="M156 28.32l95.46 27.79 120.04.2L443 82.9l90.09-3.11L640 109.8l102.39-29.65 85.55 8.49 88.11-5.74L992 52.07l73.21 4.24L1132 38.68l77-.34L1280 0H0l64.8 30.86 91.2-2.54z"/></svg>'; break; case 'cloud': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 283.5 27.8" preserveAspectRatio="xMidYMax slice"><path class="shape-divider-fill" d="M0 0v6.7c1.9-.8 4.7-1.4 8.5-1 9.5 1.1 11.1 6 11.1 6s2.1-.7 4.3-.2c2.1.5 2.8 2.6 2.8 2.6s.2-.5 1.4-.7c1.2-.2 1.7.2 1.7.2s0-2.1 1.9-2.8c1.9-.7 3.6.7 3.6.7s.7-2.9 3.1-4.1 4.7 0 4.7 0 1.2-.5 2.4 0 1.7 1.4 1.7 1.4h1.4c.7 0 1.2.7 1.2.7s.8-1.8 4-2.2c3.5-.4 5.3 2.4 6.2 4.4.4-.4 1-.7 1.8-.9 2.8-.7 4 .7 4 .7s1.7-5 11.1-6c9.5-1.1 12.3 3.9 12.3 3.9s1.2-4.8 5.7-5.7c4.5-.9 6.8 1.8 6.8 1.8s.6-.6 1.5-.9c.9-.2 1.9-.2 1.9-.2s5.2-6.4 12.6-3.3c7.3 3.1 4.7 9 4.7 9s1.9-.9 4 0 2.8 2.4 2.8 2.4 1.9-1.2 4.5-1.2 4.3 1.2 4.3 1.2.2-1 1.4-1.7 2.1-.7 2.1-.7-.5-3.1 2.1-5.5 5.7-1.4 5.7-1.4 1.5-2.3 4.2-1.1c2.7 1.2 1.7 5.2 1.7 5.2s.3-.1 1.3.5c.5.4.8.8.9 1.1.5-1.4 2.4-5.8 8.4-4 7.1 2.1 3.5 8.9 3.5 8.9s.8-.4 2 0 1.1 1.1 1.1 1.1 1.1-1.1 2.3-1.1 2.1.5 2.1.5 1.9-3.6 6.2-1.2 1.9 6.4 1.9 6.4 2.6-2.4 7.4 0c3.4 1.7 3.9 4.9 3.9 4.9s3.3-6.9 10.4-7.9 11.5 2.6 11.5 2.6.8 0 1.2.2c.4.2.9.9.9.9s4.4-3.1 8.3.2c1.9 1.7 1.5 5 1.5 5s.3-1.1 1.6-1.4c1.3-.3 2.3.2 2.3.2s-.1-1.2.5-1.9 1.9-.9 1.9-.9-4.7-9.3 4.4-13.4c5.6-2.5 9.2.9 9.2.9s5-6.2 15.9-6.2 16.1 8.1 16.1 8.1.7-.2 1.6-.4V0H0z"></path></svg>'; break; case 'cloud-2': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 86" preserveAspectRatio="xMidYMid slice"><path class="shape-divider-fill" d="M1280 0H0v65.2c6.8 0 13.5.9 20.1 2.6 14-21.8 43.1-28 64.8-14 5.6 3.6 10.3 8.3 14 13.9 7.3-1.2 14.8-.6 21.8 1.6 2.1-37.3 34.1-65.8 71.4-63.7 24.3 1.4 46 15.7 56.8 37.6 19-17.6 48.6-16.5 66.3 2.4C323 54 327.4 65 327.7 76.5c.4.2.8.4 1.2.7 3.3 1.9 6.3 4.2 8.9 6.9 15.9-23.8 46.1-33.4 72.8-23.3 11.6-31.9 46.9-48.3 78.8-36.6 9.1 3.3 17.2 8.7 23.8 15.7 6.7-6.6 16.7-8.4 25.4-4.8 29.3-37.4 83.3-44 120.7-14.8 14 11 24.3 26.1 29.4 43.1 4.7.6 9.3 1.8 13.6 3.8 7.8-24.7 34.2-38.3 58.9-30.5 14.4 4.6 25.6 15.7 30.3 30 14.2 1.2 27.7 6.9 38.5 16.2 11.1-35.7 49-55.7 84.7-44.7 14.1 4.4 26.4 13.3 35 25.3 12-5.7 26.1-5.5 37.9.6 3.9-11.6 15.5-18.9 27.7-17.5.2-.3.3-.6.5-.9 23.3-41.4 75.8-56 117.2-32.6 14.1 7.9 25.6 19.7 33.3 33.8 28.8-23.8 71.5-19.8 95.3 9 2.6 3.1 4.9 6.5 6.9 10 3.8-.5 7.6-.8 11.4-.8L1280 0z"/></svg>'; break; case 'cloud-3': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 86" preserveAspectRatio="xMidYMid slice"><path class="shape-divider-fill" d="M833.9 27.5c-5.8 3.2-11 7.3-15.5 12.2-7.1-6.9-17.5-8.8-26.6-5-30.6-39.2-87.3-46.1-126.5-15.5-1.4 1.1-2.8 2.2-4.1 3.4C674.4 33.4 684 48 688.8 64.3c4.7.6 9.3 1.8 13.6 3.8 7.8-24.7 34.2-38.3 58.9-30.5 14.4 4.6 25.6 15.7 30.3 30 14.2 1.2 27.7 6.9 38.5 16.2C840.6 49.6 876 29.5 910.8 38c-20.4-20.3-51.8-24.6-76.9-10.5zM384 43.9c-9 5-16.7 11.9-22.7 20.3 15.4-7.8 33.3-8.7 49.4-2.6 3.7-10.1 9.9-19.1 18.1-26-15.4-2.3-31.2.6-44.8 8.3zm560.2 13.6c2 2.2 3.9 4.5 5.7 6.9 5.6-2.6 11.6-4 17.8-4.1-7.6-2.4-15.6-3.3-23.5-2.8zM178.7 7c29-4.2 57.3 10.8 70.3 37 8.9-8.3 20.7-12.8 32.9-12.5C256.4 1.8 214.7-8.1 178.7 7zm146.5 56.3c1.5 4.5 2.4 9.2 2.5 14 .4.2.8.4 1.2.7 3.3 1.9 6.3 4.2 8.9 6.9 5.8-8.7 13.7-15.7 22.9-20.5-11.1-5.2-23.9-5.6-35.5-1.1zM33.5 54.9c21.6-14.4 50.7-8.5 65 13 .1.2.2.3.3.5 7.3-1.2 14.8-.6 21.8 1.6.6-10.3 3.5-20.4 8.6-29.4.3-.6.7-1.2 1.1-1.8-32.1-17.2-71.9-10.6-96.8 16.1zm1228.9 2.7c2.3 2.9 4.4 5.9 6.2 9.1 3.8-.5 7.6-.8 11.4-.8V48.3c-6.4 1.8-12.4 5-17.6 9.3zM1127.3 11c1.9.9 3.7 1.8 5.6 2.8 14.2 7.9 25.8 19.7 33.5 34 13.9-11.4 31.7-16.9 49.6-15.3-20.5-27.7-57.8-36.8-88.7-21.5z" opacity="0.5"/><path class="shape-divider-fill" d="M0 0v66c6.8 0 13.5.9 20.1 2.6 3.5-5.4 8.1-10.1 13.4-13.6 24.9-26.8 64.7-33.4 96.8-16 10.5-17.4 28.2-29.1 48.3-32 36.1-15.1 77.7-5.2 103.2 24.5 19.7.4 37.1 13.1 43.4 31.8 11.5-4.5 24.4-4.2 35.6 1.1l.4-.2c15.4-21.4 41.5-32.4 67.6-28.6 25-21 62.1-18.8 84.4 5.1 6.7-6.6 16.7-8.4 25.4-4.8 29.2-37.4 83.3-44.1 120.7-14.8l1.8 1.5c37.3-32.9 94.3-29.3 127.2 8 1.2 1.3 2.3 2.7 3.4 4.1 9.1-3.8 19.5-1.9 26.6 5 24.3-26 65-27.3 91-3.1.5.5 1 .9 1.5 1.4 12.8 3.1 24.4 9.9 33.4 19.5 7.9-.5 15.9.4 23.5 2.8 7-.1 13.9 1.5 20.1 4.7 3.9-11.6 15.5-18.9 27.7-17.5.2-.3.3-.6.5-.9 22.1-39.2 70.7-54.7 111.4-35.6 30.8-15.3 68.2-6.2 88.6 21.5 18.3 1.7 35 10.8 46.5 25.1 5.2-4.3 11.1-7.4 17.6-9.3V0H0z"/></svg>'; break; case 'wave': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 100" preserveAspectRatio="none"><path class="shape-divider-fill" d="M421.9,6.5c22.6-2.5,51.5,0.4,75.5,5.3c23.6,4.9,70.9,23.5,100.5,35.7c75.8,32.2,133.7,44.5,192.6,49.7c23.6,2.1,48.7,3.5,103.4-2.5c54.7-6,106.2-25.6,106.2-25.6V0H0v30.3c0,0,72,32.6,158.4,30.5c39.2-0.7,92.8-6.7,134-22.4c21.2-8.1,52.2-18.2,79.7-24.2C399.3,7.9,411.6,7.5,421.9,6.5z"></path></svg>'; break; case 'wave-2': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 283.5 27.8" preserveAspectRatio="none"><path class="shape-divider-fill" d="M283.5,9.7c0,0-7.3,4.3-14,4.6c-6.8,0.3-12.6,0-20.9-1.5c-11.3-2-33.1-10.1-44.7-5.7 s-12.1,4.6-18,7.4c-6.6,3.2-20,9.6-36.6,9.3C131.6,23.5,99.5,7.2,86.3,8c-1.4,0.1-6.6,0.8-10.5,2c-3.8,1.2-9.4,3.8-17,4.7 c-3.2,0.4-8.3,1.1-14.2,0.9c-1.5-0.1-6.3-0.4-12-1.6c-5.7-1.2-11-3.1-15.8-3.7C6.5,9.2,0,10.8,0,10.8V0h283.5V9.7z M260.8,11.3 c-0.7-1-2-0.4-4.3-0.4c-2.3,0-6.1-1.2-5.8-1.1c0.3,0.1,3.1,1.5,6,1.9C259.7,12.2,261.4,12.3,260.8,11.3z M242.4,8.6 c0,0-2.4-0.2-5.6-0.9c-3.2-0.8-10.3-2.8-15.1-3.5c-8.2-1.1-15.8,0-15.1,0.1c0.8,0.1,9.6-0.6,17.6,1.1c3.3,0.7,9.3,2.2,12.4,2.7 C239.9,8.7,242.4,8.6,242.4,8.6z M185.2,8.5c1.7-0.7-13.3,4.7-18.5,6.1c-2.1,0.6-6.2,1.6-10,2c-3.9,0.4-8.9,0.4-8.8,0.5 c0,0.2,5.8,0.8,11.2,0c5.4-0.8,5.2-1.1,7.6-1.6C170.5,14.7,183.5,9.2,185.2,8.5z M199.1,6.9c0.2,0-0.8-0.4-4.8,1.1 c-4,1.5-6.7,3.5-6.9,3.7c-0.2,0.1,3.5-1.8,6.6-3C197,7.5,199,6.9,199.1,6.9z M283,6c-0.1,0.1-1.9,1.1-4.8,2.5s-6.9,2.8-6.7,2.7 c0.2,0,3.5-0.6,7.4-2.5C282.8,6.8,283.1,5.9,283,6z M31.3,11.6c0.1-0.2-1.9-0.2-4.5-1.2s-5.4-1.6-7.8-2C15,7.6,7.3,8.5,7.7,8.6 C8,8.7,15.9,8.3,20.2,9.3c2.2,0.5,2.4,0.5,5.7,1.6S31.2,11.9,31.3,11.6z M73,9.2c0.4-0.1,3.5-1.6,8.4-2.6c4.9-1.1,8.9-0.5,8.9-0.8 c0-0.3-1-0.9-6.2-0.3S72.6,9.3,73,9.2z M71.6,6.7C71.8,6.8,75,5.4,77.3,5c2.3-0.3,1.9-0.5,1.9-0.6c0-0.1-1.1-0.2-2.7,0.2 C74.8,5.1,71.4,6.6,71.6,6.7z M93.6,4.4c0.1,0.2,3.5,0.8,5.6,1.8c2.1,1,1.8,0.6,1.9,0.5c0.1-0.1-0.8-0.8-2.4-1.3 C97.1,4.8,93.5,4.2,93.6,4.4z M65.4,11.1c-0.1,0.3,0.3,0.5,1.9-0.2s2.6-1.3,2.2-1.2s-0.9,0.4-2.5,0.8C65.3,10.9,65.5,10.8,65.4,11.1 z M34.5,12.4c-0.2,0,2.1,0.8,3.3,0.9c1.2,0.1,2,0.1,2-0.2c0-0.3-0.1-0.5-1.6-0.4C36.6,12.8,34.7,12.4,34.5,12.4z M152.2,21.1 c-0.1,0.1-2.4-0.3-7.5-0.3c-5,0-13.6-2.4-17.2-3.5c-3.6-1.1,10,3.9,16.5,4.1C150.5,21.6,152.3,21,152.2,21.1z"></path><path class="shape-divider-fill" d="M269.6,18c-0.1-0.1-4.6,0.3-7.2,0c-7.3-0.7-17-3.2-16.6-2.9c0.4,0.3,13.7,3.1,17,3.3 C267.7,18.8,269.7,18,269.6,18z"></path><path class="shape-divider-fill" d="M227.4,9.8c-0.2-0.1-4.5-1-9.5-1.2c-5-0.2-12.7,0.6-12.3,0.5c0.3-0.1,5.9-1.8,13.3-1.2 S227.6,9.9,227.4,9.8z"></path><path class="shape-divider-fill" d="M204.5,13.4c-0.1-0.1,2-1,3.2-1.1c1.2-0.1,2,0,2,0.3c0,0.3-0.1,0.5-1.6,0.4 C206.4,12.9,204.6,13.5,204.5,13.4z"></path><path class="shape-divider-fill" d="M201,10.6c0-0.1-4.4,1.2-6.3,2.2c-1.9,0.9-6.2,3.1-6.1,3.1c0.1,0.1,4.2-1.6,6.3-2.6 S201,10.7,201,10.6z"></path><path class="shape-divider-fill" d="M154.5,26.7c-0.1-0.1-4.6,0.3-7.2,0c-7.3-0.7-17-3.2-16.6-2.9c0.4,0.3,13.7,3.1,17,3.3 C152.6,27.5,154.6,26.8,154.5,26.7z"></path><path class="shape-divider-fill" d="M41.9,19.3c0,0,1.2-0.3,2.9-0.1c1.7,0.2,5.8,0.9,8.2,0.7c4.2-0.4,7.4-2.7,7-2.6 c-0.4,0-4.3,2.2-8.6,1.9c-1.8-0.1-5.1-0.5-6.7-0.4S41.9,19.3,41.9,19.3z"></path><path class="shape-divider-fill" d="M75.5,12.6c0.2,0.1,2-0.8,4.3-1.1c2.3-0.2,2.1-0.3,2.1-0.5c0-0.1-1.8-0.4-3.4,0 C76.9,11.5,75.3,12.5,75.5,12.6z"></path><path class="shape-divider-fill" d="M15.6,13.2c0-0.1,4.3,0,6.7,0.5c2.4,0.5,5,1.9,5,2c0,0.1-2.7-0.8-5.1-1.4 C19.9,13.7,15.7,13.3,15.6,13.2z"></path></svg>'; break; case 'wave-3': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1047.1 3.7" preserveAspectRatio="xMidYMin slice"><path class="shape-divider-fill" d="M1047.1,0C557,0,8.9,0,0,0v1.6c0,0,0.6-1.5,2.7-0.3C3.9,2,6.1,4.1,8.3,3.5c0.9-0.2,1.5-1.9,1.5-1.9 s0.6-1.5,2.7-0.3C13.8,2,16,4.1,18.2,3.5c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3C23.6,2,25.9,4.1,28,3.5c0.9-0.2,1.5-1.9,1.5-1.9 c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3C63,2,65.3,4.1,67.4,3.5 C68.3,3.3,69,1.6,69,1.6s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3 C82.7,2,85,4.1,87.1,3.5c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3C92.6,2,94.8,4.1,97,3.5c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9 c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9c0,0,0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2 c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.7-0.3 c1.2,0.7,3.5,2.8,5.6,2.2c0.9-0.2,1.5-1.9,1.5-1.9s0.6-1.5,2.6-0.4V0z M2.5,1.2C2.5,1.2,2.5,1.2,2.5,1.2C2.5,1.2,2.5,1.2,2.5,1.2z M2.7,1.4c0.1,0,0.1,0.1,0.1,0.1C2.8,1.4,2.8,1.4,2.7,1.4z"></path></svg>'; break; case 'wave-4': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 140" preserveAspectRatio="none"><path class="shape-divider-fill" d="M0 51.76c36.21-2.25 77.57-3.58 126.42-3.58 320 0 320 57 640 57 271.15 0 312.58-40.91 513.58-53.4V0H0z" opacity="0.3"></path><path class="shape-divider-fill" d="M0 24.31c43.46-5.69 94.56-9.25 158.42-9.25 320 0 320 89.24 640 89.24 256.13 0 307.28-57.16 481.58-80V0H0z" opacity="0.5"></path><path class="shape-divider-fill" d="M0 0v3.4C28.2 1.6 59.4.59 94.42.59c320 0 320 84.3 640 84.3 285 0 316.17-66.85 545.58-81.49V0z"></path></svg>'; break; case 'wave-5': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 140" preserveAspectRatio="none"><path class="shape-divider-fill" d="M0 0v100c20 17.3 40 29.51 80 29.51 51.79 0 74.69-48.57 151.75-48.57 73.72 0 91 54.88 191.56 54.88C543.95 135.8 554 14 665.69 14c109.46 0 98.85 87 188.2 87 70.37 0 69.81-33.73 115.6-33.73 55.85 0 62 39.62 115.6 39.62 58.08 0 57.52-46.59 115-46.59 39.8 0 60 22.48 79.89 39.69V0z"></path></svg>'; break; case 'wave-6': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 140" preserveAspectRatio="none"><path class="shape-divider-fill" d="M504.854,80.066c7.812,0,14.893,0.318,21.41,0.879 c-25.925,22.475-56.093,40.852-102.946,40.852c-20.779,0-37.996-2.349-52.898-6.07C413.517,107.295,434.056,80.066,504.854,80.066z M775.938,51.947c19.145,18.596,39.097,35.051,77.956,35.051c46.907,0,62.299-14.986,80.912-24.98 c-21.357-15.783-46.804-28.348-85.489-28.348C816.829,33.671,794.233,41.411,775.938,51.947z" opacity="0.3"></path><path class="shape-divider-fill" d="M1200.112,46.292c39.804,0,59.986,22.479,79.888,39.69v16.805 c-19.903-10.835-40.084-21.777-79.888-21.777c-72.014,0-78.715,43.559-147.964,43.559c-56.84,0-81.247-35.876-117.342-62.552 c9.309-4.998,19.423-8.749,34.69-8.749c55.846,0,61.99,39.617,115.602,39.617C1143.177,92.887,1142.618,46.292,1200.112,46.292z M80.011,115.488c-40.006,0-60.008-12.206-80.011-29.506v16.806c20.003,10.891,40.005,21.782,80.011,21.782 c80.004,0,78.597-30.407,137.669-30.407c55.971,0,62.526,24.026,126.337,24.026c9.858,0,18.509-0.916,26.404-2.461 c-57.186-14.278-80.177-48.808-138.66-48.808C154.698,66.919,131.801,115.488,80.011,115.488z M526.265,80.945 c56.848,4.902,70.056,28.726,137.193,28.726c54.001,0,73.43-35.237,112.48-57.724C751.06,27.782,727.548,0,665.691,0 C597.381,0,567.086,45.555,526.265,80.945z" opacity="0.5"></path><path class="shape-divider-fill" d="M0,0v85.982c20.003,17.3,40.005,29.506,80.011,29.506c51.791,0,74.688-48.569,151.751-48.569 c58.482,0,81.473,34.531,138.66,48.808c43.096-8.432,63.634-35.662,134.433-35.662c7.812,0,14.893,0.318,21.41,0.879 C567.086,45.555,597.381,0,665.691,0c61.856,0,85.369,27.782,110.246,51.947c18.295-10.536,40.891-18.276,73.378-18.276 c38.685,0,64.132,12.564,85.489,28.348c9.309-4.998,19.423-8.749,34.69-8.749c55.846,0,61.99,39.617,115.602,39.617 c58.08,0,57.521-46.595,115.015-46.595c39.804,0,59.986,22.479,79.888,39.69V0H0z"></path></svg>'; break; case 'slant': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 100" preserveAspectRatio="none"><path class="shape-divider-fill" d="M0,6V0h1000v100L0,6z"></path></svg>'; break; case 'slant-2': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2600 131.1" preserveAspectRatio="none"><path class="shape-divider-fill" d="M0 0L2600 0 2600 69.1 0 0z"></path><path class="shape-divider-fill" opacity="0.5" d="M0 0L2600 0 2600 69.1 0 69.1z"></path><path class="shape-divider-fill" opacity="0.25" d="M2600 0L0 0 0 130.1 2600 69.1z"></path></svg>'; break; case 'slant-3': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 140" preserveAspectRatio="none"><path class="shape-divider-fill" d="M1280 140V0H0l1280 140z" opacity="0.5"></path><path class="shape-divider-fill" d="M1280 98V0H0l1280 98z"></path></svg>'; break; case 'rounded': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 100" preserveAspectRatio="none"><path class="shape-divider-fill" d="M1000,4.3V0H0v4.3C0.9,23.1,126.7,99.2,500,100S1000,22.7,1000,4.3z"></path></svg>'; break; case 'rounded-2': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 100" preserveAspectRatio="none"><path class="shape-divider-fill" d="M0,0c0,0,0,6,0,6.7c0,18,240.2,93.6,615.2,92.6C989.8,98.5,1000,25,1000,6.7c0-0.7,0-6.7,0-6.7H0z"></path></svg>'; break; case 'rounded-3': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 140" preserveAspectRatio="none"><path class="shape-divider-fill" d="M0 0s573.08 140 1280 140V0z"></path></svg>'; break; case 'rounded-4': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 140" preserveAspectRatio="none"><path class="shape-divider-fill" d="M0 0v60s573.09 80 1280 80V0z" opacity="0.3"></path><path class="shape-divider-fill" d="M0 0v30s573.09 110 1280 110V0z" opacity="0.5"></path><path class="shape-divider-fill" d="M0 0s573.09 140 1280 140V0z"></path></svg>'; break; case 'rounded-5': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 140" preserveAspectRatio="none"><path class="shape-divider-fill" d="M0 0v.48C18.62 9.38 297.81 140 639.5 140 993.24 140 1280 0 1280 0z" opacity="0.3"></path><path class="shape-divider-fill" d="M0 .6c14 8.28 176.54 99.8 555.45 119.14C952.41 140 1280 0 1280 0H0z" opacity="0.5"></path><path class="shape-divider-fill" d="M726.29 101.2C1126.36 79.92 1281 0 1281 0H1c.05 0 325.25 122.48 725.29 101.2z"></path></svg>'; break; case 'triangle': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 700 10" preserveAspectRatio="none"><path class="shape-divider-fill" d="M350,10L340,0h20L350,10z"></path></svg>'; break; case 'drops': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 283.5 27.8" preserveAspectRatio="xMidYMax slice"><path class="shape-divider-fill" d="M0 0v1.4c.6.7 1.1 1.4 1.4 2 2 3.8 2.2 6.6 1.8 10.8-.3 3.3-2.4 9.4 0 12.3 1.7 2 3.7 1.4 4.6-.9 1.4-3.8-.7-8.2-.6-12 .1-3.7 3.2-5.5 6.9-4.9 4 .6 4.8 4 4.9 7.4.1 1.8-1.1 7 0 8.5.6.8 1.6 1.2 2.4.5 1.4-1.1.1-5.4.1-6.9.1-3.7.3-8.6 4.1-10.5 5-2.5 6.2 1.6 5.4 5.6-.4 1.7-1 9.2 2.9 6.3 1.5-1.1.7-3.5.5-4.9-.4-2.4-.4-4.3 1-6.5.9-1.4 2.4-3.1 4.2-3 2.4.1 2.7 2.2 4 3.7 1.5 1.8 1.8 2.2 3 .1 1.1-1.9 1.2-2.8 3.6-3.3 1.3-.3 4.8-1.4 5.9-.5 1.5 1.1.6 2.8.4 4.3-.2 1.1-.6 4 1.8 3.4 1.7-.4-.3-4.1.6-5.6 1.3-2.2 5.8-1.4 7 .5 1.3 2.1.5 5.8.1 8.1s-1.2 5-.6 7.4c1.3 5.1 4.4.9 4.3-2.4-.1-4.4-2-8.8-.5-13 .9-2.4 4.6-6.6 7.7-4.5 2.7 1.8.5 7.8.2 10.3-.2 1.7-.8 4.6.2 6.2.9 1.4 2 1.5 2.6-.3.5-1.5-.9-4.5-1-6.1-.2-1.7-.4-3.7.2-5.4 1.8-5.6 3.5 2.4 6.3.6 1.4-.9 4.3-9.4 6.1-3.1.6 2.2-1.3 7.8.7 8.9 4.2 2.3 1.5-7.1 2.2-8 3.1-4 4.7 3.8 6.1 4.1 3.1.7 2.8-7.9 8.1-4.5 1.7 1.1 2.9 3.3 3.2 5.2.4 2.2-1 4.5-.6 6.6 1 4.3 4.4 1.5 4.4-1.7 0-2.7-3-8.3 1.4-9.1 4.4-.9 7.3 3.5 7.8 6.9.3 2-1.5 10.9 1.3 11.3 4.1.6-3.2-15.7 4.8-15.8 4.7-.1 2.8 4.1 3.9 6.6 1 2.4 2.1 1 2.3-.8.3-1.9-.9-3.2 1.3-4.3 5.9-2.9 5.9 5.4 5.5 8.5-.3 2-1.7 8.4 2 8.1 6.9-.5-2.8-16.9 4.8-18.7 4.7-1.2 6.1 3.6 6.3 7.1.1 1.7-1.2 8.1.6 9.1 3.5 2 1.9-7 2-8.4.2-4 1.2-9.6 6.4-9.8 4.7-.2 3.2 4.6 2.7 7.5-.4 2.2 1.3 8.6 3.8 4.4 1.1-1.9-.3-4.1-.3-6 0-1.7.4-3.2 1.3-4.6 1-1.6 2.9-3.5 5.1-2.9 2.5.6 2.3 4.1 4.1 4.9 1.9.8 1.6-.9 2.3-2.1 1.2-2.1 2.1-2.1 4.4-2.4 1.4-.2 3.6-1.5 4.9-.5 2.3 1.7-.7 4.4.1 6.5.6 1.5 2.1 1.7 2.8.3.7-1.4-1.1-3.4-.3-4.8 1.4-2.5 6.2-1.2 7.2 1 2.3 4.8-3.3 12-.2 16.3 3 4.1 3.9-2.8 3.8-4.8-.4-4.3-2.1-8.9 0-13.1 1.3-2.5 5.9-5.7 7.9-2.4 2 3.2-1.3 9.8-.8 13.4.5 4.4 3.5 3.3 2.7-.8-.4-1.9-2.4-10 .6-11.1 3.7-1.4 2.8 7.2 6.5.4 2.2-4.1 4.9-3.1 5.2 1.2.1 1.5-.6 3.1-.4 4.6.2 1.9 1.8 3.7 3.3 1.3 1-1.6-2.6-10.4 2.9-7.3 2.6 1.5 1.6 6.5 4.8 2.7 1.3-1.5 1.7-3.6 4-3.7 2.2-.1 4 2.3 4.8 4.1 1.3 2.9-1.5 8.4.9 10.3 4.2 3.3 3-5.5 2.7-6.9-.6-3.9 1-7.2 5.5-5 4.1 2.1 4.3 7.7 4.1 11.6 0 .8-.6 9.5 2.5 5.2 1.2-1.7-.1-7.7.1-9.6.3-2.9 1.2-5.5 4.3-6.2 4.5-1 7.7 1.5 7.4 5.8-.2 3.5-1.8 7.7-.5 11.1 1 2.7 3.6 2.8 5 .2 1.6-3.1 0-8.3-.4-11.6-.4-4.2-.2-7 1.8-10.8 0 0-.1.1-.1.2-.2.4-.3.7-.4.8v.1c-.1.2-.1.2 0 0v-.1l.4-.8c0-.1.1-.1.1-.2.2-.4.5-.8.8-1.2V0H0zM282.7 3.4z"></path></svg>'; break; case 'cliff': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 279.24" preserveAspectRatio="none"><path class="shape-divider-fill" d="M1000 0S331.54-4.18 0 279.24h1000z" opacity="0.25"></path><path class="shape-divider-fill" d="M1000 279.24s-339.56-44.3-522.95-109.6S132.86 23.76 0 25.15v254.09z"></path></svg>'; break; case 'zigzag': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 5.8" preserveAspectRatio="none"><path class="shape-divider-fill" d="M5.4.4l5.4 5.3L16.5.4l5.4 5.3L27.5.4 33 5.7 38.6.4l5.5 5.4h.1L49.9.4l5.4 5.3L60.9.4l5.5 5.3L72 .4l5.5 5.3L83.1.4l5.4 5.3L94.1.4l5.5 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.4 5.3L161 .4l5.4 5.3L172 .4l5.5 5.3 5.6-5.3 5.4 5.3 5.7-5.3 5.4 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.5 5.3L261 .4l5.4 5.3L272 .4l5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.7-5.4 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.7-5.3 5.4 5.4h.2l5.6-5.4 5.5 5.3L361 .4l5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.7-5.4 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.6-5.4 5.5 5.3L461 .4l5.5 5.3 5.6-5.3 5.4 5.3 5.7-5.3 5.4 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1L550 .4l5.4 5.3L561 .4l5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.4 5.3 5.7-5.3 5.4 5.3 5.6-5.3 5.5 5.4h.2L650 .4l5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.4h.2L750 .4l5.5 5.3 5.6-5.3 5.4 5.3 5.7-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.7-5.4 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.4h.2L850 .4l5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.4 5.3 5.7-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.7-5.4 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.4 5.3 5.7-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.7-5.4 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.7-5.4 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.7-5.3 5.4 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.6-5.4 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.7-5.3 5.4 5.4h.2l5.6-5.4 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.7-5.4 5.4 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.5 5.4h.1l5.6-5.4 5.5 5.3 5.6-5.3 5.5 5.3 5.6-5.3 5.4 5.3 5.7-5.3 5.4 5.3 5.6-5.3 5.5 5.4V0H-.2v5.8z"></path></svg>'; break; case 'illusion': shape = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 283.5 19.6" preserveAspectRatio="none"><path class="shape-divider-fill" opacity="0.33" d="M0 0L0 18.8 141.8 4.1 283.5 18.8 283.5 0z"></path><path class="shape-divider-fill" opacity="0.33" d="M0 0L0 12.6 141.8 4 283.5 12.6 283.5 0z"></path><path class="shape-divider-fill" opacity="0.33" d="M0 0L0 6.4 141.8 4 283.5 6.4 283.5 0z"></path><path class="shape-divider-fill" d="M0 0L0 1.2 141.8 4 283.5 1.2 283.5 0z"></path></svg>'; break; default: shape = ''; break; } element.html(shape); element.find('svg').addClass('op-ts'); setTimeout(function () { element.find('svg').addClass('op-1'); }, 500); }); }; /*! * Theia Sticky Sidebar v1.7.0 * https://github.com/WeCodePixels/theia-sticky-sidebar */ !function (i) { i.fn.scwStickySidebar = function (t) { function e (t, e) { var a = o(t, e); a || (console.log( 'TSS: Body width smaller than options.minWidth. Init is delayed.'), i( document). on('scroll.' + t.namespace, function (t, e) { return function (a) { var n = o(t, e); n && i(this).unbind(a); }; }(t, e)), i(window). on('resize.' + t.namespace, function (t, e) { return function (a) { var n = o(t, e); n && i(this).unbind(a); }; }(t, e))); } function o (t, e) { return t.initialized === !0 || !(i('body').width() < t.minWidth) && (a(t, e), !0); } function a (t, e) { t.initialized = !0; var o = i('#scw-sticky-sidebar-stylesheet-' + t.namespace); 0 === o.length && i('head'). append(i('<style id="scw-sticky-sidebar-stylesheet-' + t.namespace + '">.scwStickySidebar:after {content: ""; display: table; clear: both;}</style>')), e.each( function () { function e () { a.fixedScrollTop = 0, a.sidebar.css( { 'min-height': '1px' }), a.stickySidebar.css({ position: 'static', width: '', transform: 'none', }); } function o (t) { var e = t.height(); return t.children(). each(function () { e = Math.max(e, i(this).height()); }), e; } var a = {}; if (a.sidebar = i(this), a.options = t || {}, a.container = i(a.options.containerSelector), 0 == a.container.length && (a.container = a.sidebar.parent()), a.sidebar.parents(). css('-webkit-transform', 'none'), a.sidebar.css({ position: a.options.defaultPosition, overflow: 'visible', '-webkit-box-sizing': 'border-box', '-moz-box-sizing': 'border-box', 'box-sizing': 'border-box', }), a.stickySidebar = a.sidebar.find( '.scwStickySidebar'), 0 == a.stickySidebar.length) { var s = /(?:text|application)\/(?:x-)?(?:javascript|ecmascript)/i; a.sidebar.find('script'). filter(function (i, t) { return 0 === t.type.length || t.type.match(s); }). remove(), a.stickySidebar = i('<div>'). addClass('scwStickySidebar'). append(a.sidebar.children()), a.sidebar.append( a.stickySidebar); } a.marginBottom = parseInt(a.sidebar.css( 'margin-bottom')), a.paddingTop = parseInt( a.sidebar.css( 'padding-top')), a.paddingBottom = parseInt( a.sidebar.css('padding-bottom')); var r = a.stickySidebar.offset().top, d = a.stickySidebar.outerHeight(); a.stickySidebar.css('padding-top', 1), a.stickySidebar.css( 'padding-bottom', 1), r -= a.stickySidebar.offset().top, d = a.stickySidebar.outerHeight() - d - r, 0 == r ? (a.stickySidebar.css('padding-top', 0), a.stickySidebarPaddingTop = 0) : a.stickySidebarPaddingTop = 1, 0 == d ? (a.stickySidebar.css('padding-bottom', 0), a.stickySidebarPaddingBottom = 0) : a.stickySidebarPaddingBottom = 1, a.previousScrollTop = null, a.fixedScrollTop = 0, e(), a.onScroll = function (a) { if (a.stickySidebar.is(':visible')) { if (i('body').width() < a.options.minWidth) return void e(); if (a.options.disableOnResponsiveLayouts) { var s = a.sidebar.outerWidth( 'none' == a.sidebar.css('float')); if (s + 50 > a.container.width()) return void e(); } var r = i(document).scrollTop(), d = 'static'; if (r >= a.sidebar.offset().top + (a.paddingTop - a.options.additionalMarginTop)) { var c, p = a.paddingTop + t.additionalMarginTop, b = a.paddingBottom + a.marginBottom + t.additionalMarginBottom, l = a.sidebar.offset().top, f = a.sidebar.offset().top + o(a.container), h = 0 + t.additionalMarginTop, g = a.stickySidebar.outerHeight() + p + b < i(window).height(); c = g ? h + a.stickySidebar.outerHeight() : i( window).height() - a.marginBottom - a.paddingBottom - t.additionalMarginBottom; var u = l - r + a.paddingTop, S = f - r - a.paddingBottom - a.marginBottom, y = a.stickySidebar.offset().top - r, m = a.previousScrollTop - r; 'fixed' == a.stickySidebar.css('position') && 'modern' == a.options.sidebarBehavior && (y += m), 'stick-to-top' == a.options.sidebarBehavior && (y = t.additionalMarginTop), 'stick-to-bottom' == a.options.sidebarBehavior && (y = c - a.stickySidebar.outerHeight()), y = m > 0 ? Math.min(y, h) : Math.max(y, c - a.stickySidebar.outerHeight()), y = Math.max( y, u), y = Math.min(y, S - a.stickySidebar.outerHeight()); var k = a.container.height() == a.stickySidebar.outerHeight(); d = (k || y != h) && (k || y != c - a.stickySidebar.outerHeight()) ? r + y - a.sidebar.offset().top - a.paddingTop <= t.additionalMarginTop ? 'static' : 'absolute' : 'fixed'; } if ('fixed' == d) { var v = i(document).scrollLeft(); a.stickySidebar.css({ position: 'fixed', width: n(a.stickySidebar) + 'px', transform: 'translateY(' + y + 'px)', left: a.sidebar.offset().left + parseInt( a.sidebar.css('padding-left')) - v + 'px', top: '0px', }); } else if ('absolute' == d) { var x = {}; 'absolute' != a.stickySidebar.css('position') && (x.position = 'absolute', x.transform = 'translateY(' + (r + y - a.sidebar.offset().top - a.stickySidebarPaddingTop - a.stickySidebarPaddingBottom) + 'px)', x.top = '0px'), x.width = n( a.stickySidebar) + 'px', x.left = '', a.stickySidebar.css(x); } else 'static' == d && e(); 'static' != d && 1 == a.options.updateSidebarHeight && a.sidebar.css({ 'min-height': a.stickySidebar.outerHeight() + a.stickySidebar.offset().top - a.sidebar.offset().top + a.paddingBottom, }), a.previousScrollTop = r; } }, a.onScroll(a), i(document). on('scroll.' + a.options.namespace, function (i) {return function () {i.onScroll(i);};}( a)), i(window). on('resize.' + a.options.namespace, function (i) { return function () { i.stickySidebar.css( { position: 'static' }), i.onScroll(i); }; }(a)), 'undefined' != typeof ResizeSensor && new ResizeSensor(a.stickySidebar[0], function (i) {return function () {i.onScroll(i);};}(a)); }); } function n (i) { var t; try {t = i[0].getBoundingClientRect().width;} catch (i) {} return 'undefined' == typeof t && (t = i.width()), t; } var s = { containerSelector: '', additionalMarginTop: 0, additionalMarginBottom: 0, updateSidebarHeight: !0, minWidth: 0, disableOnResponsiveLayouts: !0, sidebarBehavior: 'modern', defaultPosition: 'relative', namespace: 'TSS', }; return t = i.extend(s, t), t.additionalMarginTop = parseInt( t.additionalMarginTop) || 0, t.additionalMarginBottom = parseInt( t.additionalMarginBottom) || 0, e(t, this), this; }; }(jQuery); !function () { var e = function (t, i) { function s () { this.q = [], this.add = function (e) {this.q.push(e);}; var e, t; this.call = function () { for (e = 0, t = this.q.length; e < t; e++) this.q[e].call(); }; } function o (e, t) { return e.currentStyle ? e.currentStyle[t] : window.getComputedStyle ? window.getComputedStyle(e, null). getPropertyValue(t) : e.style[t]; } function n (e, t) { if (e.resizedAttached) { if (e.resizedAttached) return void e.resizedAttached.add(t); } else e.resizedAttached = new s, e.resizedAttached.add(t); e.resizeSensor = document.createElement( 'div'), e.resizeSensor.className = 'resize-sensor'; var i = 'position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;', n = 'position: absolute; left: 0; top: 0; transition: 0s;'; e.resizeSensor.style.cssText = i, e.resizeSensor.innerHTML = '<div class="resize-sensor-expand" style="' + i + '"><div style="' + n + '"></div></div><div class="resize-sensor-shrink" style="' + i + '"><div style="' + n + ' width: 200%; height: 200%"></div></div>', e.appendChild( e.resizeSensor), { fixed: 1, absolute: 1 }[o(e, 'position')] || (e.style.position = 'relative'); var d, r, l = e.resizeSensor.childNodes[0], c = l.childNodes[0], h = e.resizeSensor.childNodes[1], a = (h.childNodes[0], function () { c.style.width = l.offsetWidth + 10 + 'px', c.style.height = l.offsetHeight + 10 + 'px', l.scrollLeft = l.scrollWidth, l.scrollTop = l.scrollHeight, h.scrollLeft = h.scrollWidth, h.scrollTop = h.scrollHeight, d = e.offsetWidth, r = e.offsetHeight; }); a(); var f = function () { e.resizedAttached && e.resizedAttached.call(); }, u = function (e, t, i) { e.attachEvent ? e.attachEvent('on' + t, i) : e.addEventListener(t, i); }, p = function () { e.offsetWidth == d && e.offsetHeight == r || f(), a(); }; u(l, 'scroll', p), u(h, 'scroll', p); } var d = Object.prototype.toString.call(t), r = '[object Array]' === d || '[object NodeList]' === d || '[object HTMLCollection]' === d || 'undefined' != typeof jQuery && t instanceof jQuery || 'undefined' != typeof Elements && t instanceof Elements; if (r) for (var l = 0, c = t.length; l < c; l++) n(t[l], i); else n(t, i); this.detach = function () { if (r) for (var i = 0, s = t.length; i < s; i++) e.detach( t[i]); else e.detach(t); }; }; e.detach = function (e) { e.resizeSensor && (e.removeChild( e.resizeSensor), delete e.resizeSensor, delete e.resizedAttached); }, 'undefined' != typeof module && 'undefined' != typeof module.exports ? module.exports = e : window.ResizeSensor = e; }(); window.SEMICOLON_stickySidebarInit = function ($stickySidebar) { $stickySidebar = $stickySidebar.filter(':not(.customjs)'); if ($stickySidebar.length < 1) { return true; } $stickySidebar.each(function () { let element = $(this), elTop = element.attr('data-offset-top') || 110, elBottom = element.attr('data-offset-bottom') || 50; element.scwStickySidebar({ additionalMarginTop: Number(elTop), additionalMarginBottom: Number(elBottom), }); }); }; window.scwSubscribeFormPlugin = window.scwSubscribeFormPlugin || {}; window.SEMICOLON_subscribeFormInit = function ($subscribeForm) { $subscribeForm = $subscribeForm.filter(':not(.customjs)'); if ($subscribeForm.length < 1) { return true; } $subscribeForm.each(function () { let element = $(this), elAlert = element.attr('data-alert-type'), elLoader = element.attr('data-loader'), elResult = element.find('.widget-subscribe-form-result'), elRedirect = element.attr('data-redirect'), defButton, defButtonText, alertType; element.find('form').validate({ submitHandler: function (form) { elResult.hide(); if (elLoader == 'button') { defButton = $(form).find('button'); defButtonText = defButton.html(); defButton.html( '<i class="icon-line-loader icon-spin nomargin"></i>'); } else { $(form). find('.icon-email2'). removeClass('icon-email2'). addClass('icon-line-loader icon-spin'); } $(form).ajaxSubmit({ target: elResult, dataType: 'json', resetForm: true, success: function (data) { if (elLoader == 'button') { defButton.html(defButtonText); } else { $(form). find('.icon-line-loader'). removeClass('icon-line-loader icon-spin'). addClass('icon-email2'); } if (data.alert != 'error' && elRedirect) { window.location.replace(elRedirect); return true; } if (elAlert == 'inline') { if (data.alert == 'error') { alertType = 'alert-danger'; } else { alertType = 'alert-success'; } elResult.addClass('alert ' + alertType). html(data.message). slideDown(400); } else { elResult.attr('data-notify-type', data.alert). attr('data-notify-msg', data.message). html(''); SEMICOLON.widget.notifications({ el: elResult }); } }, }); }, }); }); }; /** * Swiper 6.8.1 * Most modern mobile touch slider and framework with hardware accelerated transitions * https://swiperjs.com * * Copyright 2014-2021 Vladimir Kharlampidi * * Released under the MIT License * * Released on: August 3, 2021 */ !function (e, t) { 'object' == typeof exports && 'undefined' != typeof module ? module.exports = t() : 'function' == typeof define && define.amd ? define(t) : (e = 'undefined' != typeof globalThis ? globalThis : e || self).Swiper = t(); }(this, (function () { 'use strict'; function e (e, t) { for (var a = 0; a < t.length; a++) { var i = t[a]; i.enumerable = i.enumerable || !1, i.configurable = !0, 'value' in i && (i.writable = !0), Object.defineProperty(e, i.key, i); } } function t () { return (t = Object.assign || function (e) { for (var t = 1; t < arguments.length; t++) { var a = arguments[t]; for (var i in a) Object.prototype.hasOwnProperty.call(a, i) && (e[i] = a[i]); } return e; }).apply(this, arguments); } function a (e) { return null !== e && 'object' == typeof e && 'constructor' in e && e.constructor === Object; } function i (e, t) { void 0 === e && (e = {}), void 0 === t && (t = {}), Object.keys(t). forEach((function (s) { void 0 === e[s] ? e[s] = t[s] : a(t[s]) && a(e[s]) && Object.keys(t[s]).length > 0 && i(e[s], t[s]); })); } var s = { body: {}, addEventListener: function () {}, removeEventListener: function () {}, activeElement: { blur: function () {}, nodeName: '' }, querySelector: function () {return null;}, querySelectorAll: function () {return [];}, getElementById: function () {return null;}, createEvent: function () {return { initEvent: function () {} };}, createElement: function () { return { children: [], childNodes: [], style: {}, setAttribute: function () {}, getElementsByTagName: function () {return [];}, }; }, createElementNS: function () {return {};}, importNode: function () {return null;}, location: { hash: '', host: '', hostname: '', href: '', origin: '', pathname: '', protocol: '', search: '', }, }; function r () { var e = 'undefined' != typeof document ? document : {}; return i(e, s), e; } var n = { document: s, navigator: { userAgent: '' }, location: { hash: '', host: '', hostname: '', href: '', origin: '', pathname: '', protocol: '', search: '', }, history: { replaceState: function () {}, pushState: function () {}, go: function () {}, back: function () {}, }, CustomEvent: function () {return this;}, addEventListener: function () {}, removeEventListener: function () {}, getComputedStyle: function () {return { getPropertyValue: function () {return '';} };}, Image: function () {}, Date: function () {}, screen: {}, setTimeout: function () {}, clearTimeout: function () {}, matchMedia: function () {return {};}, requestAnimationFrame: function (e) { return 'undefined' == typeof setTimeout ? (e(), null) : setTimeout( e, 0); }, cancelAnimationFrame: function (e) { 'undefined' != typeof setTimeout && clearTimeout(e); }, }; function l () { var e = 'undefined' != typeof window ? window : {}; return i(e, n), e; } function o (e) { return (o = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {return e.__proto__ || Object.getPrototypeOf(e);})( e); } function d (e, t) { return (d = Object.setPrototypeOf || function (e, t) {return e.__proto__ = t, e;})(e, t); } function p () { if ('undefined' == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; if ('function' == typeof Proxy) return !0; try { return Date.prototype.toString.call( Reflect.construct(Date, [], (function () {}))), !0; } catch (e) {return !1;} } function u (e, t, a) { return (u = p() ? Reflect.construct : function ( e, t, a) { var i = [null]; i.push.apply(i, t); var s = new (Function.bind.apply(e, i)); return a && d(s, a.prototype), s; }).apply(null, arguments); } function c (e) { var t = 'function' == typeof Map ? new Map : void 0; return (c = function (e) { if (null === e || (a = e, -1 === Function.toString.call(a).indexOf('[native code]'))) return e; var a; if ('function' != typeof e) throw new TypeError( 'Super expression must either be null or a function'); if (void 0 !== t) { if (t.has(e)) return t.get(e); t.set(e, i); } function i () {return u(e, arguments, o(this).constructor);} return i.prototype = Object.create(e.prototype, { constructor: { value: i, enumerable: !1, writable: !0, configurable: !0, }, }), d(i, e); })(e); } var h = function (e) { var t, a; function i (t) { var a, i, s; return a = e.call.apply(e, [this].concat(t)) || this, i = function (e) { if (void 0 === e) throw new ReferenceError( 'this hasn\'t been initialised - super() hasn\'t been called'); return e; }(a), s = i.__proto__, Object.defineProperty(i, '__proto__', { get: function () {return s;}, set: function (e) {s.__proto__ = e;}, }), a; } return a = e, (t = i).prototype = Object.create( a.prototype), t.prototype.constructor = t, t.__proto__ = a, i; }(c(Array)); function v (e) { void 0 === e && (e = []); var t = []; return e.forEach((function (e) { Array.isArray(e) ? t.push.apply(t, v(e)) : t.push(e); })), t; } function f (e, t) {return Array.prototype.filter.call(e, t);} function m (e, t) { var a = l(), i = r(), s = []; if (!t && e instanceof h) return e; if (!e) return new h(s); if ('string' == typeof e) { var n = e.trim(); if (n.indexOf('<') >= 0 && n.indexOf('>') >= 0) { var o = 'div'; 0 === n.indexOf('<li') && (o = 'ul'), 0 === n.indexOf('<tr') && (o = 'tbody'), 0 !== n.indexOf('<td') && 0 !== n.indexOf('<th') || (o = 'tr'), 0 === n.indexOf('<tbody') && (o = 'table'), 0 === n.indexOf('<option') && (o = 'select'); var d = i.createElement(o); d.innerHTML = n; for (var p = 0; p < d.childNodes.length; p += 1) s.push( d.childNodes[p]); } else s = function (e, t) { if ('string' != typeof e) return [e]; for (var a = [], i = t.querySelectorAll(e), s = 0; s < i.length; s += 1) a.push(i[s]); return a; }(e.trim(), t || i); } else if (e.nodeType || e === a || e === i) s.push( e); else if (Array.isArray(e)) { if (e instanceof h) return e; s = e; } return new h(function (e) { for (var t = [], a = 0; a < e.length; a += 1) -1 === t.indexOf(e[a]) && t.push(e[a]); return t; }(s)); } m.fn = h.prototype; var g, b, w, y = { addClass: function () { for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++) t[a] = arguments[a]; var i = v(t.map((function (e) {return e.split(' ');}))); return this.forEach((function (e) { var t; (t = e.classList).add.apply(t, i); })), this; }, removeClass: function () { for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++) t[a] = arguments[a]; var i = v(t.map((function (e) {return e.split(' ');}))); return this.forEach((function (e) { var t; (t = e.classList).remove.apply(t, i); })), this; }, hasClass: function () { for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++) t[a] = arguments[a]; var i = v(t.map((function (e) {return e.split(' ');}))); return f(this, (function (e) { return i.filter( (function (t) {return e.classList.contains(t);})).length > 0; })).length > 0; }, toggleClass: function () { for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++) t[a] = arguments[a]; var i = v(t.map((function (e) {return e.split(' ');}))); this.forEach((function (e) { i.forEach((function (t) {e.classList.toggle(t);})); })); }, attr: function (e, t) { if (1 === arguments.length && 'string' == typeof e) return this[0] ? this[0].getAttribute(e) : void 0; for (var a = 0; a < this.length; a += 1) if (2 === arguments.length) this[a].setAttribute(e, t); else for (var i in e) this[a][i] = e[i], this[a].setAttribute( i, e[i]); return this; }, removeAttr: function (e) { for (var t = 0; t < this.length; t += 1) this[t].removeAttribute(e); return this; }, transform: function (e) { for (var t = 0; t < this.length; t += 1) this[t].style.transform = e; return this; }, transition: function (e) { for (var t = 0; t < this.length; t += 1) this[t].style.transitionDuration = 'string' != typeof e ? e + 'ms' : e; return this; }, on: function () { for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++) t[a] = arguments[a]; var i = t[0], s = t[1], r = t[2], n = t[3]; function l (e) { var t = e.target; if (t) { var a = e.target.dom7EventData || []; if (a.indexOf(e) < 0 && a.unshift(e), m(t).is(s)) r.apply(t, a); else for (var i = m(t).parents(), n = 0; n < i.length; n += 1) m(i[n]).is(s) && r.apply(i[n], a); } } function o (e) { var t = e && e.target && e.target.dom7EventData || []; t.indexOf(e) < 0 && t.unshift(e), r.apply(this, t); } 'function' == typeof t[1] && (i = t[0], r = t[1], n = t[2], s = void 0), n || (n = !1); for (var d, p = i.split(' '), u = 0; u < this.length; u += 1) { var c = this[u]; if (s) for (d = 0; d < p.length; d += 1) { var h = p[d]; c.dom7LiveListeners || (c.dom7LiveListeners = {}), c.dom7LiveListeners[h] || (c.dom7LiveListeners[h] = []), c.dom7LiveListeners[h].push( { listener: r, proxyListener: l }), c.addEventListener( h, l, n); } else for (d = 0; d < p.length; d += 1) { var v = p[d]; c.dom7Listeners || (c.dom7Listeners = {}), c.dom7Listeners[v] || (c.dom7Listeners[v] = []), c.dom7Listeners[v].push( { listener: r, proxyListener: o }), c.addEventListener( v, o, n); } } return this; }, off: function () { for (var e = arguments.length, t = new Array(e), a = 0; a < e; a++) t[a] = arguments[a]; var i = t[0], s = t[1], r = t[2], n = t[3]; 'function' == typeof t[1] && (i = t[0], r = t[1], n = t[2], s = void 0), n || (n = !1); for (var l = i.split(' '), o = 0; o < l.length; o += 1) for (var d = l[o], p = 0; p < this.length; p += 1) { var u = this[p], c = void 0; if (!s && u.dom7Listeners ? c = u.dom7Listeners[d] : s && u.dom7LiveListeners && (c = u.dom7LiveListeners[d]), c && c.length) for (var h = c.length - 1; h >= 0; h -= 1) { var v = c[h]; r && v.listener === r || r && v.listener && v.listener.dom7proxy && v.listener.dom7proxy === r ? (u.removeEventListener(d, v.proxyListener, n), c.splice(h, 1)) : r || (u.removeEventListener(d, v.proxyListener, n), c.splice( h, 1)); } } return this; }, trigger: function () { for (var e = l(), t = arguments.length, a = new Array(t), i = 0; i < t; i++) a[i] = arguments[i]; for (var s = a[0].split(' '), r = a[1], n = 0; n < s.length; n += 1) for (var o = s[n], d = 0; d < this.length; d += 1) { var p = this[d]; if (e.CustomEvent) { var u = new e.CustomEvent(o, { detail: r, bubbles: !0, cancelable: !0 }); p.dom7EventData = a.filter( (function (e, t) {return t > 0;})), p.dispatchEvent( u), p.dom7EventData = [], delete p.dom7EventData; } } return this; }, transitionEnd: function (e) { var t = this; return e && t.on('transitionend', (function a (i) { i.target === this && (e.call(this, i), t.off('transitionend', a)); })), this; }, outerWidth: function (e) { if (this.length > 0) { if (e) { var t = this.styles(); return this[0].offsetWidth + parseFloat(t.getPropertyValue('margin-right')) + parseFloat(t.getPropertyValue('margin-left')); } return this[0].offsetWidth; } return null; }, outerHeight: function (e) { if (this.length > 0) { if (e) { var t = this.styles(); return this[0].offsetHeight + parseFloat(t.getPropertyValue('margin-top')) + parseFloat(t.getPropertyValue('margin-bottom')); } return this[0].offsetHeight; } return null; }, styles: function () { var e = l(); return this[0] ? e.getComputedStyle(this[0], null) : {}; }, offset: function () { if (this.length > 0) { var e = l(), t = r(), a = this[0], i = a.getBoundingClientRect(), s = t.body, n = a.clientTop || s.clientTop || 0, o = a.clientLeft || s.clientLeft || 0, d = a === e ? e.scrollY : a.scrollTop, p = a === e ? e.scrollX : a.scrollLeft; return { top: i.top + d - n, left: i.left + p - o }; } return null; }, css: function (e, t) { var a, i = l(); if (1 === arguments.length) { if ('string' != typeof e) { for (a = 0; a < this.length; a += 1) for (var s in e) this[a].style[s] = e[s]; return this; } if (this[0]) return i.getComputedStyle(this[0], null). getPropertyValue(e); } if (2 === arguments.length && 'string' == typeof e) { for (a = 0; a < this.length; a += 1) this[a].style[e] = t; return this; } return this; }, each: function (e) { return e ? (this.forEach( (function (t, a) {e.apply(t, [t, a]);})), this) : this; }, html: function (e) { if (void 0 === e) return this[0] ? this[0].innerHTML : null; for (var t = 0; t < this.length; t += 1) this[t].innerHTML = e; return this; }, text: function (e) { if (void 0 === e) return this[0] ? this[0].textContent.trim() : null; for (var t = 0; t < this.length; t += 1) this[t].textContent = e; return this; }, is: function (e) { var t, a, i = l(), s = r(), n = this[0]; if (!n || void 0 === e) return !1; if ('string' == typeof e) { if (n.matches) return n.matches(e); if (n.webkitMatchesSelector) return n.webkitMatchesSelector(e); if (n.msMatchesSelector) return n.msMatchesSelector(e); for (t = m(e), a = 0; a < t.length; a += 1) if (t[a] === n) return !0; return !1; } if (e === s) return n === s; if (e === i) return n === i; if (e.nodeType || e instanceof h) { for (t = e.nodeType ? [e] : e, a = 0; a < t.length; a += 1) if (t[a] === n) return !0; return !1; } return !1; }, index: function () { var e, t = this[0]; if (t) { for (e = 0; null !== (t = t.previousSibling);) 1 === t.nodeType && (e += 1); return e; } }, eq: function (e) { if (void 0 === e) return this; var t = this.length; if (e > t - 1) return m([]); if (e < 0) { var a = t + e; return m(a < 0 ? [] : [this[a]]); } return m([this[e]]); }, append: function () { for (var e, t = r(), a = 0; a < arguments.length; a += 1) { e = a < 0 || arguments.length <= a ? void 0 : arguments[a]; for (var i = 0; i < this.length; i += 1) if ('string' == typeof e) { var s = t.createElement('div'); for (s.innerHTML = e; s.firstChild;) this[i].appendChild( s.firstChild); } else if (e instanceof h) for (var n = 0; n < e.length; n += 1) this[i].appendChild( e[n]); else this[i].appendChild(e); } return this; }, prepend: function (e) { var t, a, i = r(); for (t = 0; t < this.length; t += 1) if ('string' == typeof e) { var s = i.createElement('div'); for (s.innerHTML = e, a = s.childNodes.length - 1; a >= 0; a -= 1) this[t].insertBefore(s.childNodes[a], this[t].childNodes[0]); } else if (e instanceof h) for (a = 0; a < e.length; a += 1) this[t].insertBefore(e[a], this[t].childNodes[0]); else this[t].insertBefore(e, this[t].childNodes[0]); return this; }, next: function (e) { return this.length > 0 ? e ? this[0].nextElementSibling && m(this[0].nextElementSibling).is(e) ? m( [this[0].nextElementSibling]) : m([]) : this[0].nextElementSibling ? m([this[0].nextElementSibling]) : m([]) : m([]); }, nextAll: function (e) { var t = [], a = this[0]; if (!a) return m([]); for (; a.nextElementSibling;) { var i = a.nextElementSibling; e ? m(i).is(e) && t.push(i) : t.push(i), a = i; } return m(t); }, prev: function (e) { if (this.length > 0) { var t = this[0]; return e ? t.previousElementSibling && m(t.previousElementSibling).is(e) ? m([t.previousElementSibling]) : m([]) : t.previousElementSibling ? m( [t.previousElementSibling]) : m([]); } return m([]); }, prevAll: function (e) { var t = [], a = this[0]; if (!a) return m([]); for (; a.previousElementSibling;) { var i = a.previousElementSibling; e ? m(i).is(e) && t.push(i) : t.push(i), a = i; } return m(t); }, parent: function (e) { for (var t = [], a = 0; a < this.length; a += 1) null !== this[a].parentNode && (e ? m(this[a].parentNode).is(e) && t.push(this[a].parentNode) : t.push(this[a].parentNode)); return m(t); }, parents: function (e) { for (var t = [], a = 0; a < this.length; a += 1) for (var i = this[a].parentNode; i;) e ? m(i). is(e) && t.push(i) : t.push(i), i = i.parentNode; return m(t); }, closest: function (e) { var t = this; return void 0 === e ? m([]) : (t.is(e) || (t = t.parents(e).eq(0)), t); }, find: function (e) { for (var t = [], a = 0; a < this.length; a += 1) { try { var i = this[a].querySelectorAll(e); } catch (t) {console.log(e);} for (var s = 0; s < i.length; s += 1) t.push(i[s]); } return m(t); }, children: function (e) { for (var t = [], a = 0; a < this.length; a += 1) for (var i = this[a].children, s = 0; s < i.length; s += 1) e && !m(i[s]).is(e) || t.push(i[s]); return m(t); }, filter: function (e) {return m(f(this, e));}, remove: function () { for (var e = 0; e < this.length; e += 1) this[e].parentNode && this[e].parentNode.removeChild(this[e]); return this; }, }; function E (e, t) {return void 0 === t && (t = 0), setTimeout(e, t);} function x () {return Date.now();} function T (e, t) { void 0 === t && (t = 'x'); var a, i, s, r = l(), n = function (e) { var t, a = l(); return a.getComputedStyle && (t = a.getComputedStyle(e, null)), !t && e.currentStyle && (t = e.currentStyle), t || (t = e.style), t; }(e); return r.WebKitCSSMatrix ? ((i = n.transform || n.webkitTransform).split(',').length > 6 && (i = i.split(', '). map((function (e) {return e.replace(',', '.');})). join(', ')), s = new r.WebKitCSSMatrix('none' === i ? '' : i)) : a = (s = n.MozTransform || n.OTransform || n.MsTransform || n.msTransform || n.transform || n.getPropertyValue('transform'). replace('translate(', 'matrix(1, 0, 0, 1,')).toString(). split(','), 'x' === t && (i = r.WebKitCSSMatrix ? s.m41 : 16 === a.length ? parseFloat(a[12]) : parseFloat(a[4])), 'y' === t && (i = r.WebKitCSSMatrix ? s.m42 : 16 === a.length ? parseFloat(a[13]) : parseFloat(a[5])), i || 0; } function C (e) { return 'object' == typeof e && null !== e && e.constructor && 'Object' === Object.prototype.toString.call(e).slice(8, -1); } function S (e) { return 'undefined' != typeof window && void 0 !== window.HTMLElement ? e instanceof HTMLElement : e && (1 === e.nodeType || 11 === e.nodeType); } function M () { for (var e = Object( arguments.length <= 0 ? void 0 : arguments[0]), t = [ '__proto__', 'constructor', 'prototype'], a = 1; a < arguments.length; a += 1) { var i = a < 0 || arguments.length <= a ? void 0 : arguments[a]; if (null != i && !S(i)) for (var s = Object.keys(Object(i)). filter((function (e) { return t.indexOf(e) < 0; })), r = 0, n = s.length; r < n; r += 1) { var l = s[r], o = Object.getOwnPropertyDescriptor(i, l); void 0 !== o && o.enumerable && (C(e[l]) && C(i[l]) ? i[l].__swiper__ ? e[l] = i[l] : M(e[l], i[l]) : !C(e[l]) && C(i[l]) ? (e[l] = {}, i[l].__swiper__ ? e[l] = i[l] : M(e[l], i[l])) : e[l] = i[l]); } } return e; } function z (e, t) { Object.keys(t). forEach((function (a) { C(t[a]) && Object.keys(t[a]). forEach((function (i) { 'function' == typeof t[a][i] && (t[a][i] = t[a][i].bind(e)); })), e[a] = t[a]; })); } function P (e) { return void 0 === e && (e = ''), '.' + e.trim().replace(/([\.:\/])/g, '\\$1').replace(/ /g, '.'); } function k (e, t, a, i) { var s = r(); return a && Object.keys(i). forEach((function (a) { if (!t[a] && !0 === t.auto) { var r = s.createElement('div'); r.className = i[a], e.append(r), t[a] = r; } })), t; } function $ () { return g || (g = function () { var e = l(), t = r(); return { touch: !!('ontouchstart' in e || e.DocumentTouch && t instanceof e.DocumentTouch), pointerEvents: !!e.PointerEvent && 'maxTouchPoints' in e.navigator && e.navigator.maxTouchPoints >= 0, observer: 'MutationObserver' in e || 'WebkitMutationObserver' in e, passiveListener: function () { var t = !1; try { var a = Object.defineProperty({}, 'passive', { get: function () {t = !0;} }); e.addEventListener('testPassiveListener', null, a); } catch (e) {} return t; }(), gestures: 'ongesturestart' in e, }; }()), g; } function L (e) { return void 0 === e && (e = {}), b || (b = function (e) { var t = (void 0 === e ? {} : e).userAgent, a = $(), i = l(), s = i.navigator.platform, r = t || i.navigator.userAgent, n = { ios: !1, android: !1 }, o = i.screen.width, d = i.screen.height, p = r.match(/(Android);?[\s\/]+([\d.]+)?/), u = r.match(/(iPad).*OS\s([\d_]+)/), c = r.match(/(iPod)(.*OS\s([\d_]+))?/), h = !u && r.match(/(iPhone\sOS|iOS)\s([\d_]+)/), v = 'Win32' === s, f = 'MacIntel' === s; return !u && f && a.touch && [ '1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'].indexOf(o + 'x' + d) >= 0 && ((u = r.match(/(Version)\/([\d.]+)/)) || (u = [0, 1, '13_0_0']), f = !1), p && !v && (n.os = 'android', n.android = !0), (u || h || c) && (n.os = 'ios', n.ios = !0), n; }(e)), b; } function I () { return w || (w = function () { var e, t = l(); return { isEdge: !!t.navigator.userAgent.match(/Edge/g), isSafari: (e = t.navigator.userAgent.toLowerCase(), e.indexOf( 'safari') >= 0 && e.indexOf('chrome') < 0 && e.indexOf('android') < 0), isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test( t.navigator.userAgent), }; }()), w; } Object.keys(y). forEach((function (e) { Object.defineProperty(m.fn, e, { value: y[e], writable: !0 }); })); var O = { name: 'resize', create: function () { var e = this; M(e, { resize: { observer: null, createObserver: function () { e && !e.destroyed && e.initialized && (e.resize.observer = new ResizeObserver((function (t) { var a = e.width, i = e.height, s = a, r = i; t.forEach((function (t) { var a = t.contentBoxSize, i = t.contentRect, n = t.target; n && n !== e.el || (s = i ? i.width : (a[0] || a).inlineSize, r = i ? i.height : (a[0] || a).blockSize); })), s === a && r === i || e.resize.resizeHandler(); })), e.resize.observer.observe(e.el)); }, removeObserver: function () { e.resize.observer && e.resize.observer.unobserve && e.el && (e.resize.observer.unobserve( e.el), e.resize.observer = null); }, resizeHandler: function () { e && !e.destroyed && e.initialized && (e.emit('beforeResize'), e.emit('resize')); }, orientationChangeHandler: function () { e && !e.destroyed && e.initialized && e.emit('orientationchange'); }, }, }); }, on: { init: function (e) { var t = l(); e.params.resizeObserver && void 0 !== l().ResizeObserver ? e.resize.createObserver() : (t.addEventListener('resize', e.resize.resizeHandler), t.addEventListener( 'orientationchange', e.resize.orientationChangeHandler)); }, destroy: function (e) { var t = l(); e.resize.removeObserver(), t.removeEventListener('resize', e.resize.resizeHandler), t.removeEventListener( 'orientationchange', e.resize.orientationChangeHandler); }, }, }, A = { attach: function (e, t) { void 0 === t && (t = {}); var a = l(), i = this, s = new (a.MutationObserver || a.WebkitMutationObserver)( (function (e) { if (1 !== e.length) { var t = function () { i.emit('observerUpdate', e[0]); }; a.requestAnimationFrame ? a.requestAnimationFrame(t) : a.setTimeout(t, 0); } else i.emit('observerUpdate', e[0]); })); s.observe(e, { attributes: void 0 === t.attributes || t.attributes, childList: void 0 === t.childList || t.childList, characterData: void 0 === t.characterData || t.characterData, }), i.observer.observers.push(s); }, init: function () { var e = this; if (e.support.observer && e.params.observer) { if (e.params.observeParents) for (var t = e.$el.parents(), a = 0; a < t.length; a += 1) e.observer.attach(t[a]); e.observer.attach(e.$el[0], { childList: e.params.observeSlideChildren }), e.observer.attach( e.$wrapperEl[0], { attributes: !1 }); } }, destroy: function () { this.observer.observers.forEach( (function (e) {e.disconnect();})), this.observer.observers = []; }, }, D = { name: 'observer', params: { observer: !1, observeParents: !1, observeSlideChildren: !1 }, create: function () { z(this, { observer: t({}, A, { observers: [] }) }); }, on: { init: function (e) {e.observer.init();}, destroy: function (e) {e.observer.destroy();}, }, }; function N (e) { var t = this, a = r(), i = l(), s = t.touchEventsData, n = t.params, o = t.touches; if (t.enabled && (!t.animating || !n.preventInteractionOnTransition)) { var d = e; d.originalEvent && (d = d.originalEvent); var p = m(d.target); if (('wrapper' !== n.touchEventsTarget || p.closest(t.wrapperEl).length) && (s.isTouchEvent = 'touchstart' === d.type, (s.isTouchEvent || !('which' in d) || 3 !== d.which) && !(!s.isTouchEvent && 'button' in d && d.button > 0 || s.isTouched && s.isMoved))) { !!n.noSwipingClass && '' !== n.noSwipingClass && d.target && d.target.shadowRoot && e.path && e.path[0] && (p = m(e.path[0])); var u = n.noSwipingSelector ? n.noSwipingSelector : '.' + n.noSwipingClass, c = !(!d.target || !d.target.shadowRoot); if (n.noSwiping && (c ? function (e, t) { return void 0 === t && (t = this), function t (a) { return a && a !== r() && a !== l() ? (a.assignedSlot && (a = a.assignedSlot), a.closest(e) || t(a.getRootNode().host)) : null; }(t); }(u, d.target) : p.closest( u)[0])) t.allowClick = !0; else if (!n.swipeHandler || p.closest(n.swipeHandler)[0]) { o.currentX = 'touchstart' === d.type ? d.targetTouches[0].pageX : d.pageX, o.currentY = 'touchstart' === d.type ? d.targetTouches[0].pageY : d.pageY; var h = o.currentX, v = o.currentY, f = n.edgeSwipeDetection || n.iOSEdgeSwipeDetection, g = n.edgeSwipeThreshold || n.iOSEdgeSwipeThreshold; if (f && (h <= g || h >= i.innerWidth - g)) { if ('prevent' !== f) return; e.preventDefault(); } if (M(s, { isTouched: !0, isMoved: !1, allowTouchCallbacks: !0, isScrolling: void 0, startMoving: void 0, }), o.startX = h, o.startY = v, s.touchStartTime = x(), t.allowClick = !0, t.updateSize(), t.swipeDirection = void 0, n.threshold > 0 && (s.allowThresholdMove = !1), 'touchstart' !== d.type) { var b = !0; p.is(s.focusableElements) && (b = !1), a.activeElement && m(a.activeElement).is(s.focusableElements) && a.activeElement !== p[0] && a.activeElement.blur(); var w = b && t.allowTouchMove && n.touchStartPreventDefault; !n.touchStartForcePreventDefault && !w || p[0].isContentEditable || d.preventDefault(); } t.emit('touchStart', d); } } } } function G (e) { var t = r(), a = this, i = a.touchEventsData, s = a.params, n = a.touches, l = a.rtlTranslate; if (a.enabled) { var o = e; if (o.originalEvent && (o = o.originalEvent), i.isTouched) { if (!i.isTouchEvent || 'touchmove' === o.type) { var d = 'touchmove' === o.type && o.targetTouches && (o.targetTouches[0] || o.changedTouches[0]), p = 'touchmove' === o.type ? d.pageX : o.pageX, u = 'touchmove' === o.type ? d.pageY : o.pageY; if (o.preventedByNestedSwiper) return n.startX = p, void (n.startY = u); if (!a.allowTouchMove) return a.allowClick = !1, void (i.isTouched && (M(n, { startX: p, startY: u, currentX: p, currentY: u, }), i.touchStartTime = x())); if (i.isTouchEvent && s.touchReleaseOnEdges && !s.loop) if (a.isVertical()) { if (u < n.startY && a.translate <= a.maxTranslate() || u > n.startY && a.translate >= a.minTranslate()) return i.isTouched = !1, void (i.isMoved = !1); } else if (p < n.startX && a.translate <= a.maxTranslate() || p > n.startX && a.translate >= a.minTranslate()) return; if (i.isTouchEvent && t.activeElement && o.target === t.activeElement && m(o.target). is(i.focusableElements)) return i.isMoved = !0, void (a.allowClick = !1); if (i.allowTouchCallbacks && a.emit('touchMove', o), !(o.targetTouches && o.targetTouches.length > 1)) { n.currentX = p, n.currentY = u; var c = n.currentX - n.startX, h = n.currentY - n.startY; if (!(a.params.threshold && Math.sqrt(Math.pow(c, 2) + Math.pow(h, 2)) < a.params.threshold)) { var v; if (void 0 === i.isScrolling) a.isHorizontal() && n.currentY === n.startY || a.isVertical() && n.currentX === n.startX ? i.isScrolling = !1 : c * c + h * h >= 25 && (v = 180 * Math.atan2(Math.abs(h), Math.abs(c)) / Math.PI, i.isScrolling = a.isHorizontal() ? v > s.touchAngle : 90 - v > s.touchAngle); if (i.isScrolling && a.emit('touchMoveOpposite', o), void 0 === i.startMoving && (n.currentX === n.startX && n.currentY === n.startY || (i.startMoving = !0)), i.isScrolling) i.isTouched = !1; else if (i.startMoving) { a.allowClick = !1, !s.cssMode && o.cancelable && o.preventDefault(), s.touchMoveStopPropagation && !s.nested && o.stopPropagation(), i.isMoved || (s.loop && a.loopFix(), i.startTranslate = a.getTranslate(), a.setTransition( 0), a.animating && a.$wrapperEl.trigger( 'webkitTransitionEnd transitionend'), i.allowMomentumBounce = !1, !s.grabCursor || !0 !== a.allowSlideNext && !0 !== a.allowSlidePrev || a.setGrabCursor(!0), a.emit( 'sliderFirstMove', o)), a.emit('sliderMove', o), i.isMoved = !0; var f = a.isHorizontal() ? c : h; n.diff = f, f *= s.touchRatio, l && (f = -f), a.swipeDirection = f > 0 ? 'prev' : 'next', i.currentTranslate = f + i.startTranslate; var g = !0, b = s.resistanceRatio; if (s.touchReleaseOnEdges && (b = 0), f > 0 && i.currentTranslate > a.minTranslate() ? (g = !1, s.resistance && (i.currentTranslate = a.minTranslate() - 1 + Math.pow(-a.minTranslate() + i.startTranslate + f, b))) : f < 0 && i.currentTranslate < a.maxTranslate() && (g = !1, s.resistance && (i.currentTranslate = a.maxTranslate() + 1 - Math.pow(a.maxTranslate() - i.startTranslate - f, b))), g && (o.preventedByNestedSwiper = !0), !a.allowSlideNext && 'next' === a.swipeDirection && i.currentTranslate < i.startTranslate && (i.currentTranslate = i.startTranslate), !a.allowSlidePrev && 'prev' === a.swipeDirection && i.currentTranslate > i.startTranslate && (i.currentTranslate = i.startTranslate), a.allowSlidePrev || a.allowSlideNext || (i.currentTranslate = i.startTranslate), s.threshold > 0) { if (!(Math.abs(f) > s.threshold || i.allowThresholdMove)) return void (i.currentTranslate = i.startTranslate); if (!i.allowThresholdMove) return i.allowThresholdMove = !0, n.startX = n.currentX, n.startY = n.currentY, i.currentTranslate = i.startTranslate, void (n.diff = a.isHorizontal() ? n.currentX - n.startX : n.currentY - n.startY); } s.followFinger && !s.cssMode && ((s.freeMode || s.watchSlidesProgress || s.watchSlidesVisibility) && (a.updateActiveIndex(), a.updateSlidesClasses()), s.freeMode && (0 === i.velocities.length && i.velocities.push( { position: n[a.isHorizontal() ? 'startX' : 'startY'], time: i.touchStartTime, }), i.velocities.push({ position: n[a.isHorizontal() ? 'currentX' : 'currentY'], time: x(), })), a.updateProgress( i.currentTranslate), a.setTranslate( i.currentTranslate)); } } } } } else i.startMoving && i.isScrolling && a.emit('touchMoveOpposite', o); } } function B (e) { var t = this, a = t.touchEventsData, i = t.params, s = t.touches, r = t.rtlTranslate, n = t.$wrapperEl, l = t.slidesGrid, o = t.snapGrid; if (t.enabled) { var d = e; if (d.originalEvent && (d = d.originalEvent), a.allowTouchCallbacks && t.emit('touchEnd', d), a.allowTouchCallbacks = !1, !a.isTouched) return a.isMoved && i.grabCursor && t.setGrabCursor(!1), a.isMoved = !1, void (a.startMoving = !1); i.grabCursor && a.isMoved && a.isTouched && (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && t.setGrabCursor(!1); var p, u = x(), c = u - a.touchStartTime; if (t.allowClick && (t.updateClickedSlide(d), t.emit('tap click', d), c < 300 && u - a.lastClickTime < 300 && t.emit('doubleTap doubleClick', d)), a.lastClickTime = x(), E( (function () { t.destroyed || (t.allowClick = !0); })), !a.isTouched || !a.isMoved || !t.swipeDirection || 0 === s.diff || a.currentTranslate === a.startTranslate) return a.isTouched = !1, a.isMoved = !1, void (a.startMoving = !1); if (a.isTouched = !1, a.isMoved = !1, a.startMoving = !1, p = i.followFinger ? r ? t.translate : -t.translate : -a.currentTranslate, !i.cssMode) if (i.freeMode) { if (p < -t.minTranslate()) return void t.slideTo(t.activeIndex); if (p > -t.maxTranslate()) return void (t.slides.length < o.length ? t.slideTo(o.length - 1) : t.slideTo( t.slides.length - 1)); if (i.freeModeMomentum) { if (a.velocities.length > 1) { var h = a.velocities.pop(), v = a.velocities.pop(), f = h.position - v.position, m = h.time - v.time; t.velocity = f / m, t.velocity /= 2, Math.abs( t.velocity) < i.freeModeMinimumVelocity && (t.velocity = 0), (m > 150 || x() - h.time > 300) && (t.velocity = 0); } else t.velocity = 0; t.velocity *= i.freeModeMomentumVelocityRatio, a.velocities.length = 0; var g = 1e3 * i.freeModeMomentumRatio, b = t.velocity * g, w = t.translate + b; r && (w = -w); var y, T, C = !1, S = 20 * Math.abs(t.velocity) * i.freeModeMomentumBounceRatio; if (w < t.maxTranslate()) i.freeModeMomentumBounce ? (w + t.maxTranslate() < -S && (w = t.maxTranslate() - S), y = t.maxTranslate(), C = !0, a.allowMomentumBounce = !0) : w = t.maxTranslate(), i.loop && i.centeredSlides && (T = !0); else if (w > t.minTranslate()) i.freeModeMomentumBounce ? (w - t.minTranslate() > S && (w = t.minTranslate() + S), y = t.minTranslate(), C = !0, a.allowMomentumBounce = !0) : w = t.minTranslate(), i.loop && i.centeredSlides && (T = !0); else if (i.freeModeSticky) { for (var M, z = 0; z < o.length; z += 1) if (o[z] > -w) { M = z; break; } w = -(w = Math.abs(o[M] - w) < Math.abs(o[M - 1] - w) || 'next' === t.swipeDirection ? o[M] : o[M - 1]); } if (T && t.once('transitionEnd', (function () {t.loopFix();})), 0 !== t.velocity) { if (g = r ? Math.abs((-w - t.translate) / t.velocity) : Math.abs((w - t.translate) / t.velocity), i.freeModeSticky) { var P = Math.abs((r ? -w : w) - t.translate), k = t.slidesSizesGrid[t.activeIndex]; g = P < k ? i.speed : P < 2 * k ? 1.5 * i.speed : 2.5 * i.speed; } } else if (i.freeModeSticky) return void t.slideToClosest(); i.freeModeMomentumBounce && C ? (t.updateProgress( y), t.setTransition(g), t.setTranslate( w), t.transitionStart(!0, t.swipeDirection), t.animating = !0, n.transitionEnd( (function () { t && !t.destroyed && a.allowMomentumBounce && (t.emit('momentumBounce'), t.setTransition( i.speed), setTimeout((function () { t.setTranslate(y), n.transitionEnd( (function () { t && !t.destroyed && t.transitionEnd(); })); }), 0)); }))) : t.velocity ? (t.updateProgress( w), t.setTransition(g), t.setTranslate( w), t.transitionStart(!0, t.swipeDirection), t.animating || (t.animating = !0, n.transitionEnd((function () { t && !t.destroyed && t.transitionEnd(); })))) : (t.emit( '_freeModeNoMomentumRelease'), t.updateProgress( w)), t.updateActiveIndex(), t.updateSlidesClasses(); } else { if (i.freeModeSticky) return void t.slideToClosest(); i.freeMode && t.emit('_freeModeNoMomentumRelease'); } (!i.freeModeMomentum || c >= i.longSwipesMs) && (t.updateProgress(), t.updateActiveIndex(), t.updateSlidesClasses()); } else { for (var $ = 0, L = t.slidesSizesGrid[0], I = 0; I < l.length; I += I < i.slidesPerGroupSkip ? 1 : i.slidesPerGroup) { var O = I < i.slidesPerGroupSkip - 1 ? 1 : i.slidesPerGroup; void 0 !== l[I + O] ? p >= l[I] && p < l[I + O] && ($ = I, L = l[I + O] - l[I]) : p >= l[I] && ($ = I, L = l[l.length - 1] - l[l.length - 2]); } var A = (p - l[$]) / L, D = $ < i.slidesPerGroupSkip - 1 ? 1 : i.slidesPerGroup; if (c > i.longSwipesMs) { if (!i.longSwipes) return void t.slideTo(t.activeIndex); 'next' === t.swipeDirection && (A >= i.longSwipesRatio ? t.slideTo($ + D) : t.slideTo( $)), 'prev' === t.swipeDirection && (A > 1 - i.longSwipesRatio ? t.slideTo($ + D) : t.slideTo( $)); } else { if (!i.shortSwipes) return void t.slideTo(t.activeIndex); t.navigation && (d.target === t.navigation.nextEl || d.target === t.navigation.prevEl) ? d.target === t.navigation.nextEl ? t.slideTo($ + D) : t.slideTo($) : ('next' === t.swipeDirection && t.slideTo($ + D), 'prev' === t.swipeDirection && t.slideTo($)); } } } } function H () { var e = this, t = e.params, a = e.el; if (!a || 0 !== a.offsetWidth) { t.breakpoints && e.setBreakpoint(); var i = e.allowSlideNext, s = e.allowSlidePrev, r = e.snapGrid; e.allowSlideNext = !0, e.allowSlidePrev = !0, e.updateSize(), e.updateSlides(), e.updateSlidesClasses(), ('auto' === t.slidesPerView || t.slidesPerView > 1) && e.isEnd && !e.isBeginning && !e.params.centeredSlides ? e.slideTo( e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0), e.autoplay && e.autoplay.running && e.autoplay.paused && e.autoplay.run(), e.allowSlidePrev = s, e.allowSlideNext = i, e.params.watchOverflow && r !== e.snapGrid && e.checkOverflow(); } } function R (e) { var t = this; t.enabled && (t.allowClick || (t.params.preventClicks && e.preventDefault(), t.params.preventClicksPropagation && t.animating && (e.stopPropagation(), e.stopImmediatePropagation()))); } function X () { var e = this, t = e.wrapperEl, a = e.rtlTranslate; if (e.enabled) { e.previousTranslate = e.translate, e.isHorizontal() ? e.translate = a ? t.scrollWidth - t.offsetWidth - t.scrollLeft : -t.scrollLeft : e.translate = -t.scrollTop, -0 === e.translate && (e.translate = 0), e.updateActiveIndex(), e.updateSlidesClasses(); var i = e.maxTranslate() - e.minTranslate(); (0 === i ? 0 : (e.translate - e.minTranslate()) / i) !== e.progress && e.updateProgress(a ? -e.translate : e.translate), e.emit( 'setTranslate', e.translate, !1); } } var Y = !1; function V () {} var W = { init: !0, direction: 'horizontal', touchEventsTarget: 'container', initialSlide: 0, speed: 300, cssMode: !1, updateOnWindowResize: !0, resizeObserver: !1, nested: !1, createElements: !1, enabled: !0, focusableElements: 'input, select, option, textarea, button, video, label', width: null, height: null, preventInteractionOnTransition: !1, userAgent: null, url: null, edgeSwipeDetection: !1, edgeSwipeThreshold: 20, freeMode: !1, freeModeMomentum: !0, freeModeMomentumRatio: 1, freeModeMomentumBounce: !0, freeModeMomentumBounceRatio: 1, freeModeMomentumVelocityRatio: 1, freeModeSticky: !1, freeModeMinimumVelocity: .02, autoHeight: !1, setWrapperSize: !1, virtualTranslate: !1, effect: 'slide', breakpoints: void 0, breakpointsBase: 'window', spaceBetween: 0, slidesPerView: 1, slidesPerColumn: 1, slidesPerColumnFill: 'column', slidesPerGroup: 1, slidesPerGroupSkip: 0, centeredSlides: !1, centeredSlidesBounds: !1, slidesOffsetBefore: 0, slidesOffsetAfter: 0, normalizeSlideIndex: !0, centerInsufficientSlides: !1, watchOverflow: !1, roundLengths: !1, touchRatio: 1, touchAngle: 45, simulateTouch: !0, shortSwipes: !0, longSwipes: !0, longSwipesRatio: .5, longSwipesMs: 300, followFinger: !0, allowTouchMove: !0, threshold: 0, touchMoveStopPropagation: !1, touchStartPreventDefault: !0, touchStartForcePreventDefault: !1, touchReleaseOnEdges: !1, uniqueNavElements: !0, resistance: !0, resistanceRatio: .85, watchSlidesProgress: !1, watchSlidesVisibility: !1, grabCursor: !1, preventClicks: !0, preventClicksPropagation: !0, slideToClickedSlide: !1, preloadImages: !0, updateOnImagesReady: !0, loop: !1, loopAdditionalSlides: 0, loopedSlides: null, loopFillGroupWithBlank: !1, loopPreventsSlide: !0, allowSlidePrev: !0, allowSlideNext: !0, swipeHandler: null, noSwiping: !0, noSwipingClass: 'swiper-no-swiping', noSwipingSelector: null, passiveListeners: !0, containerModifierClass: 'swiper-container-', slideClass: 'swiper-slide', slideBlankClass: 'swiper-slide-invisible-blank', slideActiveClass: 'swiper-slide-active', slideDuplicateActiveClass: 'swiper-slide-duplicate-active', slideVisibleClass: 'swiper-slide-visible', slideDuplicateClass: 'swiper-slide-duplicate', slideNextClass: 'swiper-slide-next', slideDuplicateNextClass: 'swiper-slide-duplicate-next', slidePrevClass: 'swiper-slide-prev', slideDuplicatePrevClass: 'swiper-slide-duplicate-prev', wrapperClass: 'swiper-wrapper', runCallbacksOnInit: !0, _emitClasses: !1, }, F = { modular: { useParams: function (e) { var t = this; t.modules && Object.keys(t.modules). forEach((function (a) { var i = t.modules[a]; i.params && M(e, i.params); })); }, useModules: function (e) { void 0 === e && (e = {}); var t = this; t.modules && Object.keys(t.modules). forEach((function (a) { var i = t.modules[a], s = e[a] || {}; i.on && t.on && Object.keys(i.on). forEach( (function (e) {t.on(e, i.on[e]);})), i.create && i.create.bind(t)(s); })); }, }, eventsEmitter: { on: function (e, t, a) { var i = this; if ('function' != typeof t) return i; var s = a ? 'unshift' : 'push'; return e.split(' '). forEach((function (e) { i.eventsListeners[e] || (i.eventsListeners[e] = []), i.eventsListeners[e][s](t); })), i; }, once: function (e, t, a) { var i = this; if ('function' != typeof t) return i; function s () { i.off(e, s), s.__emitterProxy && delete s.__emitterProxy; for (var a = arguments.length, r = new Array(a), n = 0; n < a; n++) r[n] = arguments[n]; t.apply(i, r); } return s.__emitterProxy = t, i.on(e, s, a); }, onAny: function (e, t) { var a = this; if ('function' != typeof e) return a; var i = t ? 'unshift' : 'push'; return a.eventsAnyListeners.indexOf(e) < 0 && a.eventsAnyListeners[i](e), a; }, offAny: function (e) { var t = this; if (!t.eventsAnyListeners) return t; var a = t.eventsAnyListeners.indexOf(e); return a >= 0 && t.eventsAnyListeners.splice(a, 1), t; }, off: function (e, t) { var a = this; return a.eventsListeners ? (e.split(' '). forEach((function (e) { void 0 === t ? a.eventsListeners[e] = [] : a.eventsListeners[e] && a.eventsListeners[e].forEach((function (i, s) { (i === t || i.__emitterProxy && i.__emitterProxy === t) && a.eventsListeners[e].splice(s, 1); })); })), a) : a; }, emit: function () { var e, t, a, i = this; if (!i.eventsListeners) return i; for (var s = arguments.length, r = new Array(s), n = 0; n < s; n++) r[n] = arguments[n]; 'string' == typeof r[0] || Array.isArray(r[0]) ? (e = r[0], t = r.slice(1, r.length), a = i) : (e = r[0].events, t = r[0].data, a = r[0].context || i), t.unshift(a); var l = Array.isArray(e) ? e : e.split(' '); return l.forEach((function (e) { i.eventsAnyListeners && i.eventsAnyListeners.length && i.eventsAnyListeners.forEach((function (i) { i.apply(a, [e].concat(t)); })), i.eventsListeners && i.eventsListeners[e] && i.eventsListeners[e].forEach( (function (e) {e.apply(a, t);})); })), i; }, }, update: { updateSize: function () { var e, t, a = this, i = a.$el; e = void 0 !== a.params.width && null !== a.params.width ? a.params.width : i[0].clientWidth, t = void 0 !== a.params.height && null !== a.params.height ? a.params.height : i[0].clientHeight, 0 === e && a.isHorizontal() || 0 === t && a.isVertical() || (e = e - parseInt(i.css('padding-left') || 0, 10) - parseInt(i.css('padding-right') || 0, 10), t = t - parseInt(i.css('padding-top') || 0, 10) - parseInt(i.css('padding-bottom') || 0, 10), Number.isNaN( e) && (e = 0), Number.isNaN(t) && (t = 0), M(a, { width: e, height: t, size: a.isHorizontal() ? e : t })); }, updateSlides: function () { var e = this; function t (t) { return e.isHorizontal() ? t : { width: 'height', 'margin-top': 'margin-left', 'margin-bottom ': 'margin-right', 'margin-left': 'margin-top', 'margin-right': 'margin-bottom', 'padding-left': 'padding-top', 'padding-right': 'padding-bottom', marginRight: 'marginBottom', }[t]; } function a (e, a) { return parseFloat(e.getPropertyValue(t(a)) || 0); } var i = e.params, s = e.$wrapperEl, r = e.size, n = e.rtlTranslate, l = e.wrongRTL, o = e.virtual && i.virtual.enabled, d = o ? e.virtual.slides.length : e.slides.length, p = s.children('.' + e.params.slideClass), u = o ? e.virtual.slides.length : p.length, c = [], h = [], v = [], f = i.slidesOffsetBefore; 'function' == typeof f && (f = i.slidesOffsetBefore.call(e)); var m = i.slidesOffsetAfter; 'function' == typeof m && (m = i.slidesOffsetAfter.call(e)); var g = e.snapGrid.length, b = e.slidesGrid.length, w = i.spaceBetween, y = -f, E = 0, x = 0; if (void 0 !== r) { var T, C; 'string' == typeof w && w.indexOf('%') >= 0 && (w = parseFloat(w.replace('%', '')) / 100 * r), e.virtualSize = -w, n ? p.css( { marginLeft: '', marginBottom: '', marginTop: '' }) : p.css({ marginRight: '', marginBottom: '', marginTop: '', }), i.slidesPerColumn > 1 && (T = Math.floor(u / i.slidesPerColumn) === u / e.params.slidesPerColumn ? u : Math.ceil( u / i.slidesPerColumn) * i.slidesPerColumn, 'auto' !== i.slidesPerView && 'row' === i.slidesPerColumnFill && (T = Math.max(T, i.slidesPerView * i.slidesPerColumn))); for (var S, z, P, k = i.slidesPerColumn, $ = T / k, L = Math.floor(u / i.slidesPerColumn), I = 0; I < u; I += 1) { C = 0; var O = p.eq(I); if (i.slidesPerColumn > 1) { var A = void 0, D = void 0, N = void 0; if ('row' === i.slidesPerColumnFill && i.slidesPerGroup > 1) { var G = Math.floor( I / (i.slidesPerGroup * i.slidesPerColumn)), B = I - i.slidesPerColumn * i.slidesPerGroup * G, H = 0 === G ? i.slidesPerGroup : Math.min( Math.ceil( (u - G * k * i.slidesPerGroup) / k), i.slidesPerGroup); A = (D = B - (N = Math.floor(B / H)) * H + G * i.slidesPerGroup) + N * T / k, O.css({ '-webkit-box-ordinal-group': A, '-moz-box-ordinal-group': A, '-ms-flex-order': A, '-webkit-order': A, order: A, }); } else 'column' === i.slidesPerColumnFill ? (N = I - (D = Math.floor(I / k)) * k, (D > L || D === L && N === k - 1) && (N += 1) >= k && (N = 0, D += 1)) : D = I - (N = Math.floor(I / $)) * $; O.css(t('margin-top'), 0 !== N ? i.spaceBetween && i.spaceBetween + 'px' : ''); } if ('none' !== O.css('display')) { if ('auto' === i.slidesPerView) { var R = getComputedStyle(O[0]), X = O[0].style.transform, Y = O[0].style.webkitTransform; if (X && (O[0].style.transform = 'none'), Y && (O[0].style.webkitTransform = 'none'), i.roundLengths) C = e.isHorizontal() ? O.outerWidth(!0) : O.outerHeight(!0); else { var V = a(R, 'width'), W = a(R, 'padding-left'), F = a(R, 'padding-right'), _ = a(R, 'margin-left'), q = a(R, 'margin-right'), j = R.getPropertyValue('box-sizing'); if (j && 'border-box' === j) C = V + _ + q; else { var U = O[0], K = U.clientWidth; C = V + W + F + _ + q + (U.offsetWidth - K); } } X && (O[0].style.transform = X), Y && (O[0].style.webkitTransform = Y), i.roundLengths && (C = Math.floor(C)); } else C = (r - (i.slidesPerView - 1) * w) / i.slidesPerView, i.roundLengths && (C = Math.floor(C)), p[I] && (p[I].style[t('width')] = C + 'px'); p[I] && (p[I].swiperSlideSize = C), v.push( C), i.centeredSlides ? (y = y + C / 2 + E / 2 + w, 0 === E && 0 !== I && (y = y - r / 2 - w), 0 === I && (y = y - r / 2 - w), Math.abs(y) < .001 && (y = 0), i.roundLengths && (y = Math.floor(y)), x % i.slidesPerGroup == 0 && c.push(y), h.push(y)) : (i.roundLengths && (y = Math.floor(y)), (x - Math.min(e.params.slidesPerGroupSkip, x)) % e.params.slidesPerGroup == 0 && c.push(y), h.push(y), y = y + C + w), e.virtualSize += C + w, E = C, x += 1; } } if (e.virtualSize = Math.max(e.virtualSize, r) + m, n && l && ('slide' === i.effect || 'coverflow' === i.effect) && s.css({ width: e.virtualSize + i.spaceBetween + 'px', }), i.setWrapperSize) s.css( ((z = {})[t('width')] = e.virtualSize + i.spaceBetween + 'px', z)); if (i.slidesPerColumn > 1) if (e.virtualSize = (C + i.spaceBetween) * T, e.virtualSize = Math.ceil( e.virtualSize / i.slidesPerColumn) - i.spaceBetween, s.css( ((P = {})[t('width')] = e.virtualSize + i.spaceBetween + 'px', P)), i.centeredSlides) { S = []; for (var Z = 0; Z < c.length; Z += 1) { var J = c[Z]; i.roundLengths && (J = Math.floor(J)), c[Z] < e.virtualSize + c[0] && S.push(J); } c = S; } if (!i.centeredSlides) { S = []; for (var Q = 0; Q < c.length; Q += 1) { var ee = c[Q]; i.roundLengths && (ee = Math.floor(ee)), c[Q] <= e.virtualSize - r && S.push(ee); } c = S, Math.floor(e.virtualSize - r) - Math.floor(c[c.length - 1]) > 1 && c.push(e.virtualSize - r); } if (0 === c.length && (c = [0]), 0 !== i.spaceBetween) { var te, ae = e.isHorizontal() && n ? 'marginLeft' : t( 'marginRight'); p.filter((function (e, t) { return !i.cssMode || t !== p.length - 1; })).css(((te = {})[ae] = w + 'px', te)); } if (i.centeredSlides && i.centeredSlidesBounds) { var ie = 0; v.forEach((function (e) { ie += e + (i.spaceBetween ? i.spaceBetween : 0); })); var se = (ie -= i.spaceBetween) - r; c = c.map((function (e) { return e < 0 ? -f : e > se ? se + m : e; })); } if (i.centerInsufficientSlides) { var re = 0; if (v.forEach((function (e) { re += e + (i.spaceBetween ? i.spaceBetween : 0); })), (re -= i.spaceBetween) < r) { var ne = (r - re) / 2; c.forEach( (function (e, t) {c[t] = e - ne;})), h.forEach( (function (e, t) {h[t] = e + ne;})); } } M(e, { slides: p, snapGrid: c, slidesGrid: h, slidesSizesGrid: v, }), u !== d && e.emit('slidesLengthChange'), c.length !== g && (e.params.watchOverflow && e.checkOverflow(), e.emit( 'snapGridLengthChange')), h.length !== b && e.emit('slidesGridLengthChange'), (i.watchSlidesProgress || i.watchSlidesVisibility) && e.updateSlidesOffset(); } }, updateAutoHeight: function (e) { var t, a = this, i = [], s = a.virtual && a.params.virtual.enabled, r = 0; 'number' == typeof e ? a.setTransition(e) : !0 === e && a.setTransition(a.params.speed); var n = function (e) { return s ? a.slides.filter((function (t) { return parseInt( t.getAttribute('data-swiper-slide-index'), 10) === e; }))[0] : a.slides.eq(e)[0]; }; if ('auto' !== a.params.slidesPerView && a.params.slidesPerView > 1) if (a.params.centeredSlides) a.visibleSlides.each( (function (e) {i.push(e);})); else for (t = 0; t < Math.ceil( a.params.slidesPerView); t += 1) { var l = a.activeIndex + t; if (l > a.slides.length && !s) break; i.push(n(l)); } else i.push(n(a.activeIndex)); for (t = 0; t < i.length; t += 1) if (void 0 !== i[t]) { var o = i[t].offsetHeight; r = o > r ? o : r; } r && a.$wrapperEl.css('height', r + 'px'); }, updateSlidesOffset: function () { for (var e = this.slides, t = 0; t < e.length; t += 1) e[t].swiperSlideOffset = this.isHorizontal() ? e[t].offsetLeft : e[t].offsetTop; }, updateSlidesProgress: function (e) { void 0 === e && (e = this && this.translate || 0); var t = this, a = t.params, i = t.slides, s = t.rtlTranslate; if (0 !== i.length) { void 0 === i[0].swiperSlideOffset && t.updateSlidesOffset(); var r = -e; s && (r = e), i.removeClass( a.slideVisibleClass), t.visibleSlidesIndexes = [], t.visibleSlides = []; for (var n = 0; n < i.length; n += 1) { var l = i[n], o = (r + (a.centeredSlides ? t.minTranslate() : 0) - l.swiperSlideOffset) / (l.swiperSlideSize + a.spaceBetween); if (a.watchSlidesVisibility || a.centeredSlides && a.autoHeight) { var d = -(r - l.swiperSlideOffset), p = d + t.slidesSizesGrid[n]; (d >= 0 && d < t.size - 1 || p > 1 && p <= t.size || d <= 0 && p >= t.size) && (t.visibleSlides.push( l), t.visibleSlidesIndexes.push(n), i.eq(n). addClass(a.slideVisibleClass)); } l.progress = s ? -o : o; } t.visibleSlides = m(t.visibleSlides); } }, updateProgress: function (e) { var t = this; if (void 0 === e) { var a = t.rtlTranslate ? -1 : 1; e = t && t.translate && t.translate * a || 0; } var i = t.params, s = t.maxTranslate() - t.minTranslate(), r = t.progress, n = t.isBeginning, l = t.isEnd, o = n, d = l; 0 === s ? (r = 0, n = !0, l = !0) : (n = (r = (e - t.minTranslate()) / s) <= 0, l = r >= 1), M(t, { progress: r, isBeginning: n, isEnd: l, }), (i.watchSlidesProgress || i.watchSlidesVisibility || i.centeredSlides && i.autoHeight) && t.updateSlidesProgress(e), n && !o && t.emit('reachBeginning toEdge'), l && !d && t.emit('reachEnd toEdge'), (o && !n || d && !l) && t.emit('fromEdge'), t.emit('progress', r); }, updateSlidesClasses: function () { var e, t = this, a = t.slides, i = t.params, s = t.$wrapperEl, r = t.activeIndex, n = t.realIndex, l = t.virtual && i.virtual.enabled; a.removeClass( i.slideActiveClass + ' ' + i.slideNextClass + ' ' + i.slidePrevClass + ' ' + i.slideDuplicateActiveClass + ' ' + i.slideDuplicateNextClass + ' ' + i.slideDuplicatePrevClass), (e = l ? t.$wrapperEl.find( '.' + i.slideClass + '[data-swiper-slide-index="' + r + '"]') : a.eq(r)).addClass(i.slideActiveClass), i.loop && (e.hasClass(i.slideDuplicateClass) ? s.children( '.' + i.slideClass + ':not(.' + i.slideDuplicateClass + ')[data-swiper-slide-index="' + n + '"]'). addClass(i.slideDuplicateActiveClass) : s.children( '.' + i.slideClass + '.' + i.slideDuplicateClass + '[data-swiper-slide-index="' + n + '"]'). addClass(i.slideDuplicateActiveClass)); var o = e.nextAll('.' + i.slideClass). eq(0). addClass(i.slideNextClass); i.loop && 0 === o.length && (o = a.eq(0)).addClass(i.slideNextClass); var d = e.prevAll('.' + i.slideClass). eq(0). addClass(i.slidePrevClass); i.loop && 0 === d.length && (d = a.eq(-1)).addClass(i.slidePrevClass), i.loop && (o.hasClass(i.slideDuplicateClass) ? s.children( '.' + i.slideClass + ':not(.' + i.slideDuplicateClass + ')[data-swiper-slide-index="' + o.attr('data-swiper-slide-index') + '"]'). addClass(i.slideDuplicateNextClass) : s.children( '.' + i.slideClass + '.' + i.slideDuplicateClass + '[data-swiper-slide-index="' + o.attr('data-swiper-slide-index') + '"]'). addClass(i.slideDuplicateNextClass), d.hasClass( i.slideDuplicateClass) ? s.children( '.' + i.slideClass + ':not(.' + i.slideDuplicateClass + ')[data-swiper-slide-index="' + d.attr('data-swiper-slide-index') + '"]'). addClass(i.slideDuplicatePrevClass) : s.children( '.' + i.slideClass + '.' + i.slideDuplicateClass + '[data-swiper-slide-index="' + d.attr('data-swiper-slide-index') + '"]'). addClass(i.slideDuplicatePrevClass)), t.emitSlidesClasses(); }, updateActiveIndex: function (e) { var t, a = this, i = a.rtlTranslate ? a.translate : -a.translate, s = a.slidesGrid, r = a.snapGrid, n = a.params, l = a.activeIndex, o = a.realIndex, d = a.snapIndex, p = e; if (void 0 === p) { for (var u = 0; u < s.length; u += 1) void 0 !== s[u + 1] ? i >= s[u] && i < s[u + 1] - (s[u + 1] - s[u]) / 2 ? p = u : i >= s[u] && i < s[u + 1] && (p = u + 1) : i >= s[u] && (p = u); n.normalizeSlideIndex && (p < 0 || void 0 === p) && (p = 0); } if (r.indexOf(i) >= 0) t = r.indexOf(i); else { var c = Math.min(n.slidesPerGroupSkip, p); t = c + Math.floor((p - c) / n.slidesPerGroup); } if (t >= r.length && (t = r.length - 1), p !== l) { var h = parseInt( a.slides.eq(p).attr('data-swiper-slide-index') || p, 10); M(a, { snapIndex: t, realIndex: h, previousIndex: l, activeIndex: p, }), a.emit('activeIndexChange'), a.emit( 'snapIndexChange'), o !== h && a.emit('realIndexChange'), (a.initialized || a.params.runCallbacksOnInit) && a.emit('slideChange'); } else t !== d && (a.snapIndex = t, a.emit('snapIndexChange')); }, updateClickedSlide: function (e) { var t, a = this, i = a.params, s = m(e.target).closest('.' + i.slideClass)[0], r = !1; if (s) for (var n = 0; n < a.slides.length; n += 1) if (a.slides[n] === s) { r = !0, t = n; break; } if (!s || !r) return a.clickedSlide = void 0, void (a.clickedIndex = void 0); a.clickedSlide = s, a.virtual && a.params.virtual.enabled ? a.clickedIndex = parseInt( m(s).attr('data-swiper-slide-index'), 10) : a.clickedIndex = t, i.slideToClickedSlide && void 0 !== a.clickedIndex && a.clickedIndex !== a.activeIndex && a.slideToClickedSlide(); }, }, translate: { getTranslate: function (e) { void 0 === e && (e = this.isHorizontal() ? 'x' : 'y'); var t = this, a = t.params, i = t.rtlTranslate, s = t.translate, r = t.$wrapperEl; if (a.virtualTranslate) return i ? -s : s; if (a.cssMode) return s; var n = T(r[0], e); return i && (n = -n), n || 0; }, setTranslate: function (e, t) { var a = this, i = a.rtlTranslate, s = a.params, r = a.$wrapperEl, n = a.wrapperEl, l = a.progress, o = 0, d = 0; a.isHorizontal() ? o = i ? -e : e : d = e, s.roundLengths && (o = Math.floor(o), d = Math.floor(d)), s.cssMode ? n[a.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = a.isHorizontal() ? -o : -d : s.virtualTranslate || r.transform( 'translate3d(' + o + 'px, ' + d + 'px, 0px)'), a.previousTranslate = a.translate, a.translate = a.isHorizontal() ? o : d; var p = a.maxTranslate() - a.minTranslate(); (0 === p ? 0 : (e - a.minTranslate()) / p) !== l && a.updateProgress(e), a.emit('setTranslate', a.translate, t); }, minTranslate: function () {return -this.snapGrid[0];}, maxTranslate: function () { return -this.snapGrid[this.snapGrid.length - 1]; }, translateTo: function (e, t, a, i, s) { void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === a && (a = !0), void 0 === i && (i = !0); var r = this, n = r.params, l = r.wrapperEl; if (r.animating && n.preventInteractionOnTransition) return !1; var o, d = r.minTranslate(), p = r.maxTranslate(); if (o = i && e > d ? d : i && e < p ? p : e, r.updateProgress( o), n.cssMode) { var u, c = r.isHorizontal(); if (0 === t) l[c ? 'scrollLeft' : 'scrollTop'] = -o; else if (l.scrollTo) l.scrollTo( ((u = {})[c ? 'left' : 'top'] = -o, u.behavior = 'smooth', u)); else l[c ? 'scrollLeft' : 'scrollTop'] = -o; return !0; } return 0 === t ? (r.setTransition(0), r.setTranslate(o), a && (r.emit('beforeTransitionStart', t, s), r.emit( 'transitionEnd'))) : (r.setTransition(t), r.setTranslate( o), a && (r.emit('beforeTransitionStart', t, s), r.emit( 'transitionStart')), r.animating || (r.animating = !0, r.onTranslateToWrapperTransitionEnd || (r.onTranslateToWrapperTransitionEnd = function (e) { r && !r.destroyed && e.target === this && (r.$wrapperEl[0].removeEventListener('transitionend', r.onTranslateToWrapperTransitionEnd), r.$wrapperEl[0].removeEventListener( 'webkitTransitionEnd', r.onTranslateToWrapperTransitionEnd), r.onTranslateToWrapperTransitionEnd = null, delete r.onTranslateToWrapperTransitionEnd, a && r.emit('transitionEnd')); }), r.$wrapperEl[0].addEventListener('transitionend', r.onTranslateToWrapperTransitionEnd), r.$wrapperEl[0].addEventListener( 'webkitTransitionEnd', r.onTranslateToWrapperTransitionEnd))), !0; }, }, transition: { setTransition: function (e, t) { var a = this; a.params.cssMode || a.$wrapperEl.transition(e), a.emit( 'setTransition', e, t); }, transitionStart: function (e, t) { void 0 === e && (e = !0); var a = this, i = a.activeIndex, s = a.params, r = a.previousIndex; if (!s.cssMode) { s.autoHeight && a.updateAutoHeight(); var n = t; if (n || (n = i > r ? 'next' : i < r ? 'prev' : 'reset'), a.emit( 'transitionStart'), e && i !== r) { if ('reset' === n) return void a.emit( 'slideResetTransitionStart'); a.emit('slideChangeTransitionStart'), 'next' === n ? a.emit('slideNextTransitionStart') : a.emit('slidePrevTransitionStart'); } } }, transitionEnd: function (e, t) { void 0 === e && (e = !0); var a = this, i = a.activeIndex, s = a.previousIndex, r = a.params; if (a.animating = !1, !r.cssMode) { a.setTransition(0); var n = t; if (n || (n = i > s ? 'next' : i < s ? 'prev' : 'reset'), a.emit( 'transitionEnd'), e && i !== s) { if ('reset' === n) return void a.emit( 'slideResetTransitionEnd'); a.emit('slideChangeTransitionEnd'), 'next' === n ? a.emit('slideNextTransitionEnd') : a.emit('slidePrevTransitionEnd'); } } }, }, slide: { slideTo: function (e, t, a, i, s) { if (void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === a && (a = !0), 'number' != typeof e && 'string' != typeof e) throw new Error( 'The \'index\' argument cannot have type other than \'number\' or \'string\'. [' + typeof e + '] given.'); if ('string' == typeof e) { var r = parseInt(e, 10); if (!isFinite(r)) throw new Error( 'The passed-in \'index\' (string) couldn\'t be converted to \'number\'. [' + e + '] given.'); e = r; } var n = this, l = e; l < 0 && (l = 0); var o = n.params, d = n.snapGrid, p = n.slidesGrid, u = n.previousIndex, c = n.activeIndex, h = n.rtlTranslate, v = n.wrapperEl, f = n.enabled; if (n.animating && o.preventInteractionOnTransition || !f && !i && !s) return !1; var m = Math.min(n.params.slidesPerGroupSkip, l), g = m + Math.floor((l - m) / n.params.slidesPerGroup); g >= d.length && (g = d.length - 1), (c || o.initialSlide || 0) === (u || 0) && a && n.emit('beforeSlideChangeStart'); var b, w = -d[g]; if (n.updateProgress( w), o.normalizeSlideIndex) for (var y = 0; y < p.length; y += 1) { var E = -Math.floor(100 * w), x = Math.floor(100 * p[y]), T = Math.floor(100 * p[y + 1]); void 0 !== p[y + 1] ? E >= x && E < T - (T - x) / 2 ? l = y : E >= x && E < T && (l = y + 1) : E >= x && (l = y); } if (n.initialized && l !== c) { if (!n.allowSlideNext && w < n.translate && w < n.minTranslate()) return !1; if (!n.allowSlidePrev && w > n.translate && w > n.maxTranslate() && (c || 0) !== l) return !1; } if (b = l > c ? 'next' : l < c ? 'prev' : 'reset', h && -w === n.translate || !h && w === n.translate) return n.updateActiveIndex(l), o.autoHeight && n.updateAutoHeight(), n.updateSlidesClasses(), 'slide' !== o.effect && n.setTranslate(w), 'reset' !== b && (n.transitionStart(a, b), n.transitionEnd(a, b)), !1; if (o.cssMode) { var C, S = n.isHorizontal(), M = -w; if (h && (M = v.scrollWidth - v.offsetWidth - M), 0 === t) v[S ? 'scrollLeft' : 'scrollTop'] = M; else if (v.scrollTo) v.scrollTo( ((C = {})[S ? 'left' : 'top'] = M, C.behavior = 'smooth', C)); else v[S ? 'scrollLeft' : 'scrollTop'] = M; return !0; } return 0 === t ? (n.setTransition(0), n.setTranslate( w), n.updateActiveIndex(l), n.updateSlidesClasses(), n.emit( 'beforeTransitionStart', t, i), n.transitionStart(a, b), n.transitionEnd(a, b)) : (n.setTransition( t), n.setTranslate(w), n.updateActiveIndex( l), n.updateSlidesClasses(), n.emit('beforeTransitionStart', t, i), n.transitionStart(a, b), n.animating || (n.animating = !0, n.onSlideToWrapperTransitionEnd || (n.onSlideToWrapperTransitionEnd = function (e) { n && !n.destroyed && e.target === this && (n.$wrapperEl[0].removeEventListener('transitionend', n.onSlideToWrapperTransitionEnd), n.$wrapperEl[0].removeEventListener( 'webkitTransitionEnd', n.onSlideToWrapperTransitionEnd), n.onSlideToWrapperTransitionEnd = null, delete n.onSlideToWrapperTransitionEnd, n.transitionEnd( a, b)); }), n.$wrapperEl[0].addEventListener('transitionend', n.onSlideToWrapperTransitionEnd), n.$wrapperEl[0].addEventListener( 'webkitTransitionEnd', n.onSlideToWrapperTransitionEnd))), !0; }, slideToLoop: function (e, t, a, i) { void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === a && (a = !0); var s = this, r = e; return s.params.loop && (r += s.loopedSlides), s.slideTo(r, t, a, i); }, slideNext: function (e, t, a) { void 0 === e && (e = this.params.speed), void 0 === t && (t = !0); var i = this, s = i.params, r = i.animating; if (!i.enabled) return i; var n = i.activeIndex < s.slidesPerGroupSkip ? 1 : s.slidesPerGroup; if (s.loop) { if (r && s.loopPreventsSlide) return !1; i.loopFix(), i._clientLeft = i.$wrapperEl[0].clientLeft; } return i.slideTo(i.activeIndex + n, e, t, a); }, slidePrev: function (e, t, a) { void 0 === e && (e = this.params.speed), void 0 === t && (t = !0); var i = this, s = i.params, r = i.animating, n = i.snapGrid, l = i.slidesGrid, o = i.rtlTranslate; if (!i.enabled) return i; if (s.loop) { if (r && s.loopPreventsSlide) return !1; i.loopFix(), i._clientLeft = i.$wrapperEl[0].clientLeft; } function d (e) { return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e); } var p, u = d(o ? i.translate : -i.translate), c = n.map((function (e) {return d(e);})), h = n[c.indexOf(u) - 1]; return void 0 === h && s.cssMode && n.forEach((function (e) {!h && u >= e && (h = e);})), void 0 !== h && (p = l.indexOf(h)) < 0 && (p = i.activeIndex - 1), i.slideTo(p, e, t, a); }, slideReset: function (e, t, a) { return void 0 === e && (e = this.params.speed), void 0 === t && (t = !0), this.slideTo(this.activeIndex, e, t, a); }, slideToClosest: function (e, t, a, i) { void 0 === e && (e = this.params.speed), void 0 === t && (t = !0), void 0 === i && (i = .5); var s = this, r = s.activeIndex, n = Math.min(s.params.slidesPerGroupSkip, r), l = n + Math.floor((r - n) / s.params.slidesPerGroup), o = s.rtlTranslate ? s.translate : -s.translate; if (o >= s.snapGrid[l]) { var d = s.snapGrid[l]; o - d > (s.snapGrid[l + 1] - d) * i && (r += s.params.slidesPerGroup); } else { var p = s.snapGrid[l - 1]; o - p <= (s.snapGrid[l] - p) * i && (r -= s.params.slidesPerGroup); } return r = Math.max(r, 0), r = Math.min(r, s.slidesGrid.length - 1), s.slideTo(r, e, t, a); }, slideToClickedSlide: function () { var e, t = this, a = t.params, i = t.$wrapperEl, s = 'auto' === a.slidesPerView ? t.slidesPerViewDynamic() : a.slidesPerView, r = t.clickedIndex; if (a.loop) { if (t.animating) return; e = parseInt( m(t.clickedSlide).attr('data-swiper-slide-index'), 10), a.centeredSlides ? r < t.loopedSlides - s / 2 || r > t.slides.length - t.loopedSlides + s / 2 ? (t.loopFix(), r = i.children( '.' + a.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + a.slideDuplicateClass + ')'). eq(0). index(), E((function () {t.slideTo(r);}))) : t.slideTo(r) : r > t.slides.length - s ? (t.loopFix(), r = i.children( '.' + a.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + a.slideDuplicateClass + ')'). eq(0). index(), E((function () {t.slideTo(r);}))) : t.slideTo(r); } else t.slideTo(r); }, }, loop: { loopCreate: function () { var e = this, t = r(), a = e.params, i = e.$wrapperEl; i.children('.' + a.slideClass + '.' + a.slideDuplicateClass). remove(); var s = i.children('.' + a.slideClass); if (a.loopFillGroupWithBlank) { var n = a.slidesPerGroup - s.length % a.slidesPerGroup; if (n !== a.slidesPerGroup) { for (var l = 0; l < n; l += 1) { var o = m(t.createElement('div')). addClass( a.slideClass + ' ' + a.slideBlankClass); i.append(o); } s = i.children('.' + a.slideClass); } } 'auto' !== a.slidesPerView || a.loopedSlides || (a.loopedSlides = s.length), e.loopedSlides = Math.ceil( parseFloat(a.loopedSlides || a.slidesPerView, 10)), e.loopedSlides += a.loopAdditionalSlides, e.loopedSlides > s.length && (e.loopedSlides = s.length); var d = [], p = []; s.each((function (t, a) { var i = m(t); a < e.loopedSlides && p.push(t), a < s.length && a >= s.length - e.loopedSlides && d.push(t), i.attr( 'data-swiper-slide-index', a); })); for (var u = 0; u < p.length; u += 1) i.append( m(p[u].cloneNode(!0)).addClass(a.slideDuplicateClass)); for (var c = d.length - 1; c >= 0; c -= 1) i.prepend( m(d[c].cloneNode(!0)).addClass(a.slideDuplicateClass)); }, loopFix: function () { var e = this; e.emit('beforeLoopFix'); var t, a = e.activeIndex, i = e.slides, s = e.loopedSlides, r = e.allowSlidePrev, n = e.allowSlideNext, l = e.snapGrid, o = e.rtlTranslate; e.allowSlidePrev = !0, e.allowSlideNext = !0; var d = -l[a] - e.getTranslate(); if (a < s) t = i.length - 3 * s + a, t += s, e.slideTo(t, 0, !1, !0) && 0 !== d && e.setTranslate( (o ? -e.translate : e.translate) - d); else if (a >= i.length - s) { t = -i.length + a + s, t += s, e.slideTo(t, 0, !1, !0) && 0 !== d && e.setTranslate((o ? -e.translate : e.translate) - d); } e.allowSlidePrev = r, e.allowSlideNext = n, e.emit('loopFix'); }, loopDestroy: function () { var e = this, t = e.$wrapperEl, a = e.params, i = e.slides; t.children( '.' + a.slideClass + '.' + a.slideDuplicateClass + ',.' + a.slideClass + '.' + a.slideBlankClass). remove(), i.removeAttr('data-swiper-slide-index'); }, }, grabCursor: { setGrabCursor: function (e) { var t = this; if (!(t.support.touch || !t.params.simulateTouch || t.params.watchOverflow && t.isLocked || t.params.cssMode)) { var a = t.el; a.style.cursor = 'move', a.style.cursor = e ? '-webkit-grabbing' : '-webkit-grab', a.style.cursor = e ? '-moz-grabbin' : '-moz-grab', a.style.cursor = e ? 'grabbing' : 'grab'; } }, unsetGrabCursor: function () { var e = this; e.support.touch || e.params.watchOverflow && e.isLocked || e.params.cssMode || (e.el.style.cursor = ''); }, }, manipulation: { appendSlide: function (e) { var t = this, a = t.$wrapperEl, i = t.params; if (i.loop && t.loopDestroy(), 'object' == typeof e && 'length' in e) for (var s = 0; s < e.length; s += 1) e[s] && a.append(e[s]); else a.append(e); i.loop && t.loopCreate(), i.observer && t.support.observer || t.update(); }, prependSlide: function (e) { var t = this, a = t.params, i = t.$wrapperEl, s = t.activeIndex; a.loop && t.loopDestroy(); var r = s + 1; if ('object' == typeof e && 'length' in e) { for (var n = 0; n < e.length; n += 1) e[n] && i.prepend(e[n]); r = s + e.length; } else i.prepend(e); a.loop && t.loopCreate(), a.observer && t.support.observer || t.update(), t.slideTo(r, 0, !1); }, addSlide: function (e, t) { var a = this, i = a.$wrapperEl, s = a.params, r = a.activeIndex; s.loop && (r -= a.loopedSlides, a.loopDestroy(), a.slides = i.children( '.' + s.slideClass)); var n = a.slides.length; if (e <= 0) a.prependSlide(t); else if (e >= n) a.appendSlide( t); else { for (var l = r > e ? r + 1 : r, o = [], d = n - 1; d >= e; d -= 1) { var p = a.slides.eq(d); p.remove(), o.unshift(p); } if ('object' == typeof t && 'length' in t) { for (var u = 0; u < t.length; u += 1) t[u] && i.append(t[u]); l = r > e ? r + t.length : r; } else i.append(t); for (var c = 0; c < o.length; c += 1) i.append(o[c]); s.loop && a.loopCreate(), s.observer && a.support.observer || a.update(), s.loop ? a.slideTo( l + a.loopedSlides, 0, !1) : a.slideTo(l, 0, !1); } }, removeSlide: function (e) { var t = this, a = t.params, i = t.$wrapperEl, s = t.activeIndex; a.loop && (s -= t.loopedSlides, t.loopDestroy(), t.slides = i.children( '.' + a.slideClass)); var r, n = s; if ('object' == typeof e && 'length' in e) { for (var l = 0; l < e.length; l += 1) r = e[l], t.slides[r] && t.slides.eq(r).remove(), r < n && (n -= 1); n = Math.max(n, 0); } else r = e, t.slides[r] && t.slides.eq(r).remove(), r < n && (n -= 1), n = Math.max(n, 0); a.loop && t.loopCreate(), a.observer && t.support.observer || t.update(), a.loop ? t.slideTo(n + t.loopedSlides, 0, !1) : t.slideTo(n, 0, !1); }, removeAllSlides: function () { for (var e = [], t = 0; t < this.slides.length; t += 1) e.push( t); this.removeSlide(e); }, }, events: { attachEvents: function () { var e = this, t = r(), a = e.params, i = e.touchEvents, s = e.el, n = e.wrapperEl, l = e.device, o = e.support; e.onTouchStart = N.bind(e), e.onTouchMove = G.bind( e), e.onTouchEnd = B.bind(e), a.cssMode && (e.onScroll = X.bind(e)), e.onClick = R.bind(e); var d = !!a.nested; if (!o.touch && o.pointerEvents) s.addEventListener(i.start, e.onTouchStart, !1), t.addEventListener(i.move, e.onTouchMove, d), t.addEventListener(i.end, e.onTouchEnd, !1); else { if (o.touch) { var p = !('touchstart' !== i.start || !o.passiveListener || !a.passiveListeners) && { passive: !0, capture: !1 }; s.addEventListener(i.start, e.onTouchStart, p), s.addEventListener(i.move, e.onTouchMove, o.passiveListener ? { passive: !1, capture: d } : d), s.addEventListener(i.end, e.onTouchEnd, p), i.cancel && s.addEventListener(i.cancel, e.onTouchEnd, p), Y || (t.addEventListener('touchstart', V), Y = !0); } (a.simulateTouch && !l.ios && !l.android || a.simulateTouch && !o.touch && l.ios) && (s.addEventListener('mousedown', e.onTouchStart, !1), t.addEventListener('mousemove', e.onTouchMove, d), t.addEventListener('mouseup', e.onTouchEnd, !1)); } (a.preventClicks || a.preventClicksPropagation) && s.addEventListener('click', e.onClick, !0), a.cssMode && n.addEventListener('scroll', e.onScroll), a.updateOnWindowResize ? e.on(l.ios || l.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', H, !0) : e.on('observerUpdate', H, !0); }, detachEvents: function () { var e = this, t = r(), a = e.params, i = e.touchEvents, s = e.el, n = e.wrapperEl, l = e.device, o = e.support, d = !!a.nested; if (!o.touch && o.pointerEvents) s.removeEventListener(i.start, e.onTouchStart, !1), t.removeEventListener(i.move, e.onTouchMove, d), t.removeEventListener(i.end, e.onTouchEnd, !1); else { if (o.touch) { var p = !('onTouchStart' !== i.start || !o.passiveListener || !a.passiveListeners) && { passive: !0, capture: !1 }; s.removeEventListener(i.start, e.onTouchStart, p), s.removeEventListener(i.move, e.onTouchMove, d), s.removeEventListener(i.end, e.onTouchEnd, p), i.cancel && s.removeEventListener(i.cancel, e.onTouchEnd, p); } (a.simulateTouch && !l.ios && !l.android || a.simulateTouch && !o.touch && l.ios) && (s.removeEventListener('mousedown', e.onTouchStart, !1), t.removeEventListener('mousemove', e.onTouchMove, d), t.removeEventListener('mouseup', e.onTouchEnd, !1)); } (a.preventClicks || a.preventClicksPropagation) && s.removeEventListener('click', e.onClick, !0), a.cssMode && n.removeEventListener('scroll', e.onScroll), e.off( l.ios || l.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', H); }, }, breakpoints: { setBreakpoint: function () { var e = this, t = e.activeIndex, a = e.initialized, i = e.loopedSlides, s = void 0 === i ? 0 : i, r = e.params, n = e.$el, l = r.breakpoints; if (l && (!l || 0 !== Object.keys(l).length)) { var o = e.getBreakpoint(l, e.params.breakpointsBase, e.el); if (o && e.currentBreakpoint !== o) { var d = o in l ? l[o] : void 0; d && [ 'slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach((function (e) { var t = d[e]; void 0 !== t && (d[e] = 'slidesPerView' !== e || 'AUTO' !== t && 'auto' !== t ? 'slidesPerView' === e ? parseFloat(t) : parseInt(t, 10) : 'auto'); })); var p = d || e.originalParams, u = r.slidesPerColumn > 1, c = p.slidesPerColumn > 1, h = r.enabled; u && !c ? (n.removeClass( r.containerModifierClass + 'multirow ' + r.containerModifierClass + 'multirow-column'), e.emitContainerClasses()) : !u && c && (n.addClass(r.containerModifierClass + 'multirow'), (p.slidesPerColumnFill && 'column' === p.slidesPerColumnFill || !p.slidesPerColumnFill && 'column' === r.slidesPerColumnFill) && n.addClass( r.containerModifierClass + 'multirow-column'), e.emitContainerClasses()); var v = p.direction && p.direction !== r.direction, f = r.loop && (p.slidesPerView !== r.slidesPerView || v); v && a && e.changeDirection(), M(e.params, p); var m = e.params.enabled; M(e, { allowTouchMove: e.params.allowTouchMove, allowSlideNext: e.params.allowSlideNext, allowSlidePrev: e.params.allowSlidePrev, }), h && !m ? e.disable() : !h && m && e.enable(), e.currentBreakpoint = o, e.emit( '_beforeBreakpoint', p), f && a && (e.loopDestroy(), e.loopCreate(), e.updateSlides(), e.slideTo( t - s + e.loopedSlides, 0, !1)), e.emit( 'breakpoint', p); } } }, getBreakpoint: function (e, t, a) { if (void 0 === t && (t = 'window'), e && ('container' !== t || a)) { var i = !1, s = l(), r = 'window' === t ? s.innerHeight : a.clientHeight, n = Object.keys(e). map((function (e) { if ('string' == typeof e && 0 === e.indexOf('@')) { var t = parseFloat(e.substr(1)); return { value: r * t, point: e }; } return { value: e, point: e }; })); n.sort((function (e, t) { return parseInt(e.value, 10) - parseInt(t.value, 10); })); for (var o = 0; o < n.length; o += 1) { var d = n[o], p = d.point, u = d.value; 'window' === t ? s.matchMedia( '(min-width: ' + u + 'px)').matches && (i = p) : u <= a.clientWidth && (i = p); } return i || 'max'; } }, }, checkOverflow: { checkOverflow: function () { var e = this, t = e.params, a = e.isLocked, i = e.slides.length > 0 && t.slidesOffsetBefore + t.spaceBetween * (e.slides.length - 1) + e.slides[0].offsetWidth * e.slides.length; t.slidesOffsetBefore && t.slidesOffsetAfter && i ? e.isLocked = i <= e.size : e.isLocked = 1 === e.snapGrid.length, e.allowSlideNext = !e.isLocked, e.allowSlidePrev = !e.isLocked, a !== e.isLocked && e.emit(e.isLocked ? 'lock' : 'unlock'), a && a !== e.isLocked && (e.isEnd = !1, e.navigation && e.navigation.update()); }, }, classes: { addClasses: function () { var e, t, a, i = this, s = i.classNames, r = i.params, n = i.rtl, l = i.$el, o = i.device, d = i.support, p = (e = [ 'initialized', r.direction, { 'pointer-events': d.pointerEvents && !d.touch }, { 'free-mode': r.freeMode }, { autoheight: r.autoHeight }, { rtl: n }, { multirow: r.slidesPerColumn > 1 }, { 'multirow-column': r.slidesPerColumn > 1 && 'column' === r.slidesPerColumnFill, }, { android: o.android }, { ios: o.ios }, { 'css-mode': r.cssMode }], t = r.containerModifierClass, a = [], e.forEach( (function (e) { 'object' == typeof e ? Object.keys(e). forEach((function (i) {e[i] && a.push(t + i);})) : 'string' == typeof e && a.push(t + e); })), a); s.push.apply(s, p), l.addClass( [].concat(s).join(' ')), i.emitContainerClasses(); }, removeClasses: function () { var e = this, t = e.$el, a = e.classNames; t.removeClass(a.join(' ')), e.emitContainerClasses(); }, }, images: { loadImage: function (e, t, a, i, s, r) { var n, o = l(); function d () {r && r();} m(e).parent('picture')[0] || e.complete && s ? d() : t ? ((n = new o.Image).onload = d, n.onerror = d, i && (n.sizes = i), a && (n.srcset = a), t && (n.src = t)) : d(); }, preloadImages: function () { var e = this; function t () { null != e && e && !e.destroyed && (void 0 !== e.imagesLoaded && (e.imagesLoaded += 1), e.imagesLoaded === e.imagesToLoad.length && (e.params.updateOnImagesReady && e.update(), e.emit( 'imagesReady'))); } e.imagesToLoad = e.$el.find('img'); for (var a = 0; a < e.imagesToLoad.length; a += 1) { var i = e.imagesToLoad[a]; e.loadImage(i, i.currentSrc || i.getAttribute('src'), i.srcset || i.getAttribute('srcset'), i.sizes || i.getAttribute('sizes'), !0, t); } }, }, }, _ = {}, q = function () { function t () { for (var e, a, i = arguments.length, s = new Array(i), r = 0; r < i; r++) s[r] = arguments[r]; if (1 === s.length && s[0].constructor && 'Object' === Object.prototype.toString.call(s[0]).slice(8, -1) ? a = s[0] : (e = s[0], a = s[1]), a || (a = {}), a = M({}, a), e && !a.el && (a.el = e), a.el && m(a.el).length > 1) { var n = []; return m(a.el).each((function (e) { var i = M({}, a, { el: e }); n.push(new t(i)); })), n; } var l = this; l.__swiper__ = !0, l.support = $(), l.device = L( { userAgent: a.userAgent }), l.browser = I(), l.eventsListeners = {}, l.eventsAnyListeners = [], void 0 === l.modules && (l.modules = {}), Object.keys(l.modules). forEach((function (e) { var t = l.modules[e]; if (t.params) { var i = Object.keys(t.params)[0], s = t.params[i]; if ('object' != typeof s || null === s) return; if (['navigation', 'pagination', 'scrollbar'].indexOf( i) >= 0 && !0 === a[i] && (a[i] = { auto: !0 }), !(i in a) || !('enabled' in s)) return; !0 === a[i] && (a[i] = { enabled: !0 }), 'object' != typeof a[i] || 'enabled' in a[i] || (a[i].enabled = !0), a[i] || (a[i] = { enabled: !1 }); } })); var o, d, p = M({}, W); return l.useParams(p), l.params = M({}, p, _, a), l.originalParams = M({}, l.params), l.passedParams = M({}, a), l.params && l.params.on && Object.keys(l.params.on). forEach((function (e) {l.on(e, l.params.on[e]);})), l.params && l.params.onAny && l.onAny(l.params.onAny), l.$ = m, M(l, { enabled: l.params.enabled, el: e, classNames: [], slides: m(), slidesGrid: [], snapGrid: [], slidesSizesGrid: [], isHorizontal: function () { return 'horizontal' === l.params.direction; }, isVertical: function () { return 'vertical' === l.params.direction; }, activeIndex: 0, realIndex: 0, isBeginning: !0, isEnd: !1, translate: 0, previousTranslate: 0, progress: 0, velocity: 0, animating: !1, allowSlideNext: l.params.allowSlideNext, allowSlidePrev: l.params.allowSlidePrev, touchEvents: (o = [ 'touchstart', 'touchmove', 'touchend', 'touchcancel'], d = [ 'mousedown', 'mousemove', 'mouseup'], l.support.pointerEvents && (d = [ 'pointerdown', 'pointermove', 'pointerup']), l.touchEventsTouch = { start: o[0], move: o[1], end: o[2], cancel: o[3], }, l.touchEventsDesktop = { start: d[0], move: d[1], end: d[2], }, l.support.touch || !l.params.simulateTouch ? l.touchEventsTouch : l.touchEventsDesktop), touchEventsData: { isTouched: void 0, isMoved: void 0, allowTouchCallbacks: void 0, touchStartTime: void 0, isScrolling: void 0, currentTranslate: void 0, startTranslate: void 0, allowThresholdMove: void 0, focusableElements: l.params.focusableElements, lastClickTime: x(), clickTimeout: void 0, velocities: [], allowMomentumBounce: void 0, isTouchEvent: void 0, startMoving: void 0, }, allowClick: !0, allowTouchMove: l.params.allowTouchMove, touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0, }, imagesToLoad: [], imagesLoaded: 0, }), l.useModules(), l.emit('_swiper'), l.params.init && l.init(), l; } var a, i, s, n = t.prototype; return n.enable = function () { var e = this; e.enabled || (e.enabled = !0, e.params.grabCursor && e.setGrabCursor(), e.emit( 'enable')); }, n.disable = function () { var e = this; e.enabled && (e.enabled = !1, e.params.grabCursor && e.unsetGrabCursor(), e.emit( 'disable')); }, n.setProgress = function (e, t) { var a = this; e = Math.min(Math.max(e, 0), 1); var i = a.minTranslate(), s = (a.maxTranslate() - i) * e + i; a.translateTo(s, void 0 === t ? 0 : t), a.updateActiveIndex(), a.updateSlidesClasses(); }, n.emitContainerClasses = function () { var e = this; if (e.params._emitClasses && e.el) { var t = e.el.className.split(' '). filter((function (t) { return 0 === t.indexOf('swiper-container') || 0 === t.indexOf(e.params.containerModifierClass); })); e.emit('_containerClasses', t.join(' ')); } }, n.getSlideClasses = function (e) { var t = this; return e.className.split(' '). filter((function (e) { return 0 === e.indexOf('swiper-slide') || 0 === e.indexOf(t.params.slideClass); })). join(' '); }, n.emitSlidesClasses = function () { var e = this; if (e.params._emitClasses && e.el) { var t = []; e.slides.each((function (a) { var i = e.getSlideClasses(a); t.push({ slideEl: a, classNames: i }), e.emit('_slideClass', a, i); })), e.emit('_slideClasses', t); } }, n.slidesPerViewDynamic = function () { var e = this, t = e.params, a = e.slides, i = e.slidesGrid, s = e.size, r = e.activeIndex, n = 1; if (t.centeredSlides) { for (var l, o = a[r].swiperSlideSize, d = r + 1; d < a.length; d += 1) a[d] && !l && (n += 1, (o += a[d].swiperSlideSize) > s && (l = !0)); for (var p = r - 1; p >= 0; p -= 1) a[p] && !l && (n += 1, (o += a[p].swiperSlideSize) > s && (l = !0)); } else for (var u = r + 1; u < a.length; u += 1) i[u] - i[r] < s && (n += 1); return n; }, n.update = function () { var e = this; if (e && !e.destroyed) { var t = e.snapGrid, a = e.params; a.breakpoints && e.setBreakpoint(), e.updateSize(), e.updateSlides(), e.updateProgress(), e.updateSlidesClasses(), e.params.freeMode ? (i(), e.params.autoHeight && e.updateAutoHeight()) : (('auto' === e.params.slidesPerView || e.params.slidesPerView > 1) && e.isEnd && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0)) || i(), a.watchOverflow && t !== e.snapGrid && e.checkOverflow(), e.emit('update'); } function i () { var t = e.rtlTranslate ? -1 * e.translate : e.translate, a = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate()); e.setTranslate( a), e.updateActiveIndex(), e.updateSlidesClasses(); } }, n.changeDirection = function (e, t) { void 0 === t && (t = !0); var a = this, i = a.params.direction; return e || (e = 'horizontal' === i ? 'vertical' : 'horizontal'), e === i || 'horizontal' !== e && 'vertical' !== e || (a.$el.removeClass('' + a.params.containerModifierClass + i). addClass('' + a.params.containerModifierClass + e), a.emitContainerClasses(), a.params.direction = e, a.slides.each( (function (t) { 'vertical' === e ? t.style.width = '' : t.style.height = ''; })), a.emit('changeDirection'), t && a.update()), a; }, n.mount = function (e) { var t = this; if (t.mounted) return !0; var a = m(e || t.params.el); if (!(e = a[0])) return !1; e.swiper = t; var i = function () { return '.' + (t.params.wrapperClass || '').trim().split(' ').join('.'); }, s = function () { if (e && e.shadowRoot && e.shadowRoot.querySelector) { var t = m(e.shadowRoot.querySelector(i())); return t.children = function (e) {return a.children(e);}, t; } return a.children(i()); }(); if (0 === s.length && t.params.createElements) { var n = r(). createElement('div'); s = m(n), n.className = t.params.wrapperClass, a.append( n), a.children('.' + t.params.slideClass). each((function (e) {s.append(e);})); } return M(t, { $el: a, el: e, $wrapperEl: s, wrapperEl: s[0], mounted: !0, rtl: 'rtl' === e.dir.toLowerCase() || 'rtl' === a.css('direction'), rtlTranslate: 'horizontal' === t.params.direction && ('rtl' === e.dir.toLowerCase() || 'rtl' === a.css('direction')), wrongRTL: '-webkit-box' === s.css('display'), }), !0; }, n.init = function (e) { var t = this; return t.initialized || !1 === t.mount(e) || (t.emit('beforeInit'), t.params.breakpoints && t.setBreakpoint(), t.addClasses(), t.params.loop && t.loopCreate(), t.updateSize(), t.updateSlides(), t.params.watchOverflow && t.checkOverflow(), t.params.grabCursor && t.enabled && t.setGrabCursor(), t.params.preloadImages && t.preloadImages(), t.params.loop ? t.slideTo( t.params.initialSlide + t.loopedSlides, 0, t.params.runCallbacksOnInit, !1, !0) : t.slideTo( t.params.initialSlide, 0, t.params.runCallbacksOnInit, !1, !0), t.attachEvents(), t.initialized = !0, t.emit( 'init'), t.emit('afterInit')), t; }, n.destroy = function (e, t) { void 0 === e && (e = !0), void 0 === t && (t = !0); var a, i = this, s = i.params, r = i.$el, n = i.$wrapperEl, l = i.slides; return void 0 === i.params || i.destroyed || (i.emit( 'beforeDestroy'), i.initialized = !1, i.detachEvents(), s.loop && i.loopDestroy(), t && (i.removeClasses(), r.removeAttr('style'), n.removeAttr( 'style'), l && l.length && l.removeClass([ s.slideVisibleClass, s.slideActiveClass, s.slideNextClass, s.slidePrevClass].join(' ')). removeAttr('style'). removeAttr('data-swiper-slide-index')), i.emit( 'destroy'), Object.keys(i.eventsListeners). forEach((function (e) {i.off(e);})), !1 !== e && (i.$el[0].swiper = null, a = i, Object.keys(a). forEach((function (e) { try {a[e] = null;} catch (e) {} try {delete a[e];} catch (e) {} }))), i.destroyed = !0), null; }, t.extendDefaults = function (e) { M(_, e); }, t.installModule = function (e) { t.prototype.modules || (t.prototype.modules = {}); var a = e.name || Object.keys(t.prototype.modules).length + '_' + x(); t.prototype.modules[a] = e; }, t.use = function (e) { return Array.isArray(e) ? (e.forEach((function (e) {return t.installModule(e);})), t) : (t.installModule(e), t); }, a = t, s = [ { key: 'extendedDefaults', get: function () {return _;} }, { key: 'defaults', get: function () {return W;} }], (i = null) && e(a.prototype, i), s && e(a, s), t; }(); Object.keys(F). forEach((function (e) { Object.keys(F[e]). forEach((function (t) {q.prototype[t] = F[e][t];})); })), q.use([O, D]); var j = { update: function (e) { var t = this, a = t.params, i = a.slidesPerView, s = a.slidesPerGroup, r = a.centeredSlides, n = t.params.virtual, l = n.addSlidesBefore, o = n.addSlidesAfter, d = t.virtual, p = d.from, u = d.to, c = d.slides, h = d.slidesGrid, v = d.renderSlide, f = d.offset; t.updateActiveIndex(); var m, g, b, w = t.activeIndex || 0; m = t.rtlTranslate ? 'right' : t.isHorizontal() ? 'left' : 'top', r ? (g = Math.floor(i / 2) + s + o, b = Math.floor(i / 2) + s + l) : (g = i + (s - 1) + o, b = s + l); var y = Math.max((w || 0) - b, 0), E = Math.min((w || 0) + g, c.length - 1), x = (t.slidesGrid[y] || 0) - (t.slidesGrid[0] || 0); function T () { t.updateSlides(), t.updateProgress(), t.updateSlidesClasses(), t.lazy && t.params.lazy.enabled && t.lazy.load(); } if (M(t.virtual, { from: y, to: E, offset: x, slidesGrid: t.slidesGrid }), p === y && u === E && !e) return t.slidesGrid !== h && x !== f && t.slides.css(m, x + 'px'), void t.updateProgress(); if (t.params.virtual.renderExternal) return t.params.virtual.renderExternal.call( t, { offset: x, from: y, to: E, slides: function () { for (var e = [], t = y; t <= E; t += 1) e.push(c[t]); return e; }(), }), void (t.params.virtual.renderExternalUpdate && T()); var C = [], S = []; if (e) t.$wrapperEl.find('.' + t.params.slideClass). remove(); else for (var z = p; z <= u; z += 1) (z < y || z > E) && t.$wrapperEl.find( '.' + t.params.slideClass + '[data-swiper-slide-index="' + z + '"]').remove(); for (var P = 0; P < c.length; P += 1) P >= y && P <= E && (void 0 === u || e ? S.push(P) : (P > u && S.push(P), P < p && C.push(P))); S.forEach( (function (e) {t.$wrapperEl.append(v(c[e], e));})), C.sort( (function (e, t) {return t - e;})). forEach((function (e) { t.$wrapperEl.prepend(v(c[e], e)); })), t.$wrapperEl.children('.swiper-slide'). css(m, x + 'px'), T(); }, renderSlide: function (e, t) { var a = this, i = a.params.virtual; if (i.cache && a.virtual.cache[t]) return a.virtual.cache[t]; var s = i.renderSlide ? m(i.renderSlide.call(a, e, t)) : m( '<div class="' + a.params.slideClass + '" data-swiper-slide-index="' + t + '">' + e + '</div>'); return s.attr('data-swiper-slide-index') || s.attr('data-swiper-slide-index', t), i.cache && (a.virtual.cache[t] = s), s; }, appendSlide: function (e) { var t = this; if ('object' == typeof e && 'length' in e) for (var a = 0; a < e.length; a += 1) e[a] && t.virtual.slides.push(e[a]); else t.virtual.slides.push(e); t.virtual.update(!0); }, prependSlide: function (e) { var t = this, a = t.activeIndex, i = a + 1, s = 1; if (Array.isArray(e)) { for (var r = 0; r < e.length; r += 1) e[r] && t.virtual.slides.unshift(e[r]); i = a + e.length, s = e.length; } else t.virtual.slides.unshift(e); if (t.params.virtual.cache) { var n = t.virtual.cache, l = {}; Object.keys(n). forEach((function (e) { var t = n[e], a = t.attr('data-swiper-slide-index'); a && t.attr('data-swiper-slide-index', parseInt(a, 10) + 1), l[parseInt(e, 10) + s] = t; })), t.virtual.cache = l; } t.virtual.update(!0), t.slideTo(i, 0); }, removeSlide: function (e) { var t = this; if (null != e) { var a = t.activeIndex; if (Array.isArray(e)) for (var i = e.length - 1; i >= 0; i -= 1) t.virtual.slides.splice(e[i], 1), t.params.virtual.cache && delete t.virtual.cache[e[i]], e[i] < a && (a -= 1), a = Math.max(a, 0); else t.virtual.slides.splice(e, 1), t.params.virtual.cache && delete t.virtual.cache[e], e < a && (a -= 1), a = Math.max(a, 0); t.virtual.update(!0), t.slideTo(a, 0); } }, removeAllSlides: function () { var e = this; e.virtual.slides = [], e.params.virtual.cache && (e.virtual.cache = {}), e.virtual.update(!0), e.slideTo(0, 0); }, }, U = { name: 'virtual', params: { virtual: { enabled: !1, slides: [], cache: !0, renderSlide: null, renderExternal: null, renderExternalUpdate: !0, addSlidesBefore: 0, addSlidesAfter: 0, }, }, create: function () { z(this, { virtual: t({}, j, { slides: this.params.virtual.slides, cache: {} }), }); }, on: { beforeInit: function (e) { if (e.params.virtual.enabled) { e.classNames.push( e.params.containerModifierClass + 'virtual'); var t = { watchSlidesProgress: !0 }; M(e.params, t), M(e.originalParams, t), e.params.initialSlide || e.virtual.update(); } }, setTranslate: function (e) { e.params.virtual.enabled && e.virtual.update(); }, }, }, K = { handle: function (e) { var t = this; if (t.enabled) { var a = l(), i = r(), s = t.rtlTranslate, n = e; n.originalEvent && (n = n.originalEvent); var o = n.keyCode || n.charCode, d = t.params.keyboard.pageUpDown, p = d && 33 === o, u = d && 34 === o, c = 37 === o, h = 39 === o, v = 38 === o, f = 40 === o; if (!t.allowSlideNext && (t.isHorizontal() && h || t.isVertical() && f || u)) return !1; if (!t.allowSlidePrev && (t.isHorizontal() && c || t.isVertical() && v || p)) return !1; if (!(n.shiftKey || n.altKey || n.ctrlKey || n.metaKey || i.activeElement && i.activeElement.nodeName && ('input' === i.activeElement.nodeName.toLowerCase() || 'textarea' === i.activeElement.nodeName.toLowerCase()))) { if (t.params.keyboard.onlyInViewport && (p || u || c || h || v || f)) { var m = !1; if (t.$el.parents('.' + t.params.slideClass).length > 0 && 0 === t.$el.parents( '.' + t.params.slideActiveClass).length) return; var g = t.$el, b = g[0].clientWidth, w = g[0].clientHeight, y = a.innerWidth, E = a.innerHeight, x = t.$el.offset(); s && (x.left -= t.$el[0].scrollLeft); for (var T = [ [x.left, x.top], [x.left + b, x.top], [x.left, x.top + w], [x.left + b, x.top + w]], C = 0; C < T.length; C += 1) { var S = T[C]; if (S[0] >= 0 && S[0] <= y && S[1] >= 0 && S[1] <= E) { if (0 === S[0] && 0 === S[1]) continue; m = !0; } } if (!m) return; } t.isHorizontal() ? ((p || u || c || h) && (n.preventDefault ? n.preventDefault() : n.returnValue = !1), ((u || h) && !s || (p || c) && s) && t.slideNext(), ((p || c) && !s || (u || h) && s) && t.slidePrev()) : ((p || u || v || f) && (n.preventDefault ? n.preventDefault() : n.returnValue = !1), (u || f) && t.slideNext(), (p || v) && t.slidePrev()), t.emit('keyPress', o); } } }, enable: function () { var e = this, t = r(); e.keyboard.enabled || (m(t).on('keydown', e.keyboard.handle), e.keyboard.enabled = !0); }, disable: function () { var e = this, t = r(); e.keyboard.enabled && (m(t).off('keydown', e.keyboard.handle), e.keyboard.enabled = !1); }, }, Z = { name: 'keyboard', params: { keyboard: { enabled: !1, onlyInViewport: !0, pageUpDown: !0, }, }, create: function () {z(this, { keyboard: t({ enabled: !1 }, K) });}, on: { init: function (e) { e.params.keyboard.enabled && e.keyboard.enable(); }, destroy: function (e) {e.keyboard.enabled && e.keyboard.disable();}, }, }; var J = { lastScrollTime: x(), lastEventBeforeSnap: void 0, recentWheelEvents: [], event: function () { return l().navigator.userAgent.indexOf('firefox') > -1 ? 'DOMMouseScroll' : function () { var e = r(), t = 'onwheel', a = t in e; if (!a) { var i = e.createElement('div'); i.setAttribute(t, 'return;'), a = 'function' == typeof i.onwheel; } return !a && e.implementation && e.implementation.hasFeature && !0 !== e.implementation.hasFeature('', '') && (a = e.implementation.hasFeature('Events.wheel', '3.0')), a; }() ? 'wheel' : 'mousewheel'; }, normalize: function (e) { var t = 0, a = 0, i = 0, s = 0; return 'detail' in e && (a = e.detail), 'wheelDelta' in e && (a = -e.wheelDelta / 120), 'wheelDeltaY' in e && (a = -e.wheelDeltaY / 120), 'wheelDeltaX' in e && (t = -e.wheelDeltaX / 120), 'axis' in e && e.axis === e.HORIZONTAL_AXIS && (t = a, a = 0), i = 10 * t, s = 10 * a, 'deltaY' in e && (s = e.deltaY), 'deltaX' in e && (i = e.deltaX), e.shiftKey && !i && (i = s, s = 0), (i || s) && e.deltaMode && (1 === e.deltaMode ? (i *= 40, s *= 40) : (i *= 800, s *= 800)), i && !t && (t = i < 1 ? -1 : 1), s && !a && (a = s < 1 ? -1 : 1), { spinX: t, spinY: a, pixelX: i, pixelY: s, }; }, handleMouseEnter: function () { this.enabled && (this.mouseEntered = !0); }, handleMouseLeave: function () { this.enabled && (this.mouseEntered = !1); }, handle: function (e) { var t = e, a = this; if (a.enabled) { var i = a.params.mousewheel; a.params.cssMode && t.preventDefault(); var s = a.$el; if ('container' !== a.params.mousewheel.eventsTarget && (s = m(a.params.mousewheel.eventsTarget)), !a.mouseEntered && !s[0].contains(t.target) && !i.releaseOnEdges) return !0; t.originalEvent && (t = t.originalEvent); var r = 0, n = a.rtlTranslate ? -1 : 1, l = J.normalize(t); if (i.forceToAxis) if (a.isHorizontal()) { if (!(Math.abs(l.pixelX) > Math.abs(l.pixelY))) return !0; r = -l.pixelX * n; } else { if (!(Math.abs(l.pixelY) > Math.abs(l.pixelX))) return !0; r = -l.pixelY; } else r = Math.abs(l.pixelX) > Math.abs(l.pixelY) ? -l.pixelX * n : -l.pixelY; if (0 === r) return !0; i.invert && (r = -r); var o = a.getTranslate() + r * i.sensitivity; if (o >= a.minTranslate() && (o = a.minTranslate()), o <= a.maxTranslate() && (o = a.maxTranslate()), (!!a.params.loop || !(o === a.minTranslate() || o === a.maxTranslate())) && a.params.nested && t.stopPropagation(), a.params.freeMode) { var d = { time: x(), delta: Math.abs(r), direction: Math.sign(r), }, p = a.mousewheel.lastEventBeforeSnap, u = p && d.time < p.time + 500 && d.delta <= p.delta && d.direction === p.direction; if (!u) { a.mousewheel.lastEventBeforeSnap = void 0, a.params.loop && a.loopFix(); var c = a.getTranslate() + r * i.sensitivity, h = a.isBeginning, v = a.isEnd; if (c >= a.minTranslate() && (c = a.minTranslate()), c <= a.maxTranslate() && (c = a.maxTranslate()), a.setTransition( 0), a.setTranslate( c), a.updateProgress(), a.updateActiveIndex(), a.updateSlidesClasses(), (!h && a.isBeginning || !v && a.isEnd) && a.updateSlidesClasses(), a.params.freeModeSticky) { clearTimeout( a.mousewheel.timeout), a.mousewheel.timeout = void 0; var f = a.mousewheel.recentWheelEvents; f.length >= 15 && f.shift(); var g = f.length ? f[f.length - 1] : void 0, b = f[0]; if (f.push(d), g && (d.delta > g.delta || d.direction !== g.direction)) f.splice(0); else if (f.length >= 15 && d.time - b.time < 500 && b.delta - d.delta >= 1 && d.delta <= 6) { var w = r > 0 ? .8 : .2; a.mousewheel.lastEventBeforeSnap = d, f.splice( 0), a.mousewheel.timeout = E((function () { a.slideToClosest(a.params.speed, !0, void 0, w); }), 0); } a.mousewheel.timeout || (a.mousewheel.timeout = E( (function () { a.mousewheel.lastEventBeforeSnap = d, f.splice( 0), a.slideToClosest(a.params.speed, !0, void 0, .5); }), 500)); } if (u || a.emit('scroll', t), a.params.autoplay && a.params.autoplayDisableOnInteraction && a.autoplay.stop(), c === a.minTranslate() || c === a.maxTranslate()) return !0; } } else { var y = { time: x(), delta: Math.abs(r), direction: Math.sign(r), raw: e, }, T = a.mousewheel.recentWheelEvents; T.length >= 2 && T.shift(); var C = T.length ? T[T.length - 1] : void 0; if (T.push(y), C ? (y.direction !== C.direction || y.delta > C.delta || y.time > C.time + 150) && a.mousewheel.animateSlider(y) : a.mousewheel.animateSlider( y), a.mousewheel.releaseScroll(y)) return !0; } return t.preventDefault ? t.preventDefault() : t.returnValue = !1, !1; } }, animateSlider: function (e) { var t = this, a = l(); return !(this.params.mousewheel.thresholdDelta && e.delta < this.params.mousewheel.thresholdDelta) && (!(this.params.mousewheel.thresholdTime && x() - t.mousewheel.lastScrollTime < this.params.mousewheel.thresholdTime) && (e.delta >= 6 && x() - t.mousewheel.lastScrollTime < 60 || (e.direction < 0 ? t.isEnd && !t.params.loop || t.animating || (t.slideNext(), t.emit('scroll', e.raw)) : t.isBeginning && !t.params.loop || t.animating || (t.slidePrev(), t.emit('scroll', e.raw)), t.mousewheel.lastScrollTime = (new a.Date).getTime(), !1))); }, releaseScroll: function (e) { var t = this, a = t.params.mousewheel; if (e.direction < 0) { if (t.isEnd && !t.params.loop && a.releaseOnEdges) return !0; } else if (t.isBeginning && !t.params.loop && a.releaseOnEdges) return !0; return !1; }, enable: function () { var e = this, t = J.event(); if (e.params.cssMode) return e.wrapperEl.removeEventListener(t, e.mousewheel.handle), !0; if (!t) return !1; if (e.mousewheel.enabled) return !1; var a = e.$el; return 'container' !== e.params.mousewheel.eventsTarget && (a = m(e.params.mousewheel.eventsTarget)), a.on('mouseenter', e.mousewheel.handleMouseEnter), a.on('mouseleave', e.mousewheel.handleMouseLeave), a.on(t, e.mousewheel.handle), e.mousewheel.enabled = !0, !0; }, disable: function () { var e = this, t = J.event(); if (e.params.cssMode) return e.wrapperEl.addEventListener(t, e.mousewheel.handle), !0; if (!t) return !1; if (!e.mousewheel.enabled) return !1; var a = e.$el; return 'container' !== e.params.mousewheel.eventsTarget && (a = m(e.params.mousewheel.eventsTarget)), a.off(t, e.mousewheel.handle), e.mousewheel.enabled = !1, !0; }, }, Q = { toggleEl: function (e, t) { e[t ? 'addClass' : 'removeClass']( this.params.navigation.disabledClass), e[0] && 'BUTTON' === e[0].tagName && (e[0].disabled = t); }, update: function () { var e = this, t = e.params.navigation, a = e.navigation.toggleEl; if (!e.params.loop) { var i = e.navigation, s = i.$nextEl, r = i.$prevEl; r && r.length > 0 && (e.isBeginning ? a(r, !0) : a(r, !1), e.params.watchOverflow && e.enabled && r[e.isLocked ? 'addClass' : 'removeClass'](t.lockClass)), s && s.length > 0 && (e.isEnd ? a(s, !0) : a(s, !1), e.params.watchOverflow && e.enabled && s[e.isLocked ? 'addClass' : 'removeClass'](t.lockClass)); } }, onPrevClick: function (e) { var t = this; e.preventDefault(), t.isBeginning && !t.params.loop || t.slidePrev(); }, onNextClick: function (e) { var t = this; e.preventDefault(), t.isEnd && !t.params.loop || t.slideNext(); }, init: function () { var e, t, a = this, i = a.params.navigation; (a.params.navigation = k(a.$el, a.params.navigation, a.params.createElements, { nextEl: 'swiper-button-next', prevEl: 'swiper-button-prev', }), i.nextEl || i.prevEl) && (i.nextEl && (e = m(i.nextEl), a.params.uniqueNavElements && 'string' == typeof i.nextEl && e.length > 1 && 1 === a.$el.find(i.nextEl).length && (e = a.$el.find(i.nextEl))), i.prevEl && (t = m(i.prevEl), a.params.uniqueNavElements && 'string' == typeof i.prevEl && t.length > 1 && 1 === a.$el.find(i.prevEl).length && (t = a.$el.find(i.prevEl))), e && e.length > 0 && e.on('click', a.navigation.onNextClick), t && t.length > 0 && t.on('click', a.navigation.onPrevClick), M( a.navigation, { $nextEl: e, nextEl: e && e[0], $prevEl: t, prevEl: t && t[0], }), a.enabled || (e && e.addClass(i.lockClass), t && t.addClass(i.lockClass))); }, destroy: function () { var e = this, t = e.navigation, a = t.$nextEl, i = t.$prevEl; a && a.length && (a.off('click', e.navigation.onNextClick), a.removeClass( e.params.navigation.disabledClass)), i && i.length && (i.off('click', e.navigation.onPrevClick), i.removeClass( e.params.navigation.disabledClass)); }, }, ee = { update: function () { var e = this, t = e.rtl, a = e.params.pagination; if (a.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) { var i, s = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length, r = e.pagination.$el, n = e.params.loop ? Math.ceil( (s - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length; if (e.params.loop ? ((i = Math.ceil((e.activeIndex - e.loopedSlides) / e.params.slidesPerGroup)) > s - 1 - 2 * e.loopedSlides && (i -= s - 2 * e.loopedSlides), i > n - 1 && (i -= n), i < 0 && 'bullets' !== e.params.paginationType && (i = n + i)) : i = void 0 !== e.snapIndex ? e.snapIndex : e.activeIndex || 0, 'bullets' === a.type && e.pagination.bullets && e.pagination.bullets.length > 0) { var l, o, d, p = e.pagination.bullets; if (a.dynamicBullets && (e.pagination.bulletSize = p.eq(0)[e.isHorizontal() ? 'outerWidth' : 'outerHeight'](!0), r.css( e.isHorizontal() ? 'width' : 'height', e.pagination.bulletSize * (a.dynamicMainBullets + 4) + 'px'), a.dynamicMainBullets > 1 && void 0 !== e.previousIndex && (e.pagination.dynamicBulletIndex += i - e.previousIndex, e.pagination.dynamicBulletIndex > a.dynamicMainBullets - 1 ? e.pagination.dynamicBulletIndex = a.dynamicMainBullets - 1 : e.pagination.dynamicBulletIndex < 0 && (e.pagination.dynamicBulletIndex = 0)), l = i - e.pagination.dynamicBulletIndex, d = ((o = l + (Math.min(p.length, a.dynamicMainBullets) - 1)) + l) / 2), p.removeClass( a.bulletActiveClass + ' ' + a.bulletActiveClass + '-next ' + a.bulletActiveClass + '-next-next ' + a.bulletActiveClass + '-prev ' + a.bulletActiveClass + '-prev-prev ' + a.bulletActiveClass + '-main'), r.length > 1) p.each((function (e) { var t = m(e), s = t.index(); s === i && t.addClass(a.bulletActiveClass), a.dynamicBullets && (s >= l && s <= o && t.addClass(a.bulletActiveClass + '-main'), s === l && t.prev(). addClass(a.bulletActiveClass + '-prev'). prev(). addClass(a.bulletActiveClass + '-prev-prev'), s === o && t.next(). addClass(a.bulletActiveClass + '-next'). next(). addClass(a.bulletActiveClass + '-next-next')); })); else { var u = p.eq(i), c = u.index(); if (u.addClass(a.bulletActiveClass), a.dynamicBullets) { for (var h = p.eq(l), v = p.eq(o), f = l; f <= o; f += 1) p.eq(f). addClass(a.bulletActiveClass + '-main'); if (e.params.loop) if (c >= p.length - a.dynamicMainBullets) { for (var g = a.dynamicMainBullets; g >= 0; g -= 1) p.eq(p.length - g). addClass(a.bulletActiveClass + '-main'); p.eq(p.length - a.dynamicMainBullets - 1). addClass(a.bulletActiveClass + '-prev'); } else h.prev(). addClass(a.bulletActiveClass + '-prev'). prev(). addClass(a.bulletActiveClass + '-prev-prev'), v.next(). addClass(a.bulletActiveClass + '-next'). next(). addClass(a.bulletActiveClass + '-next-next'); else h.prev(). addClass(a.bulletActiveClass + '-prev'). prev(). addClass(a.bulletActiveClass + '-prev-prev'), v.next(). addClass(a.bulletActiveClass + '-next'). next(). addClass(a.bulletActiveClass + '-next-next'); } } if (a.dynamicBullets) { var b = Math.min(p.length, a.dynamicMainBullets + 4), w = (e.pagination.bulletSize * b - e.pagination.bulletSize) / 2 - d * e.pagination.bulletSize, y = t ? 'right' : 'left'; p.css(e.isHorizontal() ? y : 'top', w + 'px'); } } if ('fraction' === a.type && (r.find(P(a.currentClass)). text(a.formatFractionCurrent(i + 1)), r.find( P(a.totalClass)). text(a.formatFractionTotal(n))), 'progressbar' === a.type) { var E; E = a.progressbarOpposite ? e.isHorizontal() ? 'vertical' : 'horizontal' : e.isHorizontal() ? 'horizontal' : 'vertical'; var x = (i + 1) / n, T = 1, C = 1; 'horizontal' === E ? T = x : C = x, r.find( P(a.progressbarFillClass)). transform( 'translate3d(0,0,0) scaleX(' + T + ') scaleY(' + C + ')'). transition(e.params.speed); } 'custom' === a.type && a.renderCustom ? (r.html( a.renderCustom(e, i + 1, n)), e.emit('paginationRender', r[0])) : e.emit('paginationUpdate', r[0]), e.params.watchOverflow && e.enabled && r[e.isLocked ? 'addClass' : 'removeClass'](a.lockClass); } }, render: function () { var e = this, t = e.params.pagination; if (t.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) { var a = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length, i = e.pagination.$el, s = ''; if ('bullets' === t.type) { var r = e.params.loop ? Math.ceil( (a - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length; e.params.freeMode && !e.params.loop && r > a && (r = a); for (var n = 0; n < r; n += 1) t.renderBullet ? s += t.renderBullet.call(e, n, t.bulletClass) : s += '<' + t.bulletElement + ' class="' + t.bulletClass + '"></' + t.bulletElement + '>'; i.html(s), e.pagination.bullets = i.find(P(t.bulletClass)); } 'fraction' === t.type && (s = t.renderFraction ? t.renderFraction.call(e, t.currentClass, t.totalClass) : '<span class="' + t.currentClass + '"></span> / <span class="' + t.totalClass + '"></span>', i.html(s)), 'progressbar' === t.type && (s = t.renderProgressbar ? t.renderProgressbar.call(e, t.progressbarFillClass) : '<span class="' + t.progressbarFillClass + '"></span>', i.html( s)), 'custom' !== t.type && e.emit('paginationRender', e.pagination.$el[0]); } }, init: function () { var e = this; e.params.pagination = k(e.$el, e.params.pagination, e.params.createElements, { el: 'swiper-pagination' }); var t = e.params.pagination; if (t.el) { var a = m(t.el); 0 !== a.length && (e.params.uniqueNavElements && 'string' == typeof t.el && a.length > 1 && (a = e.$el.find(t.el)), 'bullets' === t.type && t.clickable && a.addClass(t.clickableClass), a.addClass( t.modifierClass + t.type), 'bullets' === t.type && t.dynamicBullets && (a.addClass('' + t.modifierClass + t.type + '-dynamic'), e.pagination.dynamicBulletIndex = 0, t.dynamicMainBullets < 1 && (t.dynamicMainBullets = 1)), 'progressbar' === t.type && t.progressbarOpposite && a.addClass(t.progressbarOppositeClass), t.clickable && a.on('click', P(t.bulletClass), (function (t) { t.preventDefault(); var a = m(this).index() * e.params.slidesPerGroup; e.params.loop && (a += e.loopedSlides), e.slideTo(a); })), M(e.pagination, { $el: a, el: a[0] }), e.enabled || a.addClass(t.lockClass)); } }, destroy: function () { var e = this, t = e.params.pagination; if (t.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) { var a = e.pagination.$el; a.removeClass(t.hiddenClass), a.removeClass( t.modifierClass + t.type), e.pagination.bullets && e.pagination.bullets.removeClass( t.bulletActiveClass), t.clickable && a.off('click', P(t.bulletClass)); } }, }, te = { setTranslate: function () { var e = this; if (e.params.scrollbar.el && e.scrollbar.el) { var t = e.scrollbar, a = e.rtlTranslate, i = e.progress, s = t.dragSize, r = t.trackSize, n = t.$dragEl, l = t.$el, o = e.params.scrollbar, d = s, p = (r - s) * i; a ? (p = -p) > 0 ? (d = s - p, p = 0) : -p + s > r && (d = r + p) : p < 0 ? (d = s + p, p = 0) : p + s > r && (d = r - p), e.isHorizontal() ? (n.transform( 'translate3d(' + p + 'px, 0, 0)'), n[0].style.width = d + 'px') : (n.transform( 'translate3d(0px, ' + p + 'px, 0)'), n[0].style.height = d + 'px'), o.hide && (clearTimeout( e.scrollbar.timeout), l[0].style.opacity = 1, e.scrollbar.timeout = setTimeout( (function () {l[0].style.opacity = 0, l.transition(400);}), 1e3)); } }, setTransition: function (e) { var t = this; t.params.scrollbar.el && t.scrollbar.el && t.scrollbar.$dragEl.transition(e); }, updateSize: function () { var e = this; if (e.params.scrollbar.el && e.scrollbar.el) { var t = e.scrollbar, a = t.$dragEl, i = t.$el; a[0].style.width = '', a[0].style.height = ''; var s, r = e.isHorizontal() ? i[0].offsetWidth : i[0].offsetHeight, n = e.size / e.virtualSize, l = n * (r / e.size); s = 'auto' === e.params.scrollbar.dragSize ? r * n : parseInt( e.params.scrollbar.dragSize, 10), e.isHorizontal() ? a[0].style.width = s + 'px' : a[0].style.height = s + 'px', i[0].style.display = n >= 1 ? 'none' : '', e.params.scrollbar.hide && (i[0].style.opacity = 0), M(t, { trackSize: r, divider: n, moveDivider: l, dragSize: s, }), e.params.watchOverflow && e.enabled && t.$el[e.isLocked ? 'addClass' : 'removeClass']( e.params.scrollbar.lockClass); } }, getPointerPosition: function (e) { return this.isHorizontal() ? 'touchstart' === e.type || 'touchmove' === e.type ? e.targetTouches[0].clientX : e.clientX : 'touchstart' === e.type || 'touchmove' === e.type ? e.targetTouches[0].clientY : e.clientY; }, setDragPosition: function (e) { var t, a = this, i = a.scrollbar, s = a.rtlTranslate, r = i.$el, n = i.dragSize, l = i.trackSize, o = i.dragStartPos; t = (i.getPointerPosition(e) - r.offset()[a.isHorizontal() ? 'left' : 'top'] - (null !== o ? o : n / 2)) / (l - n), t = Math.max( Math.min(t, 1), 0), s && (t = 1 - t); var d = a.minTranslate() + (a.maxTranslate() - a.minTranslate()) * t; a.updateProgress(d), a.setTranslate( d), a.updateActiveIndex(), a.updateSlidesClasses(); }, onDragStart: function (e) { var t = this, a = t.params.scrollbar, i = t.scrollbar, s = t.$wrapperEl, r = i.$el, n = i.$dragEl; t.scrollbar.isTouched = !0, t.scrollbar.dragStartPos = e.target === n[0] || e.target === n ? i.getPointerPosition(e) - e.target.getBoundingClientRect()[t.isHorizontal() ? 'left' : 'top'] : null, e.preventDefault(), e.stopPropagation(), s.transition( 100), n.transition(100), i.setDragPosition(e), clearTimeout( t.scrollbar.dragTimeout), r.transition(0), a.hide && r.css('opacity', 1), t.params.cssMode && t.$wrapperEl.css('scroll-snap-type', 'none'), t.emit( 'scrollbarDragStart', e); }, onDragMove: function (e) { var t = this, a = t.scrollbar, i = t.$wrapperEl, s = a.$el, r = a.$dragEl; t.scrollbar.isTouched && (e.preventDefault ? e.preventDefault() : e.returnValue = !1, a.setDragPosition(e), i.transition( 0), s.transition(0), r.transition(0), t.emit( 'scrollbarDragMove', e)); }, onDragEnd: function (e) { var t = this, a = t.params.scrollbar, i = t.scrollbar, s = t.$wrapperEl, r = i.$el; t.scrollbar.isTouched && (t.scrollbar.isTouched = !1, t.params.cssMode && (t.$wrapperEl.css('scroll-snap-type', ''), s.transition( '')), a.hide && (clearTimeout(t.scrollbar.dragTimeout), t.scrollbar.dragTimeout = E( (function () {r.css('opacity', 0), r.transition(400);}), 1e3)), t.emit('scrollbarDragEnd', e), a.snapOnRelease && t.slideToClosest()); }, enableDraggable: function () { var e = this; if (e.params.scrollbar.el) { var t = r(), a = e.scrollbar, i = e.touchEventsTouch, s = e.touchEventsDesktop, n = e.params, l = e.support, o = a.$el[0], d = !(!l.passiveListener || !n.passiveListeners) && { passive: !1, capture: !1 }, p = !(!l.passiveListener || !n.passiveListeners) && { passive: !0, capture: !1 }; o && (l.touch ? (o.addEventListener(i.start, e.scrollbar.onDragStart, d), o.addEventListener(i.move, e.scrollbar.onDragMove, d), o.addEventListener(i.end, e.scrollbar.onDragEnd, p)) : (o.addEventListener(s.start, e.scrollbar.onDragStart, d), t.addEventListener(s.move, e.scrollbar.onDragMove, d), t.addEventListener(s.end, e.scrollbar.onDragEnd, p))); } }, disableDraggable: function () { var e = this; if (e.params.scrollbar.el) { var t = r(), a = e.scrollbar, i = e.touchEventsTouch, s = e.touchEventsDesktop, n = e.params, l = e.support, o = a.$el[0], d = !(!l.passiveListener || !n.passiveListeners) && { passive: !1, capture: !1 }, p = !(!l.passiveListener || !n.passiveListeners) && { passive: !0, capture: !1 }; o && (l.touch ? (o.removeEventListener(i.start, e.scrollbar.onDragStart, d), o.removeEventListener(i.move, e.scrollbar.onDragMove, d), o.removeEventListener(i.end, e.scrollbar.onDragEnd, p)) : (o.removeEventListener(s.start, e.scrollbar.onDragStart, d), t.removeEventListener(s.move, e.scrollbar.onDragMove, d), t.removeEventListener(s.end, e.scrollbar.onDragEnd, p))); } }, init: function () { var e = this, t = e.scrollbar, a = e.$el; e.params.scrollbar = k(a, e.params.scrollbar, e.params.createElements, { el: 'swiper-scrollbar' }); var i = e.params.scrollbar; if (i.el) { var s = m(i.el); e.params.uniqueNavElements && 'string' == typeof i.el && s.length > 1 && 1 === a.find(i.el).length && (s = a.find(i.el)); var r = s.find('.' + e.params.scrollbar.dragClass); 0 === r.length && (r = m( '<div class="' + e.params.scrollbar.dragClass + '"></div>'), s.append(r)), M(t, { $el: s, el: s[0], $dragEl: r, dragEl: r[0], }), i.draggable && t.enableDraggable(), s && s[e.enabled ? 'removeClass' : 'addClass']( e.params.scrollbar.lockClass); } }, destroy: function () {this.scrollbar.disableDraggable();}, }, ae = { setTransform: function (e, t) { var a = this.rtl, i = m(e), s = a ? -1 : 1, r = i.attr('data-swiper-parallax') || '0', n = i.attr('data-swiper-parallax-x'), l = i.attr('data-swiper-parallax-y'), o = i.attr('data-swiper-parallax-scale'), d = i.attr('data-swiper-parallax-opacity'); if (n || l ? (n = n || '0', l = l || '0') : this.isHorizontal() ? (n = r, l = '0') : (l = r, n = '0'), n = n.indexOf('%') >= 0 ? parseInt(n, 10) * t * s + '%' : n * t * s + 'px', l = l.indexOf('%') >= 0 ? parseInt(l, 10) * t + '%' : l * t + 'px', null != d) { var p = d - (d - 1) * (1 - Math.abs(t)); i[0].style.opacity = p; } if (null == o) i.transform( 'translate3d(' + n + ', ' + l + ', 0px)'); else { var u = o - (o - 1) * (1 - Math.abs(t)); i.transform( 'translate3d(' + n + ', ' + l + ', 0px) scale(' + u + ')'); } }, setTranslate: function () { var e = this, t = e.$el, a = e.slides, i = e.progress, s = e.snapGrid; t.children( '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]'). each((function (t) {e.parallax.setTransform(t, i);})), a.each( (function (t, a) { var r = t.progress; e.params.slidesPerGroup > 1 && 'auto' !== e.params.slidesPerView && (r += Math.ceil(a / 2) - i * (s.length - 1)), r = Math.min( Math.max(r, -1), 1), m(t). find( '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]'). each((function (t) {e.parallax.setTransform(t, r);})); })); }, setTransition: function (e) { void 0 === e && (e = this.params.speed); this.$el.find( '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]'). each((function (t) { var a = m(t), i = parseInt(a.attr('data-swiper-parallax-duration'), 10) || e; 0 === e && (i = 0), a.transition(i); })); }, }, ie = { getDistanceBetweenTouches: function (e) { if (e.targetTouches.length < 2) return 1; var t = e.targetTouches[0].pageX, a = e.targetTouches[0].pageY, i = e.targetTouches[1].pageX, s = e.targetTouches[1].pageY; return Math.sqrt(Math.pow(i - t, 2) + Math.pow(s - a, 2)); }, onGestureStart: function (e) { var t = this, a = t.support, i = t.params.zoom, s = t.zoom, r = s.gesture; if (s.fakeGestureTouched = !1, s.fakeGestureMoved = !1, !a.gestures) { if ('touchstart' !== e.type || 'touchstart' === e.type && e.targetTouches.length < 2) return; s.fakeGestureTouched = !0, r.scaleStart = ie.getDistanceBetweenTouches( e); } r.$slideEl && r.$slideEl.length || (r.$slideEl = m(e.target).closest('.' + t.params.slideClass), 0 === r.$slideEl.length && (r.$slideEl = t.slides.eq( t.activeIndex)), r.$imageEl = r.$slideEl.find( 'img, svg, canvas, picture, .swiper-zoom-target'), r.$imageWrapEl = r.$imageEl.parent( '.' + i.containerClass), r.maxRatio = r.$imageWrapEl.attr( 'data-swiper-zoom') || i.maxRatio, 0 !== r.$imageWrapEl.length) ? (r.$imageEl && r.$imageEl.transition(0), t.zoom.isScaling = !0) : r.$imageEl = void 0; }, onGestureChange: function (e) { var t = this, a = t.support, i = t.params.zoom, s = t.zoom, r = s.gesture; if (!a.gestures) { if ('touchmove' !== e.type || 'touchmove' === e.type && e.targetTouches.length < 2) return; s.fakeGestureMoved = !0, r.scaleMove = ie.getDistanceBetweenTouches( e); } r.$imageEl && 0 !== r.$imageEl.length ? (a.gestures ? s.scale = e.scale * s.currentScale : s.scale = r.scaleMove / r.scaleStart * s.currentScale, s.scale > r.maxRatio && (s.scale = r.maxRatio - 1 + Math.pow(s.scale - r.maxRatio + 1, .5)), s.scale < i.minRatio && (s.scale = i.minRatio + 1 - Math.pow(i.minRatio - s.scale + 1, .5)), r.$imageEl.transform( 'translate3d(0,0,0) scale(' + s.scale + ')')) : 'gesturechange' === e.type && s.onGestureStart(e); }, onGestureEnd: function (e) { var t = this, a = t.device, i = t.support, s = t.params.zoom, r = t.zoom, n = r.gesture; if (!i.gestures) { if (!r.fakeGestureTouched || !r.fakeGestureMoved) return; if ('touchend' !== e.type || 'touchend' === e.type && e.changedTouches.length < 2 && !a.android) return; r.fakeGestureTouched = !1, r.fakeGestureMoved = !1; } n.$imageEl && 0 !== n.$imageEl.length && (r.scale = Math.max(Math.min(r.scale, n.maxRatio), s.minRatio), n.$imageEl.transition(t.params.speed). transform('translate3d(0,0,0) scale(' + r.scale + ')'), r.currentScale = r.scale, r.isScaling = !1, 1 === r.scale && (n.$slideEl = void 0)); }, onTouchStart: function (e) { var t = this.device, a = this.zoom, i = a.gesture, s = a.image; i.$imageEl && 0 !== i.$imageEl.length && (s.isTouched || (t.android && e.cancelable && e.preventDefault(), s.isTouched = !0, s.touchesStart.x = 'touchstart' === e.type ? e.targetTouches[0].pageX : e.pageX, s.touchesStart.y = 'touchstart' === e.type ? e.targetTouches[0].pageY : e.pageY)); }, onTouchMove: function (e) { var t = this, a = t.zoom, i = a.gesture, s = a.image, r = a.velocity; if (i.$imageEl && 0 !== i.$imageEl.length && (t.allowClick = !1, s.isTouched && i.$slideEl)) { s.isMoved || (s.width = i.$imageEl[0].offsetWidth, s.height = i.$imageEl[0].offsetHeight, s.startX = T( i.$imageWrapEl[0], 'x') || 0, s.startY = T( i.$imageWrapEl[0], 'y') || 0, i.slideWidth = i.$slideEl[0].offsetWidth, i.slideHeight = i.$slideEl[0].offsetHeight, i.$imageWrapEl.transition( 0)); var n = s.width * a.scale, l = s.height * a.scale; if (!(n < i.slideWidth && l < i.slideHeight)) { if (s.minX = Math.min(i.slideWidth / 2 - n / 2, 0), s.maxX = -s.minX, s.minY = Math.min( i.slideHeight / 2 - l / 2, 0), s.maxY = -s.minY, s.touchesCurrent.x = 'touchmove' === e.type ? e.targetTouches[0].pageX : e.pageX, s.touchesCurrent.y = 'touchmove' === e.type ? e.targetTouches[0].pageY : e.pageY, !s.isMoved && !a.isScaling) { if (t.isHorizontal() && (Math.floor(s.minX) === Math.floor(s.startX) && s.touchesCurrent.x < s.touchesStart.x || Math.floor(s.maxX) === Math.floor(s.startX) && s.touchesCurrent.x > s.touchesStart.x)) return void (s.isTouched = !1); if (!t.isHorizontal() && (Math.floor(s.minY) === Math.floor(s.startY) && s.touchesCurrent.y < s.touchesStart.y || Math.floor(s.maxY) === Math.floor(s.startY) && s.touchesCurrent.y > s.touchesStart.y)) return void (s.isTouched = !1); } e.cancelable && e.preventDefault(), e.stopPropagation(), s.isMoved = !0, s.currentX = s.touchesCurrent.x - s.touchesStart.x + s.startX, s.currentY = s.touchesCurrent.y - s.touchesStart.y + s.startY, s.currentX < s.minX && (s.currentX = s.minX + 1 - Math.pow(s.minX - s.currentX + 1, .8)), s.currentX > s.maxX && (s.currentX = s.maxX - 1 + Math.pow(s.currentX - s.maxX + 1, .8)), s.currentY < s.minY && (s.currentY = s.minY + 1 - Math.pow(s.minY - s.currentY + 1, .8)), s.currentY > s.maxY && (s.currentY = s.maxY - 1 + Math.pow(s.currentY - s.maxY + 1, .8)), r.prevPositionX || (r.prevPositionX = s.touchesCurrent.x), r.prevPositionY || (r.prevPositionY = s.touchesCurrent.y), r.prevTime || (r.prevTime = Date.now()), r.x = (s.touchesCurrent.x - r.prevPositionX) / (Date.now() - r.prevTime) / 2, r.y = (s.touchesCurrent.y - r.prevPositionY) / (Date.now() - r.prevTime) / 2, Math.abs( s.touchesCurrent.x - r.prevPositionX) < 2 && (r.x = 0), Math.abs(s.touchesCurrent.y - r.prevPositionY) < 2 && (r.y = 0), r.prevPositionX = s.touchesCurrent.x, r.prevPositionY = s.touchesCurrent.y, r.prevTime = Date.now(), i.$imageWrapEl.transform( 'translate3d(' + s.currentX + 'px, ' + s.currentY + 'px,0)'); } } }, onTouchEnd: function () { var e = this.zoom, t = e.gesture, a = e.image, i = e.velocity; if (t.$imageEl && 0 !== t.$imageEl.length) { if (!a.isTouched || !a.isMoved) return a.isTouched = !1, void (a.isMoved = !1); a.isTouched = !1, a.isMoved = !1; var s = 300, r = 300, n = i.x * s, l = a.currentX + n, o = i.y * r, d = a.currentY + o; 0 !== i.x && (s = Math.abs((l - a.currentX) / i.x)), 0 !== i.y && (r = Math.abs((d - a.currentY) / i.y)); var p = Math.max(s, r); a.currentX = l, a.currentY = d; var u = a.width * e.scale, c = a.height * e.scale; a.minX = Math.min(t.slideWidth / 2 - u / 2, 0), a.maxX = -a.minX, a.minY = Math.min( t.slideHeight / 2 - c / 2, 0), a.maxY = -a.minY, a.currentX = Math.max( Math.min(a.currentX, a.maxX), a.minX), a.currentY = Math.max(Math.min(a.currentY, a.maxY), a.minY), t.$imageWrapEl.transition(p). transform( 'translate3d(' + a.currentX + 'px, ' + a.currentY + 'px,0)'); } }, onTransitionEnd: function () { var e = this, t = e.zoom, a = t.gesture; a.$slideEl && e.previousIndex !== e.activeIndex && (a.$imageEl && a.$imageEl.transform( 'translate3d(0,0,0) scale(1)'), a.$imageWrapEl && a.$imageWrapEl.transform( 'translate3d(0,0,0)'), t.scale = 1, t.currentScale = 1, a.$slideEl = void 0, a.$imageEl = void 0, a.$imageWrapEl = void 0); }, toggle: function (e) { var t = this.zoom; t.scale && 1 !== t.scale ? t.out() : t.in(e); }, in: function (e) { var t, a, i, s, r, n, o, d, p, u, c, h, v, f, g, b, w = this, y = l(), E = w.zoom, x = w.params.zoom, T = E.gesture, C = E.image; (T.$slideEl || (e && e.target && (T.$slideEl = m(e.target). closest('.' + w.params.slideClass)), T.$slideEl || (w.params.virtual && w.params.virtual.enabled && w.virtual ? T.$slideEl = w.$wrapperEl.children( '.' + w.params.slideActiveClass) : T.$slideEl = w.slides.eq( w.activeIndex)), T.$imageEl = T.$slideEl.find( 'img, svg, canvas, picture, .swiper-zoom-target'), T.$imageWrapEl = T.$imageEl.parent( '.' + x.containerClass)), T.$imageEl && 0 !== T.$imageEl.length && T.$imageWrapEl && 0 !== T.$imageWrapEl.length) && (T.$slideEl.addClass('' + x.zoomedSlideClass), void 0 === C.touchesStart.x && e ? (t = 'touchend' === e.type ? e.changedTouches[0].pageX : e.pageX, a = 'touchend' === e.type ? e.changedTouches[0].pageY : e.pageY) : (t = C.touchesStart.x, a = C.touchesStart.y), E.scale = T.$imageWrapEl.attr( 'data-swiper-zoom') || x.maxRatio, E.currentScale = T.$imageWrapEl.attr( 'data-swiper-zoom') || x.maxRatio, e ? (g = T.$slideEl[0].offsetWidth, b = T.$slideEl[0].offsetHeight, i = T.$slideEl.offset().left + y.scrollX + g / 2 - t, s = T.$slideEl.offset().top + y.scrollY + b / 2 - a, o = T.$imageEl[0].offsetWidth, d = T.$imageEl[0].offsetHeight, p = o * E.scale, u = d * E.scale, v = -(c = Math.min(g / 2 - p / 2, 0)), f = -(h = Math.min(b / 2 - u / 2, 0)), (r = i * E.scale) < c && (r = c), r > v && (r = v), (n = s * E.scale) < h && (n = h), n > f && (n = f)) : (r = 0, n = 0), T.$imageWrapEl.transition(300). transform('translate3d(' + r + 'px, ' + n + 'px,0)'), T.$imageEl.transition(300). transform('translate3d(0,0,0) scale(' + E.scale + ')')); }, out: function () { var e = this, t = e.zoom, a = e.params.zoom, i = t.gesture; i.$slideEl || (e.params.virtual && e.params.virtual.enabled && e.virtual ? i.$slideEl = e.$wrapperEl.children( '.' + e.params.slideActiveClass) : i.$slideEl = e.slides.eq( e.activeIndex), i.$imageEl = i.$slideEl.find( 'img, svg, canvas, picture, .swiper-zoom-target'), i.$imageWrapEl = i.$imageEl.parent( '.' + a.containerClass)), i.$imageEl && 0 !== i.$imageEl.length && i.$imageWrapEl && 0 !== i.$imageWrapEl.length && (t.scale = 1, t.currentScale = 1, i.$imageWrapEl.transition(300). transform('translate3d(0,0,0)'), i.$imageEl.transition(300). transform( 'translate3d(0,0,0) scale(1)'), i.$slideEl.removeClass( '' + a.zoomedSlideClass), i.$slideEl = void 0); }, toggleGestures: function (e) { var t = this, a = t.zoom, i = a.slideSelector, s = a.passiveListener; t.$wrapperEl[e]('gesturestart', i, a.onGestureStart, s), t.$wrapperEl[e]('gesturechange', i, a.onGestureChange, s), t.$wrapperEl[e]('gestureend', i, a.onGestureEnd, s); }, enableGestures: function () { this.zoom.gesturesEnabled || (this.zoom.gesturesEnabled = !0, this.zoom.toggleGestures('on')); }, disableGestures: function () { this.zoom.gesturesEnabled && (this.zoom.gesturesEnabled = !1, this.zoom.toggleGestures('off')); }, enable: function () { var e = this, t = e.support, a = e.zoom; if (!a.enabled) { a.enabled = !0; var i = !('touchstart' !== e.touchEvents.start || !t.passiveListener || !e.params.passiveListeners) && { passive: !0, capture: !1 }, s = !t.passiveListener || { passive: !1, capture: !0 }, r = '.' + e.params.slideClass; e.zoom.passiveListener = i, e.zoom.slideSelector = r, t.gestures ? (e.$wrapperEl.on(e.touchEvents.start, e.zoom.enableGestures, i), e.$wrapperEl.on( e.touchEvents.end, e.zoom.disableGestures, i)) : 'touchstart' === e.touchEvents.start && (e.$wrapperEl.on(e.touchEvents.start, r, a.onGestureStart, i), e.$wrapperEl.on(e.touchEvents.move, r, a.onGestureChange, s), e.$wrapperEl.on( e.touchEvents.end, r, a.onGestureEnd, i), e.touchEvents.cancel && e.$wrapperEl.on(e.touchEvents.cancel, r, a.onGestureEnd, i)), e.$wrapperEl.on(e.touchEvents.move, '.' + e.params.zoom.containerClass, a.onTouchMove, s); } }, disable: function () { var e = this, t = e.zoom; if (t.enabled) { var a = e.support; e.zoom.enabled = !1; var i = !('touchstart' !== e.touchEvents.start || !a.passiveListener || !e.params.passiveListeners) && { passive: !0, capture: !1 }, s = !a.passiveListener || { passive: !1, capture: !0 }, r = '.' + e.params.slideClass; a.gestures ? (e.$wrapperEl.off(e.touchEvents.start, e.zoom.enableGestures, i), e.$wrapperEl.off( e.touchEvents.end, e.zoom.disableGestures, i)) : 'touchstart' === e.touchEvents.start && (e.$wrapperEl.off(e.touchEvents.start, r, t.onGestureStart, i), e.$wrapperEl.off(e.touchEvents.move, r, t.onGestureChange, s), e.$wrapperEl.off( e.touchEvents.end, r, t.onGestureEnd, i), e.touchEvents.cancel && e.$wrapperEl.off(e.touchEvents.cancel, r, t.onGestureEnd, i)), e.$wrapperEl.off(e.touchEvents.move, '.' + e.params.zoom.containerClass, t.onTouchMove, s); } }, }, se = { loadInSlide: function (e, t) { void 0 === t && (t = !0); var a = this, i = a.params.lazy; if (void 0 !== e && 0 !== a.slides.length) { var s = a.virtual && a.params.virtual.enabled ? a.$wrapperEl.children('.' + a.params.slideClass + '[data-swiper-slide-index="' + e + '"]') : a.slides.eq(e), r = s.find( '.' + i.elementClass + ':not(.' + i.loadedClass + '):not(.' + i.loadingClass + ')'); !s.hasClass(i.elementClass) || s.hasClass(i.loadedClass) || s.hasClass(i.loadingClass) || r.push(s[0]), 0 !== r.length && r.each((function (e) { var r = m(e); r.addClass(i.loadingClass); var n = r.attr('data-background'), l = r.attr('data-src'), o = r.attr('data-srcset'), d = r.attr('data-sizes'), p = r.parent('picture'); a.loadImage(r[0], l || n, o, d, !1, (function () { if (null != a && a && (!a || a.params) && !a.destroyed) { if (n ? (r.css('background-image', 'url("' + n + '")'), r.removeAttr( 'data-background')) : (o && (r.attr('srcset', o), r.removeAttr( 'data-srcset')), d && (r.attr('sizes', d), r.removeAttr( 'data-sizes')), p.length && p.children('source').each((function (e) { var t = m(e); t.attr('data-srcset') && (t.attr('srcset', t.attr('data-srcset')), t.removeAttr( 'data-srcset')); })), l && (r.attr('src', l), r.removeAttr( 'data-src'))), r.addClass(i.loadedClass). removeClass(i.loadingClass), s.find( '.' + i.preloaderClass). remove(), a.params.loop && t) { var e = s.attr('data-swiper-slide-index'); if (s.hasClass(a.params.slideDuplicateClass)) { var u = a.$wrapperEl.children( '[data-swiper-slide-index="' + e + '"]:not(.' + a.params.slideDuplicateClass + ')'); a.lazy.loadInSlide(u.index(), !1); } else { var c = a.$wrapperEl.children( '.' + a.params.slideDuplicateClass + '[data-swiper-slide-index="' + e + '"]'); a.lazy.loadInSlide(c.index(), !1); } } a.emit('lazyImageReady', s[0], r[0]), a.params.autoHeight && a.updateAutoHeight(); } })), a.emit('lazyImageLoad', s[0], r[0]); })); } }, load: function () { var e = this, t = e.$wrapperEl, a = e.params, i = e.slides, s = e.activeIndex, r = e.virtual && a.virtual.enabled, n = a.lazy, l = a.slidesPerView; function o (e) { if (r) { if (t.children( '.' + a.slideClass + '[data-swiper-slide-index="' + e + '"]').length) return !0; } else if (i[e]) return !0; return !1; } function d (e) { return r ? m(e).attr('data-swiper-slide-index') : m(e).index(); } if ('auto' === l && (l = 0), e.lazy.initialImageLoaded || (e.lazy.initialImageLoaded = !0), e.params.watchSlidesVisibility) t.children( '.' + a.slideVisibleClass). each((function (t) { var a = r ? m(t). attr('data-swiper-slide-index') : m(t).index(); e.lazy.loadInSlide(a); })); else if (l > 1) for (var p = s; p < s + l; p += 1) o(p) && e.lazy.loadInSlide(p); else e.lazy.loadInSlide(s); if (n.loadPrevNext) if (l > 1 || n.loadPrevNextAmount && n.loadPrevNextAmount > 1) { for (var u = n.loadPrevNextAmount, c = l, h = Math.min( s + c + Math.max(u, c), i.length), v = Math.max( s - Math.max(c, u), 0), f = s + l; f < h; f += 1) o(f) && e.lazy.loadInSlide(f); for (var g = v; g < s; g += 1) o(g) && e.lazy.loadInSlide(g); } else { var b = t.children('.' + a.slideNextClass); b.length > 0 && e.lazy.loadInSlide(d(b)); var w = t.children('.' + a.slidePrevClass); w.length > 0 && e.lazy.loadInSlide(d(w)); } }, checkInViewOnLoad: function () { var e = l(), t = this; if (t && !t.destroyed) { var a = t.params.lazy.scrollingElement ? m( t.params.lazy.scrollingElement) : m(e), i = a[0] === e, s = i ? e.innerWidth : a[0].offsetWidth, r = i ? e.innerHeight : a[0].offsetHeight, n = t.$el.offset(), o = !1; t.rtlTranslate && (n.left -= t.$el[0].scrollLeft); for (var d = [ [n.left, n.top], [n.left + t.width, n.top], [n.left, n.top + t.height], [n.left + t.width, n.top + t.height]], p = 0; p < d.length; p += 1) { var u = d[p]; if (u[0] >= 0 && u[0] <= s && u[1] >= 0 && u[1] <= r) { if (0 === u[0] && 0 === u[1]) continue; o = !0; } } var c = !('touchstart' !== t.touchEvents.start || !t.support.passiveListener || !t.params.passiveListeners) && { passive: !0, capture: !1 }; o ? (t.lazy.load(), a.off('scroll', t.lazy.checkInViewOnLoad, c)) : t.lazy.scrollHandlerAttached || (t.lazy.scrollHandlerAttached = !0, a.on('scroll', t.lazy.checkInViewOnLoad, c)); } }, }, re = { LinearSpline: function (e, t) { var a, i, s, r, n, l = function (e, t) { for (i = -1, a = e.length; a - i > 1;) e[s = a + i >> 1] <= t ? i = s : a = s; return a; }; return this.x = e, this.y = t, this.lastIndex = e.length - 1, this.interpolate = function (e) { return e ? (n = l(this.x, e), r = n - 1, (e - this.x[r]) * (this.y[n] - this.y[r]) / (this.x[n] - this.x[r]) + this.y[r]) : 0; }, this; }, getInterpolateFunction: function (e) { var t = this; t.controller.spline || (t.controller.spline = t.params.loop ? new re.LinearSpline( t.slidesGrid, e.slidesGrid) : new re.LinearSpline(t.snapGrid, e.snapGrid)); }, setTranslate: function (e, t) { var a, i, s = this, r = s.controller.control, n = s.constructor; function l (e) { var t = s.rtlTranslate ? -s.translate : s.translate; 'slide' === s.params.controller.by && (s.controller.getInterpolateFunction( e), i = -s.controller.spline.interpolate(-t)), i && 'container' !== s.params.controller.by || (a = (e.maxTranslate() - e.minTranslate()) / (s.maxTranslate() - s.minTranslate()), i = (t - s.minTranslate()) * a + e.minTranslate()), s.params.controller.inverse && (i = e.maxTranslate() - i), e.updateProgress(i), e.setTranslate( i, s), e.updateActiveIndex(), e.updateSlidesClasses(); } if (Array.isArray(r)) for (var o = 0; o < r.length; o += 1) r[o] !== t && r[o] instanceof n && l(r[o]); else r instanceof n && t !== r && l(r); }, setTransition: function (e, t) { var a, i = this, s = i.constructor, r = i.controller.control; function n (t) { t.setTransition(e, i), 0 !== e && (t.transitionStart(), t.params.autoHeight && E((function () {t.updateAutoHeight();})), t.$wrapperEl.transitionEnd( (function () { r && (t.params.loop && 'slide' === i.params.controller.by && t.loopFix(), t.transitionEnd()); }))); } if (Array.isArray(r)) for (a = 0; a < r.length; a += 1) r[a] !== t && r[a] instanceof s && n(r[a]); else r instanceof s && t !== r && n(r); }, }, ne = { getRandomNumber: function (e) { void 0 === e && (e = 16); return 'x'.repeat(e). replace(/x/g, (function () { return Math.round(16 * Math.random()). toString(16); })); }, makeElFocusable: function (e) {return e.attr('tabIndex', '0'), e;}, makeElNotFocusable: function (e) {return e.attr('tabIndex', '-1'), e;}, addElRole: function (e, t) {return e.attr('role', t), e;}, addElRoleDescription: function (e, t) { return e.attr('aria-roledescription', t), e; }, addElControls: function (e, t) {return e.attr('aria-controls', t), e;}, addElLabel: function (e, t) {return e.attr('aria-label', t), e;}, addElId: function (e, t) {return e.attr('id', t), e;}, addElLive: function (e, t) {return e.attr('aria-live', t), e;}, disableEl: function (e) {return e.attr('aria-disabled', !0), e;}, enableEl: function (e) {return e.attr('aria-disabled', !1), e;}, onEnterOrSpaceKey: function (e) { if (13 === e.keyCode || 32 === e.keyCode) { var t = this, a = t.params.a11y, i = m(e.target); t.navigation && t.navigation.$nextEl && i.is(t.navigation.$nextEl) && (t.isEnd && !t.params.loop || t.slideNext(), t.isEnd ? t.a11y.notify(a.lastSlideMessage) : t.a11y.notify(a.nextSlideMessage)), t.navigation && t.navigation.$prevEl && i.is(t.navigation.$prevEl) && (t.isBeginning && !t.params.loop || t.slidePrev(), t.isBeginning ? t.a11y.notify(a.firstSlideMessage) : t.a11y.notify(a.prevSlideMessage)), t.pagination && i.is(P(t.params.pagination.bulletClass)) && i[0].click(); } }, notify: function (e) { var t = this.a11y.liveRegion; 0 !== t.length && (t.html(''), t.html(e)); }, updateNavigation: function () { var e = this; if (!e.params.loop && e.navigation) { var t = e.navigation, a = t.$nextEl, i = t.$prevEl; i && i.length > 0 && (e.isBeginning ? (e.a11y.disableEl( i), e.a11y.makeElNotFocusable(i)) : (e.a11y.enableEl( i), e.a11y.makeElFocusable(i))), a && a.length > 0 && (e.isEnd ? (e.a11y.disableEl(a), e.a11y.makeElNotFocusable(a)) : (e.a11y.enableEl(a), e.a11y.makeElFocusable(a))); } }, updatePagination: function () { var e = this, t = e.params.a11y; e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.bullets.each((function (a) { var i = m(a); e.a11y.makeElFocusable(i), e.params.pagination.renderBullet || (e.a11y.addElRole(i, 'button'), e.a11y.addElLabel(i, t.paginationBulletMessage.replace(/\{\{index\}\}/, i.index() + 1))); })); }, init: function () { var e = this, t = e.params.a11y; e.$el.append(e.a11y.liveRegion); var a = e.$el; t.containerRoleDescriptionMessage && e.a11y.addElRoleDescription(a, t.containerRoleDescriptionMessage), t.containerMessage && e.a11y.addElLabel(a, t.containerMessage); var i = e.$wrapperEl, s = i.attr('id') || 'swiper-wrapper-' + e.a11y.getRandomNumber(16), r = e.params.autoplay && e.params.autoplay.enabled ? 'off' : 'polite'; e.a11y.addElId(i, s), e.a11y.addElLive(i, r), t.itemRoleDescriptionMessage && e.a11y.addElRoleDescription(m(e.slides), t.itemRoleDescriptionMessage), e.a11y.addElRole(m(e.slides), t.slideRole); var n, l, o = e.params.loop ? e.slides.filter((function (t) { return !t.classList.contains(e.params.slideDuplicateClass); })).length : e.slides.length; e.slides.each((function (a, i) { var s = m(a), r = e.params.loop ? parseInt( s.attr('data-swiper-slide-index'), 10) : i, n = t.slideLabelMessage.replace(/\{\{index\}\}/, r + 1). replace(/\{\{slidesLength\}\}/, o); e.a11y.addElLabel(s, n); })), e.navigation && e.navigation.$nextEl && (n = e.navigation.$nextEl), e.navigation && e.navigation.$prevEl && (l = e.navigation.$prevEl), n && n.length && (e.a11y.makeElFocusable(n), 'BUTTON' !== n[0].tagName && (e.a11y.addElRole(n, 'button'), n.on('keydown', e.a11y.onEnterOrSpaceKey)), e.a11y.addElLabel(n, t.nextSlideMessage), e.a11y.addElControls(n, s)), l && l.length && (e.a11y.makeElFocusable(l), 'BUTTON' !== l[0].tagName && (e.a11y.addElRole(l, 'button'), l.on('keydown', e.a11y.onEnterOrSpaceKey)), e.a11y.addElLabel(l, t.prevSlideMessage), e.a11y.addElControls(l, s)), e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.$el.on('keydown', P(e.params.pagination.bulletClass), e.a11y.onEnterOrSpaceKey); }, destroy: function () { var e, t, a = this; a.a11y.liveRegion && a.a11y.liveRegion.length > 0 && a.a11y.liveRegion.remove(), a.navigation && a.navigation.$nextEl && (e = a.navigation.$nextEl), a.navigation && a.navigation.$prevEl && (t = a.navigation.$prevEl), e && e.off('keydown', a.a11y.onEnterOrSpaceKey), t && t.off('keydown', a.a11y.onEnterOrSpaceKey), a.pagination && a.params.pagination.clickable && a.pagination.bullets && a.pagination.bullets.length && a.pagination.$el.off('keydown', P(a.params.pagination.bulletClass), a.a11y.onEnterOrSpaceKey); }, }, le = { init: function () { var e = this, t = l(); if (e.params.history) { if (!t.history || !t.history.pushState) return e.params.history.enabled = !1, void (e.params.hashNavigation.enabled = !0); var a = e.history; a.initialized = !0, a.paths = le.getPathValues( e.params.url), (a.paths.key || a.paths.value) && (a.scrollToSlide(0, a.paths.value, e.params.runCallbacksOnInit), e.params.history.replaceState || t.addEventListener('popstate', e.history.setHistoryPopState)); } }, destroy: function () { var e = l(); this.params.history.replaceState || e.removeEventListener('popstate', this.history.setHistoryPopState); }, setHistoryPopState: function () { var e = this; e.history.paths = le.getPathValues( e.params.url), e.history.scrollToSlide(e.params.speed, e.history.paths.value, !1); }, getPathValues: function (e) { var t = l(), a = (e ? new URL(e) : t.location).pathname.slice(1). split('/'). filter((function (e) {return '' !== e;})), i = a.length; return { key: a[i - 2], value: a[i - 1] }; }, setHistory: function (e, t) { var a = this, i = l(); if (a.history.initialized && a.params.history.enabled) { var s; s = a.params.url ? new URL(a.params.url) : i.location; var r = a.slides.eq(t), n = le.slugify(r.attr('data-history')); if (a.params.history.root.length > 0) { var o = a.params.history.root; '/' === o[o.length - 1] && (o = o.slice(0, o.length - 1)), n = o + '/' + e + '/' + n; } else s.pathname.includes(e) || (n = e + '/' + n); var d = i.history.state; d && d.value === n || (a.params.history.replaceState ? i.history.replaceState( { value: n }, null, n) : i.history.pushState({ value: n }, null, n)); } }, slugify: function (e) { return e.toString(). replace(/\s+/g, '-'). replace(/[^\w-]+/g, ''). replace(/--+/g, '-'). replace(/^-+/, ''). replace(/-+$/, ''); }, scrollToSlide: function (e, t, a) { var i = this; if (t) for (var s = 0, r = i.slides.length; s < r; s += 1) { var n = i.slides.eq(s); if (le.slugify(n.attr('data-history')) === t && !n.hasClass( i.params.slideDuplicateClass)) { var l = n.index(); i.slideTo(l, e, a); } } else i.slideTo(0, e, a); }, }, oe = { onHashChange: function () { var e = this, t = r(); e.emit('hashChange'); var a = t.location.hash.replace('#', ''); if (a !== e.slides.eq(e.activeIndex). attr('data-hash')) { var i = e.$wrapperEl.children( '.' + e.params.slideClass + '[data-hash="' + a + '"]'). index(); if (void 0 === i) return; e.slideTo(i); } }, setHash: function () { var e = this, t = l(), a = r(); if (e.hashNavigation.initialized && e.params.hashNavigation.enabled) if (e.params.hashNavigation.replaceState && t.history && t.history.replaceState) t.history.replaceState( null, null, '#' + e.slides.eq(e.activeIndex).attr('data-hash') || ''), e.emit('hashSet'); else { var i = e.slides.eq(e.activeIndex), s = i.attr('data-hash') || i.attr('data-history'); a.location.hash = s || '', e.emit('hashSet'); } }, init: function () { var e = this, t = r(), a = l(); if (!(!e.params.hashNavigation.enabled || e.params.history && e.params.history.enabled)) { e.hashNavigation.initialized = !0; var i = t.location.hash.replace('#', ''); if (i) for (var s = 0, n = e.slides.length; s < n; s += 1) { var o = e.slides.eq(s); if ((o.attr('data-hash') || o.attr('data-history')) === i && !o.hasClass(e.params.slideDuplicateClass)) { var d = o.index(); e.slideTo(d, 0, e.params.runCallbacksOnInit, !0); } } e.params.hashNavigation.watchState && m(a).on('hashchange', e.hashNavigation.onHashChange); } }, destroy: function () { var e = l(); this.params.hashNavigation.watchState && m(e).off('hashchange', this.hashNavigation.onHashChange); }, }, de = { run: function () { var e = this, t = e.slides.eq(e.activeIndex), a = e.params.autoplay.delay; t.attr('data-swiper-autoplay') && (a = t.attr('data-swiper-autoplay') || e.params.autoplay.delay), clearTimeout( e.autoplay.timeout), e.autoplay.timeout = E((function () { var t; e.params.autoplay.reverseDirection ? e.params.loop ? (e.loopFix(), t = e.slidePrev(e.params.speed, !0, !0), e.emit('autoplay')) : e.isBeginning ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (t = e.slideTo(e.slides.length - 1, e.params.speed, !0, !0), e.emit('autoplay')) : (t = e.slidePrev( e.params.speed, !0, !0), e.emit('autoplay')) : e.params.loop ? (e.loopFix(), t = e.slideNext( e.params.speed, !0, !0), e.emit('autoplay')) : e.isEnd ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (t = e.slideTo(0, e.params.speed, !0, !0), e.emit( 'autoplay')) : (t = e.slideNext(e.params.speed, !0, !0), e.emit( 'autoplay')), (e.params.cssMode && e.autoplay.running || !1 === t) && e.autoplay.run(); }), a); }, start: function () { var e = this; return void 0 === e.autoplay.timeout && (!e.autoplay.running && (e.autoplay.running = !0, e.emit( 'autoplayStart'), e.autoplay.run(), !0)); }, stop: function () { var e = this; return !!e.autoplay.running && (void 0 !== e.autoplay.timeout && (e.autoplay.timeout && (clearTimeout( e.autoplay.timeout), e.autoplay.timeout = void 0), e.autoplay.running = !1, e.emit( 'autoplayStop'), !0)); }, pause: function (e) { var t = this; t.autoplay.running && (t.autoplay.paused || (t.autoplay.timeout && clearTimeout(t.autoplay.timeout), t.autoplay.paused = !0, 0 !== e && t.params.autoplay.waitForTransition ? [ 'transitionend', 'webkitTransitionEnd'].forEach((function (e) { t.$wrapperEl[0].addEventListener(e, t.autoplay.onTransitionEnd); })) : (t.autoplay.paused = !1, t.autoplay.run()))); }, onVisibilityChange: function () { var e = this, t = r(); 'hidden' === t.visibilityState && e.autoplay.running && e.autoplay.pause(), 'visible' === t.visibilityState && e.autoplay.paused && (e.autoplay.run(), e.autoplay.paused = !1); }, onTransitionEnd: function (e) { var t = this; t && !t.destroyed && t.$wrapperEl && e.target === t.$wrapperEl[0] && (['transitionend', 'webkitTransitionEnd'].forEach((function (e) { t.$wrapperEl[0].removeEventListener(e, t.autoplay.onTransitionEnd); })), t.autoplay.paused = !1, t.autoplay.running ? t.autoplay.run() : t.autoplay.stop()); }, onMouseEnter: function () { var e = this; e.params.autoplay.disableOnInteraction ? e.autoplay.stop() : e.autoplay.pause(), [ 'transitionend', 'webkitTransitionEnd'].forEach((function (t) { e.$wrapperEl[0].removeEventListener(t, e.autoplay.onTransitionEnd); })); }, onMouseLeave: function () { var e = this; e.params.autoplay.disableOnInteraction || (e.autoplay.paused = !1, e.autoplay.run()); }, attachMouseEvents: function () { var e = this; e.params.autoplay.pauseOnMouseEnter && (e.$el.on('mouseenter', e.autoplay.onMouseEnter), e.$el.on( 'mouseleave', e.autoplay.onMouseLeave)); }, detachMouseEvents: function () { var e = this; e.$el.off('mouseenter', e.autoplay.onMouseEnter), e.$el.off( 'mouseleave', e.autoplay.onMouseLeave); }, }, pe = { setTranslate: function () { for (var e = this, t = e.slides, a = 0; a < t.length; a += 1) { var i = e.slides.eq(a), s = -i[0].swiperSlideOffset; e.params.virtualTranslate || (s -= e.translate); var r = 0; e.isHorizontal() || (r = s, s = 0); var n = e.params.fadeEffect.crossFade ? Math.max( 1 - Math.abs(i[0].progress), 0) : 1 + Math.min(Math.max(i[0].progress, -1), 0); i.css({ opacity: n }). transform('translate3d(' + s + 'px, ' + r + 'px, 0px)'); } }, setTransition: function (e) { var t = this, a = t.slides, i = t.$wrapperEl; if (a.transition(e), t.params.virtualTranslate && 0 !== e) { var s = !1; a.transitionEnd((function () { if (!s && t && !t.destroyed) { s = !0, t.animating = !1; for (var e = [ 'webkitTransitionEnd', 'transitionend'], a = 0; a < e.length; a += 1) i.trigger(e[a]); } })); } }, }, ue = { setTranslate: function () { var e, t = this, a = t.$el, i = t.$wrapperEl, s = t.slides, r = t.width, n = t.height, l = t.rtlTranslate, o = t.size, d = t.browser, p = t.params.cubeEffect, u = t.isHorizontal(), c = t.virtual && t.params.virtual.enabled, h = 0; p.shadow && (u ? (0 === (e = i.find('.swiper-cube-shadow')).length && (e = m('<div class="swiper-cube-shadow"></div>'), i.append( e)), e.css({ height: r + 'px' })) : 0 === (e = a.find('.swiper-cube-shadow')).length && (e = m('<div class="swiper-cube-shadow"></div>'), a.append(e))); for (var v = 0; v < s.length; v += 1) { var f = s.eq(v), g = v; c && (g = parseInt(f.attr('data-swiper-slide-index'), 10)); var b = 90 * g, w = Math.floor(b / 360); l && (b = -b, w = Math.floor(-b / 360)); var y = Math.max(Math.min(f[0].progress, 1), -1), E = 0, x = 0, T = 0; g % 4 == 0 ? (E = 4 * -w * o, T = 0) : (g - 1) % 4 == 0 ? (E = 0, T = 4 * -w * o) : (g - 2) % 4 == 0 ? (E = o + 4 * w * o, T = o) : (g - 3) % 4 == 0 && (E = -o, T = 3 * o + 4 * o * w), l && (E = -E), u || (x = E, E = 0); var C = 'rotateX(' + (u ? 0 : -b) + 'deg) rotateY(' + (u ? b : 0) + 'deg) translate3d(' + E + 'px, ' + x + 'px, ' + T + 'px)'; if (y <= 1 && y > -1 && (h = 90 * g + 90 * y, l && (h = 90 * -g - 90 * y)), f.transform( C), p.slideShadows) { var S = u ? f.find('.swiper-slide-shadow-left') : f.find( '.swiper-slide-shadow-top'), M = u ? f.find('.swiper-slide-shadow-right') : f.find( '.swiper-slide-shadow-bottom'); 0 === S.length && (S = m( '<div class="swiper-slide-shadow-' + (u ? 'left' : 'top') + '"></div>'), f.append(S)), 0 === M.length && (M = m('<div class="swiper-slide-shadow-' + (u ? 'right' : 'bottom') + '"></div>'), f.append( M)), S.length && (S[0].style.opacity = Math.max(-y, 0)), M.length && (M[0].style.opacity = Math.max(y, 0)); } } if (i.css({ '-webkit-transform-origin': '50% 50% -' + o / 2 + 'px', '-moz-transform-origin': '50% 50% -' + o / 2 + 'px', '-ms-transform-origin': '50% 50% -' + o / 2 + 'px', 'transform-origin': '50% 50% -' + o / 2 + 'px', }), p.shadow) if (u) e.transform( 'translate3d(0px, ' + (r / 2 + p.shadowOffset) + 'px, ' + -r / 2 + 'px) rotateX(90deg) rotateZ(0deg) scale(' + p.shadowScale + ')'); else { var z = Math.abs(h) - 90 * Math.floor(Math.abs(h) / 90), P = 1.5 - (Math.sin(2 * z * Math.PI / 360) / 2 + Math.cos(2 * z * Math.PI / 360) / 2), k = p.shadowScale, $ = p.shadowScale / P, L = p.shadowOffset; e.transform( 'scale3d(' + k + ', 1, ' + $ + ') translate3d(0px, ' + (n / 2 + L) + 'px, ' + -n / 2 / $ + 'px) rotateX(-90deg)'); } var I = d.isSafari || d.isWebView ? -o / 2 : 0; i.transform('translate3d(0px,0,' + I + 'px) rotateX(' + (t.isHorizontal() ? 0 : h) + 'deg) rotateY(' + (t.isHorizontal() ? -h : 0) + 'deg)'); }, setTransition: function (e) { var t = this, a = t.$el; t.slides.transition(e). find( '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left'). transition(e), t.params.cubeEffect.shadow && !t.isHorizontal() && a.find('.swiper-cube-shadow').transition(e); }, }, ce = { setTranslate: function () { for (var e = this, t = e.slides, a = e.rtlTranslate, i = 0; i < t.length; i += 1) { var s = t.eq(i), r = s[0].progress; e.params.flipEffect.limitRotation && (r = Math.max(Math.min(s[0].progress, 1), -1)); var n = -180 * r, l = 0, o = -s[0].swiperSlideOffset, d = 0; if (e.isHorizontal() ? a && (n = -n) : (d = o, o = 0, l = -n, n = 0), s[0].style.zIndex = -Math.abs( Math.round(r)) + t.length, e.params.flipEffect.slideShadows) { var p = e.isHorizontal() ? s.find('.swiper-slide-shadow-left') : s.find('.swiper-slide-shadow-top'), u = e.isHorizontal() ? s.find('.swiper-slide-shadow-right') : s.find('.swiper-slide-shadow-bottom'); 0 === p.length && (p = m( '<div class="swiper-slide-shadow-' + (e.isHorizontal() ? 'left' : 'top') + '"></div>'), s.append(p)), 0 === u.length && (u = m( '<div class="swiper-slide-shadow-' + (e.isHorizontal() ? 'right' : 'bottom') + '"></div>'), s.append(u)), p.length && (p[0].style.opacity = Math.max(-r, 0)), u.length && (u[0].style.opacity = Math.max(r, 0)); } s.transform( 'translate3d(' + o + 'px, ' + d + 'px, 0px) rotateX(' + l + 'deg) rotateY(' + n + 'deg)'); } }, setTransition: function (e) { var t = this, a = t.slides, i = t.activeIndex, s = t.$wrapperEl; if (a.transition(e). find( '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left'). transition(e), t.params.virtualTranslate && 0 !== e) { var r = !1; a.eq(i). transitionEnd((function () { if (!r && t && !t.destroyed) { r = !0, t.animating = !1; for (var e = [ 'webkitTransitionEnd', 'transitionend'], a = 0; a < e.length; a += 1) s.trigger(e[a]); } })); } }, }, he = { setTranslate: function () { for (var e = this, t = e.width, a = e.height, i = e.slides, s = e.slidesSizesGrid, r = e.params.coverflowEffect, n = e.isHorizontal(), l = e.translate, o = n ? t / 2 - l : a / 2 - l, d = n ? r.rotate : -r.rotate, p = r.depth, u = 0, c = i.length; u < c; u += 1) { var h = i.eq(u), v = s[u], f = (o - h[0].swiperSlideOffset - v / 2) / v * r.modifier, g = n ? d * f : 0, b = n ? 0 : d * f, w = -p * Math.abs(f), y = r.stretch; 'string' == typeof y && -1 !== y.indexOf('%') && (y = parseFloat(r.stretch) / 100 * v); var E = n ? 0 : y * f, x = n ? y * f : 0, T = 1 - (1 - r.scale) * Math.abs(f); Math.abs(x) < .001 && (x = 0), Math.abs(E) < .001 && (E = 0), Math.abs(w) < .001 && (w = 0), Math.abs(g) < .001 && (g = 0), Math.abs(b) < .001 && (b = 0), Math.abs(T) < .001 && (T = 0); var C = 'translate3d(' + x + 'px,' + E + 'px,' + w + 'px) rotateX(' + b + 'deg) rotateY(' + g + 'deg) scale(' + T + ')'; if (h.transform(C), h[0].style.zIndex = 1 - Math.abs(Math.round(f)), r.slideShadows) { var S = n ? h.find('.swiper-slide-shadow-left') : h.find('.swiper-slide-shadow-top'), M = n ? h.find('.swiper-slide-shadow-right') : h.find( '.swiper-slide-shadow-bottom'); 0 === S.length && (S = m( '<div class="swiper-slide-shadow-' + (n ? 'left' : 'top') + '"></div>'), h.append(S)), 0 === M.length && (M = m('<div class="swiper-slide-shadow-' + (n ? 'right' : 'bottom') + '"></div>'), h.append( M)), S.length && (S[0].style.opacity = f > 0 ? f : 0), M.length && (M[0].style.opacity = -f > 0 ? -f : 0); } } }, setTransition: function (e) { this.slides.transition(e). find( '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left'). transition(e); }, }, ve = { init: function () { var e = this, t = e.params.thumbs; if (e.thumbs.initialized) return !1; e.thumbs.initialized = !0; var a = e.constructor; return t.swiper instanceof a ? (e.thumbs.swiper = t.swiper, M( e.thumbs.swiper.originalParams, { watchSlidesProgress: !0, slideToClickedSlide: !1 }), M( e.thumbs.swiper.params, { watchSlidesProgress: !0, slideToClickedSlide: !1 })) : C( t.swiper) && (e.thumbs.swiper = new a(M({}, t.swiper, { watchSlidesVisibility: !0, watchSlidesProgress: !0, slideToClickedSlide: !1, })), e.thumbs.swiperCreated = !0), e.thumbs.swiper.$el.addClass( e.params.thumbs.thumbsContainerClass), e.thumbs.swiper.on('tap', e.thumbs.onThumbClick), !0; }, onThumbClick: function () { var e = this, t = e.thumbs.swiper; if (t) { var a = t.clickedIndex, i = t.clickedSlide; if (!(i && m(i).hasClass(e.params.thumbs.slideThumbActiveClass) || null == a)) { var s; if (s = t.params.loop ? parseInt( m(t.clickedSlide).attr('data-swiper-slide-index'), 10) : a, e.params.loop) { var r = e.activeIndex; e.slides.eq(r).hasClass(e.params.slideDuplicateClass) && (e.loopFix(), e._clientLeft = e.$wrapperEl[0].clientLeft, r = e.activeIndex); var n = e.slides.eq(r). prevAll('[data-swiper-slide-index="' + s + '"]'). eq(0). index(), l = e.slides.eq(r). nextAll('[data-swiper-slide-index="' + s + '"]'). eq(0). index(); s = void 0 === n ? l : void 0 === l ? n : l - r < r - n ? l : n; } e.slideTo(s); } } }, update: function (e) { var t = this, a = t.thumbs.swiper; if (a) { var i = 'auto' === a.params.slidesPerView ? a.slidesPerViewDynamic() : a.params.slidesPerView, s = t.params.thumbs.autoScrollOffset, r = s && !a.params.loop; if (t.realIndex !== a.realIndex || r) { var n, l, o = a.activeIndex; if (a.params.loop) { a.slides.eq(o). hasClass(a.params.slideDuplicateClass) && (a.loopFix(), a._clientLeft = a.$wrapperEl[0].clientLeft, o = a.activeIndex); var d = a.slides.eq(o). prevAll('[data-swiper-slide-index="' + t.realIndex + '"]'). eq(0). index(), p = a.slides.eq(o). nextAll('[data-swiper-slide-index="' + t.realIndex + '"]'). eq(0). index(); n = void 0 === d ? p : void 0 === p ? d : p - o == o - d ? a.params.slidesPerGroup > 1 ? p : o : p - o < o - d ? p : d, l = t.activeIndex > t.previousIndex ? 'next' : 'prev'; } else l = (n = t.realIndex) > t.previousIndex ? 'next' : 'prev'; r && (n += 'next' === l ? s : -1 * s), a.visibleSlidesIndexes && a.visibleSlidesIndexes.indexOf(n) < 0 && (a.params.centeredSlides ? n = n > o ? n - Math.floor(i / 2) + 1 : n + Math.floor(i / 2) - 1 : n > o && a.params.slidesPerGroup, a.slideTo(n, e ? 0 : void 0)); } var u = 1, c = t.params.thumbs.slideThumbActiveClass; if (t.params.slidesPerView > 1 && !t.params.centeredSlides && (u = t.params.slidesPerView), t.params.thumbs.multipleActiveThumbs || (u = 1), u = Math.floor(u), a.slides.removeClass( c), a.params.loop || a.params.virtual && a.params.virtual.enabled) for (var h = 0; h < u; h += 1) a.$wrapperEl.children( '[data-swiper-slide-index="' + (t.realIndex + h) + '"]'). addClass(c); else for (var v = 0; v < u; v += 1) a.slides.eq(t.realIndex + v).addClass(c); } }, }, fe = [ U, Z, { name: 'mousewheel', params: { mousewheel: { enabled: !1, releaseOnEdges: !1, invert: !1, forceToAxis: !1, sensitivity: 1, eventsTarget: 'container', thresholdDelta: null, thresholdTime: null, }, }, create: function () { z(this, { mousewheel: { enabled: !1, lastScrollTime: x(), lastEventBeforeSnap: void 0, recentWheelEvents: [], enable: J.enable, disable: J.disable, handle: J.handle, handleMouseEnter: J.handleMouseEnter, handleMouseLeave: J.handleMouseLeave, animateSlider: J.animateSlider, releaseScroll: J.releaseScroll, }, }); }, on: { init: function (e) { !e.params.mousewheel.enabled && e.params.cssMode && e.mousewheel.disable(), e.params.mousewheel.enabled && e.mousewheel.enable(); }, destroy: function (e) { e.params.cssMode && e.mousewheel.enable(), e.mousewheel.enabled && e.mousewheel.disable(); }, }, }, { name: 'navigation', params: { navigation: { nextEl: null, prevEl: null, hideOnClick: !1, disabledClass: 'swiper-button-disabled', hiddenClass: 'swiper-button-hidden', lockClass: 'swiper-button-lock', }, }, create: function () {z(this, { navigation: t({}, Q) });}, on: { init: function (e) {e.navigation.init(), e.navigation.update();}, toEdge: function (e) {e.navigation.update();}, fromEdge: function (e) {e.navigation.update();}, destroy: function (e) {e.navigation.destroy();}, 'enable disable': function (e) { var t = e.navigation, a = t.$nextEl, i = t.$prevEl; a && a[e.enabled ? 'removeClass' : 'addClass']( e.params.navigation.lockClass), i && i[e.enabled ? 'removeClass' : 'addClass']( e.params.navigation.lockClass); }, click: function (e, t) { var a = e.navigation, i = a.$nextEl, s = a.$prevEl, r = t.target; if (e.params.navigation.hideOnClick && !m(r).is(s) && !m(r).is(i)) { if (e.pagination && e.params.pagination && e.params.pagination.clickable && (e.pagination.el === r || e.pagination.el.contains(r))) return; var n; i ? n = i.hasClass(e.params.navigation.hiddenClass) : s && (n = s.hasClass( e.params.navigation.hiddenClass)), !0 === n ? e.emit('navigationShow') : e.emit('navigationHide'), i && i.toggleClass(e.params.navigation.hiddenClass), s && s.toggleClass(e.params.navigation.hiddenClass); } }, }, }, { name: 'pagination', params: { pagination: { el: null, bulletElement: 'span', clickable: !1, hideOnClick: !1, renderBullet: null, renderProgressbar: null, renderFraction: null, renderCustom: null, progressbarOpposite: !1, type: 'bullets', dynamicBullets: !1, dynamicMainBullets: 1, formatFractionCurrent: function (e) {return e;}, formatFractionTotal: function (e) {return e;}, bulletClass: 'swiper-pagination-bullet', bulletActiveClass: 'swiper-pagination-bullet-active', modifierClass: 'swiper-pagination-', currentClass: 'swiper-pagination-current', totalClass: 'swiper-pagination-total', hiddenClass: 'swiper-pagination-hidden', progressbarFillClass: 'swiper-pagination-progressbar-fill', progressbarOppositeClass: 'swiper-pagination-progressbar-opposite', clickableClass: 'swiper-pagination-clickable', lockClass: 'swiper-pagination-lock', }, }, create: function () { z(this, { pagination: t({ dynamicBulletIndex: 0 }, ee) }); }, on: { init: function (e) {e.pagination.init(), e.pagination.render(), e.pagination.update();}, activeIndexChange: function (e) { (e.params.loop || void 0 === e.snapIndex) && e.pagination.update(); }, snapIndexChange: function (e) { e.params.loop || e.pagination.update(); }, slidesLengthChange: function (e) { e.params.loop && (e.pagination.render(), e.pagination.update()); }, snapGridLengthChange: function (e) { e.params.loop || (e.pagination.render(), e.pagination.update()); }, destroy: function (e) {e.pagination.destroy();}, 'enable disable': function (e) { var t = e.pagination.$el; t && t[e.enabled ? 'removeClass' : 'addClass']( e.params.pagination.lockClass); }, click: function (e, t) { var a = t.target; if (e.params.pagination.el && e.params.pagination.hideOnClick && e.pagination.$el.length > 0 && !m(a). hasClass(e.params.pagination.bulletClass)) { if (e.navigation && (e.navigation.nextEl && a === e.navigation.nextEl || e.navigation.prevEl && a === e.navigation.prevEl)) return; !0 === e.pagination.$el.hasClass( e.params.pagination.hiddenClass) ? e.emit( 'paginationShow') : e.emit( 'paginationHide'), e.pagination.$el.toggleClass( e.params.pagination.hiddenClass); } }, }, }, { name: 'scrollbar', params: { scrollbar: { el: null, dragSize: 'auto', hide: !1, draggable: !1, snapOnRelease: !0, lockClass: 'swiper-scrollbar-lock', dragClass: 'swiper-scrollbar-drag', }, }, create: function () { z(this, { scrollbar: t( { isTouched: !1, timeout: null, dragTimeout: null }, te), }); }, on: { init: function (e) {e.scrollbar.init(), e.scrollbar.updateSize(), e.scrollbar.setTranslate();}, update: function (e) {e.scrollbar.updateSize();}, resize: function (e) {e.scrollbar.updateSize();}, observerUpdate: function (e) {e.scrollbar.updateSize();}, setTranslate: function (e) {e.scrollbar.setTranslate();}, setTransition: function (e, t) {e.scrollbar.setTransition(t);}, 'enable disable': function (e) { var t = e.scrollbar.$el; t && t[e.enabled ? 'removeClass' : 'addClass']( e.params.scrollbar.lockClass); }, destroy: function (e) {e.scrollbar.destroy();}, }, }, { name: 'parallax', params: { parallax: { enabled: !1 } }, create: function () {z(this, { parallax: t({}, ae) });}, on: { beforeInit: function (e) { e.params.parallax.enabled && (e.params.watchSlidesProgress = !0, e.originalParams.watchSlidesProgress = !0); }, init: function (e) { e.params.parallax.enabled && e.parallax.setTranslate(); }, setTranslate: function (e) { e.params.parallax.enabled && e.parallax.setTranslate(); }, setTransition: function (e, t) { e.params.parallax.enabled && e.parallax.setTransition(t); }, }, }, { name: 'zoom', params: { zoom: { enabled: !1, maxRatio: 3, minRatio: 1, toggle: !0, containerClass: 'swiper-zoom-container', zoomedSlideClass: 'swiper-slide-zoomed', }, }, create: function () { var e = this; z(e, { zoom: t({ enabled: !1, scale: 1, currentScale: 1, isScaling: !1, gesture: { $slideEl: void 0, slideWidth: void 0, slideHeight: void 0, $imageEl: void 0, $imageWrapEl: void 0, maxRatio: 3, }, image: { isTouched: void 0, isMoved: void 0, currentX: void 0, currentY: void 0, minX: void 0, minY: void 0, maxX: void 0, maxY: void 0, width: void 0, height: void 0, startX: void 0, startY: void 0, touchesStart: {}, touchesCurrent: {}, }, velocity: { x: void 0, y: void 0, prevPositionX: void 0, prevPositionY: void 0, prevTime: void 0, }, }, ie), }); var a = 1; Object.defineProperty(e.zoom, 'scale', { get: function () {return a;}, set: function (t) { if (a !== t) { var i = e.zoom.gesture.$imageEl ? e.zoom.gesture.$imageEl[0] : void 0, s = e.zoom.gesture.$slideEl ? e.zoom.gesture.$slideEl[0] : void 0; e.emit('zoomChange', t, i, s); } a = t; }, }); }, on: { init: function (e) {e.params.zoom.enabled && e.zoom.enable();}, destroy: function (e) {e.zoom.disable();}, touchStart: function (e, t) { e.zoom.enabled && e.zoom.onTouchStart(t); }, touchEnd: function (e, t) { e.zoom.enabled && e.zoom.onTouchEnd(t); }, doubleTap: function (e, t) { !e.animating && e.params.zoom.enabled && e.zoom.enabled && e.params.zoom.toggle && e.zoom.toggle(t); }, transitionEnd: function (e) { e.zoom.enabled && e.params.zoom.enabled && e.zoom.onTransitionEnd(); }, slideChange: function (e) { e.zoom.enabled && e.params.zoom.enabled && e.params.cssMode && e.zoom.onTransitionEnd(); }, }, }, { name: 'lazy', params: { lazy: { checkInView: !1, enabled: !1, loadPrevNext: !1, loadPrevNextAmount: 1, loadOnTransitionStart: !1, scrollingElement: '', elementClass: 'swiper-lazy', loadingClass: 'swiper-lazy-loading', loadedClass: 'swiper-lazy-loaded', preloaderClass: 'swiper-lazy-preloader', }, }, create: function () { z(this, { lazy: t({ initialImageLoaded: !1 }, se) }); }, on: { beforeInit: function (e) { e.params.lazy.enabled && e.params.preloadImages && (e.params.preloadImages = !1); }, init: function (e) { e.params.lazy.enabled && !e.params.loop && 0 === e.params.initialSlide && (e.params.lazy.checkInView ? e.lazy.checkInViewOnLoad() : e.lazy.load()); }, scroll: function (e) { e.params.freeMode && !e.params.freeModeSticky && e.lazy.load(); }, 'scrollbarDragMove resize _freeModeNoMomentumRelease': function (e) { e.params.lazy.enabled && e.lazy.load(); }, transitionStart: function (e) { e.params.lazy.enabled && (e.params.lazy.loadOnTransitionStart || !e.params.lazy.loadOnTransitionStart && !e.lazy.initialImageLoaded) && e.lazy.load(); }, transitionEnd: function (e) { e.params.lazy.enabled && !e.params.lazy.loadOnTransitionStart && e.lazy.load(); }, slideChange: function (e) { var t = e.params, a = t.lazy, i = t.cssMode, s = t.watchSlidesVisibility, r = t.watchSlidesProgress, n = t.touchReleaseOnEdges, l = t.resistanceRatio; a.enabled && (i || (s || r) && (n || 0 === l)) && e.lazy.load(); }, }, }, { name: 'controller', params: { controller: { control: void 0, inverse: !1, by: 'slide', }, }, create: function () { z(this, { controller: t({ control: this.params.controller.control }, re), }); }, on: { update: function (e) { e.controller.control && e.controller.spline && (e.controller.spline = void 0, delete e.controller.spline); }, resize: function (e) { e.controller.control && e.controller.spline && (e.controller.spline = void 0, delete e.controller.spline); }, observerUpdate: function (e) { e.controller.control && e.controller.spline && (e.controller.spline = void 0, delete e.controller.spline); }, setTranslate: function (e, t, a) { e.controller.control && e.controller.setTranslate(t, a); }, setTransition: function (e, t, a) { e.controller.control && e.controller.setTransition(t, a); }, }, }, { name: 'a11y', params: { a11y: { enabled: !0, notificationClass: 'swiper-notification', prevSlideMessage: 'Previous slide', nextSlideMessage: 'Next slide', firstSlideMessage: 'This is the first slide', lastSlideMessage: 'This is the last slide', paginationBulletMessage: 'Go to slide {{index}}', slideLabelMessage: '{{index}} / {{slidesLength}}', containerMessage: null, containerRoleDescriptionMessage: null, itemRoleDescriptionMessage: null, slideRole: 'group', }, }, create: function () { z(this, { a11y: t({}, ne, { liveRegion: m('<span class="' + this.params.a11y.notificationClass + '" aria-live="assertive" aria-atomic="true"></span>'), }), }); }, on: { afterInit: function (e) { e.params.a11y.enabled && (e.a11y.init(), e.a11y.updateNavigation()); }, toEdge: function (e) { e.params.a11y.enabled && e.a11y.updateNavigation(); }, fromEdge: function (e) { e.params.a11y.enabled && e.a11y.updateNavigation(); }, paginationUpdate: function (e) { e.params.a11y.enabled && e.a11y.updatePagination(); }, destroy: function (e) { e.params.a11y.enabled && e.a11y.destroy(); }, }, }, { name: 'history', params: { history: { enabled: !1, root: '', replaceState: !1, key: 'slides', }, }, create: function () {z(this, { history: t({}, le) });}, on: { init: function (e) { e.params.history.enabled && e.history.init(); }, destroy: function (e) { e.params.history.enabled && e.history.destroy(); }, 'transitionEnd _freeModeNoMomentumRelease': function (e) { e.history.initialized && e.history.setHistory(e.params.history.key, e.activeIndex); }, slideChange: function (e) { e.history.initialized && e.params.cssMode && e.history.setHistory(e.params.history.key, e.activeIndex); }, }, }, { name: 'hash-navigation', params: { hashNavigation: { enabled: !1, replaceState: !1, watchState: !1, }, }, create: function () { z(this, { hashNavigation: t({ initialized: !1 }, oe) }); }, on: { init: function (e) { e.params.hashNavigation.enabled && e.hashNavigation.init(); }, destroy: function (e) { e.params.hashNavigation.enabled && e.hashNavigation.destroy(); }, 'transitionEnd _freeModeNoMomentumRelease': function (e) { e.hashNavigation.initialized && e.hashNavigation.setHash(); }, slideChange: function (e) { e.hashNavigation.initialized && e.params.cssMode && e.hashNavigation.setHash(); }, }, }, { name: 'autoplay', params: { autoplay: { enabled: !1, delay: 3e3, waitForTransition: !0, disableOnInteraction: !0, stopOnLastSlide: !1, reverseDirection: !1, pauseOnMouseEnter: !1, }, }, create: function () { z(this, { autoplay: t({}, de, { running: !1, paused: !1 }) }); }, on: { init: function (e) { e.params.autoplay.enabled && (e.autoplay.start(), r(). addEventListener('visibilitychange', e.autoplay.onVisibilityChange), e.autoplay.attachMouseEvents()); }, beforeTransitionStart: function (e, t, a) { e.autoplay.running && (a || !e.params.autoplay.disableOnInteraction ? e.autoplay.pause(t) : e.autoplay.stop()); }, sliderFirstMove: function (e) { e.autoplay.running && (e.params.autoplay.disableOnInteraction ? e.autoplay.stop() : e.autoplay.pause()); }, touchEnd: function (e) { e.params.cssMode && e.autoplay.paused && !e.params.autoplay.disableOnInteraction && e.autoplay.run(); }, destroy: function (e) { e.autoplay.detachMouseEvents(), e.autoplay.running && e.autoplay.stop(), r(). removeEventListener('visibilitychange', e.autoplay.onVisibilityChange); }, }, }, { name: 'effect-fade', params: { fadeEffect: { crossFade: !1 } }, create: function () {z(this, { fadeEffect: t({}, pe) });}, on: { beforeInit: function (e) { if ('fade' === e.params.effect) { e.classNames.push( e.params.containerModifierClass + 'fade'); var t = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !0, }; M(e.params, t), M(e.originalParams, t); } }, setTranslate: function (e) { 'fade' === e.params.effect && e.fadeEffect.setTranslate(); }, setTransition: function (e, t) { 'fade' === e.params.effect && e.fadeEffect.setTransition(t); }, }, }, { name: 'effect-cube', params: { cubeEffect: { slideShadows: !0, shadow: !0, shadowOffset: 20, shadowScale: .94, }, }, create: function () {z(this, { cubeEffect: t({}, ue) });}, on: { beforeInit: function (e) { if ('cube' === e.params.effect) { e.classNames.push(e.params.containerModifierClass + 'cube'), e.classNames.push( e.params.containerModifierClass + '3d'); var t = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, resistanceRatio: 0, spaceBetween: 0, centeredSlides: !1, virtualTranslate: !0, }; M(e.params, t), M(e.originalParams, t); } }, setTranslate: function (e) { 'cube' === e.params.effect && e.cubeEffect.setTranslate(); }, setTransition: function (e, t) { 'cube' === e.params.effect && e.cubeEffect.setTransition(t); }, }, }, { name: 'effect-flip', params: { flipEffect: { slideShadows: !0, limitRotation: !0 } }, create: function () {z(this, { flipEffect: t({}, ce) });}, on: { beforeInit: function (e) { if ('flip' === e.params.effect) { e.classNames.push(e.params.containerModifierClass + 'flip'), e.classNames.push( e.params.containerModifierClass + '3d'); var t = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !0, }; M(e.params, t), M(e.originalParams, t); } }, setTranslate: function (e) { 'flip' === e.params.effect && e.flipEffect.setTranslate(); }, setTransition: function (e, t) { 'flip' === e.params.effect && e.flipEffect.setTransition(t); }, }, }, { name: 'effect-coverflow', params: { coverflowEffect: { rotate: 50, stretch: 0, depth: 100, scale: 1, modifier: 1, slideShadows: !0, }, }, create: function () {z(this, { coverflowEffect: t({}, he) });}, on: { beforeInit: function (e) { 'coverflow' === e.params.effect && (e.classNames.push( e.params.containerModifierClass + 'coverflow'), e.classNames.push( e.params.containerModifierClass + '3d'), e.params.watchSlidesProgress = !0, e.originalParams.watchSlidesProgress = !0); }, setTranslate: function (e) { 'coverflow' === e.params.effect && e.coverflowEffect.setTranslate(); }, setTransition: function (e, t) { 'coverflow' === e.params.effect && e.coverflowEffect.setTransition(t); }, }, }, { name: 'thumbs', params: { thumbs: { swiper: null, multipleActiveThumbs: !0, autoScrollOffset: 0, slideThumbActiveClass: 'swiper-slide-thumb-active', thumbsContainerClass: 'swiper-container-thumbs', }, }, create: function () { z(this, { thumbs: t({ swiper: null, initialized: !1 }, ve) }); }, on: { beforeInit: function (e) { var t = e.params.thumbs; t && t.swiper && (e.thumbs.init(), e.thumbs.update(!0)); }, slideChange: function (e) { e.thumbs.swiper && e.thumbs.update(); }, update: function (e) {e.thumbs.swiper && e.thumbs.update();}, resize: function (e) {e.thumbs.swiper && e.thumbs.update();}, observerUpdate: function (e) { e.thumbs.swiper && e.thumbs.update(); }, setTransition: function (e, t) { var a = e.thumbs.swiper; a && a.setTransition(t); }, beforeDestroy: function (e) { var t = e.thumbs.swiper; t && e.thumbs.swiperCreated && t && t.destroy(); }, }, }]; return q.use(fe), q; })); window.SEMICOLON_swiperInit = function ($sliderEl) { $sliderEl = $sliderEl.filter(':not(.customjs)'); if ($sliderEl.length < 1) { return true; } $sliderEl.each(function () { if (!$(this).hasClass('swiper_wrapper')) { return true; } if ($(this).find('.swiper-slide').length < 1) { return true; } let element = $(this).filter('.swiper_wrapper'), elDirection = element.attr('data-direction') || 'horizontal', elSpeed = element.attr('data-speed') || 300, elAutoPlay = element.attr('data-autoplay'), elLoop = element.attr('data-loop'), elStart = element.attr('data-start') || 1, elEffect = element.attr('data-effect') || 'slide', elGrabCursor = element.attr('data-grab'), elParallax = element.attr('data-parallax'), slideNumberTotal = element.find('.slide-number-total'), slideNumberCurrent = element.find('.slide-number-current'), elVideoAutoPlay = element.attr('data-video-autoplay'), elSettings = element.attr('data-settings'), elPagination, elPaginationClickable; if (elAutoPlay) { elAutoPlay = Number(elAutoPlay); } else { elAutoPlay = 999999999; } if (elLoop == 'true') { elLoop = true; } else { elLoop = false; } if (elParallax == 'true') { elParallax = true; } else { elParallax = false; } if (elGrabCursor == 'false') { elGrabCursor = false; } else { elGrabCursor = true; } if (elVideoAutoPlay == 'false') { elVideoAutoPlay = false; } else { elVideoAutoPlay = true; } if (elStart === 'random') { elStart = Math.floor(Math.random() * element.find( '.swiper-slide:not(.swiper-slide-duplicate)').length); } else { elStart = Number(elStart) - 1; } if (element.find('.swiper-pagination').length > 0) { elPagination = element.find('.swiper-pagination').get(0); elPaginationClickable = true; } else { elPagination = ''; elPaginationClickable = false; } let elementNavNext = element.find('.slider-arrow-right').get(0), elementNavPrev = element.find('.slider-arrow-left').get(0), elementScollBar = element.find('.swiper-scrollbar').get(0); let scwSwiperSlider = new Swiper(element.find('.swiper-parent').get(0), { direction: elDirection, speed: Number(elSpeed), autoplay: { delay: elAutoPlay, }, loop: elLoop, initialSlide: elStart, effect: elEffect, parallax: elParallax, slidesPerView: 1, grabCursor: elGrabCursor, pagination: { el: elPagination, clickable: elPaginationClickable, }, navigation: { prevEl: elementNavPrev, nextEl: elementNavNext, }, scrollbar: { el: elementScollBar, }, on: { afterInit: function (swiper) { SEMICOLON.slider.sliderDimensions(); element.find('.yt-bg-player'). attr('data-autoplay', 'false'). removeClass('customjs'); SEMICOLON.widget.youtubeBgVideo({ parent: swiper }); let activeYTVideo = $('.swiper-slide-active'). find('.yt-bg-player.mb_YTPlayer:not(.customjs)'); activeYTVideo.on('YTPReady', function () { setTimeout(function () { activeYTVideo.YTPPlay(); }, 1000); }); $('.swiper-slide-active [data-animate]'). each(function () { let $toAnimateElement = $(this), toAnimateDelay = $toAnimateElement.attr( 'data-delay'), toAnimateDelayTime = 0; if (toAnimateDelay) { toAnimateDelayTime = Number( toAnimateDelay) + 750; } else { toAnimateDelayTime = 750; } if (!$toAnimateElement.hasClass('animated')) { $toAnimateElement.addClass('not-animated'); let elementAnimation = $toAnimateElement.attr( 'data-animate'); setTimeout(function () { $toAnimateElement.removeClass( 'not-animated'). addClass( elementAnimation + ' animated'); }, toAnimateDelayTime); } }); element.find('[data-animate]').each(function () { let $toAnimateElement = $(this), elementAnimation = $toAnimateElement.attr( 'data-animate'); if ($toAnimateElement.parents('.swiper-slide'). hasClass( 'swiper-slide-active')) { return true; } $toAnimateElement.removeClass('animated'). removeClass(elementAnimation). addClass('not-animated'); }); SEMICOLON.slider.swiperSliderMenu(); }, transitionStart: function (swiper) { if (slideNumberCurrent.length > 0) { if (elLoop == true) { slideNumberCurrent.html(Number(element.find( '.swiper-slide.swiper-slide-active'). attr('data-swiper-slide-index')) + 1); } else { slideNumberCurrent.html( scwSwiperSlider.activeIndex + 1); } } element.find('[data-animate]').each(function () { let $toAnimateElement = $(this), elementAnimation = $toAnimateElement.attr( 'data-animate'); if ($toAnimateElement.parents('.swiper-slide'). hasClass( 'swiper-slide-active')) { return true; } $toAnimateElement.removeClass('animated'). removeClass(elementAnimation). addClass('not-animated'); }); SEMICOLON.slider.swiperSliderMenu(); }, transitionEnd: function (swiper) { element.find('.swiper-slide').each(function () { let slideEl = $(this); if (slideEl.find('video').length > 0 && elVideoAutoPlay == true) { slideEl.find('video').get(0).pause(); } if (slideEl.find( '.yt-bg-player.mb_YTPlayer:not(.customjs)').length > 0) { slideEl.find( '.yt-bg-player.mb_YTPlayer:not(.customjs)'). YTPPause(); } }); element.find( '.swiper-slide:not(".swiper-slide-active")'). each(function () { let slideEl = $(this); if (slideEl.find('video').length > 0) { if (slideEl.find('video'). get(0).currentTime != 0) { slideEl.find('video'). get(0).currentTime = 0; } } if (slideEl.find( '.yt-bg-player.mb_YTPlayer:not(.customjs)').length > 0) { slideEl.find( '.yt-bg-player.mb_YTPlayer:not(.customjs)'). YTPSeekTo(slideEl.find( '.yt-bg-player.mb_YTPlayer:not(.customjs)'). attr('data-start')); } }); if (element.find('.swiper-slide.swiper-slide-active'). find('video').length > 0 && elVideoAutoPlay == true) { element.find('.swiper-slide.swiper-slide-active'). find('video'). get(0). play(); } if (element.find('.swiper-slide.swiper-slide-active'). find( '.yt-bg-player.mb_YTPlayer:not(.customjs)').length > 0 && elVideoAutoPlay == true) { element.find('.swiper-slide.swiper-slide-active'). find( '.yt-bg-player.mb_YTPlayer:not(.customjs)'). YTPPlay(); } element.find( '.swiper-slide.swiper-slide-active [data-animate]'). each(function () { let $toAnimateElement = $(this), toAnimateDelay = $toAnimateElement.attr( 'data-delay'), toAnimateDelayTime = 0; if (toAnimateDelay) { toAnimateDelayTime = Number( toAnimateDelay) + 300; } else { toAnimateDelayTime = 300; } if (!$toAnimateElement.hasClass('animated')) { $toAnimateElement.addClass('not-animated'); let elementAnimation = $toAnimateElement.attr( 'data-animate'); setTimeout(function () { $toAnimateElement.removeClass( 'not-animated'). addClass( elementAnimation + ' animated'); }, toAnimateDelayTime); } }); }, }, }); if (slideNumberCurrent.length > 0) { if (elLoop == true) { slideNumberCurrent.html(scwSwiperSlider.realIndex + 1); } else { slideNumberCurrent.html(scwSwiperSlider.activeIndex + 1); } } if (slideNumberTotal.length > 0) { slideNumberTotal.html(element.find( '.swiper-slide:not(.swiper-slide-duplicate)').length); } if (elSettings) { elSettings = Function('return ' + elSettings)(); Object.keys(elSettings).forEach(function (key, index) { scwSwiperSlider.params[key] = elSettings[key]; scwSwiperSlider.update(); }); } }); }; /*! jQuery UI - v1.12.1 - 2018-01-02 * http://jqueryui.com * Includes: widget.js, keycode.js, unique-id.js, widgets/tabs.js, effect.js, effects/effect-fade.js, effects/effect-slide.js * Copyright jQuery Foundation and other contributors; Licensed MIT */ (function (t) { 'function' == typeof define && define.amd ? define(['jquery'], t) : t(jQuery); })(function (t) { t.ui = t.ui || {}, t.ui.version = '1.12.1'; var e = 0, i = Array.prototype.slice; t.cleanData = function (e) { return function (i) { var s, n, o; for (o = 0; null != (n = i[o]); o++) try { s = t._data(n, 'events'), s && s.remove && t(n).triggerHandler('remove'); } catch (a) {} e(i); }; }(t.cleanData), t.widget = function (e, i, s) { var n, o, a, r = {}, l = e.split('.')[0]; e = e.split('.')[1]; var h = l + '-' + e; return s || (s = i, i = t.Widget), t.isArray(s) && (s = t.extend.apply(null, [{}].concat( s))), t.expr[':'][h.toLowerCase()] = function (e) { return !!t.data(e, h); }, t[l] = t[l] || {}, n = t[l][e], o = t[l][e] = function ( t, e) { return this._createWidget ? (arguments.length && this._createWidget(t, e), void 0) : new o(t, e); }, t.extend(o, n, { version: s.version, _proto: t.extend({}, s), _childConstructors: [], }), a = new i, a.options = t.widget.extend({}, a.options), t.each(s, function (e, s) { return t.isFunction(s) ? (r[e] = function () { function t () { return i.prototype[e].apply(this, arguments); } function n (t) {return i.prototype[e].apply(this, t);} return function () { var e, i = this._super, o = this._superApply; return this._super = t, this._superApply = n, e = s.apply( this, arguments), this._super = i, this._superApply = o, e; }; }(), void 0) : (r[e] = s, void 0); }), o.prototype = t.widget.extend(a, { widgetEventPrefix: n ? a.widgetEventPrefix || e : e }, r, { constructor: o, namespace: l, widgetName: e, widgetFullName: h, }), n ? (t.each(n._childConstructors, function (e, i) { var s = i.prototype; t.widget(s.namespace + '.' + s.widgetName, o, i._proto); }), delete n._childConstructors) : i._childConstructors.push( o), t.widget.bridge(e, o), o; }, t.widget.extend = function (e) { for (var s, n, o = i.call(arguments, 1), a = 0, r = o.length; r > a; a++) for (s in o[a]) n = o[a][s], o[a].hasOwnProperty(s) && void 0 !== n && (e[s] = t.isPlainObject(n) ? t.isPlainObject(e[s]) ? t.widget.extend({}, e[s], n) : t.widget.extend({}, n) : n); return e; }, t.widget.bridge = function (e, s) { var n = s.prototype.widgetFullName || e; t.fn[e] = function (o) { var a = 'string' == typeof o, r = i.call(arguments, 1), l = this; return a ? this.length || 'instance' !== o ? this.each(function () { var i, s = t.data(this, n); return 'instance' === o ? (l = s, !1) : s ? t.isFunction(s[o]) && '_' !== o.charAt(0) ? (i = s[o].apply(s, r), i !== s && void 0 !== i ? (l = i && i.jquery ? l.pushStack(i.get()) : i, !1) : void 0) : t.error('no such method \'' + o + '\' for ' + e + ' widget instance') : t.error('cannot call methods on ' + e + ' prior to initialization; ' + 'attempted to call method \'' + o + '\''); }) : l = void 0 : (r.length && (o = t.widget.extend.apply(null, [o].concat(r))), this.each( function () { var e = t.data(this, n); e ? (e.option(o || {}), e._init && e._init()) : t.data(this, n, new s(o, this)); })), l; }; }, t.Widget = function () {}, t.Widget._childConstructors = [], t.Widget.prototype = { widgetName: 'widget', widgetEventPrefix: '', defaultElement: '<div>', options: { classes: {}, disabled: !1, create: null }, _createWidget: function (i, s) { s = t(s || this.defaultElement || this)[0], this.element = t( s), this.uuid = e++, this.eventNamespace = '.' + this.widgetName + this.uuid, this.bindings = t(), this.hoverable = t(), this.focusable = t(), this.classesElementLookup = {}, s !== this && (t.data(s, this.widgetFullName, this), this._on(!0, this.element, { remove: function (t) { t.target === s && this.destroy(); }, }), this.document = t( s.style ? s.ownerDocument : s.document || s), this.window = t( this.document[0].defaultView || this.document[0].parentWindow)), this.options = t.widget.extend( {}, this.options, this._getCreateOptions(), i), this._create(), this.options.disabled && this._setOptionDisabled(this.options.disabled), this._trigger( 'create', null, this._getCreateEventData()), this._init(); }, _getCreateOptions: function () {return {};}, _getCreateEventData: t.noop, _create: t.noop, _init: t.noop, destroy: function () { var e = this; this._destroy(), t.each(this.classesElementLookup, function (t, i) {e._removeClass(i, t);}), this.element.off( this.eventNamespace). removeData(this.widgetFullName), this.widget(). off(this.eventNamespace). removeAttr('aria-disabled'), this.bindings.off( this.eventNamespace); }, _destroy: t.noop, widget: function () {return this.element;}, option: function (e, i) { var s, n, o, a = e; if (0 === arguments.length) return t.widget.extend({}, this.options); if ('string' == typeof e) if (a = {}, s = e.split( '.'), e = s.shift(), s.length) { for (n = a[e] = t.widget.extend({}, this.options[e]), o = 0; s.length - 1 > o; o++) n[s[o]] = n[s[o]] || {}, n = n[s[o]]; if (e = s.pop(), 1 === arguments.length) return void 0 === n[e] ? null : n[e]; n[e] = i; } else { if (1 === arguments.length) return void 0 === this.options[e] ? null : this.options[e]; a[e] = i; } return this._setOptions(a), this; }, _setOptions: function (t) { var e; for (e in t) this._setOption(e, t[e]); return this; }, _setOption: function (t, e) { return 'classes' === t && this._setOptionClasses(e), this.options[t] = e, 'disabled' === t && this._setOptionDisabled(e), this; }, _setOptionClasses: function (e) { var i, s, n; for (i in e) n = this.classesElementLookup[i], e[i] !== this.options.classes[i] && n && n.length && (s = t(n.get()), this._removeClass(n, i), s.addClass( this._classes({ element: s, keys: i, classes: e, add: !0 }))); }, _setOptionDisabled: function (t) { this._toggleClass(this.widget(), this.widgetFullName + '-disabled', null, !!t), t && (this._removeClass(this.hoverable, null, 'ui-state-hover'), this._removeClass(this.focusable, null, 'ui-state-focus')); }, enable: function () {return this._setOptions({ disabled: !1 });}, disable: function () {return this._setOptions({ disabled: !0 });}, _classes: function (e) { function i (i, o) { var a, r; for (r = 0; i.length > r; r++) a = n.classesElementLookup[i[r]] || t(), a = e.add ? t(t.unique(a.get().concat(e.element.get()))) : t(a.not(e.element). get()), n.classesElementLookup[i[r]] = a, s.push( i[r]), o && e.classes[i[r]] && s.push(e.classes[i[r]]); } var s = [], n = this; return e = t.extend( { element: this.element, classes: this.options.classes || {} }, e), this._on(e.element, { remove: '_untrackClassesElement' }), e.keys && i(e.keys.match(/\S+/g) || [], !0), e.extra && i(e.extra.match(/\S+/g) || []), s.join(' '); }, _untrackClassesElement: function (e) { var i = this; t.each(i.classesElementLookup, function (s, n) { -1 !== t.inArray(e.target, n) && (i.classesElementLookup[s] = t(n.not(e.target).get())); }); }, _removeClass: function (t, e, i) { return this._toggleClass(t, e, i, !1); }, _addClass: function (t, e, i) {return this._toggleClass(t, e, i, !0);}, _toggleClass: function (t, e, i, s) { s = 'boolean' == typeof s ? s : i; var n = 'string' == typeof t || null === t, o = { extra: n ? e : i, keys: n ? t : e, element: n ? this.element : t, add: s, }; return o.element.toggleClass(this._classes(o), s), this; }, _on: function (e, i, s) { var n, o = this; 'boolean' != typeof e && (s = i, i = e, e = !1), s ? (i = n = t(i), this.bindings = this.bindings.add(i)) : (s = i, i = this.element, n = this.widget()), t.each(s, function (s, a) { function r () { return e || o.options.disabled !== !0 && !t(this).hasClass('ui-state-disabled') ? ('string' == typeof a ? o[a] : a).apply(o, arguments) : void 0; } 'string' != typeof a && (r.guid = a.guid = a.guid || r.guid || t.guid++); var l = s.match(/^([\w:-]*)\s*(.*)$/), h = l[1] + o.eventNamespace, c = l[2]; c ? n.on(h, c, r) : i.on(h, r); }); }, _off: function (e, i) { i = (i || '').split(' '). join(this.eventNamespace + ' ') + this.eventNamespace, e.off(i). off(i), this.bindings = t( this.bindings.not(e).get()), this.focusable = t( this.focusable.not(e).get()), this.hoverable = t( this.hoverable.not(e).get()); }, _delay: function (t, e) { function i () { return ('string' == typeof t ? s[t] : t).apply(s, arguments); } var s = this; return setTimeout(i, e || 0); }, _hoverable: function (e) { this.hoverable = this.hoverable.add(e), this._on(e, { mouseenter: function (e) { this._addClass(t(e.currentTarget), null, 'ui-state-hover'); }, mouseleave: function (e) { this._removeClass(t(e.currentTarget), null, 'ui-state-hover'); }, }); }, _focusable: function (e) { this.focusable = this.focusable.add(e), this._on(e, { focusin: function (e) { this._addClass(t(e.currentTarget), null, 'ui-state-focus'); }, focusout: function (e) { this._removeClass(t(e.currentTarget), null, 'ui-state-focus'); }, }); }, _trigger: function (e, i, s) { var n, o, a = this.options[e]; if (s = s || {}, i = t.Event(i), i.type = (e === this.widgetEventPrefix ? e : this.widgetEventPrefix + e).toLowerCase(), i.target = this.element[0], o = i.originalEvent) for (n in o) n in i || (i[n] = o[n]); return this.element.trigger(i, s), !(t.isFunction(a) && a.apply(this.element[0], [i].concat(s)) === !1 || i.isDefaultPrevented()); }, }, t.each({ show: 'fadeIn', hide: 'fadeOut' }, function (e, i) { t.Widget.prototype['_' + e] = function (s, n, o) { 'string' == typeof n && (n = { effect: n }); var a, r = n ? n === !0 || 'number' == typeof n ? i : n.effect || i : e; n = n || {}, 'number' == typeof n && (n = { duration: n }), a = !t.isEmptyObject( n), n.complete = o, n.delay && s.delay(n.delay), a && t.effects && t.effects.effect[r] ? s[e](n) : r !== e && s[r] ? s[r]( n.duration, n.easing, o) : s.queue( function (i) {t(this)[e](), o && o.call(s[0]), i();}); }; }), t.widget, t.ui.keyCode = { BACKSPACE: 8, COMMA: 188, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, LEFT: 37, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SPACE: 32, TAB: 9, UP: 38, }, t.fn.extend({ uniqueId: function () { var t = 0; return function () { return this.each( function () {this.id || (this.id = 'ui-id-' + ++t);}); }; }(), removeUniqueId: function () { return this.each(function () { /^ui-id-\d+$/.test(this.id) && t(this).removeAttr('id'); }); }, }), t.ui.escapeSelector = function () { var t = /([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g; return function (e) {return e.replace(t, '\\$1');}; }(), t.ui.safeActiveElement = function (t) { var e; try {e = t.activeElement;} catch (i) {e = t.body;} return e || (e = t.body), e.nodeName || (e = t.body), e; }, t.widget('ui.tabs', { version: '1.12.1', delay: 300, options: { active: null, classes: { 'ui-tabs': 'ui-corner-all', 'ui-tabs-nav': 'ui-corner-all', 'ui-tabs-panel': 'ui-corner-bottom', 'ui-tabs-tab': 'ui-corner-top', }, collapsible: !1, event: 'click', heightStyle: 'content', hide: null, show: null, activate: null, beforeActivate: null, beforeLoad: null, load: null, }, _isLocal: function () { var t = /#.*$/; return function (e) { var i, s; i = e.href.replace(t, ''), s = location.href.replace(t, ''); try {i = decodeURIComponent(i);} catch (n) {} try {s = decodeURIComponent(s);} catch (n) {} return e.hash.length > 1 && i === s; }; }(), _create: function () { var e = this, i = this.options; this.running = !1, this._addClass('ui-tabs', 'ui-widget ui-widget-content'), this._toggleClass( 'ui-tabs-collapsible', null, i.collapsible), this._processTabs(), i.active = this._initialActive(), t.isArray( i.disabled) && (i.disabled = t.unique(i.disabled.concat( t.map(this.tabs.filter('.ui-state-disabled'), function (t) {return e.tabs.index(t);}))). sort()), this.active = this.options.active !== !1 && this.anchors.length ? this._findActive(i.active) : t(), this._refresh(), this.active.length && this.load(i.active); }, _initialActive: function () { var e = this.options.active, i = this.options.collapsible, s = location.hash.substring(1); return null === e && (s && this.tabs.each(function (i, n) { return t(n).attr('aria-controls') === s ? (e = i, !1) : void 0; }), null === e && (e = this.tabs.index( this.tabs.filter('.ui-tabs-active'))), (null === e || -1 === e) && (e = this.tabs.length ? 0 : !1)), e !== !1 && (e = this.tabs.index(this.tabs.eq(e)), -1 === e && (e = i ? !1 : 0)), !i && e === !1 && this.anchors.length && (e = 0), e; }, _getCreateEventData: function () { return { tab: this.active, panel: this.active.length ? this._getPanelForTab(this.active) : t(), }; }, _tabKeydown: function (e) { var i = t(t.ui.safeActiveElement(this.document[0])).closest('li'), s = this.tabs.index(i), n = !0; if (!this._handlePageNav(e)) { switch (e.keyCode) { case t.ui.keyCode.RIGHT: case t.ui.keyCode.DOWN: s++; break; case t.ui.keyCode.UP: case t.ui.keyCode.LEFT: n = !1, s--; break; case t.ui.keyCode.END: s = this.anchors.length - 1; break; case t.ui.keyCode.HOME: s = 0; break; case t.ui.keyCode.SPACE: return e.preventDefault(), clearTimeout( this.activating), this._activate(s), void 0; case t.ui.keyCode.ENTER: return e.preventDefault(), clearTimeout( this.activating), this._activate( s === this.options.active ? !1 : s), void 0; default: return; } e.preventDefault(), clearTimeout( this.activating), s = this._focusNextTab(s, n), e.ctrlKey || e.metaKey || (i.attr('aria-selected', 'false'), this.tabs.eq(s). attr('aria-selected', 'true'), this.activating = this._delay( function () {this.option('active', s);}, this.delay)); } }, _panelKeydown: function (e) { this._handlePageNav(e) || e.ctrlKey && e.keyCode === t.ui.keyCode.UP && (e.preventDefault(), this.active.trigger('focus')); }, _handlePageNav: function (e) { return e.altKey && e.keyCode === t.ui.keyCode.PAGE_UP ? (this._activate( this._focusNextTab(this.options.active - 1, !1)), !0) : e.altKey && e.keyCode === t.ui.keyCode.PAGE_DOWN ? (this._activate( this._focusNextTab(this.options.active + 1, !0)), !0) : void 0; }, _findNextTab: function (e, i) { function s () { return e > n && (e = 0), 0 > e && (e = n), e; } for (var n = this.tabs.length - 1; -1 !== t.inArray(s(), this.options.disabled);) e = i ? e + 1 : e - 1; return e; }, _focusNextTab: function (t, e) { return t = this._findNextTab(t, e), this.tabs.eq(t). trigger('focus'), t; }, _setOption: function (t, e) { return 'active' === t ? (this._activate(e), void 0) : (this._super( t, e), 'collapsible' === t && (this._toggleClass('ui-tabs-collapsible', null, e), e || this.options.active !== !1 || this._activate(0)), 'event' === t && this._setupEvents(e), 'heightStyle' === t && this._setupHeightStyle(e), void 0); }, _sanitizeSelector: function (t) { return t ? t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, '\\$&') : ''; }, refresh: function () { var e = this.options, i = this.tablist.children(':has(a[href])'); e.disabled = t.map(i.filter('.ui-state-disabled'), function (t) { return i.index(t); }), this._processTabs(), e.active !== !1 && this.anchors.length ? this.active.length && !t.contains(this.tablist[0], this.active[0]) ? this.tabs.length === e.disabled.length ? (e.active = !1, this.active = t()) : this._activate( this._findNextTab(Math.max(0, e.active - 1), !1)) : e.active = this.tabs.index(this.active) : (e.active = !1, this.active = t()), this._refresh(); }, _refresh: function () { this._setOptionDisabled(this.options.disabled), this._setupEvents( this.options.event), this._setupHeightStyle( this.options.heightStyle), this.tabs.not(this.active). attr({ 'aria-selected': 'false', 'aria-expanded': 'false', tabIndex: -1, }), this.panels.not(this._getPanelForTab(this.active)). hide(). attr({ 'aria-hidden': 'true' }), this.active.length ? (this.active.attr({ 'aria-selected': 'true', 'aria-expanded': 'true', tabIndex: 0, }), this._addClass(this.active, 'ui-tabs-active', 'ui-state-active'), this._getPanelForTab(this.active). show(). attr({ 'aria-hidden': 'false' })) : this.tabs.eq(0).attr('tabIndex', 0); }, _processTabs: function () { var e = this, i = this.tabs, s = this.anchors, n = this.panels; this.tablist = this._getList(). attr('role', 'tablist'), this._addClass(this.tablist, 'ui-tabs-nav', 'ui-helper-reset ui-helper-clearfix ui-widget-header'), this.tablist.on( 'mousedown' + this.eventNamespace, '> li', function (e) { t(this).is('.ui-state-disabled') && e.preventDefault(); }). on('focus' + this.eventNamespace, '.ui-tabs-anchor', function () { t(this). closest('li'). is('.ui-state-disabled') && this.blur(); }), this.tabs = this.tablist.find('> li:has(a[href])'). attr({ role: 'tab', tabIndex: -1 }), this._addClass(this.tabs, 'ui-tabs-tab', 'ui-state-default'), this.anchors = this.tabs.map( function () {return t('a', this)[0];}). attr({ role: 'presentation', tabIndex: -1 }), this._addClass( this.anchors, 'ui-tabs-anchor'), this.panels = t(), this.anchors.each( function (i, s) { var n, o, a, r = t(s).uniqueId().attr('id'), l = t(s).closest('li'), h = l.attr('aria-controls'); e._isLocal(s) ? (n = s.hash, a = n.substring(1), o = e.element.find( e._sanitizeSelector(n))) : (a = l.attr('aria-controls') || t({}).uniqueId()[0].id, n = '#' + a, o = e.element.find( n), o.length || (o = e._createPanel(a), o.insertAfter( e.panels[i - 1] || e.tablist)), o.attr('aria-live', 'polite')), o.length && (e.panels = e.panels.add(o)), h && l.data('ui-tabs-aria-controls', h), l.attr( { 'aria-controls': a, 'aria-labelledby': r }), o.attr( 'aria-labelledby', r); }), this.panels.attr('role', 'tabpanel'), this._addClass( this.panels, 'ui-tabs-panel', 'ui-widget-content'), i && (this._off(i.not(this.tabs)), this._off( s.not(this.anchors)), this._off(n.not(this.panels))); }, _getList: function () { return this.tablist || this.element.find('ol, ul').eq(0); }, _createPanel: function (e) { return t('<div>'). attr('id', e). data('ui-tabs-destroy', !0); }, _setOptionDisabled: function (e) { var i, s, n; for (t.isArray(e) && (e.length ? e.length === this.anchors.length && (e = !0) : e = !1), n = 0; s = this.tabs[n]; n++) i = t(s), e === !0 || -1 !== t.inArray(n, e) ? (i.attr('aria-disabled', 'true'), this._addClass(i, null, 'ui-state-disabled')) : (i.removeAttr('aria-disabled'), this._removeClass(i, null, 'ui-state-disabled')); this.options.disabled = e, this._toggleClass(this.widget(), this.widgetFullName + '-disabled', null, e === !0); }, _setupEvents: function (e) { var i = {}; e && t.each(e.split(' '), function (t, e) {i[e] = '_eventHandler';}), this._off( this.anchors.add(this.tabs).add(this.panels)), this._on(!0, this.anchors, { click: function (t) {t.preventDefault();} }), this._on( this.anchors, i), this._on(this.tabs, { keydown: '_tabKeydown' }), this._on(this.panels, { keydown: '_panelKeydown' }), this._focusable( this.tabs), this._hoverable(this.tabs); }, _setupHeightStyle: function (e) { var i, s = this.element.parent(); 'fill' === e ? (i = s.height(), i -= this.element.outerHeight() - this.element.height(), this.element.siblings(':visible'). each(function () { var e = t(this), s = e.css('position'); 'absolute' !== s && 'fixed' !== s && (i -= e.outerHeight(!0)); }), this.element.children(). not(this.panels). each(function () { i -= t(this). outerHeight(!0); }), this.panels.each(function () { t(this). height(Math.max(0, i - t(this).innerHeight() + t(this).height())); }).css('overflow', 'auto')) : 'auto' === e && (i = 0, this.panels.each( function () { i = Math.max(i, t(this).height('').height()); }). height(i)); }, _eventHandler: function (e) { var i = this.options, s = this.active, n = t(e.currentTarget), o = n.closest('li'), a = o[0] === s[0], r = a && i.collapsible, l = r ? t() : this._getPanelForTab(o), h = s.length ? this._getPanelForTab(s) : t(), c = { oldTab: s, oldPanel: h, newTab: r ? t() : o, newPanel: l, }; e.preventDefault(), o.hasClass('ui-state-disabled') || o.hasClass('ui-tabs-loading') || this.running || a && !i.collapsible || this._trigger('beforeActivate', e, c) === !1 || (i.active = r ? !1 : this.tabs.index(o), this.active = a ? t() : o, this.xhr && this.xhr.abort(), h.length || l.length || t.error( 'jQuery UI Tabs: Mismatching fragment identifier.'), l.length && this.load(this.tabs.index(o), e), this._toggle(e, c)); }, _toggle: function (e, i) { function s () { o.running = !1, o._trigger('activate', e, i); } function n () { o._addClass(i.newTab.closest('li'), 'ui-tabs-active', 'ui-state-active'), a.length && o.options.show ? o._show(a, o.options.show, s) : (a.show(), s()); } var o = this, a = i.newPanel, r = i.oldPanel; this.running = !0, r.length && this.options.hide ? this._hide(r, this.options.hide, function () { o._removeClass(i.oldTab.closest('li'), 'ui-tabs-active', 'ui-state-active'), n(); }) : (this._removeClass(i.oldTab.closest('li'), 'ui-tabs-active', 'ui-state-active'), r.hide(), n()), r.attr( 'aria-hidden', 'true'), i.oldTab.attr({ 'aria-selected': 'false', 'aria-expanded': 'false', }), a.length && r.length ? i.oldTab.attr('tabIndex', -1) : a.length && this.tabs.filter( function () {return 0 === t(this).attr('tabIndex');}). attr('tabIndex', -1), a.attr('aria-hidden', 'false'), i.newTab.attr({ 'aria-selected': 'true', 'aria-expanded': 'true', tabIndex: 0, }); }, _activate: function (e) { var i, s = this._findActive(e); s[0] !== this.active[0] && (s.length || (s = this.active), i = s.find( '.ui-tabs-anchor')[0], this._eventHandler( { target: i, currentTarget: i, preventDefault: t.noop })); }, _findActive: function (e) {return e === !1 ? t() : this.tabs.eq(e);}, _getIndex: function (e) { return 'string' == typeof e && (e = this.anchors.index( this.anchors.filter( '[href$=\'' + t.ui.escapeSelector(e) + '\']'))), e; }, _destroy: function () { this.xhr && this.xhr.abort(), this.tablist.removeAttr('role'). off(this.eventNamespace), this.anchors.removeAttr( 'role tabIndex').removeUniqueId(), this.tabs.add(this.panels). each(function () { t.data(this, 'ui-tabs-destroy') ? t(this). remove() : t(this). removeAttr( 'role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded'); }), this.tabs.each(function () { var e = t(this), i = e.data('ui-tabs-aria-controls'); i ? e.attr('aria-controls', i). removeData('ui-tabs-aria-controls') : e.removeAttr( 'aria-controls'); }), this.panels.show(), 'content' !== this.options.heightStyle && this.panels.css('height', ''); }, enable: function (e) { var i = this.options.disabled; i !== !1 && (void 0 === e ? i = !1 : (e = this._getIndex(e), i = t.isArray(i) ? t.map(i, function (t) {return t !== e ? t : null;}) : t.map(this.tabs, function (t, i) { return i !== e ? i : null; })), this._setOptionDisabled(i)); }, disable: function (e) { var i = this.options.disabled; if (i !== !0) { if (void 0 === e) i = !0; else { if (e = this._getIndex(e), -1 !== t.inArray(e, i)) return; i = t.isArray(i) ? t.merge([e], i).sort() : [e]; } this._setOptionDisabled(i); } }, load: function (e, i) { e = this._getIndex(e); var s = this, n = this.tabs.eq(e), o = n.find('.ui-tabs-anchor'), a = this._getPanelForTab(n), r = { tab: n, panel: a }, l = function (t, e) { 'abort' === e && s.panels.stop(!1, !0), s._removeClass(n, 'ui-tabs-loading'), a.removeAttr('aria-busy'), t === s.xhr && delete s.xhr; }; this._isLocal(o[0]) || (this.xhr = t.ajax(this._ajaxSettings(o, i, r)), this.xhr && 'canceled' !== this.xhr.statusText && (this._addClass(n, 'ui-tabs-loading'), a.attr('aria-busy', 'true'), this.xhr.done(function (t, e, n) { setTimeout( function () {a.html(t), s._trigger('load', i, r), l(n, e);}, 1); }).fail(function (t, e) {setTimeout(function () {l(t, e);}, 1);}))); }, _ajaxSettings: function (e, i, s) { var n = this; return { url: e.attr('href').replace(/#.*$/, ''), beforeSend: function (e, o) { return n._trigger('beforeLoad', i, t.extend({ jqXHR: e, ajaxSettings: o }, s)); }, }; }, _getPanelForTab: function (e) { var i = t(e).attr('aria-controls'); return this.element.find(this._sanitizeSelector('#' + i)); }, }), t.uiBackCompat !== !1 && t.widget('ui.tabs', t.ui.tabs, { _processTabs: function () { this._superApply(arguments), this._addClass(this.tabs, 'ui-tab'); }, }), t.ui.tabs; var s = 'ui-effects-', n = 'ui-effects-style', o = 'ui-effects-animated', a = t; t.effects = { effect: {} }, function (t, e) { function i (t, e, i) { var s = u[e.type] || {}; return null == t ? i || !e.def ? null : e.def : (t = s.floor ? ~~t : parseFloat(t), isNaN(t) ? e.def : s.mod ? (t + s.mod) % s.mod : 0 > t ? 0 : t > s.max ? s.max : t); } function s (i) { var s = h(), n = s._rgba = []; return i = i.toLowerCase(), f(l, function (t, o) { var a, r = o.re.exec(i), l = r && o.parse(r), h = o.space || 'rgba'; return l ? (a = s[h]( l), s[c[h].cache] = a[c[h].cache], n = s._rgba = a._rgba, !1) : e; }), n.length ? ('0,0,0,0' === n.join() && t.extend(n, o.transparent), s) : o[i]; } function n (t, e, i) { return i = (i + 1) % 1, 1 > 6 * i ? t + 6 * (e - t) * i : 1 > 2 * i ? e : 2 > 3 * i ? t + 6 * (e - t) * (2 / 3 - i) : t; } var o, a = 'backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor', r = /^([\-+])=\s*(\d+\.?\d*)/, l = [ { re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, parse: function (t) {return [t[1], t[2], t[3], t[4]];}, }, { re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, parse: function (t) { return [ 2.55 * t[1], 2.55 * t[2], 2.55 * t[3], t[4]]; }, }, { re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, parse: function (t) { return [ parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16)]; }, }, { re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, parse: function (t) { return [ parseInt(t[1] + t[1], 16), parseInt(t[2] + t[2], 16), parseInt(t[3] + t[3], 16)]; }, }, { re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, space: 'hsla', parse: function (t) { return [ t[1], t[2] / 100, t[3] / 100, t[4]]; }, }], h = t.Color = function (e, i, s, n) { return new t.Color.fn.parse(e, i, s, n); }, c = { rgba: { props: { red: { idx: 0, type: 'byte' }, green: { idx: 1, type: 'byte' }, blue: { idx: 2, type: 'byte' }, }, }, hsla: { props: { hue: { idx: 0, type: 'degrees' }, saturation: { idx: 1, type: 'percent' }, lightness: { idx: 2, type: 'percent' }, }, }, }, u = { 'byte': { floor: !0, max: 255 }, percent: { max: 1 }, degrees: { mod: 360, floor: !0 }, }, d = h.support = {}, p = t('<p>')[0], f = t.each; p.style.cssText = 'background-color:rgba(1,1,1,.5)', d.rgba = p.style.backgroundColor.indexOf( 'rgba') > -1, f(c, function (t, e) { e.cache = '_' + t, e.props.alpha = { idx: 3, type: 'percent', def: 1, }; }), h.fn = t.extend(h.prototype, { parse: function (n, a, r, l) { if (n === e) return this._rgba = [null, null, null, null], this; (n.jquery || n.nodeType) && (n = t(n).css(a), a = e); var u = this, d = t.type(n), p = this._rgba = []; return a !== e && (n = [n, a, r, l], d = 'array'), 'string' === d ? this.parse(s(n) || o._default) : 'array' === d ? (f(c.rgba.props, function (t, e) {p[e.idx] = i(n[e.idx], e);}), this) : 'object' === d ? (n instanceof h ? f(c, function (t, e) { n[e.cache] && (u[e.cache] = n[e.cache].slice()); }) : f(c, function (e, s) { var o = s.cache; f(s.props, function (t, e) { if (!u[o] && s.to) { if ('alpha' === t || null == n[t]) return; u[o] = s.to(u._rgba); } u[o][e.idx] = i(n[t], e, !0); }), u[o] && 0 > t.inArray(null, u[o].slice(0, 3)) && (u[o][3] = 1, s.from && (u._rgba = s.from(u[o]))); }), this) : e; }, is: function (t) { var i = h(t), s = !0, n = this; return f(c, function (t, o) { var a, r = i[o.cache]; return r && (a = n[o.cache] || o.to && o.to(n._rgba) || [], f(o.props, function (t, i) { return null != r[i.idx] ? s = r[i.idx] === a[i.idx] : e; })), s; }), s; }, _space: function () { var t = [], e = this; return f(c, function (i, s) {e[s.cache] && t.push(i);}), t.pop(); }, transition: function (t, e) { var s = h(t), n = s._space(), o = c[n], a = 0 === this.alpha() ? h('transparent') : this, r = a[o.cache] || o.to(a._rgba), l = r.slice(); return s = s[o.cache], f(o.props, function (t, n) { var o = n.idx, a = r[o], h = s[o], c = u[n.type] || {}; null !== h && (null === a ? l[o] = h : (c.mod && (h - a > c.mod / 2 ? a += c.mod : a - h > c.mod / 2 && (a -= c.mod)), l[o] = i((h - a) * e + a, n))); }), this[n](l); }, blend: function (e) { if (1 === this._rgba[3]) return this; var i = this._rgba.slice(), s = i.pop(), n = h(e)._rgba; return h( t.map(i, function (t, e) {return (1 - s) * n[e] + s * t;})); }, toRgbaString: function () { var e = 'rgba(', i = t.map(this._rgba, function (t, e) {return null == t ? e > 2 ? 1 : 0 : t;}); return 1 === i[3] && (i.pop(), e = 'rgb('), e + i.join() + ')'; }, toHslaString: function () { var e = 'hsla(', i = t.map(this.hsla(), function (t, e) { return null == t && (t = e > 2 ? 1 : 0), e && 3 > e && (t = Math.round(100 * t) + '%'), t; }); return 1 === i[3] && (i.pop(), e = 'hsl('), e + i.join() + ')'; }, toHexString: function (e) { var i = this._rgba.slice(), s = i.pop(); return e && i.push(~~(255 * s)), '#' + t.map(i, function (t) { return t = (t || 0).toString(16), 1 === t.length ? '0' + t : t; }).join(''); }, toString: function () { return 0 === this._rgba[3] ? 'transparent' : this.toRgbaString(); }, }), h.fn.parse.prototype = h.fn, c.hsla.to = function (t) { if (null == t[0] || null == t[1] || null == t[2]) return [ null, null, null, t[3]]; var e, i, s = t[0] / 255, n = t[1] / 255, o = t[2] / 255, a = t[3], r = Math.max(s, n, o), l = Math.min(s, n, o), h = r - l, c = r + l, u = .5 * c; return e = l === r ? 0 : s === r ? 60 * (n - o) / h + 360 : n === r ? 60 * (o - s) / h + 120 : 60 * (s - n) / h + 240, i = 0 === h ? 0 : .5 >= u ? h / c : h / (2 - c), [Math.round(e) % 360, i, u, null == a ? 1 : a]; }, c.hsla.from = function (t) { if (null == t[0] || null == t[1] || null == t[2]) return [ null, null, null, t[3]]; var e = t[0] / 360, i = t[1], s = t[2], o = t[3], a = .5 >= s ? s * (1 + i) : s + i - s * i, r = 2 * s - a; return [ Math.round(255 * n(r, a, e + 1 / 3)), Math.round(255 * n(r, a, e)), Math.round(255 * n(r, a, e - 1 / 3)), o]; }, f(c, function (s, n) { var o = n.props, a = n.cache, l = n.to, c = n.from; h.fn[s] = function (s) { if (l && !this[a] && (this[a] = l(this._rgba)), s === e) return this[a].slice(); var n, r = t.type(s), u = 'array' === r || 'object' === r ? s : arguments, d = this[a].slice(); return f(o, function (t, e) { var s = u['object' === r ? t : e.idx]; null == s && (s = d[e.idx]), d[e.idx] = i(s, e); }), c ? (n = h(c(d)), n[a] = d, n) : h(d); }, f(o, function (e, i) { h.fn[e] || (h.fn[e] = function (n) { var o, a = t.type(n), l = 'alpha' === e ? this._hsla ? 'hsla' : 'rgba' : s, h = this[l](), c = h[i.idx]; return 'undefined' === a ? c : ('function' === a && (n = n.call(this, c), a = t.type(n)), null == n && i.empty ? this : ('string' === a && (o = r.exec(n), o && (n = c + parseFloat(o[2]) * ('+' === o[1] ? 1 : -1))), h[i.idx] = n, this[l]( h))); }); }); }), h.hook = function (e) { var i = e.split(' '); f(i, function (e, i) { t.cssHooks[i] = { set: function (e, n) { var o, a, r = ''; if ('transparent' !== n && ('string' !== t.type(n) || (o = s(n)))) { if (n = h(o || n), !d.rgba && 1 !== n._rgba[3]) { for (a = 'backgroundColor' === i ? e.parentNode : e; ("" === r || "transparent" === r) && a && a.style;) try { r = t.css(a, 'backgroundColor'), a = a.parentNode; } catch (l) {} n = n.blend( r && 'transparent' !== r ? r : '_default'); } n = n.toRgbaString(); } try {e.style[i] = n;} catch (l) {} }, }, t.fx.step[i] = function (e) { e.colorInit || (e.start = h(e.elem, i), e.end = h( e.end), e.colorInit = !0), t.cssHooks[i].set(e.elem, e.start.transition(e.end, e.pos)); }; }); }, h.hook(a), t.cssHooks.borderColor = { expand: function (t) { var e = {}; return f(['Top', 'Right', 'Bottom', 'Left'], function (i, s) {e['border' + s + 'Color'] = t;}), e; }, }, o = t.Color.names = { aqua: '#00ffff', black: '#000000', blue: '#0000ff', fuchsia: '#ff00ff', gray: '#808080', green: '#008000', lime: '#00ff00', maroon: '#800000', navy: '#000080', olive: '#808000', purple: '#800080', red: '#ff0000', silver: '#c0c0c0', teal: '#008080', white: '#ffffff', yellow: '#ffff00', transparent: [null, null, null, 0], _default: '#ffffff', }; }(a), function () { function e (e) { var i, s, n = e.ownerDocument.defaultView ? e.ownerDocument.defaultView.getComputedStyle(e, null) : e.currentStyle, o = {}; if (n && n.length && n[0] && n[n[0]]) for (s = n.length; s--;) i = n[s], 'string' == typeof n[i] && (o[t.camelCase(i)] = n[i]); else for (i in n) 'string' == typeof n[i] && (o[i] = n[i]); return o; } function i (e, i) { var s, o, a = {}; for (s in i) o = i[s], e[s] !== o && (n[s] || (t.fx.step[s] || !isNaN(parseFloat(o))) && (a[s] = o)); return a; } var s = ['add', 'remove', 'toggle'], n = { border: 1, borderBottom: 1, borderColor: 1, borderLeft: 1, borderRight: 1, borderTop: 1, borderWidth: 1, margin: 1, padding: 1, }; t.each([ 'borderLeftStyle', 'borderRightStyle', 'borderBottomStyle', 'borderTopStyle'], function (e, i) { t.fx.step[i] = function (t) { ('none' !== t.end && !t.setAttr || 1 === t.pos && !t.setAttr) && (a.style(t.elem, i, t.end), t.setAttr = !0); }; }), t.fn.addBack || (t.fn.addBack = function (t) { return this.add( null == t ? this.prevObject : this.prevObject.filter(t)); }), t.effects.animateClass = function (n, o, a, r) { var l = t.speed(o, a, r); return this.queue(function () { var o, a = t(this), r = a.attr('class') || '', h = l.children ? a.find('*').addBack() : a; h = h.map(function () { var i = t(this); return { el: i, start: e(this) }; }), o = function () { t.each(s, function (t, e) {n[e] && a[e + 'Class'](n[e]);}); }, o(), h = h.map(function () { return this.end = e(this.el[0]), this.diff = i(this.start, this.end), this; }), a.attr('class', r), h = h.map(function () { var e = this, i = t.Deferred(), s = t.extend({}, l, { queue: !1, complete: function () {i.resolve(e);} }); return this.el.animate(this.diff, s), i.promise(); }), t.when.apply(t, h.get()). done(function () { o(), t.each(arguments, function () { var e = this.el; t.each(this.diff, function (t) {e.css(t, '');}); }), l.complete.call(a[0]); }); }); }, t.fn.extend({ addClass: function (e) { return function (i, s, n, o) { return s ? t.effects.animateClass.call(this, { add: i }, s, n, o) : e.apply(this, arguments); }; }(t.fn.addClass), removeClass: function (e) { return function (i, s, n, o) { return arguments.length > 1 ? t.effects.animateClass.call(this, { remove: i }, s, n, o) : e.apply(this, arguments); }; }(t.fn.removeClass), toggleClass: function (e) { return function (i, s, n, o, a) { return 'boolean' == typeof s || void 0 === s ? n ? t.effects.animateClass.call(this, s ? { add: i } : { remove: i }, n, o, a) : e.apply( this, arguments) : t.effects.animateClass.call(this, { toggle: i }, s, n, o); }; }(t.fn.toggleClass), switchClass: function (e, i, s, n, o) { return t.effects.animateClass.call(this, { add: i, remove: e }, s, n, o); }, }); }(), function () { function e (e, i, s, n) { return t.isPlainObject(e) && (i = e, e = e.effect), e = { effect: e }, null == i && (i = {}), t.isFunction(i) && (n = i, s = null, i = {}), ('number' == typeof i || t.fx.speeds[i]) && (n = s, s = i, i = {}), t.isFunction(s) && (n = s, s = null), i && t.extend(e, i), s = s || i.duration, e.duration = t.fx.off ? 0 : 'number' == typeof s ? s : s in t.fx.speeds ? t.fx.speeds[s] : t.fx.speeds._default, e.complete = n || i.complete, e; } function i (e) { return !e || 'number' == typeof e || t.fx.speeds[e] ? !0 : 'string' != typeof e || t.effects.effect[e] ? t.isFunction(e) ? !0 : 'object' != typeof e || e.effect ? !1 : !0 : !0; } function a (t, e) { var i = e.outerWidth(), s = e.outerHeight(), n = /^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/, o = n.exec(t) || ['', 0, i, s, 0]; return { top: parseFloat(o[1]) || 0, right: 'auto' === o[2] ? i : parseFloat(o[2]), bottom: 'auto' === o[3] ? s : parseFloat(o[3]), left: parseFloat(o[4]) || 0, }; } t.expr && t.expr.filters && t.expr.filters.animated && (t.expr.filters.animated = function (e) { return function (i) { return !!t(i).data(o) || e(i); }; }(t.expr.filters.animated)), t.uiBackCompat !== !1 && t.extend(t.effects, { save: function (t, e) { for (var i = 0, n = e.length; n > i; i++) null !== e[i] && t.data(s + e[i], t[0].style[e[i]]); }, restore: function (t, e) { for (var i, n = 0, o = e.length; o > n; n++) null !== e[n] && (i = t.data(s + e[n]), t.css(e[n], i)); }, setMode: function (t, e) { return 'toggle' === e && (e = t.is(':hidden') ? 'show' : 'hide'), e; }, createWrapper: function (e) { if (e.parent(). is('.ui-effects-wrapper')) return e.parent(); var i = { width: e.outerWidth(!0), height: e.outerHeight(!0), 'float': e.css('float'), }, s = t('<div></div>'). addClass('ui-effects-wrapper'). css({ fontSize: '100%', background: 'transparent', border: 'none', margin: 0, padding: 0, }), n = { width: e.width(), height: e.height() }, o = document.activeElement; try {o.id;} catch (a) {o = document.body;} return e.wrap(s), (e[0] === o || t.contains(e[0], o)) && t(o).trigger('focus'), s = e.parent(), 'static' === e.css('position') ? (s.css({ position: 'relative' }), e.css( { position: 'relative' })) : (t.extend(i, { position: e.css('position'), zIndex: e.css('z-index'), }), t.each(['top', 'left', 'bottom', 'right'], function (t, s) { i[s] = e.css(s), isNaN(parseInt(i[s], 10)) && (i[s] = 'auto'); }), e.css({ position: 'relative', top: 0, left: 0, right: 'auto', bottom: 'auto', })), e.css(n), s.css(i).show(); }, removeWrapper: function (e) { var i = document.activeElement; return e.parent().is('.ui-effects-wrapper') && (e.parent().replaceWith(e), (e[0] === i || t.contains(e[0], i)) && t(i).trigger('focus')), e; }, }), t.extend(t.effects, { version: '1.12.1', define: function (e, i, s) { return s || (s = i, i = 'effect'), t.effects.effect[e] = s, t.effects.effect[e].mode = i, s; }, scaledDimensions: function (t, e, i) { if (0 === e) return { height: 0, width: 0, outerHeight: 0, outerWidth: 0, }; var s = 'horizontal' !== i ? (e || 100) / 100 : 1, n = 'vertical' !== i ? (e || 100) / 100 : 1; return { height: t.height() * n, width: t.width() * s, outerHeight: t.outerHeight() * n, outerWidth: t.outerWidth() * s, }; }, clipToBox: function (t) { return { width: t.clip.right - t.clip.left, height: t.clip.bottom - t.clip.top, left: t.clip.left, top: t.clip.top, }; }, unshift: function (t, e, i) { var s = t.queue(); e > 1 && s.splice.apply(s, [1, 0].concat(s.splice(e, i))), t.dequeue(); }, saveStyle: function (t) {t.data(n, t[0].style.cssText);}, restoreStyle: function (t) { t[0].style.cssText = t.data(n) || '', t.removeData(n); }, mode: function (t, e) { var i = t.is(':hidden'); return 'toggle' === e && (e = i ? 'show' : 'hide'), (i ? 'hide' === e : 'show' === e) && (e = 'none'), e; }, getBaseline: function (t, e) { var i, s; switch (t[0]) { case'top': i = 0; break; case'middle': i = .5; break; case'bottom': i = 1; break; default: i = t[0] / e.height; } switch (t[1]) { case'left': s = 0; break; case'center': s = .5; break; case'right': s = 1; break; default: s = t[1] / e.width; } return { x: s, y: i }; }, createPlaceholder: function (e) { var i, n = e.css('position'), o = e.position(); return e.css({ marginTop: e.css('marginTop'), marginBottom: e.css('marginBottom'), marginLeft: e.css('marginLeft'), marginRight: e.css('marginRight'), }). outerWidth(e.outerWidth()). outerHeight(e.outerHeight()), /^(static|relative)/.test( n) && (n = 'absolute', i = t('<' + e[0].nodeName + '>'). insertAfter(e). css({ display: /^(inline|ruby)/.test(e.css('display')) ? 'inline-block' : 'block', visibility: 'hidden', marginTop: e.css('marginTop'), marginBottom: e.css('marginBottom'), marginLeft: e.css('marginLeft'), marginRight: e.css('marginRight'), 'float': e.css('float'), }). outerWidth(e.outerWidth()). outerHeight(e.outerHeight()). addClass('ui-effects-placeholder'), e.data( s + 'placeholder', i)), e.css( { position: n, left: o.left, top: o.top }), i; }, removePlaceholder: function (t) { var e = s + 'placeholder', i = t.data(e); i && (i.remove(), t.removeData(e)); }, cleanUp: function (e) { t.effects.restoreStyle(e), t.effects.removePlaceholder(e); }, setTransition: function (e, i, s, n) { return n = n || {}, t.each(i, function (t, i) { var o = e.cssUnit(i); o[0] > 0 && (n[i] = o[0] * s + o[1]); }), n; }, }), t.fn.extend({ effect: function () { function i (e) { function i () { l.removeData(o), t.effects.cleanUp(l), 'hide' === s.mode && l.hide(), r(); } function r () { t.isFunction(h) && h.call(l[0]), t.isFunction(e) && e(); } var l = t(this); s.mode = u.shift(), t.uiBackCompat === !1 || a ? 'none' === s.mode ? (l[c](), r()) : n.call(l[0], s, i) : (l.is( ':hidden') ? 'hide' === c : 'show' === c) ? (l[c](), r()) : n.call(l[0], s, r); } var s = e.apply(this, arguments), n = t.effects.effect[s.effect], a = n.mode, r = s.queue, l = r || 'fx', h = s.complete, c = s.mode, u = [], d = function (e) { var i = t(this), s = t.effects.mode(i, c) || a; i.data(o, !0), u.push(s), a && ('show' === s || s === a && 'hide' === s) && i.show(), a && 'none' === s || t.effects.saveStyle(i), t.isFunction(e) && e(); }; return t.fx.off || !n ? c ? this[c](s.duration, h) : this.each( function () {h && h.call(this);}) : r === !1 ? this.each(d). each(i) : this.queue(l, d).queue(l, i); }, show: function (t) { return function (s) { if (i(s)) return t.apply(this, arguments); var n = e.apply(this, arguments); return n.mode = 'show', this.effect.call(this, n); }; }(t.fn.show), hide: function (t) { return function (s) { if (i(s)) return t.apply(this, arguments); var n = e.apply(this, arguments); return n.mode = 'hide', this.effect.call(this, n); }; }(t.fn.hide), toggle: function (t) { return function (s) { if (i(s) || 'boolean' == typeof s) return t.apply(this, arguments); var n = e.apply(this, arguments); return n.mode = 'toggle', this.effect.call(this, n); }; }(t.fn.toggle), cssUnit: function (e) { var i = this.css(e), s = []; return t.each(['em', 'px', '%', 'pt'], function (t, e) { i.indexOf(e) > 0 && (s = [parseFloat(i), e]); }), s; }, cssClip: function (t) { return t ? this.css('clip', 'rect(' + t.top + 'px ' + t.right + 'px ' + t.bottom + 'px ' + t.left + 'px)') : a(this.css('clip'), this); }, transfer: function (e, i) { var s = t(this), n = t(e.to), o = 'fixed' === n.css('position'), a = t('body'), r = o ? a.scrollTop() : 0, l = o ? a.scrollLeft() : 0, h = n.offset(), c = { top: h.top - r, left: h.left - l, height: n.innerHeight(), width: n.innerWidth(), }, u = s.offset(), d = t('<div class=\'ui-effects-transfer\'></div>'). appendTo('body'). addClass(e.className). css({ top: u.top - r, left: u.left - l, height: s.innerHeight(), width: s.innerWidth(), position: o ? 'fixed' : 'absolute', }). animate(c, e.duration, e.easing, function () {d.remove(), t.isFunction(i) && i();}); }, }), t.fx.step.clip = function (e) { e.clipInit || (e.start = t(e.elem).cssClip(), 'string' == typeof e.end && (e.end = a(e.end, e.elem)), e.clipInit = !0), t(e.elem). cssClip({ top: e.pos * (e.end.top - e.start.top) + e.start.top, right: e.pos * (e.end.right - e.start.right) + e.start.right, bottom: e.pos * (e.end.bottom - e.start.bottom) + e.start.bottom, left: e.pos * (e.end.left - e.start.left) + e.start.left, }); }; }(), function () { var e = {}; t.each(['Quad', 'Cubic', 'Quart', 'Quint', 'Expo'], function (t, i) { e[i] = function (e) { return Math.pow(e, t + 2); }; }), t.extend(e, { Sine: function (t) {return 1 - Math.cos(t * Math.PI / 2);}, Circ: function (t) {return 1 - Math.sqrt(1 - t * t);}, Elastic: function (t) { return 0 === t || 1 === t ? t : -Math.pow(2, 8 * (t - 1)) * Math.sin((80 * (t - 1) - 7.5) * Math.PI / 15); }, Back: function (t) {return t * t * (3 * t - 2);}, Bounce: function (t) { for (var e, i = 4; ((e = Math.pow(2, --i)) - 1) / 11 > t;) ; return 1 / Math.pow(4, 3 - i) - 7.5625 * Math.pow((3 * e - 2) / 22 - t, 2); }, }), t.each(e, function (e, i) { t.easing['easeIn' + e] = i, t.easing['easeOut' + e] = function (t) {return 1 - i(1 - t);}, t.easing['easeInOut' + e] = function (t) { return .5 > t ? i(2 * t) / 2 : 1 - i(-2 * t + 2) / 2; }; }); }(), t.effects, t.effects.define('fade', 'toggle', function (e, i) { var s = 'show' === e.mode; t(this). css('opacity', s ? 0 : 1). animate({ opacity: s ? 1 : 0 }, { queue: !1, duration: e.duration, easing: e.easing, complete: i, }); }), t.effects.define('slide', 'show', function (e, i) { var s, n, o = t(this), a = { up: ['bottom', 'top'], down: ['top', 'bottom'], left: ['right', 'left'], right: ['left', 'right'], }, r = e.mode, l = e.direction || 'left', h = 'up' === l || 'down' === l ? 'top' : 'left', c = 'up' === l || 'left' === l, u = e.distance || o['top' === h ? 'outerHeight' : 'outerWidth'](!0), d = {}; t.effects.createPlaceholder( o), s = o.cssClip(), n = o.position()[h], d[h] = (c ? -1 : 1) * u + n, d.clip = o.cssClip(), d.clip[a[l][1]] = d.clip[a[l][0]], 'show' === r && (o.cssClip(d.clip), o.css(h, d[h]), d.clip = s, d[h] = n), o.animate(d, { queue: !1, duration: e.duration, easing: e.easing, complete: i }); }); }); window.SEMICOLON_tabsInit = function ($tabsEl) { $tabsEl = $tabsEl.filter(':not(.customjs)'); if ($tabsEl.length < 1) { return true; } $tabsEl.each(function () { let element = $(this), elAction = element.attr('data-action') || 'click', elSpeed = element.attr('data-speed') || 400, elActive = element.attr('data-active') || 1; elActive = elActive - 1; let windowHash = window.location.hash; if ($(windowHash).length > 0 && element.find(windowHash).length > 0) { elActive = $(windowHash).index(); } element.tabs({ event: elAction, active: Number(elActive), show: { effect: 'fade', duration: Number(elSpeed), }, activate: function (event, ui) { $(ui.newPanel).find('.flexslider .slide').resize(); }, }); SEMICOLON_tabsResponsive(element); SEMICOLON_tabsResponsiveResizeInit(element); $(window).on('scwWindowResize', function () { SEMICOLON_tabsResponsiveResizeInit(element); }); }); }; window.SEMICOLON_tabsResponsive = function ($tabsEl) { $tabsEl = $tabsEl.filter('.tabs-responsive'); if ($tabsEl.length < 1) { return true; } $tabsEl.each(function () { let element = $(this), elementNav = element.find('.tab-nav'), elementContent = element.find('.tab-container'); elementNav.children('li').each(function () { let navEl = $(this), navElAnchor = navEl.children('a'), navElTarget = navElAnchor.attr('href'), navElContent = navElAnchor.html(); elementContent.find(navElTarget). before( '<div class="accordion-header d-none"><div class="accordion-icon"><i class="accordion-closed icon-ok-circle"></i><i class="accordion-open icon-remove-circle"></i></div><div class="accordion-title">' + navElContent + '</div></div>'); }); }); }; window.SEMICOLON_tabsResponsiveResizeInit = function ($tabsEl) { let $body = $('body'); $tabsEl = $tabsEl.filter('.tabs-responsive'); if ($tabsEl.length < 1) { return true; } $tabsEl.each(function () { let element = $(this), elActive = element.tabs('option', 'active') + 1, elementAccStyle = element.attr('data-accordion-style'); if ($body.hasClass('device-sm') || $body.hasClass('device-xs')) { element.find('.tab-nav').addClass('d-none'); element.find('.tab-container'). addClass('accordion ' + elementAccStyle). attr('data-active', elActive); element.find('.tab-content').addClass('accordion-content'); element.find('.accordion-header').removeClass('d-none'); SEMICOLON.widget.accordions({ 'parent': element }); } else if ($body.hasClass('device-md') || $body.hasClass('device-lg') || $body.hasClass('device-xl')) { element.find('.tab-nav').removeClass('d-none'); element.find('.tab-container'). removeClass('accordion ' + elementAccStyle). attr('data-active', ''); elActive = element.find('.acctitlec').next('.tab-content').index(); element.find('.tab-content').removeClass('accordion-content'); element.find('.accordion-header').addClass('d-none'); element.tabs('refresh'); if (elActive > 0) { element.tabs('option', 'active', ((elActive - 1) / 2)); } } }); }; /*! Morphext - v2.4.7 - 2016-11-04 */ !function (a) { 'use strict'; function b (b, c) { this.element = a(b), this.settings = a.extend({}, d, c), this._defaults = d, this._init(); } var c = 'Morphext', d = { animation: 'bounceIn', separator: ',', speed: 2e3, complete: a.noop, }; b.prototype = { _init: function () { var b = this; this.phrases = [], this.element.addClass('morphext'), a.each( this.element.text().split(this.settings.separator), function (c, d) { b.phrases.push(a.trim(d)); }), this.index = -1, this.animate(), this.start(); }, animate: function () { this.index = ++this.index % this.phrases.length, this.element[0].innerHTML = '<span class="animated ' + this.settings.animation + '">' + this.phrases[this.index] + '</span>', a.isFunction(this.settings.complete) && this.settings.complete.call(this); }, start: function () { var a = this; this._interval = setInterval(function () {a.animate();}, this.settings.speed); }, stop: function () {this._interval = clearInterval(this._interval);}, }, a.fn[c] = function (d) { return this.each(function () { a.data(this, 'plugin_' + c) || a.data(this, 'plugin_' + c, new b(this, d)); }); }; }(jQuery); /*! * * typed.js - A JavaScript Typing Animation Library * Author: Matt Boldt <[email protected]> * Version: v2.0.11 * Url: https://github.com/mattboldt/typed.js * License(s): MIT * */ (function (t, e) { 'object' == typeof exports && 'object' == typeof module ? module.exports = e() : 'function' == typeof define && define.amd ? define([], e) : 'object' == typeof exports ? exports.Typed = e() : t.Typed = e(); })(this, function () { return function (t) { function e (n) { if (s[n]) return s[n].exports; var i = s[n] = { exports: {}, id: n, loaded: !1 }; return t[n].call(i.exports, i, i.exports, e), i.loaded = !0, i.exports; } var s = {}; return e.m = t, e.c = s, e.p = '', e(0); }([ function (t, e, s) { 'use strict'; function n (t, e) { if (!(t instanceof e)) throw new TypeError( 'Cannot call a class as a function'); } Object.defineProperty(e, '__esModule', { value: !0 }); var i = function () { function t (t, e) { for (var s = 0; s < e.length; s++) { var n = e[s]; n.enumerable = n.enumerable || !1, n.configurable = !0, 'value' in n && (n.writable = !0), Object.defineProperty(t, n.key, n); } } return function (e, s, n) { return s && t(e.prototype, s), n && t(e, n), e; }; }(), r = s(1), o = s(3), a = function () { function t (e, s) { n(this, t), r.initializer.load(this, s, e), this.begin(); } return i(t, [ { key: 'toggle', value: function () { this.pause.status ? this.start() : this.stop(); }, }, { key: 'stop', value: function () { this.typingComplete || this.pause.status || (this.toggleBlinking( !0), this.pause.status = !0, this.options.onStop( this.arrayPos, this)); }, }, { key: 'start', value: function () { this.typingComplete || this.pause.status && (this.pause.status = !1, this.pause.typewrite ? this.typewrite(this.pause.curString, this.pause.curStrPos) : this.backspace(this.pause.curString, this.pause.curStrPos), this.options.onStart( this.arrayPos, this)); }, }, { key: 'destroy', value: function () { this.reset(!1), this.options.onDestroy(this); }, }, { key: 'reset', value: function () { var t = arguments.length <= 0 || void 0 === arguments[0] || arguments[0]; clearInterval(this.timeout), this.replaceText( ''), this.cursor && this.cursor.parentNode && (this.cursor.parentNode.removeChild( this.cursor), this.cursor = null), this.strPos = 0, this.arrayPos = 0, this.curLoop = 0, t && (this.insertCursor(), this.options.onReset( this), this.begin()); }, }, { key: 'begin', value: function () { var t = this; this.options.onBegin( this), this.typingComplete = !1, this.shuffleStringsIfNeeded( this), this.insertCursor(), this.bindInputFocusEvents && this.bindFocusEvents(), this.timeout = setTimeout( function () { t.currentElContent && 0 !== t.currentElContent.length ? t.backspace(t.currentElContent, t.currentElContent.length) : t.typewrite( t.strings[t.sequence[t.arrayPos]], t.strPos); }, this.startDelay); }, }, { key: 'typewrite', value: function (t, e) { var s = this; this.fadeOut && this.el.classList.contains(this.fadeOutClass) && (this.el.classList.remove( this.fadeOutClass), this.cursor && this.cursor.classList.remove(this.fadeOutClass)); var n = this.humanizer(this.typeSpeed), i = 1; return this.pause.status === !0 ? void this.setPauseStatus(t, e, !0) : void (this.timeout = setTimeout(function () { e = o.htmlParser.typeHtmlChars(t, e, s); var n = 0, r = t.substr(e); if ('^' === r.charAt(0) && /^\^\d+/.test(r)) { var a = 1; r = /\d+/.exec( r)[0], a += r.length, n = parseInt( r), s.temporaryPause = !0, s.options.onTypingPaused( s.arrayPos, s), t = t.substring(0, e) + t.substring( e + a), s.toggleBlinking(!0); } if ('`' === r.charAt(0)) { for (; "`" !== t.substr(e + i). charAt(0) && (i++, !(e + i > t.length));) ; var u = t.substring(0, e), l = t.substring(u.length + 1, e + i), c = t.substring(e + i + 1); t = u + l + c, i--; } s.timeout = setTimeout(function () { s.toggleBlinking(!1), e >= t.length ? s.doneTyping(t, e) : s.keepTyping(t, e, i), s.temporaryPause && (s.temporaryPause = !1, s.options.onTypingResumed( s.arrayPos, s)); }, n); }, n)); }, }, { key: 'keepTyping', value: function (t, e, s) { 0 === e && (this.toggleBlinking( !1), this.options.preStringTyped(this.arrayPos, this)), e += s; var n = t.substr(0, e); this.replaceText(n), this.typewrite(t, e); }, }, { key: 'doneTyping', value: function (t, e) { var s = this; this.options.onStringTyped(this.arrayPos, this), this.toggleBlinking( !0), this.arrayPos === this.strings.length - 1 && (this.complete(), this.loop === !1 || this.curLoop === this.loopCount) || (this.timeout = setTimeout( function () {s.backspace(t, e);}, this.backDelay)); }, }, { key: 'backspace', value: function (t, e) { var s = this; if (this.pause.status === !0) return void this.setPauseStatus(t, e, !0); if (this.fadeOut) return this.initFadeOut(); this.toggleBlinking(!1); var n = this.humanizer(this.backSpeed); this.timeout = setTimeout(function () { e = o.htmlParser.backSpaceHtmlChars(t, e, s); var n = t.substr(0, e); if (s.replaceText(n), s.smartBackspace) { var i = s.strings[s.arrayPos + 1]; i && n === i.substr(0, e) ? s.stopNum = e : s.stopNum = 0; } e > s.stopNum ? (e--, s.backspace(t, e)) : e <= s.stopNum && (s.arrayPos++, s.arrayPos === s.strings.length ? (s.arrayPos = 0, s.options.onLastStringBackspaced(), s.shuffleStringsIfNeeded(), s.begin()) : s.typewrite( s.strings[s.sequence[s.arrayPos]], e)); }, n); }, }, { key: 'complete', value: function () { this.options.onComplete(this), this.loop ? this.curLoop++ : this.typingComplete = !0; }, }, { key: 'setPauseStatus', value: function ( t, e, s) {this.pause.typewrite = s, this.pause.curString = t, this.pause.curStrPos = e;}, }, { key: 'toggleBlinking', value: function (t) { this.cursor && (this.pause.status || this.cursorBlinking !== t && (this.cursorBlinking = t, t ? this.cursor.classList.add( 'typed-cursor--blink') : this.cursor.classList.remove( 'typed-cursor--blink'))); }, }, { key: 'humanizer', value: function (t) { return Math.round(Math.random() * t / 2) + t; }, }, { key: 'shuffleStringsIfNeeded', value: function () { this.shuffle && (this.sequence = this.sequence.sort( function () {return Math.random() - .5;})); }, }, { key: 'initFadeOut', value: function () { var t = this; return this.el.className += ' ' + this.fadeOutClass, this.cursor && (this.cursor.className += ' ' + this.fadeOutClass), setTimeout(function () { t.arrayPos++, t.replaceText( ''), t.strings.length > t.arrayPos ? t.typewrite( t.strings[t.sequence[t.arrayPos]], 0) : (t.typewrite(t.strings[0], 0), t.arrayPos = 0); }, this.fadeOutDelay); }, }, { key: 'replaceText', value: function (t) { this.attr ? this.el.setAttribute(this.attr, t) : this.isInput ? this.el.value = t : 'html' === this.contentType ? this.el.innerHTML = t : this.el.textContent = t; }, }, { key: 'bindFocusEvents', value: function () { var t = this; this.isInput && (this.el.addEventListener('focus', function (e) {t.stop();}), this.el.addEventListener( 'blur', function (e) { t.el.value && 0 !== t.el.value.length || t.start(); })); }, }, { key: 'insertCursor', value: function () { this.showCursor && (this.cursor || (this.cursor = document.createElement( 'span'), this.cursor.className = 'typed-cursor', this.cursor.innerHTML = this.cursorChar, this.el.parentNode && this.el.parentNode.insertBefore(this.cursor, this.el.nextSibling))); }, }]), t; }(); e['default'] = a, t.exports = e['default']; }, function (t, e, s) { 'use strict'; function n (t) {return t && t.__esModule ? t : { 'default': t };} function i (t, e) { if (!(t instanceof e)) throw new TypeError( 'Cannot call a class as a function'); } Object.defineProperty(e, '__esModule', { value: !0 }); var r = Object.assign || function (t) { for (var e = 1; e < arguments.length; e++) { var s = arguments[e]; for (var n in s) Object.prototype.hasOwnProperty.call(s, n) && (t[n] = s[n]); } return t; }, o = function () { function t (t, e) { for (var s = 0; s < e.length; s++) { var n = e[s]; n.enumerable = n.enumerable || !1, n.configurable = !0, 'value' in n && (n.writable = !0), Object.defineProperty(t, n.key, n); } } return function (e, s, n) { return s && t(e.prototype, s), n && t(e, n), e; }; }(), a = s(2), u = n(a), l = function () { function t () {i(this, t);} return o(t, [ { key: 'load', value: function (t, e, s) { if ('string' == typeof s ? t.el = document.querySelector(s) : t.el = s, t.options = r({}, u['default'], e), t.isInput = 'input' === t.el.tagName.toLowerCase(), t.attr = t.options.attr, t.bindInputFocusEvents = t.options.bindInputFocusEvents, t.showCursor = !t.isInput && t.options.showCursor, t.cursorChar = t.options.cursorChar, t.cursorBlinking = !0, t.elContent = t.attr ? t.el.getAttribute(t.attr) : t.el.textContent, t.contentType = t.options.contentType, t.typeSpeed = t.options.typeSpeed, t.startDelay = t.options.startDelay, t.backSpeed = t.options.backSpeed, t.smartBackspace = t.options.smartBackspace, t.backDelay = t.options.backDelay, t.fadeOut = t.options.fadeOut, t.fadeOutClass = t.options.fadeOutClass, t.fadeOutDelay = t.options.fadeOutDelay, t.isPaused = !1, t.strings = t.options.strings.map( function (t) {return t.trim();}), 'string' == typeof t.options.stringsElement ? t.stringsElement = document.querySelector( t.options.stringsElement) : t.stringsElement = t.options.stringsElement, t.stringsElement) { t.strings = [], t.stringsElement.style.display = 'none'; var n = Array.prototype.slice.apply( t.stringsElement.children), i = n.length; if (i) for (var o = 0; o < i; o += 1) { var a = n[o]; t.strings.push(a.innerHTML.trim()); } } t.strPos = 0, t.arrayPos = 0, t.stopNum = 0, t.loop = t.options.loop, t.loopCount = t.options.loopCount, t.curLoop = 0, t.shuffle = t.options.shuffle, t.sequence = [], t.pause = { status: !1, typewrite: !0, curString: '', curStrPos: 0, }, t.typingComplete = !1; for (var o in t.strings) t.sequence[o] = o; t.currentElContent = this.getCurrentElContent( t), t.autoInsertCss = t.options.autoInsertCss, this.appendAnimationCss( t); }, }, { key: 'getCurrentElContent', value: function (t) { var e = ''; return e = t.attr ? t.el.getAttribute(t.attr) : t.isInput ? t.el.value : 'html' === t.contentType ? t.el.innerHTML : t.el.textContent; }, }, { key: 'appendAnimationCss', value: function (t) { var e = 'data-typed-js-css'; if (t.autoInsertCss && (t.showCursor || t.fadeOut) && !document.querySelector('[' + e + ']')) { var s = document.createElement('style'); s.type = 'text/css', s.setAttribute(e, !0); var n = ''; t.showCursor && (n += '\n .typed-cursor{\n opacity: 1;\n }\n .typed-cursor.typed-cursor--blink{\n animation: typedjsBlink 0.7s infinite;\n -webkit-animation: typedjsBlink 0.7s infinite;\n animation: typedjsBlink 0.7s infinite;\n }\n @keyframes typedjsBlink{\n 50% { opacity: 0.0; }\n }\n @-webkit-keyframes typedjsBlink{\n 0% { opacity: 1; }\n 50% { opacity: 0.0; }\n 100% { opacity: 1; }\n }\n '), t.fadeOut && (n += '\n .typed-fade-out{\n opacity: 0;\n transition: opacity .25s;\n }\n .typed-cursor.typed-cursor--blink.typed-fade-out{\n -webkit-animation: 0;\n animation: 0;\n }\n '), 0 !== s.length && (s.innerHTML = n, document.body.appendChild(s)); } }, }]), t; }(); e['default'] = l; var c = new l; e.initializer = c; }, function (t, e) { 'use strict'; Object.defineProperty(e, '__esModule', { value: !0 }); var s = { strings: [ 'These are the default values...', 'You know what you should do?', 'Use your own!', 'Have a great day!'], stringsElement: null, typeSpeed: 0, startDelay: 0, backSpeed: 0, smartBackspace: !0, shuffle: !1, backDelay: 700, fadeOut: !1, fadeOutClass: 'typed-fade-out', fadeOutDelay: 500, loop: !1, loopCount: 1 / 0, showCursor: !0, cursorChar: '|', autoInsertCss: !0, attr: null, bindInputFocusEvents: !1, contentType: 'html', onBegin: function (t) {}, onComplete: function (t) {}, preStringTyped: function (t, e) {}, onStringTyped: function (t, e) {}, onLastStringBackspaced: function (t) {}, onTypingPaused: function (t, e) {}, onTypingResumed: function (t, e) {}, onReset: function (t) {}, onStop: function (t, e) {}, onStart: function (t, e) {}, onDestroy: function (t) {}, }; e['default'] = s, t.exports = e['default']; }, function (t, e) { 'use strict'; function s (t, e) { if (!(t instanceof e)) throw new TypeError( 'Cannot call a class as a function'); } Object.defineProperty(e, '__esModule', { value: !0 }); var n = function () { function t (t, e) { for (var s = 0; s < e.length; s++) { var n = e[s]; n.enumerable = n.enumerable || !1, n.configurable = !0, 'value' in n && (n.writable = !0), Object.defineProperty(t, n.key, n); } } return function (e, s, n) { return s && t(e.prototype, s), n && t(e, n), e; }; }(), i = function () { function t () {s(this, t);} return n(t, [ { key: 'typeHtmlChars', value: function (t, e, s) { if ('html' !== s.contentType) return e; var n = t.substr(e).charAt(0); if ('<' === n || '&' === n) { var i = ''; for (i = '<' === n ? '>' : ';'; t.substr(e + 1). charAt(0) !== i && (e++, !(e + 1 > t.length));) ; e++; } return e; }, }, { key: 'backSpaceHtmlChars', value: function (t, e, s) { if ('html' !== s.contentType) return e; var n = t.substr(e).charAt(0); if ('>' === n || ';' === n) { var i = ''; for (i = '>' === n ? '<' : '&'; t.substr(e - 1). charAt(0) !== i && (e--, !(e < 0));) ; e--; } return e; }, }]), t; }(); e['default'] = i; var r = new i; e.htmlParser = r; }]); }); window.SEMICOLON_textRotatorInit = function ($textRotatorEl) { $textRotatorEl = $textRotatorEl.filter(':not(.customjs)'); if ($textRotatorEl.length < 1) { return true; } $textRotatorEl.each(function () { let element = $(this), elTyped = element.attr('data-typed') || 'false', elRotator = element.find('.t-rotate'), elAnimation = element.attr('data-rotate') || 'fade', elSpeed = element.attr('data-speed') || 1200, elSep = element.attr('data-separator') || ','; if (elTyped == 'true') { let elTexts = elRotator.html().split(elSep), elLoop = element.attr('data-loop') || 'true', elShuffle = element.attr('data-shuffle'), elCur = element.attr('data-cursor') || 'true', elSpeed = element.attr('data-speed') || 50, elBackSpeed = element.attr('data-backspeed') || 30, elBackDelay = element.attr('data-backdelay'); if (elLoop == 'true') { elLoop = true; } else { elLoop = false; } if (elShuffle == 'true') { elShuffle = true; } else { elShuffle = false; } if (elCur == 'true') { elCur = true; } else { elCur = false; } elRotator.html('').addClass('plugin-typed-init'); let typed = new Typed(elRotator.get(0), { strings: elTexts, typeSpeed: Number(elSpeed), loop: elLoop, shuffle: elShuffle, showCursor: elCur, backSpeed: Number(elBackSpeed), backDelay: Number(elBackDelay), }); } else { let pluginData = elRotator.Morphext({ animation: elAnimation, separator: elSep, speed: Number(elSpeed), }); } }); }; window.scwTogglesPlugin = window.scwTogglesPlugin || {}; window.SEMICOLON_togglesInit = function ($toggleEl) { $toggleEl = $toggleEl.filter(':not(.customjs)'); if ($toggleEl.length < 1) { return true; } $toggleEl.each(function () { let element = $(this), elSpeed = element.attr('data-speed') || 300, elState = element.attr('data-state'); if (elState != 'open') { element.children('.toggle-content').hide(); } else { element.addClass('toggle-active'). children('.toggle-content'). slideDown(Number(elSpeed)); } element.children('.toggle-header'). off('click'). on('click', function () { element.toggleClass('toggle-active'). children('.toggle-content'). slideToggle(Number(elSpeed)); return true; }); }); }; /** * Twitter Feed Fetcher */ function sm_format_twitter (twitters) { var statusHTML = []; for (var i = 0; i < twitters.length; i++) { var username = twitters[i].user.screen_name; var name = twitters[i].user.name; var username_avatar = twitters[i].user.profile_image_url_https; var status = twitters[i].text.replace( /((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function (url) { return '<a href="' + url + '" target="_blank">' + url + '</a>'; }).replace(/\B@([_a-z0-9]+)/ig, function (reply) { return reply.charAt(0) + '<a href="https://twitter.com/' + reply.substring(1) + '" target="_blank">' + reply.substring(1) + '</a>'; }); statusHTML.push( '<li><i class="icon-twitter"></i><a href="https://twitter.com/' + username + '" class="twitter-avatar" target="_blank"><img src="' + username_avatar + '" alt="' + name + '" title="' + name + '"></a><div><span>' + status + '</span><small><a href="https://twitter.com/' + username + '/statuses/' + twitters[i].id_str + '" target="_blank">' + relative_time(twitters[i].created_at) + '</a></small></div></li>'); } return statusHTML.join(''); } function sm_format_twitter2 (twitters) { var statusHTML = []; for (var i = 0; i < twitters.length; i++) { var username = twitters[i].user.screen_name; var status = twitters[i].text.replace( /((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function (url) { return '<a href="' + url + '" target="_blank">' + url + '</a>'; }).replace(/\B@([_a-z0-9]+)/ig, function (reply) { return reply.charAt(0) + '<a href="https://twitter.com/' + reply.substring(1) + '" target="_blank">' + reply.substring(1) + '</a>'; }); statusHTML.push('<div class="slide"><span>' + status + '</span><small><a href="https://twitter.com/' + username + '/statuses/' + twitters[i].id_str + '" target="_blank">' + relative_time(twitters[i].created_at) + '</a></small></div>'); } return statusHTML.join(''); } function sm_format_twitter3 (twitters) { var statusHTML = []; for (var i = 0; i < twitters.length; i++) { var username = twitters[i].user.screen_name; var status = twitters[i].text.replace( /((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function (url) { return '<a href="' + url + '" target="_blank">' + url + '</a>'; }).replace(/\B@([_a-z0-9]+)/ig, function (reply) { return reply.charAt(0) + '<a href="https://twitter.com/' + reply.substring(1) + '" target="_blank">' + reply.substring(1) + '</a>'; }); statusHTML.push( '<div class="slide"><div class="testi-content"><p>' + status + '</p><div class="testi-meta"><span><a href="https://twitter.com/' + username + '/statuses/' + twitters[i].id_str + '" target="_blank">' + relative_time(twitters[i].created_at) + '</a></span></div></div></div>'); } return statusHTML.join(''); } function relative_time (time_value) { var values = time_value.split(' '); time_value = values[1] + ' ' + values[2] + ', ' + values[5] + ' ' + values[3]; var parsed_date = Date.parse(time_value); var relative_to = (arguments.length > 1) ? arguments[1] : new Date(); var delta = parseInt((relative_to.getTime() - parsed_date) / 1000); delta = delta + (relative_to.getTimezoneOffset() * 60); if (delta < 60) { return 'less than a minute ago'; } else if (delta < 120) { return 'about a minute ago'; } else if (delta < (60 * 60)) { return (parseInt(delta / 60)).toString() + ' minutes ago'; } else if (delta < (120 * 60)) { return 'about an hour ago'; } else if (delta < (24 * 60 * 60)) { return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago'; } else if (delta < (48 * 60 * 60)) { return '1 day ago'; } else { return (parseInt(delta / 86400)).toString() + ' days ago'; } } window.SEMICOLON_twitterFeedInit = function ($twitterFeedEl) { if ($twitterFeedEl.length < 1) { return true; } $twitterFeedEl.each(function () { let element = $(this), elUser = element.attr('data-username') || 'twitter', elCount = element.attr('data-count') || 3, elLoader = element.attr('data-loader') || 'include/twitter/tweets.php'; $.getJSON( elLoader + '?username=' + elUser + '&count=' + Number(elCount), function (tweets) { if (element.hasClass('fslider')) { element.find('.slider-wrap'). html(sm_format_twitter3(tweets)). promise(). done(function () { let timer = setInterval(function () { if (element.find('.slide').length > 1) { element.removeClass('customjs'); setTimeout( function () { SEMICOLON.widget.loadFlexSlider(); }, 500); clearInterval(timer); } }, 500); }); } else { element.html(sm_format_twitter(tweets)); } }); }); }; /*jquery.mb.YTPlayer 23-01-2021 _ jquery.mb.components _ email: [email protected] _ Copyright (c) 2001-2021. Matteo Bicocchi (Pupunzi); _ blog: http://pupunzi.open-lab.com _ Open Lab s.r.l., Florence - Italy */ var ytp = ytp || {}; let YTPRndSuffix = (new Date).getTime(), YTPTimerLabels = { init: 'YTPlayerInit_' + YTPRndSuffix, startPlaying: 'YTPlayerStartPlay_' + YTPRndSuffix, }; function onYouTubeIframeAPIReady () { ytp.YTAPIReady || (ytp.YTAPIReady = !0, jQuery(document).trigger('YTAPIReady')); } let getYTPVideoID = function (e) { let r, t; return e.indexOf('youtu.be') > 0 || e.indexOf('youtube.com/embed') > 0 ? r = (t = (r = e.substr(e.lastIndexOf('/') + 1, e.length)).indexOf( '?list=') > 0 ? r.substr(r.lastIndexOf('='), r.length) : null) ? r.substr(0, r.lastIndexOf('?')) : r : e.indexOf('http') > -1 ? (r = e.match( /[\\?&]v=([^&#]*)/)[1], t = e.indexOf('list=') > 0 ? e.match( /[\\?&]list=([^&#]*)/)[1] : null) : t = (r = e.length > 15 ? null : e) ? null : e, { videoID: r, playlistID: t }; }; !function (jQuery, ytp) { jQuery.mbYTPlayer = { name: 'jquery.mb.YTPlayer', version: '3.3.9', build: '7581', author: 'Matteo Bicocchi (pupunzi)', apiKey: '', defaults: { videoURL: null, containment: 'body', ratio: 'auto', fadeOnStartTime: 1e3, startAt: 0, stopAt: 0, autoPlay: !0, delayAtStart: 1e3, coverImage: !1, loop: !0, addRaster: !1, mask: !1, opacity: 1, quality: 'hd1080', vol: 50, mute: !1, showControls: !0, anchor: 'center,center', showAnnotations: !1, cc_load_policy: !1, showYTLogo: !0, useOnMobile: !0, playOnlyIfVisible: !1, onScreenPercentage: 30, goFullScreenOnPlay: !1, stopMovieOnBlur: !0, realFullscreen: !0, optimizeDisplay: !0, abundance: .3, gaTrack: !0, remember_last_time: !1, addFilters: !1, useNoCookie: !0, onReady: function (e) {}, onError: function (e, r) {}, onEnd: function () {}, }, controls: { play: 'P', pause: 'p', mute: 'M', unmute: 'A', onlyYT: 'O', showSite: 'R', ytLogo: 'Y', }, controlBar: null, locationProtocol: 'https:', defaultFilters: { grayscale: { value: 0, unit: '%' }, hue_rotate: { value: 0, unit: 'deg' }, invert: { value: 0, unit: '%' }, opacity: { value: 0, unit: '%' }, saturate: { value: 0, unit: '%' }, sepia: { value: 0, unit: '%' }, brightness: { value: 0, unit: '%' }, contrast: { value: 0, unit: '%' }, blur: { value: 0, unit: 'px' }, }, buildPlayer: function (options) { if (ytp.YTAPIReady || void 0 !== window.YT) setTimeout(function () { jQuery(document). trigger('YTAPIReady'), ytp.YTAPIReady = !0; }, 100); else { jQuery('#YTAPI').remove(); let e = jQuery('<script>'). attr({ src: 'https://www.youtube.com/iframe_api?v=' + jQuery.mbYTPlayer.version, id: 'YTAPI', }); jQuery('head').prepend(e); } function isIframe () { let e = !1; try { self.location.href !== top.location.href && (e = !0); } catch (r) {e = !0;} return e; } return this.each(function () { let YTPlayer = this, $YTPlayer = jQuery(YTPlayer); $YTPlayer.hide(), YTPlayer.loop = 0, YTPlayer.state = 0, YTPlayer.filters = jQuery.extend( !0, {}, jQuery.mbYTPlayer.defaultFilters), YTPlayer.filtersEnabled = !0, YTPlayer.id = YTPlayer.id || 'YTP_' + (new Date).getTime(), $YTPlayer.addClass( 'mb_YTPlayer'); let property = $YTPlayer.data('property') && 'string' == typeof $YTPlayer.data('property') ? eval( '(' + $YTPlayer.data('property') + ')') : $YTPlayer.data( 'property'); 'object' != typeof property && (property = {}), YTPlayer.opt = jQuery.extend(!0, {}, jQuery.mbYTPlayer.defaults, YTPlayer.opt, options, property), YTPRndSuffix = getYTPVideoID( YTPlayer.opt.videoURL).videoID, YTPTimerLabels = { init: 'YTPlayerInit_' + YTPRndSuffix, startPlaying: 'YTPlayerStartPlay_' + YTPRndSuffix, }, console.time(YTPTimerLabels.init), console.time( YTPTimerLabels.startPlaying), YTPlayer.opt.elementId = YTPlayer.id, 0 === YTPlayer.opt.vol && (YTPlayer.opt.vol = 1, YTPlayer.opt.mute = !0), YTPlayer.opt.loop && 'boolean' == typeof YTPlayer.opt.loop && (YTPlayer.opt.loop = 9999); let fullScreenAvailable = document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled; YTPlayer.opt.realFullscreen = !(isIframe() || !fullScreenAvailable) && YTPlayer.opt.realFullscreen, YTPlayer.opt.showAnnotations = YTPlayer.opt.showAnnotations ? '1' : '3', YTPlayer.opt.cc_load_policy = YTPlayer.opt.cc_load_policy ? '1' : '0', YTPlayer.opt.coverImage = YTPlayer.opt.coverImage || YTPlayer.opt.backgroundImage, YTPlayer.opt.quality = 'hd1080', jQuery.mbBrowser.msie && jQuery.mbBrowser.version < 9 && (YTPlayer.opt.opacity = 1), YTPlayer.opt.containment = 'self' === YTPlayer.opt.containment ? $YTPlayer : jQuery( YTPlayer.opt.containment), YTPlayer.isRetina = window.retina || window.devicePixelRatio > 1, YTPlayer.opt.ratio = 'auto' === YTPlayer.opt.ratio ? 16 / 9 : YTPlayer.opt.ratio, YTPlayer.opt.ratio = eval( YTPlayer.opt.ratio); let origContainmentBackground = YTPlayer.opt.containment.css( 'background-image'); origContainmentBackground = 'none' === origContainmentBackground ? null : origContainmentBackground, YTPlayer.orig_containment_background = origContainmentBackground, $YTPlayer.attr( 'id') || $YTPlayer.attr('id', 'ytp_' + (new Date).getTime()), YTPlayer.playerID = 'iframe_' + YTPlayer.id, YTPlayer.isAlone = !1, YTPlayer.hasFocus = !0, YTPlayer.videoID = YTPlayer.opt.videoURL ? getYTPVideoID(YTPlayer.opt.videoURL).videoID : !!$YTPlayer.attr('href') && getYTPVideoID($YTPlayer.attr( 'href')).videoID, YTPlayer.playlistID = YTPlayer.opt.videoURL ? getYTPVideoID(YTPlayer.opt.videoURL).playlistID : !!$YTPlayer.attr('href') && getYTPVideoID($YTPlayer.attr('href')).playlistID; let start_from_last = 0; if (jQuery.mbCookie.get( 'YTPlayer_start_from' + YTPlayer.videoID) && (start_from_last = parseFloat(jQuery.mbCookie.get( 'YTPlayer_start_from' + YTPlayer.videoID))), YTPlayer.opt.remember_last_time && start_from_last && (YTPlayer.start_from_last = start_from_last, jQuery.mbCookie.remove( 'YTPlayer_start_from' + YTPlayer.videoID)), YTPlayer.isPlayer = $YTPlayer.is( YTPlayer.opt.containment), YTPlayer.isBackground = YTPlayer.opt.containment.is( 'body'), YTPlayer.isBackground && ytp.backgroundIsInited) return; if (YTPlayer.isPlayer && $YTPlayer.show(), YTPlayer.overlay = jQuery('<div/>'). css({ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%', }). addClass( 'YTPOverlay'), $YTPlayer.changeCoverImage(), YTPlayer.wrapper = jQuery( '<div/>'). attr('id', 'wrapper_' + YTPlayer.id). css({ position: 'absolute', zIndex: 0, minWidth: '100%', minHeight: '100%', left: 0, top: 0, overflow: 'hidden', opacity: 0, }). addClass('mbYTP_wrapper'), YTPlayer.isPlayer) { let e = jQuery.mbBrowser.mobile ? 'inlinePlayButtonMobile' : 'inlinePlayButton'; YTPlayer.inlinePlayButton = jQuery('<div/>'). addClass('inlinePlayButton'). html(jQuery.mbYTPlayer.controls.play), $YTPlayer.append( YTPlayer.inlinePlayButton), YTPlayer.inlinePlayButton.on( 'click', function (e) { $YTPlayer.YTPPlay(), YTPlayer.inlinePlayButton.hide(), YTPlayer.opt.goFullScreenOnPlay && $YTPlayer.YTPFullscreen(), e.stopPropagation(); }), YTPlayer.opt.autoPlay && YTPlayer.inlinePlayButton.hide(), YTPlayer.overlay.on( 'click', function () { $YTPlayer.YTPTogglePlay(), YTPlayer.opt.goFullScreenOnPlay && $YTPlayer.YTPFullscreen(); }).css({ cursor: 'pointer' }); } let playerBox = jQuery('<div/>'). attr('id', YTPlayer.playerID). addClass('playerBox'); if (playerBox.css({ position: 'absolute', zIndex: 0, width: '100%', height: '100%', top: 0, left: 0, overflow: 'hidden', opacity: 1, }), YTPlayer.wrapper.append(playerBox), playerBox.after( YTPlayer.overlay), YTPlayer.isPlayer && (YTPlayer.inlineWrapper = jQuery('<div/>'). addClass('inline-YTPlayer'), YTPlayer.inlineWrapper.css({ position: 'relative', maxWidth: YTPlayer.opt.containment.css('width'), }), YTPlayer.opt.containment.css({ position: 'relative', paddingBottom: '56.25%', overflow: 'hidden', height: 0, }), YTPlayer.opt.containment.wrap( YTPlayer.inlineWrapper)), YTPlayer.opt.containment.children(). not('script, style'). each(function () { 'static' === jQuery(this).css('position') && jQuery(this).css('position', 'relative'); }), YTPlayer.isBackground ? (jQuery('body'). css({ boxSizing: 'border-box' }), YTPlayer.wrapper.css( { position: 'fixed', top: 0, left: 0, zIndex: 0 })) : 'static' === YTPlayer.opt.containment.css('position') && (YTPlayer.opt.containment.css( { position: 'relative' }), $YTPlayer.show()), YTPlayer.opt.containment.prepend( YTPlayer.wrapper), YTPlayer.isBackground || YTPlayer.overlay.on('mouseenter', function () { YTPlayer.controlBar && YTPlayer.controlBar.length && YTPlayer.controlBar.addClass('visible'); }). on('mouseleave', function () { YTPlayer.controlBar && YTPlayer.controlBar.length && YTPlayer.controlBar.removeClass('visible'); }), jQuery.mbBrowser.mobile && !YTPlayer.opt.useOnMobile) return YTPlayer.opt.coverImage && (YTPlayer.wrapper.css({ backgroundImage: 'url(' + YTPlayer.opt.coverImage + ')', backgroundPosition: 'center center', backgroundSize: 'cover', backgroundRepeat: 'no-repeat', opacity: 1, }), YTPlayer.wrapper.css({ opacity: 1 })), $YTPlayer; jQuery.mbBrowser.mobile && YTPlayer.opt.autoPlay && YTPlayer.opt.useOnMobile && jQuery('body'). one('touchstart', function () {YTPlayer.player.playVideo();}), jQuery( document). one('YTAPIReady', function () { $YTPlayer.trigger( 'YTAPIReady_' + YTPlayer.id), ytp.YTAPIReady = !0; }), YTPlayer.isOnScreen = jQuery.mbYTPlayer.isOnScreen( YTPlayer, YTPlayer.opt.onScreenPercentage), $YTPlayer.one( 'YTAPIReady_' + YTPlayer.id, function () { let e = this, r = jQuery(e); e.isBackground && ytp.backgroundIsInited || e.isInit || (e.isBackground && (ytp.backgroundIsInited = !0), e.opt.autoPlay = void 0 === e.opt.autoPlay ? !!e.isBackground : e.opt.autoPlay, e.opt.vol = e.opt.vol ? e.opt.vol : 100, jQuery.mbYTPlayer.getDataFromAPI(e), jQuery( e).on('YTPChanged', function (t) { if (e.isInit) return; e.isInit = !0; let a = { modestbranding: 1, autoplay: 0, controls: 0, showinfo: 0, rel: 0, enablejsapi: 1, version: 3, playerapiid: e.playerID, origin: '*', allowfullscreen: !0, wmode: 'transparent', iv_load_policy: e.opt.showAnnotations, cc_load_policy: e.opt.cc_load_policy, playsinline: jQuery.mbBrowser.mobile && !e.isPlayer ? 1 : 0, html5: document.createElement( 'video').canPlayType ? 1 : 0, }; new YT.Player(e.playerID, { host: e.opt.useNoCookie ? 'https://www.youtube-nocookie.com' : 'https://www.youtube.com', playerVars: a, events: { onReady: function (t) { e.player = t.target, e.player.loadVideoById( { videoId: e.videoID.toString(), suggestedQuality: e.opt.quality, }), r.trigger( 'YTPlayerIsReady_' + e.id); }, onStateChange: function (r) { if ('function' != typeof r.target.getPlayerState) return; let t, a = r.target.getPlayerState(); if (e.preventTrigger || e.isStarting) return void (e.preventTrigger = !1); switch (e.state = a, r.data === YT.PlayerState.PLAYING && r.target.setPlaybackQuality( e.opt.quality), a) { case-1: t = 'YTPUnstarted'; break; case 0: t = 'YTPRealEnd'; break; case 1: t = 'YTPPlay', e.controlBar.length && e.controlBar.find( '.mb_YTPPlayPause'). html( jQuery.mbYTPlayer.controls.pause), e.isPlayer && e.inlinePlayButton.hide(), jQuery( document). off('mousedown.YTPstart'); break; case 2: t = 'YTPPause', e.controlBar.length && e.controlBar.find( '.mb_YTPPlayPause'). html( jQuery.mbYTPlayer.controls.play), e.isPlayer && e.inlinePlayButton.show(); break; case 3: e.player.setPlaybackQuality( e.opt.quality), t = 'YTPBuffering', e.controlBar.length && e.controlBar.find( '.mb_YTPPlayPause'). html( jQuery.mbYTPlayer.controls.play); break; case 5: t = 'YTPCued'; } let o = jQuery.Event(t); o.time = e.currentTime, jQuery(e). trigger(o); }, onPlaybackQualityChange: function (r) { let t = r.target.getPlaybackQuality(), a = jQuery.Event( 'YTPQualityChange'); a.quality = t, jQuery(e).trigger(a); }, onError: function (t) { switch ('function' == typeof e.opt.onError && e.opt.onError(r, t), console.debug( 'error:', t), t.data) { case 2: console.error( 'video ID:: ' + e.videoID + ': The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.'); break; case 5: console.error( 'video ID:: ' + e.videoID + ': The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.'); break; case 100: console.error( 'video ID:: ' + e.videoID + ': The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.'); break; case 101: case 150: console.error( 'video ID:: ' + e.videoID + ': The video doesn\'t exist or The owner does not allow it to be played in embedded players.'); } e.isList && jQuery(e).YTPPlayNext(); }, }, }), r.on('YTPlayerIsReady_' + e.id, function () { if (e.isReady) return this; e.playerEl = e.player.getIframe(), jQuery( e.playerEl). unselectable(), r.optimizeDisplay(), jQuery( window). off('resize.YTP_' + e.id). on('resize.YTP_' + e.id, function () {r.optimizeDisplay();}), jQuery( window). off('orientationchange.YTP_' + e.id). on('orientationchange.YTP_' + e.id, function () {r.optimizeDisplay();}), e.opt.remember_last_time && jQuery(window). on('unload.YTP_' + e.id, function () { let r = e.player.getCurrentTime(); jQuery.mbCookie.set( 'YTPlayer_start_from' + e.videoID, r, 0); }), r.YTPCheckForState(); }); })); }), $YTPlayer.off( 'YTPTime.mask'), jQuery.mbYTPlayer.applyMask( YTPlayer), console.timeEnd(YTPTimerLabels.init), setTimeout( function () { ytp.YTAPIReady || 'object' != typeof window.YT || (jQuery(document). trigger( 'YTAPIReady'), ytp.YTAPIReady = !0, console.error( 'YTPlayer: More then a call to the YT API has been detected')); }, YTPlayer.opt.delayAtStart); }); }, isOnScreen: function (e, r) { r = r || 10; let t = e.wrapper, a = jQuery(window).scrollTop(), o = a + jQuery(window).height(), n = t.height() * r / 100, i = t.offset().top + n; return t.offset().top + (t.height() - n) <= o && i >= a; }, getDataFromAPI: function (e) { e.videoData = jQuery.mbStorage.get( 'YTPlayer_data_' + e.videoID), e.videoData ? (setTimeout(function () { e.dataReceived = !0; let r = jQuery.Event('YTPChanged'); r.time = e.currentTime, r.videoId = e.videoID, r.opt = e.opt, jQuery( e).trigger(r); let t = jQuery.Event('YTPData'); t.prop = {}; for (let r in e.videoData) e.videoData.hasOwnProperty(r) && (t.prop[r] = e.videoData[r]); jQuery(e).trigger(t); }, e.opt.fadeOnStartTime), e.hasData = !0) : jQuery.mbYTPlayer.apiKey ? jQuery.getJSON( 'https://www.googleapis.com/youtube/v3/videos?id=' + e.videoID + '&key=' + jQuery.mbYTPlayer.apiKey + '&part=snippet', function (r) { e.dataReceived = !0; let t = jQuery.Event('YTPChanged'); t.time = e.currentTime, t.videoId = e.videoID, jQuery( e).trigger(t), r.items[0] ? (!function (r) { e.videoData = {}, e.videoData.id = e.videoID, e.videoData.channelTitle = r.channelTitle, e.videoData.title = r.title, e.videoData.description = r.description.length < 400 ? r.description : r.description.substring(0, 400) + ' ...', e.videoData.thumb_max = r.thumbnails.maxres ? r.thumbnails.maxres.url : null, e.videoData.thumb_high = r.thumbnails.high ? r.thumbnails.high.url : null, e.videoData.thumb_medium = r.thumbnails.medium ? r.thumbnails.medium.url : null, jQuery.mbStorage.set( 'YTPlayer_data_' + e.videoID, e.videoData); }(r.items[0].snippet), e.hasData = !0) : (e.videoData = {}, e.hasData = !1); let a = jQuery.Event('YTPData'); a.prop = {}; for (let r in e.videoData) a.prop[r] = e.videoData[r]; jQuery(e).trigger(a); }). fail(function (r) { console.error('YT data error:: ', r), e.hasData = !1; let t = jQuery.Event('YTPChanged'); t.time = e.currentTime, t.videoId = e.videoID, jQuery( e).trigger(t); }) : (setTimeout(function () { let r = jQuery.Event('YTPChanged'); r.time = e.currentTime, r.videoId = e.videoID, jQuery(e). trigger(r); }, 10), e.videoData = null), e.opt.ratio = 'auto' == e.opt.ratio ? 16 / 9 : e.opt.ratio, e.isPlayer && !e.opt.autoPlay && (e.loading = jQuery('<div/>'). addClass('loading'). html('Loading'). hide(), jQuery(e).append(e.loading), e.loading.fadeIn()); }, removeStoredData: function () {jQuery.mbStorage.remove();}, getVideoData: function () {return this.get(0).videoData;}, getVideoID: function () {return this.get(0).videoID || !1;}, getPlaylistID: function () {return this.get(0).playlistID || !1;}, setVideoQuality: function (e) { let r = this.get(0), t = r.player.getCurrentTime(); return jQuery(r). YTPPause(), r.opt.quality = e, r.player.setPlaybackQuality( e), r.player.seekTo(t), jQuery(r).YTPPlay(), this; }, getVideoQuality: function () { return this.get(0). player. getPlaybackQuality(); }, playlist: function (e, r, t) { let a = this.get(0); return a.isList = !0, r && (e = jQuery.shuffle(e)), a.videoID || (a.videos = e, a.videoCounter = 1, a.videoLength = e.length, jQuery( a).data('property', e[0]), jQuery(a).YTPlayer()), 'function' == typeof t && jQuery(a).on('YTPChanged', function () {t(a);}), jQuery( a).on('YTPEnd', function () {jQuery(a).YTPPlayNext();}), this; }, playNext: function () { let e = this.get(0); return e.videoCounter++, e.videoCounter > e.videoLength && (e.videoCounter = 1), jQuery(e).YTPPlayIndex(e.videoCounter), this; }, playPrev: function () { let e = this.get(0); return e.videoCounter--, e.videoCounter <= 0 && (e.videoCounter = e.videoLength), jQuery(e). YTPPlayIndex(e.videoCounter), this; }, playIndex: function (e) { let r = this.get(0); r.checkForStartAt && (clearInterval(r.checkForStartAt), clearInterval( r.getState)), r.videoCounter = e, r.videoCounter >= r.videoLength && (r.videoCounter = r.videoLength); let t = r.videos[r.videoCounter - 1]; return jQuery(r).YTPChangeVideo(t), this; }, changeVideo: function (e) { let r = this, t = r.get(0); t.opt.startAt = 0, t.opt.stopAt = 0, t.opt.mask = !1, t.opt.mute = !0, t.opt.autoPlay = !0, t.opt.addFilters = !1, t.opt.coverImage = !1, t.hasData = !1, t.hasChanged = !0, t.player.loopTime = void 0, e && jQuery.extend(t.opt, e), t.videoID = getYTPVideoID( t.opt.videoURL).videoID, t.opt.loop && 'boolean' == typeof t.opt.loop && (t.opt.loop = 9999), t.wrapper.css( { background: 'none' }), jQuery(t.playerEl). CSSAnimate({ opacity: 0 }, t.opt.fadeOnStartTime, function () { jQuery.mbYTPlayer.getDataFromAPI(t), r.YTPGetPlayer(). loadVideoById({ videoId: t.videoID, suggestedQuality: t.opt.quality, }), r.YTPPause(), r.optimizeDisplay(), t.checkForStartAt && (clearInterval(t.checkForStartAt), clearInterval( t.getState)), r.YTPCheckForState(); }); let a = jQuery.Event('YTPChangeVideo'); return a.time = t.currentTime, jQuery(t). trigger(a), jQuery.mbYTPlayer.applyMask(t), this; }, getPlayer: function () { let e = this.get(0); return e.isReady ? e.player : null; }, playerDestroy: function () { let e = this.get(0); return e.isReady ? (ytp.YTAPIReady = !0, ytp.backgroundIsInited = !1, e.isInit = !1, e.videoID = null, e.isReady = !1, e.wrapper.remove(), jQuery( '#controlBar_' + e.id).remove(), clearInterval( e.checkForStartAt), clearInterval(e.getState), this) : this; }, fullscreen: function (real) { let YTPlayer = this.get(0); void 0 === real && (real = eval(YTPlayer.opt.realFullscreen)); let controls = jQuery('#controlBar_' + YTPlayer.id), fullScreenBtn = controls.find('.mb_OnlyYT'), videoWrapper = YTPlayer.isPlayer ? YTPlayer.opt.containment : YTPlayer.wrapper; if (real) { let e = jQuery.mbBrowser.mozilla ? 'mozfullscreenchange' : jQuery.mbBrowser.webkit ? 'webkitfullscreenchange' : 'fullscreenchange'; jQuery(document). off(e). on(e, function () { RunPrefixMethod(document, 'IsFullScreen') || RunPrefixMethod(document, 'FullScreen') ? jQuery(YTPlayer).trigger('YTPFullScreenStart') : (YTPlayer.isAlone = !1, fullScreenBtn.html( jQuery.mbYTPlayer.controls.onlyYT), jQuery( YTPlayer). YTPSetVideoQuality( YTPlayer.opt.quality), videoWrapper.removeClass( 'YTPFullscreen'), videoWrapper.CSSAnimate( { opacity: YTPlayer.opt.opacity }, YTPlayer.opt.fadeOnStartTime), videoWrapper.css( { zIndex: 0 }), YTPlayer.isBackground ? jQuery( 'body').after(controls) : YTPlayer.wrapper.before( controls), jQuery(window).resize(), jQuery( YTPlayer).trigger('YTPFullScreenEnd')); }); } if (YTPlayer.isAlone) jQuery(document). off('mousemove.YTPlayer'), clearTimeout( YTPlayer.hideCursor), YTPlayer.overlay.css( { cursor: 'auto' }), real ? cancelFullscreen() : (videoWrapper.CSSAnimate({ opacity: YTPlayer.opt.opacity }, YTPlayer.opt.fadeOnStartTime), videoWrapper.css( { zIndex: 0 })), fullScreenBtn.html( jQuery.mbYTPlayer.controls.onlyYT), YTPlayer.isAlone = !1; else { function hideMouse () { YTPlayer.overlay.css({ cursor: 'none' }); } jQuery(document). on('mousemove.YTPlayer', function (e) { YTPlayer.overlay.css({ cursor: 'auto' }), clearTimeout( YTPlayer.hideCursor), jQuery(e.target). parents(). is('.mb_YTPBar') || (YTPlayer.hideCursor = setTimeout(hideMouse, 3e3)); }), hideMouse(), real ? (videoWrapper.css( { opacity: 0 }), videoWrapper.addClass( 'YTPFullscreen'), launchFullscreen( videoWrapper.get(0)), setTimeout(function () { videoWrapper.CSSAnimate({ opacity: 1 }, 2 * YTPlayer.opt.fadeOnStartTime), videoWrapper.append( controls), jQuery(YTPlayer). optimizeDisplay(), YTPlayer.player.seekTo( YTPlayer.player.getCurrentTime() + .1, !0); }, YTPlayer.opt.fadeOnStartTime)) : videoWrapper.css( { zIndex: 1e4 }). CSSAnimate({ opacity: 1 }, 2 * YTPlayer.opt.fadeOnStartTime), fullScreenBtn.html( jQuery.mbYTPlayer.controls.showSite), YTPlayer.isAlone = !0; } function RunPrefixMethod (e, r) { let t, a, o = ['webkit', 'moz', 'ms', 'o', ''], n = 0; for (; n < o.length && !e[t];) { if (t = r, '' === o[n] && (t = t.substr(0, 1).toLowerCase() + t.substr(1)), 'undefined' != (a = typeof e[t = o[n] + t])) return o = [o[n]], 'function' == a ? e[t]() : e[t]; n++; } } function launchFullscreen (e) { RunPrefixMethod(e, 'RequestFullScreen'); } function cancelFullscreen () { (RunPrefixMethod(document, 'FullScreen') || RunPrefixMethod(document, 'IsFullScreen')) && RunPrefixMethod(document, 'CancelFullScreen'); } return this; }, toggleLoops: function () { let e = this.get(0), r = e.opt; return 1 == r.loop ? r.loop = 0 : (r.startAt ? e.player.seekTo( r.startAt) : e.player.playVideo(), r.loop = 1), this; }, play: function () { let e = this.get(0), r = jQuery(e); return e.isReady ? (setTimeout(function () {r.YTPSetAbundance(e.opt.abundance);}, 300), e.player.playVideo(), jQuery(e.playerEl). css({ opacity: 1 }), e.wrapper.css( { backgroundImage: 'none' }), e.wrapper.CSSAnimate( { opacity: e.isAlone ? 1 : e.opt.opacity }, e.opt.fadeOnStartTime), jQuery('#controlBar_' + e.id). find('.mb_YTPPlayPause'). html(jQuery.mbYTPlayer.controls.pause), e.state = 1, this) : this; }, togglePlay: function (e) { let r = this.get(0); return r.isReady ? (1 === r.state ? this.YTPPause() : this.YTPPlay(), 'function' == typeof e && e(r.state), this) : this; }, stop: function () { let e = this.get(0); return e.isReady ? (jQuery('#controlBar_' + e.id). find('.mb_YTPPlayPause'). html( jQuery.mbYTPlayer.controls.play), e.player.stopVideo(), this) : this; }, pause: function () { let e = this.get(0); return e.isReady ? (e.opt.abundance < .2 && this.YTPSetAbundance( .2), e.player.pauseVideo(), e.state = 2, this) : this; }, seekTo: function (e) { let r = this.get(0); return r.isReady ? (r.player.seekTo(e, !0), this) : this; }, getPlaybackRate: function () { let e = this.get(0); return e.isReady ? e.player.getPlaybackRate() : this; }, setPlaybackRate: function (e) { let r = this.get(0); return r.isReady ? (r.player.setPlaybackRate(e), this) : this; }, setVolume: function (e) { let r = this.get(0); return r.isReady ? (r.opt.vol = e, this.YTPUnmute(), r.player.setVolume( r.opt.vol), r.volumeBar && r.volumeBar.length && r.volumeBar.updateSliderVal(e), this) : this; }, getVolume: function () { let e = this.get(0); return e.isReady ? e.player.getVolume() : this; }, toggleVolume: function () { let e = this.get(0); return e.isReady ? (e.isMute ? (jQuery.mbBrowser.mobile || this.YTPSetVolume(e.opt.vol), this.YTPUnmute()) : this.YTPMute(), this) : this; }, mute: function () { let e = this.get(0); if (!e.isReady) return this; if (e.isMute) return this; e.player.mute(), e.isMute = !0, e.player.setVolume( 0), e.volumeBar && e.volumeBar.length && e.volumeBar.width() > 10 && e.volumeBar.updateSliderVal(0), jQuery('#controlBar_' + e.id). find('.mb_YTPMuteUnmute'). html(jQuery.mbYTPlayer.controls.unmute), jQuery(e). addClass('isMuted'), e.volumeBar && e.volumeBar.length && e.volumeBar.addClass('muted'); let r = jQuery.Event('YTPMuted'); return r.time = e.currentTime, e.preventTrigger || jQuery(e).trigger(r), this; }, unmute: function () { let e = this.get(0); if (!e.isReady) return this; if (!e.isMute) return this; e.player.unMute(), e.isMute = !1, jQuery(e). YTPSetVolume(e.opt.vol), e.volumeBar && e.volumeBar.length && e.volumeBar.updateSliderVal( e.opt.vol > 10 ? e.opt.vol : 10), jQuery('#controlBar_' + e.id). find('.mb_YTPMuteUnmute'). html(jQuery.mbYTPlayer.controls.mute), jQuery(e). removeClass('isMuted'), e.volumeBar && e.volumeBar.length && e.volumeBar.removeClass('muted'); let r = jQuery.Event('YTPUnmuted'); return r.time = e.currentTime, e.preventTrigger || jQuery(e).trigger(r), this; }, applyFilter: function (e, r) { let t = this.get(0); if (!t.isReady) return this; t.filters[e].value = r, t.filtersEnabled && this.YTPEnableFilters(); }, applyFilters: function (e) { let r = this, t = r.get(0); if (!t.isReady) return jQuery(t). on('YTPReady', function () {r.YTPApplyFilters(e);}), this; for (let t in e) r.YTPApplyFilter(t, e[t]); r.trigger('YTPFiltersApplied'); }, toggleFilter: function (e, r) { let t = this.get(0); return t.isReady ? (t.filters[e].value ? t.filters[e].value = 0 : t.filters[e].value = r, t.filtersEnabled && jQuery(t).YTPEnableFilters(), this) : this; }, toggleFilters: function (e) { let r = this.get(0); return r.isReady ? (r.filtersEnabled ? (jQuery(r). trigger('YTPDisableFilters'), jQuery(r).YTPDisableFilters()) : (jQuery(r).YTPEnableFilters(), jQuery(r). trigger('YTPEnableFilters')), 'function' == typeof e && e(r.filtersEnabled), this) : this; }, disableFilters: function () { let e = this.get(0); if (!e.isReady) return this; let r = jQuery(e.playerEl); return r.css('-webkit-filter', ''), r.css('filter', ''), e.filtersEnabled = !1, this; }, enableFilters: function () { let e = this.get(0); if (!e.isReady) return this; let r = jQuery(e.playerEl), t = ''; for (let r in e.filters) e.filters[r].value && (t += r.replace('_', '-') + '(' + e.filters[r].value + e.filters[r].unit + ') '); return r.css('-webkit-filter', t), r.css('filter', t), e.filtersEnabled = !0, this; }, removeFilter: function (e, r) { let t = this, a = t.get(0); if (!a.isReady) return this; if ('function' == typeof e && (r = e, e = null), e) t.YTPApplyFilter(e, 0), 'function' == typeof r && r(e); else { for (let e in a.filters) a.filters.hasOwnProperty(e) && (t.YTPApplyFilter(e, 0), 'function' == typeof r && r(e)); a.filters = jQuery.extend(!0, {}, jQuery.mbYTPlayer.defaultFilters); } let o = jQuery.Event('YTPFiltersApplied'); return t.trigger(o), this; }, getFilters: function () { let e = this.get(0); return e.isReady ? e.filters : this; }, addMask: function (e) { let r = this.get(0); e || (e = r.actualMask); let t = jQuery('<img/>'). attr('src', e). on('load', function () { r.overlay.CSSAnimate({ opacity: 0 }, r.opt.fadeOnStartTime, function () { r.hasMask = !0, t.remove(), r.overlay.css({ backgroundImage: 'url(' + e + ')', backgroundRepeat: 'no-repeat', backgroundPosition: 'center center', backgroundSize: 'cover', }), r.overlay.CSSAnimate({ opacity: 1 }, r.opt.fadeOnStartTime); }); }); return this; }, removeMask: function () { let e = this.get(0); return e.overlay.CSSAnimate({ opacity: 0 }, e.opt.fadeOnStartTime, function () { e.hasMask = !1, e.overlay.css({ backgroundImage: '', backgroundRepeat: '', backgroundPosition: '', backgroundSize: '', }), e.overlay.CSSAnimate({ opacity: 1 }, e.opt.fadeOnStartTime); }), this; }, applyMask: function (e) { let r = jQuery(e); if (r.off('YTPTime.mask'), e.opt.mask) if ('string' == typeof e.opt.mask) r.YTPAddMask( e.opt.mask), e.actualMask = e.opt.mask; else if ('object' == typeof e.opt.mask) { for (let r in e.opt.mask) e.opt.mask[r] && (img = jQuery('<img/>').attr('src', e.opt.mask[r])); e.opt.mask[0] && r.YTPAddMask(e.opt.mask[0]), r.on( 'YTPTime.mask', function (t) { for (let a in e.opt.mask) t.time === a && (e.opt.mask[a] ? (r.YTPAddMask( e.opt.mask[a]), e.actualMask = e.opt.mask[a]) : r.YTPRemoveMask()); }); } }, toggleMask: function () { let e = this.get(0), r = jQuery(e); return e.hasMask ? r.YTPRemoveMask() : r.YTPAddMask(), this; }, manageProgress: function () { let e = this.get(0), r = jQuery('#controlBar_' + e.id), t = r.find('.mb_YTPProgress'), a = r.find('.mb_YTPLoaded'), o = r.find('.mb_YTPseekbar'), n = t.outerWidth(), i = Math.floor(e.player.getCurrentTime()), l = Math.floor(e.player.getDuration()), s = i * n / l, u = 100 * e.player.getVideoLoadedFraction(); return a.css({ left: 0, width: u + '%' }), o.css( { left: 0, width: s }), { totalTime: l, currentTime: i }; }, buildControls: function (YTPlayer) { if (jQuery('#controlBar_' + YTPlayer.id). remove(), !YTPlayer.opt.showControls) return void (YTPlayer.controlBar = !1); if (YTPlayer.opt.showYTLogo = YTPlayer.opt.showYTLogo || YTPlayer.opt.printUrl, jQuery( '#controlBar_' + YTPlayer.id).length) return; YTPlayer.controlBar = jQuery('<div/>'). attr('id', 'controlBar_' + YTPlayer.id). addClass('mb_YTPBar'). css({ whiteSpace: 'noWrap', position: YTPlayer.isBackground ? 'fixed' : 'absolute', zIndex: YTPlayer.isBackground ? 1e4 : 1e3, }). hide(). on('click', function (e) {e.stopPropagation();}); let buttonBar = jQuery('<div/>').addClass('buttonBar'), playpause = jQuery( '<span>' + jQuery.mbYTPlayer.controls.play + '</span>'). addClass('mb_YTPPlayPause ytpicon'). on('click', function (e) { e.stopPropagation(), jQuery(YTPlayer). YTPTogglePlay(); }), MuteUnmute = jQuery( '<span>' + jQuery.mbYTPlayer.controls.mute + '</span>'). addClass('mb_YTPMuteUnmute ytpicon'). on('click', function (e) { e.stopPropagation(), jQuery(YTPlayer). YTPToggleVolume(); }), volumeBar = jQuery('<div/>'). addClass('mb_YTPVolumeBar'). css({ display: 'inline-block' }); YTPlayer.volumeBar = volumeBar; let idx = jQuery('<span/>').addClass('mb_YTPTime'), vURL = YTPlayer.opt.videoURL ? YTPlayer.opt.videoURL : ''; vURL.indexOf('http') < 0 && (vURL = 'https://www.youtube.com/watch?v=' + YTPlayer.opt.videoURL); let movieUrl = jQuery('<span/>'). html(jQuery.mbYTPlayer.controls.ytLogo). addClass('mb_YTPUrl ytpicon'). attr('title', 'view on YouTube'). on('click', function () {window.open(vURL, 'viewOnYT');}), onlyVideo = jQuery('<span/>'). html(jQuery.mbYTPlayer.controls.onlyYT). addClass('mb_OnlyYT ytpicon'). on('click', function (e) { e.stopPropagation(), jQuery(YTPlayer). YTPFullscreen(YTPlayer.opt.realFullscreen); }), progressBar = jQuery('<div/>'). addClass('mb_YTPProgress'). css('position', 'absolute'). on('click', function (e) { e.stopPropagation(), timeBar.css({ width: e.clientX - timeBar.offset().left, }), YTPlayer.timeW = e.clientX - timeBar.offset().left, YTPlayer.controlBar.find( '.mb_YTPLoaded').css({ width: 0 }); let r = Math.floor(YTPlayer.player.getDuration()); YTPlayer.goto = timeBar.outerWidth() * r / progressBar.outerWidth(), YTPlayer.player.seekTo( parseFloat(YTPlayer.goto), !0), YTPlayer.controlBar.find('.mb_YTPLoaded'). css({ width: 0 }); }), loadedBar = jQuery('<div/>'). addClass('mb_YTPLoaded'). css('position', 'absolute'), timeBar = jQuery('<div/>'). addClass('mb_YTPseekbar'). css('position', 'absolute'); progressBar.append(loadedBar).append(timeBar), buttonBar.append( playpause). append(MuteUnmute). append(volumeBar). append(idx), YTPlayer.opt.showYTLogo && buttonBar.append(movieUrl), (YTPlayer.isBackground || eval(YTPlayer.opt.realFullscreen) && !YTPlayer.isBackground) && buttonBar.append(onlyVideo), YTPlayer.controlBar.append(buttonBar). append(progressBar), YTPlayer.isBackground ? jQuery('body'). after(YTPlayer.controlBar) : (YTPlayer.controlBar.addClass( 'inlinePlayer'), YTPlayer.wrapper.before( YTPlayer.controlBar)), volumeBar.simpleSlider({ initialval: YTPlayer.opt.vol, scale: 100, orientation: 'h', callback: function (e) { 0 == e.value ? jQuery(YTPlayer). YTPMute() : jQuery(YTPlayer). YTPUnmute(), YTPlayer.player.setVolume( e.value), YTPlayer.isMute || (YTPlayer.opt.vol = e.value); }, }); }, changeCoverImage: function (e) { let r = this.get(0); if (r.opt.coverImage || r.orig_containment_background) { let t = e || (r.opt.coverImage ? 'url(' + r.opt.coverImage + ') center center' : r.orig_containment_background); t && r.opt.containment.css({ background: t, backgroundSize: 'cover', backgroundRepeat: 'no-repeat', backgroundAttachment: 'fixed', }); } return this; }, checkForState: function () { let YTPlayer = this.get(0), $YTPlayer = jQuery(YTPlayer); clearInterval(YTPlayer.getState); let interval = 100; if (!jQuery.contains(document, YTPlayer)) return $YTPlayer.YTPPlayerDestroy(), clearInterval( YTPlayer.getState), void clearInterval( YTPlayer.checkForStartAt); jQuery.mbYTPlayer.checkForStart( YTPlayer), YTPlayer.getState = setInterval(function () { let $YTPlayer = jQuery(YTPlayer); if (!YTPlayer.isReady) return; let prog = jQuery(YTPlayer).YTPManageProgress(), stopAt = YTPlayer.opt.stopAt > YTPlayer.opt.startAt ? YTPlayer.opt.stopAt : 0; if (stopAt = stopAt < YTPlayer.player.getDuration() ? stopAt : 0, YTPlayer.currentTime != prog.currentTime) { let e = jQuery.Event('YTPTime'); e.time = YTPlayer.currentTime, jQuery(YTPlayer).trigger(e); } if (YTPlayer.currentTime = prog.currentTime, YTPlayer.totalTime = YTPlayer.player.getDuration(), 0 == YTPlayer.player.getVolume() ? $YTPlayer.addClass('isMuted') : $YTPlayer.removeClass( 'isMuted'), YTPlayer.opt.showControls && (prog.totalTime ? YTPlayer.controlBar.find('.mb_YTPTime'). html(jQuery.mbYTPlayer.formatTime(prog.currentTime) + ' / ' + jQuery.mbYTPlayer.formatTime(prog.totalTime)) : YTPlayer.controlBar.find('.mb_YTPTime'). html('-- : -- / -- : --')), eval( YTPlayer.opt.stopMovieOnBlur) && (document.hasFocus() ? document.hasFocus() && !YTPlayer.hasFocus && -1 != YTPlayer.state && 0 != YTPlayer.state && (YTPlayer.hasFocus = !0, YTPlayer.preventTrigger = !0, $YTPlayer.YTPPlay()) : 1 == YTPlayer.state && (YTPlayer.hasFocus = !1, YTPlayer.preventTrigger = !0, $YTPlayer.YTPPause())), YTPlayer.opt.playOnlyIfVisible) { let e = jQuery.mbYTPlayer.isOnScreen(YTPlayer, YTPlayer.opt.onScreenPercentage); e || 1 != YTPlayer.state ? e && !YTPlayer.isOnScreen && (YTPlayer.isOnScreen = !0, YTPlayer.player.playVideo()) : (YTPlayer.isOnScreen = !1, $YTPlayer.YTPPause()); } if (YTPlayer.controlBar.length && YTPlayer.controlBar.outerWidth() <= 400 && !YTPlayer.isCompact ? (YTPlayer.controlBar.addClass( 'compact'), YTPlayer.isCompact = !0, !YTPlayer.isMute && YTPlayer.volumeBar && YTPlayer.volumeBar.updateSliderVal(YTPlayer.opt.vol)) : YTPlayer.controlBar.length && YTPlayer.controlBar.outerWidth() > 400 && YTPlayer.isCompact && (YTPlayer.controlBar.removeClass( 'compact'), YTPlayer.isCompact = !1, !YTPlayer.isMute && YTPlayer.volumeBar && YTPlayer.volumeBar.updateSliderVal( YTPlayer.opt.vol)), YTPlayer.player.getPlayerState() > 0 && (parseFloat(YTPlayer.player.getDuration() - YTPlayer.opt.fadeOnStartTime / 1e3) < YTPlayer.player.getCurrentTime() || stopAt > 0 && parseFloat(YTPlayer.player.getCurrentTime()) >= stopAt)) { if (YTPlayer.isEnded) return; if (YTPlayer.isEnded = !0, setTimeout( function () {YTPlayer.isEnded = !1;}, 1e3), YTPlayer.isList) { if (!YTPlayer.opt.loop || YTPlayer.opt.loop > 0 && YTPlayer.player.loopTime === YTPlayer.opt.loop - 1) { YTPlayer.player.loopTime = void 0, clearInterval( YTPlayer.getState); let e = jQuery.Event('YTPEnd'); return e.time = YTPlayer.currentTime, void jQuery( YTPlayer).trigger(e); } } else if (!YTPlayer.opt.loop || YTPlayer.opt.loop > 0 && YTPlayer.player.loopTime === YTPlayer.opt.loop - 1) return YTPlayer.player.loopTime = void 0, YTPlayer.state = 2, $YTPlayer.changeCoverImage( YTPlayer), jQuery(YTPlayer). YTPPause(), void YTPlayer.wrapper.CSSAnimate( { opacity: 0 }, YTPlayer.opt.fadeOnStartTime, function () { YTPlayer.controlBar.length && YTPlayer.controlBar.find('.mb_YTPPlayPause'). html( jQuery.mbYTPlayer.controls.play), $YTPlayer.changeCoverImage(); let e = jQuery.Event('YTPEnd'); e.time = YTPlayer.currentTime, jQuery(YTPlayer). trigger(e), YTPlayer.player.seekTo( YTPlayer.opt.startAt, !0); }); YTPlayer.player.loopTime = YTPlayer.player.loopTime ? ++YTPlayer.player.loopTime : 1, YTPlayer.opt.startAt = YTPlayer.opt.startAt || 1, YTPlayer.preventTrigger = !0, YTPlayer.state = 2, YTPlayer.player.seekTo( YTPlayer.opt.startAt, !0); } }, interval); }, checkForStart: function (YTPlayer) { let $YTPlayer = jQuery(YTPlayer); if (!jQuery.contains(document, YTPlayer)) return void $YTPlayer.YTPPlayerDestroy(); if (jQuery.mbYTPlayer.buildControls( YTPlayer), YTPlayer.overlay) if (YTPlayer.opt.addRaster) { let e = 'dot' == YTPlayer.opt.addRaster ? 'raster-dot' : 'raster'; YTPlayer.overlay.addClass( YTPlayer.isRetina ? e + ' retina' : e); } else YTPlayer.overlay.removeClass(function (e, r) { let t = r.split(' '), a = []; return jQuery.each(t, function (e, r) { /raster.*/.test(r) && a.push(r); }), a.push('retina'), a.join(' '); }); YTPlayer.preventTrigger = !0, YTPlayer.state = 2, YTPlayer.preventTrigger = !0, YTPlayer.player.mute(), YTPlayer.player.playVideo(), YTPlayer.isStarting = !0; let startAt = YTPlayer.start_from_last ? YTPlayer.start_from_last : YTPlayer.opt.startAt ? YTPlayer.opt.startAt : 1; return YTPlayer.preventTrigger = !0, YTPlayer.checkForStartAt = setInterval( function () { YTPlayer.player.mute(), YTPlayer.player.seekTo(startAt, !0); let canPlayVideo = YTPlayer.player.getVideoLoadedFraction() >= startAt / YTPlayer.player.getDuration(); if (jQuery.mbBrowser.mobile && (canPlayVideo = !0), YTPlayer.player.getDuration() > 0 && YTPlayer.player.getCurrentTime() >= startAt && canPlayVideo) { YTPlayer.start_from_last = null, YTPlayer.preventTrigger = !0, $YTPlayer.YTPPause(), clearInterval( YTPlayer.checkForStartAt), 'function' == typeof YTPlayer.opt.onReady && YTPlayer.opt.onReady( YTPlayer), YTPlayer.isReady = !0, $YTPlayer.YTPRemoveFilter(), YTPlayer.opt.addFilters ? $YTPlayer.YTPApplyFilters(YTPlayer.opt.addFilters) : $YTPlayer.YTPApplyFilters(), $YTPlayer.YTPEnableFilters(); let YTPready = jQuery.Event('YTPReady'); if (YTPready.time = YTPlayer.currentTime, $YTPlayer.trigger( YTPready), YTPlayer.state = 2, YTPlayer.opt.mute ? $YTPlayer.YTPMute() : YTPlayer.opt.autoPlay ? (console.debug( 'We muted the audio to make the video \'auto-play\' according with the latest vendor policy. The audio will unmute at the first user interaction with the page'), YTPlayer.player.mute(), YTPlayer.forcedMuted = !0, jQuery( document). on('mousedown.YTPstartAudio', function () { YTPlayer.forcedMuted && (console.debug( 'AAAAAAA'), YTPlayer.player.unMute(), YTPlayer.forcedMuted = !1, jQuery( document). off('mousedown.YTPstartAudio')); }), jQuery(window). on('scroll', function () {console.debug('AAAAA');})) : YTPlayer.player.unMute(), 'undefined' != typeof _gaq && eval(YTPlayer.opt.gaTrack) ? _gaq.push([ '_trackEvent', 'YTPlayer', 'Play', YTPlayer.hasData ? YTPlayer.videoData.title : YTPlayer.videoID.toString()]) : 'undefined' != typeof ga && eval(YTPlayer.opt.gaTrack) && ga('send', 'event', 'YTPlayer', 'play', YTPlayer.hasData ? YTPlayer.videoData.title : YTPlayer.videoID.toString()), YTPlayer.opt.autoPlay) { let e = jQuery.Event('YTPStart'); e.time = YTPlayer.currentTime, jQuery(YTPlayer). trigger(e), YTPlayer.isStarting = !1, 'mac' === jQuery.mbBrowser.os.name && jQuery.mbBrowser.safari && jQuery('body'). one('mousedown.YTPstart', function () {$YTPlayer.YTPPlay();}), $YTPlayer.YTPPlay(), console.timeEnd( YTPTimerLabels.startPlaying); } else YTPlayer.preventTrigger = !0, $YTPlayer.YTPPause(), YTPlayer.start_from_last && YTPlayer.player.seekTo(startAt, !0), setTimeout( function () { YTPlayer.preventTrigger = !0, $YTPlayer.YTPPause(), YTPlayer.isPlayer || (YTPlayer.opt.coverImage ? (YTPlayer.wrapper.css( { opacity: 0 }), setTimeout( function () {$YTPlayer.changeCoverImage();}, YTPlayer.opt.fadeOnStartTime)) : (jQuery(YTPlayer.playerEl). CSSAnimate({ opacity: 1 }, YTPlayer.opt.fadeOnStartTime), YTPlayer.wrapper.CSSAnimate( { opacity: YTPlayer.isAlone ? 1 : YTPlayer.opt.opacity, }, YTPlayer.opt.fadeOnStartTime))), YTPlayer.isStarting = !1; }, 500), YTPlayer.controlBar.length && YTPlayer.controlBar.find('.mb_YTPPlayPause'). html(jQuery.mbYTPlayer.controls.play); YTPlayer.isPlayer && !YTPlayer.opt.autoPlay && YTPlayer.loading && YTPlayer.loading.length && (YTPlayer.loading.html('Ready'), setTimeout( function () {YTPlayer.loading.fadeOut();}, 100)), YTPlayer.controlBar && YTPlayer.controlBar.length && YTPlayer.controlBar.slideDown(1e3); } 'mac' === jQuery.mbBrowser.os.name && jQuery.mbBrowser.safari && (YTPlayer.player.playVideo(), startAt >= 0 && YTPlayer.player.seekTo(startAt, !0)); }, 100), $YTPlayer; }, getTime: function () { let e = this.get(0); return jQuery.mbYTPlayer.formatTime(e.currentTime); }, getTotalTime: function () { let e = this.get(0); return jQuery.mbYTPlayer.formatTime(e.totalTime); }, formatTime: function (e) { let r = Math.floor(e / 60), t = Math.floor(e - 60 * r); return (r <= 9 ? '0' + r : r) + ' : ' + (t <= 9 ? '0' + t : t); }, setAnchor: function (e) {this.optimizeDisplay(e);}, getAnchor: function () {return this.get(0).opt.anchor;}, setAbundance: function (e, r) { let t = this.get(0); return r && (t.opt.abundance = e), this.optimizeDisplay( t.opt.anchor, e), this; }, getAbundance: function () {return this.get(0).opt.abundance;}, setOption: function (e, r) {return this.get(0).opt[e] = r, this;}, }, jQuery.fn.optimizeDisplay = function (anchor, abundanceX) { let YTPlayer = this.get(0), vid = {}, el = YTPlayer.wrapper, iframe = jQuery(YTPlayer.playerEl); YTPlayer.opt.anchor = anchor || YTPlayer.opt.anchor, YTPlayer.opt.anchor = 'undefined ' != typeof YTPlayer.opt.anchor ? YTPlayer.opt.anchor : 'center,center'; let YTPAlign = YTPlayer.opt.anchor.split(','), ab = abundanceX || YTPlayer.opt.abundance; if (YTPlayer.opt.optimizeDisplay) { let abundance = el.height() * ab, win = {}; win.width = el.outerWidth(), win.height = el.outerHeight() + abundance, YTPlayer.opt.ratio = 'auto' === YTPlayer.opt.ratio ? 16 / 9 : YTPlayer.opt.ratio, YTPlayer.opt.ratio = eval( YTPlayer.opt.ratio), vid.width = win.width + abundance, vid.height = Math.ceil( vid.width / YTPlayer.opt.ratio), vid.marginTop = Math.ceil( -(vid.height - win.height + abundance) / 2), vid.marginLeft = -abundance / 2; let lowest = vid.height < win.height; lowest && (vid.height = win.height + abundance, vid.width = Math.ceil( vid.height * YTPlayer.opt.ratio), vid.marginTop = -abundance / 2, vid.marginLeft = Math.ceil(-(vid.width - win.width) / 2)); for (let e in YTPAlign) if (YTPAlign.hasOwnProperty(e)) { let r = YTPAlign[e].replace(/ /g, ''); switch (r) { case'top': vid.marginTop = -abundance; break; case'bottom': vid.marginTop = Math.ceil( -(vid.height - win.height) - abundance / 2); break; case'left': vid.marginLeft = -abundance; break; case'right': vid.marginLeft = Math.ceil( -(vid.width - win.width) + abundance / 2); } } } else vid.width = '100%', vid.height = '100%', vid.marginTop = 0, vid.marginLeft = 0; iframe.css({ width: vid.width, height: vid.height, marginTop: vid.marginTop, marginLeft: vid.marginLeft, maxWidth: 'initial', }); }, jQuery.shuffle = function (e) { let r = e.slice(), t = r.length, a = t; for (; a--;) { let e = parseInt(Math.random() * t), o = r[a]; r[a] = r[e], r[e] = o; } return r; }, jQuery.fn.unselectable = function () { return this.each(function () { jQuery(this). css({ '-moz-user-select': 'none', '-webkit-user-select': 'none', 'user-select': 'none', }). attr('unselectable', 'on'); }); }, jQuery.fn.YTPlayer = jQuery.mbYTPlayer.buildPlayer, jQuery.fn.mb_YTPlayer = jQuery.mbYTPlayer.buildPlayer, jQuery.fn.YTPCheckForState = jQuery.mbYTPlayer.checkForState, jQuery.fn.YTPGetPlayer = jQuery.mbYTPlayer.getPlayer, jQuery.fn.YTPGetVideoID = jQuery.mbYTPlayer.getVideoID, jQuery.fn.YTPGetPlaylistID = jQuery.mbYTPlayer.getPlaylistID, jQuery.fn.YTPChangeVideo = jQuery.fn.YTPChangeMovie = jQuery.mbYTPlayer.changeVideo, jQuery.fn.YTPPlayerDestroy = jQuery.mbYTPlayer.playerDestroy, jQuery.fn.YTPPlay = jQuery.mbYTPlayer.play, jQuery.fn.YTPTogglePlay = jQuery.mbYTPlayer.togglePlay, jQuery.fn.YTPStop = jQuery.mbYTPlayer.stop, jQuery.fn.YTPPause = jQuery.mbYTPlayer.pause, jQuery.fn.YTPSeekTo = jQuery.mbYTPlayer.seekTo, jQuery.fn.YTPGetPlaybackRate = jQuery.mbYTPlayer.getPlaybackRate, jQuery.fn.YTPSetPlaybackRate = jQuery.mbYTPlayer.setPlaybackRate, jQuery.fn.changeCoverImage = jQuery.mbYTPlayer.changeCoverImage, jQuery.fn.YTPlaylist = jQuery.mbYTPlayer.playlist, jQuery.fn.YTPPlayNext = jQuery.mbYTPlayer.playNext, jQuery.fn.YTPPlayPrev = jQuery.mbYTPlayer.playPrev, jQuery.fn.YTPPlayIndex = jQuery.mbYTPlayer.playIndex, jQuery.fn.YTPMute = jQuery.mbYTPlayer.mute, jQuery.fn.YTPUnmute = jQuery.mbYTPlayer.unmute, jQuery.fn.YTPToggleVolume = jQuery.mbYTPlayer.toggleVolume, jQuery.fn.YTPSetVolume = jQuery.mbYTPlayer.setVolume, jQuery.fn.YTPGetVolume = jQuery.mbYTPlayer.getVolume, jQuery.fn.YTPGetVideoData = jQuery.mbYTPlayer.getVideoData, jQuery.fn.YTPFullscreen = jQuery.mbYTPlayer.fullscreen, jQuery.fn.YTPToggleLoops = jQuery.mbYTPlayer.toggleLoops, jQuery.fn.YTPManageProgress = jQuery.mbYTPlayer.manageProgress, jQuery.fn.YTPSetVideoQuality = jQuery.mbYTPlayer.setVideoQuality, jQuery.fn.YTPGetVideoQuality = jQuery.mbYTPlayer.getVideoQuality, jQuery.fn.YTPApplyFilter = jQuery.mbYTPlayer.applyFilter, jQuery.fn.YTPApplyFilters = jQuery.mbYTPlayer.applyFilters, jQuery.fn.YTPToggleFilter = jQuery.mbYTPlayer.toggleFilter, jQuery.fn.YTPToggleFilters = jQuery.mbYTPlayer.toggleFilters, jQuery.fn.YTPRemoveFilter = jQuery.mbYTPlayer.removeFilter, jQuery.fn.YTPDisableFilters = jQuery.mbYTPlayer.disableFilters, jQuery.fn.YTPEnableFilters = jQuery.mbYTPlayer.enableFilters, jQuery.fn.YTPGetFilters = jQuery.mbYTPlayer.getFilters, jQuery.fn.YTPGetTime = jQuery.mbYTPlayer.getTime, jQuery.fn.YTPGetTotalTime = jQuery.mbYTPlayer.getTotalTime, jQuery.fn.YTPAddMask = jQuery.mbYTPlayer.addMask, jQuery.fn.YTPRemoveMask = jQuery.mbYTPlayer.removeMask, jQuery.fn.YTPToggleMask = jQuery.mbYTPlayer.toggleMask, jQuery.fn.YTPGetAbundance = jQuery.mbYTPlayer.getAbundance, jQuery.fn.YTPSetAbundance = jQuery.mbYTPlayer.setAbundance, jQuery.fn.YTPSetAnchor = jQuery.mbYTPlayer.setAnchor, jQuery.fn.YTPGetAnchor = jQuery.mbYTPlayer.getAnchor, jQuery.fn.YTPSetOption = jQuery.mbYTPlayer.setOption; }(jQuery, ytp); var nAgt = navigator.userAgent; function isTouchSupported () { var e = nAgt.msMaxTouchPoints, r = 'ontouchstart' in document.createElement('div'); return !(!e && !r); } jQuery.browser = jQuery.browser || {}, jQuery.browser.mozilla = !1, jQuery.browser.webkit = !1, jQuery.browser.opera = !1, jQuery.browser.safari = !1, jQuery.browser.chrome = !1, jQuery.browser.androidStock = !1, jQuery.browser.msie = !1, jQuery.browser.edge = !1, jQuery.browser.ua = nAgt; var getOS = function () { var e = { version: 'Unknown version', name: 'Unknown OS', }; return -1 != navigator.appVersion.indexOf('Win') && (e.name = 'Windows'), -1 != navigator.appVersion.indexOf('Mac') && 0 > navigator.appVersion.indexOf('Mobile') && (e.name = 'Mac'), -1 != navigator.appVersion.indexOf('Linux') && (e.name = 'Linux'), /Mac OS X/.test(nAgt) && !/Mobile/.test(nAgt) && (e.version = /Mac OS X ([\._\d]+)/.exec( nAgt)[1], e.version = e.version.replace(/_/g, '.'). substring(0, 5)), /Windows/.test(nAgt) && (e.version = 'Unknown.Unknown'), /Windows NT 5.1/.test(nAgt) && (e.version = '5.1'), /Windows NT 6.0/.test(nAgt) && (e.version = '6.0'), /Windows NT 6.1/.test(nAgt) && (e.version = '6.1'), /Windows NT 6.2/.test(nAgt) && (e.version = '6.2'), /Windows NT 10.0/.test(nAgt) && (e.version = '10.0'), /Linux/.test(nAgt) && /Linux/.test(nAgt) && (e.version = 'Unknown.Unknown'), e.name = e.name.toLowerCase(), e.major_version = 'Unknown', e.minor_version = 'Unknown', 'Unknown.Unknown' != e.version && (e.major_version = parseFloat( e.version.split('.')[0]), e.minor_version = parseFloat( e.version.split('.')[1])), e; }, nameOffset, verOffset, ix; if (jQuery.browser.os = getOS(), jQuery.browser.hasTouch = isTouchSupported(), jQuery.browser.name = navigator.appName, jQuery.browser.fullVersion = '' + parseFloat(navigator.appVersion), jQuery.browser.majorVersion = parseInt( navigator.appVersion, 10), -1 != (verOffset = nAgt.indexOf( 'Opera'))) jQuery.browser.opera = !0, jQuery.browser.name = 'Opera', jQuery.browser.fullVersion = nAgt.substring( verOffset + 6), -1 != (verOffset = nAgt.indexOf('Version')) && (jQuery.browser.fullVersion = nAgt.substring(verOffset + 8)); else if (-1 != (verOffset = nAgt.indexOf( 'OPR'))) jQuery.browser.opera = !0, jQuery.browser.name = 'Opera', jQuery.browser.fullVersion = nAgt.substring( verOffset + 4); else if (-1 != (verOffset = nAgt.indexOf( 'MSIE'))) jQuery.browser.msie = !0, jQuery.browser.name = 'Microsoft Internet Explorer', jQuery.browser.fullVersion = nAgt.substring( verOffset + 5); else if (-1 != nAgt.indexOf('Trident')) { jQuery.browser.msie = !0, jQuery.browser.name = 'Microsoft Internet Explorer'; var start = nAgt.indexOf('rv:') + 3, end = start + 4; jQuery.browser.fullVersion = nAgt.substring(start, end); } else -1 != (verOffset = nAgt.indexOf('Edge')) ? (jQuery.browser.edge = !0, jQuery.browser.name = 'Microsoft Edge', jQuery.browser.fullVersion = nAgt.substring( verOffset + 5)) : -1 != (verOffset = nAgt.indexOf('Chrome')) ? (jQuery.browser.webkit = !0, jQuery.browser.chrome = !0, jQuery.browser.name = 'Chrome', jQuery.browser.fullVersion = nAgt.substring( verOffset + 7)) : -1 < nAgt.indexOf('mozilla/5.0') && -1 < nAgt.indexOf('android ') && -1 < nAgt.indexOf('applewebkit') && !(-1 < nAgt.indexOf('chrome')) ? (verOffset = nAgt.indexOf( 'Chrome'), jQuery.browser.webkit = !0, jQuery.browser.androidStock = !0, jQuery.browser.name = 'androidStock', jQuery.browser.fullVersion = nAgt.substring( verOffset + 7)) : -1 != (verOffset = nAgt.indexOf('Safari')) ? (jQuery.browser.webkit = !0, jQuery.browser.safari = !0, jQuery.browser.name = 'Safari', jQuery.browser.fullVersion = nAgt.substring( verOffset + 7), -1 != (verOffset = nAgt.indexOf('Version')) && (jQuery.browser.fullVersion = nAgt.substring(verOffset + 8))) : -1 != (verOffset = nAgt.indexOf('AppleWebkit')) ? (jQuery.browser.webkit = !0, jQuery.browser.safari = !0, jQuery.browser.name = 'Safari', jQuery.browser.fullVersion = nAgt.substring( verOffset + 7), -1 != (verOffset = nAgt.indexOf('Version')) && (jQuery.browser.fullVersion = nAgt.substring( verOffset + 8))) : -1 != (verOffset = nAgt.indexOf('Firefox')) ? (jQuery.browser.mozilla = !0, jQuery.browser.name = 'Firefox', jQuery.browser.fullVersion = nAgt.substring( verOffset + 8)) : (nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/')) && (jQuery.browser.name = nAgt.substring(nameOffset, verOffset), jQuery.browser.fullVersion = nAgt.substring( verOffset + 1), jQuery.browser.name.toLowerCase() == jQuery.browser.name.toUpperCase() && (jQuery.browser.name = navigator.appName)); function uncamel (e) { return e.replace(/([A-Z])/g, function (e) {return '-' + e.toLowerCase();}); } function setUnit (e, r) { return 'string' != typeof e || e.match(/^[\-0-9\.]+jQuery/) ? '' + e + r : e; } function setFilter (e, r, t) { var a = uncamel(r), o = jQuery.browser.mozilla ? '' : jQuery.CSS.sfx; e[o + 'filter'] = e[o + 'filter'] || '', t = setUnit( t > jQuery.CSS.filters[r].max ? jQuery.CSS.filters[r].max : t, jQuery.CSS.filters[r].unit), e[o + 'filter'] += a + '(' + t + ') ', delete e[r]; } -1 != (ix = jQuery.browser.fullVersion.indexOf(';')) && (jQuery.browser.fullVersion = jQuery.browser.fullVersion.substring(0, ix)), -1 != (ix = jQuery.browser.fullVersion.indexOf(' ')) && (jQuery.browser.fullVersion = jQuery.browser.fullVersion.substring(0, ix)), jQuery.browser.majorVersion = parseInt( '' + jQuery.browser.fullVersion, 10), isNaN(jQuery.browser.majorVersion) && (jQuery.browser.fullVersion = '' + parseFloat(navigator.appVersion), jQuery.browser.majorVersion = parseInt( navigator.appVersion, 10)), jQuery.browser.version = jQuery.browser.majorVersion, jQuery.browser.android = /Android/i.test( nAgt), jQuery.browser.blackberry = /BlackBerry|BB|PlayBook/i.test( nAgt), jQuery.browser.ios = /iPhone|iPad|iPod|webOS/i.test( nAgt), jQuery.browser.operaMobile = /Opera Mini/i.test( nAgt), jQuery.browser.windowsMobile = /IEMobile|Windows Phone/i.test( nAgt), jQuery.browser.kindle = /Kindle|Silk/i.test( nAgt), jQuery.browser.mobile = jQuery.browser.android || jQuery.browser.blackberry || jQuery.browser.ios || jQuery.browser.windowsMobile || jQuery.browser.operaMobile || jQuery.browser.kindle, jQuery.isMobile = jQuery.browser.mobile, jQuery.isTablet = jQuery.browser.mobile && 765 < jQuery(window).width(), jQuery.isAndroidDefault = jQuery.browser.android && !/chrome/i.test( nAgt), jQuery.mbBrowser = jQuery.browser, jQuery.browser.versionCompare = function ( e, r) { if ('stringstring' != typeof e + typeof r) return !1; for (var t = e.split('.'), a = r.split('.'), o = 0, n = Math.max(t.length, a.length); o < n; o++) { if (t[o] && !a[o] && 0 < parseInt(t[o]) || parseInt(t[o]) > parseInt(a[o])) return 1; if (a[o] && !t[o] && 0 < parseInt(a[o]) || parseInt(t[o]) < parseInt(a[o])) return -1; } return 0; }, jQuery.support.CSStransition = function () { var e = (document.body || document.documentElement).style; return void 0 !== e.transition || void 0 !== e.WebkitTransition || void 0 !== e.MozTransition || void 0 !== e.MsTransition || void 0 !== e.OTransition; }(), jQuery.CSS = { name: 'mb.CSSAnimate', author: 'Matteo Bicocchi', version: '2.0.0', transitionEnd: 'transitionEnd', sfx: '', filters: { blur: { min: 0, max: 100, unit: 'px' }, brightness: { min: 0, max: 400, unit: '%' }, contrast: { min: 0, max: 400, unit: '%' }, grayscale: { min: 0, max: 100, unit: '%' }, hueRotate: { min: 0, max: 360, unit: 'deg' }, invert: { min: 0, max: 100, unit: '%' }, saturate: { min: 0, max: 400, unit: '%' }, sepia: { min: 0, max: 100, unit: '%' }, }, normalizeCss: function (e) { var r = jQuery.extend(!0, {}, e); for (var t in jQuery.browser.webkit || jQuery.browser.opera ? jQuery.CSS.sfx = '-webkit-' : jQuery.browser.mozilla ? jQuery.CSS.sfx = '-moz-' : jQuery.browser.msie && (jQuery.CSS.sfx = '-ms-'), jQuery.CSS.sfx = '', r) { if ('transform' === t && (r[jQuery.CSS.sfx + 'transform'] = r[t], delete r[t]), 'transform-origin' === t && (r[jQuery.CSS.sfx + 'transform-origin'] = e[t], delete r[t]), 'filter' !== t || jQuery.browser.mozilla || (r[jQuery.CSS.sfx + 'filter'] = e[t], delete r[t]), 'blur' === t && setFilter(r, 'blur', e[t]), 'brightness' === t && setFilter(r, 'brightness', e[t]), 'contrast' === t && setFilter(r, 'contrast', e[t]), 'grayscale' === t && setFilter(r, 'grayscale', e[t]), 'hueRotate' === t && setFilter(r, 'hueRotate', e[t]), 'invert' === t && setFilter(r, 'invert', e[t]), 'saturate' === t && setFilter(r, 'saturate', e[t]), 'sepia' === t && setFilter(r, 'sepia', e[t]), 'x' === t) { var a = jQuery.CSS.sfx + 'transform'; r[a] = r[a] || '', r[a] += ' translateX(' + setUnit(e[t], 'px') + ')', delete r[t]; } 'y' === t && (r[a = jQuery.CSS.sfx + 'transform'] = r[a] || '', r[a] += ' translateY(' + setUnit(e[t], 'px') + ')', delete r[t]), 'z' === t && (r[a = jQuery.CSS.sfx + 'transform'] = r[a] || '', r[a] += ' translateZ(' + setUnit(e[t], 'px') + ')', delete r[t]), 'rotate' === t && (r[a = jQuery.CSS.sfx + 'transform'] = r[a] || '', r[a] += ' rotate(' + setUnit(e[t], 'deg') + ')', delete r[t]), 'rotateX' === t && (r[a = jQuery.CSS.sfx + 'transform'] = r[a] || '', r[a] += ' rotateX(' + setUnit(e[t], 'deg') + ')', delete r[t]), 'rotateY' === t && (r[a = jQuery.CSS.sfx + 'transform'] = r[a] || '', r[a] += ' rotateY(' + setUnit(e[t], 'deg') + ')', delete r[t]), 'rotateZ' === t && (r[a = jQuery.CSS.sfx + 'transform'] = r[a] || '', r[a] += ' rotateZ(' + setUnit(e[t], 'deg') + ')', delete r[t]), 'scale' === t && (r[a = jQuery.CSS.sfx + 'transform'] = r[a] || '', r[a] += ' scale(' + setUnit(e[t], '') + ')', delete r[t]), 'scaleX' === t && (r[a = jQuery.CSS.sfx + 'transform'] = r[a] || '', r[a] += ' scaleX(' + setUnit(e[t], '') + ')', delete r[t]), 'scaleY' === t && (r[a = jQuery.CSS.sfx + 'transform'] = r[a] || '', r[a] += ' scaleY(' + setUnit(e[t], '') + ')', delete r[t]), 'scaleZ' === t && (r[a = jQuery.CSS.sfx + 'transform'] = r[a] || '', r[a] += ' scaleZ(' + setUnit(e[t], '') + ')', delete r[t]), 'skew' === t && (r[a = jQuery.CSS.sfx + 'transform'] = r[a] || '', r[a] += ' skew(' + setUnit(e[t], 'deg') + ')', delete r[t]), 'skewX' === t && (r[a = jQuery.CSS.sfx + 'transform'] = r[a] || '', r[a] += ' skewX(' + setUnit(e[t], 'deg') + ')', delete r[t]), 'skewY' === t && (r[a = jQuery.CSS.sfx + 'transform'] = r[a] || '', r[a] += ' skewY(' + setUnit(e[t], 'deg') + ')', delete r[t]), 'perspective' === t && (r[a = jQuery.CSS.sfx + 'transform'] = r[a] || '', r[a] += ' perspective(' + setUnit(e[t], 'px') + ')', delete r[t]); } return r; }, getProp: function (e) { var r, t = []; for (r in e) 0 > t.indexOf(r) && t.push(uncamel(r)); return t.join(','); }, animate: function (e, r, t, a, o) { return this.each(function () { function n () { i.called = !0, i.CSSAIsRunning = !1, l.off( jQuery.CSS.transitionEnd + '.' + i.id), clearTimeout( i.timeout), l.css(jQuery.CSS.sfx + 'transition', ''), 'function' == typeof o && o.apply(i), 'function' == typeof i.CSSqueue && (i.CSSqueue(), i.CSSqueue = null); } var i = this, l = jQuery(this); i.id = i.id || 'CSSA_' + (new Date).getTime(); var s = s || { type: 'noEvent' }; if (i.CSSAIsRunning && i.eventType == s.type && !jQuery.browser.msie && 9 >= jQuery.browser.version) i.CSSqueue = function () { l.CSSAnimate(e, r, t, a, o); }; else if (i.CSSqueue = null, i.eventType = s.type, 0 !== l.length && e) { if (e = jQuery.normalizeCss( e), i.CSSAIsRunning = !0, 'function' == typeof r && (o = r, r = jQuery.fx.speeds._default), 'function' == typeof t && (a = t, t = 0), 'string' == typeof t && (o = t, t = 0), 'function' == typeof a && (o = a, a = 'cubic-bezier(0.65,0.03,0.36,0.72)'), 'string' == typeof r) for (var u in jQuery.fx.speeds) { if (r == u) { r = jQuery.fx.speeds[u]; break; } r = jQuery.fx.speeds._default; } if (r || (r = jQuery.fx.speeds._default), 'string' == typeof o && (a = o, o = null), jQuery.support.CSStransition) { var y = { default: 'ease', in: 'ease-in', out: 'ease-out', 'in-out': 'ease-in-out', snap: 'cubic-bezier(0,1,.5,1)', easeOutCubic: 'cubic-bezier(.215,.61,.355,1)', easeInOutCubic: 'cubic-bezier(.645,.045,.355,1)', easeInCirc: 'cubic-bezier(.6,.04,.98,.335)', easeOutCirc: 'cubic-bezier(.075,.82,.165,1)', easeInOutCirc: 'cubic-bezier(.785,.135,.15,.86)', easeInExpo: 'cubic-bezier(.95,.05,.795,.035)', easeOutExpo: 'cubic-bezier(.19,1,.22,1)', easeInOutExpo: 'cubic-bezier(1,0,0,1)', easeInQuad: 'cubic-bezier(.55,.085,.68,.53)', easeOutQuad: 'cubic-bezier(.25,.46,.45,.94)', easeInOutQuad: 'cubic-bezier(.455,.03,.515,.955)', easeInQuart: 'cubic-bezier(.895,.03,.685,.22)', easeOutQuart: 'cubic-bezier(.165,.84,.44,1)', easeInOutQuart: 'cubic-bezier(.77,0,.175,1)', easeInQuint: 'cubic-bezier(.755,.05,.855,.06)', easeOutQuint: 'cubic-bezier(.23,1,.32,1)', easeInOutQuint: 'cubic-bezier(.86,0,.07,1)', easeInSine: 'cubic-bezier(.47,0,.745,.715)', easeOutSine: 'cubic-bezier(.39,.575,.565,1)', easeInOutSine: 'cubic-bezier(.445,.05,.55,.95)', easeInBack: 'cubic-bezier(.6,-.28,.735,.045)', easeOutBack: 'cubic-bezier(.175, .885,.32,1.275)', easeInOutBack: 'cubic-bezier(.68,-.55,.265,1.55)', }; y[a] && (a = y[a]), l.off(jQuery.CSS.transitionEnd + '.' + i.id), y = jQuery.CSS.getProp(e); var d = {}; jQuery.extend(d, e), d[jQuery.CSS.sfx + 'transition-property'] = y, d[jQuery.CSS.sfx + 'transition-duration'] = r + 'ms', d[jQuery.CSS.sfx + 'transition-delay'] = t + 'ms', d[jQuery.CSS.sfx + 'transition-timing-function'] = a, setTimeout(function () { l.one(jQuery.CSS.transitionEnd + '.' + i.id, n), l.css( d); }, 1), i.timeout = setTimeout(function () { i.called || !o ? (i.called = !1, i.CSSAIsRunning = !1) : (l.css(jQuery.CSS.sfx + 'transition', ''), o.apply(i), i.CSSAIsRunning = !1, 'function' == typeof i.CSSqueue && (i.CSSqueue(), i.CSSqueue = null)); }, r + t + 10); } else { for (y in e) 'transform' === y && delete e[y], 'filter' === y && delete e[y], 'transform-origin' === y && delete e[y], 'auto' === e[y] && delete e[y], 'x' === y && (s = e[y], e[u = 'left'] = s, delete e[y]), 'y' === y && (s = e[y], e[u = 'top'] = s, delete e[y]), '-ms-transform' !== y && '-ms-filter' !== y || delete e[y]; l.delay(t).animate(e, r, o); } } }); }, }, jQuery.fn.CSSAnimate = jQuery.CSS.animate, jQuery.normalizeCss = jQuery.CSS.normalizeCss, jQuery.fn.css3 = function (e) { return this.each(function () { var r = jQuery(this), t = jQuery.normalizeCss(e); r.css(t); }); }, function (e) { e.simpleSlider = { defaults: { initialval: 0, maxval: 100, orientation: 'h', readonly: !1, callback: !1, }, events: { start: e.browser.mobile ? 'touchstart' : 'mousedown', end: e.browser.mobile ? 'touchend' : 'mouseup', move: e.browser.mobile ? 'touchmove' : 'mousemove', }, init: function (r) { return this.each(function () { var t = this, a = e(t); a.addClass('simpleSlider'), t.opt = {}, e.extend(t.opt, e.simpleSlider.defaults, r), e.extend(t.opt, a.data()); var o = 'h' === t.opt.orientation ? 'horizontal' : 'vertical'; o = e('<div/>').addClass('level').addClass(o), a.prepend( o), t.level = o, a.css({ cursor: 'default' }), 'auto' == t.opt.maxval && (t.opt.maxval = e(t). outerWidth()), a.updateSliderVal(), t.opt.readonly || (a.on(e.simpleSlider.events.start, function (r) { e.browser.mobile && (r = r.changedTouches[0]), t.canSlide = !0, a.updateSliderVal( r), 'h' === t.opt.orientation ? a.css( { cursor: 'col-resize' }) : a.css( { cursor: 'row-resize' }), t.lastVal = t.val, e.browser.mobile || (r.preventDefault(), r.stopPropagation()); }), e(document). on(e.simpleSlider.events.move, function (r) { e.browser.mobile && (r = r.changedTouches[0]), t.canSlide && (e(document). css({ cursor: 'default' }), a.updateSliderVal( r), e.browser.mobile || (r.preventDefault(), r.stopPropagation())); }). on(e.simpleSlider.events.end, function () { e(document). css({ cursor: 'auto' }), t.canSlide = !1, a.css( { cursor: 'auto' }); })); }); }, updateSliderVal: function (r) { var t = this.get(0); if (t.opt) { t.opt.initialval = 'number' == typeof t.opt.initialval ? t.opt.initialval : t.opt.initialval(t); var a = e(t).outerWidth(), o = e(t).outerHeight(); t.x = 'object' == typeof r ? r.clientX + document.body.scrollLeft - this.offset().left : 'number' == typeof r ? r * a / t.opt.maxval : t.opt.initialval * a / t.opt.maxval, t.y = 'object' == typeof r ? r.clientY + document.body.scrollTop - this.offset().top : 'number' == typeof r ? (t.opt.maxval - t.opt.initialval - r) * o / t.opt.maxval : t.opt.initialval * o / t.opt.maxval, t.y = this.outerHeight() - t.y, t.scaleX = t.x * t.opt.maxval / a, t.scaleY = t.y * t.opt.maxval / o, t.outOfRangeX = t.scaleX > t.opt.maxval ? t.scaleX - t.opt.maxval : 0 > t.scaleX ? t.scaleX : 0, t.outOfRangeY = t.scaleY > t.opt.maxval ? t.scaleY - t.opt.maxval : 0 > t.scaleY ? t.scaleY : 0, t.outOfRange = 'h' === t.opt.orientation ? t.outOfRangeX : t.outOfRangeY, t.value = void 0 !== r ? 'h' === t.opt.orientation ? t.x >= this.outerWidth() ? t.opt.maxval : 0 >= t.x ? 0 : t.scaleX : t.y >= this.outerHeight() ? t.opt.maxval : 0 >= t.y ? 0 : t.scaleY : 'h' === t.opt.orientation ? t.scaleX : t.scaleY, 'h' === t.opt.orientation ? t.level.width( Math.floor(100 * t.x / a) + '%') : t.level.height( Math.floor(100 * t.y / o)), t.lastVal === t.value && ('h' === t.opt.orientation && (t.x >= this.outerWidth() || 0 >= t.x) || 'h' !== t.opt.orientation && (t.y >= this.outerHeight() || 0 >= t.y)) || ('function' == typeof t.opt.callback && t.opt.callback(t), t.lastVal = t.value); } }, }, e.fn.simpleSlider = e.simpleSlider.init, e.fn.updateSliderVal = e.simpleSlider.updateSliderVal; }(jQuery), function (e) { e.mbCookie = { set: function (e, r, t, a) { 'object' == typeof r && (r = JSON.stringify(r)), a = a ? '; domain=' + a : ''; var o = new Date, n = ''; 0 < t && (o.setTime(o.getTime() + 864e5 * t), n = '; expires=' + o.toGMTString()), document.cookie = e + '=' + r + n + '; path=/' + a; }, get: function (e) { e += '='; for (var r = document.cookie.split(';'), t = 0; t < r.length; t++) { for (var a = r[t]; " " == a.charAt(0);) a = a.substring(1, a.length); if (0 == a.indexOf(e)) try { return JSON.parse(a.substring(e.length, a.length)); } catch (r) {return a.substring(e.length, a.length);} } return null; }, remove: function (r) {e.mbCookie.set(r, '', -1);}, }, e.mbStorage = { set: function (e, r) { 'object' == typeof r && (r = JSON.stringify(r)), localStorage.setItem(e, r); }, get: function (e) { if (!localStorage[e]) return null; try { return JSON.parse(localStorage[e]); } catch (r) {return localStorage[e];} }, remove: function (e) { e ? localStorage.removeItem(e) : localStorage.clear(); }, }; }(jQuery); var nAgt = navigator.userAgent; function isTouchSupported () { var e = nAgt.msMaxTouchPoints, r = 'ontouchstart' in document.createElement('div'); return !(!e && !r); } jQuery.mbBrowser = {}, jQuery.mbBrowser.mozilla = !1, jQuery.mbBrowser.webkit = !1, jQuery.mbBrowser.opera = !1, jQuery.mbBrowser.safari = !1, jQuery.mbBrowser.chrome = !1, jQuery.mbBrowser.androidStock = !1, jQuery.mbBrowser.msie = !1, jQuery.mbBrowser.edge = !1, jQuery.mbBrowser.ua = nAgt; var getOS = function () { var e = { version: 'Unknown version', name: 'Unknown OS', }; return -1 != navigator.appVersion.indexOf('Win') && (e.name = 'Windows'), -1 != navigator.appVersion.indexOf('Mac') && 0 > navigator.appVersion.indexOf('Mobile') && (e.name = 'Mac'), -1 != navigator.appVersion.indexOf('Linux') && (e.name = 'Linux'), /Mac OS X/.test(nAgt) && !/Mobile/.test(nAgt) && (e.version = /Mac OS X ([\._\d]+)/.exec( nAgt)[1], e.version = e.version.replace(/_/g, '.'). substring(0, 5)), /Windows/.test(nAgt) && (e.version = 'Unknown.Unknown'), /Windows NT 5.1/.test(nAgt) && (e.version = '5.1'), /Windows NT 6.0/.test(nAgt) && (e.version = '6.0'), /Windows NT 6.1/.test(nAgt) && (e.version = '6.1'), /Windows NT 6.2/.test(nAgt) && (e.version = '6.2'), /Windows NT 10.0/.test(nAgt) && (e.version = '10.0'), /Linux/.test(nAgt) && /Linux/.test(nAgt) && (e.version = 'Unknown.Unknown'), e.name = e.name.toLowerCase(), e.major_version = 'Unknown', e.minor_version = 'Unknown', 'Unknown.Unknown' != e.version && (e.major_version = parseFloat( e.version.split('.')[0]), e.minor_version = parseFloat( e.version.split('.')[1])), e; }, nameOffset, verOffset, ix; if (jQuery.mbBrowser.os = getOS(), jQuery.mbBrowser.hasTouch = isTouchSupported(), jQuery.mbBrowser.name = navigator.appName, jQuery.mbBrowser.fullVersion = '' + parseFloat(navigator.appVersion), jQuery.mbBrowser.majorVersion = parseInt( navigator.appVersion, 10), -1 != (verOffset = nAgt.indexOf( 'Opera'))) jQuery.mbBrowser.opera = !0, jQuery.mbBrowser.name = 'Opera', jQuery.mbBrowser.fullVersion = nAgt.substring( verOffset + 6), -1 != (verOffset = nAgt.indexOf('Version')) && (jQuery.mbBrowser.fullVersion = nAgt.substring(verOffset + 8)); else if (-1 != (verOffset = nAgt.indexOf( 'OPR'))) jQuery.mbBrowser.opera = !0, jQuery.mbBrowser.name = 'Opera', jQuery.mbBrowser.fullVersion = nAgt.substring( verOffset + 4); else if (-1 != (verOffset = nAgt.indexOf( 'MSIE'))) jQuery.mbBrowser.msie = !0, jQuery.mbBrowser.name = 'Microsoft Internet Explorer', jQuery.mbBrowser.fullVersion = nAgt.substring( verOffset + 5); else if (-1 != nAgt.indexOf('Trident')) { jQuery.mbBrowser.msie = !0, jQuery.mbBrowser.name = 'Microsoft Internet Explorer'; var start = nAgt.indexOf('rv:') + 3, end = start + 4; jQuery.mbBrowser.fullVersion = nAgt.substring(start, end); } else -1 != (verOffset = nAgt.indexOf('Edge')) ? (jQuery.mbBrowser.edge = !0, jQuery.mbBrowser.name = 'Microsoft Edge', jQuery.mbBrowser.fullVersion = nAgt.substring( verOffset + 5)) : -1 != (verOffset = nAgt.indexOf('Chrome')) ? (jQuery.mbBrowser.webkit = !0, jQuery.mbBrowser.chrome = !0, jQuery.mbBrowser.name = 'Chrome', jQuery.mbBrowser.fullVersion = nAgt.substring( verOffset + 7)) : -1 < nAgt.indexOf('mozilla/5.0') && -1 < nAgt.indexOf('android ') && -1 < nAgt.indexOf('applewebkit') && !(-1 < nAgt.indexOf('chrome')) ? (verOffset = nAgt.indexOf( 'Chrome'), jQuery.mbBrowser.webkit = !0, jQuery.mbBrowser.androidStock = !0, jQuery.mbBrowser.name = 'androidStock', jQuery.mbBrowser.fullVersion = nAgt.substring( verOffset + 7)) : -1 != (verOffset = nAgt.indexOf('Safari')) ? (jQuery.mbBrowser.webkit = !0, jQuery.mbBrowser.safari = !0, jQuery.mbBrowser.name = 'Safari', jQuery.mbBrowser.fullVersion = nAgt.substring( verOffset + 7), -1 != (verOffset = nAgt.indexOf('Version')) && (jQuery.mbBrowser.fullVersion = nAgt.substring(verOffset + 8))) : -1 != (verOffset = nAgt.indexOf('AppleWebkit')) ? (jQuery.mbBrowser.webkit = !0, jQuery.mbBrowser.safari = !0, jQuery.mbBrowser.name = 'Safari', jQuery.mbBrowser.fullVersion = nAgt.substring( verOffset + 7), -1 != (verOffset = nAgt.indexOf('Version')) && (jQuery.mbBrowser.fullVersion = nAgt.substring( verOffset + 8))) : -1 != (verOffset = nAgt.indexOf('Firefox')) ? (jQuery.mbBrowser.mozilla = !0, jQuery.mbBrowser.name = 'Firefox', jQuery.mbBrowser.fullVersion = nAgt.substring( verOffset + 8)) : (nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/')) && (jQuery.mbBrowser.name = nAgt.substring(nameOffset, verOffset), jQuery.mbBrowser.fullVersion = nAgt.substring( verOffset + 1), jQuery.mbBrowser.name.toLowerCase() == jQuery.mbBrowser.name.toUpperCase() && (jQuery.mbBrowser.name = navigator.appName)); -1 != (ix = jQuery.mbBrowser.fullVersion.indexOf(';')) && (jQuery.mbBrowser.fullVersion = jQuery.mbBrowser.fullVersion.substring(0, ix)), -1 != (ix = jQuery.mbBrowser.fullVersion.indexOf(' ')) && (jQuery.mbBrowser.fullVersion = jQuery.mbBrowser.fullVersion.substring(0, ix)), jQuery.mbBrowser.majorVersion = parseInt( '' + jQuery.mbBrowser.fullVersion, 10), isNaN( jQuery.mbBrowser.majorVersion) && (jQuery.mbBrowser.fullVersion = '' + parseFloat(navigator.appVersion), jQuery.mbBrowser.majorVersion = parseInt( navigator.appVersion, 10)), jQuery.mbBrowser.version = jQuery.mbBrowser.majorVersion, jQuery.mbBrowser.android = /Android/i.test( nAgt), jQuery.mbBrowser.blackberry = /BlackBerry|BB|PlayBook/i.test( nAgt), jQuery.mbBrowser.ios = /iPhone|iPad|iPod|webOS/i.test( nAgt), jQuery.mbBrowser.operaMobile = /Opera Mini/i.test( nAgt), jQuery.mbBrowser.windowsMobile = /IEMobile|Windows Phone/i.test( nAgt), jQuery.mbBrowser.kindle = /Kindle|Silk/i.test( nAgt), jQuery.mbBrowser.mobile = jQuery.mbBrowser.android || jQuery.mbBrowser.blackberry || jQuery.mbBrowser.ios || jQuery.mbBrowser.windowsMobile || jQuery.mbBrowser.operaMobile || jQuery.mbBrowser.kindle, jQuery.isMobile = jQuery.mbBrowser.mobile, jQuery.isTablet = jQuery.mbBrowser.mobile && 765 < jQuery(window). width(), jQuery.isAndroidDefault = jQuery.mbBrowser.android && !/chrome/i.test( nAgt), jQuery.mbBrowser = jQuery.mbBrowser, jQuery.mbBrowser.versionCompare = function ( e, r) { if ('stringstring' != typeof e + typeof r) return !1; for (var t = e.split('.'), a = r.split('.'), o = 0, n = Math.max(t.length, a.length); o < n; o++) { if (t[o] && !a[o] && 0 < parseInt(t[o]) || parseInt(t[o]) > parseInt(a[o])) return 1; if (a[o] && !t[o] && 0 < parseInt(a[o]) || parseInt(t[o]) < parseInt(a[o])) return -1; } return 0; }; window.SEMICOLON_youtubeBgVideoInit = function ($youtubeBgPlayerEl) { $youtubeBgPlayerEl = $youtubeBgPlayerEl.filter( ':not(.mb_YTPlayer,.customjs)'); if ($youtubeBgPlayerEl.length < 1) { return true; } $youtubeBgPlayerEl.each(function () { let element = $(this), elVideo = element.attr('data-video'), elMute = element.attr('data-mute') || true, elRatio = element.attr('data-ratio') || '16/9', elQuality = element.attr('data-quality') || 'hd720', elOpacity = element.attr('data-opacity') || 1, elContainer = element.attr('data-container') || 'parent', elOptimize = element.attr('data-optimize') || true, elLoop = element.attr('data-loop') || true, elControls = element.attr('data-controls') || false, elVolume = element.attr('data-volume') || 50, elStart = element.attr('data-start') || 0, elStop = element.attr('data-stop') || 0, elAutoPlay = element.attr('data-autoplay') || true, elFullScreen = element.attr('data-fullscreen') || false; if (elMute == 'false') { elMute = false; } if (elContainer == 'parent') { let parent = element.parent(); if (parent.attr('id')) { elContainer = '#' + parent.attr('id'); } else { let ytPid = 'yt-bg-player-parent-' + Math.floor(Math.random() * 10000); parent.attr('id', ytPid); elContainer = '#' + ytPid; } } if (elOptimize == 'false') { elOptimize = false; } if (elLoop == 'false') { elLoop = false; } if (elControls == 'true') { elControls = true; } if (elAutoPlay == 'false') { elAutoPlay = false; } if (elFullScreen == 'true') { elFullScreen = true; } element.YTPlayer({ videoURL: elVideo, mute: elMute, ratio: elRatio, quality: elQuality, opacity: Number(elOpacity), containment: elContainer, optimizeDisplay: elOptimize, loop: elLoop, vol: Number(elVolume), startAt: Number(elStart), stopAt: Number(elStop), autoPlay: elAutoPlay, realfullscreen: elFullScreen, showYTLogo: false, showControls: false, }); }); }; /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE. * * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document * */ (function () { 'use strict'; // Exit early if we're not running in a browser. if (typeof window !== 'object') { return; } // Exit early if all IntersectionObserver and IntersectionObserverEntry // features are natively supported. if ('IntersectionObserver' in window && 'IntersectionObserverEntry' in window && 'intersectionRatio' in window.IntersectionObserverEntry.prototype) { // Minimal polyfill for Edge 15's lack of `isIntersecting` // See: https://github.com/w3c/IntersectionObserver/issues/211 if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) { Object.defineProperty(window.IntersectionObserverEntry.prototype, 'isIntersecting', { get: function () { return this.intersectionRatio > 0; }, }); } return; } /** * A local reference to the document. */ var document = window.document; /** * An IntersectionObserver registry. This registry exists to hold a strong * reference to IntersectionObserver instances currently observing a target * element. Without this registry, instances without another reference may be * garbage collected. */ var registry = []; /** * The signal updater for cross-origin intersection. When not null, it means * that the polyfill is configured to work in a cross-origin mode. * @type {function(DOMRect|ClientRect, DOMRect|ClientRect)} */ var crossOriginUpdater = null; /** * The current cross-origin intersection. Only used in the cross-origin mode. * @type {DOMRect|ClientRect} */ var crossOriginRect = null; /** * Creates the global IntersectionObserverEntry constructor. * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry * @param {Object} entry A dictionary of instance properties. * @constructor */ function IntersectionObserverEntry (entry) { this.time = entry.time; this.target = entry.target; this.rootBounds = ensureDOMRect(entry.rootBounds); this.boundingClientRect = ensureDOMRect(entry.boundingClientRect); this.intersectionRect = ensureDOMRect( entry.intersectionRect || getEmptyRect()); this.isIntersecting = !!entry.intersectionRect; // Calculates the intersection ratio. var targetRect = this.boundingClientRect; var targetArea = targetRect.width * targetRect.height; var intersectionRect = this.intersectionRect; var intersectionArea = intersectionRect.width * intersectionRect.height; // Sets intersection ratio. if (targetArea) { // Round the intersection ratio to avoid floating point math issues: // https://github.com/w3c/IntersectionObserver/issues/324 this.intersectionRatio = Number( (intersectionArea / targetArea).toFixed(4)); } else { // If area is zero and is intersecting, sets to 1, otherwise to 0 this.intersectionRatio = this.isIntersecting ? 1 : 0; } } /** * Creates the global IntersectionObserver constructor. * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface * @param {Function} callback The function to be invoked after intersection * changes have queued. The function is not invoked if the queue has * been emptied by calling the `takeRecords` method. * @param {Object=} opt_options Optional configuration options. * @constructor */ function IntersectionObserver (callback, opt_options) { var options = opt_options || {}; if (typeof callback != 'function') { throw new Error('callback must be a function'); } if (options.root && options.root.nodeType != 1) { throw new Error('root must be an Element'); } // Binds and throttles `this._checkForIntersections`. this._checkForIntersections = throttle( this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT); // Private properties. this._callback = callback; this._observationTargets = []; this._queuedEntries = []; this._rootMarginValues = this._parseRootMargin(options.rootMargin); // Public properties. this.thresholds = this._initThresholds(options.threshold); this.root = options.root || null; this.rootMargin = this._rootMarginValues.map(function (margin) { return margin.value + margin.unit; }).join(' '); /** @private @const {!Array<!Document>} */ this._monitoringDocuments = []; /** @private @const {!Array<function()>} */ this._monitoringUnsubscribes = []; } /** * The minimum interval within which the document will be checked for * intersection changes. */ IntersectionObserver.prototype.THROTTLE_TIMEOUT = 100; /** * The frequency in which the polyfill polls for intersection changes. * this can be updated on a per instance basis and must be set prior to * calling `observe` on the first target. */ IntersectionObserver.prototype.POLL_INTERVAL = null; /** * Use a mutation observer on the root element * to detect intersection changes. */ IntersectionObserver.prototype.USE_MUTATION_OBSERVER = true; /** * Sets up the polyfill in the cross-origin mode. The result is the * updater function that accepts two arguments: `boundingClientRect` and * `intersectionRect` - just as these fields would be available to the * parent via `IntersectionObserverEntry`. This function should be called * each time the iframe receives intersection information from the parent * window, e.g. via messaging. * @return {function(DOMRect|ClientRect, DOMRect|ClientRect)} */ IntersectionObserver._setupCrossOriginUpdater = function () { if (!crossOriginUpdater) { /** * @param {DOMRect|ClientRect} boundingClientRect * @param {DOMRect|ClientRect} intersectionRect */ crossOriginUpdater = function ( boundingClientRect, intersectionRect) { if (!boundingClientRect || !intersectionRect) { crossOriginRect = getEmptyRect(); } else { crossOriginRect = convertFromParentRect(boundingClientRect, intersectionRect); } registry.forEach(function (observer) { observer._checkForIntersections(); }); }; } return crossOriginUpdater; }; /** * Resets the cross-origin mode. */ IntersectionObserver._resetCrossOriginUpdater = function () { crossOriginUpdater = null; crossOriginRect = null; }; /** * Starts observing a target element for intersection changes based on * the thresholds values. * @param {Element} target The DOM element to observe. */ IntersectionObserver.prototype.observe = function (target) { var isTargetAlreadyObserved = this._observationTargets.some( function (item) { return item.element == target; }); if (isTargetAlreadyObserved) { return; } if (!(target && target.nodeType == 1)) { throw new Error('target must be an Element'); } this._registerInstance(); this._observationTargets.push({ element: target, entry: null }); this._monitorIntersections(target.ownerDocument); this._checkForIntersections(); }; /** * Stops observing a target element for intersection changes. * @param {Element} target The DOM element to observe. */ IntersectionObserver.prototype.unobserve = function (target) { this._observationTargets = this._observationTargets.filter(function (item) { return item.element != target; }); this._unmonitorIntersections(target.ownerDocument); if (this._observationTargets.length == 0) { this._unregisterInstance(); } }; /** * Stops observing all target elements for intersection changes. */ IntersectionObserver.prototype.disconnect = function () { this._observationTargets = []; this._unmonitorAllIntersections(); this._unregisterInstance(); }; /** * Returns any queue entries that have not yet been reported to the * callback and clears the queue. This can be used in conjunction with the * callback to obtain the absolute most up-to-date intersection information. * @return {Array} The currently queued entries. */ IntersectionObserver.prototype.takeRecords = function () { var records = this._queuedEntries.slice(); this._queuedEntries = []; return records; }; /** * Accepts the threshold value from the user configuration object and * returns a sorted array of unique threshold values. If a value is not * between 0 and 1 and error is thrown. * @private * @param {Array|number=} opt_threshold An optional threshold value or * a list of threshold values, defaulting to [0]. * @return {Array} A sorted list of unique and valid threshold values. */ IntersectionObserver.prototype._initThresholds = function (opt_threshold) { var threshold = opt_threshold || [0]; if (!Array.isArray(threshold)) threshold = [threshold]; return threshold.sort().filter(function (t, i, a) { if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) { throw new Error( 'threshold must be a number between 0 and 1 inclusively'); } return t !== a[i - 1]; }); }; /** * Accepts the rootMargin value from the user configuration object * and returns an array of the four margin values as an object containing * the value and unit properties. If any of the values are not properly * formatted or use a unit other than px or %, and error is thrown. * @private * @param {string=} opt_rootMargin An optional rootMargin value, * defaulting to '0px'. * @return {Array<Object>} An array of margin objects with the keys * value and unit. */ IntersectionObserver.prototype._parseRootMargin = function (opt_rootMargin) { var marginString = opt_rootMargin || '0px'; var margins = marginString.split(/\s+/).map(function (margin) { var parts = /^(-?\d*\.?\d+)(px|%)$/.exec(margin); if (!parts) { throw new Error( 'rootMargin must be specified in pixels or percent'); } return { value: parseFloat(parts[1]), unit: parts[2] }; }); // Handles shorthand. margins[1] = margins[1] || margins[0]; margins[2] = margins[2] || margins[0]; margins[3] = margins[3] || margins[1]; return margins; }; /** * Starts polling for intersection changes if the polling is not already * happening, and if the page's visibility state is visible. * @param {!Document} doc * @private */ IntersectionObserver.prototype._monitorIntersections = function (doc) { var win = doc.defaultView; if (!win) { // Already destroyed. return; } if (this._monitoringDocuments.indexOf(doc) != -1) { // Already monitoring. return; } // Private state for monitoring. var callback = this._checkForIntersections; var monitoringInterval = null; var domObserver = null; // If a poll interval is set, use polling instead of listening to // resize and scroll events or DOM mutations. if (this.POLL_INTERVAL) { monitoringInterval = win.setInterval(callback, this.POLL_INTERVAL); } else { addEvent(win, 'resize', callback, true); addEvent(doc, 'scroll', callback, true); if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in win) { domObserver = new win.MutationObserver(callback); domObserver.observe(doc, { attributes: true, childList: true, characterData: true, subtree: true, }); } } this._monitoringDocuments.push(doc); this._monitoringUnsubscribes.push(function () { // Get the window object again. When a friendly iframe is destroyed, it // will be null. var win = doc.defaultView; if (win) { if (monitoringInterval) { win.clearInterval(monitoringInterval); } removeEvent(win, 'resize', callback, true); } removeEvent(doc, 'scroll', callback, true); if (domObserver) { domObserver.disconnect(); } }); // Also monitor the parent. if (doc != (this.root && this.root.ownerDocument || document)) { var frame = getFrameElement(doc); if (frame) { this._monitorIntersections(frame.ownerDocument); } } }; /** * Stops polling for intersection changes. * @param {!Document} doc * @private */ IntersectionObserver.prototype._unmonitorIntersections = function (doc) { var index = this._monitoringDocuments.indexOf(doc); if (index == -1) { return; } var rootDoc = (this.root && this.root.ownerDocument || document); // Check if any dependent targets are still remaining. var hasDependentTargets = this._observationTargets.some(function (item) { var itemDoc = item.element.ownerDocument; // Target is in this context. if (itemDoc == doc) { return true; } // Target is nested in this context. while (itemDoc && itemDoc != rootDoc) { var frame = getFrameElement(itemDoc); itemDoc = frame && frame.ownerDocument; if (itemDoc == doc) { return true; } } return false; }); if (hasDependentTargets) { return; } // Unsubscribe. var unsubscribe = this._monitoringUnsubscribes[index]; this._monitoringDocuments.splice(index, 1); this._monitoringUnsubscribes.splice(index, 1); unsubscribe(); // Also unmonitor the parent. if (doc != rootDoc) { var frame = getFrameElement(doc); if (frame) { this._unmonitorIntersections(frame.ownerDocument); } } }; /** * Stops polling for intersection changes. * @param {!Document} doc * @private */ IntersectionObserver.prototype._unmonitorAllIntersections = function () { var unsubscribes = this._monitoringUnsubscribes.slice(0); this._monitoringDocuments.length = 0; this._monitoringUnsubscribes.length = 0; for (var i = 0; i < unsubscribes.length; i++) { unsubscribes[i](); } }; /** * Scans each observation target for intersection changes and adds them * to the internal entries queue. If new entries are found, it * schedules the callback to be invoked. * @private */ IntersectionObserver.prototype._checkForIntersections = function () { if (!this.root && crossOriginUpdater && !crossOriginRect) { // Cross origin monitoring, but no initial data available yet. return; } var rootIsInDom = this._rootIsInDom(); var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect(); this._observationTargets.forEach(function (item) { var target = item.element; var targetRect = getBoundingClientRect(target); var rootContainsTarget = this._rootContainsTarget(target); var oldEntry = item.entry; var intersectionRect = rootIsInDom && rootContainsTarget && this._computeTargetAndRootIntersection(target, targetRect, rootRect); var newEntry = item.entry = new IntersectionObserverEntry({ time: now(), target: target, boundingClientRect: targetRect, rootBounds: crossOriginUpdater && !this.root ? null : rootRect, intersectionRect: intersectionRect, }); if (!oldEntry) { this._queuedEntries.push(newEntry); } else if (rootIsInDom && rootContainsTarget) { // If the new entry intersection ratio has crossed any of the // thresholds, add a new entry. if (this._hasCrossedThreshold(oldEntry, newEntry)) { this._queuedEntries.push(newEntry); } } else { // If the root is not in the DOM or target is not contained within // root but the previous entry for this target had an intersection, // add a new record indicating removal. if (oldEntry && oldEntry.isIntersecting) { this._queuedEntries.push(newEntry); } } }, this); if (this._queuedEntries.length) { this._callback(this.takeRecords(), this); } }; /** * Accepts a target and root rect computes the intersection between then * following the algorithm in the spec. * TODO(philipwalton): at this time clip-path is not considered. * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo * @param {Element} target The target DOM element * @param {Object} targetRect The bounding rect of the target. * @param {Object} rootRect The bounding rect of the root after being * expanded by the rootMargin value. * @return {?Object} The final intersection rect object or undefined if no * intersection is found. * @private */ IntersectionObserver.prototype._computeTargetAndRootIntersection = function (target, targetRect, rootRect) { // If the element isn't displayed, an intersection can't happen. if (window.getComputedStyle(target).display == 'none') return; var intersectionRect = targetRect; var parent = getParentNode(target); var atRoot = false; while (!atRoot && parent) { var parentRect = null; var parentComputedStyle = parent.nodeType == 1 ? window.getComputedStyle(parent) : {}; // If the parent isn't displayed, an intersection can't happen. if (parentComputedStyle.display == 'none') return null; if (parent == this.root || parent.nodeType == /* DOCUMENT */9) { atRoot = true; if (parent == this.root || parent == document) { if (crossOriginUpdater && !this.root) { if (!crossOriginRect || crossOriginRect.width == 0 && crossOriginRect.height == 0) { // A 0-size cross-origin intersection means no-intersection. parent = null; parentRect = null; intersectionRect = null; } else { parentRect = crossOriginRect; } } else { parentRect = rootRect; } } else { // Check if there's a frame that can be navigated to. var frame = getParentNode(parent); var frameRect = frame && getBoundingClientRect(frame); var frameIntersect = frame && this._computeTargetAndRootIntersection(frame, frameRect, rootRect); if (frameRect && frameIntersect) { parent = frame; parentRect = convertFromParentRect(frameRect, frameIntersect); } else { parent = null; intersectionRect = null; } } } else { // If the element has a non-visible overflow, and it's not the <body> // or <html> element, update the intersection rect. // Note: <body> and <html> cannot be clipped to a rect that's not also // the document rect, so no need to compute a new intersection. var doc = parent.ownerDocument; if (parent != doc.body && parent != doc.documentElement && parentComputedStyle.overflow != 'visible') { parentRect = getBoundingClientRect(parent); } } // If either of the above conditionals set a new parentRect, // calculate new intersection data. if (parentRect) { intersectionRect = computeRectIntersection(parentRect, intersectionRect); } if (!intersectionRect) break; parent = parent && getParentNode(parent); } return intersectionRect; }; /** * Returns the root rect after being expanded by the rootMargin value. * @return {ClientRect} The expanded root rect. * @private */ IntersectionObserver.prototype._getRootRect = function () { var rootRect; if (this.root) { rootRect = getBoundingClientRect(this.root); } else { // Use <html>/<body> instead of window since scroll bars affect size. var html = document.documentElement; var body = document.body; rootRect = { top: 0, left: 0, right: html.clientWidth || body.clientWidth, width: html.clientWidth || body.clientWidth, bottom: html.clientHeight || body.clientHeight, height: html.clientHeight || body.clientHeight, }; } return this._expandRectByRootMargin(rootRect); }; /** * Accepts a rect and expands it by the rootMargin value. * @param {DOMRect|ClientRect} rect The rect object to expand. * @return {ClientRect} The expanded rect. * @private */ IntersectionObserver.prototype._expandRectByRootMargin = function (rect) { var margins = this._rootMarginValues.map(function (margin, i) { return margin.unit == 'px' ? margin.value : margin.value * (i % 2 ? rect.width : rect.height) / 100; }); var newRect = { top: rect.top - margins[0], right: rect.right + margins[1], bottom: rect.bottom + margins[2], left: rect.left - margins[3], }; newRect.width = newRect.right - newRect.left; newRect.height = newRect.bottom - newRect.top; return newRect; }; /** * Accepts an old and new entry and returns true if at least one of the * threshold values has been crossed. * @param {?IntersectionObserverEntry} oldEntry The previous entry for a * particular target element or null if no previous entry exists. * @param {IntersectionObserverEntry} newEntry The current entry for a * particular target element. * @return {boolean} Returns true if a any threshold has been crossed. * @private */ IntersectionObserver.prototype._hasCrossedThreshold = function (oldEntry, newEntry) { // To make comparing easier, an entry that has a ratio of 0 // but does not actually intersect is given a value of -1 var oldRatio = oldEntry && oldEntry.isIntersecting ? oldEntry.intersectionRatio || 0 : -1; var newRatio = newEntry.isIntersecting ? newEntry.intersectionRatio || 0 : -1; // Ignore unchanged ratios if (oldRatio === newRatio) return; for (var i = 0; i < this.thresholds.length; i++) { var threshold = this.thresholds[i]; // Return true if an entry matches a threshold or if the new ratio // and the old ratio are on the opposite sides of a threshold. if (threshold == oldRatio || threshold == newRatio || threshold < oldRatio !== threshold < newRatio) { return true; } } }; /** * Returns whether or not the root element is an element and is in the DOM. * @return {boolean} True if the root element is an element and is in the DOM. * @private */ IntersectionObserver.prototype._rootIsInDom = function () { return !this.root || containsDeep(document, this.root); }; /** * Returns whether or not the target element is a child of root. * @param {Element} target The target element to check. * @return {boolean} True if the target element is a child of root. * @private */ IntersectionObserver.prototype._rootContainsTarget = function (target) { return containsDeep(this.root || document, target) && (!this.root || this.root.ownerDocument == target.ownerDocument); }; /** * Adds the instance to the global IntersectionObserver registry if it isn't * already present. * @private */ IntersectionObserver.prototype._registerInstance = function () { if (registry.indexOf(this) < 0) { registry.push(this); } }; /** * Removes the instance from the global IntersectionObserver registry. * @private */ IntersectionObserver.prototype._unregisterInstance = function () { var index = registry.indexOf(this); if (index != -1) registry.splice(index, 1); }; /** * Returns the result of the performance.now() method or null in browsers * that don't support the API. * @return {number} The elapsed time since the page was requested. */ function now () { return window.performance && performance.now && performance.now(); } /** * Throttles a function and delays its execution, so it's only called at most * once within a given time period. * @param {Function} fn The function to throttle. * @param {number} timeout The amount of time that must pass before the * function can be called again. * @return {Function} The throttled function. */ function throttle (fn, timeout) { var timer = null; return function () { if (!timer) { timer = setTimeout(function () { fn(); timer = null; }, timeout); } }; } /** * Adds an event handler to a DOM node ensuring cross-browser compatibility. * @param {Node} node The DOM node to add the event handler to. * @param {string} event The event name. * @param {Function} fn The event handler to add. * @param {boolean} opt_useCapture Optionally adds the even to the capture * phase. Note: this only works in modern browsers. */ function addEvent (node, event, fn, opt_useCapture) { if (typeof node.addEventListener == 'function') { node.addEventListener(event, fn, opt_useCapture || false); } else if (typeof node.attachEvent == 'function') { node.attachEvent('on' + event, fn); } } /** * Removes a previously added event handler from a DOM node. * @param {Node} node The DOM node to remove the event handler from. * @param {string} event The event name. * @param {Function} fn The event handler to remove. * @param {boolean} opt_useCapture If the event handler was added with this * flag set to true, it should be set to true here in order to remove it. */ function removeEvent (node, event, fn, opt_useCapture) { if (typeof node.removeEventListener == 'function') { node.removeEventListener(event, fn, opt_useCapture || false); } else if (typeof node.detatchEvent == 'function') { node.detatchEvent('on' + event, fn); } } /** * Returns the intersection between two rect objects. * @param {Object} rect1 The first rect. * @param {Object} rect2 The second rect. * @return {?Object|?ClientRect} The intersection rect or undefined if no * intersection is found. */ function computeRectIntersection (rect1, rect2) { var top = Math.max(rect1.top, rect2.top); var bottom = Math.min(rect1.bottom, rect2.bottom); var left = Math.max(rect1.left, rect2.left); var right = Math.min(rect1.right, rect2.right); var width = right - left; var height = bottom - top; return (width >= 0 && height >= 0) && { top: top, bottom: bottom, left: left, right: right, width: width, height: height, } || null; } /** * Shims the native getBoundingClientRect for compatibility with older IE. * @param {Element} el The element whose bounding rect to get. * @return {DOMRect|ClientRect} The (possibly shimmed) rect of the element. */ function getBoundingClientRect (el) { var rect; try { rect = el.getBoundingClientRect(); } catch (err) { // Ignore Windows 7 IE11 "Unspecified error" // https://github.com/w3c/IntersectionObserver/pull/205 } if (!rect) return getEmptyRect(); // Older IE if (!(rect.width && rect.height)) { rect = { top: rect.top, right: rect.right, bottom: rect.bottom, left: rect.left, width: rect.right - rect.left, height: rect.bottom - rect.top, }; } return rect; } /** * Returns an empty rect object. An empty rect is returned when an element * is not in the DOM. * @return {ClientRect} The empty rect. */ function getEmptyRect () { return { top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0, }; } /** * Ensure that the result has all of the necessary fields of the DOMRect. * Specifically this ensures that `x` and `y` fields are set. * * @param {?DOMRect|?ClientRect} rect * @return {?DOMRect} */ function ensureDOMRect (rect) { // A `DOMRect` object has `x` and `y` fields. if (!rect || 'x' in rect) { return rect; } // A IE's `ClientRect` type does not have `x` and `y`. The same is the case // for internally calculated Rect objects. For the purposes of // `IntersectionObserver`, it's sufficient to simply mirror `left` and `top` // for these fields. return { top: rect.top, y: rect.top, bottom: rect.bottom, left: rect.left, x: rect.left, right: rect.right, width: rect.width, height: rect.height, }; } /** * Inverts the intersection and bounding rect from the parent (frame) BCR to * the local BCR space. * @param {DOMRect|ClientRect} parentBoundingRect The parent's bound client rect. * @param {DOMRect|ClientRect} parentIntersectionRect The parent's own intersection rect. * @return {ClientRect} The local root bounding rect for the parent's children. */ function convertFromParentRect ( parentBoundingRect, parentIntersectionRect) { var top = parentIntersectionRect.top - parentBoundingRect.top; var left = parentIntersectionRect.left - parentBoundingRect.left; return { top: top, left: left, height: parentIntersectionRect.height, width: parentIntersectionRect.width, bottom: top + parentIntersectionRect.height, right: left + parentIntersectionRect.width, }; } /** * Checks to see if a parent element contains a child element (including inside * shadow DOM). * @param {Node} parent The parent element. * @param {Node} child The child element. * @return {boolean} True if the parent node contains the child node. */ function containsDeep (parent, child) { var node = child; while (node) { if (node == parent) return true; node = getParentNode(node); } return false; } /** * Gets the parent node of an element or its host element if the parent node * is a shadow root. * @param {Node} node The node whose parent to get. * @return {Node|null} The parent node or null if no parent exists. */ function getParentNode (node) { var parent = node.parentNode; if (node.nodeType == /* DOCUMENT */ 9 && node != document) { // If this node is a document node, look for the embedding frame. return getFrameElement(node); } if (parent && parent.nodeType == 11 && parent.host) { // If the parent is a shadow root, return the host element. return parent.host; } if (parent && parent.assignedSlot) { // If the parent is distributed in a <slot>, return the parent of a slot. return parent.assignedSlot.parentNode; } return parent; } /** * Returns the embedding frame element, if any. * @param {!Document} doc * @return {!Element} */ function getFrameElement (doc) { try { return doc.defaultView && doc.defaultView.frameElement || null; } catch (e) { // Ignore the error. return null; } } // Exposes the constructors globally. window.IntersectionObserver = IntersectionObserver; window.IntersectionObserverEntry = IntersectionObserverEntry; }());