/*! Amaze UI v2.5.0 | by Amaze UI Team | (c) 2015 AllMobilize, Inc. | Licensed under MIT | 2015-11-30T17:43:07+0800 */
!function (t, e) {
"object" == typeof exports && "object" == typeof module ? module.exports = e(require("jquery")) : "function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof exports ? exports.AMUI = e(require("jquery")) : t.AMUI = e(t.jQuery)
}(this, function (t) {
return function (t) {
function e(n) {
if (i[n])return i[n].exports;
var s = i[n] = {exports: {}, id: n, loaded: !1};
return t[n].call(s.exports, s, s.exports, e), s.loaded = !0, s.exports
}
var i = {};
return e.m = t, e.c = i, e.p = "", e(0)
}([function (t, e, i) {
"use strict";
var n = i(1), s = i(2);
i(3), i(4), i(5), i(6), i(7), i(8), i(9), i(10), i(11), i(14), i(15), i(16), i(17), i(18), i(19), i(20), i(21), i(22), i(24), i(25), i(23), i(27), i(28), i(29), i(30), i(31), i(32), i(33), i(26), i(34), i(35), i(36), i(37), i(38), i(39), i(40), i(41), i(42), i(43), i(44), i(45), i(46), i(47), i(48), i(49), i(50), i(51), i(52), i(53), i(54), t.exports = n.AMUI = s
}, function (e, i) {
e.exports = t
}, function (t, e, i) {
"use strict";
var n = i(1);
if ("undefined" == typeof n)throw new Error("Amaze UI 2.x requires jQuery :-(\n\u7231\u4e0a\u4e00\u5339\u91ce\u9a6c\uff0c\u53ef\u4f60\u7684\u5bb6\u91cc\u6ca1\u6709\u8349\u539f\u2026");
var s = n.AMUI || {}, o = n(window), a = window.document, r = n("html");
s.VERSION = "2.5.0", s.support = {}, s.support.transition = function () {
var t = function () {
var t = a.body || a.documentElement, e = {
WebkitTransition: "webkitTransitionEnd",
MozTransition: "transitionend",
OTransition: "oTransitionEnd otransitionend",
transition: "transitionend"
};
for (var i in e)if (void 0 !== t.style[i])return e[i]
}();
return t && {end: t}
}(), s.support.animation = function () {
var t = function () {
var t = a.body || a.documentElement, e = {
WebkitAnimation: "webkitAnimationEnd",
MozAnimation: "animationend",
OAnimation: "oAnimationEnd oanimationend",
animation: "animationend"
};
for (var i in e)if (void 0 !== t.style[i])return e[i]
}();
return t && {end: t}
}(), s.support.touch = "ontouchstart"in window && navigator.userAgent.toLowerCase().match(/mobile|tablet/) || window.DocumentTouch && document instanceof window.DocumentTouch || window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints > 0 || window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 0 || !1, s.support.mutationobserver = window.MutationObserver || window.WebKitMutationObserver || null, s.support.formValidation = "function" == typeof document.createElement("form").checkValidity, s.utils = {}, s.utils.debounce = function (t, e, i) {
var n;
return function () {
var s = this, o = arguments, a = function () {
n = null, i || t.apply(s, o)
}, r = i && !n;
clearTimeout(n), n = setTimeout(a, e), r && t.apply(s, o)
}
}, s.utils.isInView = function (t, e) {
var i = n(t), s = !(!i.width() && !i.height()) && "none" !== i.css("display");
if (!s)return !1;
var a = o.scrollLeft(), r = o.scrollTop(), l = i.offset(), c = l.left, u = l.top;
return e = n.extend({
topOffset: 0,
leftOffset: 0
}, e), u + i.height() >= r && u - e.topOffset <= r + o.height() && c + i.width() >= a && c - e.leftOffset <= a + o.width()
}, s.utils.parseOptions = s.utils.options = function (t) {
if (n.isPlainObject(t))return t;
var e = t ? t.indexOf("{") : -1, i = {};
if (-1 != e)try {
i = new Function("", "var json = " + t.substr(e) + "; return JSON.parse(JSON.stringify(json));")()
} catch (s) {
}
return i
}, s.utils.generateGUID = function (t) {
var e = t + "-" || "am-";
do e += Math.random().toString(36).substring(2, 7); while (document.getElementById(e));
return e
}, s.utils.getAbsoluteUrl = function () {
var t;
return function (e) {
return t || (t = document.createElement("a")), t.href = e, t.href
}
}(), s.plugin = function (t, e, i) {
var o = n.fn[t];
i = i || {}, n.fn[t] = function (o) {
var a, r = Array.prototype.slice.call(arguments, 0), l = r.slice(1), c = this.each(function () {
var c = n(this), u = "amui." + t, h = i.dataOptions || "data-am-" + t, d = c.data(u), p = n.extend({}, s.utils.parseOptions(c.attr(h)), "object" == typeof o && o);
(d || "destroy" !== o) && (d || c.data(u, d = new e(this, p)), i.methodCall ? i.methodCall.call(c, r, d) : (i.before && i.before.call(c, r, d), "string" == typeof o && (a = "function" == typeof d[o] ? d[o].apply(d, l) : d[o]), i.after && i.after.call(c, r, d)))
});
return void 0 === a ? c : a
}, n.fn[t].Constructor = e, n.fn[t].noConflict = function () {
return n.fn[t] = o, this
}, s[t] = e
}, n.fn.emulateTransitionEnd = function (t) {
var e = !1, i = this;
n(this).one(s.support.transition.end, function () {
e = !0
});
var o = function () {
e || n(i).trigger(s.support.transition.end), i.transitionEndTimmer = void 0
};
return this.transitionEndTimmer = setTimeout(o, t), this
}, n.fn.redraw = function () {
return this.each(function () {
this.offsetHeight
})
}, n.fn.transitionEnd = function (t) {
function e(s) {
t.call(this, s), i && n.off(i, e)
}
var i = s.support.transition.end, n = this;
return t && i && n.on(i, e), this
}, n.fn.removeClassRegEx = function () {
return this.each(function (t) {
var e = n(this).attr("class");
if (!e || !t)return !1;
var i = [];
e = e.split(" ");
for (var s = 0, o = e.length; o > s; s++)e[s].match(t) || i.push(e[s]);
n(this).attr("class", i.join(" "))
})
}, n.fn.alterClass = function (t, e) {
var i = this;
if (-1 === t.indexOf("*"))return i.removeClass(t), e ? i.addClass(e) : i;
var s = new RegExp("\\s" + t.replace(/\*/g, "[A-Za-z0-9-_]+").split(" ").join("\\s|\\s") + "\\s", "g");
return i.each(function (t, e) {
for (var i = " " + e.className + " "; s.test(i);)i = i.replace(s, " ");
e.className = n.trim(i)
}), e ? i.addClass(e) : i
}, s.utils.rAF = function () {
return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || function (t) {
return window.setTimeout(t, 1e3 / 60)
}
}(), s.utils.cancelAF = function () {
return window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || function (t) {
window.clearTimeout(t)
}
}(), s.utils.measureScrollbar = function () {
if (document.body.clientWidth >= window.innerWidth)return 0;
var t = n('
');
n(document.body).append(t);
var e = t[0].offsetWidth - t[0].clientWidth;
return t.remove(), e
}, s.utils.imageLoader = function (t, e) {
function i() {
e(t[0])
}
function n() {
if (this.one("load", i), /MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
var t = this.attr("src"), e = t.match(/\?/) ? "&" : "?";
e += "random=" + (new Date).getTime(), this.attr("src", t + e)
}
}
return t.attr("src") ? void(t[0].complete || 4 === t[0].readyState ? i() : n.call(t)) : void i()
}, s.template = function (t, e) {
var i = s.template;
return i.cache[t] || (i.cache[t] = function () {
var e = t, n = /^[\w\-]+$/.test(t) ? i.get(t) : (e = "template(string)", t), s = 1, o = ("try { " + (i.variable ? "var " + i.variable + " = this.stash;" : "with (this.stash) { ") + "this.ret += '" + n.replace(/<%/g, "").replace(/%>/g, "").replace(/'(?![^\x11\x13]+?\x13)/g, "\\x27").replace(/^\s*|\s*$/g, "").replace(/\n/g, function () {
return "';\nthis.line = " + ++s + "; this.ret += '\\n"
}).replace(/\x11-(.+?)\x13/g, "' + ($1) + '").replace(/\x11=(.+?)\x13/g, "' + this.escapeHTML($1) + '").replace(/\x11(.+?)\x13/g, "'; $1; this.ret += '") + "'; " + (i.variable ? "" : "}") + "return this.ret;} catch (e) { throw 'TemplateError: ' + e + ' (on " + e + "' + ' line ' + this.line + ')'; } //@ sourceURL=" + e + "\n").replace(/this\.ret \+= '';/g, ""), a = new Function(o), r = {
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'"
}, l = function (t) {
return ("" + t).replace(/[&<>\'\"]/g, function (t) {
return r[t]
})
};
return function (t) {
return a.call(i.context = {escapeHTML: l, line: 1, ret: "", stash: t})
}
}()), e ? i.cache[t](e) : i.cache[t]
}, s.template.cache = {}, s.template.get = function (t) {
if (t) {
var e = document.getElementById(t);
return e && e.innerHTML || ""
}
}, s.DOMWatchers = [], s.DOMReady = !1, s.ready = function (t) {
s.DOMWatchers.push(t), s.DOMReady && t(document)
}, s.DOMObserve = function (t, e, i) {
var o = s.support.mutationobserver;
o && (e = n.isPlainObject(e) ? e : {
childList: !0,
subtree: !0
}, i = "function" == typeof i && i || function () {
}, n(t).each(function () {
var t = this, a = n(t);
if (!a.data("am.observer"))try {
var r = new o(s.utils.debounce(function (e, n) {
i.call(t, e, n), a.trigger("changed.dom.amui")
}, 50));
r.observe(t, e), a.data("am.observer", r)
} catch (l) {
}
}))
}, n.fn.DOMObserve = function (t, e) {
return this.each(function () {
s.DOMObserve(this, t, e)
})
}, s.support.touch && r.addClass("am-touch"), n(document).on("changed.dom.amui", function (t) {
var e = t.target;
n.each(s.DOMWatchers, function (t, i) {
i(e)
})
}), n(function () {
var t = n("body");
s.DOMReady = !0, n.each(s.DOMWatchers, function (t, e) {
e(document)
}), s.DOMObserve("[data-am-observe]"), r.removeClass("no-js").addClass("js"), s.support.animation && r.addClass("cssanimations"), window.navigator.standalone && r.addClass("am-standalone"), n(".am-topbar-fixed-top").length && t.addClass("am-with-topbar-fixed-top"), n(".am-topbar-fixed-bottom").length && t.addClass("am-with-topbar-fixed-bottom");
var e = n(".am-layout");
e.find('[class*="md-block-grid"]').alterClass("md-block-grid-*"), e.find('[class*="lg-block-grid"]').alterClass("lg-block-grid"), n("[data-am-widget]").each(function () {
var t = n(this);
0 === t.parents(".am-layout").length && t.addClass("am-no-layout")
})
}), t.exports = s
}, function (t, e, i) {
"use strict";
function n(t, e, i) {
return setTimeout(c(t, i), e)
}
function s(t, e, i) {
return Array.isArray(t) ? (o(t, i[e], i), !0) : !1
}
function o(t, e, i) {
var n;
if (t)if (t.forEach)t.forEach(e, i); else if (void 0 !== t.length)for (n = 0; n < t.length;)e.call(i, t[n], n, t), n++; else for (n in t)t.hasOwnProperty(n) && e.call(i, t[n], n, t)
}
function a(t, e, i) {
for (var n = Object.keys(e), s = 0; s < n.length;)(!i || i && void 0 === t[n[s]]) && (t[n[s]] = e[n[s]]), s++;
return t
}
function r(t, e) {
return a(t, e, !0)
}
function l(t, e, i) {
var n, s = e.prototype;
n = t.prototype = Object.create(s), n.constructor = t, n._super = s, i && a(n, i)
}
function c(t, e) {
return function () {
return t.apply(e, arguments)
}
}
function u(t, e) {
return typeof t == ht ? t.apply(e ? e[0] || void 0 : void 0, e) : t
}
function h(t, e) {
return void 0 === t ? e : t
}
function d(t, e, i) {
o(v(e), function (e) {
t.addEventListener(e, i, !1)
})
}
function p(t, e, i) {
o(v(e), function (e) {
t.removeEventListener(e, i, !1)
})
}
function m(t, e) {
for (; t;) {
if (t == e)return !0;
t = t.parentNode
}
return !1
}
function f(t, e) {
return t.indexOf(e) > -1
}
function v(t) {
return t.trim().split(/\s+/g)
}
function g(t, e, i) {
if (t.indexOf && !i)return t.indexOf(e);
for (var n = 0; n < t.length;) {
if (i && t[n][i] == e || !i && t[n] === e)return n;
n++
}
return -1
}
function w(t) {
return Array.prototype.slice.call(t, 0)
}
function y(t, e, i) {
for (var n = [], s = [], o = 0; o < t.length;) {
var a = e ? t[o][e] : t[o];
g(s, a) < 0 && n.push(t[o]), s[o] = a, o++
}
return i && (n = e ? n.sort(function (t, i) {
return t[e] > i[e]
}) : n.sort()), n
}
function b(t, e) {
for (var i, n, s = e[0].toUpperCase() + e.slice(1), o = 0; o < ct.length;) {
if (i = ct[o], n = i ? i + s : e, n in t)return n;
o++
}
}
function T() {
return ft++
}
function x(t) {
var e = t.ownerDocument;
return e.defaultView || e.parentWindow
}
function C(t, e) {
var i = this;
this.manager = t, this.callback = e, this.element = t.element, this.target = t.options.inputTarget, this.domHandler = function (e) {
u(t.options.enable, [t]) && i.handler(e)
}, this.init()
}
function E(t) {
var e, i = t.options.inputClass;
return new (e = i ? i : wt ? z : yt ? W : gt ? B : _)(t, S)
}
function S(t, e, i) {
var n = i.pointers.length, s = i.changedPointers.length, o = e & St && n - s === 0, a = e & (Dt | Ft) && n - s === 0;
i.isFirst = !!o, i.isFinal = !!a, o && (t.session = {}), i.eventType = e, k(t, i), t.emit("hammer.input", i), t.recognize(i), t.session.prevInput = i
}
function k(t, e) {
var i = t.session, n = e.pointers, s = n.length;
i.firstInput || (i.firstInput = A(e)), s > 1 && !i.firstMultiple ? i.firstMultiple = A(e) : 1 === s && (i.firstMultiple = !1);
var o = i.firstInput, a = i.firstMultiple, r = a ? a.center : o.center, l = e.center = $(n);
e.timeStamp = mt(), e.deltaTime = e.timeStamp - o.timeStamp, e.angle = I(r, l), e.distance = N(r, l), D(i, e), e.offsetDirection = P(e.deltaX, e.deltaY), e.scale = a ? O(a.pointers, n) : 1, e.rotation = a ? L(a.pointers, n) : 0, F(i, e);
var c = t.element;
m(e.srcEvent.target, c) && (c = e.srcEvent.target), e.target = c
}
function D(t, e) {
var i = e.center, n = t.offsetDelta || {}, s = t.prevDelta || {}, o = t.prevInput || {};
(e.eventType === St || o.eventType === Dt) && (s = t.prevDelta = {
x: o.deltaX || 0,
y: o.deltaY || 0
}, n = t.offsetDelta = {x: i.x, y: i.y}), e.deltaX = s.x + (i.x - n.x), e.deltaY = s.y + (i.y - n.y)
}
function F(t, e) {
var i, n, s, o, a = t.lastInterval || e, r = e.timeStamp - a.timeStamp;
if (e.eventType != Ft && (r > Et || void 0 === a.velocity)) {
var l = a.deltaX - e.deltaX, c = a.deltaY - e.deltaY, u = M(r, l, c);
n = u.x, s = u.y, i = pt(u.x) > pt(u.y) ? u.x : u.y, o = P(l, c), t.lastInterval = e
} else i = a.velocity, n = a.velocityX, s = a.velocityY, o = a.direction;
e.velocity = i, e.velocityX = n, e.velocityY = s, e.direction = o
}
function A(t) {
for (var e = [], i = 0; i < t.pointers.length;)e[i] = {
clientX: dt(t.pointers[i].clientX),
clientY: dt(t.pointers[i].clientY)
}, i++;
return {timeStamp: mt(), pointers: e, center: $(e), deltaX: t.deltaX, deltaY: t.deltaY}
}
function $(t) {
var e = t.length;
if (1 === e)return {x: dt(t[0].clientX), y: dt(t[0].clientY)};
for (var i = 0, n = 0, s = 0; e > s;)i += t[s].clientX, n += t[s].clientY, s++;
return {x: dt(i / e), y: dt(n / e)}
}
function M(t, e, i) {
return {x: e / t || 0, y: i / t || 0}
}
function P(t, e) {
return t === e ? At : pt(t) >= pt(e) ? t > 0 ? $t : Mt : e > 0 ? Pt : Nt
}
function N(t, e, i) {
i || (i = _t);
var n = e[i[0]] - t[i[0]], s = e[i[1]] - t[i[1]];
return Math.sqrt(n * n + s * s)
}
function I(t, e, i) {
i || (i = _t);
var n = e[i[0]] - t[i[0]], s = e[i[1]] - t[i[1]];
return 180 * Math.atan2(s, n) / Math.PI
}
function L(t, e) {
return I(e[1], e[0], zt) - I(t[1], t[0], zt)
}
function O(t, e) {
return N(e[0], e[1], zt) / N(t[0], t[1], zt)
}
function _() {
this.evEl = qt, this.evWin = Wt, this.allow = !0, this.pressed = !1, C.apply(this, arguments)
}
function z() {
this.evEl = Ut, this.evWin = Vt, C.apply(this, arguments), this.store = this.manager.session.pointerEvents = []
}
function R() {
this.evTarget = Yt, this.evWin = jt, this.started = !1, C.apply(this, arguments)
}
function q(t, e) {
var i = w(t.touches), n = w(t.changedTouches);
return e & (Dt | Ft) && (i = y(i.concat(n), "identifier", !0)), [i, n]
}
function W() {
this.evTarget = Gt, this.targetIds = {}, C.apply(this, arguments)
}
function H(t, e) {
var i = w(t.touches), n = this.targetIds;
if (e & (St | kt) && 1 === i.length)return n[i[0].identifier] = !0, [i, i];
var s, o, a = w(t.changedTouches), r = [], l = this.target;
if (o = i.filter(function (t) {
return m(t.target, l)
}), e === St)for (s = 0; s < o.length;)n[o[s].identifier] = !0, s++;
for (s = 0; s < a.length;)n[a[s].identifier] && r.push(a[s]), e & (Dt | Ft) && delete n[a[s].identifier], s++;
return r.length ? [y(o.concat(r), "identifier", !0), r] : void 0
}
function B() {
C.apply(this, arguments);
var t = c(this.handler, this);
this.touch = new W(this.manager, t), this.mouse = new _(this.manager, t)
}
function U(t, e) {
this.manager = t, this.set(e)
}
function V(t) {
if (f(t, ie))return ie;
var e = f(t, ne), i = f(t, se);
return e && i ? ne + " " + se : e || i ? e ? ne : se : f(t, ee) ? ee : te
}
function X(t) {
this.id = T(), this.manager = null, this.options = r(t || {}, this.defaults), this.options.enable = h(this.options.enable, !0), this.state = oe, this.simultaneous = {}, this.requireFail = []
}
function Y(t) {
return t & ue ? "cancel" : t & le ? "end" : t & re ? "move" : t & ae ? "start" : ""
}
function j(t) {
return t == Nt ? "down" : t == Pt ? "up" : t == $t ? "left" : t == Mt ? "right" : ""
}
function Z(t, e) {
var i = e.manager;
return i ? i.get(t) : t
}
function G() {
X.apply(this, arguments)
}
function J() {
G.apply(this, arguments), this.pX = null, this.pY = null
}
function K() {
G.apply(this, arguments)
}
function Q() {
X.apply(this, arguments), this._timer = null, this._input = null
}
function tt() {
G.apply(this, arguments)
}
function et() {
G.apply(this, arguments)
}
function it() {
X.apply(this, arguments), this.pTime = !1, this.pCenter = !1, this._timer = null, this._input = null, this.count = 0
}
function nt(t, e) {
return e = e || {}, e.recognizers = h(e.recognizers, nt.defaults.preset), new st(t, e)
}
function st(t, e) {
e = e || {}, this.options = r(e, nt.defaults), this.options.inputTarget = this.options.inputTarget || t, this.handlers = {}, this.session = {}, this.recognizers = [], this.element = t, this.input = E(this), this.touchAction = new U(this, this.options.touchAction), ot(this, !0), o(e.recognizers, function (t) {
var e = this.add(new t[0](t[1]));
t[2] && e.recognizeWith(t[2]), t[3] && e.requireFailure(t[3])
}, this)
}
function ot(t, e) {
var i = t.element;
o(t.options.cssProps, function (t, n) {
i.style[b(i.style, n)] = e ? t : ""
})
}
function at(t, e) {
var i = document.createEvent("Event");
i.initEvent(t, !0, !0), i.gesture = e, e.target.dispatchEvent(i)
}
var rt = i(1), lt = i(2), ct = ["", "webkit", "moz", "MS", "ms", "o"], ut = document.createElement("div"), ht = "function", dt = Math.round, pt = Math.abs, mt = Date.now, ft = 1, vt = /mobile|tablet|ip(ad|hone|od)|android/i, gt = "ontouchstart"in window, wt = void 0 !== b(window, "PointerEvent"), yt = gt && vt.test(navigator.userAgent), bt = "touch", Tt = "pen", xt = "mouse", Ct = "kinect", Et = 25, St = 1, kt = 2, Dt = 4, Ft = 8, At = 1, $t = 2, Mt = 4, Pt = 8, Nt = 16, It = $t | Mt, Lt = Pt | Nt, Ot = It | Lt, _t = ["x", "y"], zt = ["clientX", "clientY"];
C.prototype = {
handler: function () {
}, init: function () {
this.evEl && d(this.element, this.evEl, this.domHandler), this.evTarget && d(this.target, this.evTarget, this.domHandler), this.evWin && d(x(this.element), this.evWin, this.domHandler)
}, destroy: function () {
this.evEl && p(this.element, this.evEl, this.domHandler), this.evTarget && p(this.target, this.evTarget, this.domHandler), this.evWin && p(x(this.element), this.evWin, this.domHandler)
}
};
var Rt = {mousedown: St, mousemove: kt, mouseup: Dt}, qt = "mousedown", Wt = "mousemove mouseup";
l(_, C, {
handler: function (t) {
var e = Rt[t.type];
e & St && 0 === t.button && (this.pressed = !0), e & kt && 1 !== t.which && (e = Dt), this.pressed && this.allow && (e & Dt && (this.pressed = !1), this.callback(this.manager, e, {
pointers: [t],
changedPointers: [t],
pointerType: xt,
srcEvent: t
}))
}
});
var Ht = {pointerdown: St, pointermove: kt, pointerup: Dt, pointercancel: Ft, pointerout: Ft}, Bt = {
2: bt,
3: Tt,
4: xt,
5: Ct
}, Ut = "pointerdown", Vt = "pointermove pointerup pointercancel";
window.MSPointerEvent && (Ut = "MSPointerDown", Vt = "MSPointerMove MSPointerUp MSPointerCancel"), l(z, C, {
handler: function (t) {
var e = this.store, i = !1, n = t.type.toLowerCase().replace("ms", ""), s = Ht[n], o = Bt[t.pointerType] || t.pointerType, a = o == bt, r = g(e, t.pointerId, "pointerId");
s & St && (0 === t.button || a) ? 0 > r && (e.push(t), r = e.length - 1) : s & (Dt | Ft) && (i = !0), 0 > r || (e[r] = t, this.callback(this.manager, s, {
pointers: e,
changedPointers: [t],
pointerType: o,
srcEvent: t
}), i && e.splice(r, 1))
}
});
var Xt = {
touchstart: St,
touchmove: kt,
touchend: Dt,
touchcancel: Ft
}, Yt = "touchstart", jt = "touchstart touchmove touchend touchcancel";
l(R, C, {
handler: function (t) {
var e = Xt[t.type];
if (e === St && (this.started = !0), this.started) {
var i = q.call(this, t, e);
e & (Dt | Ft) && i[0].length - i[1].length === 0 && (this.started = !1), this.callback(this.manager, e, {
pointers: i[0],
changedPointers: i[1],
pointerType: bt,
srcEvent: t
})
}
}
});
var Zt = {
touchstart: St,
touchmove: kt,
touchend: Dt,
touchcancel: Ft
}, Gt = "touchstart touchmove touchend touchcancel";
l(W, C, {
handler: function (t) {
var e = Zt[t.type], i = H.call(this, t, e);
i && this.callback(this.manager, e, {
pointers: i[0],
changedPointers: i[1],
pointerType: bt,
srcEvent: t
})
}
}), l(B, C, {
handler: function (t, e, i) {
var n = i.pointerType == bt, s = i.pointerType == xt;
if (n)this.mouse.allow = !1; else if (s && !this.mouse.allow)return;
e & (Dt | Ft) && (this.mouse.allow = !0), this.callback(t, e, i)
}, destroy: function () {
this.touch.destroy(), this.mouse.destroy()
}
});
var Jt = b(ut.style, "touchAction"), Kt = void 0 !== Jt, Qt = "compute", te = "auto", ee = "manipulation", ie = "none", ne = "pan-x", se = "pan-y";
U.prototype = {
set: function (t) {
t == Qt && (t = this.compute()), Kt && (this.manager.element.style[Jt] = t), this.actions = t.toLowerCase().trim()
}, update: function () {
this.set(this.manager.options.touchAction)
}, compute: function () {
var t = [];
return o(this.manager.recognizers, function (e) {
u(e.options.enable, [e]) && (t = t.concat(e.getTouchAction()))
}), V(t.join(" "))
}, preventDefaults: function (t) {
if (!Kt) {
var e = t.srcEvent, i = t.offsetDirection;
if (this.manager.session.prevented)return void e.preventDefault();
var n = this.actions, s = f(n, ie), o = f(n, se), a = f(n, ne);
return s || o && i & It || a && i & Lt ? this.preventSrc(e) : void 0
}
}, preventSrc: function (t) {
this.manager.session.prevented = !0, t.preventDefault()
}
};
var oe = 1, ae = 2, re = 4, le = 8, ce = le, ue = 16, he = 32;
X.prototype = {
defaults: {}, set: function (t) {
return a(this.options, t), this.manager && this.manager.touchAction.update(), this
}, recognizeWith: function (t) {
if (s(t, "recognizeWith", this))return this;
var e = this.simultaneous;
return t = Z(t, this), e[t.id] || (e[t.id] = t, t.recognizeWith(this)), this
}, dropRecognizeWith: function (t) {
return s(t, "dropRecognizeWith", this) ? this : (t = Z(t, this), delete this.simultaneous[t.id], this)
}, requireFailure: function (t) {
if (s(t, "requireFailure", this))return this;
var e = this.requireFail;
return t = Z(t, this), -1 === g(e, t) && (e.push(t), t.requireFailure(this)), this
}, dropRequireFailure: function (t) {
if (s(t, "dropRequireFailure", this))return this;
t = Z(t, this);
var e = g(this.requireFail, t);
return e > -1 && this.requireFail.splice(e, 1), this
}, hasRequireFailures: function () {
return this.requireFail.length > 0
}, canRecognizeWith: function (t) {
return !!this.simultaneous[t.id]
}, emit: function (t) {
function e(e) {
i.manager.emit(i.options.event + (e ? Y(n) : ""), t)
}
var i = this, n = this.state;
le > n && e(!0), e(), n >= le && e(!0)
}, tryEmit: function (t) {
return this.canEmit() ? this.emit(t) : void(this.state = he)
}, canEmit: function () {
for (var t = 0; t < this.requireFail.length;) {
if (!(this.requireFail[t].state & (he | oe)))return !1;
t++
}
return !0
}, recognize: function (t) {
var e = a({}, t);
return u(this.options.enable, [this, e]) ? (this.state & (ce | ue | he) && (this.state = oe), this.state = this.process(e), void(this.state & (ae | re | le | ue) && this.tryEmit(e))) : (this.reset(), void(this.state = he))
}, process: function (t) {
}, getTouchAction: function () {
}, reset: function () {
}
}, l(G, X, {
defaults: {pointers: 1}, attrTest: function (t) {
var e = this.options.pointers;
return 0 === e || t.pointers.length === e
}, process: function (t) {
var e = this.state, i = t.eventType, n = e & (ae | re), s = this.attrTest(t);
return n && (i & Ft || !s) ? e | ue : n || s ? i & Dt ? e | le : e & ae ? e | re : ae : he
}
}), l(J, G, {
defaults: {event: "pan", threshold: 10, pointers: 1, direction: Ot}, getTouchAction: function () {
var t = this.options.direction, e = [];
return t & It && e.push(se), t & Lt && e.push(ne), e
}, directionTest: function (t) {
var e = this.options, i = !0, n = t.distance, s = t.direction, o = t.deltaX, a = t.deltaY;
return s & e.direction || (e.direction & It ? (s = 0 === o ? At : 0 > o ? $t : Mt, i = o != this.pX, n = Math.abs(t.deltaX)) : (s = 0 === a ? At : 0 > a ? Pt : Nt, i = a != this.pY, n = Math.abs(t.deltaY))), t.direction = s, i && n > e.threshold && s & e.direction
}, attrTest: function (t) {
return G.prototype.attrTest.call(this, t) && (this.state & ae || !(this.state & ae) && this.directionTest(t))
}, emit: function (t) {
this.pX = t.deltaX, this.pY = t.deltaY;
var e = j(t.direction);
e && this.manager.emit(this.options.event + e, t), this._super.emit.call(this, t)
}
}), l(K, G, {
defaults: {event: "pinch", threshold: 0, pointers: 2}, getTouchAction: function () {
return [ie]
}, attrTest: function (t) {
return this._super.attrTest.call(this, t) && (Math.abs(t.scale - 1) > this.options.threshold || this.state & ae)
}, emit: function (t) {
if (this._super.emit.call(this, t), 1 !== t.scale) {
var e = t.scale < 1 ? "in" : "out";
this.manager.emit(this.options.event + e, t)
}
}
}), l(Q, X, {
defaults: {event: "press", pointers: 1, time: 500, threshold: 5}, getTouchAction: function () {
return [te]
}, process: function (t) {
var e = this.options, i = t.pointers.length === e.pointers, s = t.distance < e.threshold, o = t.deltaTime > e.time;
if (this._input = t, !s || !i || t.eventType & (Dt | Ft) && !o)this.reset(); else if (t.eventType & St)this.reset(), this._timer = n(function () {
this.state = ce, this.tryEmit()
}, e.time, this); else if (t.eventType & Dt)return ce;
return he
}, reset: function () {
clearTimeout(this._timer)
}, emit: function (t) {
this.state === ce && (t && t.eventType & Dt ? this.manager.emit(this.options.event + "up", t) : (this._input.timeStamp = mt(), this.manager.emit(this.options.event, this._input)))
}
}), l(tt, G, {
defaults: {event: "rotate", threshold: 0, pointers: 2}, getTouchAction: function () {
return [ie]
}, attrTest: function (t) {
return this._super.attrTest.call(this, t) && (Math.abs(t.rotation) > this.options.threshold || this.state & ae)
}
}), l(et, G, {
defaults: {event: "swipe", threshold: 10, velocity: .65, direction: It | Lt, pointers: 1},
getTouchAction: function () {
return J.prototype.getTouchAction.call(this)
},
attrTest: function (t) {
var e, i = this.options.direction;
return i & (It | Lt) ? e = t.velocity : i & It ? e = t.velocityX : i & Lt && (e = t.velocityY), this._super.attrTest.call(this, t) && i & t.direction && t.distance > this.options.threshold && pt(e) > this.options.velocity && t.eventType & Dt
},
emit: function (t) {
var e = j(t.direction);
e && this.manager.emit(this.options.event + e, t), this.manager.emit(this.options.event, t)
}
}), l(it, X, {
defaults: {
event: "tap",
pointers: 1,
taps: 1,
interval: 300,
time: 250,
threshold: 2,
posThreshold: 10
}, getTouchAction: function () {
return [ee]
}, process: function (t) {
var e = this.options, i = t.pointers.length === e.pointers, s = t.distance < e.threshold, o = t.deltaTime < e.time;
if (this.reset(), t.eventType & St && 0 === this.count)return this.failTimeout();
if (s && o && i) {
if (t.eventType != Dt)return this.failTimeout();
var a = this.pTime ? t.timeStamp - this.pTime < e.interval : !0, r = !this.pCenter || N(this.pCenter, t.center) < e.posThreshold;
this.pTime = t.timeStamp, this.pCenter = t.center, r && a ? this.count += 1 : this.count = 1, this._input = t;
var l = this.count % e.taps;
if (0 === l)return this.hasRequireFailures() ? (this._timer = n(function () {
this.state = ce, this.tryEmit()
}, e.interval, this), ae) : ce
}
return he
}, failTimeout: function () {
return this._timer = n(function () {
this.state = he
}, this.options.interval, this), he
}, reset: function () {
clearTimeout(this._timer)
}, emit: function () {
this.state == ce && (this._input.tapCount = this.count, this.manager.emit(this.options.event, this._input))
}
}), nt.VERSION = "2.0.4", nt.defaults = {
domEvents: !1,
touchAction: Qt,
enable: !0,
inputTarget: null,
inputClass: null,
preset: [[tt, {enable: !1}], [K, {enable: !1}, ["rotate"]], [et, {direction: It}], [J, {direction: It}, ["swipe"]], [it], [it, {
event: "doubletap",
taps: 2
}, ["tap"]], [Q]],
cssProps: {
userSelect: "none",
touchSelect: "none",
touchCallout: "none",
contentZooming: "none",
userDrag: "none",
tapHighlightColor: "rgba(0,0,0,0)"
}
};
var de = 1, pe = 2;
st.prototype = {
set: function (t) {
return a(this.options, t), t.touchAction && this.touchAction.update(), t.inputTarget && (this.input.destroy(), this.input.target = t.inputTarget, this.input.init()), this
}, stop: function (t) {
this.session.stopped = t ? pe : de
}, recognize: function (t) {
var e = this.session;
if (!e.stopped) {
this.touchAction.preventDefaults(t);
var i, n = this.recognizers, s = e.curRecognizer;
(!s || s && s.state & ce) && (s = e.curRecognizer = null);
for (var o = 0; o < n.length;)i = n[o], e.stopped === pe || s && i != s && !i.canRecognizeWith(s) ? i.reset() : i.recognize(t), !s && i.state & (ae | re | le) && (s = e.curRecognizer = i), o++
}
}, get: function (t) {
if (t instanceof X)return t;
for (var e = this.recognizers, i = 0; i < e.length; i++)if (e[i].options.event == t)return e[i];
return null
}, add: function (t) {
if (s(t, "add", this))return this;
var e = this.get(t.options.event);
return e && this.remove(e), this.recognizers.push(t), t.manager = this, this.touchAction.update(), t
}, remove: function (t) {
if (s(t, "remove", this))return this;
var e = this.recognizers;
return t = this.get(t), e.splice(g(e, t), 1), this.touchAction.update(), this
}, on: function (t, e) {
var i = this.handlers;
return o(v(t), function (t) {
i[t] = i[t] || [], i[t].push(e)
}), this
}, off: function (t, e) {
var i = this.handlers;
return o(v(t), function (t) {
e ? i[t].splice(g(i[t], e), 1) : delete i[t]
}), this
}, emit: function (t, e) {
this.options.domEvents && at(t, e);
var i = this.handlers[t] && this.handlers[t].slice();
if (i && i.length) {
e.type = t, e.preventDefault = function () {
e.srcEvent.preventDefault()
};
for (var n = 0; n < i.length;)i[n](e), n++
}
}, destroy: function () {
this.element && ot(this, !1), this.handlers = {}, this.session = {}, this.input.destroy(), this.element = null
}
}, a(nt, {
INPUT_START: St,
INPUT_MOVE: kt,
INPUT_END: Dt,
INPUT_CANCEL: Ft,
STATE_POSSIBLE: oe,
STATE_BEGAN: ae,
STATE_CHANGED: re,
STATE_ENDED: le,
STATE_RECOGNIZED: ce,
STATE_CANCELLED: ue,
STATE_FAILED: he,
DIRECTION_NONE: At,
DIRECTION_LEFT: $t,
DIRECTION_RIGHT: Mt,
DIRECTION_UP: Pt,
DIRECTION_DOWN: Nt,
DIRECTION_HORIZONTAL: It,
DIRECTION_VERTICAL: Lt,
DIRECTION_ALL: Ot,
Manager: st,
Input: C,
TouchAction: U,
TouchInput: W,
MouseInput: _,
PointerEventInput: z,
TouchMouseInput: B,
SingleTouchInput: R,
Recognizer: X,
AttrRecognizer: G,
Tap: it,
Pan: J,
Swipe: et,
Pinch: K,
Rotate: tt,
Press: Q,
on: d,
off: p,
each: o,
merge: r,
extend: a,
inherit: l,
bindFn: c,
prefixed: b
}), function (t, e) {
function i(i, n) {
var s = t(i);
s.data("hammer") || s.data("hammer", new e(s[0], n))
}
t.fn.hammer = function (t) {
return this.each(function () {
i(this, t)
})
}, e.Manager.prototype.emit = function (e) {
return function (i, n) {
e.call(this, i, n), t(this.element).trigger({type: i, gesture: n})
}
}(e.Manager.prototype.emit)
}(rt, nt), t.exports = lt.Hammer = nt
}, function (t, e, i) {
"use strict";
function n() {
window.removeEventListener("load", n, !1), c = !0
}
function s(t) {
return u = u || new s.Class(t)
}
function o(t, e) {
for (var i in e)t[i] = e[i];
return t
}
function a() {
"#ath" == document.location.hash && history.replaceState("", window.document.title, document.location.href.split("#")[0]), h.test(document.location.href) && history.replaceState("", window.document.title, document.location.href.replace(h, "$1")), d.test(document.location.search) && history.replaceState("", window.document.title, document.location.href.replace(d, "$2"))
}
var r = i(2), l = "addEventListener"in window, c = !1;
"complete" === document.readyState ? c = !0 : l && window.addEventListener("load", n, !1);
var u, h = /\/ath(\/)?$/, d = /([\?&]ath=[^&]*$|&ath=[^&]*(&))/;
s.intl = {
en_us: {
ios: "To add this web app to the home screen: tap %icon and then Add to Home Screen.",
android: 'To add this web app to the home screen open the browser option menu and tap on Add to homescreen. The menu can be accessed by pressing the menu hardware button if your device has one, or by tapping the top right menu icon icon.'
},
zh_cn: {
ios: "\u5982\u8981\u628a\u5e94\u7528\u7a0b\u5f0f\u52a0\u81f3\u4e3b\u5c4f\u5e55,\u8bf7\u70b9\u51fb%icon, \u7136\u540e\u52a0\u81f3\u4e3b\u5c4f\u5e55",
android: 'To add this web app to the home screen open the browser option menu and tap on Add to homescreen. The menu can be accessed by pressing the menu hardware button if your device has one, or by tapping the top right menu icon icon.'
},
zh_tw: {
ios: "\u5982\u8981\u628a\u61c9\u7528\u7a0b\u5f0f\u52a0\u81f3\u4e3b\u5c4f\u5e55, \u8acb\u9ede\u64ca%icon, \u7136\u5f8c\u52a0\u81f3\u4e3b\u5c4f\u5e55.",
android: 'To add this web app to the home screen open the browser option menu and tap on Add to homescreen. The menu can be accessed by pressing the menu hardware button if your device has one, or by tapping the top right menu icon icon.'
}
};
for (var p in s.intl)s.intl[p.substr(0, 2)] = s.intl[p];
s.defaults = {
appID: "org.cubiq.addtohome",
fontSize: 15,
debug: !1,
logging: !1,
modal: !1,
mandatory: !1,
autostart: !0,
skipFirstVisit: !1,
startDelay: 1,
lifespan: 15,
displayPace: 1440,
maxDisplayCount: 0,
icon: !0,
message: "",
validLocation: [],
onInit: null,
onShow: null,
onRemove: null,
onAdd: null,
onPrivate: null,
privateModeOverride: !1,
detectHomescreen: !1
};
var m = window.navigator.userAgent, f = window.navigator;
o(s, {
hasToken: "#ath" == document.location.hash || h.test(document.location.href) || d.test(document.location.search),
isRetina: window.devicePixelRatio && window.devicePixelRatio > 1,
isIDevice: /iphone|ipod|ipad/i.test(m),
isMobileChrome: m.indexOf("Android") > -1 && /Chrome\/[.0-9]*/.test(m) && -1 == m.indexOf("Version"),
isMobileIE: m.indexOf("Windows Phone") > -1,
language: f.language && f.language.toLowerCase().replace("-", "_") || ""
}), s.language = s.language && s.language in s.intl ? s.language : "en_us", s.isMobileSafari = s.isIDevice && m.indexOf("Safari") > -1 && m.indexOf("CriOS") < 0, s.OS = s.isIDevice ? "ios" : s.isMobileChrome ? "android" : s.isMobileIE ? "windows" : "unsupported", s.OSVersion = m.match(/(OS|Android) (\d+[_\.]\d+)/), s.OSVersion = s.OSVersion && s.OSVersion[2] ? +s.OSVersion[2].replace("_", ".") : 0, s.isStandalone = "standalone"in window.navigator && window.navigator.standalone, s.isTablet = s.isMobileSafari && m.indexOf("iPad") > -1 || s.isMobileChrome && m.indexOf("Mobile") < 0, s.isCompatible = s.isMobileSafari && s.OSVersion >= 6 || s.isMobileChrome;
var v = {lastDisplayTime: 0, returningVisitor: !1, displayCount: 0, optedout: !1, added: !1};
s.removeSession = function (t) {
try {
if (!localStorage)throw new Error("localStorage is not defined");
localStorage.removeItem(t || s.defaults.appID)
} catch (e) {
}
}, s.doLog = function (t) {
this.options.logging && console.log(t)
}, s.Class = function (t) {
if (this.doLog = s.doLog, this.options = o({}, s.defaults), o(this.options, t), this.options.debug && (this.options.logging = !0), l) {
if (this.options.mandatory = this.options.mandatory && ("standalone"in window.navigator || this.options.debug), this.options.modal = this.options.modal || this.options.mandatory, this.options.mandatory && (this.options.startDelay = -.5), this.options.detectHomescreen = this.options.detectHomescreen === !0 ? "hash" : this.options.detectHomescreen, this.options.debug && (s.isCompatible = !0, s.OS = "string" == typeof this.options.debug ? this.options.debug : "unsupported" == s.OS ? "android" : s.OS, s.OSVersion = "ios" == s.OS ? "8" : "4"), this.container = document.documentElement, this.session = this.getItem(this.options.appID), this.session = this.session ? JSON.parse(this.session) : void 0, !s.hasToken || s.isCompatible && this.session || (s.hasToken = !1, a()), !s.isCompatible)return void this.doLog("Add to homescreen: not displaying callout because device not supported");
this.session = this.session || v;
try {
if (!localStorage)throw new Error("localStorage is not defined");
localStorage.setItem(this.options.appID, JSON.stringify(this.session)), s.hasLocalStorage = !0
} catch (e) {
s.hasLocalStorage = !1, this.options.onPrivate && this.options.onPrivate.call(this)
}
for (var i = !this.options.validLocation.length, n = this.options.validLocation.length; n--;)if (this.options.validLocation[n].test(document.location.href)) {
i = !0;
break
}
if (this.getItem("addToHome") && this.optOut(), this.session.optedout)return void this.doLog("Add to homescreen: not displaying callout because user opted out");
if (this.session.added)return void this.doLog("Add to homescreen: not displaying callout because already added to the homescreen");
if (!i)return void this.doLog("Add to homescreen: not displaying callout because not a valid location");
if (s.isStandalone)return this.session.added || (this.session.added = !0, this.updateSession(), this.options.onAdd && s.hasLocalStorage && this.options.onAdd.call(this)), void this.doLog("Add to homescreen: not displaying callout because in standalone mode");
if (this.options.detectHomescreen) {
if (s.hasToken)return a(), this.session.added || (this.session.added = !0, this.updateSession(), this.options.onAdd && s.hasLocalStorage && this.options.onAdd.call(this)), void this.doLog("Add to homescreen: not displaying callout because URL has token, so we are likely coming from homescreen");
"hash" == this.options.detectHomescreen ? history.replaceState("", window.document.title, document.location.href + "#ath") : "smartURL" == this.options.detectHomescreen ? history.replaceState("", window.document.title, document.location.href.replace(/(\/)?$/, "/ath$1")) : history.replaceState("", window.document.title, document.location.href + (document.location.search ? "&" : "?") + "ath=")
}
if (!this.session.returningVisitor && (this.session.returningVisitor = !0, this.updateSession(), this.options.skipFirstVisit))return void this.doLog("Add to homescreen: not displaying callout because skipping first visit");
if (!this.options.privateModeOverride && !s.hasLocalStorage)return void this.doLog("Add to homescreen: not displaying callout because browser is in private mode");
this.ready = !0, this.options.onInit && this.options.onInit.call(this), this.options.autostart && (this.doLog("Add to homescreen: autostart displaying callout"), this.show())
}
}, s.Class.prototype = {
events: {
load: "_delayedShow",
error: "_delayedShow",
orientationchange: "resize",
resize: "resize",
scroll: "resize",
click: "remove",
touchmove: "_preventDefault",
transitionend: "_removeElements",
webkitTransitionEnd: "_removeElements",
MSTransitionEnd: "_removeElements"
}, handleEvent: function (t) {
var e = this.events[t.type];
e && this[e](t)
}, show: function (t) {
if (this.options.autostart && !c)return void setTimeout(this.show.bind(this), 50);
if (this.shown)return void this.doLog("Add to homescreen: not displaying callout because already shown on screen");
var e = Date.now(), i = this.session.lastDisplayTime;
if (t !== !0) {
if (!this.ready)return void this.doLog("Add to homescreen: not displaying callout because not ready");
if (e - i < 6e4 * this.options.displayPace)return void this.doLog("Add to homescreen: not displaying callout because displayed recently");
if (this.options.maxDisplayCount && this.session.displayCount >= this.options.maxDisplayCount)return void this.doLog("Add to homescreen: not displaying callout because displayed too many times already")
}
this.shown = !0, this.session.lastDisplayTime = e, this.session.displayCount++, this.updateSession(), this.applicationIcon || ("ios" == s.OS ? this.applicationIcon = document.querySelector('head link[rel^=apple-touch-icon][sizes="152x152"],head link[rel^=apple-touch-icon][sizes="144x144"],head link[rel^=apple-touch-icon][sizes="120x120"],head link[rel^=apple-touch-icon][sizes="114x114"],head link[rel^=apple-touch-icon]') : this.applicationIcon = document.querySelector('head link[rel^="shortcut icon"][sizes="196x196"],head link[rel^=apple-touch-icon]'));
var n = "";
"object" == typeof this.options.message && s.language in this.options.message ? n = this.options.message[s.language][s.OS] : "object" == typeof this.options.message && s.OS in this.options.message ? n = this.options.message[s.OS] : this.options.message in s.intl ? n = s.intl[this.options.message][s.OS] : "" !== this.options.message ? n = this.options.message : s.OS in s.intl[s.language] && (n = s.intl[s.language][s.OS]), n = "
" + n.replace("%icon", 'icon') + "
", this.viewport = document.createElement("div"), this.viewport.className = "ath-viewport", this.options.modal && (this.viewport.className += " ath-modal"), this.options.mandatory && (this.viewport.className += " ath-mandatory"), this.viewport.style.position = "absolute", this.element = document.createElement("div"), this.element.className = "ath-container ath-" + s.OS + " ath-" + s.OS + (s.OSVersion + "").substr(0, 1) + " ath-" + (s.isTablet ? "tablet" : "phone"), this.element.style.cssText = "-webkit-transition-property:-webkit-transform,opacity;-webkit-transition-duration:0s;-webkit-transition-timing-function:ease-out;transition-property:transform,opacity;transition-duration:0s;transition-timing-function:ease-out;", this.element.style.webkitTransform = "translate3d(0,-" + window.innerHeight + "px,0)", this.element.style.transform = "translate3d(0,-" + window.innerHeight + "px,0)", this.options.icon && this.applicationIcon && (this.element.className += " ath-icon", this.img = document.createElement("img"), this.img.className = "ath-application-icon", this.img.addEventListener("load", this, !1), this.img.addEventListener("error", this, !1), this.img.src = this.applicationIcon.href, this.element.appendChild(this.img)), this.element.innerHTML += n, this.viewport.style.left = "-99999em", this.viewport.appendChild(this.element), this.container.appendChild(this.viewport), this.img ? this.doLog("Add to homescreen: not displaying callout because waiting for img to load") : this._delayedShow()
}, _delayedShow: function (t) {
setTimeout(this._show.bind(this), 1e3 * this.options.startDelay + 500)
}, _show: function () {
var t = this;
this.updateViewport(), window.addEventListener("resize", this, !1), window.addEventListener("scroll", this, !1), window.addEventListener("orientationchange", this, !1), this.options.modal && document.addEventListener("touchmove", this, !0), this.options.mandatory || setTimeout(function () {
t.element.addEventListener("click", t, !0)
}, 1e3), setTimeout(function () {
t.element.style.webkitTransitionDuration = "1.2s", t.element.style.transitionDuration = "1.2s", t.element.style.webkitTransform = "translate3d(0,0,0)", t.element.style.transform = "translate3d(0,0,0)"
}, 0), this.options.lifespan && (this.removeTimer = setTimeout(this.remove.bind(this), 1e3 * this.options.lifespan)), this.options.onShow && this.options.onShow.call(this)
}, remove: function () {
clearTimeout(this.removeTimer), this.img && (this.img.removeEventListener("load", this, !1), this.img.removeEventListener("error", this, !1)), window.removeEventListener("resize", this, !1), window.removeEventListener("scroll", this, !1), window.removeEventListener("orientationchange", this, !1), document.removeEventListener("touchmove", this, !0), this.element.removeEventListener("click", this, !0), this.element.addEventListener("transitionend", this, !1), this.element.addEventListener("webkitTransitionEnd", this, !1), this.element.addEventListener("MSTransitionEnd", this, !1), this.element.style.webkitTransitionDuration = "0.3s", this.element.style.opacity = "0"
}, _removeElements: function () {
this.element.removeEventListener("transitionend", this, !1), this.element.removeEventListener("webkitTransitionEnd", this, !1), this.element.removeEventListener("MSTransitionEnd", this, !1), this.container.removeChild(this.viewport), this.shown = !1, this.options.onRemove && this.options.onRemove.call(this)
}, updateViewport: function () {
if (this.shown) {
this.viewport.style.width = window.innerWidth + "px", this.viewport.style.height = window.innerHeight + "px", this.viewport.style.left = window.scrollX + "px", this.viewport.style.top = window.scrollY + "px";
var t = document.documentElement.clientWidth;
this.orientation = t > document.documentElement.clientHeight ? "landscape" : "portrait";
var e = "ios" == s.OS ? "portrait" == this.orientation ? screen.width : screen.height : screen.width;
this.scale = screen.width > t ? 1 : e / window.innerWidth, this.element.style.fontSize = this.options.fontSize / this.scale + "px"
}
}, resize: function () {
clearTimeout(this.resizeTimer), this.resizeTimer = setTimeout(this.updateViewport.bind(this), 100)
}, updateSession: function () {
s.hasLocalStorage !== !1 && localStorage && localStorage.setItem(this.options.appID, JSON.stringify(this.session))
}, clearSession: function () {
this.session = v, this.updateSession()
}, getItem: function (t) {
try {
if (!localStorage)throw new Error("localStorage is not defined");
return localStorage.getItem(t)
} catch (e) {
s.hasLocalStorage = !1
}
}, optOut: function () {
this.session.optedout = !0, this.updateSession()
}, optIn: function () {
this.session.optedout = !1, this.updateSession()
}, clearDisplayCount: function () {
this.session.displayCount = 0, this.updateSession()
}, _preventDefault: function (t) {
t.preventDefault(), t.stopPropagation()
}
}, s.VERSION = "3.2.2", t.exports = r.addToHomescreen = s
}, function (t, e, i) {
"use strict";
var n = i(1), s = i(2), o = function (t, e) {
var i = this;
this.options = n.extend({}, o.DEFAULTS, e), this.$element = n(t), this.$element.addClass("am-fade am-in").on("click.alert.amui", ".am-close", function () {
i.close()
})
};
o.DEFAULTS = {removeElement: !0}, o.prototype.close = function () {
function t() {
e.trigger("closed.alert.amui").remove()
}
var e = this.$element;
e.trigger("close.alert.amui").removeClass("am-in"), s.support.transition && e.hasClass("am-fade") ? e.one(s.support.transition.end, t).emulateTransitionEnd(200) : t()
}, s.plugin("alert", o), n(document).on("click.alert.amui.data-api", "[data-am-alert]", function (t) {
var e = n(t.target);
e.is(".am-close") && n(this).alert("close")
}), t.exports = o
}, function (t, e, i) {
"use strict";
var n = i(1), s = i(2), o = function (t, e) {
this.$element = n(t), this.options = n.extend({}, o.DEFAULTS, e), this.isLoading = !1, this.hasSpinner = !1
};
o.DEFAULTS = {
loadingText: "loading...",
disabledClassName: "am-disabled",
spinner: void 0
}, o.prototype.setState = function (t, e) {
var i = this.$element, o = "disabled", a = i.data(), r = this.options, l = i.is("input") ? "val" : "html", c = "am-btn-" + t + " " + r.disabledClassName;
t += "Text", r.resetText || (r.resetText = i[l]()), s.support.animation && r.spinner && "html" === l && !this.hasSpinner && (r.loadingText = '' + r.loadingText, this.hasSpinner = !0), e = e || (void 0 === a[t] ? r[t] : a[t]), i[l](e), setTimeout(n.proxy(function () {
"loadingText" === t ? (i.addClass(c).attr(o, o), this.isLoading = !0) : this.isLoading && (i.removeClass(c).removeAttr(o), this.isLoading = !1)
}, this), 0)
}, o.prototype.toggle = function () {
var t = !0, e = this.$element, i = this.$element.parent('[class*="am-btn-group"]');
if (i.length) {
var n = this.$element.find("input");
"radio" == n.prop("type") && (n.prop("checked") && e.hasClass("am-active") ? t = !1 : i.find(".am-active").removeClass("am-active")), t && n.prop("checked", !e.hasClass("am-active")).trigger("change")
}
t && (e.toggleClass("am-active"), e.hasClass("am-active") || e.blur())
}, s.plugin("button", o, {
dataOptions: "data-am-loading", methodCall: function (t, e) {
"toggle" === t[0] ? e.toggle() : "string" == typeof t[0] && e.setState.apply(e, t)
}
}), n(document).on("click.button.amui.data-api", "[data-am-button]", function (t) {
t.preventDefault();
var e = n(t.target);
e.hasClass("am-btn") || (e = e.closest(".am-btn")), e.button("toggle")
}), s.ready(function (t) {
n("[data-am-loading]", t).button()
}), t.exports = s.button = o
}, function (t, e, i) {
"use strict";
function n(t) {
return this.each(function () {
var e = s(this), i = e.data("amui.collapse"), n = s.extend({}, a.DEFAULTS, o.utils.options(e.attr("data-am-collapse")), "object" == typeof t && t);
!i && n.toggle && "open" === t && (t = !t), i || e.data("amui.collapse", i = new a(this, n)), "string" == typeof t && i[t]()
})
}
var s = i(1), o = i(2), a = function (t, e) {
this.$element = s(t), this.options = s.extend({}, a.DEFAULTS, e), this.transitioning = null, this.options.parent && (this.$parent = s(this.options.parent)), this.options.toggle && this.toggle()
};
a.DEFAULTS = {toggle: !0}, a.prototype.open = function () {
if (!this.transitioning && !this.$element.hasClass("am-in")) {
var t = s.Event("open.collapse.amui");
if (this.$element.trigger(t), !t.isDefaultPrevented()) {
var e = this.$parent && this.$parent.find("> .am-panel > .am-in");
if (e && e.length) {
var i = e.data("amui.collapse");
if (i && i.transitioning)return;
n.call(e, "close"), i || e.data("amui.collapse", null)
}
this.$element.removeClass("am-collapse").addClass("am-collapsing").height(0), this.transitioning = 1;
var a = function () {
this.$element.removeClass("am-collapsing").addClass("am-collapse am-in").height("").trigger("opened.collapse.amui"), this.transitioning = 0
};
if (!o.support.transition)return a.call(this);
var r = this.$element[0].scrollHeight;
this.$element.one(o.support.transition.end, s.proxy(a, this)).emulateTransitionEnd(300).css({height: r})
}
}
}, a.prototype.close = function () {
if (!this.transitioning && this.$element.hasClass("am-in")) {
var t = s.Event("close.collapse.amui");
if (this.$element.trigger(t), !t.isDefaultPrevented()) {
this.$element.height(this.$element.height()).redraw(), this.$element.addClass("am-collapsing").removeClass("am-collapse am-in"), this.transitioning = 1;
var e = function () {
this.transitioning = 0, this.$element.trigger("closed.collapse.amui").removeClass("am-collapsing").addClass("am-collapse")
};
return o.support.transition ? void this.$element.height(0).one(o.support.transition.end, s.proxy(e, this)).emulateTransitionEnd(300) : e.call(this)
}
}
}, a.prototype.toggle = function () {
this[this.$element.hasClass("am-in") ? "close" : "open"]()
}, s.fn.collapse = n, s(document).on("click.collapse.amui.data-api", "[data-am-collapse]", function (t) {
var e, i = s(this), a = o.utils.options(i.attr("data-am-collapse")), r = a.target || t.preventDefault() || (e = i.attr("href")) && e.replace(/.*(?=#[^\s]+$)/, ""), l = s(r), c = l.data("amui.collapse"), u = c ? "toggle" : a, h = a.parent, d = h && s(h);
c && c.transitioning || (d && d.find("[data-am-collapse]").not(i).addClass("am-collapsed"), i[l.hasClass("am-in") ? "addClass" : "removeClass"]("am-collapsed")), n.call(l, u)
}), t.exports = o.collapse = a
}, function (t, e, i) {
"use strict";
var n = i(1), s = i(2), o = n(document), a = function (t, e) {
if (this.$element = n(t), this.options = n.extend({}, a.DEFAULTS, e), this.format = r.parseFormat(this.options.format), this.$element.data("date", this.options.date), this.language = this.getLocale(this.options.locale), this.theme = this.options.theme, this.$picker = n(r.template).appendTo("body").on({click: n.proxy(this.click, this)}), this.isInput = this.$element.is("input"), this.component = this.$element.is(".am-datepicker-date") ? this.$element.find(".am-datepicker-add-on") : !1, this.isInput ? this.$element.on({
"click.datepicker.amui": n.proxy(this.open, this),
"keyup.datepicker.amui": n.proxy(this.update, this)
}) : this.component ? this.component.on("click.datepicker.amui", n.proxy(this.open, this)) : this.$element.on("click.datepicker.amui", n.proxy(this.open, this)), this.minViewMode = this.options.minViewMode, "string" == typeof this.minViewMode)switch (this.minViewMode) {
case"months":
this.minViewMode = 1;
break;
case"years":
this.minViewMode = 2;
break;
default:
this.minViewMode = 0
}
if (this.viewMode = this.options.viewMode, "string" == typeof this.viewMode)switch (this.viewMode) {
case"months":
this.viewMode = 1;
break;
case"years":
this.viewMode = 2;
break;
default:
this.viewMode = 0
}
this.startViewMode = this.viewMode, this.weekStart = (this.options.weekStart || a.locales[this.language].weekStart || 0) % 7, this.weekEnd = (this.weekStart + 6) % 7, this.onRender = this.options.onRender, this.setTheme(), this.fillDow(), this.fillMonths(), this.update(), this.showMode()
};
a.DEFAULTS = {
locale: "zh_CN",
format: "yyyy-mm-dd",
weekStart: void 0,
viewMode: 0,
minViewMode: 0,
date: "",
theme: "",
autoClose: 1,
onRender: function (t) {
return ""
}
}, a.prototype.open = function (t) {
this.$picker.show(), this.height = this.component ? this.component.outerHeight() : this.$element.outerHeight(), this.place(), n(window).on("resize.datepicker.amui", n.proxy(this.place, this)), t && (t.stopPropagation(), t.preventDefault());
var e = this;
o.on("mousedown.datapicker.amui touchstart.datepicker.amui", function (t) {
0 === n(t.target).closest(".am-datepicker").length && e.close()
}), this.$element.trigger({type: "open.datepicker.amui", date: this.date})
}, a.prototype.close = function () {
this.$picker.hide(), n(window).off("resize.datepicker.amui", this.place), this.viewMode = this.startViewMode, this.showMode(), this.isInput || n(document).off("mousedown.datapicker.amui touchstart.datepicker.amui", this.close), this.$element.trigger({
type: "close.datepicker.amui",
date: this.date
})
}, a.prototype.set = function () {
var t, e = r.formatDate(this.date, this.format);
this.isInput ? t = this.$element.attr("value", e) : (this.component && (t = this.$element.find("input").attr("value", e)), this.$element.data("date", e)), t.trigger("change")
}, a.prototype.setValue = function (t) {
"string" == typeof t ? this.date = r.parseDate(t, this.format) : this.date = new Date(t), this.set(), this.viewDate = new Date(this.date.getFullYear(), this.date.getMonth(), 1, 0, 0, 0, 0), this.fill()
}, a.prototype.place = function () {
var t = this.component ? this.component.offset() : this.$element.offset(), e = this.component ? this.component.width() : this.$element.width(), i = t.top + this.height, n = t.left, s = o.width() - t.left - e, a = this.isOutView();
if (this.$picker.removeClass("am-datepicker-right"), this.$picker.removeClass("am-datepicker-up"), o.width() > 640) {
if (a.outRight)return this.$picker.addClass("am-datepicker-right"), void this.$picker.css({
top: i,
left: "auto",
right: s
});
a.outBottom && (this.$picker.addClass("am-datepicker-up"), i = t.top - this.$picker.outerHeight(!0))
} else n = 0;
this.$picker.css({top: i, left: n})
}, a.prototype.update = function (t) {
this.date = r.parseDate("string" == typeof t ? t : this.isInput ? this.$element.prop("value") : this.$element.data("date"), this.format), this.viewDate = new Date(this.date.getFullYear(), this.date.getMonth(), 1, 0, 0, 0, 0), this.fill()
}, a.prototype.fillDow = function () {
for (var t = this.weekStart, e = "
"; t < this.weekStart + 7;)e += '
' + a.locales[this.language].daysMin[t++ % 7] + "
";
e += "
", this.$picker.find(".am-datepicker-days thead").append(e)
}, a.prototype.fillMonths = function () {
for (var t = "", e = 0; 12 > e;)t += '' + a.locales[this.language].monthsShort[e++] + "";
this.$picker.find(".am-datepicker-months td").append(t)
}, a.prototype.fill = function () {
var t = new Date(this.viewDate), e = t.getFullYear(), i = t.getMonth(), n = this.date.valueOf(), s = new Date(e, i - 1, 28, 0, 0, 0, 0), o = r.getDaysInMonth(s.getFullYear(), s.getMonth()), l = this.$picker.find(".am-datepicker-days .am-datepicker-select");
"zh_CN" === this.language ? l.text(e + a.locales[this.language].year[0] + " " + a.locales[this.language].months[i]) : l.text(a.locales[this.language].months[i] + " " + e), s.setDate(o), s.setDate(o - (s.getDay() - this.weekStart + 7) % 7);
var c = new Date(s);
c.setDate(c.getDate() + 42), c = c.valueOf();
for (var u, h, d, p = []; s.valueOf() < c;)s.getDay() === this.weekStart && p.push("
"), u = this.onRender(s, 0), h = s.getFullYear(), d = s.getMonth(), i > d && h === e || e > h ? u += " am-datepicker-old" : (d > i && h === e || h > e) && (u += " am-datepicker-new"), s.valueOf() === n && (u += " am-active"), p.push('
' + s.getDate() + "
"), s.getDay() === this.weekEnd && p.push("
"), s.setDate(s.getDate() + 1);
this.$picker.find(".am-datepicker-days tbody").empty().append(p.join(""));
var m = this.date.getFullYear(), f = this.$picker.find(".am-datepicker-months").find(".am-datepicker-select").text(e);
f = f.end().find("span").removeClass("am-active").removeClass("am-disabled");
for (var v = 0; 12 > v;)this.onRender(t.setFullYear(e, v), 1) && f.eq(v).addClass("am-disabled"), v++;
m === e && f.eq(this.date.getMonth()).removeClass("am-disabled").addClass("am-active"), p = "", e = 10 * parseInt(e / 10, 10);
var g, w = this.$picker.find(".am-datepicker-years").find(".am-datepicker-select").text(e + "-" + (e + 9)).end().find("td"), y = new Date(this.viewDate);
e -= 1;
for (var b = -1; 11 > b; b++)g = this.onRender(y.setFullYear(e), 2), p += '' + e + "", e += 1;
w.html(p)
}, a.prototype.click = function (t) {
t.stopPropagation(), t.preventDefault();
var e, i, s = this.$picker.find(".am-datepicker-days").find(".am-active"), o = this.$picker.find(".am-datepicker-months"), a = o.find(".am-active").index(), l = n(t.target).closest("span, td, th");
if (1 === l.length)switch (l[0].nodeName.toLowerCase()) {
case"th":
switch (l[0].className) {
case"am-datepicker-switch":
this.showMode(1);
break;
case"am-datepicker-prev":
case"am-datepicker-next":
this.viewDate["set" + r.modes[this.viewMode].navFnc].call(this.viewDate, this.viewDate["get" + r.modes[this.viewMode].navFnc].call(this.viewDate) + r.modes[this.viewMode].navStep * ("am-datepicker-prev" === l[0].className ? -1 : 1)), this.fill(), this.set()
}
break;
case"span":
if (l.is(".am-disabled"))return;
l.is(".am-datepicker-month") ? (e = l.parent().find("span").index(l), l.is(".am-active") ? this.viewDate.setMonth(e, s.text()) : this.viewDate.setMonth(e)) : (i = parseInt(l.text(), 10) || 0, l.is(".am-active") ? this.viewDate.setFullYear(i, a, s.text()) : this.viewDate.setFullYear(i)), 0 !== this.viewMode && (this.date = new Date(this.viewDate), this.$element.trigger({
type: "changeDate.datepicker.amui",
date: this.date,
viewMode: r.modes[this.viewMode].clsName
})), this.showMode(-1), this.fill(), this.set();
break;
case"td":
if (l.is(".am-datepicker-day") && !l.is(".am-disabled")) {
var c = parseInt(l.text(), 10) || 1;
e = this.viewDate.getMonth(), l.is(".am-datepicker-old") ? e -= 1 : l.is(".am-datepicker-new") && (e += 1), i = this.viewDate.getFullYear(), this.date = new Date(i, e, c, 0, 0, 0, 0), this.viewDate = new Date(i, e, Math.min(28, c), 0, 0, 0, 0), this.fill(), this.set(), this.$element.trigger({
type: "changeDate.datepicker.amui",
date: this.date,
viewMode: r.modes[this.viewMode].clsName
}), this.options.autoClose && this.close()
}
}
}, a.prototype.mousedown = function (t) {
t.stopPropagation(), t.preventDefault()
}, a.prototype.showMode = function (t) {
t && (this.viewMode = Math.max(this.minViewMode, Math.min(2, this.viewMode + t))), this.$picker.find(">div").hide().filter(".am-datepicker-" + r.modes[this.viewMode].clsName).show()
}, a.prototype.isOutView = function () {
var t = this.component ? this.component.offset() : this.$element.offset(), e = {
outRight: !1,
outBottom: !1
}, i = this.$picker, n = t.left + i.outerWidth(!0), s = t.top + i.outerHeight(!0) + this.$element.innerHeight();
return n > o.width() && (e.outRight = !0), s > o.height() && (e.outBottom = !0), e
}, a.prototype.getLocale = function (t) {
return t || (t = navigator.language && navigator.language.split("-"), t[1] = t[1].toUpperCase(), t = t.join("_")), a.locales[t] || (t = "en_US"), t
}, a.prototype.setTheme = function () {
this.theme && this.$picker.addClass("am-datepicker-" + this.theme)
}, a.locales = {
en_US: {
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
weekStart: 0
},
zh_CN: {
days: ["\u661f\u671f\u65e5", "\u661f\u671f\u4e00", "\u661f\u671f\u4e8c", "\u661f\u671f\u4e09", "\u661f\u671f\u56db", "\u661f\u671f\u4e94", "\u661f\u671f\u516d"],
daysShort: ["\u5468\u65e5", "\u5468\u4e00", "\u5468\u4e8c", "\u5468\u4e09", "\u5468\u56db", "\u5468\u4e94", "\u5468\u516d"],
daysMin: ["\u65e5", "\u4e00", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d"],
months: ["\u4e00\u6708", "\u4e8c\u6708", "\u4e09\u6708", "\u56db\u6708", "\u4e94\u6708", "\u516d\u6708", "\u4e03\u6708", "\u516b\u6708", "\u4e5d\u6708", "\u5341\u6708", "\u5341\u4e00\u6708", "\u5341\u4e8c\u6708"],
monthsShort: ["\u4e00\u6708", "\u4e8c\u6708", "\u4e09\u6708", "\u56db\u6708", "\u4e94\u6708", "\u516d\u6708", "\u4e03\u6708", "\u516b\u6708", "\u4e5d\u6708", "\u5341\u6708", "\u5341\u4e00\u6708", "\u5341\u4e8c\u6708"],
weekStart: 1,
year: ["\u5e74"]
}
};
var r = {
modes: [{clsName: "days", navFnc: "Month", navStep: 1}, {
clsName: "months",
navFnc: "FullYear",
navStep: 1
}, {clsName: "years", navFnc: "FullYear", navStep: 10}],
isLeapYear: function (t) {
return t % 4 === 0 && t % 100 !== 0 || t % 400 === 0
},
getDaysInMonth: function (t, e) {
return [31, r.isLeapYear(t) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][e]
},
parseFormat: function (t) {
var e = t.match(/[.\/\-\s].*?/), i = t.split(/\W+/);
if (!e || !i || 0 === i.length)throw new Error("Invalid date format.");
return {separator: e, parts: i}
},
parseDate: function (t, e) {
var i, n = t.split(e.separator);
if (t = new Date, t.setHours(0), t.setMinutes(0), t.setSeconds(0), t.setMilliseconds(0), n.length === e.parts.length) {
for (var s = t.getFullYear(), o = t.getDate(), a = t.getMonth(), r = 0, l = e.parts.length; l > r; r++)switch (i = parseInt(n[r], 10) || 1, e.parts[r]) {
case"dd":
case"d":
o = i, t.setDate(i);
break;
case"mm":
case"m":
a = i - 1, t.setMonth(i - 1);
break;
case"yy":
s = 2e3 + i, t.setFullYear(2e3 + i);
break;
case"yyyy":
s = i, t.setFullYear(i)
}
t = new Date(s, a, o, 0, 0, 0)
}
return t
},
formatDate: function (t, e) {
var i = {
d: t.getDate(),
m: t.getMonth() + 1,
yy: t.getFullYear().toString().substring(2),
yyyy: t.getFullYear()
}, n = [];
i.dd = (i.d < 10 ? "0" : "") + i.d, i.mm = (i.m < 10 ? "0" : "") + i.m;
for (var s = 0, o = e.parts.length; o > s; s++)n.push(i[e.parts[s]]);
return n.join(e.separator)
},
headTemplate: '
',
contTemplate: '
'
};
r.template = '
' + r.headTemplate + '
' + r.headTemplate + r.contTemplate + '
' + r.headTemplate + r.contTemplate + "
", s.plugin("datepicker", a), s.ready(function (t) {
n("[data-am-datepicker]").datepicker()
}), t.exports = s.datepicker = a
}, function (t, e, i) {
"use strict";
var n = i(1), s = i(2), o = n(document), a = s.support.transition, r = function () {
this.id = s.utils.generateGUID("am-dimmer"), this.$element = n(r.DEFAULTS.tpl, {id: this.id}), this.inited = !1, this.scrollbarWidth = 0, this.$used = n([])
};
r.DEFAULTS = {tpl: ''}, r.prototype.init = function () {
return this.inited || (n(document.body).append(this.$element), this.inited = !0, o.trigger("init.dimmer.amui"), this.$element.on("touchmove.dimmer.amui", function (t) {
t.preventDefault()
})), this
}, r.prototype.open = function (t) {
this.inited || this.init();
var e = this.$element;
return t && (this.$used = this.$used.add(n(t))), this.checkScrollbar().setScrollbar(), e.show().trigger("open.dimmer.amui"), a && e.off(a.end), setTimeout(function () {
e.addClass("am-active")
}, 0), this
}, r.prototype.close = function (t, e) {
function i() {
s.hide(), this.resetScrollbar()
}
if (this.$used = this.$used.not(n(t)), !e && this.$used.length)return this;
var s = this.$element;
return s.removeClass("am-active").trigger("close.dimmer.amui"), i.call(this), this
}, r.prototype.checkScrollbar = function () {
return this.scrollbarWidth = s.utils.measureScrollbar(), this
}, r.prototype.setScrollbar = function () {
var t = n(document.body), e = parseInt(t.css("padding-right") || 0, 10);
return this.scrollbarWidth && t.css("padding-right", e + this.scrollbarWidth), t.addClass("am-dimmer-active"), this
}, r.prototype.resetScrollbar = function () {
return n(document.body).css("padding-right", "").removeClass("am-dimmer-active"), this
}, t.exports = s.dimmer = new r
}, function (t, e, i) {
"use strict";
var n = i(1), s = i(2), o = s.support.animation, a = function (t, e) {
this.options = n.extend({}, a.DEFAULTS, e), e = this.options, this.$element = n(t), this.$toggle = this.$element.find(e.selector.toggle), this.$dropdown = this.$element.find(e.selector.dropdown), this.$boundary = e.boundary === window ? n(window) : this.$element.closest(e.boundary), this.$justify = e.justify && n(e.justify).length && n(e.justify) || void 0, !this.$boundary.length && (this.$boundary = n(window)), this.active = this.$element.hasClass("am-active") ? !0 : !1, this.animating = null, this.events()
};
a.DEFAULTS = {
animation: "am-animation-slide-top-fixed",
boundary: window,
justify: void 0,
selector: {dropdown: ".am-dropdown-content", toggle: ".am-dropdown-toggle"},
trigger: "click"
}, a.prototype.toggle = function () {
this.clear(), this.animating || this[this.active ? "close" : "open"]()
}, a.prototype.open = function (t) {
var e = this.$toggle, i = this.$element, s = this.$dropdown;
if (!e.is(".am-disabled, :disabled") && !this.active) {
i.trigger("open.dropdown.amui").addClass("am-active"), e.trigger("focus"), this.checkDimensions();
var a = n.proxy(function () {
i.trigger("opened.dropdown.amui"), this.active = !0, this.animating = 0
}, this);
o ? (this.animating = 1, s.addClass(this.options.animation).on(o.end + ".open.dropdown.amui", n.proxy(function () {
a(), s.removeClass(this.options.animation)
}, this))) : a()
}
}, a.prototype.close = function () {
if (this.active) {
var t = "am-dropdown-animation", e = this.$element, i = this.$dropdown;
e.trigger("close.dropdown.amui");
var s = n.proxy(function () {
e.removeClass("am-active").trigger("closed.dropdown.amui"), this.active = !1, this.animating = 0, this.$toggle.blur()
}, this);
o ? (i.removeClass(this.options.animation), i.addClass(t), this.animating = 1, i.one(o.end + ".close.dropdown.amui", function () {
i.removeClass(t), s()
})) : s()
}
}, a.prototype.enable = function () {
this.$toggle.prop("disabled", !1)
}, a.prototype.disable = function () {
this.$toggle.prop("disabled", !0)
}, a.prototype.checkDimensions = function () {
if (this.$dropdown.length) {
var t = this.$dropdown, e = t.offset(), i = t.outerWidth(), s = this.$boundary.width(), o = n.isWindow(this.boundary) && this.$boundary.offset() ? this.$boundary.offset().left : 0;
this.$justify && t.css({"min-width": this.$justify.css("width")}), i + (e.left - o) > s && this.$element.addClass("am-dropdown-flip")
}
}, a.prototype.clear = function () {
n("[data-am-dropdown]").not(this.$element).each(function () {
var t = n(this).data("amui.dropdown");
t && t.close()
})
}, a.prototype.events = function () {
var t = "dropdown.amui", e = this.$toggle;
e.on("click." + t, n.proxy(function (t) {
t.preventDefault(), this.toggle()
}, this)), n(document).on("keydown.dropdown.amui", n.proxy(function (t) {
27 === t.keyCode && this.active && this.close()
}, this)).on("click.outer.dropdown.amui", n.proxy(function (t) {
!this.active || this.$element[0] !== t.target && this.$element.find(t.target).length || this.close()
}, this))
}, s.plugin("dropdown", a), s.ready(function (t) {
n("[data-am-dropdown]", t).dropdown()
}), n(document).on("click.dropdown.amui.data-api", ".am-dropdown form", function (t) {
t.stopPropagation()
}), t.exports = s.dropdown = a
}, function (t, e, i) {
(function (e) {
var n = i(1), s = i(2);
n.flexslider = function (t, i) {
var s = n(t);
s.vars = n.extend({}, n.flexslider.defaults, i);
var o, a = s.vars.namespace, r = window.navigator && window.navigator.msPointerEnabled && window.MSGesture, l = ("ontouchstart"in window || r || window.DocumentTouch && document instanceof DocumentTouch) && s.vars.touch, c = "click touchend MSPointerUp keyup", u = "", h = "vertical" === s.vars.direction, d = s.vars.reverse, p = s.vars.itemWidth > 0, m = "fade" === s.vars.animation, f = "" !== s.vars.asNavFor, v = {}, g = !0;
n.data(t, "flexslider", s), v = {
init: function () {
s.animating = !1, s.currentSlide = parseInt(s.vars.startAt ? s.vars.startAt : 0, 10), isNaN(s.currentSlide) && (s.currentSlide = 0), s.animatingTo = s.currentSlide, s.atEnd = 0 === s.currentSlide || s.currentSlide === s.last, s.containerSelector = s.vars.selector.substr(0, s.vars.selector.search(" ")), s.slides = n(s.vars.selector, s), s.container = n(s.containerSelector, s), s.count = s.slides.length, s.syncExists = n(s.vars.sync).length > 0, "slide" === s.vars.animation && (s.vars.animation = "swing"), s.prop = h ? "top" : "marginLeft", s.args = {}, s.manualPause = !1, s.stopped = !1, s.started = !1, s.startTimeout = null, s.transitions = !s.vars.video && !m && s.vars.useCSS && function () {
var t = document.createElement("div"), e = ["perspectiveProperty", "WebkitPerspective", "MozPerspective", "OPerspective", "msPerspective"];
for (var i in e)if (void 0 !== t.style[e[i]])return s.pfx = e[i].replace("Perspective", "").toLowerCase(), s.prop = "-" + s.pfx + "-transform", !0;
return !1
}(), s.ensureAnimationEnd = "", "" !== s.vars.controlsContainer && (s.controlsContainer = n(s.vars.controlsContainer).length > 0 && n(s.vars.controlsContainer)), "" !== s.vars.manualControls && (s.manualControls = n(s.vars.manualControls).length > 0 && n(s.vars.manualControls)), s.vars.randomize && (s.slides.sort(function () {
return Math.round(Math.random()) - .5
}), s.container.empty().append(s.slides)), s.doMath(), s.setup("init"), s.vars.controlNav && v.controlNav.setup(), s.vars.directionNav && v.directionNav.setup(), s.vars.keyboard && (1 === n(s.containerSelector).length || s.vars.multipleKeyboard) && n(document).bind("keyup", function (t) {
var e = t.keyCode;
if (!s.animating && (39 === e || 37 === e)) {
var i = 39 === e ? s.getTarget("next") : 37 === e ? s.getTarget("prev") : !1;
s.flexAnimate(i, s.vars.pauseOnAction)
}
}), s.vars.mousewheel && s.bind("mousewheel", function (t, e, i, n) {
t.preventDefault();
var o = 0 > e ? s.getTarget("next") : s.getTarget("prev");
s.flexAnimate(o, s.vars.pauseOnAction)
}), s.vars.pausePlay && v.pausePlay.setup(), s.vars.slideshow && s.vars.pauseInvisible && v.pauseInvisible.init(), s.vars.slideshow && (s.vars.pauseOnHover && s.hover(function () {
s.manualPlay || s.manualPause || s.pause()
}, function () {
s.manualPause || s.manualPlay || s.stopped || s.play()
}), s.vars.pauseInvisible && v.pauseInvisible.isHidden() || (s.vars.initDelay > 0 ? s.startTimeout = setTimeout(s.play, s.vars.initDelay) : s.play())), f && v.asNav.setup(), l && s.vars.touch && v.touch(), (!m || m && s.vars.smoothHeight) && n(window).bind("resize orientationchange focus", v.resize), s.find("img").attr("draggable", "false"), setTimeout(function () {
s.vars.start(s)
}, 200)
}, asNav: {
setup: function () {
s.asNav = !0, s.animatingTo = Math.floor(s.currentSlide / s.move), s.currentItem = s.currentSlide, s.slides.removeClass(a + "active-slide").eq(s.currentItem).addClass(a + "active-slide"), r ? (t._slider = s, s.slides.each(function () {
var t = this;
t._gesture = new MSGesture, t._gesture.target = t, t.addEventListener("MSPointerDown", function (t) {
t.preventDefault(), t.currentTarget._gesture && t.currentTarget._gesture.addPointer(t.pointerId)
}, !1), t.addEventListener("MSGestureTap", function (t) {
t.preventDefault();
var e = n(this), i = e.index();
n(s.vars.asNavFor).data("flexslider").animating || e.hasClass("active") || (s.direction = s.currentItem < i ? "next" : "prev", s.flexAnimate(i, s.vars.pauseOnAction, !1, !0, !0))
})
})) : s.slides.on(c, function (t) {
t.preventDefault();
var e = n(this), i = e.index(), o = e.offset().left - n(s).scrollLeft();
0 >= o && e.hasClass(a + "active-slide") ? s.flexAnimate(s.getTarget("prev"), !0) : n(s.vars.asNavFor).data("flexslider").animating || e.hasClass(a + "active-slide") || (s.direction = s.currentItem < i ? "next" : "prev", s.flexAnimate(i, s.vars.pauseOnAction, !1, !0, !0))
})
}
}, controlNav: {
setup: function () {
s.manualControls ? v.controlNav.setupManual() : v.controlNav.setupPaging()
}, setupPaging: function () {
var t, e, i = "thumbnails" === s.vars.controlNav ? "control-thumbs" : "control-paging", o = 1;
if (s.controlNavScaffold = n(''), s.pagingCount > 1)for (var r = 0; r < s.pagingCount; r++) {
if (e = s.slides.eq(r), t = "thumbnails" === s.vars.controlNav ? '' : "" + o + "", "thumbnails" === s.vars.controlNav && !0 === s.vars.thumbCaptions) {
var l = e.attr("data-thumbcaption");
"" != l && void 0 != l && (t += '' + l + "")
}
s.controlNavScaffold.append("
" + t + "
"), o++
}
s.controlsContainer ? n(s.controlsContainer).append(s.controlNavScaffold) : s.append(s.controlNavScaffold), v.controlNav.set(), v.controlNav.active(), s.controlNavScaffold.delegate("a, img", c, function (t) {
if (t.preventDefault(), "" === u || u === t.type) {
var e = n(this), i = s.controlNav.index(e);
e.hasClass(a + "active") || (s.direction = i > s.currentSlide ? "next" : "prev", s.flexAnimate(i, s.vars.pauseOnAction))
}
"" === u && (u = t.type), v.setToClearWatchedEvent()
})
}, setupManual: function () {
s.controlNav = s.manualControls, v.controlNav.active(), s.controlNav.bind(c, function (t) {
if (t.preventDefault(), "" === u || u === t.type) {
var e = n(this), i = s.controlNav.index(e);
e.hasClass(a + "active") || (i > s.currentSlide ? s.direction = "next" : s.direction = "prev", s.flexAnimate(i, s.vars.pauseOnAction))
}
"" === u && (u = t.type), v.setToClearWatchedEvent()
})
}, set: function () {
var t = "thumbnails" === s.vars.controlNav ? "img" : "a";
s.controlNav = n("." + a + "control-nav li " + t, s.controlsContainer ? s.controlsContainer : s)
}, active: function () {
s.controlNav.removeClass(a + "active").eq(s.animatingTo).addClass(a + "active")
}, update: function (t, e) {
s.pagingCount > 1 && "add" === t ? s.controlNavScaffold.append(n("
");
s.controlsContainer ? (n(s.controlsContainer).append(t), s.directionNav = n("." + a + "direction-nav li a", s.controlsContainer)) : (s.append(t), s.directionNav = n("." + a + "direction-nav li a", s)), v.directionNav.update(), s.directionNav.bind(c, function (t) {
t.preventDefault();
var e;
("" === u || u === t.type) && (e = n(this).hasClass(a + "next") ? s.getTarget("next") : s.getTarget("prev"), s.flexAnimate(e, s.vars.pauseOnAction)), "" === u && (u = t.type), v.setToClearWatchedEvent()
})
}, update: function () {
var t = a + "disabled";
1 === s.pagingCount ? s.directionNav.addClass(t).attr("tabindex", "-1") : s.vars.animationLoop ? s.directionNav.removeClass(t).removeAttr("tabindex") : 0 === s.animatingTo ? s.directionNav.removeClass(t).filter("." + a + "prev").addClass(t).attr("tabindex", "-1") : s.animatingTo === s.last ? s.directionNav.removeClass(t).filter("." + a + "next").addClass(t).attr("tabindex", "-1") : s.directionNav.removeClass(t).removeAttr("tabindex")
}
}, pausePlay: {
setup: function () {
var t = n('
');
s.controlsContainer ? (s.controlsContainer.append(t), s.pausePlay = n("." + a + "pauseplay a", s.controlsContainer)) : (s.append(t), s.pausePlay = n("." + a + "pauseplay a", s)), v.pausePlay.update(s.vars.slideshow ? a + "pause" : a + "play"), s.pausePlay.bind(c, function (t) {
t.preventDefault(), ("" === u || u === t.type) && (n(this).hasClass(a + "pause") ? (s.manualPause = !0, s.manualPlay = !1, s.pause()) : (s.manualPause = !1, s.manualPlay = !0, s.play())), "" === u && (u = t.type), v.setToClearWatchedEvent()
})
}, update: function (t) {
"play" === t ? s.pausePlay.removeClass(a + "pause").addClass(a + "play").html(s.vars.playText) : s.pausePlay.removeClass(a + "play").addClass(a + "pause").html(s.vars.pauseText)
}
}, touch: function () {
function i(e) {
s.animating ? e.preventDefault() : (window.navigator.msPointerEnabled || 1 === e.touches.length) && (s.pause(), g = h ? s.h : s.w, y = Number(new Date), T = e.touches[0].pageX, x = e.touches[0].pageY, v = p && d && s.animatingTo === s.last ? 0 : p && d ? s.limit - (s.itemW + s.vars.itemMargin) * s.move * s.animatingTo : p && s.currentSlide === s.last ? s.limit : p ? (s.itemW + s.vars.itemMargin) * s.move * s.currentSlide : d ? (s.last - s.currentSlide + s.cloneOffset) * g : (s.currentSlide + s.cloneOffset) * g, u = h ? x : T, f = h ? T : x, t.addEventListener("touchmove", n, !1), t.addEventListener("touchend", o, !1))
}
function n(t) {
T = t.touches[0].pageX, x = t.touches[0].pageY, w = h ? u - x : u - T, b = h ? Math.abs(w) < Math.abs(T - f) : Math.abs(w) < Math.abs(x - f);
var e = 500;
(!b || Number(new Date) - y > e) && (t.preventDefault(), !m && s.transitions && (s.vars.animationLoop || (w /= 0 === s.currentSlide && 0 > w || s.currentSlide === s.last && w > 0 ? Math.abs(w) / g + 2 : 1), s.setProps(v + w, "setTouch")))
}
function o(e) {
if (t.removeEventListener("touchmove", n, !1), s.animatingTo === s.currentSlide && !b && null !== w) {
var i = d ? -w : w, a = i > 0 ? s.getTarget("next") : s.getTarget("prev");
s.canAdvance(a) && (Number(new Date) - y < 550 && Math.abs(i) > 50 || Math.abs(i) > g / 2) ? s.flexAnimate(a, s.vars.pauseOnAction) : m || s.flexAnimate(s.currentSlide, s.vars.pauseOnAction, !0)
}
t.removeEventListener("touchend", o, !1), u = null, f = null, w = null, v = null
}
function a(e) {
e.stopPropagation(), s.animating ? e.preventDefault() : (s.pause(), t._gesture.addPointer(e.pointerId), C = 0, g = h ? s.h : s.w, y = Number(new Date), v = p && d && s.animatingTo === s.last ? 0 : p && d ? s.limit - (s.itemW + s.vars.itemMargin) * s.move * s.animatingTo : p && s.currentSlide === s.last ? s.limit : p ? (s.itemW + s.vars.itemMargin) * s.move * s.currentSlide : d ? (s.last - s.currentSlide + s.cloneOffset) * g : (s.currentSlide + s.cloneOffset) * g)
}
function l(i) {
i.stopPropagation();
var n = i.target._slider;
if (n) {
var s = -i.translationX, o = -i.translationY;
return C += h ? o : s, w = C, b = h ? Math.abs(C) < Math.abs(-s) : Math.abs(C) < Math.abs(-o), i.detail === i.MSGESTURE_FLAG_INERTIA ? void e(function () {
t._gesture.stop()
}) : void((!b || Number(new Date) - y > 500) && (i.preventDefault(), !m && n.transitions && (n.vars.animationLoop || (w = C / (0 === n.currentSlide && 0 > C || n.currentSlide === n.last && C > 0 ? Math.abs(C) / g + 2 : 1)), n.setProps(v + w, "setTouch"))))
}
}
function c(t) {
t.stopPropagation();
var e = t.target._slider;
if (e) {
if (e.animatingTo === e.currentSlide && !b && null !== w) {
var i = d ? -w : w, n = i > 0 ? e.getTarget("next") : e.getTarget("prev");
e.canAdvance(n) && (Number(new Date) - y < 550 && Math.abs(i) > 50 || Math.abs(i) > g / 2) ? e.flexAnimate(n, e.vars.pauseOnAction) : m || e.flexAnimate(e.currentSlide, e.vars.pauseOnAction, !0)
}
u = null, f = null, w = null, v = null, C = 0
}
}
var u, f, v, g, w, y, b = !1, T = 0, x = 0, C = 0;
r ? (t.style.msTouchAction = "none", t._gesture = new MSGesture, t._gesture.target = t, t.addEventListener("MSPointerDown", a, !1), t._slider = s, t.addEventListener("MSGestureChange", l, !1), t.addEventListener("MSGestureEnd", c, !1)) : t.addEventListener("touchstart", i, !1)
}, resize: function () {
!s.animating && s.is(":visible") && (p || s.doMath(), m ? v.smoothHeight() : p ? (s.slides.width(s.computedW), s.update(s.pagingCount), s.setProps()) : h ? (s.viewport.height(s.h), s.setProps(s.h, "setTotal")) : (s.vars.smoothHeight && v.smoothHeight(), s.newSlides.width(s.computedW), s.setProps(s.computedW, "setTotal")))
}, smoothHeight: function (t) {
if (!h || m) {
var e = m ? s : s.viewport;
t ? e.animate({height: s.slides.eq(s.animatingTo).height()}, t) : e.height(s.slides.eq(s.animatingTo).height())
}
}, sync: function (t) {
var e = n(s.vars.sync).data("flexslider"), i = s.animatingTo;
switch (t) {
case"animate":
e.flexAnimate(i, s.vars.pauseOnAction, !1, !0);
break;
case"play":
e.playing || e.asNav || e.play();
break;
case"pause":
e.pause()
}
}, uniqueID: function (t) {
return t.filter("[id]").add(t.find("[id]")).each(function () {
var t = n(this);
t.attr("id", t.attr("id") + "_clone")
}), t
}, pauseInvisible: {
visProp: null, init: function () {
var t = v.pauseInvisible.getHiddenProp();
if (t) {
var e = t.replace(/[H|h]idden/, "") + "visibilitychange";
document.addEventListener(e, function () {
v.pauseInvisible.isHidden() ? s.startTimeout ? clearTimeout(s.startTimeout) : s.pause() : s.started ? s.play() : s.vars.initDelay > 0 ? setTimeout(s.play, s.vars.initDelay) : s.play()
})
}
}, isHidden: function () {
var t = v.pauseInvisible.getHiddenProp();
return t ? document[t] : !1
}, getHiddenProp: function () {
var t = ["webkit", "moz", "ms", "o"];
if ("hidden"in document)return "hidden";
for (var e = 0; e < t.length; e++)if (t[e] + "Hidden"in document)return t[e] + "Hidden";
return null
}
}, setToClearWatchedEvent: function () {
clearTimeout(o), o = setTimeout(function () {
u = ""
}, 3e3)
}
}, s.flexAnimate = function (t, e, i, o, r) {
if (s.vars.animationLoop || t === s.currentSlide || (s.direction = t > s.currentSlide ? "next" : "prev"), f && 1 === s.pagingCount && (s.direction = s.currentItem < t ? "next" : "prev"), !s.animating && (s.canAdvance(t, r) || i) && s.is(":visible")) {
if (f && o) {
var c = n(s.vars.asNavFor).data("flexslider");
if (s.atEnd = 0 === t || t === s.count - 1, c.flexAnimate(t, !0, !1, !0, r), s.direction = s.currentItem < t ? "next" : "prev", c.direction = s.direction, Math.ceil((t + 1) / s.visible) - 1 === s.currentSlide || 0 === t)return s.currentItem = t, s.slides.removeClass(a + "active-slide").eq(t).addClass(a + "active-slide"), !1;
s.currentItem = t, s.slides.removeClass(a + "active-slide").eq(t).addClass(a + "active-slide"), t = Math.floor(t / s.visible)
}
if (s.animating = !0, s.animatingTo = t, e && s.pause(), s.vars.before(s), s.syncExists && !r && v.sync("animate"), s.vars.controlNav && v.controlNav.active(), p || s.slides.removeClass(a + "active-slide").eq(t).addClass(a + "active-slide"), s.atEnd = 0 === t || t === s.last, s.vars.directionNav && v.directionNav.update(), t === s.last && (s.vars.end(s), s.vars.animationLoop || s.pause()), m)l ? (s.slides.eq(s.currentSlide).css({
opacity: 0,
zIndex: 1
}), s.slides.eq(t).css({
opacity: 1,
zIndex: 2
}), s.wrapup(y)) : (s.slides.eq(s.currentSlide).css({zIndex: 1}).animate({opacity: 0}, s.vars.animationSpeed, s.vars.easing), s.slides.eq(t).css({zIndex: 2}).animate({opacity: 1}, s.vars.animationSpeed, s.vars.easing, s.wrapup)); else {
var u, g, w, y = h ? s.slides.filter(":first").height() : s.computedW;
p ? (u = s.vars.itemMargin, w = (s.itemW + u) * s.move * s.animatingTo, g = w > s.limit && 1 !== s.visible ? s.limit : w) : g = 0 === s.currentSlide && t === s.count - 1 && s.vars.animationLoop && "next" !== s.direction ? d ? (s.count + s.cloneOffset) * y : 0 : s.currentSlide === s.last && 0 === t && s.vars.animationLoop && "prev" !== s.direction ? d ? 0 : (s.count + 1) * y : d ? (s.count - 1 - t + s.cloneOffset) * y : (t + s.cloneOffset) * y, s.setProps(g, "", s.vars.animationSpeed), s.transitions ? (s.vars.animationLoop && s.atEnd || (s.animating = !1, s.currentSlide = s.animatingTo), s.container.unbind("webkitTransitionEnd transitionend"), s.container.bind("webkitTransitionEnd transitionend", function () {
clearTimeout(s.ensureAnimationEnd), s.wrapup(y)
}), clearTimeout(s.ensureAnimationEnd), s.ensureAnimationEnd = setTimeout(function () {
s.wrapup(y)
}, s.vars.animationSpeed + 100)) : s.container.animate(s.args, s.vars.animationSpeed, s.vars.easing, function () {
s.wrapup(y)
})
}
s.vars.smoothHeight && v.smoothHeight(s.vars.animationSpeed)
}
}, s.wrapup = function (t) {
m || p || (0 === s.currentSlide && s.animatingTo === s.last && s.vars.animationLoop ? s.setProps(t, "jumpEnd") : s.currentSlide === s.last && 0 === s.animatingTo && s.vars.animationLoop && s.setProps(t, "jumpStart")), s.animating = !1, s.currentSlide = s.animatingTo, s.vars.after(s)
}, s.animateSlides = function () {
!s.animating && g && s.flexAnimate(s.getTarget("next"))
}, s.pause = function () {
clearInterval(s.animatedSlides), s.animatedSlides = null, s.playing = !1, s.vars.pausePlay && v.pausePlay.update("play"), s.syncExists && v.sync("pause")
}, s.play = function () {
s.playing && clearInterval(s.animatedSlides), s.animatedSlides = s.animatedSlides || setInterval(s.animateSlides, s.vars.slideshowSpeed), s.started = s.playing = !0, s.vars.pausePlay && v.pausePlay.update("pause"), s.syncExists && v.sync("play")
}, s.stop = function () {
s.pause(), s.stopped = !0
}, s.canAdvance = function (t, e) {
var i = f ? s.pagingCount - 1 : s.last;
return e ? !0 : f && s.currentItem === s.count - 1 && 0 === t && "prev" === s.direction ? !0 : f && 0 === s.currentItem && t === s.pagingCount - 1 && "next" !== s.direction ? !1 : t !== s.currentSlide || f ? s.vars.animationLoop ? !0 : s.atEnd && 0 === s.currentSlide && t === i && "next" !== s.direction ? !1 : s.atEnd && s.currentSlide === i && 0 === t && "next" === s.direction ? !1 : !0 : !1
}, s.getTarget = function (t) {
return s.direction = t, "next" === t ? s.currentSlide === s.last ? 0 : s.currentSlide + 1 : 0 === s.currentSlide ? s.last : s.currentSlide - 1
}, s.setProps = function (t, e, i) {
var n = function () {
var i = t ? t : (s.itemW + s.vars.itemMargin) * s.move * s.animatingTo, n = function () {
if (p)return "setTouch" === e ? t : d && s.animatingTo === s.last ? 0 : d ? s.limit - (s.itemW + s.vars.itemMargin) * s.move * s.animatingTo : s.animatingTo === s.last ? s.limit : i;
switch (e) {
case"setTotal":
return d ? (s.count - 1 - s.currentSlide + s.cloneOffset) * t : (s.currentSlide + s.cloneOffset) * t;
case"setTouch":
return d ? t : t;
case"jumpEnd":
return d ? t : s.count * t;
case"jumpStart":
return d ? s.count * t : t;
default:
return t
}
}();
return -1 * n + "px"
}();
s.transitions && (n = h ? "translate3d(0," + n + ",0)" : "translate3d(" + n + ",0,0)", i = void 0 !== i ? i / 1e3 + "s" : "0s", s.container.css("-" + s.pfx + "-transition-duration", i), s.container.css("transition-duration", i)), s.args[s.prop] = n, (s.transitions || void 0 === i) && s.container.css(s.args), s.container.css("transform", n)
}, s.setup = function (t) {
if (m)s.slides.css({
width: "100%",
"float": "left",
marginRight: "-100%",
position: "relative"
}), "init" === t && (l ? s.slides.css({
opacity: 0,
display: "block",
webkitTransition: "opacity " + s.vars.animationSpeed / 1e3 + "s ease",
zIndex: 1
}).eq(s.currentSlide).css({
opacity: 1,
zIndex: 2
}) : 0 == s.vars.fadeFirstSlide ? s.slides.css({
opacity: 0,
display: "block",
zIndex: 1
}).eq(s.currentSlide).css({zIndex: 2}).css({opacity: 1}) : s.slides.css({
opacity: 0,
display: "block",
zIndex: 1
}).eq(s.currentSlide).css({zIndex: 2}).animate({opacity: 1}, s.vars.animationSpeed, s.vars.easing)), s.vars.smoothHeight && v.smoothHeight(); else {
var e, i;
"init" === t && (s.viewport = n('').css({
overflow: "hidden",
position: "relative"
}).appendTo(s).append(s.container), s.cloneCount = 0, s.cloneOffset = 0, d && (i = n.makeArray(s.slides).reverse(), s.slides = n(i), s.container.empty().append(s.slides))), s.vars.animationLoop && !p && (s.cloneCount = 2, s.cloneOffset = 1, "init" !== t && s.container.find(".clone").remove(), s.container.append(v.uniqueID(s.slides.first().clone().addClass("clone")).attr("aria-hidden", "true")).prepend(v.uniqueID(s.slides.last().clone().addClass("clone")).attr("aria-hidden", "true"))), s.newSlides = n(s.vars.selector, s), e = d ? s.count - 1 - s.currentSlide + s.cloneOffset : s.currentSlide + s.cloneOffset, h && !p ? (s.container.height(200 * (s.count + s.cloneCount) + "%").css("position", "absolute").width("100%"), setTimeout(function () {
s.newSlides.css({display: "block"}), s.doMath(), s.viewport.height(s.h), s.setProps(e * s.h, "init")
}, "init" === t ? 100 : 0)) : (s.container.width(200 * (s.count + s.cloneCount) + "%"), s.setProps(e * s.computedW, "init"), setTimeout(function () {
s.doMath(), s.newSlides.css({
width: s.computedW,
"float": "left",
display: "block"
}), s.vars.smoothHeight && v.smoothHeight()
}, "init" === t ? 100 : 0))
}
p || s.slides.removeClass(a + "active-slide").eq(s.currentSlide).addClass(a + "active-slide"), s.vars.init(s)
}, s.doMath = function () {
var t = s.slides.first(), e = s.vars.itemMargin, i = s.vars.minItems, n = s.vars.maxItems;
s.w = void 0 === s.viewport ? s.width() : s.viewport.width(), s.h = t.height(), s.boxPadding = t.outerWidth() - t.width(), p ? (s.itemT = s.vars.itemWidth + e, s.minW = i ? i * s.itemT : s.w, s.maxW = n ? n * s.itemT - e : s.w, s.itemW = s.minW > s.w ? (s.w - e * (i - 1)) / i : s.maxW < s.w ? (s.w - e * (n - 1)) / n : s.vars.itemWidth > s.w ? s.w : s.vars.itemWidth, s.visible = Math.floor(s.w / s.itemW), s.move = s.vars.move > 0 && s.vars.move < s.visible ? s.vars.move : s.visible, s.pagingCount = Math.ceil((s.count - s.visible) / s.move + 1), s.last = s.pagingCount - 1, s.limit = 1 === s.pagingCount ? 0 : s.vars.itemWidth > s.w ? s.itemW * (s.count - 1) + e * (s.count - 1) : (s.itemW + e) * s.count - s.w - e) : (s.itemW = s.w, s.pagingCount = s.count, s.last = s.count - 1), s.computedW = s.itemW - s.boxPadding
}, s.update = function (t, e) {
s.doMath(), p || (t < s.currentSlide ? s.currentSlide += 1 : t <= s.currentSlide && 0 !== t && (s.currentSlide -= 1), s.animatingTo = s.currentSlide), s.vars.controlNav && !s.manualControls && ("add" === e && !p || s.pagingCount > s.controlNav.length ? v.controlNav.update("add") : ("remove" === e && !p || s.pagingCount < s.controlNav.length) && (p && s.currentSlide > s.last && (s.currentSlide -= 1, s.animatingTo -= 1), v.controlNav.update("remove", s.last))), s.vars.directionNav && v.directionNav.update()
}, s.addSlide = function (t, e) {
var i = n(t);
s.count += 1, s.last = s.count - 1, h && d ? void 0 !== e ? s.slides.eq(s.count - e).after(i) : s.container.prepend(i) : void 0 !== e ? s.slides.eq(e).before(i) : s.container.append(i), s.update(e, "add"), s.slides = n(s.vars.selector + ":not(.clone)", s), s.setup(), s.vars.added(s)
}, s.removeSlide = function (t) {
var e = isNaN(t) ? s.slides.index(n(t)) : t;
s.count -= 1, s.last = s.count - 1, isNaN(t) ? n(t, s.slides).remove() : h && d ? s.slides.eq(s.last).remove() : s.slides.eq(t).remove(), s.doMath(), s.update(e, "remove"), s.slides = n(s.vars.selector + ":not(.clone)", s), s.setup(), s.vars.removed(s)
}, v.init()
}, n(window).blur(function (t) {
focused = !1
}).focus(function (t) {
focused = !0
}), n.flexslider.defaults = {
namespace: "am-",
selector: ".am-slides > li",
animation: "slide",
easing: "swing",
direction: "horizontal",
reverse: !1,
animationLoop: !0,
smoothHeight: !1,
startAt: 0,
slideshow: !0,
slideshowSpeed: 5e3,
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: " ",
nextText: " ",
keyboard: !0,
multipleKeyboard: !1,
mousewheel: !1,
pausePlay: !1,
pauseText: "Pause",
playText: "Play",
controlsContainer: "",
manualControls: "",
sync: "",
asNavFor: "",
itemWidth: 0,
itemMargin: 0,
minItems: 1,
maxItems: 0,
move: 0,
allowOneSlide: !0,
start: function () {
},
before: function () {
},
after: function () {
},
end: function () {
},
added: function () {
},
removed: function () {
},
init: function () {
}
}, n.fn.flexslider = function (t) {
var e = Array.prototype.slice.call(arguments, 1);
if (void 0 === t && (t = {}), "object" == typeof t)return this.each(function () {
var e = n(this), i = t.selector ? t.selector : ".am-slides > li", s = e.find(i);
1 === s.length && t.allowOneSlide === !0 || 0 === s.length ? (s.fadeIn(400), t.start && t.start(e)) : void 0 === e.data("flexslider") && new n.flexslider(this, t)
});
var i, s = n(this).data("flexslider");
switch (t) {
case"next":
s.flexAnimate(s.getTarget("next"), !0);
break;
case"prev":
case"previous":
s.flexAnimate(s.getTarget("prev"), !0);
break;
default:
"number" == typeof t ? s.flexAnimate(t, !0) : "string" == typeof t && (i = "function" == typeof s[t] ? s[t].apply(s, e) : s[t])
}
return void 0 === i ? this : i
}, s.ready(function (t) {
n("[data-am-flexslider]", t).each(function (t, e) {
var i = n(e), o = s.utils.parseOptions(i.data("amFlexslider"));
o.before = function (t) {
t._pausedTimer && (window.clearTimeout(t._pausedTimer), t._pausedTimer = null)
}, o.after = function (t) {
var e = t.vars.playAfterPaused;
!e || isNaN(e) || t.playing || t.manualPause || t.manualPlay || t.stopped || (t._pausedTimer = window.setTimeout(function () {
t.play()
}, e))
}, i.flexslider(o)
})
}), t.exports = n.flexslider
}).call(e, i(12).setImmediate)
}, function (t, e, i) {
(function (t, n) {
function s(t, e) {
this._id = t, this._clearFn = e
}
var o = i(13).nextTick, a = Function.prototype.apply, r = Array.prototype.slice, l = {}, c = 0;
e.setTimeout = function () {
return new s(a.call(setTimeout, window, arguments), clearTimeout)
}, e.setInterval = function () {
return new s(a.call(setInterval, window, arguments), clearInterval)
}, e.clearTimeout = e.clearInterval = function (t) {
t.close()
}, s.prototype.unref = s.prototype.ref = function () {
}, s.prototype.close = function () {
this._clearFn.call(window, this._id)
}, e.enroll = function (t, e) {
clearTimeout(t._idleTimeoutId), t._idleTimeout = e
}, e.unenroll = function (t) {
clearTimeout(t._idleTimeoutId), t._idleTimeout = -1
}, e._unrefActive = e.active = function (t) {
clearTimeout(t._idleTimeoutId);
var e = t._idleTimeout;
e >= 0 && (t._idleTimeoutId = setTimeout(function () {
t._onTimeout && t._onTimeout()
}, e))
}, e.setImmediate = "function" == typeof t ? t : function (t) {
var i = c++, n = arguments.length < 2 ? !1 : r.call(arguments, 1);
return l[i] = !0, o(function () {
l[i] && (n ? t.apply(null, n) : t.call(null), e.clearImmediate(i))
}), i
}, e.clearImmediate = "function" == typeof n ? n : function (t) {
delete l[t]
}
}).call(e, i(12).setImmediate, i(12).clearImmediate)
}, function (t, e) {
function i() {
c = !1, a.length ? l = a.concat(l) : u = -1, l.length && n()
}
function n() {
if (!c) {
var t = setTimeout(i);
c = !0;
for (var e = l.length; e;) {
for (a = l, l = []; ++u < e;)a && a[u].run();
u = -1, e = l.length
}
a = null, c = !1, clearTimeout(t)
}
}
function s(t, e) {
this.fun = t, this.array = e
}
function o() {
}
var a, r = t.exports = {}, l = [], c = !1, u = -1;
r.nextTick = function (t) {
var e = new Array(arguments.length - 1);
if (arguments.length > 1)for (var i = 1; i < arguments.length; i++)e[i - 1] = arguments[i];
l.push(new s(t, e)), 1 !== l.length || c || setTimeout(n, 0)
}, s.prototype.run = function () {
this.fun.apply(null, this.array)
}, r.title = "browser", r.browser = !0, r.env = {}, r.argv = [], r.version = "", r.versions = {}, r.on = o, r.addListener = o, r.once = o, r.off = o, r.removeListener = o, r.removeAllListeners = o, r.emit = o, r.binding = function (t) {
throw new Error("process.binding is not supported")
}, r.cwd = function () {
return "/"
}, r.chdir = function (t) {
throw new Error("process.chdir is not supported")
}, r.umask = function () {
return 0
}
}, function (t, e, i) {
"use strict";
function n(t, e) {
this.wrapper = "string" == typeof t ? document.querySelector(t) : t, this.scroller = this.wrapper.children[0], this.scrollerStyle = this.scroller.style, this.options = {
startX: 0,
startY: 0,
scrollY: !0,
directionLockThreshold: 5,
momentum: !0,
bounce: !0,
bounceTime: 600,
bounceEasing: "",
preventDefault: !0,
preventDefaultException: {tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/},
HWCompositing: !0,
useTransition: !0,
useTransform: !0
};
for (var i in e)this.options[i] = e[i];
this.translateZ = this.options.HWCompositing && a.hasPerspective ? " translateZ(0)" : "", this.options.useTransition = a.hasTransition && this.options.useTransition, this.options.useTransform = a.hasTransform && this.options.useTransform, this.options.eventPassthrough = this.options.eventPassthrough === !0 ? "vertical" : this.options.eventPassthrough, this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault, this.options.scrollY = "vertical" == this.options.eventPassthrough ? !1 : this.options.scrollY, this.options.scrollX = "horizontal" == this.options.eventPassthrough ? !1 : this.options.scrollX, this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough, this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold, this.options.bounceEasing = "string" == typeof this.options.bounceEasing ? a.ease[this.options.bounceEasing] || a.ease.circular : this.options.bounceEasing, this.options.resizePolling = void 0 === this.options.resizePolling ? 60 : this.options.resizePolling, this.options.tap === !0 && (this.options.tap = "tap"), this.x = 0, this.y = 0, this.directionX = 0, this.directionY = 0, this._events = {}, this._init(), this.refresh(), this.scrollTo(this.options.startX, this.options.startY), this.enable()
}
var s = i(2), o = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (t) {
window.setTimeout(t, 1e3 / 60)
}, a = function () {
function t(t) {
return n === !1 ? !1 : "" === n ? t : n + t.charAt(0).toUpperCase() + t.substr(1)
}
var e = {}, i = document.createElement("div").style, n = function () {
for (var t, e = ["t", "webkitT", "MozT", "msT", "OT"], n = 0, s = e.length; s > n; n++)if (t = e[n] + "ransform", t in i)return e[n].substr(0, e[n].length - 1);
return !1
}();
e.getTime = Date.now || function () {
return (new Date).getTime()
}, e.extend = function (t, e) {
for (var i in e)t[i] = e[i]
}, e.addEvent = function (t, e, i, n) {
t.addEventListener(e, i, !!n)
}, e.removeEvent = function (t, e, i, n) {
t.removeEventListener(e, i, !!n)
}, e.prefixPointerEvent = function (t) {
return window.MSPointerEvent ? "MSPointer" + t.charAt(9).toUpperCase() + t.substr(10) : t
}, e.momentum = function (t, e, i, n, s, o) {
var a, r, l = t - e, c = Math.abs(l) / i;
return o = void 0 === o ? 6e-4 : o, a = t + c * c / (2 * o) * (0 > l ? -1 : 1), r = c / o, n > a ? (a = s ? n - s / 2.5 * (c / 8) : n, l = Math.abs(a - t), r = l / c) : a > 0 && (a = s ? s / 2.5 * (c / 8) : 0, l = Math.abs(t) + a, r = l / c), {
destination: Math.round(a),
duration: r
}
};
var s = t("transform");
return e.extend(e, {
hasTransform: s !== !1,
hasPerspective: t("perspective")in i,
hasTouch: "ontouchstart"in window,
hasPointer: window.PointerEvent || window.MSPointerEvent,
hasTransition: t("transition")in i
}), e.isBadAndroid = /Android /.test(window.navigator.appVersion) && !/Chrome\/\d/.test(window.navigator.appVersion), e.extend(e.style = {}, {
transform: s,
transitionTimingFunction: t("transitionTimingFunction"),
transitionDuration: t("transitionDuration"),
transitionDelay: t("transitionDelay"),
transformOrigin: t("transformOrigin")
}), e.hasClass = function (t, e) {
var i = new RegExp("(^|\\s)" + e + "(\\s|$)");
return i.test(t.className)
}, e.addClass = function (t, i) {
if (!e.hasClass(t, i)) {
var n = t.className.split(" ");
n.push(i), t.className = n.join(" ")
}
}, e.removeClass = function (t, i) {
if (e.hasClass(t, i)) {
var n = new RegExp("(^|\\s)" + i + "(\\s|$)", "g");
t.className = t.className.replace(n, " ")
}
}, e.offset = function (t) {
for (var e = -t.offsetLeft, i = -t.offsetTop; t = t.offsetParent;)e -= t.offsetLeft, i -= t.offsetTop;
return {left: e, top: i}
}, e.preventDefaultException = function (t, e) {
for (var i in e)if (e[i].test(t[i]))return !0;
return !1
}, e.extend(e.eventType = {}, {
touchstart: 1,
touchmove: 1,
touchend: 1,
mousedown: 2,
mousemove: 2,
mouseup: 2,
pointerdown: 3,
pointermove: 3,
pointerup: 3,
MSPointerDown: 3,
MSPointerMove: 3,
MSPointerUp: 3
}), e.extend(e.ease = {}, {
quadratic: {
style: "cubic-bezier(0.25, 0.46, 0.45, 0.94)", fn: function (t) {
return t * (2 - t)
}
}, circular: {
style: "cubic-bezier(0.1, 0.57, 0.1, 1)", fn: function (t) {
return Math.sqrt(1 - --t * t)
}
}, back: {
style: "cubic-bezier(0.175, 0.885, 0.32, 1.275)", fn: function (t) {
var e = 4;
return (t -= 1) * t * ((e + 1) * t + e) + 1
}
}, bounce: {
style: "", fn: function (t) {
return (t /= 1) < 1 / 2.75 ? 7.5625 * t * t : 2 / 2.75 > t ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : 2.5 / 2.75 > t ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375
}
}, elastic: {
style: "", fn: function (t) {
var e = .22, i = .4;
return 0 === t ? 0 : 1 == t ? 1 : i * Math.pow(2, -10 * t) * Math.sin((t - e / 4) * (2 * Math.PI) / e) + 1
}
}
}), e.tap = function (t, e) {
var i = document.createEvent("Event");
i.initEvent(e, !0, !0), i.pageX = t.pageX, i.pageY = t.pageY, t.target.dispatchEvent(i)
}, e.click = function (t) {
var e, i = t.target;
/(SELECT|INPUT|TEXTAREA)/i.test(i.tagName) || (e = document.createEvent("MouseEvents"), e.initMouseEvent("click", !0, !0, t.view, 1, i.screenX, i.screenY, i.clientX, i.clientY, t.ctrlKey, t.altKey, t.shiftKey, t.metaKey, 0, null), e._constructed = !0, i.dispatchEvent(e))
}, e
}();
n.prototype = {
version: "5.1.3", _init: function () {
this._initEvents()
}, destroy: function () {
this._initEvents(!0), this._execEvent("destroy")
}, _transitionEnd: function (t) {
t.target == this.scroller && this.isInTransition && (this._transitionTime(), this.resetPosition(this.options.bounceTime) || (this.isInTransition = !1, this._execEvent("scrollEnd")))
}, _start: function (t) {
if ((1 == a.eventType[t.type] || 0 === t.button) && this.enabled && (!this.initiated || a.eventType[t.type] === this.initiated)) {
!this.options.preventDefault || a.isBadAndroid || a.preventDefaultException(t.target, this.options.preventDefaultException) || t.preventDefault();
var e, i = t.touches ? t.touches[0] : t;
this.initiated = a.eventType[t.type], this.moved = !1, this.distX = 0, this.distY = 0, this.directionX = 0, this.directionY = 0, this.directionLocked = 0, this._transitionTime(), this.startTime = a.getTime(), this.options.useTransition && this.isInTransition ? (this.isInTransition = !1, e = this.getComputedPosition(), this._translate(Math.round(e.x), Math.round(e.y)), this._execEvent("scrollEnd")) : !this.options.useTransition && this.isAnimating && (this.isAnimating = !1, this._execEvent("scrollEnd")), this.startX = this.x, this.startY = this.y, this.absStartX = this.x, this.absStartY = this.y, this.pointX = i.pageX, this.pointY = i.pageY, this._execEvent("beforeScrollStart")
}
}, _move: function (t) {
if (this.enabled && a.eventType[t.type] === this.initiated) {
this.options.preventDefault && t.preventDefault();
var e, i, n, s, o = t.touches ? t.touches[0] : t, r = o.pageX - this.pointX, l = o.pageY - this.pointY, c = a.getTime();
if (this.pointX = o.pageX, this.pointY = o.pageY, this.distX += r, this.distY += l, n = Math.abs(this.distX), s = Math.abs(this.distY), !(c - this.endTime > 300 && 10 > n && 10 > s)) {
if (this.directionLocked || this.options.freeScroll || (n > s + this.options.directionLockThreshold ? this.directionLocked = "h" : s >= n + this.options.directionLockThreshold ? this.directionLocked = "v" : this.directionLocked = "n"), "h" == this.directionLocked) {
if ("vertical" == this.options.eventPassthrough)t.preventDefault(); else if ("horizontal" == this.options.eventPassthrough)return void(this.initiated = !1);
l = 0
} else if ("v" == this.directionLocked) {
if ("horizontal" == this.options.eventPassthrough)t.preventDefault(); else if ("vertical" == this.options.eventPassthrough)return void(this.initiated = !1);
r = 0
}
r = this.hasHorizontalScroll ? r : 0, l = this.hasVerticalScroll ? l : 0, e = this.x + r, i = this.y + l, (e > 0 || e < this.maxScrollX) && (e = this.options.bounce ? this.x + r / 3 : e > 0 ? 0 : this.maxScrollX), (i > 0 || i < this.maxScrollY) && (i = this.options.bounce ? this.y + l / 3 : i > 0 ? 0 : this.maxScrollY), this.directionX = r > 0 ? -1 : 0 > r ? 1 : 0, this.directionY = l > 0 ? -1 : 0 > l ? 1 : 0, this.moved || this._execEvent("scrollStart"), this.moved = !0, this._translate(e, i), c - this.startTime > 300 && (this.startTime = c, this.startX = this.x, this.startY = this.y)
}
}
}, _end: function (t) {
if (this.enabled && a.eventType[t.type] === this.initiated) {
this.options.preventDefault && !a.preventDefaultException(t.target, this.options.preventDefaultException) && t.preventDefault();
var e, i, n = (t.changedTouches ? t.changedTouches[0] : t, a.getTime() - this.startTime), s = Math.round(this.x), o = Math.round(this.y), r = Math.abs(s - this.startX), l = Math.abs(o - this.startY), c = 0, u = "";
if (this.isInTransition = 0, this.initiated = 0, this.endTime = a.getTime(), !this.resetPosition(this.options.bounceTime))return this.scrollTo(s, o), this.moved ? this._events.flick && 200 > n && 100 > r && 100 > l ? void this._execEvent("flick") : (this.options.momentum && 300 > n && (e = this.hasHorizontalScroll ? a.momentum(this.x, this.startX, n, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : {
destination: s,
duration: 0
}, i = this.hasVerticalScroll ? a.momentum(this.y, this.startY, n, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : {
destination: o,
duration: 0
}, s = e.destination, o = i.destination, c = Math.max(e.duration, i.duration), this.isInTransition = 1), s != this.x || o != this.y ? ((s > 0 || s < this.maxScrollX || o > 0 || o < this.maxScrollY) && (u = a.ease.quadratic), void this.scrollTo(s, o, c, u)) : void this._execEvent("scrollEnd")) : (this.options.tap && a.tap(t, this.options.tap), this.options.click && a.click(t), void this._execEvent("scrollCancel"))
}
}, _resize: function () {
var t = this;
clearTimeout(this.resizeTimeout), this.resizeTimeout = setTimeout(function () {
t.refresh()
}, this.options.resizePolling)
}, resetPosition: function (t) {
var e = this.x, i = this.y;
return t = t || 0, !this.hasHorizontalScroll || this.x > 0 ? e = 0 : this.x < this.maxScrollX && (e = this.maxScrollX), !this.hasVerticalScroll || this.y > 0 ? i = 0 : this.y < this.maxScrollY && (i = this.maxScrollY), e == this.x && i == this.y ? !1 : (this.scrollTo(e, i, t, this.options.bounceEasing), !0)
}, disable: function () {
this.enabled = !1
}, enable: function () {
this.enabled = !0
}, refresh: function () {
this.wrapper.offsetHeight;
this.wrapperWidth = this.wrapper.clientWidth, this.wrapperHeight = this.wrapper.clientHeight, this.scrollerWidth = this.scroller.offsetWidth, this.scrollerHeight = this.scroller.offsetHeight, this.maxScrollX = this.wrapperWidth - this.scrollerWidth, this.maxScrollY = this.wrapperHeight - this.scrollerHeight, this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0, this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0, this.hasHorizontalScroll || (this.maxScrollX = 0,
this.scrollerWidth = this.wrapperWidth), this.hasVerticalScroll || (this.maxScrollY = 0, this.scrollerHeight = this.wrapperHeight), this.endTime = 0, this.directionX = 0, this.directionY = 0, this.wrapperOffset = a.offset(this.wrapper), this._execEvent("refresh"), this.resetPosition()
}, on: function (t, e) {
this._events[t] || (this._events[t] = []), this._events[t].push(e)
}, off: function (t, e) {
if (this._events[t]) {
var i = this._events[t].indexOf(e);
i > -1 && this._events[t].splice(i, 1)
}
}, _execEvent: function (t) {
if (this._events[t]) {
var e = 0, i = this._events[t].length;
if (i)for (; i > e; e++)this._events[t][e].apply(this, [].slice.call(arguments, 1))
}
}, scrollBy: function (t, e, i, n) {
t = this.x + t, e = this.y + e, i = i || 0, this.scrollTo(t, e, i, n)
}, scrollTo: function (t, e, i, n) {
n = n || a.ease.circular, this.isInTransition = this.options.useTransition && i > 0, !i || this.options.useTransition && n.style ? (this._transitionTimingFunction(n.style), this._transitionTime(i), this._translate(t, e)) : this._animate(t, e, i, n.fn)
}, scrollToElement: function (t, e, i, n, s) {
if (t = t.nodeType ? t : this.scroller.querySelector(t)) {
var o = a.offset(t);
o.left -= this.wrapperOffset.left, o.top -= this.wrapperOffset.top, i === !0 && (i = Math.round(t.offsetWidth / 2 - this.wrapper.offsetWidth / 2)), n === !0 && (n = Math.round(t.offsetHeight / 2 - this.wrapper.offsetHeight / 2)), o.left -= i || 0, o.top -= n || 0, o.left = o.left > 0 ? 0 : o.left < this.maxScrollX ? this.maxScrollX : o.left, o.top = o.top > 0 ? 0 : o.top < this.maxScrollY ? this.maxScrollY : o.top, e = void 0 === e || null === e || "auto" === e ? Math.max(Math.abs(this.x - o.left), Math.abs(this.y - o.top)) : e, this.scrollTo(o.left, o.top, e, s)
}
}, _transitionTime: function (t) {
t = t || 0, this.scrollerStyle[a.style.transitionDuration] = t + "ms", !t && a.isBadAndroid && (this.scrollerStyle[a.style.transitionDuration] = "0.001s")
}, _transitionTimingFunction: function (t) {
this.scrollerStyle[a.style.transitionTimingFunction] = t
}, _translate: function (t, e) {
this.options.useTransform ? this.scrollerStyle[a.style.transform] = "translate(" + t + "px," + e + "px)" + this.translateZ : (t = Math.round(t), e = Math.round(e), this.scrollerStyle.left = t + "px", this.scrollerStyle.top = e + "px"), this.x = t, this.y = e
}, _initEvents: function (t) {
var e = t ? a.removeEvent : a.addEvent, i = this.options.bindToWrapper ? this.wrapper : window;
e(window, "orientationchange", this), e(window, "resize", this), this.options.click && e(this.wrapper, "click", this, !0), this.options.disableMouse || (e(this.wrapper, "mousedown", this), e(i, "mousemove", this), e(i, "mousecancel", this), e(i, "mouseup", this)), a.hasPointer && !this.options.disablePointer && (e(this.wrapper, a.prefixPointerEvent("pointerdown"), this), e(i, a.prefixPointerEvent("pointermove"), this), e(i, a.prefixPointerEvent("pointercancel"), this), e(i, a.prefixPointerEvent("pointerup"), this)), a.hasTouch && !this.options.disableTouch && (e(this.wrapper, "touchstart", this), e(i, "touchmove", this), e(i, "touchcancel", this), e(i, "touchend", this)), e(this.scroller, "transitionend", this), e(this.scroller, "webkitTransitionEnd", this), e(this.scroller, "oTransitionEnd", this), e(this.scroller, "MSTransitionEnd", this)
}, getComputedPosition: function () {
var t, e, i = window.getComputedStyle(this.scroller, null);
return this.options.useTransform ? (i = i[a.style.transform].split(")")[0].split(", "), t = +(i[12] || i[4]), e = +(i[13] || i[5])) : (t = +i.left.replace(/[^-\d.]/g, ""), e = +i.top.replace(/[^-\d.]/g, "")), {
x: t,
y: e
}
}, _animate: function (t, e, i, n) {
function s() {
var d, p, m, f = a.getTime();
return f >= h ? (r.isAnimating = !1, r._translate(t, e), void(r.resetPosition(r.options.bounceTime) || r._execEvent("scrollEnd"))) : (f = (f - u) / i, m = n(f), d = (t - l) * m + l, p = (e - c) * m + c, r._translate(d, p), void(r.isAnimating && o(s)))
}
var r = this, l = this.x, c = this.y, u = a.getTime(), h = u + i;
this.isAnimating = !0, s()
}, handleEvent: function (t) {
switch (t.type) {
case"touchstart":
case"pointerdown":
case"MSPointerDown":
case"mousedown":
this._start(t);
break;
case"touchmove":
case"pointermove":
case"MSPointerMove":
case"mousemove":
this._move(t);
break;
case"touchend":
case"pointerup":
case"MSPointerUp":
case"mouseup":
case"touchcancel":
case"pointercancel":
case"MSPointerCancel":
case"mousecancel":
this._end(t);
break;
case"orientationchange":
case"resize":
this._resize();
break;
case"transitionend":
case"webkitTransitionEnd":
case"oTransitionEnd":
case"MSTransitionEnd":
this._transitionEnd(t);
break;
case"wheel":
case"DOMMouseScroll":
case"mousewheel":
this._wheel(t);
break;
case"keydown":
this._key(t);
break;
case"click":
t._constructed || (t.preventDefault(), t.stopPropagation())
}
}
}, n.utils = a, t.exports = s.iScroll = n
}, function (t, e, i) {
"use strict";
function n(t, e) {
return this.each(function () {
var i = s(this), n = i.data("amui.modal"), o = "object" == typeof t && t;
n || i.data("amui.modal", n = new c(this, o)), "string" == typeof t ? n[t] && n[t](e) : n.toggle(t && t.relatedTarget || void 0)
})
}
var s = i(1), o = i(2), a = i(9), r = s(document), l = o.support.transition, c = function (t, e) {
this.options = s.extend({}, c.DEFAULTS, e || {}), this.$element = s(t), this.$dialog = this.$element.find(".am-modal-dialog"), this.$element.attr("id") || this.$element.attr("id", o.utils.generateGUID("am-modal")), this.isPopup = this.$element.hasClass("am-popup"), this.isActions = this.$element.hasClass("am-modal-actions"), this.isPrompt = this.$element.hasClass("am-modal-prompt"), this.isLoading = this.$element.hasClass("am-modal-loading"), this.active = this.transitioning = this.relatedTarget = null, this.dimmer = this.options.dimmer ? a : {
open: function () {
}, close: function () {
}
}, this.events()
};
c.DEFAULTS = {
className: {active: "am-modal-active", out: "am-modal-out"},
selector: {modal: ".am-modal", active: ".am-modal-active"},
closeViaDimmer: !0,
cancelable: !0,
onConfirm: function () {
},
onCancel: function () {
},
closeOnCancel: !0,
closeOnConfirm: !0,
dimmer: !0,
height: void 0,
width: void 0,
duration: 300,
transitionEnd: l && l.end + ".modal.amui"
}, c.prototype.toggle = function (t) {
return this.active ? this.close() : this.open(t)
}, c.prototype.open = function (t) {
var e = this.$element, i = this.options, n = this.isPopup, o = i.width, a = i.height, r = {};
if (!this.active && this.$element.length) {
t && (this.relatedTarget = t), this.transitioning && (clearTimeout(e.transitionEndTimmer), e.transitionEndTimmer = null, e.trigger(i.transitionEnd).off(i.transitionEnd)), n && this.$element.show(), this.active = !0, e.trigger(s.Event("open.modal.amui", {relatedTarget: t})), this.dimmer.open(e), e.show().redraw(), n || this.isActions || (o && (o = parseInt(o, 10), r.width = o + "px", r.marginLeft = -parseInt(o / 2) + "px"), a ? (a = parseInt(a, 10), r.marginTop = -parseInt(a / 2) + "px", this.$dialog.css({height: a + "px"})) : r.marginTop = -parseInt(e.height() / 2, 10) + "px", e.css(r)), e.removeClass(i.className.out).addClass(i.className.active), this.transitioning = 1;
var c = function () {
e.trigger(s.Event("opened.modal.amui", {relatedTarget: t})), this.transitioning = 0, this.isPrompt && this.$dialog.find("input").eq(0).focus()
};
return l ? void e.one(i.transitionEnd, s.proxy(c, this)).emulateTransitionEnd(i.duration) : c.call(this)
}
}, c.prototype.close = function (t) {
if (this.active) {
var e = this.$element, i = this.options, n = this.isPopup;
this.transitioning && (clearTimeout(e.transitionEndTimmer), e.transitionEndTimmer = null, e.trigger(i.transitionEnd).off(i.transitionEnd), this.dimmer.close(e, !0)), this.$element.trigger(s.Event("close.modal.amui", {relatedTarget: t})), this.transitioning = 1;
var o = function () {
e.trigger("closed.modal.amui"), n && e.removeClass(i.className.out), e.hide(), this.transitioning = 0, this.dimmer.close(e, !1), this.active = !1
};
return e.removeClass(i.className.active).addClass(i.className.out), l ? void e.one(i.transitionEnd, s.proxy(o, this)).emulateTransitionEnd(i.duration) : o.call(this)
}
}, c.prototype.events = function () {
var t = this.options, e = this, i = this.$element, n = i.find(".am-modal-prompt-input"), o = i.find("[data-am-modal-confirm]"), a = i.find("[data-am-modal-cancel]"), r = function () {
var t = [];
return n.each(function () {
t.push(s(this).val())
}), 0 === t.length ? void 0 : 1 === t.length ? t[0] : t
};
this.options.cancelable && i.on("keyup.modal.amui", function (t) {
e.active && 27 === t.which && (i.trigger("cancel.modal.amui"), e.close())
}), this.options.dimmer && this.options.closeViaDimmer && !this.isLoading && this.dimmer.$element.on("click.dimmer.modal.amui", function (t) {
e.close()
}), i.find("[data-am-modal-close], .am-modal-btn").on("click.close.modal.amui", function (i) {
i.preventDefault();
var n = s(this);
n.is(o) ? t.closeOnConfirm && e.close() : n.is(a) ? t.closeOnCancel && e.close() : e.close()
}), o.on("click.confirm.modal.amui", function () {
i.trigger(s.Event("confirm.modal.amui", {trigger: this}))
}), a.on("click.cancel.modal.amui", function () {
i.trigger(s.Event("cancel.modal.amui", {trigger: this}))
}), i.on("confirm.modal.amui", function (t) {
t.data = r(), e.options.onConfirm.call(e, t)
}).on("cancel.modal.amui", function (t) {
t.data = r(), e.options.onCancel.call(e, t)
})
}, s.fn.modal = n, r.on("click.modal.amui.data-api", "[data-am-modal]", function () {
var t = s(this), e = o.utils.parseOptions(t.attr("data-am-modal")), i = s(e.target || this.href && this.href.replace(/.*(?=#[^\s]+$)/, "")), a = i.data("amui.modal") ? "toggle" : e;
n.call(i, a, this)
}), t.exports = o.modal = c
}, function (t, e, i) {
"use strict";
function n(t, e) {
var i = Array.prototype.slice.call(arguments, 1);
return this.each(function () {
var n = s(this), o = n.data("amui.offcanvas"), a = s.extend({}, "object" == typeof t && t);
o || (n.data("amui.offcanvas", o = new c(this, a)), (!t || "object" == typeof t) && o.open(e)), "string" == typeof t && o[t] && o[t].apply(o, i)
})
}
var s = i(1), o = i(2);
i(3);
var a, r = s(window), l = s(document), c = function (t, e) {
this.$element = s(t), this.options = s.extend({}, c.DEFAULTS, e), this.active = null, this.bindEvents()
};
c.DEFAULTS = {duration: 300, effect: "overlay"}, c.prototype.open = function (t) {
var e = this, i = this.$element;
if (i.length && !i.hasClass("am-active")) {
var n = this.options.effect, o = s("html"), l = s("body"), c = i.find(".am-offcanvas-bar").first(), u = c.hasClass("am-offcanvas-bar-flip") ? -1 : 1;
c.addClass("am-offcanvas-bar-" + n), a = {
x: window.scrollX,
y: window.scrollY
}, i.addClass("am-active"), l.css({
width: window.innerWidth,
height: r.height()
}).addClass("am-offcanvas-page"), "overlay" !== n && l.css({"margin-left": c.outerWidth() * u}).width(), o.css("margin-top", -1 * a.y), setTimeout(function () {
c.addClass("am-offcanvas-bar-active").width()
}, 0), i.trigger("open.offcanvas.amui"), this.active = 1, i.on("click.offcanvas.amui", function (t) {
var i = s(t.target);
i.hasClass("am-offcanvas-bar") || i.parents(".am-offcanvas-bar").first().length || (t.stopImmediatePropagation(), e.close())
}), o.on("keydown.offcanvas.amui", function (t) {
27 === t.keyCode && e.close()
})
}
}, c.prototype.close = function (t) {
function e() {
r.removeClass("am-offcanvas-page").css({
width: "",
height: "",
"margin-left": "",
"margin-right": ""
}), l.removeClass("am-active"), c.removeClass("am-offcanvas-bar-active"), n.css("margin-top", ""), window.scrollTo(a.x, a.y), l.trigger("closed.offcanvas.amui"), i.active = 0
}
var i = this, n = s("html"), r = s("body"), l = this.$element, c = l.find(".am-offcanvas-bar").first();
l.length && this.active && l.hasClass("am-active") && (l.trigger("close.offcanvas.amui"), o.support.transition ? (setTimeout(function () {
c.removeClass("am-offcanvas-bar-active")
}, 0), r.css("margin-left", "").one(o.support.transition.end, function () {
e()
}).emulateTransitionEnd(this.options.duration)) : e(), l.off("click.offcanvas.amui"), n.off(".offcanvas.amui"))
}, c.prototype.bindEvents = function () {
var t = this;
return l.on("click.offcanvas.amui", '[data-am-dismiss="offcanvas"]', function (e) {
e.preventDefault(), t.close()
}), r.on("resize.offcanvas.amui orientationchange.offcanvas.amui", function () {
t.active && t.close()
}), this.$element.hammer().on("swipeleft swipeleft", function (e) {
e.preventDefault(), t.close()
}), this
}, s.fn.offCanvas = n, l.on("click.offcanvas.amui", "[data-am-offcanvas]", function (t) {
t.preventDefault();
var e = s(this), i = o.utils.parseOptions(e.data("amOffcanvas")), a = s(i.target || this.href && this.href.replace(/.*(?=#[^\s]+$)/, "")), r = a.data("amui.offcanvas") ? "open" : i;
n.call(a, r, this)
}), t.exports = o.offcanvas = c
}, function (t, e, i) {
"use strict";
var n = i(1), s = i(2), o = function (t) {
var e = function (e, i) {
this.el = t(e), this.zoomFactor = 1, this.lastScale = 1, this.offset = {
x: 0,
y: 0
}, this.options = t.extend({}, this.defaults, i), this.setupMarkup(), this.bindEvents(), this.update(), this.enable()
}, i = function (t, e) {
return t + e
}, n = function (t, e) {
return t > e - .01 && e + .01 > t
};
e.prototype = {
defaults: {
tapZoomFactor: 2,
zoomOutFactor: 1.3,
animationDuration: 300,
animationInterval: 5,
maxZoom: 5,
minZoom: .5,
lockDragAxis: !1,
use2d: !1,
zoomStartEventName: "pz_zoomstart",
zoomEndEventName: "pz_zoomend",
dragStartEventName: "pz_dragstart",
dragEndEventName: "pz_dragend",
doubleTapEventName: "pz_doubletap"
}, handleDragStart: function (t) {
this.el.trigger(this.options.dragStartEventName), this.stopAnimation(), this.lastDragPosition = !1, this.hasInteraction = !0, this.handleDrag(t)
}, handleDrag: function (t) {
if (this.zoomFactor > 1) {
var e = this.getTouches(t)[0];
this.drag(e, this.lastDragPosition), this.offset = this.sanitizeOffset(this.offset), this.lastDragPosition = e
}
}, handleDragEnd: function () {
this.el.trigger(this.options.dragEndEventName), this.end()
}, handleZoomStart: function (t) {
this.el.trigger(this.options.zoomStartEventName), this.stopAnimation(), this.lastScale = 1, this.nthZoom = 0, this.lastZoomCenter = !1, this.hasInteraction = !0
}, handleZoom: function (t, e) {
var i = this.getTouchCenter(this.getTouches(t)), n = e / this.lastScale;
this.lastScale = e, this.nthZoom += 1, this.nthZoom > 3 && (this.scale(n, i), this.drag(i, this.lastZoomCenter)), this.lastZoomCenter = i
}, handleZoomEnd: function () {
this.el.trigger(this.options.zoomEndEventName), this.end()
}, handleDoubleTap: function (t) {
var e = this.getTouches(t)[0], i = this.zoomFactor > 1 ? 1 : this.options.tapZoomFactor, n = this.zoomFactor, s = function (t) {
this.scaleTo(n + t * (i - n), e)
}.bind(this);
this.hasInteraction || (n > i && (e = this.getCurrentZoomCenter()), this.animate(this.options.animationDuration, this.options.animationInterval, s, this.swing), this.el.trigger(this.options.doubleTapEventName))
}, sanitizeOffset: function (t) {
var e = (this.zoomFactor - 1) * this.getContainerX(), i = (this.zoomFactor - 1) * this.getContainerY(), n = Math.max(e, 0), s = Math.max(i, 0), o = Math.min(e, 0), a = Math.min(i, 0);
return {x: Math.min(Math.max(t.x, o), n), y: Math.min(Math.max(t.y, a), s)}
}, scaleTo: function (t, e) {
this.scale(t / this.zoomFactor, e)
}, scale: function (t, e) {
t = this.scaleZoomFactor(t), this.addOffset({
x: (t - 1) * (e.x + this.offset.x),
y: (t - 1) * (e.y + this.offset.y)
})
}, scaleZoomFactor: function (t) {
var e = this.zoomFactor;
return this.zoomFactor *= t, this.zoomFactor = Math.min(this.options.maxZoom, Math.max(this.zoomFactor, this.options.minZoom)), this.zoomFactor / e
}, drag: function (t, e) {
e && (this.options.lockDragAxis ? Math.abs(t.x - e.x) > Math.abs(t.y - e.y) ? this.addOffset({
x: -(t.x - e.x),
y: 0
}) : this.addOffset({y: -(t.y - e.y), x: 0}) : this.addOffset({y: -(t.y - e.y), x: -(t.x - e.x)}))
}, getTouchCenter: function (t) {
return this.getVectorAvg(t)
}, getVectorAvg: function (t) {
return {
x: t.map(function (t) {
return t.x
}).reduce(i) / t.length, y: t.map(function (t) {
return t.y
}).reduce(i) / t.length
}
}, addOffset: function (t) {
this.offset = {x: this.offset.x + t.x, y: this.offset.y + t.y}
}, sanitize: function () {
this.zoomFactor < this.options.zoomOutFactor ? this.zoomOutAnimation() : this.isInsaneOffset(this.offset) && this.sanitizeOffsetAnimation()
}, isInsaneOffset: function (t) {
var e = this.sanitizeOffset(t);
return e.x !== t.x || e.y !== t.y
}, sanitizeOffsetAnimation: function () {
var t = this.sanitizeOffset(this.offset), e = {
x: this.offset.x,
y: this.offset.y
}, i = function (i) {
this.offset.x = e.x + i * (t.x - e.x), this.offset.y = e.y + i * (t.y - e.y), this.update()
}.bind(this);
this.animate(this.options.animationDuration, this.options.animationInterval, i, this.swing)
}, zoomOutAnimation: function () {
var t = this.zoomFactor, e = 1, i = this.getCurrentZoomCenter(), n = function (n) {
this.scaleTo(t + n * (e - t), i)
}.bind(this);
this.animate(this.options.animationDuration, this.options.animationInterval, n, this.swing)
}, updateAspectRatio: function () {
this.setContainerY()
}, getInitialZoomFactor: function () {
return this.container[0].offsetWidth / this.el[0].offsetWidth
}, getAspectRatio: function () {
return this.el[0].offsetWidth / this.el[0].offsetHeight
}, getCurrentZoomCenter: function () {
var t = this.container[0].offsetWidth * this.zoomFactor, e = this.offset.x, i = t - e - this.container[0].offsetWidth, n = e / i, s = n * this.container[0].offsetWidth / (n + 1), o = this.container[0].offsetHeight * this.zoomFactor, a = this.offset.y, r = o - a - this.container[0].offsetHeight, l = a / r, c = l * this.container[0].offsetHeight / (l + 1);
return 0 === i && (s = this.container[0].offsetWidth), 0 === r && (c = this.container[0].offsetHeight), {
x: s,
y: c
}
}, canDrag: function () {
return !n(this.zoomFactor, 1)
}, getTouches: function (t) {
var e = this.container.offset();
return Array.prototype.slice.call(t.touches).map(function (t) {
return {x: t.pageX - e.left, y: t.pageY - e.top}
})
}, animate: function (t, e, i, n, s) {
var o = (new Date).getTime(), a = function () {
if (this.inAnimation) {
var r = (new Date).getTime() - o, l = r / t;
r >= t ? (i(1), s && s(), this.update(), this.stopAnimation(), this.update()) : (n && (l = n(l)), i(l), this.update(), setTimeout(a, e))
}
}.bind(this);
this.inAnimation = !0, a()
}, stopAnimation: function () {
this.inAnimation = !1
}, swing: function (t) {
return -Math.cos(t * Math.PI) / 2 + .5
}, getContainerX: function () {
return window.innerWidth
}, getContainerY: function () {
return window.innerHeight
}, setContainerY: function (t) {
var e = window.innerHeight;
return this.el.css({height: e}), this.container.height(e)
}, setupMarkup: function () {
this.container = t(''), this.el.before(this.container), this.container.append(this.el), this.container.css({
overflow: "hidden",
position: "relative"
}), this.el.css({
"-webkit-transform-origin": "0% 0%",
"-moz-transform-origin": "0% 0%",
"-ms-transform-origin": "0% 0%",
"-o-transform-origin": "0% 0%",
"transform-origin": "0% 0%",
position: "absolute"
})
}, end: function () {
this.hasInteraction = !1, this.sanitize(), this.update()
}, bindEvents: function () {
s(this.container.get(0), this), t(window).on("resize", this.update.bind(this)), t(this.el).find("img").on("load", this.update.bind(this))
}, update: function () {
this.updatePlaned || (this.updatePlaned = !0, setTimeout(function () {
this.updatePlaned = !1, this.updateAspectRatio();
var t = this.getInitialZoomFactor() * this.zoomFactor, e = -this.offset.x / t, i = -this.offset.y / t, n = "scale3d(" + t + ", " + t + ",1) translate3d(" + e + "px," + i + "px,0px)", s = "scale(" + t + ", " + t + ") translate(" + e + "px," + i + "px)", o = function () {
this.clone && (this.clone.remove(), delete this.clone)
}.bind(this);
!this.options.use2d || this.hasInteraction || this.inAnimation ? (this.is3d = !0, o(), this.el.css({
"-webkit-transform": n,
"-o-transform": s,
"-ms-transform": s,
"-moz-transform": s,
transform: n
})) : (this.is3d && (this.clone = this.el.clone(), this.clone.css("pointer-events", "none"), this.clone.appendTo(this.container), setTimeout(o, 200)), this.el.css({
"-webkit-transform": s,
"-o-transform": s,
"-ms-transform": s,
"-moz-transform": s,
transform: s
}), this.is3d = !1)
}.bind(this), 0))
}, enable: function () {
this.enabled = !0
}, disable: function () {
this.enabled = !1
}
};
var s = function (t, e) {
var i = null, n = 0, s = null, o = null, a = function (t, n) {
if (i !== t) {
if (i && !t)switch (i) {
case"zoom":
e.handleZoomEnd(n);
break;
case"drag":
e.handleDragEnd(n)
}
switch (t) {
case"zoom":
e.handleZoomStart(n);
break;
case"drag":
e.handleDragStart(n)
}
}
i = t
}, r = function (t) {
2 === n ? a("zoom") : 1 === n && e.canDrag() ? a("drag", t) : a(null, t)
}, l = function (t) {
return Array.prototype.slice.call(t).map(function (t) {
return {x: t.pageX, y: t.pageY}
})
}, c = function (t, e) {
var i, n;
return i = t.x - e.x, n = t.y - e.y, Math.sqrt(i * i + n * n)
}, u = function (t, e) {
var i = c(t[0], t[1]), n = c(e[0], e[1]);
return n / i
}, h = function (t) {
t.stopPropagation(), t.preventDefault()
}, d = function (t) {
var o = (new Date).getTime();
if (n > 1 && (s = null), 300 > o - s)switch (h(t), e.handleDoubleTap(t), i) {
case"zoom":
e.handleZoomEnd(t);
break;
case"drag":
e.handleDragEnd(t)
}
1 === n && (s = o)
}, p = !0;
t.addEventListener("touchstart", function (t) {
e.enabled && (p = !0, n = t.touches.length, d(t))
}), t.addEventListener("touchmove", function (t) {
if (e.enabled) {
if (p)r(t), i && h(t), o = l(t.touches); else {
switch (i) {
case"zoom":
e.handleZoom(t, u(o, l(t.touches)));
break;
case"drag":
e.handleDrag(t)
}
i && (h(t), e.update())
}
p = !1
}
}), t.addEventListener("touchend", function (t) {
e.enabled && (n = t.touches.length, r(t))
})
};
return e
};
t.exports = s.pichzoom = o(n)
}, function (t, e, i) {
"use strict";
var n = i(1), s = i(2), o = n(window), a = function (t, e) {
this.options = n.extend({}, a.DEFAULTS, e), this.$element = n(t), this.active = null, this.$popover = this.options.target && n(this.options.target) || null, this.init(), this._bindEvents()
};
a.DEFAULTS = {
theme: null,
trigger: "click",
content: "",
open: !1,
target: null,
tpl: '
'
}, a.prototype.init = function () {
function t() {
i.sizePopover()
}
var e, i = this, o = this.$element;
this.options.target || (this.$popover = this.getPopover(), this.setContent()), e = this.$popover, e.appendTo(n("body")), this.sizePopover(), o.on("open.popover.amui", function () {
n(window).on("resize.popover.amui", s.utils.debounce(t, 50))
}), o.on("close.popover.amui", function () {
n(window).off("resize.popover.amui", t)
}), this.options.open && this.open()
}, a.prototype.sizePopover = function () {
var t = this.$element, e = this.$popover;
if (e && e.length) {
var i = e.outerWidth(), n = e.outerHeight(), s = e.find(".am-popover-caret"), a = s.outerWidth() / 2 || 8, r = n + 8, l = t.outerWidth(), c = t.outerHeight(), u = t.offset(), h = t[0].getBoundingClientRect(), d = o.height(), p = o.width(), m = 0, f = 0, v = 0, g = 2, w = "top";
e.css({
left: "",
top: ""
}).removeClass("am-popover-left am-popover-right am-popover-top am-popover-bottom"), r - g < h.top + g ? m = u.top - r - g : r < d - h.top - h.height ? (w = "bottom", m = u.top + c + a + g) : (w = "middle", m = c / 2 + u.top - n / 2), "top" === w || "bottom" === w ? (f = l / 2 + u.left - i / 2, v = f, 5 > f && (f = 5), f + i > p && (f = p - i - 20), "top" === w && e.addClass("am-popover-top"), "bottom" === w && e.addClass("am-popover-bottom"), v -= f) : "middle" === w && (f = u.left - i - a, e.addClass("am-popover-left"), 5 > f && (f = u.left + l + a, e.removeClass("am-popover-left").addClass("am-popover-right")), f + i > p && (f = p - i - 5, e.removeClass("am-popover-left").addClass("am-popover-right"))), e.css({
top: m + "px",
left: f + "px"
})
}
}, a.prototype.toggle = function () {
return this[this.active ? "close" : "open"]()
}, a.prototype.open = function () {
var t = this.$popover;
this.$element.trigger("open.popover.amui"), this.sizePopover(), t.show().addClass("am-active"), this.active = !0
}, a.prototype.close = function () {
var t = this.$popover;
this.$element.trigger("close.popover.amui"), t.removeClass("am-active").trigger("closed.popover.amui").hide(), this.active = !1
}, a.prototype.getPopover = function () {
var t = s.utils.generateGUID("am-popover"), e = [];
return this.options.theme && n.each(this.options.theme.split(" "), function (t, i) {
e.push("am-popover-" + n.trim(i))
}), n(this.options.tpl).attr("id", t).addClass(e.join(" "))
}, a.prototype.setContent = function (t) {
t = t || this.options.content, this.$popover && this.$popover.find(".am-popover-inner").empty().html(t)
}, a.prototype._bindEvents = function () {
for (var t = "popover.amui", e = this.options.trigger.split(" "), i = e.length; i--;) {
var s = e[i];
if ("click" === s)this.$element.on("click." + t, n.proxy(this.toggle, this)); else {
var o = "hover" == s ? "mouseenter" : "focusin", a = "hover" == s ? "mouseleave" : "focusout";
this.$element.on(o + "." + t, n.proxy(this.open, this)), this.$element.on(a + "." + t, n.proxy(this.close, this))
}
}
}, a.prototype.destroy = function () {
this.$element.off(".popover.amui").removeData("amui.popover"), this.$popover.remove()
}, s.plugin("popover", a), s.ready(function (t) {
n("[data-am-popover]", t).popover()
}), t.exports = a
}, function (t, e, i) {
"use strict";
var n = i(2), s = function () {
function t(t, e, i) {
return e > t ? e : t > i ? i : t
}
function e(t) {
return 100 * (-1 + t)
}
function i(t, i, n) {
var s;
return s = "translate3d" === c.positionUsing ? {transform: "translate3d(" + e(t) + "%,0,0)"} : "translate" === c.positionUsing ? {transform: "translate(" + e(t) + "%,0)"} : {"margin-left": e(t) + "%"}, s.transition = "all " + i + "ms " + n, s
}
function n(t, e) {
var i = "string" == typeof t ? t : a(t);
return i.indexOf(" " + e + " ") >= 0
}
function s(t, e) {
var i = a(t), s = i + e;
n(i, e) || (t.className = s.substring(1))
}
function o(t, e) {
var i, s = a(t);
n(t, e) && (i = s.replace(" " + e + " ", " "), t.className = i.substring(1, i.length - 1))
}
function a(t) {
return (" " + (t.className || "") + " ").replace(/\s+/gi, " ")
}
function r(t) {
t && t.parentNode && t.parentNode.removeChild(t)
}
var l = {};
l.version = "0.2.0";
var c = l.settings = {
minimum: .08,
easing: "ease",
positionUsing: "",
speed: 200,
trickle: !0,
trickleRate: .02,
trickleSpeed: 800,
showSpinner: !0,
parent: "body",
barSelector: '[role="nprogress-bar"]',
spinnerSelector: '[role="nprogress-spinner"]',
template: '
'
};
l.configure = function (t) {
var e, i;
for (e in t)i = t[e], void 0 !== i && t.hasOwnProperty(e) && (c[e] = i);
return this
}, l.status = null, l.set = function (e) {
var n = l.isStarted();
e = t(e, c.minimum, 1), l.status = 1 === e ? null : e;
var s = l.render(!n), o = s.querySelector(c.barSelector), a = c.speed, r = c.easing;
return s.offsetWidth, u(function (t) {
"" === c.positionUsing && (c.positionUsing = l.getPositioningCSS()), h(o, i(e, a, r)), 1 === e ? (h(s, {
transition: "none",
opacity: 1
}), s.offsetWidth, setTimeout(function () {
h(s, {transition: "all " + a + "ms linear", opacity: 0}), setTimeout(function () {
l.remove(), t()
}, a)
}, a)) : setTimeout(t, a)
}), this
}, l.isStarted = function () {
return "number" == typeof l.status
}, l.start = function () {
l.status || l.set(0);
var t = function () {
setTimeout(function () {
l.status && (l.trickle(), t())
}, c.trickleSpeed)
};
return c.trickle && t(), this
}, l.done = function (t) {
return t || l.status ? l.inc(.3 + .5 * Math.random()).set(1) : this
}, l.inc = function (e) {
var i = l.status;
return i ? ("number" != typeof e && (e = (1 - i) * t(Math.random() * i, .1, .95)), i = t(i + e, 0, .994), l.set(i)) : l.start()
}, l.trickle = function () {
return l.inc(Math.random() * c.trickleRate)
}, function () {
var t = 0, e = 0;
l.promise = function (i) {
return i && "resolved" !== i.state() ? (0 === e && l.start(), t++, e++, i.always(function () {
e--, 0 === e ? (t = 0, l.done()) : l.set((t - e) / t)
}), this) : this
}
}(), l.render = function (t) {
if (l.isRendered())return document.getElementById("nprogress");
s(document.documentElement, "nprogress-busy");
var i = document.createElement("div");
i.id = "nprogress", i.innerHTML = c.template;
var n, o = i.querySelector(c.barSelector), a = t ? "-100" : e(l.status || 0), u = document.querySelector(c.parent);
return h(o, {
transition: "all 0 linear",
transform: "translate3d(" + a + "%,0,0)"
}), c.showSpinner || (n = i.querySelector(c.spinnerSelector), n && r(n)), u != document.body && s(u, "nprogress-custom-parent"), u.appendChild(i), i
}, l.remove = function () {
o(document.documentElement, "nprogress-busy"), o(document.querySelector(c.parent), "nprogress-custom-parent");
var t = document.getElementById("nprogress");
t && r(t)
}, l.isRendered = function () {
return !!document.getElementById("nprogress")
}, l.getPositioningCSS = function () {
var t = document.body.style, e = "WebkitTransform"in t ? "Webkit" : "MozTransform"in t ? "Moz" : "msTransform"in t ? "ms" : "OTransform"in t ? "O" : "";
return e + "Perspective"in t ? "translate3d" : e + "Transform"in t ? "translate" : "margin"
};
var u = function () {
function t() {
var i = e.shift();
i && i(t)
}
var e = [];
return function (i) {
e.push(i), 1 == e.length && t()
}
}(), h = function () {
function t(t) {
return t.replace(/^-ms-/, "ms-").replace(/-([\da-z])/gi, function (t, e) {
return e.toUpperCase()
})
}
function e(t) {
var e = document.body.style;
if (t in e)return t;
for (var i, n = s.length, o = t.charAt(0).toUpperCase() + t.slice(1); n--;)if (i = s[n] + o, i in e)return i;
return t
}
function i(i) {
return i = t(i), o[i] || (o[i] = e(i))
}
function n(t, e, n) {
e = i(e), t.style[e] = n
}
var s = ["Webkit", "O", "Moz", "ms"], o = {};
return function (t, e) {
var i, s, o = arguments;
if (2 == o.length)for (i in e)s = e[i], void 0 !== s && e.hasOwnProperty(i) && n(t, i, s); else n(t, o[1], o[2])
}
}();
return l
}();
t.exports = n.progress = s
}, function (t, e, i) {
"use strict";
var n = i(1), s = i(2), o = i(17), a = i(3), r = s.support.animation, l = s.support.transition, c = function (t, e) {
this.$element = n(t), this.$body = n(document.body), this.options = n.extend({}, c.DEFAULTS, e), this.$pureview = n(this.options.tpl).attr("id", s.utils.generateGUID("am-pureview")), this.$slides = null, this.transitioning = null, this.scrollbarWidth = 0, this.init()
};
c.DEFAULTS = {
tpl: '
/
',
className: {
prevSlide: "am-pureview-slide-prev",
nextSlide: "am-pureview-slide-next",
onlyOne: "am-pureview-only",
active: "am-active",
barActive: "am-pureview-bar-active",
activeBody: "am-pureview-active"
},
selector: {
slider: ".am-pureview-slider",
close: '[data-am-close="pureview"]',
total: ".am-pureview-total",
current: ".am-pureview-current",
title: ".am-pureview-title",
actions: ".am-pureview-actions",
bar: ".am-pureview-bar",
pinchZoom: ".am-pinch-zoom",
nav: ".am-pureview-nav"
},
shareBtn: !1,
toggleToolbar: !0,
target: "img",
weChatImagePreview: !0
}, c.prototype.init = function () {
var t = this, e = this.options, i = this.$element, s = this.$pureview;
this.refreshSlides(), n("body").append(s), this.$title = s.find(e.selector.title), this.$current = s.find(e.selector.current), this.$bar = s.find(e.selector.bar), this.$actions = s.find(e.selector.actions), e.shareBtn && this.$actions.append(''), this.$element.on("click.pureview.amui", e.target, function (i) {
i.preventDefault();
var n = t.$images.index(this);
e.weChatImagePreview && window.WeixinJSBridge ? window.WeixinJSBridge.invoke("imagePreview", {
current: t.imgUrls[n],
urls: t.imgUrls
}) : t.open(n)
}), s.find(".am-pureview-direction").on("click.direction.pureview.amui", "li", function (e) {
e.preventDefault(), n(this).is(".am-pureview-prev") ? t.prevSlide() : t.nextSlide()
}), s.find(e.selector.nav).on("click.nav.pureview.amui", "li", function () {
var e = t.$navItems.index(n(this));
t.activate(t.$slides.eq(e))
}), s.find(e.selector.close).on("click.close.pureview.amui", function (e) {
e.preventDefault(), t.close()
}), this.$slider.hammer().on("swipeleft.pureview.amui", function (e) {
e.preventDefault(), t.nextSlide()
}).on("swiperight.pureview.amui", function (e) {
e.preventDefault(), t.prevSlide()
}).on("press.pureview.amui", function (i) {
i.preventDefault(), e.toggleToolbar && t.toggleToolBar()
}), this.$slider.data("hammer").get("swipe").set({
direction: a.DIRECTION_HORIZONTAL,
velocity: .35
}), i.DOMObserve({childList: !0, subtree: !0}, function (t, e) {
}), i.on("changed.dom.amui", function (e) {
e.stopPropagation(), t.refreshSlides()
}), n(document).on("keydown.pureview.amui", n.proxy(function (t) {
var e = t.keyCode;
37 == e ? this.prevSlide() : 39 == e ? this.nextSlide() : 27 == e && this.close()
}, this))
}, c.prototype.refreshSlides = function () {
this.$images = this.$element.find(this.options.target);
var t = this, e = this.options, i = this.$pureview, o = n([]), a = n([]), r = this.$images, l = r.length;
this.$slider = i.find(e.selector.slider), this.$nav = i.find(e.selector.nav);
var c = "data-am-pureviewed";
this.imgUrls = this.imgUrls || [], l && (1 === l && i.addClass(e.className.onlyOne), r.not("[" + c + "]").each(function (e, i) {
var r, l;
"A" === i.nodeName ? (r = i.href, l = i.title || "") : (r = n(i).data("rel") || i.src, r = s.utils.getAbsoluteUrl(r), l = n(i).attr("alt") || ""), i.setAttribute(c, "1"), t.imgUrls.push(r), o = o.add(n('')), a = a.add(n("
" + (e + 1) + "
"))
}), i.find(e.selector.total).text(l), this.$slider.append(o), this.$nav.append(a), this.$navItems = this.$nav.find("li"), this.$slides = this.$slider.find("li"))
}, c.prototype.loadImage = function (t, e) {
var i = "image-appended";
if (!t.data(i)) {
var s = n("", {src: t.data("src"), alt: t.data("title")});
t.html(s).wrapInner('').redraw();
var a = t.find(this.options.selector.pinchZoom);
a.data("amui.pinchzoom", new o(a[0], {})), t.data("image-appended", !0)
}
e && e.call(this)
}, c.prototype.activate = function (t) {
var e = this.options, i = this.$slides, o = i.index(t), a = t.data("title") || "", r = e.className.active;
i.find("." + r).is(t) || this.transitioning || (this.loadImage(t, function () {
s.utils.imageLoader(t.find("img"), function (e) {
t.find(".am-pinch-zoom").addClass("am-pureview-loaded"), n(e).addClass("am-img-loaded")
})
}), this.transitioning = 1, this.$title.text(a), this.$current.text(o + 1), i.removeClass(), t.addClass(r), i.eq(o - 1).addClass(e.className.prevSlide), i.eq(o + 1).addClass(e.className.nextSlide), this.$navItems.removeClass().eq(o).addClass(e.className.active), l ? t.one(l.end, n.proxy(function () {
this.transitioning = 0
}, this)).emulateTransitionEnd(300) : this.transitioning = 0)
}, c.prototype.nextSlide = function () {
if (1 !== this.$slides.length) {
var t = this.$slides, e = t.filter(".am-active"), i = t.index(e), n = "am-animation-right-spring";
i + 1 >= t.length ? r && e.addClass(n).on(r.end, function () {
e.removeClass(n)
}) : this.activate(t.eq(i + 1))
}
}, c.prototype.prevSlide = function () {
if (1 !== this.$slides.length) {
var t = this.$slides, e = t.filter(".am-active"), i = this.$slides.index(e), n = "am-animation-left-spring";
0 === i ? r && e.addClass(n).on(r.end, function () {
e.removeClass(n)
}) : this.activate(t.eq(i - 1))
}
}, c.prototype.toggleToolBar = function () {
this.$pureview.toggleClass(this.options.className.barActive)
}, c.prototype.open = function (t) {
var e = t || 0;
this.checkScrollbar(), this.setScrollbar(), this.activate(this.$slides.eq(e)), this.$pureview.show().redraw().addClass(this.options.className.active), this.$body.addClass(this.options.className.activeBody)
}, c.prototype.close = function () {
function t() {
this.$pureview.hide(), this.$body.removeClass(e.className.activeBody), this.resetScrollbar()
}
var e = this.options;
this.$pureview.removeClass(e.className.active), this.$slides.removeClass(), l ? this.$pureview.one(l.end, n.proxy(t, this)).emulateTransitionEnd(300) : t.call(this)
}, c.prototype.checkScrollbar = function () {
this.scrollbarWidth = s.utils.measureScrollbar()
}, c.prototype.setScrollbar = function () {
var t = parseInt(this.$body.css("padding-right") || 0, 10);
this.scrollbarWidth && this.$body.css("padding-right", t + this.scrollbarWidth)
}, c.prototype.resetScrollbar = function () {
this.$body.css("padding-right", "")
}, s.plugin("pureview", c), s.ready(function (t) {
n("[data-am-pureview]", t).pureview()
}), t.exports = c
}, function (t, e, i) {
"use strict";
var n = i(1), s = i(2), o = function (t, e) {
if (s.support.animation) {
this.options = n.extend({}, o.DEFAULTS, e), this.$element = n(t);
var i = function () {
s.utils.rAF.call(window, n.proxy(this.checkView, this))
}.bind(this);
this.$window = n(window).on("scroll.scrollspy.amui", i).on("resize.scrollspy.amui orientationchange.scrollspy.amui", s.utils.debounce(i, 50)), this.timer = this.inViewState = this.initInView = null, i()
}
};
o.DEFAULTS = {
animation: "fade",
className: {inView: "am-scrollspy-inview", init: "am-scrollspy-init"},
repeat: !0,
delay: 0,
topOffset: 0,
leftOffset: 0
}, o.prototype.checkView = function () {
var t = this.$element, e = this.options, i = s.utils.isInView(t, e), n = e.animation ? " am-animation-" + e.animation : "";
i && !this.inViewState && (this.timer && clearTimeout(this.timer), this.initInView || (t.addClass(e.className.init), this.offset = t.offset(), this.initInView = !0, t.trigger("init.scrollspy.amui")), this.timer = setTimeout(function () {
i && t.addClass(e.className.inView + n).width()
}, e.delay), this.inViewState = !0, t.trigger("inview.scrollspy.amui")), !i && this.inViewState && e.repeat && (t.removeClass(e.className.inView + n), this.inViewState = !1, t.trigger("outview.scrollspy.amui"))
}, o.prototype.check = function () {
s.utils.rAF.call(window, n.proxy(this.checkView, this))
}, s.plugin("scrollspy", o), s.ready(function (t) {
n("[data-am-scrollspy]", t).scrollspy()
}), t.exports = o
}, function (t, e, i) {
"use strict";
var n = i(1), s = i(2);
i(23);
var o = function (t, e) {
this.options = n.extend({}, o.DEFAULTS, e), this.$element = n(t), this.anchors = [], this.$links = this.$element.find('a[href^="#"]').each(function (t, e) {
this.anchors.push(n(e).attr("href"))
}.bind(this)), this.$targets = n(this.anchors.join(", "));
var i = function () {
s.utils.rAF.call(window, n.proxy(this.process, this))
}.bind(this);
this.$window = n(window).on("scroll.scrollspynav.amui", i).on("resize.scrollspynav.amui orientationchange.scrollspynav.amui", s.utils.debounce(i, 50)), i(), this.scrollProcess()
};
o.DEFAULTS = {
className: {active: "am-active"},
closest: !1,
smooth: !0,
offsetTop: 0
}, o.prototype.process = function () {
var t = this.$window.scrollTop(), e = this.options, i = [], o = this.$links, a = this.$targets;
if (a.each(function (t, n) {
s.utils.isInView(n, e) && i.push(n)
}), i.length) {
var r;
if (n.each(i, function (e, i) {
return n(i).offset().top >= t ? (r = n(i), !1) : void 0
}), !r)return;
e.closest ? (o.closest(e.closest).removeClass(e.className.active), o.filter('a[href="#' + r.attr("id") + '"]').closest(e.closest).addClass(e.className.active)) : o.removeClass(e.className.active).filter('a[href="#' + r.attr("id") + '"]').addClass(e.className.active)
}
}, o.prototype.scrollProcess = function () {
var t = this.$links, e = this.options;
e.smooth && n.fn.smoothScroll && t.on("click", function (t) {
t.preventDefault();
var i = n(this), s = n(i.attr("href"));
if (s) {
var o = e.offsetTop && !isNaN(parseInt(e.offsetTop)) && parseInt(e.offsetTop) || 0;
n(window).smoothScroll({position: s.offset().top - o})
}
})
}, s.plugin("scrollspynav", o), s.ready(function (t) {
n("[data-am-scrollspy-nav]", t).scrollspynav()
}), t.exports = o
}, function (t, e, i) {
"use strict";
var n = i(1), s = i(2), o = s.utils.rAF, a = s.utils.cancelAF, r = !1, l = function (t, e) {
function i(t) {
return (t /= .5) < 1 ? .5 * Math.pow(t, 5) : .5 * (Math.pow(t - 2, 5) + 2)
}
function s() {
p.off("touchstart.smoothscroll.amui", y), r = !1
}
function c(t) {
r && (u || (u = t), h = Math.min(1, Math.max((t - u) / w, 0)), d = Math.round(f + g * i(h)), g > 0 && d > m && (d = m), 0 > g && m > d && (d = m), v != d && p.scrollTop(d), v = d, d !== m ? (a(b), b = o(c)) : (a(b), s()))
}
e = e || {};
var u, h, d, p = n(t), m = parseInt(e.position) || l.DEFAULTS.position, f = p.scrollTop(), v = f, g = m - f, w = e.speed || Math.min(750, Math.min(1500, Math.abs(f - m))), y = function () {
s()
};
if (!r && 0 !== g) {
p.on("touchstart.smoothscroll.amui", y), r = !0;
var b = o(c)
}
};
l.DEFAULTS = {position: 0}, n.fn.smoothScroll = function (t) {
return this.each(function () {
new l(this, t)
})
}, n(document).on("click.smoothScroll.amui.data-api", "[data-am-smooth-scroll]", function (t) {
t.preventDefault();
var e = s.utils.parseOptions(n(this).data("amSmoothScroll"));
n(window).smoothScroll(e)
}), t.exports = l
}, function (t, e, i) {
"use strict";
var n = i(1), s = i(2);
n.expr[":"].containsNC = function (t, e, i, n) {
return (t.textContent || t.innerText || "").toLowerCase().indexOf((i[3] || "").toLowerCase()) >= 0
};
var o = function (t, e) {
this.$element = n(t), this.options = n.extend({}, o.DEFAULTS, {placeholder: t.getAttribute("placeholder") || o.DEFAULTS.placeholder}, e), this.$originalOptions = this.$element.find("option"), this.multiple = t.multiple, this.$selector = null, this.initialized = !1, this.init()
};
o.DEFAULTS = {
btnWidth: null,
btnSize: null,
btnStyle: "default",
dropUp: 0,
maxHeight: null,
maxChecked: null,
placeholder: "\u70b9\u51fb\u9009\u62e9...",
selectedClass: "am-checked",
disabledClass: "am-disabled",
searchBox: !1,
tpl: '
\u8fd4\u56de
<% if (searchBox) { %>
<% } %>
<% for (var i = 0; i < options.length; i++) { %> <% var option = options[i] %> <% if (option.header) { %>
<%= option.text %>
<% } else { %>
<%= option.text %>
<% } %> <% } %>
',
listTpl: '<% for (var i = 0; i < options.length; i++) { %> <% var option = options[i] %> <% if (option.header) { %>
<%= option.text %>
<% } else { %>
<%= option.text %>
<% } %> <% } %>'
}, o.prototype.init = function () {
var t = this, e = this.$element, i = this.options;
e.hide();
var o = {
id: s.utils.generateGUID("am-selected"),
multiple: this.multiple,
options: [],
searchBox: i.searchBox,
dropUp: i.dropUp,
placeholder: i.placeholder
};
this.$selector = n(s.template(this.options.tpl, o)), this.$selector.css({width: this.options.btnWidth}), this.$element[0].disabled && this.$selector.addClass(i.disabledClass), this.$list = this.$selector.find(".am-selected-list"), this.$searchField = this.$selector.find(".am-selected-search input"), this.$hint = this.$selector.find(".am-selected-hint");
var a = this.$selector.find(".am-selected-btn"), r = [];
i.btnSize && r.push("am-btn-" + i.btnSize), i.btnStyle && r.push("am-btn-" + i.btnStyle), a.addClass(r.join(" ")), this.$selector.dropdown({justify: a}), i.maxHeight && this.$selector.find(".am-selected-list").css({
"max-height": i.maxHeight,
"overflow-y": "scroll"
});
var l = [], c = e.attr("minchecked"), u = e.attr("maxchecked") || i.maxChecked;
this.maxChecked = u || 1 / 0, e[0].required && l.push("\u5fc5\u9009"), (c || u) && (c && l.push("\u81f3\u5c11\u9009\u62e9 " + c + " \u9879"), u && l.push("\u81f3\u591a\u9009\u62e9 " + u + " \u9879")), this.$hint.text(l.join("\uff0c")), this.renderOptions(), this.$element.after(this.$selector), this.dropdown = this.$selector.data("amui.dropdown"), this.$status = this.$selector.find(".am-selected-status"), setTimeout(function () {
t.syncData(), t.initialized = !0
}, 0), this.bindEvents()
}, o.prototype.renderOptions = function () {
function t(t, e, s) {
if ("" === e.value)return !0;
var o = "";
e.disabled && (o += i.disabledClass), !e.disabled && e.selected && (o += i.selectedClass), n.push({
group: s,
index: t,
classNames: o,
text: e.text,
value: e.value
})
}
var e = this.$element, i = this.options, n = [], o = e.find("optgroup");
this.$originalOptions = this.$element.find("option"), this.multiple || null !== e.val() || this.$originalOptions.length && (this.$originalOptions.get(0).selected = !0), o.length ? o.each(function (e) {
n.push({header: !0, group: e + 1, text: this.label}), o.eq(e).find("option").each(function (i, n) {
t(i, n, e)
})
}) : this.$originalOptions.each(function (e, i) {
t(e, i, null)
}), this.$list.html(s.template(i.listTpl, {options: n})), this.$shadowOptions = this.$list.find("> li").not(".am-selected-list-header")
}, o.prototype.setChecked = function (t) {
var e = this.options, i = n(t), s = i.hasClass(e.selectedClass);
if (this.multiple) {
var o = this.$list.find("." + e.selectedClass).length;
if (!s && this.maxChecked <= o)return this.$element.trigger("checkedOverflow.selected.amui", {selected: this}), !1
} else {
if (s)return !1;
this.dropdown.close(), this.$shadowOptions.not(i).removeClass(e.selectedClass)
}
i.toggleClass(e.selectedClass), this.syncData(t)
}, o.prototype.syncData = function (t) {
var e = this, i = this.options, s = [], o = n([]);
if (this.$shadowOptions.filter("." + i.selectedClass).each(function () {
var i = n(this);
s.push(i.find(".am-selected-text").text()), t || (o = o.add(e.$originalOptions.filter('[value="' + i.data("value") + '"]').prop("selected", !0)))
}), t) {
var a = n(t);
this.$originalOptions.filter('[value="' + a.data("value") + '"]').prop("selected", a.hasClass(i.selectedClass))
} else this.$originalOptions.not(o).prop("selected", !1);
this.$element.val() || (s = [i.placeholder]), this.$status.text(s.join(", ")), this.initialized && this.$element.trigger("change")
}, o.prototype.bindEvents = function () {
var t = this, e = "am-selected-list-header", i = s.utils.debounce(function (i) {
t.$shadowOptions.not("." + e).hide().filter(':containsNC("' + i.target.value + '")').show()
}, 100);
this.$list.on("click", "> li", function (i) {
var s = n(this);
!s.hasClass(t.options.disabledClass) && !s.hasClass(e) && t.setChecked(this)
}), this.$searchField.on("keyup.selected.amui", i), this.$selector.on("closed.dropdown.amui", function () {
t.$searchField.val(""), t.$shadowOptions.css({display: ""})
}), this.$element.on("validated.field.validator.amui", function (e) {
if (e.validity) {
var i = e.validity.valid, n = "am-invalid";
t.$selector[(i ? "remove" : "add") + "Class"](n)
}
}), s.support.mutationobserver && (this.observer = new s.support.mutationobserver(function () {
t.$element.trigger("changed.selected.amui")
}), this.observer.observe(this.$element[0], {
childList: !0,
attributes: !0,
subtree: !0,
characterData: !0
})), this.$element.on("changed.selected.amui", function () {
t.renderOptions(), t.syncData()
})
}, o.prototype.select = function (t) {
var e;
e = "number" == typeof t ? this.$list.find("> li").not(".am-selected-list-header").eq(t) : "string" == typeof t ? this.$list.find(t) : n(t), e.trigger("click")
}, o.prototype.enable = function () {
this.$element.prop("disable", !1), this.$selector.dropdown("enable")
}, o.prototype.disable = function () {
this.$element.prop("disable", !0), this.$selector.dropdown("disable")
}, o.prototype.destroy = function () {
this.$element.removeData("amui.selected").show(), this.$selector.remove()
}, s.plugin("selected", o), s.ready(function (t) {
n("[data-am-selected]", t).selected()
}), t.exports = o
}, function (t, e, i) {
"use strict";
i(15);
var n = i(1), s = i(2), o = i(26), a = document, r = n(a), l = function (t) {
this.options = n.extend({}, l.DEFAULTS, t || {}), this.$element = null, this.$wechatQr = null, this.pics = null, this.inited = !1, this.active = !1
};
l.DEFAULTS = {
sns: ["weibo", "qq", "qzone", "tqq", "wechat", "renren"],
title: "\u5206\u4eab\u5230",
cancel: "\u53d6\u6d88",
closeOnShare: !0,
id: s.utils.generateGUID("am-share"),
desc: "Hi\uff0c\u5b64\u591c\u89c2\u5929\u8c61\uff0c\u53d1\u73b0\u4e00\u4e2a\u4e0d\u9519\u7684\u897f\u897f\uff0c\u5206\u4eab\u4e00\u4e0b\u4e0b ;-)",
via: "Amaze UI",
tpl: '
');
e.attr("id", t);
var i = new o({
render: "canvas",
correctLevel: 0,
text: a.location.href,
width: 180,
height: 180,
background: "#fff",
foreground: "#000"
});
e.find(".am-share-wx-qr").html(i), e.appendTo(n("body")), this.$wechatQr = n("#" + t)
}
this.$wechatQr.modal("open")
};
var c = new l;
r.on("click.share.amui.data-api", '[data-am-toggle="share"]', function (t) {
t.preventDefault(), c.toggle()
}), t.exports = s.share = c
}, function (t, e, i) {
function n(t) {
return 128 > t ? [t] : 2048 > t ? (c0 = 192 + (t >> 6), c1 = 128 + (63 & t), [c0, c1]) : (c0 = 224 + (t >> 12), c1 = 128 + (t >> 6 & 63), c2 = 128 + (63 & t), [c0, c1, c2])
}
function s(t) {
for (var e = [], i = 0; i < t.length; i++)for (var s = t.charCodeAt(i), o = n(s), a = 0; a < o.length; a++)e.push(o[a]);
return e
}
function o(t, e) {
this.typeNumber = -1, this.errorCorrectLevel = e, this.modules = null, this.moduleCount = 0, this.dataCache = null, this.rsBlocks = null, this.totalDataCount = -1, this.data = t, this.utf8bytes = s(t), this.make()
}
function a(t, e) {
if (void 0 == t.length)throw new Error(t.length + "/" + e);
for (var i = 0; i < t.length && 0 == t[i];)i++;
this.num = new Array(t.length - i + e);
for (var n = 0; n < t.length - i; n++)this.num[n] = t[n + i]
}
function r() {
this.buffer = new Array, this.length = 0
}
function n(t) {
return 128 > t ? [t] : 2048 > t ? (c0 = 192 + (t >> 6), c1 = 128 + (63 & t), [c0, c1]) : (c0 = 224 + (t >> 12), c1 = 128 + (t >> 6 & 63), c2 = 128 + (63 & t), [c0, c1, c2])
}
function s(t) {
for (var e = [], i = 0; i < t.length; i++)for (var s = t.charCodeAt(i), o = n(s), a = 0; a < o.length; a++)e.push(o[a]);
return e
}
function o(t, e) {
this.typeNumber = -1, this.errorCorrectLevel = e, this.modules = null, this.moduleCount = 0, this.dataCache = null, this.rsBlocks = null, this.totalDataCount = -1, this.data = t, this.utf8bytes = s(t), this.make()
}
function a(t, e) {
if (void 0 == t.length)throw new Error(t.length + "/" + e);
for (var i = 0; i < t.length && 0 == t[i];)i++;
this.num = new Array(t.length - i + e);
for (var n = 0; n < t.length - i; n++)this.num[n] = t[n + i]
}
function r() {
this.buffer = new Array, this.length = 0
}
var c = i(1), u = i(2), h = [], d = function (t) {
"string" == typeof t && (t = {text: t}), this.options = c.extend({}, {
text: "",
render: "",
width: 256,
height: 256,
correctLevel: 3,
background: "#ffffff",
foreground: "#000000"
}, t);
for (var e = null, i = 0, n = h.length; n > i; i++)if (h[i].text == this.options.text && h[i].text.correctLevel == this.options.correctLevel) {
e = h[i].obj;
break
}
if (i == n && (e = new o(this.options.text, this.options.correctLevel), h.push({
text: this.options.text,
correctLevel: this.options.correctLevel,
obj: e
})), this.options.render)switch (this.options.render) {
case"canvas":
return this.createCanvas(e);
case"table":
return this.createTable(e);
case"svg":
return this.createSVG(e);
default:
return this.createDefault(e)
}
return this.createDefault(e)
};
d.prototype.createDefault = function (t) {
var e = document.createElement("canvas");
return e.getContext ? this.createCanvas(t) : document.createElementNS && document.createElementNS(SVG_NS, "svg").createSVGRect ? this.createSVG(t) : this.createTable(t)
}, d.prototype.createCanvas = function (t) {
var e = document.createElement("canvas");
e.width = this.options.width, e.height = this.options.height;
for (var i = e.getContext("2d"), n = (this.options.width / t.getModuleCount()).toPrecision(4), s = this.options.height / t.getModuleCount().toPrecision(4), o = 0; o < t.getModuleCount(); o++)for (var a = 0; a < t.getModuleCount(); a++) {
i.fillStyle = t.modules[o][a] ? this.options.foreground : this.options.background;
var r = Math.ceil((a + 1) * n) - Math.floor(a * n), l = Math.ceil((o + 1) * n) - Math.floor(o * n);
i.fillRect(Math.round(a * n), Math.round(o * s), r, l)
}
return e
}, d.prototype.createTable = function (t) {
var e = [];
e.push('
');
var i = -1, n = -1, s = -1, o = -1;
i = s = Math.floor(this.options.width / t.getModuleCount()), n = o = Math.floor(this.options.height / t.getModuleCount()), 0 >= s && (i = t.getModuleCount() < 80 ? 2 : 1), 0 >= o && (n = t.getModuleCount() < 80 ? 2 : 1), foreTd = '
', backTd = '
', l = t.getModuleCount();
for (var a = 0; a < l; a++) {
e.push('
');
for (var r = 0; r < l; r++)e.push(t.modules[a][r] ? foreTd : backTd);
e.push("
")
}
e.push("
");
var c = document.createElement("span");
return c.innerHTML = e.join(""), c.firstChild
}, d.prototype.createSVG = function (t) {
for (var e, i, n, s, o = t.getModuleCount(), a = this.options.height / this.options.width, r = '", c(r)[0]
}, o.prototype = {
constructor: o, getModuleCount: function () {
return this.moduleCount
}, make: function () {
this.getRightType(), this.dataCache = this.createData(), this.createQrcode()
}, makeImpl: function (t) {
this.moduleCount = 4 * this.typeNumber + 17, this.modules = new Array(this.moduleCount);
for (var e = 0; e < this.moduleCount; e++)this.modules[e] = new Array(this.moduleCount);
this.setupPositionProbePattern(0, 0), this.setupPositionProbePattern(this.moduleCount - 7, 0), this.setupPositionProbePattern(0, this.moduleCount - 7), this.setupPositionAdjustPattern(), this.setupTimingPattern(), this.setupTypeInfo(!0, t), this.typeNumber >= 7 && this.setupTypeNumber(!0), this.mapData(this.dataCache, t)
}, setupPositionProbePattern: function (t, e) {
for (var i = -1; 7 >= i; i++)if (!(-1 >= t + i || this.moduleCount <= t + i))for (var n = -1; 7 >= n; n++)-1 >= e + n || this.moduleCount <= e + n || (i >= 0 && 6 >= i && (0 == n || 6 == n) || n >= 0 && 6 >= n && (0 == i || 6 == i) || i >= 2 && 4 >= i && n >= 2 && 4 >= n ? this.modules[t + i][e + n] = !0 : this.modules[t + i][e + n] = !1)
}, createQrcode: function () {
for (var t = 0, e = 0, i = null, n = 0; 8 > n; n++) {
this.makeImpl(n);
var s = f.getLostPoint(this);
(0 == n || t > s) && (t = s, e = n, i = this.modules)
}
this.modules = i, this.setupTypeInfo(!1, e), this.typeNumber >= 7 && this.setupTypeNumber(!1)
}, setupTimingPattern: function () {
for (var t = 8; t < this.moduleCount - 8; t++)null == this.modules[t][6] && (this.modules[t][6] = t % 2 == 0, null == this.modules[6][t] && (this.modules[6][t] = t % 2 == 0))
}, setupPositionAdjustPattern: function () {
for (var t = f.getPatternPosition(this.typeNumber), e = 0; e < t.length; e++)for (var i = 0; i < t.length; i++) {
var n = t[e], s = t[i];
if (null == this.modules[n][s])for (var o = -2; 2 >= o; o++)for (var a = -2; 2 >= a; a++)-2 == o || 2 == o || -2 == a || 2 == a || 0 == o && 0 == a ? this.modules[n + o][s + a] = !0 : this.modules[n + o][s + a] = !1
}
}, setupTypeNumber: function (t) {
for (var e = f.getBCHTypeNumber(this.typeNumber), i = 0; 18 > i; i++) {
var n = !t && 1 == (e >> i & 1);
this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = n, this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = n
}
}, setupTypeInfo: function (t, e) {
for (var i = p[this.errorCorrectLevel] << 3 | e, n = f.getBCHTypeInfo(i), s = 0; 15 > s; s++) {
var o = !t && 1 == (n >> s & 1);
6 > s ? this.modules[s][8] = o : 8 > s ? this.modules[s + 1][8] = o : this.modules[this.moduleCount - 15 + s][8] = o;
var o = !t && 1 == (n >> s & 1);
8 > s ? this.modules[8][this.moduleCount - s - 1] = o : 9 > s ? this.modules[8][15 - s - 1 + 1] = o : this.modules[8][15 - s - 1] = o
}
this.modules[this.moduleCount - 8][8] = !t
}, createData: function () {
var t = new r, e = this.typeNumber > 9 ? 16 : 8;
t.put(4, 4), t.put(this.utf8bytes.length, e);
for (var i = 0, n = this.utf8bytes.length; n > i; i++)t.put(this.utf8bytes[i], 8);
for (t.length + 4 <= 8 * this.totalDataCount && t.put(0, 4); t.length % 8 != 0;)t.putBit(!1);
for (; ;) {
if (t.length >= 8 * this.totalDataCount)break;
if (t.put(o.PAD0, 8), t.length >= 8 * this.totalDataCount)break;
t.put(o.PAD1, 8)
}
return this.createBytes(t)
}, createBytes: function (t) {
for (var e = 0, i = 0, n = 0, s = this.rsBlock.length / 3, o = new Array, r = 0; s > r; r++)for (var l = this.rsBlock[3 * r + 0], c = this.rsBlock[3 * r + 1], u = this.rsBlock[3 * r + 2], h = 0; l > h; h++)o.push([u, c]);
for (var d = new Array(o.length), p = new Array(o.length), m = 0; m < o.length; m++) {
var v = o[m][0], g = o[m][1] - v;
i = Math.max(i, v), n = Math.max(n, g), d[m] = new Array(v);
for (var r = 0; r < d[m].length; r++)d[m][r] = 255 & t.buffer[r + e];
e += v;
var w = f.getErrorCorrectPolynomial(g), y = new a(d[m], w.getLength() - 1), b = y.mod(w);
p[m] = new Array(w.getLength() - 1);
for (var r = 0; r < p[m].length; r++) {
var T = r + b.getLength() - p[m].length;
p[m][r] = T >= 0 ? b.get(T) : 0
}
}
for (var x = new Array(this.totalDataCount), C = 0, r = 0; i > r; r++)for (var m = 0; m < o.length; m++)r < d[m].length && (x[C++] = d[m][r]);
for (var r = 0; n > r; r++)for (var m = 0; m < o.length; m++)r < p[m].length && (x[C++] = p[m][r]);
return x
}, mapData: function (t, e) {
for (var i = -1, n = this.moduleCount - 1, s = 7, o = 0, a = this.moduleCount - 1; a > 0; a -= 2)for (6 == a && a--; ;) {
for (var r = 0; 2 > r; r++)if (null == this.modules[n][a - r]) {
var l = !1;
o < t.length && (l = 1 == (t[o] >>> s & 1));
var c = f.getMask(e, n, a - r);
c && (l = !l), this.modules[n][a - r] = l, s--, -1 == s && (o++, s = 7)
}
if (n += i, 0 > n || this.moduleCount <= n) {
n -= i, i = -i;
break
}
}
}
}, o.PAD0 = 236, o.PAD1 = 17;
for (var p = [1, 0, 3, 2], m = {
PATTERN000: 0,
PATTERN001: 1,
PATTERN010: 2,
PATTERN011: 3,
PATTERN100: 4,
PATTERN101: 5,
PATTERN110: 6,
PATTERN111: 7
}, f = {
PATTERN_POSITION_TABLE: [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]],
G15: 1335,
G18: 7973,
G15_MASK: 21522,
getBCHTypeInfo: function (t) {
for (var e = t << 10; f.getBCHDigit(e) - f.getBCHDigit(f.G15) >= 0;)e ^= f.G15 << f.getBCHDigit(e) - f.getBCHDigit(f.G15);
return (t << 10 | e) ^ f.G15_MASK
},
getBCHTypeNumber: function (t) {
for (var e = t << 12; f.getBCHDigit(e) - f.getBCHDigit(f.G18) >= 0;)e ^= f.G18 << f.getBCHDigit(e) - f.getBCHDigit(f.G18);
return t << 12 | e
},
getBCHDigit: function (t) {
for (var e = 0; 0 != t;)e++, t >>>= 1;
return e
},
getPatternPosition: function (t) {
return f.PATTERN_POSITION_TABLE[t - 1]
},
getMask: function (t, e, i) {
switch (t) {
case m.PATTERN000:
return (e + i) % 2 == 0;
case m.PATTERN001:
return e % 2 == 0;
case m.PATTERN010:
return i % 3 == 0;
case m.PATTERN011:
return (e + i) % 3 == 0;
case m.PATTERN100:
return (Math.floor(e / 2) + Math.floor(i / 3)) % 2 == 0;
case m.PATTERN101:
return e * i % 2 + e * i % 3 == 0;
case m.PATTERN110:
return (e * i % 2 + e * i % 3) % 2 == 0;
case m.PATTERN111:
return (e * i % 3 + (e + i) % 2) % 2 == 0;
default:
throw new Error("bad maskPattern:" + t)
}
},
getErrorCorrectPolynomial: function (t) {
for (var e = new a([1], 0), i = 0; t > i; i++)e = e.multiply(new a([1, v.gexp(i)], 0));
return e
},
getLostPoint: function (t) {
for (var e = t.getModuleCount(), i = 0, n = 0, s = 0; e > s; s++)for (var o = 0, a = t.modules[s][0], r = 0; e > r; r++) {
var l = t.modules[s][r];
if (e - 6 > r && l && !t.modules[s][r + 1] && t.modules[s][r + 2] && t.modules[s][r + 3] && t.modules[s][r + 4] && !t.modules[s][r + 5] && t.modules[s][r + 6] && (e - 10 > r ? t.modules[s][r + 7] && t.modules[s][r + 8] && t.modules[s][r + 9] && t.modules[s][r + 10] && (i += 40) : r > 3 && t.modules[s][r - 1] && t.modules[s][r - 2] && t.modules[s][r - 3] && t.modules[s][r - 4] && (i += 40)), e - 1 > s && e - 1 > r) {
var c = 0;
l && c++, t.modules[s + 1][r] && c++, t.modules[s][r + 1] && c++, t.modules[s + 1][r + 1] && c++, (0 == c || 4 == c) && (i += 3)
}
a ^ l ? o++ : (a = l, o >= 5 && (i += 3 + o - 5), o = 1), l && n++
}
for (var r = 0; e > r; r++)for (var o = 0, a = t.modules[0][r], s = 0; e > s; s++) {
var l = t.modules[s][r];
e - 6 > s && l && !t.modules[s + 1][r] && t.modules[s + 2][r] && t.modules[s + 3][r] && t.modules[s + 4][r] && !t.modules[s + 5][r] && t.modules[s + 6][r] && (e - 10 > s ? t.modules[s + 7][r] && t.modules[s + 8][r] && t.modules[s + 9][r] && t.modules[s + 10][r] && (i += 40) : s > 3 && t.modules[s - 1][r] && t.modules[s - 2][r] && t.modules[s - 3][r] && t.modules[s - 4][r] && (i += 40)), a ^ l ? o++ : (a = l, o >= 5 && (i += 3 + o - 5), o = 1)
}
var u = Math.abs(100 * n / e / e - 50) / 5;
return i += 10 * u
}
}, v = {
glog: function (t) {
if (1 > t)throw new Error("glog(" + t + ")");
return v.LOG_TABLE[t]
}, gexp: function (t) {
for (; 0 > t;)t += 255;
for (; t >= 256;)t -= 255;
return v.EXP_TABLE[t]
}, EXP_TABLE: new Array(256), LOG_TABLE: new Array(256)
}, g = 0; 8 > g; g++)v.EXP_TABLE[g] = 1 << g;
for (var g = 8; 256 > g; g++)v.EXP_TABLE[g] = v.EXP_TABLE[g - 4] ^ v.EXP_TABLE[g - 5] ^ v.EXP_TABLE[g - 6] ^ v.EXP_TABLE[g - 8];
for (var g = 0; 255 > g; g++)v.LOG_TABLE[v.EXP_TABLE[g]] = g;
a.prototype = {
get: function (t) {
return this.num[t]
}, getLength: function () {
return this.num.length
}, multiply: function (t) {
for (var e = new Array(this.getLength() + t.getLength() - 1), i = 0; i < this.getLength(); i++)for (var n = 0; n < t.getLength(); n++)e[i + n] ^= v.gexp(v.glog(this.get(i)) + v.glog(t.get(n)));
return new a(e, 0)
}, mod: function (t) {
var e = this.getLength(), i = t.getLength();
if (0 > e - i)return this;
for (var n = new Array(e), s = 0; e > s; s++)n[s] = this.get(s);
for (; n.length >= i;) {
for (var o = v.glog(n[0]) - v.glog(t.get(0)), s = 0; s < t.getLength(); s++)n[s] ^= v.gexp(v.glog(t.get(s)) + o);
for (; 0 == n[0];)n.shift()
}
return new a(n, 0)
}
};
var w = [[1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12], [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16]];
o.prototype.getRightType = function () {
for (var t = 1; 41 > t; t++) {
var e = w[4 * (t - 1) + this.errorCorrectLevel];
if (void 0 == e)throw new Error("bad rs block @ typeNumber:" + t + "/errorCorrectLevel:" + this.errorCorrectLevel);
for (var i = e.length / 3, n = 0, s = 0; i > s; s++) {
var o = e[3 * s + 0], a = e[3 * s + 2];
n += a * o
}
var r = t > 9 ? 2 : 1;
if (this.utf8bytes.length + r < n || 40 == t) {
this.typeNumber = t, this.rsBlock = e, this.totalDataCount = n;
break
}
}
}, r.prototype = {
get: function (t) {
var e = Math.floor(t / 8);
return this.buffer[e] >>> 7 - t % 8 & 1
}, put: function (t, e) {
for (var i = 0; e > i; i++)this.putBit(t >>> e - i - 1 & 1)
}, putBit: function (t) {
var e = Math.floor(this.length / 8);
this.buffer.length <= e && this.buffer.push(0), t && (this.buffer[e] |= 128 >>> this.length % 8), this.length++
}
}, o.prototype = {
constructor: o, getModuleCount: function () {
return this.moduleCount
}, make: function () {
this.getRightType(), this.dataCache = this.createData(), this.createQrcode()
}, makeImpl: function (t) {
this.moduleCount = 4 * this.typeNumber + 17, this.modules = new Array(this.moduleCount);
for (var e = 0; e < this.moduleCount; e++)this.modules[e] = new Array(this.moduleCount);
this.setupPositionProbePattern(0, 0), this.setupPositionProbePattern(this.moduleCount - 7, 0), this.setupPositionProbePattern(0, this.moduleCount - 7), this.setupPositionAdjustPattern(), this.setupTimingPattern(), this.setupTypeInfo(!0, t), this.typeNumber >= 7 && this.setupTypeNumber(!0), this.mapData(this.dataCache, t)
}, setupPositionProbePattern: function (t, e) {
for (var i = -1; 7 >= i; i++)if (!(-1 >= t + i || this.moduleCount <= t + i))for (var n = -1; 7 >= n; n++)-1 >= e + n || this.moduleCount <= e + n || (i >= 0 && 6 >= i && (0 == n || 6 == n) || n >= 0 && 6 >= n && (0 == i || 6 == i) || i >= 2 && 4 >= i && n >= 2 && 4 >= n ? this.modules[t + i][e + n] = !0 : this.modules[t + i][e + n] = !1)
}, createQrcode: function () {
for (var t = 0, e = 0, i = null, n = 0; 8 > n; n++) {
this.makeImpl(n);
var s = f.getLostPoint(this);
(0 == n || t > s) && (t = s, e = n, i = this.modules)
}
this.modules = i, this.setupTypeInfo(!1, e), this.typeNumber >= 7 && this.setupTypeNumber(!1)
}, setupTimingPattern: function () {
for (var t = 8; t < this.moduleCount - 8; t++)null == this.modules[t][6] && (this.modules[t][6] = t % 2 == 0, null == this.modules[6][t] && (this.modules[6][t] = t % 2 == 0))
}, setupPositionAdjustPattern: function () {
for (var t = f.getPatternPosition(this.typeNumber), e = 0; e < t.length; e++)for (var i = 0; i < t.length; i++) {
var n = t[e], s = t[i];
if (null == this.modules[n][s])for (var o = -2; 2 >= o; o++)for (var a = -2; 2 >= a; a++)-2 == o || 2 == o || -2 == a || 2 == a || 0 == o && 0 == a ? this.modules[n + o][s + a] = !0 : this.modules[n + o][s + a] = !1
}
}, setupTypeNumber: function (t) {
for (var e = f.getBCHTypeNumber(this.typeNumber), i = 0; 18 > i; i++) {
var n = !t && 1 == (e >> i & 1);
this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = n, this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = n
}
}, setupTypeInfo: function (t, e) {
for (var i = p[this.errorCorrectLevel] << 3 | e, n = f.getBCHTypeInfo(i), s = 0; 15 > s; s++) {
var o = !t && 1 == (n >> s & 1);
6 > s ? this.modules[s][8] = o : 8 > s ? this.modules[s + 1][8] = o : this.modules[this.moduleCount - 15 + s][8] = o;
var o = !t && 1 == (n >> s & 1);
8 > s ? this.modules[8][this.moduleCount - s - 1] = o : 9 > s ? this.modules[8][15 - s - 1 + 1] = o : this.modules[8][15 - s - 1] = o
}
this.modules[this.moduleCount - 8][8] = !t
}, createData: function () {
var t = new r, e = this.typeNumber > 9 ? 16 : 8;
t.put(4, 4), t.put(this.utf8bytes.length, e);
for (var i = 0, n = this.utf8bytes.length; n > i; i++)t.put(this.utf8bytes[i], 8);
for (t.length + 4 <= 8 * this.totalDataCount && t.put(0, 4); t.length % 8 != 0;)t.putBit(!1);
for (; ;) {
if (t.length >= 8 * this.totalDataCount)break;
if (t.put(o.PAD0, 8), t.length >= 8 * this.totalDataCount)break;
t.put(o.PAD1, 8)
}
return this.createBytes(t)
}, createBytes: function (t) {
for (var e = 0, i = 0, n = 0, s = this.rsBlock.length / 3, o = new Array, r = 0; s > r; r++)for (var l = this.rsBlock[3 * r + 0], c = this.rsBlock[3 * r + 1], u = this.rsBlock[3 * r + 2], h = 0; l > h; h++)o.push([u, c]);
for (var d = new Array(o.length), p = new Array(o.length), m = 0; m < o.length; m++) {
var v = o[m][0], g = o[m][1] - v;
i = Math.max(i, v), n = Math.max(n, g), d[m] = new Array(v);
for (var r = 0; r < d[m].length; r++)d[m][r] = 255 & t.buffer[r + e];
e += v;
var w = f.getErrorCorrectPolynomial(g), y = new a(d[m], w.getLength() - 1), b = y.mod(w);
p[m] = new Array(w.getLength() - 1);
for (var r = 0; r < p[m].length; r++) {
var T = r + b.getLength() - p[m].length;
p[m][r] = T >= 0 ? b.get(T) : 0
}
}
for (var x = new Array(this.totalDataCount), C = 0, r = 0; i > r; r++)for (var m = 0; m < o.length; m++)r < d[m].length && (x[C++] = d[m][r]);
for (var r = 0; n > r; r++)for (var m = 0; m < o.length; m++)r < p[m].length && (x[C++] = p[m][r]);
return x
}, mapData: function (t, e) {
for (var i = -1, n = this.moduleCount - 1, s = 7, o = 0, a = this.moduleCount - 1; a > 0; a -= 2)for (6 == a && a--; ;) {
for (var r = 0; 2 > r; r++)if (null == this.modules[n][a - r]) {
var l = !1;
o < t.length && (l = 1 == (t[o] >>> s & 1));
var c = f.getMask(e, n, a - r);
c && (l = !l), this.modules[n][a - r] = l, s--, -1 == s && (o++, s = 7)
}
if (n += i, 0 > n || this.moduleCount <= n) {
n -= i, i = -i;
break
}
}
}
}, o.PAD0 = 236, o.PAD1 = 17;
for (var p = [1, 0, 3, 2], m = {
PATTERN000: 0,
PATTERN001: 1,
PATTERN010: 2,
PATTERN011: 3,
PATTERN100: 4,
PATTERN101: 5,
PATTERN110: 6,
PATTERN111: 7
}, f = {
PATTERN_POSITION_TABLE: [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]],
G15: 1335,
G18: 7973,
G15_MASK: 21522,
getBCHTypeInfo: function (t) {
for (var e = t << 10; f.getBCHDigit(e) - f.getBCHDigit(f.G15) >= 0;)e ^= f.G15 << f.getBCHDigit(e) - f.getBCHDigit(f.G15);
return (t << 10 | e) ^ f.G15_MASK
},
getBCHTypeNumber: function (t) {
for (var e = t << 12; f.getBCHDigit(e) - f.getBCHDigit(f.G18) >= 0;)e ^= f.G18 << f.getBCHDigit(e) - f.getBCHDigit(f.G18);
return t << 12 | e
},
getBCHDigit: function (t) {
for (var e = 0; 0 != t;)e++, t >>>= 1;
return e
},
getPatternPosition: function (t) {
return f.PATTERN_POSITION_TABLE[t - 1]
},
getMask: function (t, e, i) {
switch (t) {
case m.PATTERN000:
return (e + i) % 2 == 0;
case m.PATTERN001:
return e % 2 == 0;
case m.PATTERN010:
return i % 3 == 0;
case m.PATTERN011:
return (e + i) % 3 == 0;
case m.PATTERN100:
return (Math.floor(e / 2) + Math.floor(i / 3)) % 2 == 0;
case m.PATTERN101:
return e * i % 2 + e * i % 3 == 0;
case m.PATTERN110:
return (e * i % 2 + e * i % 3) % 2 == 0;
case m.PATTERN111:
return (e * i % 3 + (e + i) % 2) % 2 == 0;
default:
throw new Error("bad maskPattern:" + t)
}
},
getErrorCorrectPolynomial: function (t) {
for (var e = new a([1], 0), i = 0; t > i; i++)e = e.multiply(new a([1, v.gexp(i)], 0));
return e
},
getLostPoint: function (t) {
for (var e = t.getModuleCount(), i = 0, n = 0, s = 0; e > s; s++)for (var o = 0, a = t.modules[s][0], r = 0; e > r; r++) {
var l = t.modules[s][r];
if (e - 6 > r && l && !t.modules[s][r + 1] && t.modules[s][r + 2] && t.modules[s][r + 3] && t.modules[s][r + 4] && !t.modules[s][r + 5] && t.modules[s][r + 6] && (e - 10 > r ? t.modules[s][r + 7] && t.modules[s][r + 8] && t.modules[s][r + 9] && t.modules[s][r + 10] && (i += 40) : r > 3 && t.modules[s][r - 1] && t.modules[s][r - 2] && t.modules[s][r - 3] && t.modules[s][r - 4] && (i += 40)), e - 1 > s && e - 1 > r) {
var c = 0;
l && c++, t.modules[s + 1][r] && c++, t.modules[s][r + 1] && c++, t.modules[s + 1][r + 1] && c++, (0 == c || 4 == c) && (i += 3)
}
a ^ l ? o++ : (a = l, o >= 5 && (i += 3 + o - 5), o = 1), l && n++
}
for (var r = 0; e > r; r++)for (var o = 0, a = t.modules[0][r], s = 0; e > s; s++) {
var l = t.modules[s][r];
e - 6 > s && l && !t.modules[s + 1][r] && t.modules[s + 2][r] && t.modules[s + 3][r] && t.modules[s + 4][r] && !t.modules[s + 5][r] && t.modules[s + 6][r] && (e - 10 > s ? t.modules[s + 7][r] && t.modules[s + 8][r] && t.modules[s + 9][r] && t.modules[s + 10][r] && (i += 40) : s > 3 && t.modules[s - 1][r] && t.modules[s - 2][r] && t.modules[s - 3][r] && t.modules[s - 4][r] && (i += 40)), a ^ l ? o++ : (a = l, o >= 5 && (i += 3 + o - 5), o = 1)
}
var u = Math.abs(100 * n / e / e - 50) / 5;
return i += 10 * u
}
}, v = {
glog: function (t) {
if (1 > t)throw new Error("glog(" + t + ")");
return v.LOG_TABLE[t]
}, gexp: function (t) {
for (; 0 > t;)t += 255;
for (; t >= 256;)t -= 255;
return v.EXP_TABLE[t]
}, EXP_TABLE: new Array(256), LOG_TABLE: new Array(256)
}, g = 0; 8 > g; g++)v.EXP_TABLE[g] = 1 << g;
for (var g = 8; 256 > g; g++)v.EXP_TABLE[g] = v.EXP_TABLE[g - 4] ^ v.EXP_TABLE[g - 5] ^ v.EXP_TABLE[g - 6] ^ v.EXP_TABLE[g - 8];
for (var g = 0; 255 > g; g++)v.LOG_TABLE[v.EXP_TABLE[g]] = g;
a.prototype = {
get: function (t) {
return this.num[t]
}, getLength: function () {
return this.num.length
}, multiply: function (t) {
for (var e = new Array(this.getLength() + t.getLength() - 1), i = 0; i < this.getLength(); i++)for (var n = 0; n < t.getLength(); n++)e[i + n] ^= v.gexp(v.glog(this.get(i)) + v.glog(t.get(n)));
return new a(e, 0)
}, mod: function (t) {
var e = this.getLength(), i = t.getLength();
if (0 > e - i)return this;
for (var n = new Array(e), s = 0; e > s; s++)n[s] = this.get(s);
for (; n.length >= i;) {
for (var o = v.glog(n[0]) - v.glog(t.get(0)), s = 0; s < t.getLength(); s++)n[s] ^= v.gexp(v.glog(t.get(s)) + o);
for (; 0 == n[0];)n.shift()
}
return new a(n, 0)
}
}, w = [[1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12], [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16]], o.prototype.getRightType = function () {
for (var t = 1; 41 > t; t++) {
var e = w[4 * (t - 1) + this.errorCorrectLevel];
if (void 0 == e)throw new Error("bad rs block @ typeNumber:" + t + "/errorCorrectLevel:" + this.errorCorrectLevel);
for (var i = e.length / 3, n = 0, s = 0; i > s; s++) {
var o = e[3 * s + 0], a = e[3 * s + 2];
n += a * o
}
var r = t > 9 ? 2 : 1;
if (this.utf8bytes.length + r < n || 40 == t) {
this.typeNumber = t, this.rsBlock = e, this.totalDataCount = n;
break
}
}
}, r.prototype = {
get: function (t) {
var e = Math.floor(t / 8);
return this.buffer[e] >>> 7 - t % 8 & 1
}, put: function (t, e) {
for (var i = 0; e > i; i++)this.putBit(t >>> e - i - 1 & 1)
}, putBit: function (t) {
var e = Math.floor(this.length / 8);
this.buffer.length <= e && this.buffer.push(0), t && (this.buffer[e] |= 128 >>> this.length % 8), this.length++
}
}, c.fn.qrcode = function (t) {
return this.each(function () {
c(this).append(new d(t))
})
}, t.exports = u.qrcode = d
}, function (t, e, i) {
"use strict";
var n = i(1), s = i(2), o = function (t, e) {
var i = this;
this.options = n.extend({}, o.DEFAULTS, e), this.$element = n(t), this.sticked = null, this.inited = null, this.$holder = void 0, this.$window = n(window).on("scroll.sticky.amui", s.utils.debounce(n.proxy(this.checkPosition, this), 10)).on("resize.sticky.amui orientationchange.sticky.amui", s.utils.debounce(function () {
i.reset(!0, function () {
i.checkPosition()
})
}, 50)).on("load.sticky.amui", n.proxy(this.checkPosition, this)), this.offset = this.$element.offset(), this.init()
};
o.DEFAULTS = {
top: 0,
bottom: 0,
animation: "",
className: {
sticky: "am-sticky",
resetting: "am-sticky-resetting",
stickyBtm: "am-sticky-bottom",
animationRev: "am-animation-reverse"
}
}, o.prototype.init = function () {
var t = this.check();
if (!t)return !1;
var e = this.$element, i = "";
n.each(e.css(["marginTop", "marginRight", "marginBottom", "marginLeft"]), function (t, e) {
return i += " " + e
});
var s = n('').css({
height: "absolute" !== e.css("position") ? e.outerHeight() : "",
"float": "none" != e.css("float") ? e.css("float") : "",
margin: i
});
return this.$holder = e.css("margin", 0).wrap(s).parent(), this.inited = 1, !0
}, o.prototype.reset = function (t, e) {
var i = this.options, n = this.$element, o = i.animation ? " am-animation-" + i.animation : "", a = function () {
n.css({
position: "",
top: "",
width: "",
left: "",
margin: 0
}), n.removeClass([o, i.className.animationRev, i.className.sticky, i.className.resetting].join(" ")), this.animating = !1, this.sticked = !1, this.offset = n.offset(), e && e()
}.bind(this);
n.addClass(i.className.resetting), !t && i.animation && s.support.animation ? (this.animating = !0, n.removeClass(o).one(s.support.animation.end, function () {
a()
}).width(), n.addClass(o + " " + i.className.animationRev)) : a()
}, o.prototype.check = function () {
if (!this.$element.is(":visible"))return !1;
var t = this.options.media;
if (t)switch (typeof t) {
case"number":
if (window.innerWidth < t)return !1;
break;
case"string":
if (window.matchMedia && !window.matchMedia(t).matches)return !1
}
return !0
}, o.prototype.checkPosition = function () {
if (!this.inited) {
var t = this.init();
if (!t)return
}
var e = this.options, i = this.$window.scrollTop(), n = e.top, s = e.bottom, o = this.$element, a = e.animation ? " am-animation-" + e.animation : "", r = [e.className.sticky, a].join(" ");
"function" == typeof s && (s = s(this.$element));
var l = i > this.$holder.offset().top;
!this.sticked && l ? o.addClass(r) : this.sticked && !l && this.reset(), this.$holder.css({height: o.is(":visible") && "absolute" !== o.css("position") ? o.outerHeight() : ""}), l && o.css({
top: n,
left: this.$holder.offset().left,
width: this.$holder.width()
}), this.sticked = l
}, s.plugin("sticky", o), n(window).on("load", function () {
n("[data-am-sticky]").sticky()
}), t.exports = o
}, function (t, e, i) {
"use strict";
function n(t) {
var e, i = Array.prototype.slice.call(arguments, 1);
return this.each(function () {
var n = s(this), a = n.is(".am-tabs") && n || n.closest(".am-tabs"), r = a.data("amui.tabs"), l = s.extend({}, o.utils.parseOptions(n.data("amTabs")), s.isPlainObject(t) && t);
r || a.data("amui.tabs", r = new c(a[0], l)), "string" == typeof t && ("open" === t && n.is(".am-tabs-nav a") ? r.open(n) : e = "function" == typeof r[t] ? r[t].apply(r, i) : r[t])
}), void 0 === e ? this : e
}
var s = i(1), o = i(2), a = i(3), r = o.support.transition, l = o.support.animation, c = function (t, e) {
this.$element = s(t), this.options = s.extend({}, c.DEFAULTS, e || {}), this.transitioning = this.activeIndex = null, this.refresh(), this.init()
};
c.DEFAULTS = {
selector: {nav: "> .am-tabs-nav", content: "> .am-tabs-bd", panel: "> .am-tab-panel"},
activeClass: "am-active"
}, c.prototype.refresh = function () {
var t = this.options.selector;
this.$tabNav = this.$element.find(t.nav), this.$navs = this.$tabNav.find("a"), this.$content = this.$element.find(t.content), this.$tabPanels = this.$content.find(t.panel);
var e = this.$tabNav.find("> ." + this.options.activeClass);
1 !== e.length ? this.open(0) : this.activeIndex = this.$navs.index(e.children("a"))
}, c.prototype.init = function () {
var t = this, e = this.options;
if (this.$element.on("click.tabs.amui", e.selector.nav + " a", function (e) {
e.preventDefault(), t.open(s(this))
}), !e.noSwipe) {
if (!this.$content.length)return this;
var i = new a.Manager(this.$content[0]), n = new a.Swipe({direction: a.DIRECTION_HORIZONTAL});
i.add(n), i.on("swipeleft", o.utils.debounce(function (e) {
e.preventDefault(), t.goTo("next")
}, 100)), i.on("swiperight", o.utils.debounce(function (e) {
e.preventDefault(), t.goTo("prev")
}, 100)), this._hammer = i
}
}, c.prototype.open = function (t) {
var e = this.options.activeClass, i = "number" == typeof t ? t : this.$navs.index(s(t));
if (t = "number" == typeof t ? this.$navs.eq(i) : s(t), t && t.length && !this.transitioning && !t.parent("li").hasClass(e)) {
var n = this.$tabNav, o = t.attr("href"), a = /^#.+$/, r = a.test(o) && this.$content.find(o) || this.$tabPanels.eq(i), l = n.find("." + e + " a")[0], c = s.Event("open.tabs.amui", {relatedTarget: l});
t.trigger(c), c.isDefaultPrevented() || (this.activate(t.closest("li"), n), this.activate(r, this.$content, function () {
t.trigger({type: "opened.tabs.amui", relatedTarget: l})
}), this.activeIndex = i)
}
}, c.prototype.activate = function (t, e, i) {
this.transitioning = !0;
var n = this.options.activeClass, o = e.find("> ." + n), a = i && r && !!o.length;
o.removeClass(n + " am-in"), t.addClass(n), a ? (t.redraw(), t.addClass("am-in")) : t.removeClass("am-fade");
var l = s.proxy(function () {
i && i(), this.transitioning = !1
}, this);
a ? o.one(r.end, l) : l()
}, c.prototype.goTo = function (t) {
var e = this.activeIndex, i = "next" === t, n = i ? "am-animation-right-spring" : "am-animation-left-spring";
if (i && e + 1 >= this.$navs.length || !i && 0 === e) {
var s = this.$tabPanels.eq(e);
l && s.addClass(n).on(l.end, function () {
s.removeClass(n)
})
} else this.open(i ? e + 1 : e - 1)
}, c.prototype.destroy = function () {
this.$element.off(".tabs.amui"), a.off(this.$content[0], "swipeleft swiperight"), this._hammer && this._hammer.destroy(), s.removeData(this.$element, "amui.tabs")
}, s.fn.tabs = n, o.ready(function (t) {
s("[data-am-tabs]", t).tabs()
}), s(document).on("click.tabs.amui.data-api", "[data-am-tabs] .am-tabs-nav a", function (t) {
t.preventDefault(), n.call(s(this), "open")
}), t.exports = o.tabs = c
}, function (t, e, i) {
"use strict";
var n = i(1), s = i(2), o = function (t, e) {
this.options = n.extend({}, o.DEFAULTS, e), this.$element = n(t), this.init()
};
o.DEFAULTS = {
checkboxClass: "am-ucheck-checkbox",
radioClass: "am-ucheck-radio",
checkboxTpl: '',
radioTpl: ''
}, o.prototype.init = function () {
var t = this.$element, e = t[0], i = this.options;
"checkbox" === e.type ? t.addClass(i.checkboxClass).after(i.checkboxTpl) : "radio" === e.type && t.addClass(i.radioClass).after(i.radioTpl)
}, o.prototype.check = function () {
this.$element.prop("checked", !0).trigger("change.ucheck.amui").trigger("checked.ucheck.amui")
}, o.prototype.uncheck = function () {
this.$element.prop("checked", !1).trigger("change.ucheck.amui").trigger("unchecked.ucheck.amui")
}, o.prototype.toggle = function () {
this.$element.prop("checked", function (t, e) {
return !e
}).trigger("change.ucheck.amui").trigger("toggled.ucheck.amui")
}, o.prototype.disable = function () {
this.$element.prop("disabled", !0).trigger("change.ucheck.amui").trigger("disabled.ucheck.amui")
}, o.prototype.enable = function () {
this.$element.prop("disabled", !1), this.$element.trigger("change.ucheck.amui").trigger("enabled.ucheck.amui")
}, o.prototype.destroy = function () {
this.$element.removeData("amui.ucheck").removeClass(this.options.checkboxClass + " " + this.options.radioClass).next(".am-ucheck-icons").remove().end().trigger("destroyed.ucheck.amui")
}, s.plugin("uCheck", o, {
after: function () {
s.support.touch && this.parent().hover(function () {
this.addClass("am-nohover")
}, function () {
this.removeClass("am-nohover")
})
}
}), s.ready(function (t) {
n("[data-am-ucheck]", t).uCheck()
}), t.exports = o
}, function (t, e, i) {
"use strict";
var n = i(1), s = i(2), o = function (t, e) {
this.options = n.extend({}, o.DEFAULTS, e), this.options.patterns = n.extend({}, o.patterns, this.options.patterns);
var i = this.options.locales;
!o.validationMessages[i] && (this.options.locales = "zh_CN"), this.$element = n(t), this.init()
};
o.DEFAULTS = {
debug: !1,
locales: "zh_CN",
H5validation: !1,
H5inputType: ["email", "url", "number"],
patterns: {},
patternClassPrefix: "js-pattern-",
activeClass: "am-active",
inValidClass: "am-field-error",
validClass: "am-field-valid",
validateOnSubmit: !0,
alwaysRevalidate: !1,
allFields: ":input:not(:submit, :button, :disabled, .am-novalidate)",
ignore: ":hidden:not([data-am-selected], .am-validate)",
customEvents: "validate",
keyboardFields: ":input:not(:submit, :button, :disabled, .am-novalidate)",
keyboardEvents: "focusout, change",
activeKeyup: !1,
textareaMaxlenthKeyup: !0,
pointerFields: 'input[type="range"]:not(:disabled, .am-novalidate), input[type="radio"]:not(:disabled, .am-novalidate), input[type="checkbox"]:not(:disabled, .am-novalidate), select:not(:disabled, .am-novalidate), option:not(:disabled, .am-novalidate)',
pointerEvents: "click",
onValid: function (t) {
},
onInValid: function (t) {
},
markValid: function (t) {
var e = this.options, i = n(t.field), s = i.closest(".am-form-group");
i.addClass(e.validClass).removeClass(e.inValidClass), s.addClass("am-form-success").removeClass("am-form-error"), e.onValid.call(this, t)
},
markInValid: function (t) {
var e = this.options, i = n(t.field), s = i.closest(".am-form-group");
i.addClass(e.inValidClass + " " + e.activeClass).removeClass(e.validClass), s.addClass("am-form-error").removeClass("am-form-success"), e.onInValid.call(this, t)
},
validate: function (t) {
},
submit: null
}, o.VERSION = "2.5.0", o.patterns = {
email: /^((([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/,
url: /^(https?|ftp):\/\/(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/,
number: /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/,
dateISO: /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,
integer: /^-?\d+$/
}, o.validationMessages = {
zh_CN: {
valueMissing: "\u8bf7\u586b\u5199\uff08\u9009\u62e9\uff09\u6b64\u5b57\u6bb5",
customError: {
tooShort: "\u81f3\u5c11\u586b\u5199 %s \u4e2a\u5b57\u7b26",
checkedOverflow: "\u81f3\u591a\u9009\u62e9 %s \u9879",
checkedUnderflow: "\u81f3\u5c11\u9009\u62e9 %s \u9879"
},
patternMismatch: "\u8bf7\u6309\u7167\u8981\u6c42\u7684\u683c\u5f0f\u586b\u5199",
rangeOverflow: "\u8bf7\u586b\u5199\u5c0f\u4e8e\u7b49\u4e8e %s \u7684\u503c",
rangeUnderflow: "\u8bf7\u586b\u5199\u5927\u4e8e\u7b49\u4e8e %s \u7684\u503c",
stepMismatch: "",
tooLong: "\u81f3\u591a\u586b\u5199 %s \u4e2a\u5b57\u7b26",
typeMismatch: "\u8bf7\u6309\u7167\u8981\u6c42\u7684\u7c7b\u578b\u586b\u5199"
}
}, o.ERROR_MAP = {
tooShort: "minlength",
checkedOverflow: "maxchecked",
checkedUnderflow: "minchecked",
rangeOverflow: "max",
rangeUnderflow: "min",
tooLong: "maxlength"
}, o.prototype.init = function () {
function t(t) {
var e = t.toString();
return e.substring(1, e.length - 1)
}
function e(t, e, a) {
var r = e.split(","), l = function (t) {
i.validate(this)
};
a && (l = s.utils.debounce(l, a)), n.each(r, function (e, i) {
o.on(i + ".validator.amui", t, l)
})
}
var i = this, o = this.$element, a = this.options;
return a.H5validation && s.support.formValidation ? !1 : (o.attr("novalidate", "novalidate"), n.each(a.H5inputType, function (e, i) {
var n = o.find("input[type=" + i + "]");
n.attr("pattern") || n.is("[class*=" + a.patternClassPrefix + "]") || n.attr("pattern", t(a.patterns[i]))
}), n.each(a.patterns, function (e, i) {
var n = o.find("." + a.patternClassPrefix + e);
!n.attr("pattern") && n.attr("pattern", t(i))
}), o.on("submit.validator.amui", function (t) {
if ("function" == typeof a.submit)return a.submit.call(i, t);
if (a.validateOnSubmit) {
var e = i.isFormValid();
return "boolean" === n.type(e) ? e : o.data("amui.checked") ? !0 : (n.when(e).then(function () {
o.data("amui.checked", !0).submit()
}, function () {
o.data("amui.checked", !1).find("." + a.inValidClass).eq(0).focus()
}), !1)
}
}), e(":input", a.customEvents), e(a.keyboardFields, a.keyboardEvents), e(a.pointerFields, a.pointerEvents), a.textareaMaxlenthKeyup && e("textarea[maxlength]", "keyup", 50), void(a.activeKeyup && e(".am-active", "keyup", 50)))
}, o.prototype.isValid = function (t) {
var e = n(t), i = this.options;
return (void 0 === e.data("validity") || i.alwaysRevalidate) && this.validate(t), e.data("validity") && e.data("validity").valid
}, o.prototype.validate = function (t) {
var e = this, i = this.$element, s = this.options, o = n(t), a = o.data("equalTo");
a && o.attr("pattern", "^" + i.find(a).val() + "$");
var r = o.attr("pattern") || !1, l = new RegExp(r), c = null, u = null, h = o.is("[type=checkbox]") ? (u = i.find('input[name="' + t.name + '"]')).filter(":checked").length : o.is("[type=radio]") ? (c = this.$element.find('input[name="' + t.name + '"]')).filter(":checked").length > 0 : o.val();
o = u && u.length ? u.first() : o;
var d = void 0 !== o.attr("required") && "false" !== o.attr("required"), p = parseInt(o.attr("maxlength"), 10), m = parseInt(o.attr("minlength"), 10), f = Number(o.attr("min")), v = Number(o.attr("max")), g = this.createValidity({
field: o[0],
valid: !0
});
if (s.debug && window.console && (console.log("Validate: value -> [" + h + ", regex -> [" + l + "], required -> " + d), console.log("Regex test: " + l.test(h) + ", Pattern: " + r)), !isNaN(p) && h.length > p && (g.valid = !1, g.tooLong = !0), !isNaN(m) && h.length < m && (g.valid = !1, g.customError = "tooShort"), !isNaN(f) && Number(h) < f && (g.valid = !1, g.rangeUnderflow = !0), !isNaN(v) && Number(h) > v && (g.valid = !1, g.rangeOverflow = !0), d && !h)g.valid = !1, g.valueMissing = !0; else if ((u || o.is('select[multiple="multiple"]')) && h) {
h = u ? h : h.length;
var w = parseInt(o.attr("minchecked"), 10), y = parseInt(o.attr("maxchecked"), 10);
!isNaN(w) && w > h && (g.valid = !1, g.customError = "checkedUnderflow"), !isNaN(y) && h > y && (g.valid = !1, g.customError = "checkedOverflow")
} else r && !l.test(h) && h && (g.valid = !1, g.patternMismatch = !0);
var b, T = function (t) {
this.markField(t);
var i = n.Event("validated.field.validator.amui");
i.validity = t, o.trigger(i).data("validity", t);
var s = c || u;
return s && s.not(o).data("validity", t).each(function () {
t.field = this, e.markField(t)
}), t
};
if ("function" == typeof s.validate && (b = s.validate.call(this, g)), b) {
var x = new n.Deferred;
return o.data("amui.dfdValidity", x.promise()), n.when(b).always(function (t) {
x[t.valid ? "resolve" : "reject"](t), T.call(e, t)
})
}
T.call(this, g)
}, o.prototype.markField = function (t) {
var e = this.options, i = "mark" + (t.valid ? "" : "In") + "Valid";
e[i] && e[i].call(this, t)
}, o.prototype.validateForm = function () {
var t = this, e = this.$element, i = this.options, s = e.find(i.allFields).not(i.ignore), o = [], a = !0, r = [], l = n([]), c = [], u = !1;
e.trigger("validate.form.validator.amui");
var h = s.filter(function (t) {
var e;
if ("INPUT" === this.tagName && "radio" === this.type) {
if (e = this.name, o[e] === !0)return !1;
o[e] = !0
}
return !0
});
h.each(function () {
var i = n(this), s = t.isValid(this), o = i.data("validity");
a = !!s && a, r.push(o), s || (l = l.add(n(this), e));
var h = i.data("amui.dfdValidity");
if (h)c.push(h), u = !0; else {
var d = new n.Deferred;
c.push(d.promise()), d[s ? "resolve" : "reject"](o)
}
});
var d = {valid: a, $invalidFields: l, validity: r, promises: c, async: u};
return e.trigger("validated.form.validator.amui", d), d
}, o.prototype.isFormValid = function () {
var t = this, e = this.validateForm(), i = function (e) {
t.$element.trigger(e + ".validator.amui")
};
if (e.async) {
var s = new n.Deferred;
return n.when.apply(null, e.promises).then(function () {
s.resolve(), i("valid")
}, function () {
s.reject(), i("invalid")
}), s.promise()
}
if (!e.valid) {
var o = e.$invalidFields.first();
return o.is("[data-am-selected]") && (o = o.next(".am-selected").find(".am-selected-btn")), o.focus(), i("invalid"), !1
}
return i("valid"), !0
}, o.prototype.createValidity = function (t) {
return n.extend({
customError: t.customError || !1,
patternMismatch: t.patternMismatch || !1,
rangeOverflow: t.rangeOverflow || !1,
rangeUnderflow: t.rangeUnderflow || !1,
stepMismatch: t.stepMismatch || !1,
tooLong: t.tooLong || !1,
typeMismatch: t.typeMismatch || !1,
valid: t.valid || !0,
valueMissing: t.valueMissing || !1
}, t)
}, o.prototype.getValidationMessage = function (t) {
var e, i, s = o.validationMessages[this.options.locales], a = "%s", r = n(t.field);
return (r.is('[type="checkbox"]') || r.is('[type="radio"]')) && (r = this.$element.find("[name=" + r.attr("name") + "]").first()), n.each(t, function (t, i) {
return "field" === t || "valid" === t ? t : "customError" === t && i ? (e = i, s = s.customError, !1) : i === !0 ? (e = t, !1) : void 0
}), i = s[e] || void 0, i && o.ERROR_MAP[e] && (i = i.replace(a, r.attr(o.ERROR_MAP[e]) || "\u89c4\u5b9a\u7684")), i
}, o.prototype.removeMark = function () {
this.$element.find(".am-form-success, .am-form-error, ." + this.options.inValidClass + ", ." + this.options.validClass).removeClass(["am-form-success", "am-form-error", this.options.inValidClass, this.options.validClass].join(" "))
}, o.prototype.destroy = function () {
this.removeMark(), this.$element.removeData("amui.validator amui.checked").off(".validator.amui").find(this.options.allFields).removeData("validity amui.dfdValidity")
}, s.plugin("validator", o), s.ready(function (t) {
n("[data-am-validator]", t).validator()
}), t.exports = o
}, function (t, e, i) {
"use strict";
var n = i(2), s = {
get: function (t) {
var e, i = encodeURIComponent(t) + "=", n = document.cookie.indexOf(i), s = null;
return n > -1 && (e = document.cookie.indexOf(";", n), -1 == e && (e = document.cookie.length), s = decodeURIComponent(document.cookie.substring(n + i.length, e))), s
}, set: function (t, e, i, n, s, o) {
var a = encodeURIComponent(t) + "=" + encodeURIComponent(e);
i instanceof Date && (a += "; expires=" + i.toUTCString()), n && (a += "; path=" + n), s && (a += "; domain=" + s), o && (a += "; secure"), document.cookie = a
}, unset: function (t, e, i, n) {
this.set(t, "", new Date(0), e, i, n)
}
};
n.utils = n.utils || {}, t.exports = n.utils.cookie = s
}, function (t, e, i) {
"use strict";
var n = i(2), s = function () {
var t = "undefined" != typeof Element && "ALLOW_KEYBOARD_INPUT"in Element, e = function () {
for (var t, e, i = [["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"], ["webkitRequestFullscreen", "webkitExitFullscreen", "webkitFullscreenElement", "webkitFullscreenEnabled", "webkitfullscreenchange", "webkitfullscreenerror"], ["webkitRequestFullScreen", "webkitCancelFullScreen", "webkitCurrentFullScreenElement", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitfullscreenerror"], ["mozRequestFullScreen", "mozCancelFullScreen", "mozFullScreenElement", "mozFullScreenEnabled", "mozfullscreenchange", "mozfullscreenerror"], ["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"]], n = 0, s = i.length, o = {}; s > n; n++)if (t = i[n], t && t[1]in document) {
for (n = 0, e = t.length; e > n; n++)o[i[0][n]] = t[n];
return o
}
return !1
}(), i = {
request: function (i) {
var n = e.requestFullscreen;
i = i || document.documentElement, /5\.1[\.\d]* Safari/.test(navigator.userAgent) ? i[n]() : i[n](t && Element.ALLOW_KEYBOARD_INPUT)
}, exit: function () {
document[e.exitFullscreen]();
}, toggle: function (t) {
this.isFullscreen ? this.exit() : this.request(t)
}, raw: e
};
return e ? (Object.defineProperties(i, {
isFullscreen: {
get: function () {
return !!document[e.fullscreenElement]
}
}, element: {
enumerable: !0, get: function () {
return document[e.fullscreenElement]
}
}, enabled: {
enumerable: !0, get: function () {
return !!document[e.fullscreenEnabled]
}
}
}), i.VERSION = "2.0.0", i) : !1
}();
t.exports = n.fullscreen = s
}, function (t, e, i) {
"use strict";
var n = i(1), s = i(2);
s.support.geolocation = window.navigator && window.navigator.geolocation;
var o = s.support.geolocation, a = function (t) {
this.options = t || {}
};
a.MESSAGES = {
unsupportedBrowser: "Browser does not support location services",
permissionDenied: "You have rejected access to your location",
positionUnavailable: "Unable to determine your location",
timeout: "Service timeout has been reached"
}, a.ERROR_CODE = {
0: "unsupportedBrowser",
1: "permissionDenied",
2: "positionUnavailable",
3: "timeout"
}, a.prototype.get = function (t) {
var e = this;
t = n.extend({}, this.options, t);
var i = new n.Deferred;
return o ? this.watchID = o.getCurrentPosition(function (t) {
i.resolve.call(e, t)
}, function (t) {
i.reject(a.MESSAGES[a.ERROR_CODE[t.code]])
}, t) : i.reject(a.MESSAGES.unsupportedBrowser), i.promise()
}, a.prototype.watch = function (t) {
if (o && (t = n.extend({}, this.options, t), n.isFunction(t.done))) {
this.clearWatch();
var e = n.isFunction(t.fail) ? t.fail : null;
return this.watchID = o.watchPosition(t.done, e, t), this.watchID
}
}, a.prototype.clearWatch = function () {
o && this.watchID && (o.clearWatch(this.watchID), this.watchID = null)
}, t.exports = s.Geolocation = a
}, function (t, e, i) {
"use strict";
function n() {
try {
return l in r && r[l]
} catch (t) {
return !1
}
}
var s, o = i(2), a = {}, r = window, l = "localStorage";
a.disabled = !1, a.version = "1.3.17", a.set = function (t, e) {
}, a.get = function (t, e) {
}, a.has = function (t) {
return void 0 !== a.get(t)
}, a.remove = function (t) {
}, a.clear = function () {
}, a.transact = function (t, e, i) {
null == i && (i = e, e = null), null == e && (e = {});
var n = a.get(t, e);
i(n), a.set(t, n)
}, a.getAll = function () {
}, a.forEach = function () {
}, a.serialize = function (t) {
return JSON.stringify(t)
}, a.deserialize = function (t) {
if ("string" == typeof t)try {
return JSON.parse(t)
} catch (e) {
return t || void 0
}
}, n() && (s = r[l], a.set = function (t, e) {
return void 0 === e ? a.remove(t) : (s.setItem(t, a.serialize(e)), e)
}, a.get = function (t, e) {
var i = a.deserialize(s.getItem(t));
return void 0 === i ? e : i
}, a.remove = function (t) {
s.removeItem(t)
}, a.clear = function () {
s.clear()
}, a.getAll = function () {
var t = {};
return a.forEach(function (e, i) {
t[e] = i
}), t
}, a.forEach = function (t) {
for (var e = 0; e < s.length; e++) {
var i = s.key(e);
t(i, a.get(i))
}
});
try {
var c = "__storeJs__";
a.set(c, c), a.get(c) != c && (a.disabled = !0), a.remove(c)
} catch (u) {
a.disabled = !0
}
a.enabled = !a.disabled, t.exports = o.store = a
}, function (t, e, i) {
"use strict";
function n() {
var t = s('[data-am-widget="accordion"]'), e = {
item: ".am-accordion-item",
title: ".am-accordion-title",
body: ".am-accordion-bd",
disabled: ".am-disabled"
};
t.each(function (t, i) {
var n = o.utils.parseOptions(s(i).attr("data-am-accordion")), a = s(i).find(e.title);
a.on("click.accordion.amui", function () {
var t = s(this).next(e.body), o = s(this).parent(e.item), a = t.data("amui.collapse");
o.is(e.disabled) || (o.toggleClass("am-active"), a ? t.collapse("toggle") : t.collapse(), !n.multiple && s(i).children(".am-active").not(o).not(e.disabled).removeClass("am-active").find(e.body + ".am-in").collapse("close"))
})
})
}
var s = i(1), o = i(2);
i(7), s(n), t.exports = o.accordion = {VERSION: "2.1.0", init: n}
}, function (t, e) {
"use strict";
t.exports = {VERSION: "2.0.1"}
}, function (t, e, i) {
"use strict";
function n() {
var t = s(".ds-thread"), e = t.parent('[data-am-widget="duoshuo"]').attr("data-ds-short-name"), i = ("https:" == document.location.protocol ? "https:" : "http:") + "//static.duoshuo.com/embed.js";
if (t.length && e && (window.duoshuoQuery = {short_name: e}, !s('script[src="' + i + '"]').length)) {
var n = s("