Skip to content

Instantly share code, notes, and snippets.

@draem
Created January 22, 2019 00:20
Show Gist options
  • Save draem/ce959681e8f5a37244f80ca514f94991 to your computer and use it in GitHub Desktop.
Save draem/ce959681e8f5a37244f80ca514f94991 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
var $jscomp = {
scope: {},
findInternal: function(d, c, e) {
d instanceof String && (d = String(d));
for (var m = d.length, h = 0; h < m; h++) {
var p = d[h];
if (c.call(e, p, h, d)) return {
i: h,
v: p
}
}
return {
i: -1,
v: void 0
}
}
};
$jscomp.defineProperty = "function" == typeof Object.defineProperties ? Object.defineProperty : function(d, c, e) {
if (e.get || e.set) throw new TypeError("ES3 does not support getters and setters.");
d != Array.prototype && d != Object.prototype && (d[c] = e.value)
};
$jscomp.getGlobal = function(d) {
return "undefined" != typeof window && window === d ? d : "undefined" != typeof global && null != global ? global : d
};
$jscomp.global = $jscomp.getGlobal(this);
$jscomp.polyfill = function(d, c, e, m) {
if (c) {
e = $jscomp.global;
d = d.split(".");
for (m = 0; m < d.length - 1; m++) {
var h = d[m];
h in e || (e[h] = {});
e = e[h]
}
d = d[d.length - 1];
m = e[d];
c = c(m);
c != m && null != c && $jscomp.defineProperty(e, d, {
configurable: !0,
writable: !0,
value: c
})
}
};
$jscomp.polyfill("Array.prototype.find", function(d) {
return d ? d : function(d, e) {
return $jscomp.findInternal(this, d, e).v
}
}, "es6-impl", "es3");
$jscomp.SYMBOL_PREFIX = "jscomp_symbol_";
$jscomp.initSymbol = function() {
$jscomp.initSymbol = function() {};
$jscomp.global.Symbol || ($jscomp.global.Symbol = $jscomp.Symbol)
};
$jscomp.symbolCounter_ = 0;
$jscomp.Symbol = function(d) {
return $jscomp.SYMBOL_PREFIX + (d || "") + $jscomp.symbolCounter_++
};
$jscomp.initSymbolIterator = function() {
$jscomp.initSymbol();
var d = $jscomp.global.Symbol.iterator;
d || (d = $jscomp.global.Symbol.iterator = $jscomp.global.Symbol("iterator"));
"function" != typeof Array.prototype[d] && $jscomp.defineProperty(Array.prototype, d, {
configurable: !0,
writable: !0,
value: function() {
return $jscomp.arrayIterator(this)
}
});
$jscomp.initSymbolIterator = function() {}
};
$jscomp.arrayIterator = function(d) {
var c = 0;
return $jscomp.iteratorPrototype(function() {
return c < d.length ? {
done: !1,
value: d[c++]
} : {
done: !0
}
})
};
$jscomp.iteratorPrototype = function(d) {
$jscomp.initSymbolIterator();
d = {
next: d
};
d[$jscomp.global.Symbol.iterator] = function() {
return this
};
return d
};
$jscomp.array = $jscomp.array || {};
$jscomp.iteratorFromArray = function(d, c) {
$jscomp.initSymbolIterator();
d instanceof String && (d += "");
var e = 0,
m = {
next: function() {
if (e < d.length) {
var h = e++;
return {
value: c(h, d[h]),
done: !1
}
}
m.next = function() {
return {
done: !0,
value: void 0
}
};
return m.next()
}
};
m[Symbol.iterator] = function() {
return m
};
return m
};
$jscomp.polyfill("Array.prototype.values", function(d) {
return d ? d : function() {
return $jscomp.iteratorFromArray(this, function(d, e) {
return e
})
}
}, "es6", "es3");
$jscomp.polyfill("Array.prototype.keys", function(d) {
return d ? d : function() {
return $jscomp.iteratorFromArray(this, function(d) {
return d
})
}
}, "es6-impl", "es3");
$jscomp.polyfill("Array.prototype.findIndex", function(d) {
return d ? d : function(d, e) {
return $jscomp.findInternal(this, d, e).i
}
}, "es6-impl", "es3");
$jscomp.polyfill("Array.prototype.fill", function(d) {
return d ? d : function(d, e, m) {
var c = this.length || 0;
0 > e && (e = Math.max(0, c + e));
if (null == m || m > c) m = c;
m = Number(m);
0 > m && (m = Math.max(0, c + m));
for (e = Number(e || 0); e < m; e++) this[e] = d;
return this
}
}, "es6-impl", "es3");
$jscomp.polyfill("Number.EPSILON", function(d) {
return Math.pow(2, -52)
}, "es6-impl", "es3");
$jscomp.checkStringArgs = function(d, c, e) {
if (null == d) throw new TypeError("The 'this' value for String.prototype." + e + " must not be null or undefined");
if (c instanceof RegExp) throw new TypeError("First argument to String.prototype." + e + " must not be a regular expression");
return d + ""
};
$jscomp.polyfill("String.prototype.repeat", function(d) {
return d ? d : function(d) {
var c = $jscomp.checkStringArgs(this, null, "repeat");
if (0 > d || 1342177279 < d) throw new RangeError("Invalid count value");
d |= 0;
for (var m = ""; d;)
if (d & 1 && (m += c), d >>>= 1) c += c;
return m
}
}, "es6-impl", "es3");
$jscomp.makeIterator = function(d) {
$jscomp.initSymbolIterator();
var c = d[Symbol.iterator];
return c ? c.call(d) : $jscomp.arrayIterator(d)
};
$jscomp.owns = function(d, c) {
return Object.prototype.hasOwnProperty.call(d, c)
};
$jscomp.polyfill("WeakMap", function(d) {
function c(d) {
$jscomp.owns(d, m) || $jscomp.defineProperty(d, m, {
value: {}
})
}
function e(d) {
var a = Object[d];
a && (Object[d] = function(d) {
c(d);
return a(d)
})
}
if (function() {
if (!d || !Object.seal) return !1;
try {
var c = Object.seal({}),
a = Object.seal({}),
f = new d([
[c, 2],
[a, 3]
]);
if (2 != f.get(c) || 3 != f.get(a)) return !1;
f["delete"](c);
f.set(a, 4);
return !f.has(c) && 4 == f.get(a)
} catch (k) {
return !1
}
}()) return d;
var m = "$jscomp_hidden_" + Math.random().toString().substring(2);
e("freeze");
e("preventExtensions");
e("seal");
var h = 0,
p = function(d) {
this.id_ = (h += Math.random() + 1).toString();
if (d) {
$jscomp.initSymbol();
$jscomp.initSymbolIterator();
d = $jscomp.makeIterator(d);
for (var a; !(a = d.next()).done;) a = a.value, this.set(a[0], a[1])
}
};
p.prototype.set = function(d, a) {
c(d);
if (!$jscomp.owns(d, m)) throw Error("WeakMap key fail: " + d);
d[m][this.id_] = a;
return this
};
p.prototype.get = function(d) {
return $jscomp.owns(d, m) ? d[m][this.id_] : void 0
};
p.prototype.has = function(d) {
return $jscomp.owns(d, m) && $jscomp.owns(d[m], this.id_)
};
p.prototype["delete"] = function(d) {
return $jscomp.owns(d, m) && $jscomp.owns(d[m], this.id_) ? delete d[m][this.id_] : !1
};
return p
}, "es6-impl", "es3");
$jscomp.ASSUME_NO_NATIVE_MAP = !1;
$jscomp.polyfill("Map", function(d) {
if (!$jscomp.ASSUME_NO_NATIVE_MAP && function() {
if (!d || !d.prototype.entries || "function" != typeof Object.seal) return !1;
try {
var a = Object.seal({
x: 4
}),
c = new d($jscomp.makeIterator([
[a, "s"]
]));
if ("s" != c.get(a) || 1 != c.size || c.get({
x: 4
}) || c.set({
x: 4
}, "t") != c || 2 != c.size) return !1;
var k = c.entries(),
n = k.next();
if (n.done || n.value[0] != a || "s" != n.value[1]) return !1;
n = k.next();
return n.done || 4 != n.value[0].x || "t" != n.value[1] || !k.next().done ? !1 : !0
} catch (t) {
return !1
}
}()) return d;
$jscomp.initSymbol();
$jscomp.initSymbolIterator();
var c = new WeakMap,
e = function(a) {
this.data_ = {};
this.head_ = p();
this.size = 0;
if (a) {
a = $jscomp.makeIterator(a);
for (var d; !(d = a.next()).done;) d = d.value, this.set(d[0], d[1])
}
};
e.prototype.set = function(a, d) {
var c = m(this, a);
c.list || (c.list = this.data_[c.id] = []);
c.entry ? c.entry.value = d : (c.entry = {
next: this.head_,
previous: this.head_.previous,
head: this.head_,
key: a,
value: d
}, c.list.push(c.entry), this.head_.previous.next = c.entry, this.head_.previous = c.entry, this.size++);
return this
};
e.prototype["delete"] = function(a) {
a = m(this, a);
return a.entry && a.list ? (a.list.splice(a.index, 1), a.list.length || delete this.data_[a.id], a.entry.previous.next = a.entry.next, a.entry.next.previous = a.entry.previous, a.entry.head = null, this.size--, !0) : !1
};
e.prototype.clear = function() {
this.data_ = {};
this.head_ = this.head_.previous = p();
this.size = 0
};
e.prototype.has = function(a) {
return !!m(this, a).entry
};
e.prototype.get = function(a) {
return (a = m(this, a).entry) && a.value
};
e.prototype.entries = function() {
return h(this, function(a) {
return [a.key, a.value]
})
};
e.prototype.keys = function() {
return h(this, function(a) {
return a.key
})
};
e.prototype.values = function() {
return h(this, function(a) {
return a.value
})
};
e.prototype.forEach = function(a, d) {
for (var c = this.entries(), f; !(f = c.next()).done;) f = f.value, a.call(d, f[1], f[0], this)
};
e.prototype[Symbol.iterator] = e.prototype.entries;
var m = function(a, d) {
var f;
f = d && typeof d;
"object" == f || "function" == f ? c.has(d) ? f = c.get(d) : (f = "" + ++q, c.set(d, f)) : f = "p_" + d;
var n = a.data_[f];
if (n && $jscomp.owns(a.data_, f))
for (var e = 0; e < n.length; e++) {
var h = n[e];
if (d !== d && h.key !== h.key || d === h.key) return {
id: f,
list: n,
index: e,
entry: h
}
}
return {
id: f,
list: n,
index: -1,
entry: void 0
}
},
h = function(a, d) {
var c = a.head_;
return $jscomp.iteratorPrototype(function() {
if (c) {
for (; c.head != a.head_;) c = c.previous;
for (; c.next != c.head;) return c = c.next, {
done: !1,
value: d(c)
};
c = null
}
return {
done: !0,
value: void 0
}
})
},
p = function() {
var a = {};
return a.previous = a.next = a.head = a
},
q = 0;
return e
}, "es6-impl", "es3");
! function(d, c) {
"object" == typeof module && "object" == typeof module.exports ? module.exports = d.document ? c(d, !0) : function(d) {
if (!d.document) throw Error("jQuery requires a window with a document");
return c(d)
} : c(d)
}("undefined" != typeof window ? window : this, function(d, c) {
function e(a) {
var d = a.length,
c = z.type(a);
return "function" === c || z.isWindow(a) ? !1 : 1 === a.nodeType && d ? !0 : "array" === c || 0 === d || "number" == typeof d && 0 < d && d - 1 in a
}
function m(a, d, c) {
if (z.isFunction(d)) return z.grep(a, function(a, f) {
return !!d.call(a, f, a) !== c
});
if (d.nodeType) return z.grep(a, function(a) {
return a === d !== c
});
if ("string" == typeof d) {
if (Ib.test(d)) return z.filter(d, a, c);
d = z.filter(d, a)
}
return z.grep(a, function(a) {
return 0 <= z.inArray(a, d) !== c
})
}
function h(a, d) {
do {
a = a[d]
} while (a && 1 !== a.nodeType);
return a
}
function p(a) {
var d = Sa[a] = {};
return z.each(a.match(Ha) || [], function(a, c) {
d[c] = !0
}), d
}
function q() {
X.addEventListener ? (X.removeEventListener("DOMContentLoaded", a, !1), d.removeEventListener("load", a, !1)) : (X.detachEvent("onreadystatechange", a), d.detachEvent("onload", a))
}
function a() {
(X.addEventListener || "load" === event.type || "complete" === X.readyState) && (q(), z.ready())
}
function f(a, d, c) {
if (void 0 === c && 1 === a.nodeType) {
var f = "data-" + d.replace(yb, "-$1").toLowerCase();
if (c = a.getAttribute(f), "string" == typeof c) {
try {
c = "true" === c ? !0 : "false" === c ? !1 : "null" === c ? null : +c + "" === c ? +c : ab.test(c) ? z.parseJSON(c) : c
} catch (yc) {}
z.data(a, d, c)
} else c = void 0
}
return c
}
function k(a) {
for (var d in a)
if (("data" !== d || !z.isEmptyObject(a[d])) && "toJSON" !== d) return !1;
return !0
}
function n(a, d, c, f) {
if (z.acceptData(a)) {
var k, n, e = z.expando,
v = a.nodeType,
t = v ? z.cache : a,
h = v ? a[e] : a[e] && e;
if (h && t[h] && (f || t[h].data) || void 0 !== c || "string" != typeof d) return h || (h = v ? a[e] = ta.pop() || z.guid++ : e), t[h] || (t[h] = v ? {} : {
toJSON: z.noop
}), ("object" == typeof d || "function" == typeof d) && (f ? t[h] = z.extend(t[h], d) : t[h].data = z.extend(t[h].data, d)), n = t[h], f || (n.data || (n.data = {}), n = n.data), void 0 !== c && (n[z.camelCase(d)] = c), "string" == typeof d ? (k = n[d], null == k && (k = n[z.camelCase(d)])) : k = n, k
}
}
function t(a, d, c) {
if (z.acceptData(a)) {
var f, n, e = a.nodeType,
v = e ? z.cache : a,
t = e ? a[z.expando] : z.expando;
if (v[t]) {
if (d && (f = c ? v[t] : v[t].data)) {
z.isArray(d) ? d = d.concat(z.map(d, z.camelCase)) : d in f ? d = [d] : (d = z.camelCase(d), d = d in f ? [d] : d.split(" "));
for (n = d.length; n--;) delete f[d[n]];
if (c ? !k(f) : !z.isEmptyObject(f)) return
}(c || (delete v[t].data, k(v[t]))) && (e ? z.cleanData([a], !0) : P.deleteExpando || v != v.window ? delete v[t] : v[t] = null)
}
}
}
function w() {
return !0
}
function u() {
return !1
}
function C() {
try {
return X.activeElement
} catch (nb) {}
}
function A(a) {
var d = cc.split("|");
a = a.createDocumentFragment();
if (a.createElement)
for (; d.length;) a.createElement(d.pop());
return a
}
function v(a, d) {
var c, f, k = 0,
n = "undefined" !== typeof a.getElementsByTagName ? a.getElementsByTagName(d || "*") : "undefined" !== typeof a.querySelectorAll ? a.querySelectorAll(d || "*") : void 0;
if (!n)
for (n = [], c = a.childNodes || a; null != (f = c[k]); k++) !d || z.nodeName(f, d) ? n.push(f) : z.merge(n, v(f, d));
return void 0 === d || d && z.nodeName(a, d) ? z.merge([a], n) : n
}
function B(a) {
Jb.test(a.type) && (a.defaultChecked = a.checked)
}
function D(a, d) {
return z.nodeName(a, "table") && z.nodeName(11 !== d.nodeType ? d : d.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a
}
function E(a) {
return a.type = (null !== z.find.attr(a, "type")) + "/" + a.type, a
}
function F(a) {
var d = Pb.exec(a.type);
return d ? a.type = d[1] : a.removeAttribute("type"), a
}
function G(a, d) {
for (var c, f = 0; null != (c = a[f]); f++) z._data(c, "globalEval", !d || z._data(d[f], "globalEval"))
}
function J(a, d) {
if (1 === d.nodeType && z.hasData(a)) {
var c, f, k;
f = z._data(a);
var n = z._data(d, f),
e = f.events;
if (e)
for (c in delete n.handle, n.events = {}, e)
for (f = 0, k = e[c].length; k > f; f++) z.event.add(d, c, e[c][f]);
n.data && (n.data = z.extend({}, n.data))
}
}
function I(a, c) {
var f, k = z(c.createElement(a)).appendTo(c.body),
n = d.getDefaultComputedStyle && (f = d.getDefaultComputedStyle(k[0])) ? f.display : z.css(k[0], "display");
return k.detach(), n
}
function K(a) {
var d = X,
c = ga[a];
return c || (c = I(a, d), "none" !== c && c || (ra = (ra || z("<iframe frameborder='0' width='0' height='0'/>")).appendTo(d.documentElement), d = (ra[0].contentWindow || ra[0].contentDocument).document, d.write(), d.close(), c = I(a, d), ra.detach()), ga[a] = c), c
}
function M(a, d) {
return {
get: function() {
var c = a();
if (null != c) return c ? void delete this.get : (this.get = d).apply(this, arguments)
}
}
}
function L(a, d) {
if (d in a) return d;
for (var c = d.charAt(0).toUpperCase() + d.slice(1), f = d, k = dc.length; k--;)
if (d = dc[k] + c, d in a) return d;
return f
}
function U(a, d) {
for (var c, f, k, n = [], e = 0, v = a.length; v > e; e++) f = a[e], f.style && (n[e] = z._data(f, "olddisplay"), c = f.style.display, d ? (n[e] || "none" !== c || (f.style.display = ""), "" === f.style.display && va(f) && (n[e] = z._data(f, "olddisplay", K(f.nodeName)))) : (k = va(f), (c && "none" !== c || !k) && z._data(f, "olddisplay", k ? c : z.css(f, "display"))));
for (e = 0; v > e; e++) f = a[e], f.style && (d && "none" !== f.style.display && "" !== f.style.display || (f.style.display = d ? n[e] || "" : "none"));
return a
}
function Q(a, d, c) {
return (a = sb.exec(d)) ? Math.max(0, a[1] - (c || 0)) + (a[2] || "px") : d
}
function H(a, d, c, f, k) {
d = c === (f ? "border" : "content") ? 4 : "width" === d ? 1 : 0;
for (var n = 0; 4 > d; d += 2) "margin" === c && (n += z.css(a, c + ia[d], !0, k)), f ? ("content" === c && (n -= z.css(a, "padding" + ia[d], !0, k)), "margin" !== c && (n -= z.css(a, "border" + ia[d] + "Width", !0, k))) : (n += z.css(a, "padding" + ia[d], !0, k), "padding" !== c && (n += z.css(a, "border" + ia[d] + "Width", !0, k)));
return n
}
function O(a, d, c) {
var f = !0,
k = "width" === d ? a.offsetWidth : a.offsetHeight,
n = tb(a),
e = P.boxSizing && "border-box" === z.css(a, "boxSizing", !1, n);
if (0 >= k || null == k) {
if (k = zb(a, d, n), (0 > k || null == k) && (k = a.style[d]), la.test(k)) return k;
f = e && (P.boxSizingReliable() || k === a.style[d]);
k = parseFloat(k) || 0
}
return k + H(a, d, c || (e ? "border" : "content"), f, n) + "px"
}
function W(a, d, c, f, k) {
return new W.prototype.init(a, d, c, f, k)
}
function ca() {
return setTimeout(function() {
Qa = void 0
}), Qa = z.now()
}
function ha(a, d) {
var c, f = {
height: a
},
k = 0;
for (d = d ? 1 : 0; 4 > k; k += 2 - d) c = ia[k], f["margin" + c] = f["padding" + c] = a;
return d && (f.opacity = f.width = a), f
}
function Y(a, d, c) {
for (var f, k = (bb[d] || []).concat(bb["*"]), n = 0, e = k.length; e > n; n++)
if (f = k[n].call(c, d, a)) return f
}
function Z(a, d) {
var c, f, k, n, e;
for (c in a)
if (f = z.camelCase(c), k = d[f], n = a[c], z.isArray(n) && (k = n[1], n = a[c] = n[0]), c !== f && (a[f] = n, delete a[c]), e = z.cssHooks[f], e && "expand" in e)
for (c in n = e.expand(n), delete a[f], n) c in a || (a[c] = n[c], d[c] = k);
else d[f] = k
}
function R(a, d, c) {
var f, k = 0,
n = Ka.length,
e = z.Deferred().always(function() {
delete v.elem
}),
v = function() {
if (f) return !1;
for (var d = Qa || ca(), d = Math.max(0, t.startTime + t.duration - d), c = 1 - (d / t.duration || 0), k = 0, n = t.tweens.length; n > k; k++) t.tweens[k].run(c);
return e.notifyWith(a, [t, c, d]), 1 > c && n ? d : (e.resolveWith(a, [t]), !1)
},
t = e.promise({
elem: a,
props: z.extend({}, d),
opts: z.extend(!0, {
specialEasing: {}
}, c),
originalProperties: d,
originalOptions: c,
startTime: Qa || ca(),
duration: c.duration,
tweens: [],
createTween: function(d, c) {
var f = z.Tween(a, t.opts, d, c, t.opts.specialEasing[d] || t.opts.easing);
return t.tweens.push(f), f
},
stop: function(d) {
var c = 0,
k = d ? t.tweens.length : 0;
if (f) return this;
for (f = !0; k > c; c++) t.tweens[c].run(1);
return d ? e.resolveWith(a, [t, d]) : e.rejectWith(a, [t, d]), this
}
});
c = t.props;
for (Z(c, t.opts.specialEasing); n > k; k++)
if (d = Ka[k].call(t, a, c, t.opts)) return d;
return z.map(c, Y, t), z.isFunction(t.opts.start) && t.opts.start.call(a, t), z.fx.timer(z.extend(v, {
elem: a,
anim: t,
queue: t.opts.queue
})), t.progress(t.opts.progress).done(t.opts.done, t.opts.complete).fail(t.opts.fail).always(t.opts.always)
}
function aa(a) {
return function(d, c) {
"string" != typeof d && (c = d, d = "*");
var f, k = 0,
n = d.toLowerCase().match(Ha) || [];
if (z.isFunction(c))
for (; f = n[k++];) "+" === f.charAt(0) ? (f = f.slice(1) || "*", (a[f] = a[f] || []).unshift(c)) : (a[f] = a[f] || []).push(c)
}
}
function da(a, d, c, f) {
function k(v) {
var t;
return n[v] = !0, z.each(a[v] || [], function(a, v) {
var h = v(d, c, f);
return "string" != typeof h || e || n[h] ? e ? !(t = h) : void 0 : (d.dataTypes.unshift(h), k(h), !1)
}), t
}
var n = {},
e = a === cb;
return k(d.dataTypes[0]) || !n["*"] && k("*")
}
function ua(a, d) {
var c, f, k = z.ajaxSettings.flatOptions || {};
for (f in d) void 0 !== d[f] && ((k[f] ? a : c || (c = {}))[f] = d[f]);
return c && z.extend(!0, a, c), a
}
function Da(a, d, c, f) {
var k;
if (z.isArray(d)) z.each(d, function(d, k) {
c || N.test(a) ? f(a, k) : Da(a + "[" + ("object" == typeof k ? d : "") + "]", k, c, f)
});
else if (c || "object" !== z.type(d)) f(a, d);
else
for (k in d) Da(a + "[" + k + "]", d[k], c, f)
}
function S() {
try {
return new d.XMLHttpRequest
} catch (nb) {}
}
function wa(a) {
return z.isWindow(a) ? a : 9 === a.nodeType ? a.defaultView || a.parentWindow : !1
}
var ta = [],
na = ta.slice,
ea = ta.concat,
Ea = ta.push,
ja = ta.indexOf,
hb = {},
ob = hb.toString,
xa = hb.hasOwnProperty,
P = {},
z = function(a, d) {
return new z.fn.init(a, d)
},
Db = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
Eb = /^-ms-/,
Qb = /-([\da-z])/gi,
Ia = function(a, d) {
return d.toUpperCase()
};
z.fn = z.prototype = {
jquery: "1.11.2",
constructor: z,
selector: "",
length: 0,
toArray: function() {
return na.call(this)
},
get: function(a) {
return null != a ? 0 > a ? this[a + this.length] : this[a] : na.call(this)
},
pushStack: function(a) {
a = z.merge(this.constructor(), a);
return a.prevObject = this, a.context = this.context, a
},
each: function(a, d) {
return z.each(this, a, d)
},
map: function(a) {
return this.pushStack(z.map(this, function(d, c) {
return a.call(d, c, d)
}))
},
slice: function() {
return this.pushStack(na.apply(this, arguments))
},
first: function() {
return this.eq(0)
},
last: function() {
return this.eq(-1)
},
eq: function(a) {
var d = this.length;
a = +a + (0 > a ? d : 0);
return this.pushStack(0 <= a && d > a ? [this[a]] : [])
},
end: function() {
return this.prevObject || this.constructor(null)
},
push: Ea,
sort: ta.sort,
splice: ta.splice
};
z.extend = z.fn.extend = function() {
var a, d, c, f, k, n, e = arguments[0] || {},
v = 1,
t = arguments.length,
h = !1;
"boolean" == typeof e && (h = e, e = arguments[v] || {}, v++);
"object" == typeof e || z.isFunction(e) || (e = {});
for (v === t && (e = this, v--); t > v; v++)
if (null != (k = arguments[v]))
for (f in k) a = e[f], c = k[f], e !== c && (h && c && (z.isPlainObject(c) || (d = z.isArray(c))) ? (d ? (d = !1, n = a && z.isArray(a) ? a : []) : n = a && z.isPlainObject(a) ? a : {}, e[f] = z.extend(h, n, c)) : void 0 !== c && (e[f] = c));
return e
};
z.extend({
expando: "jQuery" + ("1.11.2" + Math.random()).replace(/\D/g, ""),
isReady: !0,
error: function(a) {
throw Error(a)
},
noop: function() {},
isFunction: function(a) {
return "function" === z.type(a)
},
isArray: Array.isArray || function(a) {
return "array" === z.type(a)
},
isWindow: function(a) {
return null != a && a == a.window
},
isNumeric: function(a) {
return !z.isArray(a) && 0 <= a - parseFloat(a) + 1
},
isEmptyObject: function(a) {
for (var d in a) return !1;
return !0
},
isPlainObject: function(a) {
var d;
if (!a || "object" !== z.type(a) || a.nodeType || z.isWindow(a)) return !1;
try {
if (a.constructor && !xa.call(a, "constructor") && !xa.call(a.constructor.prototype, "isPrototypeOf")) return !1
} catch (xc) {
return !1
}
if (P.ownLast)
for (d in a) return xa.call(a, d);
for (d in a);
return void 0 === d || xa.call(a, d)
},
type: function(a) {
return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? hb[ob.call(a)] || "object" : typeof a
},
globalEval: function(a) {
a && z.trim(a) && (d.execScript || function(a) {
d.eval.call(d, a)
})(a)
},
camelCase: function(a) {
return a.replace(Eb, "ms-").replace(Qb, Ia)
},
nodeName: function(a, d) {
return a.nodeName && a.nodeName.toLowerCase() === d.toLowerCase()
},
each: function(a, d, c) {
var f, k = 0,
n = a.length,
v = e(a);
if (c)
if (v)
for (; n > k && (f = d.apply(a[k], c), !1 !== f); k++);
else
for (k in a) {
if (f = d.apply(a[k], c), !1 === f) break
} else if (v)
for (; n > k && (f = d.call(a[k], k, a[k]), !1 !== f); k++);
else
for (k in a)
if (f = d.call(a[k], k, a[k]), !1 === f) break;
return a
},
trim: function(a) {
return null == a ? "" : (a + "").replace(Db, "")
},
makeArray: function(a, d) {
var c = d || [];
return null != a && (e(Object(a)) ? z.merge(c, "string" == typeof a ? [a] : a) : Ea.call(c, a)), c
},
inArray: function(a, d, c) {
var f;
if (d) {
if (ja) return ja.call(d, a, c);
f = d.length;
for (c = c ? 0 > c ? Math.max(0, f + c) : c : 0; f > c; c++)
if (c in d && d[c] === a) return c
}
return -1
},
merge: function(a, d) {
for (var c = +d.length, f = 0, k = a.length; c > f;) a[k++] = d[f++];
if (c !== c)
for (; void 0 !== d[f];) a[k++] = d[f++];
return a.length = k, a
},
grep: function(a, d, c) {
for (var f = [], k = 0, n = a.length, e = !c; n > k; k++) c = !d(a[k], k), c !== e && f.push(a[k]);
return f
},
map: function(a, d, c) {
var f, k = 0,
n = a.length,
v = [];
if (e(a))
for (; n > k; k++) f = d(a[k], k, c), null != f && v.push(f);
else
for (k in a) f = d(a[k], k, c), null != f && v.push(f);
return ea.apply([], v)
},
guid: 1,
proxy: function(a, d) {
var c, f, k;
return "string" == typeof d && (k = a[d], d = a, a = k), z.isFunction(a) ? (c = na.call(arguments, 2), f = function() {
return a.apply(d || this, c.concat(na.call(arguments)))
}, f.guid = a.guid = a.guid || z.guid++, f) : void 0
},
now: function() {
return +new Date
},
support: P
});
z.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(a, d) {
hb["[object " + d + "]"] = d.toLowerCase()
});
var za = function(a) {
function d(a, d, c, f) {
var k, n, e, v, t;
if ((d ? d.ownerDocument || d : Fa) !== H && Ra(d), d = d || H, c = c || [], v = d.nodeType, "string" != typeof a || !a || 1 !== v && 9 !== v && 11 !== v) return c;
if (!f && Ya) {
if (11 !== v && (k = ua.exec(a)))
if (e = k[1])
if (9 === v) {
if (n = d.getElementById(e), !n || !n.parentNode) return c;
if (n.id === e) return c.push(n), c
} else {
if (d.ownerDocument && (n = d.ownerDocument.getElementById(e)) && W(d, n) && n.id === e) return c.push(n), c
} else {
if (k[2]) return Y.apply(c, d.getElementsByTagName(a)), c;
if ((e = k[3]) && F.getElementsByClassName) return Y.apply(c, d.getElementsByClassName(e)), c
}
if (F.qsa && (!Xa || !Xa.test(a))) {
if (n = k = oa, e = d, t = 1 !== v && a, 1 === v && "object" !== d.nodeName.toLowerCase()) {
v = Ca(a);
(k = d.getAttribute("id")) ? n = k.replace(Da, "\\$&"): d.setAttribute("id", n);
n = "[id='" + n + "'] ";
for (e = v.length; e--;) v[e] = n + u(v[e]);
e = pb.test(a) && m(d.parentNode) || d;
t = v.join(",")
}
if (t) try {
return Y.apply(c, e.querySelectorAll(t)), c
} catch (bd) {} finally {
k || d.removeAttribute("id")
}
}
}
return z(a.replace(ia, "$1"), d, c, f)
}
function c() {
function a(c, f) {
return d.push(c + " ") > N.cacheLength && delete a[d.shift()], a[c + " "] = f
}
var d = [];
return a
}
function f(a) {
return a[oa] = !0, a
}
function k(a) {
var d = H.createElement("div");
try {
return !!a(d)
} catch ($c) {
return !1
} finally {
d.parentNode && d.parentNode.removeChild(d)
}
}
function n(a, d) {
for (var c = a.split("|"), f = a.length; f--;) N.attrHandle[c[f]] = d
}
function e(a, d) {
var c = d && a,
f = c && 1 === a.nodeType && 1 === d.nodeType && (~d.sourceIndex || -2147483648) - (~a.sourceIndex || -2147483648);
if (f) return f;
if (c)
for (; c = c.nextSibling;)
if (c === d) return -1;
return a ? 1 : -1
}
function v(a) {
return function(d) {
return "input" === d.nodeName.toLowerCase() && d.type === a
}
}
function t(a) {
return function(d) {
var c = d.nodeName.toLowerCase();
return ("input" === c || "button" === c) && d.type === a
}
}
function h(a) {
return f(function(d) {
return d = +d, f(function(c, f) {
for (var k, n = a([], c.length, d), e = n.length; e--;) c[k = n[e]] && (c[k] = !(f[k] = c[k]))
})
})
}
function m(a) {
return a && "undefined" != typeof a.getElementsByTagName && a
}
function w() {}
function u(a) {
for (var d = 0, c = a.length, f = ""; c > d; d++) f += a[d].value;
return f
}
function B(a, d, c) {
var f = d.dir,
k = c && "parentNode" === f,
n = L++;
return d.first ? function(d, c, n) {
for (; d = d[f];)
if (1 === d.nodeType || k) return a(d, c, n)
} : function(d, c, e) {
var v, t, h = [Kb, n];
if (e)
for (; d = d[f];) {
if ((1 === d.nodeType || k) && a(d, c, e)) return !0
} else
for (; d = d[f];)
if (1 === d.nodeType || k) {
if (t = d[oa] || (d[oa] = {}), (v = t[f]) && v[0] === Kb && v[1] === n) return h[2] = v[2];
if (t[f] = h, h[2] = a(d, c, e)) return !0
}
}
}
function q(a) {
return 1 < a.length ? function(d, c, f) {
for (var k = a.length; k--;)
if (!a[k](d, c, f)) return !1;
return !0
} : a[0]
}
function p(a, d, c, f, k) {
for (var n, e = [], v = 0, t = a.length, h = null != d; t > v; v++)(n = a[v]) && (!c || c(n, f, k)) && (e.push(n), h && d.push(v));
return e
}
function D(a, c, k, n, e, v) {
return n && !n[oa] && (n = D(n)), e && !e[oa] && (e = D(e, v)), f(function(f, v, t, h) {
var m, w, u = [],
B = [],
q = v.length,
D;
if (!(D = f)) {
D = c || "*";
for (var C = t.nodeType ? [t] : t, E = [], A = 0, F = C.length; F > A; A++) d(D, C[A], E);
D = E
}
D = !a || !f && c ? D : p(D, u, a, t, h);
C = k ? e || (f ? a : q || n) ? [] : v : D;
if (k && k(D, C, t, h), n)
for (m = p(C, B), n(m, [], t, h), t = m.length; t--;)(w = m[t]) && (C[B[t]] = !(D[B[t]] = w));
if (f) {
if (e || a) {
if (e) {
m = [];
for (t = C.length; t--;)(w = C[t]) && m.push(D[t] = w);
e(null, C = [], m, h)
}
for (t = C.length; t--;)(w = C[t]) && -1 < (m = e ? Hb(f, w) : u[t]) && (f[m] = !(v[m] = w))
}
} else C = p(C === v ? C.splice(q, C.length) : C), e ? e(null, v, C, h) : Y.apply(v, C)
})
}
function C(a) {
var d, c, f, k = a.length,
n = N.relative[a[0].type];
c = n || N.relative[" "];
for (var e = n ? 1 : 0, v = B(function(a) {
return a === d
}, c, !0), t = B(function(a) {
return -1 < Hb(d, a)
}, c, !0), h = [function(a, c, f) {
a = !n && (f || c !== J) || ((d = c).nodeType ? v(a, c, f) : t(a, c, f));
return d = null, a
}]; k > e; e++)
if (c = N.relative[a[e].type]) h = [B(q(h), c)];
else {
if (c = N.filter[a[e].type].apply(null, a[e].matches), c[oa]) {
for (f = ++e; k > f && !N.relative[a[f].type]; f++);
return D(1 < e && q(h), 1 < e && u(a.slice(0, e - 1).concat({
value: " " === a[e - 2].type ? "*" : ""
})).replace(ia, "$1"), c, f > e && C(a.slice(e, f)), k > f && C(a = a.slice(f)), k > f && u(a))
}
h.push(c)
}
return q(h)
}
function E(a, c) {
var k = 0 < c.length,
n = 0 < a.length,
e = function(f, e, v, t, h) {
var m, w, u, B = 0,
q = "0",
D = f && [],
C = [],
E = J,
A = f || n && N.find.TAG("*", h),
F = Kb += null == E ? 1 : Math.random() || .1,
nb = A.length;
for (h && (J = e !== H && e); q !== nb && null != (m = A[q]); q++) {
if (n && m) {
for (w = 0; u = a[w++];)
if (u(m, e, v)) {
t.push(m);
break
}
h && (Kb = F)
}
k && ((m = !u && m) && B--, f && D.push(m))
}
if (B += q, k && q !== B) {
for (w = 0; u = c[w++];) u(D, C, e, v);
if (f) {
if (0 < B)
for (; q--;) D[q] || C[q] || (C[q] = ha.call(t));
C = p(C)
}
Y.apply(t, C);
h && !f && 0 < C.length && 1 < B + c.length && d.uniqueSort(t)
}
return h && (Kb = F, J = E), D
};
return k ? f(e) : e
}
var A, F, N, nb, G, Ca, K, z, J, fa, I, Ra, H, O, Ya, Xa, M, Ob, W, oa = "sizzle" + 1 * new Date,
Fa = a.document,
Kb = 0,
L = 0,
pc = c(),
sa = c(),
ca = c(),
U = function(a, d) {
return a === d && (I = !0), 0
},
Q = {}.hasOwnProperty,
va = [],
ha = va.pop,
Zb = va.push,
Y = va.push,
S = va.slice,
Hb = function(a, d) {
for (var c = 0, f = a.length; f > c; c++)
if (a[c] === d) return c;
return -1
},
R = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+".replace("w", "w#"),
Z = "\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[\\w-]|[^\\x00-\\xa0])+)(?:[\\x20\\t\\r\\n\\f]*([*^$|!~]?=)[\\x20\\t\\r\\n\\f]*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + R + "))|)[\\x20\\t\\r\\n\\f]*\\]",
aa = ":((?:\\\\.|[\\w-]|[^\\x00-\\xa0])+)(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + Z + ")*)|.*)\\)|)",
ta = RegExp("[\\x20\\t\\r\\n\\f]+", "g"),
ia = RegExp("^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$", "g"),
da = /^[\x20\t\r\n\f]*,[\x20\t\r\n\f]*/,
vb = /^[\x20\t\r\n\f]*([>+~]|[\x20\t\r\n\f])[\x20\t\r\n\f]*/,
sc = RegExp("=[\\x20\\t\\r\\n\\f]*([^\\]'\"]*?)[\\x20\\t\\r\\n\\f]*\\]", "g"),
ma = new RegExp(aa),
vc = new RegExp("^" + R + "$"),
Ab = {
ID: /^#((?:\\.|[\w-]|[^\x00-\xa0])+)/,
CLASS: /^\.((?:\\.|[\w-]|[^\x00-\xa0])+)/,
TAG: new RegExp("^(" + "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+".replace("w", "w*") + ")"),
ATTR: new RegExp("^" + Z),
PSEUDO: new RegExp("^" + aa),
CHILD: /^:(only|first|last|nth|nth-last)-(child|of-type)(?:\([\x20\t\r\n\f]*(even|odd|(([+-]|)(\d*)n|)[\x20\t\r\n\f]*(?:([+-]|)[\x20\t\r\n\f]*(\d+)|))[\x20\t\r\n\f]*\)|)/i,
bool: /^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$/i,
needsContext: /^[\x20\t\r\n\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\([\x20\t\r\n\f]*((?:-\d)?\d*)[\x20\t\r\n\f]*\)|)(?=[^-]|$)/i
},
Jb = /^(?:input|select|textarea|button)$/i,
Lb = /^h\d$/i,
P = /^[^{]+\{\s*\[native \w/,
ua = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
pb = /[+~]/,
Da = /'|\\/g,
Va = RegExp("\\\\([\\da-f]{1,6}[\\x20\\t\\r\\n\\f]?|([\\x20\\t\\r\\n\\f])|.)", "ig"),
T = function(a, d, c) {
a = "0x" + d - 65536;
return a !== a || c ? d : 0 > a ? String.fromCharCode(a + 65536) : String.fromCharCode(a >> 10 | 55296, 1023 & a | 56320)
},
Bb = function() {
Ra()
};
try {
Y.apply(va = S.call(Fa.childNodes), Fa.childNodes), va[Fa.childNodes.length].nodeType
} catch (Zc) {
Y = {
apply: va.length ? function(a, d) {
Zb.apply(a, S.call(d))
} : function(a, d) {
for (var c = a.length, f = 0; a[c++] = d[f++];);
a.length = c - 1
}
}
}
F = d.support = {};
G = d.isXML = function(a) {
return (a = a && (a.ownerDocument || a).documentElement) ? "HTML" !== a.nodeName : !1
};
Ra = d.setDocument = function(a) {
var d, c, f = a ? a.ownerDocument || a : Fa;
return f !== H && 9 === f.nodeType && f.documentElement ? (H = f, O = f.documentElement, c = f.defaultView, c && c !== c.top && (c.addEventListener ? c.addEventListener("unload", Bb, !1) : c.attachEvent && c.attachEvent("onunload", Bb)), Ya = !G(f), F.attributes = k(function(a) {
return a.className = "i", !a.getAttribute("className")
}), F.getElementsByTagName = k(function(a) {
return a.appendChild(f.createComment("")), !a.getElementsByTagName("*").length
}), F.getElementsByClassName = P.test(f.getElementsByClassName), F.getById = k(function(a) {
return O.appendChild(a).id = oa, !f.getElementsByName || !f.getElementsByName(oa).length
}), F.getById ? (N.find.ID = function(a, d) {
if ("undefined" != typeof d.getElementById && Ya) {
var c = d.getElementById(a);
return c && c.parentNode ? [c] : []
}
}, N.filter.ID = function(a) {
var d = a.replace(Va, T);
return function(a) {
return a.getAttribute("id") === d
}
}) : (delete N.find.ID, N.filter.ID = function(a) {
var d = a.replace(Va, T);
return function(a) {
return (a = "undefined" != typeof a.getAttributeNode && a.getAttributeNode("id")) && a.value === d
}
}), N.find.TAG = F.getElementsByTagName ? function(a, d) {
return "undefined" != typeof d.getElementsByTagName ? d.getElementsByTagName(a) : F.qsa ? d.querySelectorAll(a) : void 0
} : function(a, d) {
var c, f = [],
k = 0,
n = d.getElementsByTagName(a);
if ("*" === a) {
for (; c = n[k++];) 1 === c.nodeType && f.push(c);
return f
}
return n
}, N.find.CLASS = F.getElementsByClassName && function(a, d) {
return Ya ? d.getElementsByClassName(a) : void 0
}, M = [], Xa = [], (F.qsa = P.test(f.querySelectorAll)) && (k(function(a) {
O.appendChild(a).innerHTML = "<a id='" + oa + "'></a><select id='" + oa + "-\f]' msallowcapture=''><option selected=''></option></select>";
a.querySelectorAll("[msallowcapture^='']").length && Xa.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")");
a.querySelectorAll("[selected]").length || Xa.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)");
a.querySelectorAll("[id~=" + oa + "-]").length || Xa.push("~=");
a.querySelectorAll(":checked").length || Xa.push(":checked");
a.querySelectorAll("a#" + oa + "+*").length || Xa.push(".#.+[+~]")
}), k(function(a) {
var d = f.createElement("input");
d.setAttribute("type", "hidden");
a.appendChild(d).setAttribute("name", "D");
a.querySelectorAll("[name=d]").length && Xa.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?=");
a.querySelectorAll(":enabled").length || Xa.push(":enabled", ":disabled");
a.querySelectorAll("*,:x");
Xa.push(",.*:")
})), (F.matchesSelector = P.test(Ob = O.matches || O.webkitMatchesSelector || O.mozMatchesSelector || O.oMatchesSelector || O.msMatchesSelector)) && k(function(a) {
F.disconnectedMatch = Ob.call(a, "div");
Ob.call(a, "[s!='']:x");
M.push("!=", aa)
}), Xa = Xa.length && new RegExp(Xa.join("|")), M = M.length && new RegExp(M.join("|")), d = P.test(O.compareDocumentPosition), W = d || P.test(O.contains) ? function(a, d) {
var c = 9 === a.nodeType ? a.documentElement : a,
f = d && d.parentNode;
return a === f || !(!f || 1 !== f.nodeType || !(c.contains ? c.contains(f) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(f)))
} : function(a, d) {
if (d)
for (; d = d.parentNode;)
if (d === a) return !0;
return !1
}, U = d ? function(a, d) {
if (a === d) return I = !0, 0;
var c = !a.compareDocumentPosition - !d.compareDocumentPosition;
return c ? c : (c = (a.ownerDocument || a) === (d.ownerDocument || d) ? a.compareDocumentPosition(d) : 1, 1 & c || !F.sortDetached && d.compareDocumentPosition(a) === c ? a === f || a.ownerDocument === Fa && W(Fa, a) ? -1 : d === f || d.ownerDocument === Fa && W(Fa, d) ? 1 : fa ? Hb(fa, a) - Hb(fa, d) : 0 : 4 & c ? -1 : 1)
} : function(a, d) {
if (a === d) return I = !0, 0;
var c, k = 0;
c = a.parentNode;
var n = d.parentNode,
v = [a],
t = [d];
if (!c || !n) return a === f ? -1 : d === f ? 1 : c ? -1 : n ? 1 : fa ? Hb(fa, a) - Hb(fa, d) : 0;
if (c === n) return e(a, d);
for (c = a; c = c.parentNode;) v.unshift(c);
for (c = d; c = c.parentNode;) t.unshift(c);
for (; v[k] === t[k];) k++;
return k ? e(v[k], t[k]) : v[k] === Fa ? -1 : t[k] === Fa ? 1 : 0
}, f) : H
};
d.matches = function(a, c) {
return d(a, null, null, c)
};
d.matchesSelector = function(a, c) {
if ((a.ownerDocument || a) !== H && Ra(a), c = c.replace(sc, "='$1']"), !(!F.matchesSelector || !Ya || M && M.test(c) || Xa && Xa.test(c))) try {
var f = Ob.call(a, c);
if (f || F.disconnectedMatch || a.document && 11 !== a.document.nodeType) return f
} catch (ad) {}
return 0 < d(c, H, null, [a]).length
};
d.contains = function(a, d) {
return (a.ownerDocument || a) !== H && Ra(a), W(a, d)
};
d.attr = function(a, d) {
(a.ownerDocument || a) !== H && Ra(a);
var c = N.attrHandle[d.toLowerCase()],
c = c && Q.call(N.attrHandle, d.toLowerCase()) ? c(a, d, !Ya) : void 0;
return void 0 !== c ? c : F.attributes || !Ya ? a.getAttribute(d) : (c = a.getAttributeNode(d)) && c.specified ? c.value : null
};
d.error = function(a) {
throw Error("Syntax error, unrecognized expression: " + a)
};
d.uniqueSort = function(a) {
var d, c = [],
f = 0,
k = 0;
if (I = !F.detectDuplicates, fa = !F.sortStable && a.slice(0), a.sort(U), I) {
for (; d = a[k++];) d === a[k] && (f = c.push(k));
for (; f--;) a.splice(c[f], 1)
}
return fa = null, a
};
nb = d.getText = function(a) {
var d, c = "",
f = 0;
if (d = a.nodeType)
if (1 === d || 9 === d || 11 === d) {
if ("string" == typeof a.textContent) return a.textContent;
for (a = a.firstChild; a; a = a.nextSibling) c += nb(a)
} else {
if (3 === d || 4 === d) return a.nodeValue
} else
for (; d = a[f++];) c += nb(d);
return c
};
N = d.selectors = {
cacheLength: 50,
createPseudo: f,
match: Ab,
attrHandle: {},
find: {},
relative: {
">": {
dir: "parentNode",
first: !0
},
" ": {
dir: "parentNode"
},
"+": {
dir: "previousSibling",
first: !0
},
"~": {
dir: "previousSibling"
}
},
preFilter: {
ATTR: function(a) {
return a[1] = a[1].replace(Va, T), a[3] = (a[3] || a[4] || a[5] || "").replace(Va, T), "~=" === a[2] && (a[3] = " " + a[3] + " "), a.slice(0, 4)
},
CHILD: function(a) {
return a[1] = a[1].toLowerCase(), "nth" === a[1].slice(0, 3) ? (a[3] || d.error(a[0]), a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3])), a[5] = +(a[7] + a[8] || "odd" === a[3])) : a[3] && d.error(a[0]), a
},
PSEUDO: function(a) {
var d, c = !a[6] && a[2];
return Ab.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || "" : c && ma.test(c) && (d = Ca(c, !0)) && (d = c.indexOf(")", c.length - d) - c.length) && (a[0] = a[0].slice(0, d), a[2] = c.slice(0, d)), a.slice(0, 3))
}
},
filter: {
TAG: function(a) {
var d = a.replace(Va, T).toLowerCase();
return "*" === a ? function() {
return !0
} : function(a) {
return a.nodeName && a.nodeName.toLowerCase() === d
}
},
CLASS: function(a) {
var d = pc[a + " "];
return d || (d = new RegExp("(^|[\\x20\\t\\r\\n\\f])" + a + "([\\x20\\t\\r\\n\\f]|$)"), pc(a, function(a) {
return d.test("string" == typeof a.className && a.className || "undefined" != typeof a.getAttribute && a.getAttribute("class") || "")
}))
},
ATTR: function(a, c, f) {
return function(k) {
k = d.attr(k, a);
return null == k ? "!=" === c : c ? (k += "", "=" === c ? k === f : "!=" === c ? k !== f : "^=" === c ? f && 0 === k.indexOf(f) : "*=" === c ? f && -1 < k.indexOf(f) : "$=" === c ? f && k.slice(-f.length) === f : "~=" === c ? -1 < (" " + k.replace(ta, " ") + " ").indexOf(f) : "|=" === c ? k === f || k.slice(0, f.length + 1) === f + "-" : !1) : !0
}
},
CHILD: function(a, d, c, f, k) {
var n = "nth" !== a.slice(0, 3),
e = "last" !== a.slice(-4),
v = "of-type" === d;
return 1 === f && 0 === k ? function(a) {
return !!a.parentNode
} : function(d, c, t) {
var h, m, w, u, B;
c = n !== e ? "nextSibling" : "previousSibling";
var q = d.parentNode,
p = v && d.nodeName.toLowerCase();
t = !t && !v;
if (q) {
if (n) {
for (; c;) {
for (m = d; m = m[c];)
if (v ? m.nodeName.toLowerCase() === p : 1 === m.nodeType) return !1;
B = c = "only" === a && !B && "nextSibling"
}
return !0
}
if (B = [e ? q.firstChild : q.lastChild], e && t)
for (t = q[oa] || (q[oa] = {}), h = t[a] || [], u = h[0] === Kb && h[1], w = h[0] === Kb && h[2], m = u && q.childNodes[u]; m = ++u && m && m[c] || (w = u = 0) || B.pop();) {
if (1 === m.nodeType && ++w && m === d) {
t[a] = [Kb, u, w];
break
}
} else if (t && (h = (d[oa] || (d[oa] = {}))[a]) && h[0] === Kb) w = h[1];
else
for (;
(m = ++u && m && m[c] || (w = u = 0) || B.pop()) && ((v ? m.nodeName.toLowerCase() !== p : 1 !== m.nodeType) || !++w || (t && ((m[oa] || (m[oa] = {}))[a] = [Kb, w]), m !== d)););
return w -= k, w === f || 0 === w % f && 0 <= w / f
}
}
},
PSEUDO: function(a, c) {
var k, n = N.pseudos[a] || N.setFilters[a.toLowerCase()] || d.error("unsupported pseudo: " + a);
return n[oa] ? n(c) : 1 < n.length ? (k = [a, a, "", c], N.setFilters.hasOwnProperty(a.toLowerCase()) ? f(function(a, d) {
for (var f, k = n(a, c), e = k.length; e--;) f = Hb(a, k[e]), a[f] = !(d[f] = k[e])
}) : function(a) {
return n(a, 0, k)
}) : n
}
},
pseudos: {
not: f(function(a) {
var d = [],
c = [],
k = K(a.replace(ia, "$1"));
return k[oa] ? f(function(a, d, c, f) {
var n;
c = k(a, null, f, []);
for (f = a.length; f--;)(n = c[f]) && (a[f] = !(d[f] = n))
}) : function(a, f, n) {
return d[0] = a, k(d, null, n, c), d[0] = null, !c.pop()
}
}),
has: f(function(a) {
return function(c) {
return 0 < d(a, c).length
}
}),
contains: f(function(a) {
return a = a.replace(Va, T),
function(d) {
return -1 < (d.textContent || d.innerText || nb(d)).indexOf(a)
}
}),
lang: f(function(a) {
return vc.test(a || "") || d.error("unsupported lang: " + a), a = a.replace(Va, T).toLowerCase(),
function(d) {
var c;
do {
if (c = Ya ? d.lang : d.getAttribute("xml:lang") || d.getAttribute("lang")) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + "-")
} while ((d = d.parentNode) && 1 === d.nodeType);
return !1
}
}),
target: function(d) {
var c = a.location && a.location.hash;
return c && c.slice(1) === d.id
},
root: function(a) {
return a === O
},
focus: function(a) {
return a === H.activeElement && (!H.hasFocus || H.hasFocus()) && !!(a.type || a.href || ~a.tabIndex)
},
enabled: function(a) {
return !1 === a.disabled
},
disabled: function(a) {
return !0 === a.disabled
},
checked: function(a) {
var d = a.nodeName.toLowerCase();
return "input" === d && !!a.checked || "option" === d && !!a.selected
},
selected: function(a) {
return a.parentNode && a.parentNode.selectedIndex, !0 === a.selected
},
empty: function(a) {
for (a = a.firstChild; a; a = a.nextSibling)
if (6 > a.nodeType) return !1;
return !0
},
parent: function(a) {
return !N.pseudos.empty(a)
},
header: function(a) {
return Lb.test(a.nodeName)
},
input: function(a) {
return Jb.test(a.nodeName)
},
button: function(a) {
var d = a.nodeName.toLowerCase();
return "input" === d && "button" === a.type || "button" === d
},
text: function(a) {
var d;
return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (d = a.getAttribute("type")) || "text" === d.toLowerCase())
},
first: h(function() {
return [0]
}),
last: h(function(a, d) {
return [d - 1]
}),
eq: h(function(a, d, c) {
return [0 > c ? c + d : c]
}),
even: h(function(a, d) {
for (var c = 0; d > c; c += 2) a.push(c);
return a
}),
odd: h(function(a, d) {
for (var c = 1; d > c; c += 2) a.push(c);
return a
}),
lt: h(function(a, d, c) {
for (d = 0 > c ? c + d : c; 0 <= --d;) a.push(d);
return a
}),
gt: h(function(a, d, c) {
for (c = 0 > c ? c + d : c; ++c < d;) a.push(c);
return a
})
}
};
N.pseudos.nth = N.pseudos.eq;
for (A in {
radio: !0,
checkbox: !0,
file: !0,
password: !0,
image: !0
}) N.pseudos[A] = v(A);
for (A in {
submit: !0,
reset: !0
}) N.pseudos[A] = t(A);
w.prototype = N.filters = N.pseudos;
N.setFilters = new w;
Ca = d.tokenize = function(a, c) {
var f, k, n, e, v, t, h;
if (v = sa[a + " "]) return c ? 0 : v.slice(0);
v = a;
t = [];
for (h = N.preFilter; v;) {
f && !(k = da.exec(v)) || (k && (v = v.slice(k[0].length) || v), t.push(n = []));
f = !1;
(k = vb.exec(v)) && (f = k.shift(), n.push({
value: f,
type: k[0].replace(ia, " ")
}), v = v.slice(f.length));
for (e in N.filter) !(k = Ab[e].exec(v)) || h[e] && !(k = h[e](k)) || (f = k.shift(), n.push({
value: f,
type: e,
matches: k
}), v = v.slice(f.length));
if (!f) break
}
return c ? v.length : v ? d.error(a) : sa(a, t).slice(0)
};
return K = d.compile = function(a, d) {
var c, f = [],
k = [],
n = ca[a + " "];
if (!n) {
d || (d = Ca(a));
for (c = d.length; c--;) n = C(d[c]), n[oa] ? f.push(n) : k.push(n);
n = ca(a, E(k, f));
n.selector = a
}
return n
}, z = d.select = function(a, d, c, f) {
var k, n, e, v, t, h = "function" == typeof a && a,
w = !f && Ca(a = h.selector || a);
if (c = c || [], 1 === w.length) {
if (n = w[0] = w[0].slice(0), 2 < n.length && "ID" === (e = n[0]).type && F.getById && 9 === d.nodeType && Ya && N.relative[n[1].type]) {
if (d = (N.find.ID(e.matches[0].replace(Va, T), d) || [])[0], !d) return c;
h && (d = d.parentNode);
a = a.slice(n.shift().value.length)
}
for (k = Ab.needsContext.test(a) ? 0 : n.length; k-- && (e = n[k], !N.relative[v = e.type]);)
if ((t = N.find[v]) && (f = t(e.matches[0].replace(Va, T), pb.test(n[0].type) && m(d.parentNode) || d))) {
if (n.splice(k, 1), a = f.length && u(n), !a) return Y.apply(c, f), c;
break
}
}
return (h || K(a, w))(f, d, !Ya, c, pb.test(a) && m(d.parentNode) || d), c
}, F.sortStable = oa.split("").sort(U).join("") === oa, F.detectDuplicates = !!I, Ra(), F.sortDetached = k(function(a) {
return 1 & a.compareDocumentPosition(H.createElement("div"))
}), k(function(a) {
return a.innerHTML = "<a href='#'></a>", "#" === a.firstChild.getAttribute("href")
}) || n("type|href|height|width", function(a, d, c) {
return c ? void 0 : a.getAttribute(d, "type" === d.toLowerCase() ? 1 : 2)
}), F.attributes && k(function(a) {
return a.innerHTML = "<input/>", a.firstChild.setAttribute("value", ""), "" === a.firstChild.getAttribute("value")
}) || n("value", function(a, d, c) {
return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue
}), k(function(a) {
return null == a.getAttribute("disabled")
}) || n("checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", function(a, d, c) {
var f;
return c ? void 0 : !0 === a[d] ? d.toLowerCase() : (f = a.getAttributeNode(d)) && f.specified ? f.value : null
}), d
}(d);
z.find = za;
z.expr = za.selectors;
z.expr[":"] = z.expr.pseudos;
z.unique = za.uniqueSort;
z.text = za.getText;
z.isXMLDoc = za.isXML;
z.contains = za.contains;
var Ta = z.expr.match.needsContext,
ib = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
Ib = /^.[^:#\[\.,]*$/;
z.filter = function(a, d, c) {
var f = d[0];
return c && (a = ":not(" + a + ")"), 1 === d.length && 1 === f.nodeType ? z.find.matchesSelector(f, a) ? [f] : [] : z.find.matches(a, z.grep(d, function(a) {
return 1 === a.nodeType
}))
};
z.fn.extend({
find: function(a) {
var d, c = [],
f = this,
k = f.length;
if ("string" != typeof a) return this.pushStack(z(a).filter(function() {
for (d = 0; k > d; d++)
if (z.contains(f[d], this)) return !0
}));
for (d = 0; k > d; d++) z.find(a, f[d], c);
return c = this.pushStack(1 < k ? z.unique(c) : c), c.selector = this.selector ? this.selector + " " + a : a, c
},
filter: function(a) {
return this.pushStack(m(this, a || [], !1))
},
not: function(a) {
return this.pushStack(m(this, a || [], !0))
},
is: function(a) {
return !!m(this, "string" == typeof a && Ta.test(a) ? z(a) : a || [], !1).length
}
});
var jb, X = d.document,
kb = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;
(z.fn.init = function(a, d) {
var c, f;
if (!a) return this;
if ("string" == typeof a) {
if (c = "<" === a.charAt(0) && ">" === a.charAt(a.length - 1) && 3 <= a.length ? [null, a, null] : kb.exec(a), !c || !c[1] && d) return !d || d.jquery ? (d || jb).find(a) : this.constructor(d).find(a);
if (c[1]) {
if (d = d instanceof z ? d[0] : d, z.merge(this, z.parseHTML(c[1], d && d.nodeType ? d.ownerDocument || d : X, !0)), ib.test(c[1]) && z.isPlainObject(d))
for (c in d) z.isFunction(this[c]) ? this[c](d[c]) : this.attr(c, d[c]);
return this
}
if (f = X.getElementById(c[2]), f && f.parentNode) {
if (f.id !== c[2]) return jb.find(a);
this.length = 1;
this[0] = f
}
return this.context = X, this.selector = a, this
}
return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : z.isFunction(a) ? "undefined" != typeof jb.ready ? jb.ready(a) : a(z) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), z.makeArray(a, this))
}).prototype = z.fn;
jb = z(X);
var La = /^(?:parents|prev(?:Until|All))/,
Ga = {
children: !0,
contents: !0,
next: !0,
prev: !0
};
z.extend({
dir: function(a, d, c) {
var f = [];
for (a = a[d]; a && 9 !== a.nodeType && (void 0 === c || 1 !== a.nodeType || !z(a).is(c));) 1 === a.nodeType && f.push(a), a = a[d];
return f
},
sibling: function(a, d) {
for (var c = []; a; a = a.nextSibling) 1 === a.nodeType && a !== d && c.push(a);
return c
}
});
z.fn.extend({
has: function(a) {
var d, c = z(a, this),
f = c.length;
return this.filter(function() {
for (d = 0; f > d; d++)
if (z.contains(this, c[d])) return !0
})
},
closest: function(a, d) {
for (var c, f = 0, k = this.length, n = [], e = Ta.test(a) || "string" != typeof a ? z(a, d || this.context) : 0; k > f; f++)
for (c = this[f]; c && c !== d; c = c.parentNode)
if (11 > c.nodeType && (e ? -1 < e.index(c) : 1 === c.nodeType && z.find.matchesSelector(c, a))) {
n.push(c);
break
}
return this.pushStack(1 < n.length ? z.unique(n) : n)
},
index: function(a) {
return a ? "string" == typeof a ? z.inArray(this[0], z(a)) : z.inArray(a.jquery ? a[0] : a, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
},
add: function(a, d) {
return this.pushStack(z.unique(z.merge(this.get(), z(a, d))))
},
addBack: function(a) {
return this.add(null == a ? this.prevObject : this.prevObject.filter(a))
}
});
z.each({
parent: function(a) {
return (a = a.parentNode) && 11 !== a.nodeType ? a : null
},
parents: function(a) {
return z.dir(a, "parentNode")
},
parentsUntil: function(a, d, c) {
return z.dir(a, "parentNode", c)
},
next: function(a) {
return h(a, "nextSibling")
},
prev: function(a) {
return h(a, "previousSibling")
},
nextAll: function(a) {
return z.dir(a, "nextSibling")
},
prevAll: function(a) {
return z.dir(a, "previousSibling")
},
nextUntil: function(a, d, c) {
return z.dir(a, "nextSibling", c)
},
prevUntil: function(a, d, c) {
return z.dir(a, "previousSibling", c)
},
siblings: function(a) {
return z.sibling((a.parentNode || {}).firstChild, a)
},
children: function(a) {
return z.sibling(a.firstChild)
},
contents: function(a) {
return z.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : z.merge([], a.childNodes)
}
}, function(a, d) {
z.fn[a] = function(c, f) {
var k = z.map(this, d, c);
return "Until" !== a.slice(-5) && (f = c), f && "string" == typeof f && (k = z.filter(f, k)), 1 < this.length && (Ga[a] || (k = z.unique(k)), La.test(a) && (k = k.reverse())), this.pushStack(k)
}
});
var Ha = /\S+/g,
Sa = {};
z.Callbacks = function(a) {
a = "string" == typeof a ? Sa[a] || p(a) : z.extend({}, a);
var d, c, f, k, n, e, v = [],
t = !a.once && [],
h = function(w) {
c = a.memory && w;
f = !0;
n = e || 0;
e = 0;
k = v.length;
for (d = !0; v && k > n; n++)
if (!1 === v[n].apply(w[0], w[1]) && a.stopOnFalse) {
c = !1;
break
}
d = !1;
v && (t ? t.length && h(t.shift()) : c ? v = [] : m.disable())
},
m = {
add: function() {
if (v) {
var f = v.length;
! function Ac(d) {
z.each(d, function(d, c) {
var f = z.type(c);
"function" === f ? a.unique && m.has(c) || v.push(c) : c && c.length && "string" !== f && Ac(c)
})
}(arguments);
d ? k = v.length : c && (e = f, h(c))
}
return this
},
remove: function() {
return v && z.each(arguments, function(a, c) {
for (var f; - 1 < (f = z.inArray(c, v, f));) v.splice(f, 1), d && (k >= f && k--, n >= f && n--)
}), this
},
has: function(a) {
return a ? -1 < z.inArray(a, v) : !(!v || !v.length)
},
empty: function() {
return v = [], k = 0, this
},
disable: function() {
return v = t = c = void 0, this
},
disabled: function() {
return !v
},
lock: function() {
return t = void 0, c || m.disable(), this
},
locked: function() {
return !t
},
fireWith: function(a, c) {
return !v || f && !t || (c = c || [], c = [a, c.slice ? c.slice() : c], d ? t.push(c) : h(c)), this
},
fire: function() {
return m.fireWith(this, arguments), this
},
fired: function() {
return !!f
}
};
return m
};
z.extend({
Deferred: function(a) {
var d = [
["resolve", "done", z.Callbacks("once memory"), "resolved"],
["reject", "fail", z.Callbacks("once memory"), "rejected"],
["notify", "progress", z.Callbacks("memory")]
],
c = "pending",
f = {
state: function() {
return c
},
always: function() {
return k.done(arguments).fail(arguments), this
},
then: function() {
var a = arguments;
return z.Deferred(function(c) {
z.each(d, function(d, n) {
var e = z.isFunction(a[d]) && a[d];
k[n[1]](function() {
var a = e && e.apply(this, arguments);
a && z.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[n[0] + "With"](this === f ? c.promise() : this, e ? [a] : arguments)
})
});
a = null
}).promise()
},
promise: function(a) {
return null != a ? z.extend(a, f) : f
}
},
k = {};
return f.pipe = f.then, z.each(d, function(a, n) {
var e = n[2],
v = n[3];
f[n[1]] = e.add;
v && e.add(function() {
c = v
}, d[1 ^ a][2].disable, d[2][2].lock);
k[n[0]] = function() {
return k[n[0] + "With"](this === k ? f : this, arguments), this
};
k[n[0] + "With"] = e.fireWith
}), f.promise(k), a && a.call(k, k), k
},
when: function(a) {
var d = 0,
c = na.call(arguments),
f = c.length,
k = 1 !== f || a && z.isFunction(a.promise) ? f : 0,
n = 1 === k ? a : z.Deferred(),
e = function(a, d, c) {
return function(f) {
d[a] = this;
c[a] = 1 < arguments.length ? na.call(arguments) : f;
c === v ? n.notifyWith(d, c) : --k || n.resolveWith(d, c)
}
},
v, t, h;
if (1 < f)
for (v = Array(f), t = Array(f), h = Array(f); f > d; d++) c[d] && z.isFunction(c[d].promise) ? c[d].promise().done(e(d, h, c)).fail(n.reject).progress(e(d, t, v)) : --k;
return k || n.resolveWith(h, c), n.promise()
}
});
var Ua;
z.fn.ready = function(a) {
return z.ready.promise().done(a), this
};
z.extend({
isReady: !1,
readyWait: 1,
holdReady: function(a) {
a ? z.readyWait++ : z.ready(!0)
},
ready: function(a) {
if (!0 === a ? !--z.readyWait : !z.isReady) {
if (!X.body) return setTimeout(z.ready);
z.isReady = !0;
!0 !== a && 0 < --z.readyWait || (Ua.resolveWith(X, [z]), z.fn.triggerHandler && (z(X).triggerHandler("ready"), z(X).off("ready")))
}
}
});
z.ready.promise = function(c) {
if (!Ua)
if (Ua = z.Deferred(), "complete" === X.readyState) setTimeout(z.ready);
else if (X.addEventListener) X.addEventListener("DOMContentLoaded", a, !1), d.addEventListener("load", a, !1);
else {
X.attachEvent("onreadystatechange", a);
d.attachEvent("onload", a);
var f = !1;
try {
f = null == d.frameElement && X.documentElement
} catch (xc) {}
f && f.doScroll && ! function tc() {
if (!z.isReady) {
try {
f.doScroll("left")
} catch (yc) {
return setTimeout(tc, 50)
}
q();
z.ready()
}
}()
}
return Ua.promise(c)
};
for (var ub in z(P)) break;
P.ownLast = "0" !== ub;
P.inlineBlockNeedsLayout = !1;
z(function() {
var a, d, c, f;
(c = X.getElementsByTagName("body")[0]) && c.style && (d = X.createElement("div"), f = X.createElement("div"), f.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", c.appendChild(f).appendChild(d), "undefined" !== typeof d.style.zoom && (d.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1", P.inlineBlockNeedsLayout = a = 3 === d.offsetWidth, a && (c.style.zoom = 1)), c.removeChild(f))
});
(function() {
var a = X.createElement("div");
if (null == P.deleteExpando) {
P.deleteExpando = !0;
try {
delete a.test
} catch (qc) {
P.deleteExpando = !1
}
}
})();
z.acceptData = function(a) {
var d = z.noData[(a.nodeName + " ").toLowerCase()],
c = +a.nodeType || 1;
return 1 !== c && 9 !== c ? !1 : !d || !0 !== d && a.getAttribute("classid") === d
};
var ab = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
yb = /([A-Z])/g;
z.extend({
cache: {},
noData: {
"applet ": !0,
"embed ": !0,
"object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
},
hasData: function(a) {
return a = a.nodeType ? z.cache[a[z.expando]] : a[z.expando], !!a && !k(a)
},
data: function(a, d, c) {
return n(a, d, c)
},
removeData: function(a, d) {
return t(a, d)
},
_data: function(a, d, c) {
return n(a, d, c, !0)
},
_removeData: function(a, d) {
return t(a, d, !0)
}
});
z.fn.extend({
data: function(a, d) {
var c, k, n, e = this[0],
v = e && e.attributes;
if (void 0 === a) {
if (this.length && (n = z.data(e), 1 === e.nodeType && !z._data(e, "parsedAttrs"))) {
for (c = v.length; c--;) v[c] && (k = v[c].name, 0 === k.indexOf("data-") && (k = z.camelCase(k.slice(5)), f(e, k, n[k])));
z._data(e, "parsedAttrs", !0)
}
return n
}
return "object" == typeof a ? this.each(function() {
z.data(this, a)
}) : 1 < arguments.length ? this.each(function() {
z.data(this, a, d)
}) : e ? f(e, a, z.data(e, a)) : void 0
},
removeData: function(a) {
return this.each(function() {
z.removeData(this, a)
})
}
});
z.extend({
queue: function(a, d, c) {
var f;
return a ? (d = (d || "fx") + "queue", f = z._data(a, d), c && (!f || z.isArray(c) ? f = z._data(a, d, z.makeArray(c)) : f.push(c)), f || []) : void 0
},
dequeue: function(a, d) {
d = d || "fx";
var c = z.queue(a, d),
f = c.length,
k = c.shift(),
n = z._queueHooks(a, d),
e = function() {
z.dequeue(a, d)
};
"inprogress" === k && (k = c.shift(), f--);
k && ("fx" === d && c.unshift("inprogress"), delete n.stop, k.call(a, e, n));
!f && n && n.empty.fire()
},
_queueHooks: function(a, d) {
var c = d + "queueHooks";
return z._data(a, c) || z._data(a, c, {
empty: z.Callbacks("once memory").add(function() {
z._removeData(a, d + "queue");
z._removeData(a, c)
})
})
}
});
z.fn.extend({
queue: function(a, d) {
var c = 2;
return "string" != typeof a && (d = a, a = "fx", c--), arguments.length < c ? z.queue(this[0], a) : void 0 === d ? this : this.each(function() {
var c = z.queue(this, a, d);
z._queueHooks(this, a);
"fx" === a && "inprogress" !== c[0] && z.dequeue(this, a)
})
},
dequeue: function(a) {
return this.each(function() {
z.dequeue(this, a)
})
},
clearQueue: function(a) {
return this.queue(a || "fx", [])
},
promise: function(a, d) {
var c, f = 1,
k = z.Deferred(),
n = this,
e = this.length,
v = function() {
--f || k.resolveWith(n, [n])
};
"string" != typeof a && (d = a, a = void 0);
for (a = a || "fx"; e--;)(c = z._data(n[e], a + "queueHooks")) && c.empty && (f++, c.empty.add(v));
return v(), k.promise(d)
}
});
var Ma = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
ia = ["Top", "Right", "Bottom", "Left"],
va = function(a, d) {
return a = d || a, "none" === z.css(a, "display") || !z.contains(a.ownerDocument, a)
},
vb = z.access = function(a, d, c, f, k, n, e) {
var v = 0,
t = a.length,
h = null == c;
if ("object" === z.type(c))
for (v in k = !0, c) z.access(a, d, v, c[v], !0, n, e);
else if (void 0 !== f && (k = !0, z.isFunction(f) || (e = !0), h && (e ? (d.call(a, f), d = null) : (h = d, d = function(a, d, c) {
return h.call(z(a), c)
})), d))
for (; t > v; v++) d(a[v], c, e ? f : f.call(a[v], v, d(a[v], c)));
return k ? a : h ? d.call(a) : t ? d(a[0], c) : n
},
Jb = /^(?:checkbox|radio)$/i;
! function() {
var a = X.createElement("input"),
d = X.createElement("div"),
c = X.createDocumentFragment();
if (d.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", P.leadingWhitespace = 3 === d.firstChild.nodeType, P.tbody = !d.getElementsByTagName("tbody").length, P.htmlSerialize = !!d.getElementsByTagName("link").length, P.html5Clone = "<:nav></:nav>" !== X.createElement("nav").cloneNode(!0).outerHTML, a.type = "checkbox", a.checked = !0, c.appendChild(a), P.appendChecked = a.checked, d.innerHTML = "<textarea>x</textarea>", P.noCloneChecked = !!d.cloneNode(!0).lastChild.defaultValue, c.appendChild(d), d.innerHTML = "<input type='radio' checked='checked' name='t'/>", P.checkClone = d.cloneNode(!0).cloneNode(!0).lastChild.checked, P.noCloneEvent = !0, d.attachEvent && (d.attachEvent("onclick", function() {
P.noCloneEvent = !1
}), d.cloneNode(!0).click()), null == P.deleteExpando) {
P.deleteExpando = !0;
try {
delete d.test
} catch (tc) {
P.deleteExpando = !1
}
}
}();
(function() {
var a, c, f = X.createElement("div");
for (a in {
submit: !0,
change: !0,
focusin: !0
}) c = "on" + a, (P[a + "Bubbles"] = c in d) || (f.setAttribute(c, "t"), P[a + "Bubbles"] = !1 === f.attributes[c].expando)
})();
var ma = /^(?:input|select|textarea)$/i,
Ab = /^key/,
pb = /^(?:mouse|pointer|contextmenu)|click/,
Lb = /^(?:focusinfocus|focusoutblur)$/,
Va = /^([^.]*)(?:\.(.+)|)$/;
z.event = {
global: {},
add: function(a, d, c, f, k) {
var n, e, v, t, h, m, w, u, B, q;
if (v = z._data(a)) {
c.handler && (t = c, c = t.handler, k = t.selector);
c.guid || (c.guid = z.guid++);
(e = v.events) || (e = v.events = {});
(m = v.handle) || (m = v.handle = function(a) {
return "undefined" === typeof z || a && z.event.triggered === a.type ? void 0 : z.event.dispatch.apply(m.elem, arguments)
}, m.elem = a);
d = (d || "").match(Ha) || [""];
for (v = d.length; v--;) n = Va.exec(d[v]) || [], B = q = n[1], n = (n[2] || "").split(".").sort(), B && (h = z.event.special[B] || {}, B = (k ? h.delegateType : h.bindType) || B, h = z.event.special[B] || {}, w = z.extend({
type: B,
origType: q,
data: f,
handler: c,
guid: c.guid,
selector: k,
needsContext: k && z.expr.match.needsContext.test(k),
namespace: n.join(".")
}, t), (u = e[B]) || (u = e[B] = [], u.delegateCount = 0, h.setup && !1 !== h.setup.call(a, f, n, m) || (a.addEventListener ? a.addEventListener(B, m, !1) : a.attachEvent && a.attachEvent("on" + B, m))), h.add && (h.add.call(a, w), w.handler.guid || (w.handler.guid = c.guid)), k ? u.splice(u.delegateCount++, 0, w) : u.push(w), z.event.global[B] = !0);
a = null
}
},
remove: function(a, d, c, f, k) {
var n, e, v, t, h, m, w, u, B, q, p, D = z.hasData(a) && z._data(a);
if (D && (m = D.events)) {
d = (d || "").match(Ha) || [""];
for (h = d.length; h--;)
if (v = Va.exec(d[h]) || [], B = p = v[1], q = (v[2] || "").split(".").sort(), B) {
w = z.event.special[B] || {};
B = (f ? w.delegateType : w.bindType) || B;
u = m[B] || [];
v = v[2] && new RegExp("(^|\\.)" + q.join("\\.(?:.*\\.|)") + "(\\.|$)");
for (t = n = u.length; n--;) e = u[n], !k && p !== e.origType || c && c.guid !== e.guid || v && !v.test(e.namespace) || f && f !== e.selector && ("**" !== f || !e.selector) || (u.splice(n, 1), e.selector && u.delegateCount--, w.remove && w.remove.call(a, e));
t && !u.length && (w.teardown && !1 !== w.teardown.call(a, q, D.handle) || z.removeEvent(a, B, D.handle), delete m[B])
} else
for (B in m) z.event.remove(a, B + d[h], c, f, !0);
z.isEmptyObject(m) && (delete D.handle, z._removeData(a, "events"))
}
},
trigger: function(a, c, f, k) {
var n, e, v, t, h, m, w = [f || X],
u = xa.call(a, "type") ? a.type : a;
m = xa.call(a, "namespace") ? a.namespace.split(".") : [];
if (v = n = f = f || X, 3 !== f.nodeType && 8 !== f.nodeType && !Lb.test(u + z.event.triggered) && (0 <= u.indexOf(".") && (m = u.split("."), u = m.shift(), m.sort()), e = 0 > u.indexOf(":") && "on" + u, a = a[z.expando] ? a : new z.Event(u, "object" == typeof a && a), a.isTrigger = k ? 2 : 3, a.namespace = m.join("."), a.namespace_re = a.namespace ? new RegExp("(^|\\.)" + m.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, a.result = void 0, a.target || (a.target = f), c = null == c ? [a] : z.makeArray(c, [a]), h = z.event.special[u] || {}, k || !h.trigger || !1 !== h.trigger.apply(f, c))) {
if (!k && !h.noBubble && !z.isWindow(f)) {
t = h.delegateType || u;
for (Lb.test(t + u) || (v = v.parentNode); v; v = v.parentNode) w.push(v), n = v;
n === (f.ownerDocument || X) && w.push(n.defaultView || n.parentWindow || d)
}
for (m = 0;
(v = w[m++]) && !a.isPropagationStopped();) a.type = 1 < m ? t : h.bindType || u, (n = (z._data(v, "events") || {})[a.type] && z._data(v, "handle")) && n.apply(v, c), (n = e && v[e]) && n.apply && z.acceptData(v) && (a.result = n.apply(v, c), !1 === a.result && a.preventDefault());
if (a.type = u, !(k || a.isDefaultPrevented() || h._default && !1 !== h._default.apply(w.pop(), c)) && z.acceptData(f) && e && f[u] && !z.isWindow(f)) {
(n = f[e]) && (f[e] = null);
z.event.triggered = u;
try {
f[u]()
} catch (zc) {}
z.event.triggered = void 0;
n && (f[e] = n)
}
return a.result
}
},
dispatch: function(a) {
a = z.event.fix(a);
var d, c, f, k, n, e, v = na.call(arguments);
d = (z._data(this, "events") || {})[a.type] || [];
var t = z.event.special[a.type] || {};
if (v[0] = a, a.delegateTarget = this, !t.preDispatch || !1 !== t.preDispatch.call(this, a)) {
e = z.event.handlers.call(this, a, d);
for (d = 0;
(k = e[d++]) && !a.isPropagationStopped();)
for (a.currentTarget = k.elem, n = 0;
(f = k.handlers[n++]) && !a.isImmediatePropagationStopped();) a.namespace_re && !a.namespace_re.test(f.namespace) || (a.handleObj = f, a.data = f.data, c = ((z.event.special[f.origType] || {}).handle || f.handler).apply(k.elem, v), void 0 === c || !1 !== (a.result = c) || (a.preventDefault(), a.stopPropagation()));
return t.postDispatch && t.postDispatch.call(this, a), a.result
}
},
handlers: function(a, d) {
var c, f, k, n, e = [],
v = d.delegateCount,
t = a.target;
if (v && t.nodeType && (!a.button || "click" !== a.type))
for (; t != this; t = t.parentNode || this)
if (1 === t.nodeType && (!0 !== t.disabled || "click" !== a.type)) {
k = [];
for (n = 0; v > n; n++) f = d[n], c = f.selector + " ", void 0 === k[c] && (k[c] = f.needsContext ? 0 <= z(c, this).index(t) : z.find(c, this, null, [t]).length), k[c] && k.push(f);
k.length && e.push({
elem: t,
handlers: k
})
}
return v < d.length && e.push({
elem: this,
handlers: d.slice(v)
}), e
},
fix: function(a) {
if (a[z.expando]) return a;
var d, c, f;
d = a.type;
var k = a,
n = this.fixHooks[d];
n || (this.fixHooks[d] = n = pb.test(d) ? this.mouseHooks : Ab.test(d) ? this.keyHooks : {});
f = n.props ? this.props.concat(n.props) : this.props;
a = new z.Event(k);
for (d = f.length; d--;) c = f[d], a[c] = k[c];
return a.target || (a.target = k.srcElement || X), 3 === a.target.nodeType && (a.target = a.target.parentNode), a.metaKey = !!a.metaKey, n.filter ? n.filter(a, k) : a
},
props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
fixHooks: {},
keyHooks: {
props: ["char", "charCode", "key", "keyCode"],
filter: function(a, d) {
return null == a.which && (a.which = null != d.charCode ? d.charCode : d.keyCode), a
}
},
mouseHooks: {
props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
filter: function(a, d) {
var c, f, k, n = d.button,
e = d.fromElement;
return null == a.pageX && null != d.clientX && (f = a.target.ownerDocument || X, k = f.documentElement, c = f.body, a.pageX = d.clientX + (k && k.scrollLeft || c && c.scrollLeft || 0) - (k && k.clientLeft || c && c.clientLeft || 0), a.pageY = d.clientY + (k && k.scrollTop || c && c.scrollTop || 0) - (k && k.clientTop || c && c.clientTop || 0)), !a.relatedTarget && e && (a.relatedTarget = e === a.target ? d.toElement : e), a.which || void 0 === n || (a.which = 1 & n ? 1 : 2 & n ? 3 : 4 & n ? 2 : 0), a
}
},
special: {
load: {
noBubble: !0
},
focus: {
trigger: function() {
if (this !== C() && this.focus) try {
return this.focus(), !1
} catch (nb) {}
},
delegateType: "focusin"
},
blur: {
trigger: function() {
return this === C() && this.blur ? (this.blur(), !1) : void 0
},
delegateType: "focusout"
},
click: {
trigger: function() {
return z.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : void 0
},
_default: function(a) {
return z.nodeName(a.target, "a")
}
},
beforeunload: {
postDispatch: function(a) {
void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result)
}
}
},
simulate: function(a, d, c, f) {
a = z.extend(new z.Event, c, {
type: a,
isSimulated: !0,
originalEvent: {}
});
f ? z.event.trigger(a, null, d) : z.event.dispatch.call(d, a);
a.isDefaultPrevented() && c.preventDefault()
}
};
z.removeEvent = X.removeEventListener ? function(a, d, c) {
a.removeEventListener && a.removeEventListener(d, c, !1)
} : function(a, d, c) {
d = "on" + d;
a.detachEvent && ("undefined" === typeof a[d] && (a[d] = null), a.detachEvent(d, c))
};
z.Event = function(a, d) {
return this instanceof z.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && !1 === a.returnValue ? w : u) : this.type = a, d && z.extend(this, d), this.timeStamp = a && a.timeStamp || z.now(), void(this[z.expando] = !0)) : new z.Event(a, d)
};
z.Event.prototype = {
isDefaultPrevented: u,
isPropagationStopped: u,
isImmediatePropagationStopped: u,
preventDefault: function() {
var a = this.originalEvent;
this.isDefaultPrevented = w;
a && (a.preventDefault ? a.preventDefault() : a.returnValue = !1)
},
stopPropagation: function() {
var a = this.originalEvent;
this.isPropagationStopped = w;
a && (a.stopPropagation && a.stopPropagation(), a.cancelBubble = !0)
},
stopImmediatePropagation: function() {
var a = this.originalEvent;
this.isImmediatePropagationStopped = w;
a && a.stopImmediatePropagation && a.stopImmediatePropagation();
this.stopPropagation()
}
};
z.each({
mouseenter: "mouseover",
mouseleave: "mouseout",
pointerenter: "pointerover",
pointerleave: "pointerout"
}, function(a, d) {
z.event.special[a] = {
delegateType: d,
bindType: d,
handle: function(a) {
var c, f = a.relatedTarget,
k = a.handleObj;
return (!f || f !== this && !z.contains(this, f)) && (a.type = k.origType, c = k.handler.apply(this, arguments), a.type = d), c
}
}
});
P.submitBubbles || (z.event.special.submit = {
setup: function() {
return z.nodeName(this, "form") ? !1 : void z.event.add(this, "click._submit keypress._submit", function(a) {
a = a.target;
(a = z.nodeName(a, "input") || z.nodeName(a, "button") ? a.form : void 0) && !z._data(a, "submitBubbles") && (z.event.add(a, "submit._submit", function(a) {
a._submit_bubble = !0
}), z._data(a, "submitBubbles", !0))
})
},
postDispatch: function(a) {
a._submit_bubble && (delete a._submit_bubble, this.parentNode && !a.isTrigger && z.event.simulate("submit", this.parentNode, a, !0))
},
teardown: function() {
return z.nodeName(this, "form") ? !1 : void z.event.remove(this, "._submit")
}
});
P.changeBubbles || (z.event.special.change = {
setup: function() {
return ma.test(this.nodeName) ? (("checkbox" === this.type || "radio" === this.type) && (z.event.add(this, "propertychange._change", function(a) {
"checked" === a.originalEvent.propertyName && (this._just_changed = !0)
}), z.event.add(this, "click._change", function(a) {
this._just_changed && !a.isTrigger && (this._just_changed = !1);
z.event.simulate("change", this, a, !0)
})), !1) : void z.event.add(this, "beforeactivate._change", function(a) {
a = a.target;
ma.test(a.nodeName) && !z._data(a, "changeBubbles") && (z.event.add(a, "change._change", function(a) {
!this.parentNode || a.isSimulated || a.isTrigger || z.event.simulate("change", this.parentNode, a, !0)
}), z._data(a, "changeBubbles", !0))
})
},
handle: function(a) {
var d = a.target;
return this !== d || a.isSimulated || a.isTrigger || "radio" !== d.type && "checkbox" !== d.type ? a.handleObj.handler.apply(this, arguments) : void 0
},
teardown: function() {
return z.event.remove(this, "._change"), !ma.test(this.nodeName)
}
});
P.focusinBubbles || z.each({
focus: "focusin",
blur: "focusout"
}, function(a, d) {
var c = function(a) {
z.event.simulate(d, a.target, z.event.fix(a), !0)
};
z.event.special[d] = {
setup: function() {
var f = this.ownerDocument || this,
k = z._data(f, d);
k || f.addEventListener(a, c, !0);
z._data(f, d, (k || 0) + 1)
},
teardown: function() {
var f = this.ownerDocument || this,
k = z._data(f, d) - 1;
k ? z._data(f, d, k) : (f.removeEventListener(a, c, !0), z._removeData(f, d))
}
}
});
z.fn.extend({
on: function(a, d, c, f, k) {
var n, e;
if ("object" == typeof a) {
"string" != typeof d && (c = c || d, d = void 0);
for (n in a) this.on(n, d, c, a[n], k);
return this
}
if (null == c && null == f ? (f = d, c = d = void 0) : null == f && ("string" == typeof d ? (f = c, c = void 0) : (f = c, c = d, d = void 0)), !1 === f) f = u;
else if (!f) return this;
return 1 === k && (e = f, f = function(a) {
return z().off(a), e.apply(this, arguments)
}, f.guid = e.guid || (e.guid = z.guid++)), this.each(function() {
z.event.add(this, a, f, c, d)
})
},
one: function(a, d, c, f) {
return this.on(a, d, c, f, 1)
},
off: function(a, d, c) {
var f, k;
if (a && a.preventDefault && a.handleObj) return f = a.handleObj, z(a.delegateTarget).off(f.namespace ? f.origType + "." + f.namespace : f.origType, f.selector, f.handler), this;
if ("object" == typeof a) {
for (k in a) this.off(k, d, a[k]);
return this
}
return (!1 === d || "function" == typeof d) && (c = d, d = void 0), !1 === c && (c = u), this.each(function() {
z.event.remove(this, a, c, d)
})
},
trigger: function(a, d) {
return this.each(function() {
z.event.trigger(a, d, this)
})
},
triggerHandler: function(a, d) {
var c = this[0];
return c ? z.event.trigger(a, d, c, !0) : void 0
}
});
var cc = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
Bb = / jQuery\d+="(?:null|\d+)"/g,
lb = new RegExp("<(?:" + cc + ")[\\s/>]", "i"),
Za = /^\s+/,
hc = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
qb = /<([\w:]+)/,
Aa = /<tbody/i,
qa = /<|&#?\w+;/,
ic = /<(?:script|style|link)/i,
jc = /checked\s*(?:[^=]|=\s*.checked.)/i,
Wa = /^$|\/(?:java|ecma)script/i,
Pb = /^true\/(.*)/,
ac = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
db = {
option: [1, "<select multiple='multiple'>", "</select>"],
legend: [1, "<fieldset>", "</fieldset>"],
area: [1, "<map>", "</map>"],
param: [1, "<object>", "</object>"],
thead: [1, "<table>", "</table>"],
tr: [2, "<table><tbody>", "</tbody></table>"],
col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
_default: P.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"]
},
T = A(X).appendChild(X.createElement("div"));
db.optgroup = db.option;
db.tbody = db.tfoot = db.colgroup = db.caption = db.thead;
db.th = db.td;
z.extend({
clone: function(a, d, c) {
var f, k, n, e, t, h = z.contains(a.ownerDocument, a);
if (P.html5Clone || z.isXMLDoc(a) || !lb.test("<" + a.nodeName + ">") ? n = a.cloneNode(!0) : (T.innerHTML = a.outerHTML, T.removeChild(n = T.firstChild)), !(P.noCloneEvent && P.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || z.isXMLDoc(a)))
for (f = v(n), t = v(a), e = 0; null != (k = t[e]); ++e)
if (f[e]) {
var m = void 0,
w, u = k,
B = f[e];
if (1 === B.nodeType) {
if (w = B.nodeName.toLowerCase(), !P.noCloneEvent && B[z.expando]) {
k = z._data(B);
for (m in k.events) z.removeEvent(B, m, k.handle);
B.removeAttribute(z.expando)
}
"script" === w && B.text !== u.text ? (E(B).text = u.text, F(B)) : "object" === w ? (B.parentNode && (B.outerHTML = u.outerHTML), P.html5Clone && u.innerHTML && !z.trim(B.innerHTML) && (B.innerHTML = u.innerHTML)) : "input" === w && Jb.test(u.type) ? (B.defaultChecked = B.checked = u.checked, B.value !== u.value && (B.value = u.value)) : "option" === w ? B.defaultSelected = B.selected = u.defaultSelected : ("input" === w || "textarea" === w) && (B.defaultValue = u.defaultValue)
}
}
if (d)
if (c)
for (t = t || v(a), f = f || v(n), e = 0; null != (k = t[e]); e++) J(k, f[e]);
else J(a, n);
return f = v(n, "script"), 0 < f.length && G(f, !h && v(a, "script")), n
},
buildFragment: function(a, d, c, f) {
for (var k, n, e, t, h, m, w, u = a.length, q = A(d), p = [], D = 0; u > D; D++)
if (n = a[D], n || 0 === n)
if ("object" === z.type(n)) z.merge(p, n.nodeType ? [n] : n);
else if (qa.test(n)) {
t = t || q.appendChild(d.createElement("div"));
h = (qb.exec(n) || ["", ""])[1].toLowerCase();
w = db[h] || db._default;
t.innerHTML = w[1] + n.replace(hc, "<$1></$2>") + w[2];
for (k = w[0]; k--;) t = t.lastChild;
if (!P.leadingWhitespace && Za.test(n) && p.push(d.createTextNode(Za.exec(n)[0])), !P.tbody)
for (k = (n = "table" !== h || Aa.test(n) ? "<table>" !== w[1] || Aa.test(n) ? 0 : t : t.firstChild) && n.childNodes.length; k--;) z.nodeName(m = n.childNodes[k], "tbody") && !m.childNodes.length && n.removeChild(m);
z.merge(p, t.childNodes);
for (t.textContent = ""; t.firstChild;) t.removeChild(t.firstChild);
t = q.lastChild
} else p.push(d.createTextNode(n));
t && q.removeChild(t);
P.appendChecked || z.grep(v(p, "input"), B);
for (D = 0; n = p[D++];)
if ((!f || -1 === z.inArray(n, f)) && (e = z.contains(n.ownerDocument, n), t = v(q.appendChild(n), "script"), e && G(t), c))
for (k = 0; n = t[k++];) Wa.test(n.type || "") && c.push(n);
return q
},
cleanData: function(a, d) {
for (var c, f, k, n, e = 0, v = z.expando, t = z.cache, h = P.deleteExpando, m = z.event.special; null != (c = a[e]); e++)
if ((d || z.acceptData(c)) && (k = c[v], n = k && t[k])) {
if (n.events)
for (f in n.events) m[f] ? z.event.remove(c, f) : z.removeEvent(c, f, n.handle);
t[k] && (delete t[k], h ? delete c[v] : "undefined" !== typeof c.removeAttribute ? c.removeAttribute(v) : c[v] = null, ta.push(k))
}
}
});
z.fn.extend({
text: function(a) {
return vb(this, function(a) {
return void 0 === a ? z.text(this) : this.empty().append((this[0] && this[0].ownerDocument || X).createTextNode(a))
}, null, a, arguments.length)
},
append: function() {
return this.domManip(arguments, function(a) {
1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || D(this, a).appendChild(a)
})
},
prepend: function() {
return this.domManip(arguments, function(a) {
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
var d = D(this, a);
d.insertBefore(a, d.firstChild)
}
})
},
before: function() {
return this.domManip(arguments, function(a) {
this.parentNode && this.parentNode.insertBefore(a, this)
})
},
after: function() {
return this.domManip(arguments, function(a) {
this.parentNode && this.parentNode.insertBefore(a, this.nextSibling)
})
},
remove: function(a, d) {
for (var c, f = a ? z.filter(a, this) : this, k = 0; null != (c = f[k]); k++) d || 1 !== c.nodeType || z.cleanData(v(c)), c.parentNode && (d && z.contains(c.ownerDocument, c) && G(v(c, "script")), c.parentNode.removeChild(c));
return this
},
empty: function() {
for (var a, d = 0; null != (a = this[d]); d++) {
for (1 === a.nodeType && z.cleanData(v(a, !1)); a.firstChild;) a.removeChild(a.firstChild);
a.options && z.nodeName(a, "select") && (a.options.length = 0)
}
return this
},
clone: function(a, d) {
return a = null == a ? !1 : a, d = null == d ? a : d, this.map(function() {
return z.clone(this, a, d)
})
},
html: function(a) {
return vb(this, function(a) {
var d = this[0] || {},
c = 0,
f = this.length;
if (void 0 === a) return 1 === d.nodeType ? d.innerHTML.replace(Bb, "") : void 0;
if (!("string" != typeof a || ic.test(a) || !P.htmlSerialize && lb.test(a) || !P.leadingWhitespace && Za.test(a) || db[(qb.exec(a) || ["", ""])[1].toLowerCase()])) {
a = a.replace(hc, "<$1></$2>");
try {
for (; f > c; c++) d = this[c] || {}, 1 === d.nodeType && (z.cleanData(v(d, !1)), d.innerHTML = a);
d = 0
} catch (Cc) {}
}
d && this.empty().append(a)
}, null, a, arguments.length)
},
replaceWith: function() {
var a = arguments[0];
return this.domManip(arguments, function(d) {
a = this.parentNode;
z.cleanData(v(this));
a && a.replaceChild(d, this)
}), a && (a.length || a.nodeType) ? this : this.remove()
},
detach: function(a) {
return this.remove(a, !0)
},
domManip: function(a, d) {
a = ea.apply([], a);
var c, f, k, n, e = 0,
t = this.length,
h = this,
m = t - 1,
w = a[0],
u = z.isFunction(w);
if (u || 1 < t && "string" == typeof w && !P.checkClone && jc.test(w)) return this.each(function(c) {
var f = h.eq(c);
u && (a[0] = w.call(this, c, f.html()));
f.domManip(a, d)
});
if (t && (n = z.buildFragment(a, this[0].ownerDocument, !1, this), c = n.firstChild, 1 === n.childNodes.length && (n = c), c)) {
k = z.map(v(n, "script"), E);
for (f = k.length; t > e; e++) c = n, e !== m && (c = z.clone(c, !0, !0), f && z.merge(k, v(c, "script"))), d.call(this[e], c, e);
if (f)
for (n = k[k.length - 1].ownerDocument, z.map(k, F), e = 0; f > e; e++) c = k[e], Wa.test(c.type || "") && !z._data(c, "globalEval") && z.contains(n, c) && (c.src ? z._evalUrl && z._evalUrl(c.src) : z.globalEval((c.text || c.textContent || c.innerHTML || "").replace(ac, "")));
n = c = null
}
return this
}
});
z.each({
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
insertAfter: "after",
replaceAll: "replaceWith"
}, function(a, d) {
z.fn[a] = function(a) {
for (var c = 0, f = [], k = z(a), n = k.length - 1; n >= c; c++) a = c === n ? this : this.clone(!0), z(k[c])[d](a), Ea.apply(f, a.get());
return this.pushStack(f)
}
});
var ra, ga = {};
! function() {
var a;
P.shrinkWrapBlocks = function() {
if (null != a) return a;
a = !1;
var d, c, f;
return c = X.getElementsByTagName("body")[0], c && c.style ? (d = X.createElement("div"), f = X.createElement("div"), f.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", c.appendChild(f).appendChild(d), "undefined" !== typeof d.style.zoom && (d.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1", d.appendChild(X.createElement("div")).style.width = "5px", a = 3 !== d.offsetWidth), c.removeChild(f), a) : void 0
}
}();
var ba = /^margin/,
la = new RegExp("^(" + Ma + ")(?!px)[a-z%]+$", "i"),
tb, zb, rb = /^(top|right|bottom|left)$/;
d.getComputedStyle ? (tb = function(a) {
return a.ownerDocument.defaultView.opener ? a.ownerDocument.defaultView.getComputedStyle(a, null) : d.getComputedStyle(a, null)
}, zb = function(a, d, c) {
var f, k, n, e, v = a.style;
return c = c || tb(a), e = c ? c.getPropertyValue(d) || c[d] : void 0, c && ("" !== e || z.contains(a.ownerDocument, a) || (e = z.style(a, d)), la.test(e) && ba.test(d) && (f = v.width, k = v.minWidth, n = v.maxWidth, v.minWidth = v.maxWidth = v.width = e, e = c.width, v.width = f, v.minWidth = k, v.maxWidth = n)), void 0 === e ? e : e + ""
}) : X.documentElement.currentStyle && (tb = function(a) {
return a.currentStyle
}, zb = function(a, d, c) {
var f, k, n, e, v = a.style;
return c = c || tb(a), e = c ? c[d] : void 0, null == e && v && v[d] && (e = v[d]), la.test(e) && !rb.test(d) && (f = v.left, k = a.runtimeStyle, n = k && k.left, n && (k.left = a.currentStyle.left), v.left = "fontSize" === d ? "1em" : e, e = v.pixelLeft + "px", v.left = f, n && (k.left = n)), void 0 === e ? e : e + "" || "auto"
});
! function() {
var a, c, f, k, n, e, v;
if (a = X.createElement("div"), a.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", f = a.getElementsByTagName("a")[0], c = f && f.style) {
var t = function() {
var a, c, f, t;
(c = X.getElementsByTagName("body")[0]) && c.style && (a = X.createElement("div"), f = X.createElement("div"), f.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", c.appendChild(f).appendChild(a), a.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute", k = n = !1, v = !0, d.getComputedStyle && (k = "1%" !== (d.getComputedStyle(a, null) || {}).top, n = "4px" === (d.getComputedStyle(a, null) || {
width: "4px"
}).width, t = a.appendChild(X.createElement("div")), t.style.cssText = a.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", t.style.marginRight = t.style.width = "0", a.style.width = "1px", v = !parseFloat((d.getComputedStyle(t, null) || {}).marginRight), a.removeChild(t)), a.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", t = a.getElementsByTagName("td"), t[0].style.cssText = "margin:0;border:0;padding:0;display:none", e = 0 === t[0].offsetHeight, e && (t[0].style.display = "", t[1].style.display = "none", e = 0 === t[0].offsetHeight), c.removeChild(f))
};
c.cssText = "float:left;opacity:.5";
P.opacity = "0.5" === c.opacity;
P.cssFloat = !!c.cssFloat;
a.style.backgroundClip = "content-box";
a.cloneNode(!0).style.backgroundClip = "";
P.clearCloneStyle = "content-box" === a.style.backgroundClip;
P.boxSizing = "" === c.boxSizing || "" === c.MozBoxSizing || "" === c.WebkitBoxSizing;
z.extend(P, {
reliableHiddenOffsets: function() {
return null == e && t(), e
},
boxSizingReliable: function() {
return null == n && t(), n
},
pixelPosition: function() {
return null == k && t(), k
},
reliableMarginRight: function() {
return null == v && t(), v
}
})
}
}();
z.swap = function(a, d, c, f) {
var k, n = {};
for (k in d) n[k] = a.style[k], a.style[k] = d[k];
c = c.apply(a, f || []);
for (k in d) a.style[k] = n[k];
return c
};
var Cb = /alpha\([^)]*\)/i,
uc = /opacity\s*=\s*([^)]*)/,
Rb = /^(none|table(?!-c[ea]).+)/,
sb = new RegExp("^(" + Ma + ")(.*)$", "i"),
rc = new RegExp("^([+-])=(" + Ma + ")", "i"),
kc = {
position: "absolute",
visibility: "hidden",
display: "block"
},
Sb = {
letterSpacing: "0",
fontWeight: "400"
},
dc = ["Webkit", "O", "Moz", "ms"];
z.extend({
cssHooks: {
opacity: {
get: function(a, d) {
if (d) {
var c = zb(a, "opacity");
return "" === c ? "1" : c
}
}
}
},
cssNumber: {
columnCount: !0,
fillOpacity: !0,
flexGrow: !0,
flexShrink: !0,
fontWeight: !0,
lineHeight: !0,
opacity: !0,
order: !0,
orphans: !0,
widows: !0,
zIndex: !0,
zoom: !0
},
cssProps: {
float: P.cssFloat ? "cssFloat" : "styleFloat"
},
style: function(a, d, c, f) {
if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) {
var k, n, e, v = z.camelCase(d),
t = a.style;
if (d = z.cssProps[v] || (z.cssProps[v] = L(t, v)), e = z.cssHooks[d] || z.cssHooks[v], void 0 === c) return e && "get" in e && void 0 !== (k = e.get(a, !1, f)) ? k : t[d];
if (n = typeof c, "string" === n && (k = rc.exec(c)) && (c = (k[1] + 1) * k[2] + parseFloat(z.css(a, d)), n = "number"), null != c && c === c && ("number" !== n || z.cssNumber[v] || (c += "px"), P.clearCloneStyle || "" !== c || 0 !== d.indexOf("background") || (t[d] = "inherit"), !(e && "set" in e && void 0 === (c = e.set(a, c, f))))) try {
t[d] = c
} catch (Ec) {}
}
},
css: function(a, d, c, f) {
var k, n, e, v = z.camelCase(d);
return d = z.cssProps[v] || (z.cssProps[v] = L(a.style, v)), e = z.cssHooks[d] || z.cssHooks[v], e && "get" in e && (n = e.get(a, !0, c)), void 0 === n && (n = zb(a, d, f)), "normal" === n && d in Sb && (n = Sb[d]), "" === c || c ? (k = parseFloat(n), !0 === c || z.isNumeric(k) ? k || 0 : n) : n
}
});
z.each(["height", "width"], function(a, d) {
z.cssHooks[d] = {
get: function(a, c, f) {
return c ? Rb.test(z.css(a, "display")) && 0 === a.offsetWidth ? z.swap(a, kc, function() {
return O(a, d, f)
}) : O(a, d, f) : void 0
},
set: function(a, c, f) {
var k = f && tb(a);
return Q(a, c, f ? H(a, d, f, P.boxSizing && "border-box" === z.css(a, "boxSizing", !1, k), k) : 0)
}
}
});
P.opacity || (z.cssHooks.opacity = {
get: function(a, d) {
return uc.test((d && a.currentStyle ? a.currentStyle.filter : a.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : d ? "1" : ""
},
set: function(a, d) {
var c = a.style,
f = a.currentStyle,
k = z.isNumeric(d) ? "alpha(opacity=" + 100 * d + ")" : "",
n = f && f.filter || c.filter || "";
c.zoom = 1;
(1 <= d || "" === d) && "" === z.trim(n.replace(Cb, "")) && c.removeAttribute && (c.removeAttribute("filter"), "" === d || f && !f.filter) || (c.filter = Cb.test(n) ? n.replace(Cb, k) : n + " " + k)
}
});
z.cssHooks.marginRight = M(P.reliableMarginRight, function(a, d) {
return d ? z.swap(a, {
display: "inline-block"
}, zb, [a, "marginRight"]) : void 0
});
z.each({
margin: "",
padding: "",
border: "Width"
}, function(a, d) {
z.cssHooks[a + d] = {
expand: function(c) {
var f = 0,
k = {};
for (c = "string" == typeof c ? c.split(" ") : [c]; 4 > f; f++) k[a + ia[f] + d] = c[f] || c[f - 2] || c[0];
return k
}
};
ba.test(a) || (z.cssHooks[a + d].set = Q)
});
z.fn.extend({
css: function(a, d) {
return vb(this, function(a, d, c) {
var f, k = {},
n = 0;
if (z.isArray(d)) {
c = tb(a);
for (f = d.length; f > n; n++) k[d[n]] = z.css(a, d[n], !1, c);
return k
}
return void 0 !== c ? z.style(a, d, c) : z.css(a, d)
}, a, d, 1 < arguments.length)
},
show: function() {
return U(this, !0)
},
hide: function() {
return U(this)
},
toggle: function(a) {
return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function() {
va(this) ? z(this).show() : z(this).hide()
})
}
});
z.Tween = W;
W.prototype = {
constructor: W,
init: function(a, d, c, f, k, n) {
this.elem = a;
this.prop = c;
this.easing = k || "swing";
this.options = d;
this.start = this.now = this.cur();
this.end = f;
this.unit = n || (z.cssNumber[c] ? "" : "px")
},
cur: function() {
var a = W.propHooks[this.prop];
return a && a.get ? a.get(this) : W.propHooks._default.get(this)
},
run: function(a) {
var d, c = W.propHooks[this.prop];
return this.pos = d = this.options.duration ? z.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : a, this.now = (this.end - this.start) * d + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), c && c.set ? c.set(this) : W.propHooks._default.set(this), this
}
};
W.prototype.init.prototype = W.prototype;
W.propHooks = {
_default: {
get: function(a) {
var d;
return null == a.elem[a.prop] || a.elem.style && null != a.elem.style[a.prop] ? (d = z.css(a.elem, a.prop, ""), d && "auto" !== d ? d : 0) : a.elem[a.prop]
},
set: function(a) {
z.fx.step[a.prop] ? z.fx.step[a.prop](a) : a.elem.style && (null != a.elem.style[z.cssProps[a.prop]] || z.cssHooks[a.prop]) ? z.style(a.elem, a.prop, a.now + a.unit) : a.elem[a.prop] = a.now
}
}
};
W.propHooks.scrollTop = W.propHooks.scrollLeft = {
set: function(a) {
a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now)
}
};
z.easing = {
linear: function(a) {
return a
},
swing: function(a) {
return .5 - Math.cos(a * Math.PI) / 2
}
};
z.fx = W.prototype.init;
z.fx.step = {};
var Qa, mb, Ba = /^(?:toggle|show|hide)$/,
lc = new RegExp("^(?:([+-])=|)(" + Ma + ")([a-z%]*)$", "i"),
Mb = /queueHooks$/,
Ka = [function(a, d, c) {
var f, k, n, e, v, t, h, m = this,
w = {},
u = a.style,
B = a.nodeType && va(a),
q = z._data(a, "fxshow");
c.queue || (e = z._queueHooks(a, "fx"), null == e.unqueued && (e.unqueued = 0, v = e.empty.fire, e.empty.fire = function() {
e.unqueued || v()
}), e.unqueued++, m.always(function() {
m.always(function() {
e.unqueued--;
z.queue(a, "fx").length || e.empty.fire()
})
}));
1 === a.nodeType && ("height" in d || "width" in d) && (c.overflow = [u.overflow, u.overflowX, u.overflowY], t = z.css(a, "display"), h = "none" === t ? z._data(a, "olddisplay") || K(a.nodeName) : t, "inline" === h && "none" === z.css(a, "float") && (P.inlineBlockNeedsLayout && "inline" !== K(a.nodeName) ? u.zoom = 1 : u.display = "inline-block"));
c.overflow && (u.overflow = "hidden", P.shrinkWrapBlocks() || m.always(function() {
u.overflow = c.overflow[0];
u.overflowX = c.overflow[1];
u.overflowY = c.overflow[2]
}));
for (f in d)
if (k = d[f], Ba.exec(k)) {
if (delete d[f], n = n || "toggle" === k, k === (B ? "hide" : "show")) {
if ("show" !== k || !q || void 0 === q[f]) continue;
B = !0
}
w[f] = q && q[f] || z.style(a, f)
} else t = void 0;
if (z.isEmptyObject(w)) "inline" === ("none" === t ? K(a.nodeName) : t) && (u.display = t);
else
for (f in q ? "hidden" in q && (B = q.hidden) : q = z._data(a, "fxshow", {}), n && (q.hidden = !B), B ? z(a).show() : m.done(function() {
z(a).hide()
}), m.done(function() {
var d;
z._removeData(a, "fxshow");
for (d in w) z.style(a, d, w[d])
}), w) d = Y(B ? q[f] : 0, f, m), f in q || (q[f] = d.start, B && (d.end = d.start, d.start = "width" === f || "height" === f ? 1 : 0))
}],
bb = {
"*": [function(a, d) {
var c = this.createTween(a, d),
f = c.cur(),
k = lc.exec(d),
n = k && k[3] || (z.cssNumber[a] ? "" : "px"),
e = (z.cssNumber[a] || "px" !== n && +f) && lc.exec(z.css(c.elem, a)),
v = 1,
t = 20;
if (e && e[3] !== n) {
n = n || e[3];
k = k || [];
e = +f || 1;
do {
v = v || ".5", e /= v, z.style(c.elem, a, e + n)
} while (v !== (v = c.cur() / f) && 1 !== v && --t)
}
return k && (e = c.start = +e || +f || 0, c.unit = n, c.end = k[1] ? e + (k[1] + 1) * k[2] : +k[2]), c
}]
};
z.Animation = z.extend(R, {
tweener: function(a, d) {
z.isFunction(a) ? (d = a, a = ["*"]) : a = a.split(" ");
for (var c, f = 0, k = a.length; k > f; f++) c = a[f], bb[c] = bb[c] || [], bb[c].unshift(d)
},
prefilter: function(a, d) {
d ? Ka.unshift(a) : Ka.push(a)
}
});
z.speed = function(a, d, c) {
var f = a && "object" == typeof a ? z.extend({}, a) : {
complete: c || !c && d || z.isFunction(a) && a,
duration: a,
easing: c && d || d && !z.isFunction(d) && d
};
return f.duration = z.fx.off ? 0 : "number" == typeof f.duration ? f.duration : f.duration in z.fx.speeds ? z.fx.speeds[f.duration] : z.fx.speeds._default, (null == f.queue || !0 === f.queue) && (f.queue = "fx"), f.old = f.complete, f.complete = function() {
z.isFunction(f.old) && f.old.call(this);
f.queue && z.dequeue(this, f.queue)
}, f
};
z.fn.extend({
fadeTo: function(a, d, c, f) {
return this.filter(va).css("opacity", 0).show().end().animate({
opacity: d
}, a, c, f)
},
animate: function(a, d, c, f) {
var k = z.isEmptyObject(a),
n = z.speed(d, c, f);
d = function() {
var d = R(this, z.extend({}, a), n);
(k || z._data(this, "finish")) && d.stop(!0)
};
return d.finish = d, k || !1 === n.queue ? this.each(d) : this.queue(n.queue, d)
},
stop: function(a, d, c) {
var f = function(a) {
var d = a.stop;
delete a.stop;
d(c)
};
return "string" != typeof a && (c = d, d = a, a = void 0), d && !1 !== a && this.queue(a || "fx", []), this.each(function() {
var d = !0,
k = null != a && a + "queueHooks",
n = z.timers,
e = z._data(this);
if (k) e[k] && e[k].stop && f(e[k]);
else
for (k in e) e[k] && e[k].stop && Mb.test(k) && f(e[k]);
for (k = n.length; k--;) n[k].elem !== this || null != a && n[k].queue !== a || (n[k].anim.stop(c), d = !1, n.splice(k, 1));
!d && c || z.dequeue(this, a)
})
},
finish: function(a) {
return !1 !== a && (a = a || "fx"), this.each(function() {
var d, c = z._data(this),
f = c[a + "queue"];
d = c[a + "queueHooks"];
var k = z.timers,
n = f ? f.length : 0;
c.finish = !0;
z.queue(this, a, []);
d && d.stop && d.stop.call(this, !0);
for (d = k.length; d--;) k[d].elem === this && k[d].queue === a && (k[d].anim.stop(!0), k.splice(d, 1));
for (d = 0; n > d; d++) f[d] && f[d].finish && f[d].finish.call(this);
delete c.finish
})
}
});
z.each(["toggle", "show", "hide"], function(a, d) {
var c = z.fn[d];
z.fn[d] = function(a, f, k) {
return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(ha(d, !0), a, f, k)
}
});
z.each({
slideDown: ha("show"),
slideUp: ha("hide"),
slideToggle: ha("toggle"),
fadeIn: {
opacity: "show"
},
fadeOut: {
opacity: "hide"
},
fadeToggle: {
opacity: "toggle"
}
}, function(a, d) {
z.fn[a] = function(a, c, f) {
return this.animate(d, a, c, f)
}
});
z.timers = [];
z.fx.tick = function() {
var a, d = z.timers,
c = 0;
for (Qa = z.now(); c < d.length; c++) a = d[c], a() || d[c] !== a || d.splice(c--, 1);
d.length || z.fx.stop();
Qa = void 0
};
z.fx.timer = function(a) {
z.timers.push(a);
a() ? z.fx.start() : z.timers.pop()
};
z.fx.interval = 13;
z.fx.start = function() {
mb || (mb = setInterval(z.fx.tick, z.fx.interval))
};
z.fx.stop = function() {
clearInterval(mb);
mb = null
};
z.fx.speeds = {
slow: 600,
fast: 200,
_default: 400
};
z.fn.delay = function(a, d) {
return a = z.fx ? z.fx.speeds[a] || a : a, d = d || "fx", this.queue(d, function(d, c) {
var f = setTimeout(d, a);
c.stop = function() {
clearTimeout(f)
}
})
};
(function() {
var a, d, c, f, k;
d = X.createElement("div");
d.setAttribute("className", "t");
d.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
f = d.getElementsByTagName("a")[0];
c = X.createElement("select");
k = c.appendChild(X.createElement("option"));
a = d.getElementsByTagName("input")[0];
f.style.cssText = "top:1px";
P.getSetAttribute = "t" !== d.className;
P.style = /top/.test(f.getAttribute("style"));
P.hrefNormalized = "/a" === f.getAttribute("href");
P.checkOn = !!a.value;
P.optSelected = k.selected;
P.enctype = !!X.createElement("form").enctype;
c.disabled = !0;
P.optDisabled = !k.disabled;
a = X.createElement("input");
a.setAttribute("value", "");
P.input = "" === a.getAttribute("value");
a.value = "t";
a.setAttribute("type", "radio");
P.radioValue = "t" === a.value
})();
var Nb = /\r/g;
z.fn.extend({
val: function(a) {
var d, c, f, k = this[0];
if (arguments.length) return f = z.isFunction(a), this.each(function(c) {
var k;
1 === this.nodeType && (k = f ? a.call(this, c, z(this).val()) : a, null == k ? k = "" : "number" == typeof k ? k += "" : z.isArray(k) && (k = z.map(k, function(a) {
return null == a ? "" : a + ""
})), d = z.valHooks[this.type] || z.valHooks[this.nodeName.toLowerCase()], d && "set" in d && void 0 !== d.set(this, k, "value") || (this.value = k))
});
if (k) return d = z.valHooks[k.type] || z.valHooks[k.nodeName.toLowerCase()], d && "get" in d && void 0 !== (c = d.get(k, "value")) ? c : (c = k.value, "string" == typeof c ? c.replace(Nb, "") : null == c ? "" : c)
}
});
z.extend({
valHooks: {
option: {
get: function(a) {
var d = z.find.attr(a, "value");
return null != d ? d : z.trim(z.text(a))
}
},
select: {
get: function(a) {
for (var d, c = a.options, f = a.selectedIndex, k = "select-one" === a.type || 0 > f, n = k ? null : [], e = k ? f + 1 : c.length, v = 0 > f ? e : k ? f : 0; e > v; v++)
if (d = c[v], !(!d.selected && v !== f || (P.optDisabled ? d.disabled : null !== d.getAttribute("disabled")) || d.parentNode.disabled && z.nodeName(d.parentNode, "optgroup"))) {
if (a = z(d).val(), k) return a;
n.push(a)
}
return n
},
set: function(a, d) {
for (var c, f, k = a.options, n = z.makeArray(d), e = k.length; e--;)
if (f = k[e], 0 <= z.inArray(z.valHooks.option.get(f), n)) try {
f.selected = c = !0
} catch (Dc) {
f.scrollHeight
} else f.selected = !1;
return c || (a.selectedIndex = -1), k
}
}
}
});
z.each(["radio", "checkbox"], function() {
z.valHooks[this] = {
set: function(a, d) {
return z.isArray(d) ? a.checked = 0 <= z.inArray(z(a).val(), d) : void 0
}
};
P.checkOn || (z.valHooks[this].get = function(a) {
return null === a.getAttribute("value") ? "on" : a.value
})
});
var Na, Tb, wb = z.expr.attrHandle,
Ub = /^(?:checked|selected)$/i,
ka = P.getSetAttribute,
Vb = P.input;
z.fn.extend({
attr: function(a, d) {
return vb(this, z.attr, a, d, 1 < arguments.length)
},
removeAttr: function(a) {
return this.each(function() {
z.removeAttr(this, a)
})
}
});
z.extend({
attr: function(a, d, c) {
var f, k, n = a.nodeType;
if (a && 3 !== n && 8 !== n && 2 !== n) return "undefined" === typeof a.getAttribute ? z.prop(a, d, c) : (1 === n && z.isXMLDoc(a) || (d = d.toLowerCase(), f = z.attrHooks[d] || (z.expr.match.bool.test(d) ? Tb : Na)), void 0 === c ? f && "get" in f && null !== (k = f.get(a, d)) ? k : (k = z.find.attr(a, d), null == k ? void 0 : k) : null !== c ? f && "set" in f && void 0 !== (k = f.set(a, c, d)) ? k : (a.setAttribute(d, c + ""), c) : void z.removeAttr(a, d))
},
removeAttr: function(a, d) {
var c, f, k = 0,
n = d && d.match(Ha);
if (n && 1 === a.nodeType)
for (; c = n[k++];) f = z.propFix[c] || c, z.expr.match.bool.test(c) ? Vb && ka || !Ub.test(c) ? a[f] = !1 : a[z.camelCase("default-" + c)] = a[f] = !1 : z.attr(a, c, ""), a.removeAttribute(ka ? c : f)
},
attrHooks: {
type: {
set: function(a, d) {
if (!P.radioValue && "radio" === d && z.nodeName(a, "input")) {
var c = a.value;
return a.setAttribute("type", d), c && (a.value = c), d
}
}
}
}
});
Tb = {
set: function(a, d, c) {
return !1 === d ? z.removeAttr(a, c) : Vb && ka || !Ub.test(c) ? a.setAttribute(!ka && z.propFix[c] || c, c) : a[z.camelCase("default-" + c)] = a[c] = !0, c
}
};
z.each(z.expr.match.bool.source.match(/\w+/g), function(a, d) {
var c = wb[d] || z.find.attr;
wb[d] = Vb && ka || !Ub.test(d) ? function(a, d, f) {
var k, n;
return f || (n = wb[d], wb[d] = k, k = null != c(a, d, f) ? d.toLowerCase() : null, wb[d] = n), k
} : function(a, d, c) {
return c ? void 0 : a[z.camelCase("default-" + d)] ? d.toLowerCase() : null
}
});
Vb && ka || (z.attrHooks.value = {
set: function(a, d, c) {
return z.nodeName(a, "input") ? void(a.defaultValue = d) : Na && Na.set(a, d, c)
}
});
ka || (Na = {
set: function(a, d, c) {
var f = a.getAttributeNode(c);
return f || a.setAttributeNode(f = a.ownerDocument.createAttribute(c)), f.value = d += "", "value" === c || d === a.getAttribute(c) ? d : void 0
}
}, wb.id = wb.name = wb.coords = function(a, d, c) {
var f;
return c ? void 0 : (f = a.getAttributeNode(d)) && "" !== f.value ? f.value : null
}, z.valHooks.button = {
get: function(a, d) {
var c = a.getAttributeNode(d);
return c && c.specified ? c.value : void 0
},
set: Na.set
}, z.attrHooks.contenteditable = {
set: function(a, d, c) {
Na.set(a, "" === d ? !1 : d, c)
}
}, z.each(["width", "height"], function(a, d) {
z.attrHooks[d] = {
set: function(a, c) {
return "" === c ? (a.setAttribute(d, "auto"), c) : void 0
}
}
}));
P.style || (z.attrHooks.style = {
get: function(a) {
return a.style.cssText || void 0
},
set: function(a, d) {
return a.style.cssText = d + ""
}
});
var Oa = /^(?:input|select|textarea|button|object)$/i,
mc = /^(?:a|area)$/i;
z.fn.extend({
prop: function(a, d) {
return vb(this, z.prop, a, d, 1 < arguments.length)
},
removeProp: function(a) {
return a = z.propFix[a] || a, this.each(function() {
try {
this[a] = void 0, delete this[a]
} catch (qc) {}
})
}
});
z.extend({
propFix: {
for: "htmlFor",
class: "className"
},
prop: function(a, d, c) {
var f, k, n, e = a.nodeType;
if (a && 3 !== e && 8 !== e && 2 !== e) return n = 1 !== e || !z.isXMLDoc(a), n && (d = z.propFix[d] || d, k = z.propHooks[d]), void 0 !== c ? k && "set" in k && void 0 !== (f = k.set(a, c, d)) ? f : a[d] = c : k && "get" in k && null !== (f = k.get(a, d)) ? f : a[d]
},
propHooks: {
tabIndex: {
get: function(a) {
var d = z.find.attr(a, "tabindex");
return d ? parseInt(d, 10) : Oa.test(a.nodeName) || mc.test(a.nodeName) && a.href ? 0 : -1
}
}
}
});
P.hrefNormalized || z.each(["href", "src"], function(a, d) {
z.propHooks[d] = {
get: function(a) {
return a.getAttribute(d, 4)
}
}
});
P.optSelected || (z.propHooks.selected = {
get: function(a) {
a = a.parentNode;
return a && (a.selectedIndex, a.parentNode && a.parentNode.selectedIndex), null
}
});
z.each("tabIndex readOnly maxLength cellSpacing cellPadding rowSpan colSpan useMap frameBorder contentEditable".split(" "), function() {
z.propFix[this.toLowerCase()] = this
});
P.enctype || (z.propFix.enctype = "encoding");
var Wb = /[\t\r\n\f]/g;
z.fn.extend({
addClass: function(a) {
var d, c, f, k, n, e = 0,
v = this.length;
d = "string" == typeof a && a;
if (z.isFunction(a)) return this.each(function(d) {
z(this).addClass(a.call(this, d, this.className))
});
if (d)
for (d = (a || "").match(Ha) || []; v > e; e++)
if (c = this[e], f = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(Wb, " ") : " ")) {
for (n = 0; k = d[n++];) 0 > f.indexOf(" " + k + " ") && (f += k + " ");
f = z.trim(f);
c.className !== f && (c.className = f)
}
return this
},
removeClass: function(a) {
var d, c, f, k, n, e = 0,
v = this.length;
d = 0 === arguments.length || "string" == typeof a && a;
if (z.isFunction(a)) return this.each(function(d) {
z(this).removeClass(a.call(this, d, this.className))
});
if (d)
for (d = (a || "").match(Ha) || []; v > e; e++)
if (c = this[e], f = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(Wb, " ") : "")) {
for (n = 0; k = d[n++];)
for (; 0 <= f.indexOf(" " + k + " ");) f = f.replace(" " + k + " ", " ");
f = a ? z.trim(f) : "";
c.className !== f && (c.className = f)
}
return this
},
toggleClass: function(a, d) {
var c = typeof a;
return "boolean" == typeof d && "string" === c ? d ? this.addClass(a) : this.removeClass(a) : this.each(z.isFunction(a) ? function(c) {
z(this).toggleClass(a.call(this, c, this.className, d), d)
} : function() {
if ("string" === c)
for (var d, f = 0, k = z(this), n = a.match(Ha) || []; d = n[f++];) k.hasClass(d) ? k.removeClass(d) : k.addClass(d);
else("undefined" === c || "boolean" === c) && (this.className && z._data(this, "__className__", this.className), this.className = this.className || !1 === a ? "" : z._data(this, "__className__") || "")
})
},
hasClass: function(a) {
a = " " + a + " ";
for (var d = 0, c = this.length; c > d; d++)
if (1 === this[d].nodeType && 0 <= (" " + this[d].className + " ").replace(Wb, " ").indexOf(a)) return !0;
return !1
}
});
z.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(a, d) {
z.fn[d] = function(a, c) {
return 0 < arguments.length ? this.on(d, null, a, c) : this.trigger(d)
}
});
z.fn.extend({
hover: function(a, d) {
return this.mouseenter(a).mouseleave(d || a)
},
bind: function(a, d, c) {
return this.on(a, null, d, c)
},
unbind: function(a, d) {
return this.off(a, null, d)
},
delegate: function(a, d, c, f) {
return this.on(d, a, c, f)
},
undelegate: function(a, d, c) {
return 1 === arguments.length ? this.off(a, "**") : this.off(d, a || "**", c)
}
});
var Fb = z.now(),
bc = /\?/,
Xb = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
z.parseJSON = function(a) {
if (d.JSON && d.JSON.parse) return d.JSON.parse(a + "");
var c, f = null,
k = z.trim(a + "");
return k && !z.trim(k.replace(Xb, function(a, d, k, n) {
return c && d && (f = 0), 0 === f ? a : (c = k || d, f += !n - !k, "")
})) ? Function("return " + k)() : z.error("Invalid JSON: " + a)
};
z.parseXML = function(a) {
var c, f;
if (!a || "string" != typeof a) return null;
try {
d.DOMParser ? (f = new DOMParser, c = f.parseFromString(a, "text/xml")) : (c = new ActiveXObject("Microsoft.XMLDOM"), c.async = "false", c.loadXML(a))
} catch (tc) {
c = void 0
}
return c && c.documentElement && !c.getElementsByTagName("parsererror").length || z.error("Invalid XML: " + a), c
};
var xb, fb, Yb = /#.*$/,
nc = /([?&])_=[^&]*/,
oc = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
eb = /^(?:GET|HEAD)$/,
Pa = /^\/\//,
$a = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
Ja = {},
cb = {},
gb = "*/".concat("*");
try {
fb = location.href
} catch (nb) {
fb = X.createElement("a"), fb.href = "", fb = fb.href
}
xb = $a.exec(fb.toLowerCase()) || [];
z.extend({
active: 0,
lastModified: {},
etag: {},
ajaxSettings: {
url: fb,
type: "GET",
isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(xb[1]),
global: !0,
processData: !0,
async: !0,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
accepts: {
"*": gb,
text: "text/plain",
html: "text/html",
xml: "application/xml, text/xml",
json: "application/json, text/javascript"
},
contents: {
xml: /xml/,
html: /html/,
json: /json/
},
responseFields: {
xml: "responseXML",
text: "responseText",
json: "responseJSON"
},
converters: {
"* text": String,
"text html": !0,
"text json": z.parseJSON,
"text xml": z.parseXML
},
flatOptions: {
url: !0,
context: !0
}
},
ajaxSetup: function(a, d) {
return d ? ua(ua(a, z.ajaxSettings), d) : ua(z.ajaxSettings, a)
},
ajaxPrefilter: aa(Ja),
ajaxTransport: aa(cb),
ajax: function(a, d) {
function c(a, d, c, f) {
var k, m, C, E, F = d;
if (2 !== A) {
A = 2;
v && clearTimeout(v);
h = void 0;
e = f || "";
N.readyState = 0 < a ? 4 : 0;
f = 200 <= a && 300 > a || 304 === a;
if (c) {
C = w;
for (var G = N, Ca, K, fa, J, I = C.contents, Ra = C.dataTypes;
"*" === Ra[0];) Ra.shift(), void 0 === K && (K = C.mimeType || G.getResponseHeader("Content-Type"));
if (K)
for (J in I)
if (I[J] && I[J].test(K)) {
Ra.unshift(J);
break
}
if (Ra[0] in c) fa = Ra[0];
else {
for (J in c) {
if (!Ra[0] || C.converters[J + " " + Ra[0]]) {
fa = J;
break
}
Ca || (Ca = J)
}
fa = fa || Ca
}
C = fa ? (fa !== Ra[0] && Ra.unshift(fa), c[fa]) : void 0
}
var oa;
a: {
c = w;
Ca = C;
K = N;
fa = f;
var Fa, H, O;
C = {};
G = c.dataTypes.slice();
if (G[1])
for (Fa in c.converters) C[Fa.toLowerCase()] = c.converters[Fa];
for (J = G.shift(); J;)
if (c.responseFields[J] && (K[c.responseFields[J]] = Ca), !O && fa && c.dataFilter && (Ca = c.dataFilter(Ca, c.dataType)), O = J, J = G.shift())
if ("*" === J) J = O;
else if ("*" !== O && O !== J) {
if (Fa = C[O + " " + J] || C["* " + J], !Fa)
for (oa in C)
if (H = oa.split(" "), H[1] === J && (Fa = C[O + " " + H[0]] || C["* " + H[0]])) {
!0 === Fa ? Fa = C[oa] : !0 !== C[oa] && (J = H[0], G.unshift(H[1]));
break
}
if (!0 !== Fa)
if (Fa && c["throws"]) Ca = Fa(Ca);
else try {
Ca = Fa(Ca)
} catch (Yc) {
oa = {
state: "parsererror",
error: Fa ? Yc : "No conversion from " + O + " to " + J
};
break a
}
}
oa = {
state: "success",
data: Ca
}
}
C = oa;
f ? (w.ifModified && (E = N.getResponseHeader("Last-Modified"), E && (z.lastModified[n] = E), E = N.getResponseHeader("etag"), E && (z.etag[n] = E)), 204 === a || "HEAD" === w.type ? F = "nocontent" : 304 === a ? F = "notmodified" : (F = C.state, k = C.data, m = C.error, f = !m)) : (m = F, (a || !F) && (F = "error", 0 > a && (a = 0)));
N.status = a;
N.statusText = (d || F) + "";
f ? q.resolveWith(u, [k, F, N]) : q.rejectWith(u, [N, F, m]);
N.statusCode(D);
D = void 0;
t && B.trigger(f ? "ajaxSuccess" : "ajaxError", [N, w, f ? k : m]);
p.fireWith(u, [N, F]);
t && (B.trigger("ajaxComplete", [N, w]), --z.active || z.event.trigger("ajaxStop"))
}
}
"object" == typeof a && (d = a, a = void 0);
d = d || {};
var f, k, n, e, v, t, h, m, w = z.ajaxSetup({}, d),
u = w.context || w,
B = w.context && (u.nodeType || u.jquery) ? z(u) : z.event,
q = z.Deferred(),
p = z.Callbacks("once memory"),
D = w.statusCode || {},
C = {},
E = {},
A = 0,
F = "canceled",
N = {
readyState: 0,
getResponseHeader: function(a) {
var d;
if (2 === A) {
if (!m)
for (m = {}; d = oc.exec(e);) m[d[1].toLowerCase()] = d[2];
d = m[a.toLowerCase()]
}
return null == d ? null : d
},
getAllResponseHeaders: function() {
return 2 === A ? e : null
},
setRequestHeader: function(a, d) {
var c = a.toLowerCase();
return A || (a = E[c] = E[c] || a, C[a] = d), this
},
overrideMimeType: function(a) {
return A || (w.mimeType = a), this
},
statusCode: function(a) {
var d;
if (a)
if (2 > A)
for (d in a) D[d] = [D[d], a[d]];
else N.always(a[N.status]);
return this
},
abort: function(a) {
a = a || F;
return h && h.abort(a), c(0, a), this
}
};
if (q.promise(N).complete = p.add, N.success = N.done, N.error = N.fail, w.url = ((a || w.url || fb) + "").replace(Yb, "").replace(Pa, xb[1] + "//"), w.type = d.method || d.type || w.method || w.type, w.dataTypes = z.trim(w.dataType || "*").toLowerCase().match(Ha) || [""], null == w.crossDomain && (f = $a.exec(w.url.toLowerCase()), w.crossDomain = !(!f || f[1] === xb[1] && f[2] === xb[2] && (f[3] || ("http:" === f[1] ? "80" : "443")) === (xb[3] || ("http:" === xb[1] ? "80" : "443")))), w.data && w.processData && "string" != typeof w.data && (w.data = z.param(w.data, w.traditional)), da(Ja, w, d, N), 2 === A) return N;
(t = z.event && w.global) && 0 === z.active++ && z.event.trigger("ajaxStart");
w.type = w.type.toUpperCase();
w.hasContent = !eb.test(w.type);
n = w.url;
w.hasContent || (w.data && (n = w.url += (bc.test(n) ? "&" : "?") + w.data, delete w.data), !1 === w.cache && (w.url = nc.test(n) ? n.replace(nc, "$1_=" + Fb++) : n + (bc.test(n) ? "&" : "?") + "_=" + Fb++));
w.ifModified && (z.lastModified[n] && N.setRequestHeader("If-Modified-Since", z.lastModified[n]), z.etag[n] && N.setRequestHeader("If-None-Match", z.etag[n]));
(w.data && w.hasContent && !1 !== w.contentType || d.contentType) && N.setRequestHeader("Content-Type", w.contentType);
N.setRequestHeader("Accept", w.dataTypes[0] && w.accepts[w.dataTypes[0]] ? w.accepts[w.dataTypes[0]] + ("*" !== w.dataTypes[0] ? ", " + gb + "; q=0.01" : "") : w.accepts["*"]);
for (k in w.headers) N.setRequestHeader(k, w.headers[k]);
if (w.beforeSend && (!1 === w.beforeSend.call(u, N, w) || 2 === A)) return N.abort();
F = "abort";
for (k in {
success: 1,
error: 1,
complete: 1
}) N[k](w[k]);
if (h = da(cb, w, d, N)) {
N.readyState = 1;
t && B.trigger("ajaxSend", [N, w]);
w.async && 0 < w.timeout && (v = setTimeout(function() {
N.abort("timeout")
}, w.timeout));
try {
A = 1, h.send(C, c)
} catch (wc) {
if (!(2 > A)) throw wc;
c(-1, wc)
}
} else c(-1, "No Transport");
return N
},
getJSON: function(a, d, c) {
return z.get(a, d, c, "json")
},
getScript: function(a, d) {
return z.get(a, void 0, d, "script")
}
});
z.each(["get", "post"], function(a, d) {
z[d] = function(a, c, f, k) {
return z.isFunction(c) && (k = k || f, f = c, c = void 0), z.ajax({
url: a,
type: d,
dataType: k,
data: c,
success: f
})
}
});
z._evalUrl = function(a) {
return z.ajax({
url: a,
type: "GET",
dataType: "script",
async: !1,
global: !1,
throws: !0
})
};
z.fn.extend({
wrapAll: function(a) {
if (z.isFunction(a)) return this.each(function(d) {
z(this).wrapAll(a.call(this, d))
});
if (this[0]) {
var d = z(a, this[0].ownerDocument).eq(0).clone(!0);
this[0].parentNode && d.insertBefore(this[0]);
d.map(function() {
for (var a = this; a.firstChild && 1 === a.firstChild.nodeType;) a = a.firstChild;
return a
}).append(this)
}
return this
},
wrapInner: function(a) {
return this.each(z.isFunction(a) ? function(d) {
z(this).wrapInner(a.call(this, d))
} : function() {
var d = z(this),
c = d.contents();
c.length ? c.wrapAll(a) : d.append(a)
})
},
wrap: function(a) {
var d = z.isFunction(a);
return this.each(function(c) {
z(this).wrapAll(d ? a.call(this, c) : a)
})
},
unwrap: function() {
return this.parent().each(function() {
z.nodeName(this, "body") || z(this).replaceWith(this.childNodes)
}).end()
}
});
z.expr.filters.hidden = function(a) {
return 0 >= a.offsetWidth && 0 >= a.offsetHeight || !P.reliableHiddenOffsets() && "none" === (a.style && a.style.display || z.css(a, "display"))
};
z.expr.filters.visible = function(a) {
return !z.expr.filters.hidden(a)
};
var Gb = /%20/g,
N = /\[\]$/,
Ca = /\r?\n/g,
fa = /^(?:submit|button|image|reset|file)$/i,
Ra = /^(?:input|select|textarea|keygen)/i;
z.param = function(a, d) {
var c, f = [],
k = function(a, d) {
d = z.isFunction(d) ? d() : null == d ? "" : d;
f[f.length] = encodeURIComponent(a) + "=" + encodeURIComponent(d)
};
if (void 0 === d && (d = z.ajaxSettings && z.ajaxSettings.traditional), z.isArray(a) || a.jquery && !z.isPlainObject(a)) z.each(a, function() {
k(this.name, this.value)
});
else
for (c in a) Da(c, a[c], d, k);
return f.join("&").replace(Gb, "+")
};
z.fn.extend({
serialize: function() {
return z.param(this.serializeArray())
},
serializeArray: function() {
return this.map(function() {
var a = z.prop(this, "elements");
return a ? z.makeArray(a) : this
}).filter(function() {
var a = this.type;
return this.name && !z(this).is(":disabled") && Ra.test(this.nodeName) && !fa.test(a) && (this.checked || !Jb.test(a))
}).map(function(a, d) {
var c = z(this).val();
return null == c ? null : z.isArray(c) ? z.map(c, function(a) {
return {
name: d.name,
value: a.replace(Ca, "\r\n")
}
}) : {
name: d.name,
value: c.replace(Ca, "\r\n")
}
}).get()
}
});
z.ajaxSettings.xhr = void 0 !== d.ActiveXObject ? function() {
var a;
if (!(a = !this.isLocal && /^(get|post|head|put|delete|options)$/i.test(this.type) && S())) a: {
try {
a = new d.ActiveXObject("Microsoft.XMLHTTP");
break a
} catch (qc) {}
a = void 0
}
return a
} : S;
var Xa = 0,
Ya = {},
Ob = z.ajaxSettings.xhr();
d.attachEvent && d.attachEvent("onunload", function() {
for (var a in Ya) Ya[a](void 0, !0)
});
P.cors = !!Ob && "withCredentials" in Ob;
(Ob = P.ajax = !!Ob) && z.ajaxTransport(function(a) {
if (!a.crossDomain || P.cors) {
var d;
return {
send: function(c, f) {
var k, n = a.xhr(),
e = ++Xa;
if (n.open(a.type, a.url, a.async, a.username, a.password), a.xhrFields)
for (k in a.xhrFields) n[k] = a.xhrFields[k];
a.mimeType && n.overrideMimeType && n.overrideMimeType(a.mimeType);
a.crossDomain || c["X-Requested-With"] || (c["X-Requested-With"] = "XMLHttpRequest");
for (k in c) void 0 !== c[k] && n.setRequestHeader(k, c[k] + "");
n.send(a.hasContent && a.data || null);
d = function(c, k) {
var v, t, h;
if (d && (k || 4 === n.readyState))
if (delete Ya[e], d = void 0, n.onreadystatechange = z.noop, k) 4 !== n.readyState && n.abort();
else {
h = {};
v = n.status;
"string" == typeof n.responseText && (h.text = n.responseText);
try {
t = n.statusText
} catch (zc) {
t = ""
}
v || !a.isLocal || a.crossDomain ? 1223 === v && (v = 204) : v = h.text ? 200 : 404
}
h && f(v, t, h, n.getAllResponseHeaders())
};
a.async ? 4 === n.readyState ? setTimeout(d) : n.onreadystatechange = Ya[e] = d : d()
},
abort: function() {
d && d(void 0, !0)
}
}
}
});
z.ajaxSetup({
accepts: {
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
},
contents: {
script: /(?:java|ecma)script/
},
converters: {
"text script": function(a) {
return z.globalEval(a), a
}
}
});
z.ajaxPrefilter("script", function(a) {
void 0 === a.cache && (a.cache = !1);
a.crossDomain && (a.type = "GET", a.global = !1)
});
z.ajaxTransport("script", function(a) {
if (a.crossDomain) {
var d, c = X.head || z("head")[0] || X.documentElement;
return {
send: function(f, k) {
d = X.createElement("script");
d.async = !0;
a.scriptCharset && (d.charset = a.scriptCharset);
d.src = a.url;
d.onload = d.onreadystatechange = function(a, c) {
(c || !d.readyState || /loaded|complete/.test(d.readyState)) && (d.onload = d.onreadystatechange = null, d.parentNode && d.parentNode.removeChild(d), d = null, c || k(200, "success"))
};
c.insertBefore(d, c.firstChild)
},
abort: function() {
d && d.onload(void 0, !0)
}
}
}
});
var pc = [],
sa = /(=)\?(?=&|$)|\?\?/;
z.ajaxSetup({
jsonp: "callback",
jsonpCallback: function() {
var a = pc.pop() || z.expando + "_" + Fb++;
return this[a] = !0, a
}
});
z.ajaxPrefilter("json jsonp", function(a, c, f) {
var k, n, e, v = !1 !== a.jsonp && (sa.test(a.url) ? "url" : "string" == typeof a.data && !(a.contentType || "").indexOf("application/x-www-form-urlencoded") && sa.test(a.data) && "data");
return v || "jsonp" === a.dataTypes[0] ? (k = a.jsonpCallback = z.isFunction(a.jsonpCallback) ? a.jsonpCallback() : a.jsonpCallback, v ? a[v] = a[v].replace(sa, "$1" + k) : !1 !== a.jsonp && (a.url += (bc.test(a.url) ? "&" : "?") + a.jsonp + "=" + k), a.converters["script json"] = function() {
return e || z.error(k + " was not called"), e[0]
}, a.dataTypes[0] = "json", n = d[k], d[k] = function() {
e = arguments
}, f.always(function() {
d[k] = n;
a[k] && (a.jsonpCallback = c.jsonpCallback, pc.push(k));
e && z.isFunction(n) && n(e[0]);
e = n = void 0
}), "script") : void 0
});
z.parseHTML = function(a, d, c) {
if (!a || "string" != typeof a) return null;
"boolean" == typeof d && (c = d, d = !1);
d = d || X;
var f = ib.exec(a);
c = !c && [];
return f ? [d.createElement(f[1])] : (f = z.buildFragment([a], d, c), c && c.length && z(c).remove(), z.merge([], f.childNodes))
};
var Zb = z.fn.load;
z.fn.load = function(a, d, c) {
if ("string" != typeof a && Zb) return Zb.apply(this, arguments);
var f, k, n, e = this,
v = a.indexOf(" ");
return 0 <= v && (f = z.trim(a.slice(v, a.length)), a = a.slice(0, v)), z.isFunction(d) ? (c = d, d = void 0) : d && "object" == typeof d && (n = "POST"), 0 < e.length && z.ajax({
url: a,
type: n,
dataType: "html",
data: d
}).done(function(a) {
k = arguments;
e.html(f ? z("<div>").append(z.parseHTML(a)).find(f) : a)
}).complete(c && function(a, d) {
e.each(c, k || [a.responseText, d, a])
}), this
};
z.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function(a, d) {
z.fn[d] = function(a) {
return this.on(d, a)
}
});
z.expr.filters.animated = function(a) {
return z.grep(z.timers, function(d) {
return a === d.elem
}).length
};
var Hb = d.document.documentElement;
z.offset = {
setOffset: function(a, d, c) {
var f, k, n, e, v, t, h = z.css(a, "position"),
m = z(a),
w = {};
"static" === h && (a.style.position = "relative");
v = m.offset();
n = z.css(a, "top");
t = z.css(a, "left");
("absolute" === h || "fixed" === h) && -1 < z.inArray("auto", [n, t]) ? (f = m.position(), e = f.top, k = f.left) : (e = parseFloat(n) || 0, k = parseFloat(t) || 0);
z.isFunction(d) && (d = d.call(a, c, v));
null != d.top && (w.top = d.top - v.top + e);
null != d.left && (w.left = d.left - v.left + k);
"using" in d ? d.using.call(a, w) : m.css(w)
}
};
z.fn.extend({
offset: function(a) {
if (arguments.length) return void 0 === a ? this : this.each(function(d) {
z.offset.setOffset(this, a, d)
});
var d, c, f = {
top: 0,
left: 0
},
k = this[0],
n = k && k.ownerDocument;
if (n) return d = n.documentElement, z.contains(d, k) ? ("undefined" !== typeof k.getBoundingClientRect && (f = k.getBoundingClientRect()), c = wa(n), {
top: f.top + (c.pageYOffset || d.scrollTop) - (d.clientTop || 0),
left: f.left + (c.pageXOffset || d.scrollLeft) - (d.clientLeft || 0)
}) : f
},
position: function() {
if (this[0]) {
var a, d, c = {
top: 0,
left: 0
},
f = this[0];
return "fixed" === z.css(f, "position") ? d = f.getBoundingClientRect() : (a = this.offsetParent(), d = this.offset(), z.nodeName(a[0], "html") || (c = a.offset()), c.top += z.css(a[0], "borderTopWidth", !0), c.left += z.css(a[0], "borderLeftWidth", !0)), {
top: d.top - c.top - z.css(f, "marginTop", !0),
left: d.left - c.left - z.css(f, "marginLeft", !0)
}
}
},
offsetParent: function() {
return this.map(function() {
for (var a = this.offsetParent || Hb; a && !z.nodeName(a, "html") && "static" === z.css(a, "position");) a = a.offsetParent;
return a || Hb
})
}
});
z.each({
scrollLeft: "pageXOffset",
scrollTop: "pageYOffset"
}, function(a, d) {
var c = /Y/.test(d);
z.fn[a] = function(f) {
return vb(this, function(a, f, k) {
var n = wa(a);
return void 0 === k ? n ? d in n ? n[d] : n.document.documentElement[f] : a[f] : void(n ? n.scrollTo(c ? z(n).scrollLeft() : k, c ? k : z(n).scrollTop()) : a[f] = k)
}, a, f, arguments.length, null)
}
});
z.each(["top", "left"], function(a, d) {
z.cssHooks[d] = M(P.pixelPosition, function(a, c) {
return c ? (c = zb(a, d), la.test(c) ? z(a).position()[d] + "px" : c) : void 0
})
});
z.each({
Height: "height",
Width: "width"
}, function(a, d) {
z.each({
padding: "inner" + a,
content: d,
"": "outer" + a
}, function(c, f) {
z.fn[f] = function(f, k) {
var n = arguments.length && (c || "boolean" != typeof f),
e = c || (!0 === f || !0 === k ? "margin" : "border");
return vb(this, function(d, c, f) {
var k;
return z.isWindow(d) ? d.document.documentElement["client" + a] : 9 === d.nodeType ? (k = d.documentElement, Math.max(d.body["scroll" + a], k["scroll" + a], d.body["offset" + a], k["offset" + a], k["client" + a])) : void 0 === f ? z.css(d, c, e) : z.style(d, c, f, e)
}, d, n ? f : void 0, n, null)
}
})
});
z.fn.size = function() {
return this.length
};
z.fn.andSelf = z.fn.addBack;
"function" == typeof define && define.amd && define("jquery", [], function() {
return z
});
var sc = d.jQuery,
vc = d.$;
return z.noConflict = function(a) {
return d.$ === z && (d.$ = vc), a && d.jQuery === z && (d.jQuery = sc), z
}, "undefined" === typeof c && (d.jQuery = d.$ = z), z
});
(function(d) {
"function" == typeof define && define.amd ? define(["jquery"], d) : d(jQuery)
})(function(d) {
function c(a, c) {
var f, k, n, v = a.nodeName.toLowerCase();
return "area" === v ? (f = a.parentNode, k = f.name, a.href && k && "map" === f.nodeName.toLowerCase() ? (n = d("img[usemap='#" + k + "']")[0], !!n && e(n)) : !1) : (/input|select|textarea|button|object/.test(v) ? !a.disabled : "a" === v ? a.href || c : c) && e(a)
}
function e(a) {
return d.expr.filters.visible(a) && !d(a).parents().addBack().filter(function() {
return "hidden" === d.css(this, "visibility")
}).length
}
function m(a) {
for (var d, c; a.length && a[0] !== document;) {
if (d = a.css("position"), ("absolute" === d || "relative" === d || "fixed" === d) && (c = parseInt(a.css("zIndex"), 10), !isNaN(c) && 0 !== c)) return c;
a = a.parent()
}
return 0
}
function h() {
this._curInst = null;
this._keyEvent = !1;
this._disabledInputs = [];
this._inDialog = this._datepickerShowing = !1;
this._mainDivId = "ui-datepicker-div";
this._inlineClass = "ui-datepicker-inline";
this._appendClass = "ui-datepicker-append";
this._triggerClass = "ui-datepicker-trigger";
this._dialogClass = "ui-datepicker-dialog";
this._disableClass = "ui-datepicker-disabled";
this._unselectableClass = "ui-datepicker-unselectable";
this._currentClass = "ui-datepicker-current-day";
this._dayOverClass = "ui-datepicker-days-cell-over";
this.regional = [];
this.regional[""] = {
closeText: "Done",
prevText: "Prev",
nextText: "Next",
currentText: "Today",
monthNames: "January February March April May June July August September October November December".split(" "),
monthNamesShort: "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),
dayNames: "Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),
dayNamesShort: "Sun Mon Tue Wed Thu Fri Sat".split(" "),
dayNamesMin: "Su Mo Tu We Th Fr Sa".split(" "),
weekHeader: "Wk",
dateFormat: "mm/dd/yy",
firstDay: 0,
isRTL: !1,
showMonthAfterYear: !1,
yearSuffix: ""
};
this._defaults = {
showOn: "focus",
showAnim: "fadeIn",
showOptions: {},
defaultDate: null,
appendText: "",
buttonText: "...",
buttonImage: "",
buttonImageOnly: !1,
hideIfNoPrevNext: !1,
navigationAsDateFormat: !1,
gotoCurrent: !1,
changeMonth: !1,
changeYear: !1,
yearRange: "c-10:c+10",
showOtherMonths: !1,
selectOtherMonths: !1,
showWeek: !1,
calculateWeek: this.iso8601Week,
shortYearCutoff: "+10",
minDate: null,
maxDate: null,
duration: "fast",
beforeShowDay: null,
beforeShow: null,
onSelect: null,
onChangeMonthYear: null,
onClose: null,
numberOfMonths: 1,
showCurrentAtPos: 0,
stepMonths: 1,
stepBigMonths: 12,
altField: "",
altFormat: "",
constrainInput: !0,
showButtonPanel: !1,
autoSize: !1,
disabled: !1
};
d.extend(this._defaults, this.regional[""]);
this.regional.en = d.extend(!0, {}, this.regional[""]);
this.regional["en-US"] = d.extend(!0, {}, this.regional.en);
this.dpDiv = p(d("<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))
}
function p(a) {
return a.delegate("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a", "mouseout", function() {
d(this).removeClass("ui-state-hover"); - 1 !== this.className.indexOf("ui-datepicker-prev") && d(this).removeClass("ui-datepicker-prev-hover"); - 1 !== this.className.indexOf("ui-datepicker-next") && d(this).removeClass("ui-datepicker-next-hover")
}).delegate("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a", "mouseover", q)
}
function q() {
d.datepicker._isDisabledDatepicker(A.inline ? A.dpDiv.parent()[0] : A.input[0]) || (d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"), d(this).addClass("ui-state-hover"), -1 !== this.className.indexOf("ui-datepicker-prev") && d(this).addClass("ui-datepicker-prev-hover"), -1 !== this.className.indexOf("ui-datepicker-next") && d(this).addClass("ui-datepicker-next-hover"))
}
function a(a, c) {
d.extend(a, c);
for (var f in c) null == c[f] && (a[f] = c[f]);
return a
}
function f(a) {
return function() {
var d = this.element.val();
a.apply(this, arguments);
this._refresh();
d !== this.element.val() && this._trigger("change")
}
}
d.ui = d.ui || {};
d.extend(d.ui, {
version: "1.11.2",
keyCode: {
BACKSPACE: 8,
COMMA: 188,
DELETE: 46,
DOWN: 40,
END: 35,
ENTER: 13,
ESCAPE: 27,
HOME: 36,
LEFT: 37,
PAGE_DOWN: 34,
PAGE_UP: 33,
PERIOD: 190,
RIGHT: 39,
SPACE: 32,
TAB: 9,
UP: 38
}
});
d.fn.extend({
scrollParent: function(a) {
var c = this.css("position"),
f = "absolute" === c,
k = a ? /(auto|scroll|hidden)/ : /(auto|scroll)/;
a = this.parents().filter(function() {
var a = d(this);
return f && "static" === a.css("position") ? !1 : k.test(a.css("overflow") + a.css("overflow-y") + a.css("overflow-x"))
}).eq(0);
return "fixed" !== c && a.length ? a : d(this[0].ownerDocument || document)
},
uniqueId: function() {
var a = 0;
return function() {
return this.each(function() {
this.id || (this.id = "ui-id-" + ++a)
})
}
}(),
removeUniqueId: function() {
return this.each(function() {
/^ui-id-\d+$/.test(this.id) && d(this).removeAttr("id")
})
}
});
d.extend(d.expr[":"], {
data: d.expr.createPseudo ? d.expr.createPseudo(function(a) {
return function(c) {
return !!d.data(c, a)
}
}) : function(a, c, f) {
return !!d.data(a, f[3])
},
focusable: function(a) {
return c(a, !isNaN(d.attr(a, "tabindex")))
},
tabbable: function(a) {
var f = d.attr(a, "tabindex"),
k = isNaN(f);
return (k || 0 <= f) && c(a, !k)
}
});
d("<a>").outerWidth(1).jquery || d.each(["Width", "Height"], function(a, c) {
function f(a, c, f, n) {
return d.each(k, function() {
c -= parseFloat(d.css(a, "padding" + this)) || 0;
f && (c -= parseFloat(d.css(a, "border" + this + "Width")) || 0);
n && (c -= parseFloat(d.css(a, "margin" + this)) || 0)
}), c
}
var k = "Width" === c ? ["Left", "Right"] : ["Top", "Bottom"],
n = c.toLowerCase(),
e = {
innerWidth: d.fn.innerWidth,
innerHeight: d.fn.innerHeight,
outerWidth: d.fn.outerWidth,
outerHeight: d.fn.outerHeight
};
d.fn["inner" + c] = function(a) {
return void 0 === a ? e["inner" + c].call(this) : this.each(function() {
d(this).css(n, f(this, a) + "px")
})
};
d.fn["outer" + c] = function(a, k) {
return "number" != typeof a ? e["outer" + c].call(this, a) : this.each(function() {
d(this).css(n, f(this, a, !0, k) + "px")
})
}
});
d.fn.addBack || (d.fn.addBack = function(a) {
return this.add(null == a ? this.prevObject : this.prevObject.filter(a))
});
d("<a>").data("a-b", "a").removeData("a-b").data("a-b") && (d.fn.removeData = function(a) {
return function(c) {
return arguments.length ? a.call(this, d.camelCase(c)) : a.call(this)
}
}(d.fn.removeData));
d.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());
d.fn.extend({
focus: function(a) {
return function(c, f) {
return "number" == typeof c ? this.each(function() {
var a = this;
setTimeout(function() {
d(a).focus();
f && f.call(a)
}, c)
}) : a.apply(this, arguments)
}
}(d.fn.focus),
disableSelection: function() {
var a = "onselectstart" in document.createElement("div") ? "selectstart" : "mousedown";
return function() {
return this.bind(a + ".ui-disableSelection", function(a) {
a.preventDefault()
})
}
}(),
enableSelection: function() {
return this.unbind(".ui-disableSelection")
},
zIndex: function(a) {
if (void 0 !== a) return this.css("zIndex", a);
if (this.length) {
var c, f;
for (a = d(this[0]); a.length && a[0] !== document;) {
if (c = a.css("position"), ("absolute" === c || "relative" === c || "fixed" === c) && (f = parseInt(a.css("zIndex"), 10), !isNaN(f) && 0 !== f)) return f;
a = a.parent()
}
}
return 0
}
});
d.ui.plugin = {
add: function(a, c, f) {
var k;
a = d.ui[a].prototype;
for (k in f) a.plugins[k] = a.plugins[k] || [], a.plugins[k].push([c, f[k]])
},
call: function(a, d, c, f) {
if ((d = a.plugins[d]) && (f || a.element[0].parentNode && 11 !== a.element[0].parentNode.nodeType))
for (f = 0; d.length > f; f++) a.options[d[f][0]] && d[f][1].apply(a.element, c)
}
};
var k = 0,
n = Array.prototype.slice;
d.cleanData = function(a) {
return function(c) {
var f, k, n;
for (n = 0; null != (k = c[n]); n++) try {
(f = d._data(k, "events")) && f.remove && d(k).triggerHandler("remove")
} catch (G) {}
a(c)
}
}(d.cleanData);
d.widget = function(a, c, f) {
var k, n, e, v, t = {},
h = a.split(".")[0];
return a = a.split(".")[1], k = h + "-" + a, f || (f = c, c = d.Widget), d.expr[":"][k.toLowerCase()] = function(a) {
return !!d.data(a, k)
}, d[h] = d[h] || {}, n = d[h][a], e = d[h][a] = function(a, d) {
return this._createWidget ? (arguments.length && this._createWidget(a, d), void 0) : new e(a, d)
}, d.extend(e, n, {
version: f.version,
_proto: d.extend({}, f),
_childConstructors: []
}), v = new c, v.options = d.widget.extend({}, v.options), d.each(f, function(a, f) {
return d.isFunction(f) ? (t[a] = function() {
var d = function() {
return c.prototype[a].apply(this, arguments)
},
k = function(d) {
return c.prototype[a].apply(this, d)
};
return function() {
var a, c = this._super,
n = this._superApply;
return this._super = d, this._superApply = k, a = f.apply(this, arguments), this._super = c, this._superApply = n, a
}
}(), void 0) : (t[a] = f, void 0)
}), e.prototype = d.widget.extend(v, {
widgetEventPrefix: n ? v.widgetEventPrefix || a : a
}, t, {
constructor: e,
namespace: h,
widgetName: a,
widgetFullName: k
}), n ? (d.each(n._childConstructors, function(a, c) {
var f = c.prototype;
d.widget(f.namespace + "." + f.widgetName, e, c._proto)
}), delete n._childConstructors) : c._childConstructors.push(e), d.widget.bridge(a, e), e
};
d.widget.extend = function(a) {
for (var c, f, k = n.call(arguments, 1), e = 0, v = k.length; v > e; e++)
for (c in k[e]) f = k[e][c], k[e].hasOwnProperty(c) && void 0 !== f && (a[c] = d.isPlainObject(f) ? d.isPlainObject(a[c]) ? d.widget.extend({}, a[c], f) : d.widget.extend({}, f) : f);
return a
};
d.widget.bridge = function(a, c) {
var f = c.prototype.widgetFullName || a;
d.fn[a] = function(k) {
var e = "string" == typeof k,
v = n.call(arguments, 1),
t = this;
return k = !e && v.length ? d.widget.extend.apply(null, [k].concat(v)) : k, e ? this.each(function() {
var c, n = d.data(this, f);
return "instance" === k ? (t = n, !1) : n ? d.isFunction(n[k]) && "_" !== k.charAt(0) ? (c = n[k].apply(n, v), c !== n && void 0 !== c ? (t = c && c.jquery ? t.pushStack(c.get()) : c, !1) : void 0) : d.error("no such method '" + k + "' for " + a + " widget instance") : d.error("cannot call methods on " + a + " prior to initialization; attempted to call method '" + k + "'")
}) : this.each(function() {
var a = d.data(this, f);
a ? (a.option(k || {}), a._init && a._init()) : d.data(this, f, new c(k, this))
}), t
}
};
d.Widget = function() {};
d.Widget._childConstructors = [];
d.Widget.prototype = {
widgetName: "widget",
widgetEventPrefix: "",
defaultElement: "<div>",
options: {
disabled: !1,
create: null
},
_createWidget: function(a, c) {
c = d(c || this.defaultElement || this)[0];
this.element = d(c);
this.uuid = k++;
this.eventNamespace = "." + this.widgetName + this.uuid;
this.bindings = d();
this.hoverable = d();
this.focusable = d();
c !== this && (d.data(c, this.widgetFullName, this), this._on(!0, this.element, {
remove: function(a) {
a.target === c && this.destroy()
}
}), this.document = d(c.style ? c.ownerDocument : c.document || c), this.window = d(this.document[0].defaultView || this.document[0].parentWindow));
this.options = d.widget.extend({}, this.options, this._getCreateOptions(), a);
this._create();
this._trigger("create", null, this._getCreateEventData());
this._init()
},
_getCreateOptions: d.noop,
_getCreateEventData: d.noop,
_create: d.noop,
_init: d.noop,
destroy: function() {
this._destroy();
this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(d.camelCase(this.widgetFullName));
this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled ui-state-disabled");
this.bindings.unbind(this.eventNamespace);
this.hoverable.removeClass("ui-state-hover");
this.focusable.removeClass("ui-state-focus")
},
_destroy: d.noop,
widget: function() {
return this.element
},
option: function(a, c) {
var f, k, n, e = a;
if (0 === arguments.length) return d.widget.extend({}, this.options);
if ("string" == typeof a)
if (e = {}, f = a.split("."), a = f.shift(), f.length) {
k = e[a] = d.widget.extend({}, this.options[a]);
for (n = 0; f.length - 1 > n; n++) k[f[n]] = k[f[n]] || {}, k = k[f[n]];
if (a = f.pop(), 1 === arguments.length) return void 0 === k[a] ? null : k[a];
k[a] = c
} else {
if (1 === arguments.length) return void 0 === this.options[a] ? null : this.options[a];
e[a] = c
}
return this._setOptions(e), this
},
_setOptions: function(a) {
for (var d in a) this._setOption(d, a[d]);
return this
},
_setOption: function(a, d) {
return this.options[a] = d, "disabled" === a && (this.widget().toggleClass(this.widgetFullName + "-disabled", !!d), d && (this.hoverable.removeClass("ui-state-hover"), this.focusable.removeClass("ui-state-focus"))), this
},
enable: function() {
return this._setOptions({
disabled: !1
})
},
disable: function() {
return this._setOptions({
disabled: !0
})
},
_on: function(a, c, f) {
var k, n = this;
"boolean" != typeof a && (f = c, c = a, a = !1);
f ? (c = k = d(c), this.bindings = this.bindings.add(c)) : (f = c, c = this.element, k = this.widget());
d.each(f, function(f, e) {
function v() {
return a || !0 !== n.options.disabled && !d(this).hasClass("ui-state-disabled") ? ("string" == typeof e ? n[e] : e).apply(n, arguments) : void 0
}
"string" != typeof e && (v.guid = e.guid = e.guid || v.guid || d.guid++);
var t = f.match(/^([\w:-]*)\s*(.*)$/),
h = t[1] + n.eventNamespace;
(t = t[2]) ? k.delegate(t, h, v): c.bind(h, v)
})
},
_off: function(a, c) {
c = (c || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace;
a.unbind(c).undelegate(c);
this.bindings = d(this.bindings.not(a).get());
this.focusable = d(this.focusable.not(a).get());
this.hoverable = d(this.hoverable.not(a).get())
},
_delay: function(a, d) {
var c = this;
return setTimeout(function() {
return ("string" == typeof a ? c[a] : a).apply(c, arguments)
}, d || 0)
},
_hoverable: function(a) {
this.hoverable = this.hoverable.add(a);
this._on(a, {
mouseenter: function(a) {
d(a.currentTarget).addClass("ui-state-hover")
},
mouseleave: function(a) {
d(a.currentTarget).removeClass("ui-state-hover")
}
})
},
_focusable: function(a) {
this.focusable = this.focusable.add(a);
this._on(a, {
focusin: function(a) {
d(a.currentTarget).addClass("ui-state-focus")
},
focusout: function(a) {
d(a.currentTarget).removeClass("ui-state-focus")
}
})
},
_trigger: function(a, c, f) {
var k, n = this.options[a];
if (f = f || {}, c = d.Event(c), c.type = (a === this.widgetEventPrefix ? a : this.widgetEventPrefix + a).toLowerCase(), c.target = this.element[0], a = c.originalEvent)
for (k in a) k in c || (c[k] = a[k]);
return this.element.trigger(c, f), !(d.isFunction(n) && !1 === n.apply(this.element[0], [c].concat(f)) || c.isDefaultPrevented())
}
};
d.each({
show: "fadeIn",
hide: "fadeOut"
}, function(a, c) {
d.Widget.prototype["_" + a] = function(f, k, n) {
"string" == typeof k && (k = {
effect: k
});
var e, v = k ? !0 === k || "number" == typeof k ? c : k.effect || c : a;
k = k || {};
"number" == typeof k && (k = {
duration: k
});
e = !d.isEmptyObject(k);
k.complete = n;
k.delay && f.delay(k.delay);
e && d.effects && d.effects.effect[v] ? f[a](k) : v !== a && f[v] ? f[v](k.duration, k.easing, n) : f.queue(function(c) {
d(this)[a]();
n && n.call(f[0]);
c()
})
}
});
d.widget;
var t = !1;
d(document).mouseup(function() {
t = !1
});
d.widget("ui.mouse", {
version: "1.11.2",
options: {
cancel: "input,textarea,button,select,option",
distance: 1,
delay: 0
},
_mouseInit: function() {
var a = this;
this.element.bind("mousedown." + this.widgetName, function(d) {
return a._mouseDown(d)
}).bind("click." + this.widgetName, function(c) {
return !0 === d.data(c.target, a.widgetName + ".preventClickEvent") ? (d.removeData(c.target, a.widgetName + ".preventClickEvent"), c.stopImmediatePropagation(), !1) : void 0
});
this.started = !1
},
_mouseDestroy: function() {
this.element.unbind("." + this.widgetName);
this._mouseMoveDelegate && this.document.unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate)
},
_mouseDown: function(a) {
if (!t) {
this._mouseMoved = !1;
this._mouseStarted && this._mouseUp(a);
this._mouseDownEvent = a;
var c = this,
f = 1 === a.which,
k = "string" == typeof this.options.cancel && a.target.nodeName ? d(a.target).closest(this.options.cancel).length : !1;
return f && !k && this._mouseCapture(a) ? (this.mouseDelayMet = !this.options.delay, this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function() {
c.mouseDelayMet = !0
}, this.options.delay)), this._mouseDistanceMet(a) && this._mouseDelayMet(a) && (this._mouseStarted = !1 !== this._mouseStart(a), !this._mouseStarted) ? (a.preventDefault(), !0) : (!0 === d.data(a.target, this.widgetName + ".preventClickEvent") && d.removeData(a.target, this.widgetName + ".preventClickEvent"), this._mouseMoveDelegate = function(a) {
return c._mouseMove(a)
}, this._mouseUpDelegate = function(a) {
return c._mouseUp(a)
}, this.document.bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate), a.preventDefault(), t = !0, !0)) : !0
}
},
_mouseMove: function(a) {
return this._mouseMoved && (d.ui.ie && (!document.documentMode || 9 > document.documentMode) && !a.button || !a.which) ? this._mouseUp(a) : ((a.which || a.button) && (this._mouseMoved = !0), this._mouseStarted ? (this._mouseDrag(a), a.preventDefault()) : (this._mouseDistanceMet(a) && this._mouseDelayMet(a) && (this._mouseStarted = !1 !== this._mouseStart(this._mouseDownEvent, a), this._mouseStarted ? this._mouseDrag(a) : this._mouseUp(a)), !this._mouseStarted))
},
_mouseUp: function(a) {
return this.document.unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate), this._mouseStarted && (this._mouseStarted = !1, a.target === this._mouseDownEvent.target && d.data(a.target, this.widgetName + ".preventClickEvent", !0), this._mouseStop(a)), t = !1, !1
},
_mouseDistanceMet: function(a) {
return Math.max(Math.abs(this._mouseDownEvent.pageX - a.pageX), Math.abs(this._mouseDownEvent.pageY - a.pageY)) >= this.options.distance
},
_mouseDelayMet: function() {
return this.mouseDelayMet
},
_mouseStart: function() {},
_mouseDrag: function() {},
_mouseStop: function() {},
_mouseCapture: function() {
return !0
}
});
(function() {
function a(a, d, c) {
return [parseFloat(a[0]) * (q.test(a[0]) ? d / 100 : 1), parseFloat(a[1]) * (q.test(a[1]) ? c / 100 : 1)]
}
function c(a) {
var c = a[0];
return 9 === c.nodeType ? {
width: a.width(),
height: a.height(),
offset: {
top: 0,
left: 0
}
} : d.isWindow(c) ? {
width: a.width(),
height: a.height(),
offset: {
top: a.scrollTop(),
left: a.scrollLeft()
}
} : c.preventDefault ? {
width: 0,
height: 0,
offset: {
top: c.pageY,
left: c.pageX
}
} : {
width: a.outerWidth(),
height: a.outerHeight(),
offset: a.offset()
}
}
d.ui = d.ui || {};
var f, k, n = Math.max,
e = Math.abs,
t = Math.round,
h = /left|center|right/,
m = /top|center|bottom/,
w = /[\+\-]\d+(\.[\d]+)?%?/,
u = /^\w+/,
q = /%$/,
p = d.fn.position;
d.position = {
scrollbarWidth: function() {
if (void 0 !== f) return f;
var a, c, k = d("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),
n = k.children()[0];
return d("body").append(k), a = n.offsetWidth, k.css("overflow", "scroll"), c = n.offsetWidth, a === c && (c = k[0].clientWidth), k.remove(), f = a - c
},
getScrollInfo: function(a) {
var c = a.isWindow || a.isDocument ? "" : a.element.css("overflow-x"),
f = a.isWindow || a.isDocument ? "" : a.element.css("overflow-y"),
c = "scroll" === c || "auto" === c && a.width < a.element[0].scrollWidth;
return {
width: "scroll" === f || "auto" === f && a.height < a.element[0].scrollHeight ? d.position.scrollbarWidth() : 0,
height: c ? d.position.scrollbarWidth() : 0
}
},
getWithinInfo: function(a) {
a = d(a || window);
var c = d.isWindow(a[0]),
f = !!a[0] && 9 === a[0].nodeType;
return {
element: a,
isWindow: c,
isDocument: f,
offset: a.offset() || {
left: 0,
top: 0
},
scrollLeft: a.scrollLeft(),
scrollTop: a.scrollTop(),
width: c || f ? a.width() : a.outerWidth(),
height: c || f ? a.height() : a.outerHeight()
}
}
};
d.fn.position = function(f) {
if (!f || !f.of) return p.apply(this, arguments);
f = d.extend({}, f);
var v, B, q, D, C, A, E = d(f.of),
F = d.position.getWithinInfo(f.within),
G = d.position.getScrollInfo(F),
K = (f.collision || "flip").split(" "),
J = {};
return A = c(E), E[0].preventDefault && (f.at = "left top"), B = A.width, q = A.height, D = A.offset, C = d.extend({}, D), d.each(["my", "at"], function() {
var a, d, c = (f[this] || "").split(" ");
1 === c.length && (c = h.test(c[0]) ? c.concat(["center"]) : m.test(c[0]) ? ["center"].concat(c) : ["center", "center"]);
c[0] = h.test(c[0]) ? c[0] : "center";
c[1] = m.test(c[1]) ? c[1] : "center";
a = w.exec(c[0]);
d = w.exec(c[1]);
J[this] = [a ? a[0] : 0, d ? d[0] : 0];
f[this] = [u.exec(c[0])[0], u.exec(c[1])[0]]
}), 1 === K.length && (K[1] = K[0]), "right" === f.at[0] ? C.left += B : "center" === f.at[0] && (C.left += B / 2), "bottom" === f.at[1] ? C.top += q : "center" === f.at[1] && (C.top += q / 2), v = a(J.at, B, q), C.left += v[0], C.top += v[1], this.each(function() {
var c, h, m = d(this),
w = m.outerWidth(),
u = m.outerHeight(),
p = parseInt(d.css(this, "marginLeft"), 10) || 0,
A = parseInt(d.css(this, "marginTop"), 10) || 0,
I = w + p + (parseInt(d.css(this, "marginRight"), 10) || 0) + G.width,
O = u + A + (parseInt(d.css(this, "marginBottom"), 10) || 0) + G.height,
H = d.extend({}, C),
M = a(J.my, m.outerWidth(), m.outerHeight());
"right" === f.my[0] ? H.left -= w : "center" === f.my[0] && (H.left -= w / 2);
"bottom" === f.my[1] ? H.top -= u : "center" === f.my[1] && (H.top -= u / 2);
H.left += M[0];
H.top += M[1];
k || (H.left = t(H.left), H.top = t(H.top));
c = {
marginLeft: p,
marginTop: A
};
d.each(["left", "top"], function(a, k) {
d.ui.position[K[a]] && d.ui.position[K[a]][k](H, {
targetWidth: B,
targetHeight: q,
elemWidth: w,
elemHeight: u,
collisionPosition: c,
collisionWidth: I,
collisionHeight: O,
offset: [v[0] + M[0], v[1] + M[1]],
my: f.my,
at: f.at,
within: F,
elem: m
})
});
f.using && (h = function(a) {
var d = D.left - H.left,
c = d + B - w,
k = D.top - H.top,
v = k + q - u,
t = {
target: {
element: E,
left: D.left,
top: D.top,
width: B,
height: q
},
element: {
element: m,
left: H.left,
top: H.top,
width: w,
height: u
},
horizontal: 0 > c ? "left" : 0 < d ? "right" : "center",
vertical: 0 > v ? "top" : 0 < k ? "bottom" : "middle"
};
w > B && B > e(d + c) && (t.horizontal = "center");
u > q && q > e(k + v) && (t.vertical = "middle");
t.important = n(e(d), e(c)) > n(e(k), e(v)) ? "horizontal" : "vertical";
f.using.call(this, a, t)
});
m.offset(d.extend(H, {
using: h
}))
})
};
d.ui.position = {
fit: {
left: function(a, d) {
var c, f = d.within,
k = f.isWindow ? f.scrollLeft : f.offset.left,
f = f.width,
e = a.left - d.collisionPosition.marginLeft,
v = k - e,
t = e + d.collisionWidth - f - k;
d.collisionWidth > f ? 0 < v && 0 >= t ? (c = a.left + v + d.collisionWidth - f - k, a.left += v - c) : a.left = 0 < t && 0 >= v ? k : v > t ? k + f - d.collisionWidth : k : 0 < v ? a.left += v : 0 < t ? a.left -= t : a.left = n(a.left - e, a.left)
},
top: function(a, d) {
var c, f = d.within,
f = f.isWindow ? f.scrollTop : f.offset.top,
k = d.within.height,
e = a.top - d.collisionPosition.marginTop,
v = f - e,
t = e + d.collisionHeight - k - f;
d.collisionHeight > k ? 0 < v && 0 >= t ? (c = a.top + v + d.collisionHeight - k - f, a.top += v - c) : a.top = 0 < t && 0 >= v ? f : v > t ? f + k - d.collisionHeight : f : 0 < v ? a.top += v : 0 < t ? a.top -= t : a.top = n(a.top - e, a.top)
}
},
flip: {
left: function(a, d) {
var c, f, k = d.within,
n = k.offset.left + k.scrollLeft,
v = k.width,
k = k.isWindow ? k.scrollLeft : k.offset.left,
t = a.left - d.collisionPosition.marginLeft,
h = t - k,
t = t + d.collisionWidth - v - k,
m = "left" === d.my[0] ? -d.elemWidth : "right" === d.my[0] ? d.elemWidth : 0,
w = "left" === d.at[0] ? d.targetWidth : "right" === d.at[0] ? -d.targetWidth : 0,
u = -2 * d.offset[0];
0 > h ? (c = a.left + m + w + u + d.collisionWidth - v - n, (0 > c || e(h) > c) && (a.left += m + w + u)) : 0 < t && (f = a.left - d.collisionPosition.marginLeft + m + w + u - k, (0 < f || t > e(f)) && (a.left += m + w + u))
},
top: function(a, d) {
var c, f, k = d.within,
n = k.offset.top + k.scrollTop,
v = k.height,
k = k.isWindow ? k.scrollTop : k.offset.top,
t = a.top - d.collisionPosition.marginTop,
h = t - k,
t = t + d.collisionHeight - v - k,
m = "top" === d.my[1] ? -d.elemHeight : "bottom" === d.my[1] ? d.elemHeight : 0,
w = "top" === d.at[1] ? d.targetHeight : "bottom" === d.at[1] ? -d.targetHeight : 0,
u = -2 * d.offset[1];
0 > h ? (f = a.top + m + w + u + d.collisionHeight - v - n, a.top + m + w + u > h && (0 > f || e(h) > f) && (a.top += m + w + u)) : 0 < t && (c = a.top - d.collisionPosition.marginTop + m + w + u - k, a.top + m + w + u > t && (0 < c || t > e(c)) && (a.top += m + w + u))
}
},
flipfit: {
left: function() {
d.ui.position.flip.left.apply(this, arguments);
d.ui.position.fit.left.apply(this, arguments)
},
top: function() {
d.ui.position.flip.top.apply(this, arguments);
d.ui.position.fit.top.apply(this, arguments)
}
}
};
(function() {
var a, c, f, n, e = document.getElementsByTagName("body")[0];
f = document.createElement("div");
a = document.createElement(e ? "div" : "body");
c = {
visibility: "hidden",
width: 0,
height: 0,
border: 0,
margin: 0,
background: "none"
};
e && d.extend(c, {
position: "absolute",
left: "-1000px",
top: "-1000px"
});
for (n in c) a.style[n] = c[n];
a.appendChild(f);
c = e || document.documentElement;
c.insertBefore(a, c.firstChild);
f.style.cssText = "position: absolute; left: 10.7432222px;";
f = d(f).offset().left;
k = 10 < f && 11 > f;
a.innerHTML = "";
c.removeChild(a)
})()
})();
d.ui.position;
d.widget("ui.accordion", {
version: "1.11.2",
options: {
active: 0,
animate: {},
collapsible: !1,
event: "click",
header: "> li > :first-child,> :not(li):even",
heightStyle: "auto",
icons: {
activeHeader: "ui-icon-triangle-1-s",
header: "ui-icon-triangle-1-e"
},
activate: null,
beforeActivate: null
},
hideProps: {
borderTopWidth: "hide",
borderBottomWidth: "hide",
paddingTop: "hide",
paddingBottom: "hide",
height: "hide"
},
showProps: {
borderTopWidth: "show",
borderBottomWidth: "show",
paddingTop: "show",
paddingBottom: "show",
height: "show"
},
_create: function() {
var a = this.options;
this.prevShow = this.prevHide = d();
this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role", "tablist");
a.collapsible || !1 !== a.active && null != a.active || (a.active = 0);
this._processPanels();
0 > a.active && (a.active += this.headers.length);
this._refresh()
},
_getCreateEventData: function() {
return {
header: this.active,
panel: this.active.length ? this.active.next() : d()
}
},
_createIcons: function() {
var a = this.options.icons;
a && (d("<span>").addClass("ui-accordion-header-icon ui-icon " + a.header).prependTo(this.headers), this.active.children(".ui-accordion-header-icon").removeClass(a.header).addClass(a.activeHeader), this.headers.addClass("ui-accordion-icons"))
},
_destroyIcons: function() {
this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()
},
_destroy: function() {
var a;
this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");
this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId();
this._destroyIcons();
a = this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display", "").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId();
"content" !== this.options.heightStyle && a.css("height", "")
},
_setOption: function(a, d) {
return "active" === a ? (this._activate(d), void 0) : ("event" === a && (this.options.event && this._off(this.headers, this.options.event), this._setupEvents(d)), this._super(a, d), "collapsible" !== a || d || !1 !== this.options.active || this._activate(0), "icons" === a && (this._destroyIcons(), d && this._createIcons()), "disabled" === a && (this.element.toggleClass("ui-state-disabled", !!d).attr("aria-disabled", d), this.headers.add(this.headers.next()).toggleClass("ui-state-disabled", !!d)), void 0)
},
_keydown: function(a) {
if (!a.altKey && !a.ctrlKey) {
var c = d.ui.keyCode,
f = this.headers.length,
k = this.headers.index(a.target),
n = !1;
switch (a.keyCode) {
case c.RIGHT:
case c.DOWN:
n = this.headers[(k + 1) % f];
break;
case c.LEFT:
case c.UP:
n = this.headers[(k - 1 + f) % f];
break;
case c.SPACE:
case c.ENTER:
this._eventHandler(a);
break;
case c.HOME:
n = this.headers[0];
break;
case c.END:
n = this.headers[f - 1]
}
n && (d(a.target).attr("tabIndex", -1), d(n).attr("tabIndex", 0), n.focus(), a.preventDefault())
}
},
_panelKeyDown: function(a) {
a.keyCode === d.ui.keyCode.UP && a.ctrlKey && d(a.currentTarget).prev().focus()
},
refresh: function() {
var a = this.options;
this._processPanels();
!1 === a.active && !0 === a.collapsible || !this.headers.length ? (a.active = !1, this.active = d()) : !1 === a.active ? this._activate(0) : this.active.length && !d.contains(this.element[0], this.active[0]) ? this.headers.length === this.headers.find(".ui-state-disabled").length ? (a.active = !1, this.active = d()) : this._activate(Math.max(0, a.active - 1)) : a.active = this.headers.index(this.active);
this._destroyIcons();
this._refresh()
},
_processPanels: function() {
var a = this.headers,
d = this.panels;
this.headers = this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all");
this.panels = this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide();
d && (this._off(a.not(this.headers)), this._off(d.not(this.panels)))
},
_refresh: function() {
var a, c = this.options,
f = c.heightStyle,
k = this.element.parent();
this.active = this._findActive(c.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all");
this.active.next().addClass("ui-accordion-content-active").show();
this.headers.attr("role", "tab").each(function() {
var a = d(this),
c = a.uniqueId().attr("id"),
f = a.next(),
k = f.uniqueId().attr("id");
a.attr("aria-controls", k);
f.attr("aria-labelledby", c)
}).next().attr("role", "tabpanel");
this.headers.not(this.active).attr({
"aria-selected": "false",
"aria-expanded": "false",
tabIndex: -1
}).next().attr({
"aria-hidden": "true"
}).hide();
this.active.length ? this.active.attr({
"aria-selected": "true",
"aria-expanded": "true",
tabIndex: 0
}).next().attr({
"aria-hidden": "false"
}) : this.headers.eq(0).attr("tabIndex", 0);
this._createIcons();
this._setupEvents(c.event);
"fill" === f ? (a = k.height(), this.element.siblings(":visible").each(function() {
var c = d(this),
f = c.css("position");
"absolute" !== f && "fixed" !== f && (a -= c.outerHeight(!0))
}), this.headers.each(function() {
a -= d(this).outerHeight(!0)
}), this.headers.next().each(function() {
d(this).height(Math.max(0, a - d(this).innerHeight() + d(this).height()))
}).css("overflow", "auto")) : "auto" === f && (a = 0, this.headers.next().each(function() {
a = Math.max(a, d(this).css("height", "").height())
}).height(a))
},
_activate: function(a) {
a = this._findActive(a)[0];
a !== this.active[0] && (a = a || this.active[0], this._eventHandler({
target: a,
currentTarget: a,
preventDefault: d.noop
}))
},
_findActive: function(a) {
return "number" == typeof a ? this.headers.eq(a) : d()
},
_setupEvents: function(a) {
var c = {
keydown: "_keydown"
};
a && d.each(a.split(" "), function(a, d) {
c[d] = "_eventHandler"
});
this._off(this.headers.add(this.headers.next()));
this._on(this.headers, c);
this._on(this.headers.next(), {
keydown: "_panelKeyDown"
});
this._hoverable(this.headers);
this._focusable(this.headers)
},
_eventHandler: function(a) {
var c = this.options,
f = this.active,
k = d(a.currentTarget),
n = k[0] === f[0],
e = n && c.collapsible,
v = e ? d() : k.next(),
t = f.next(),
v = {
oldHeader: f,
oldPanel: t,
newHeader: e ? d() : k,
newPanel: v
};
a.preventDefault();
n && !c.collapsible || !1 === this._trigger("beforeActivate", a, v) || (c.active = e ? !1 : this.headers.index(k), this.active = n ? d() : k, this._toggle(v), f.removeClass("ui-accordion-header-active ui-state-active"), c.icons && f.children(".ui-accordion-header-icon").removeClass(c.icons.activeHeader).addClass(c.icons.header), n || (k.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"), c.icons && k.children(".ui-accordion-header-icon").removeClass(c.icons.header).addClass(c.icons.activeHeader), k.next().addClass("ui-accordion-content-active")))
},
_toggle: function(a) {
var c = a.newPanel,
f = this.prevShow.length ? this.prevShow : a.oldPanel;
this.prevShow.add(this.prevHide).stop(!0, !0);
this.prevShow = c;
this.prevHide = f;
this.options.animate ? this._animate(c, f, a) : (f.hide(), c.show(), this._toggleComplete(a));
f.attr({
"aria-hidden": "true"
});
f.prev().attr("aria-selected", "false");
c.length && f.length ? f.prev().attr({
tabIndex: -1,
"aria-expanded": "false"
}) : c.length && this.headers.filter(function() {
return 0 === d(this).attr("tabIndex")
}).attr("tabIndex", -1);
c.attr("aria-hidden", "false").prev().attr({
"aria-selected": "true",
tabIndex: 0,
"aria-expanded": "true"
})
},
_animate: function(a, d, c) {
var f, k, n, e = this,
v = 0,
t = a.length && (!d.length || a.index() < d.index()),
h = this.options.animate || {},
t = t && h.down || h,
m = function() {
e._toggleComplete(c)
};
return "number" == typeof t && (n = t), "string" == typeof t && (k = t), k = k || t.easing || h.easing, n = n || t.duration || h.duration, d.length ? a.length ? (f = a.show().outerHeight(), d.animate(this.hideProps, {
duration: n,
easing: k,
step: function(a, d) {
d.now = Math.round(a)
}
}), a.hide().animate(this.showProps, {
duration: n,
easing: k,
complete: m,
step: function(a, c) {
c.now = Math.round(a);
"height" !== c.prop ? v += c.now : "content" !== e.options.heightStyle && (c.now = Math.round(f - d.outerHeight() - v), v = 0)
}
}), void 0) : d.animate(this.hideProps, n, k, m) : a.animate(this.showProps, n, k, m)
},
_toggleComplete: function(a) {
var d = a.oldPanel;
d.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all");
d.length && (d.parent()[0].className = d.parent()[0].className);
this._trigger("activate", null, a)
}
});
d.widget("ui.menu", {
version: "1.11.2",
defaultElement: "<ul>",
delay: 300,
options: {
icons: {
submenu: "ui-icon-carat-1-e"
},
items: "> *",
menus: "ul",
position: {
my: "left-1 top",
at: "right top"
},
role: "menu",
blur: null,
focus: null,
select: null
},
_create: function() {
this.activeMenu = this.element;
this.mouseHandled = !1;
this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons", !!this.element.find(".ui-icon").length).attr({
role: this.options.role,
tabIndex: 0
});
this.options.disabled && this.element.addClass("ui-state-disabled").attr("aria-disabled", "true");
this._on({
"mousedown .ui-menu-item": function(a) {
a.preventDefault()
},
"click .ui-menu-item": function(a) {
var c = d(a.target);
!this.mouseHandled && c.not(".ui-state-disabled").length && (this.select(a), a.isPropagationStopped() || (this.mouseHandled = !0), c.has(".ui-menu").length ? this.expand(a) : !this.element.is(":focus") && d(this.document[0].activeElement).closest(".ui-menu").length && (this.element.trigger("focus", [!0]), this.active && 1 === this.active.parents(".ui-menu").length && clearTimeout(this.timer)))
},
"mouseenter .ui-menu-item": function(a) {
if (!this.previousFilter) {
var c = d(a.currentTarget);
c.siblings(".ui-state-active").removeClass("ui-state-active");
this.focus(a, c)
}
},
mouseleave: "collapseAll",
"mouseleave .ui-menu": "collapseAll",
focus: function(a, d) {
var c = this.active || this.element.find(this.options.items).eq(0);
d || this.focus(a, c)
},
blur: function(a) {
this._delay(function() {
d.contains(this.element[0], this.document[0].activeElement) || this.collapseAll(a)
})
},
keydown: "_keydown"
});
this.refresh();
this._on(this.document, {
click: function(a) {
this._closeOnDocumentClick(a) && this.collapseAll(a);
this.mouseHandled = !1
}
})
},
_destroy: function() {
this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show();
this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function() {
var a = d(this);
a.data("ui-menu-submenu-carat") && a.remove()
});
this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")
},
_keydown: function(a) {
var c, f, k, n = !0;
switch (a.keyCode) {
case d.ui.keyCode.PAGE_UP:
this.previousPage(a);
break;
case d.ui.keyCode.PAGE_DOWN:
this.nextPage(a);
break;
case d.ui.keyCode.HOME:
this._move("first", "first", a);
break;
case d.ui.keyCode.END:
this._move("last", "last", a);
break;
case d.ui.keyCode.UP:
this.previous(a);
break;
case d.ui.keyCode.DOWN:
this.next(a);
break;
case d.ui.keyCode.LEFT:
this.collapse(a);
break;
case d.ui.keyCode.RIGHT:
this.active && !this.active.is(".ui-state-disabled") && this.expand(a);
break;
case d.ui.keyCode.ENTER:
case d.ui.keyCode.SPACE:
this._activate(a);
break;
case d.ui.keyCode.ESCAPE:
this.collapse(a);
break;
default:
n = !1, c = this.previousFilter || "", f = String.fromCharCode(a.keyCode), k = !1, clearTimeout(this.filterTimer), f === c ? k = !0 : f = c + f, c = this._filterMenuItems(f), c = k && -1 !== c.index(this.active.next()) ? this.active.nextAll(".ui-menu-item") : c, c.length || (f = String.fromCharCode(a.keyCode), c = this._filterMenuItems(f)), c.length ? (this.focus(a, c), this.previousFilter = f, this.filterTimer = this._delay(function() {
delete this.previousFilter
}, 1e3)) : delete this.previousFilter
}
n && a.preventDefault()
},
_activate: function(a) {
this.active.is(".ui-state-disabled") || (this.active.is("[aria-haspopup='true']") ? this.expand(a) : this.select(a))
},
refresh: function() {
var a, c = this,
f = this.options.icons.submenu;
a = this.element.find(this.options.menus);
this.element.toggleClass("ui-menu-icons", !!this.element.find(".ui-icon").length);
a.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({
role: this.options.role,
"aria-hidden": "true",
"aria-expanded": "false"
}).each(function() {
var a = d(this),
c = a.parent(),
k = d("<span>").addClass("ui-menu-icon ui-icon " + f).data("ui-menu-submenu-carat", !0);
c.attr("aria-haspopup", "true").prepend(k);
a.attr("aria-labelledby", c.attr("id"))
});
a = a.add(this.element).find(this.options.items);
a.not(".ui-menu-item").each(function() {
var a = d(this);
c._isDivider(a) && a.addClass("ui-widget-content ui-menu-divider")
});
a.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({
tabIndex: -1,
role: this._itemRole()
});
a.filter(".ui-state-disabled").attr("aria-disabled", "true");
this.active && !d.contains(this.element[0], this.active[0]) && this.blur()
},
_itemRole: function() {
return {
menu: "menuitem",
listbox: "option"
}[this.options.role]
},
_setOption: function(a, d) {
"icons" === a && this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(d.submenu);
"disabled" === a && this.element.toggleClass("ui-state-disabled", !!d).attr("aria-disabled", d);
this._super(a, d)
},
focus: function(a, d) {
var c;
this.blur(a, a && "focus" === a.type);
this._scrollIntoView(d);
this.active = d.first();
c = this.active.addClass("ui-state-focus").removeClass("ui-state-active");
this.options.role && this.element.attr("aria-activedescendant", c.attr("id"));
this.active.parent().closest(".ui-menu-item").addClass("ui-state-active");
a && "keydown" === a.type ? this._close() : this.timer = this._delay(function() {
this._close()
}, this.delay);
c = d.children(".ui-menu");
c.length && a && /^mouse/.test(a.type) && this._startOpening(c);
this.activeMenu = d.parent();
this._trigger("focus", a, {
item: d
})
},
_scrollIntoView: function(a) {
var c, f, k, n, e, v;
this._hasScroll() && (c = parseFloat(d.css(this.activeMenu[0], "borderTopWidth")) || 0, f = parseFloat(d.css(this.activeMenu[0], "paddingTop")) || 0, k = a.offset().top - this.activeMenu.offset().top - c - f, n = this.activeMenu.scrollTop(), e = this.activeMenu.height(), v = a.outerHeight(), 0 > k ? this.activeMenu.scrollTop(n + k) : k + v > e && this.activeMenu.scrollTop(n + k - e + v))
},
blur: function(a, d) {
d || clearTimeout(this.timer);
this.active && (this.active.removeClass("ui-state-focus"), this.active = null, this._trigger("blur", a, {
item: this.active
}))
},
_startOpening: function(a) {
clearTimeout(this.timer);
"true" === a.attr("aria-hidden") && (this.timer = this._delay(function() {
this._close();
this._open(a)
}, this.delay))
},
_open: function(a) {
var c = d.extend({
of: this.active
}, this.options.position);
clearTimeout(this.timer);
this.element.find(".ui-menu").not(a.parents(".ui-menu")).hide().attr("aria-hidden", "true");
a.show().removeAttr("aria-hidden").attr("aria-expanded", "true").position(c)
},
collapseAll: function(a, c) {
clearTimeout(this.timer);
this.timer = this._delay(function() {
var f = c ? this.element : d(a && a.target).closest(this.element.find(".ui-menu"));
f.length || (f = this.element);
this._close(f);
this.blur(a);
this.activeMenu = f
}, this.delay)
},
_close: function(a) {
a || (a = this.active ? this.active.parent() : this.element);
a.find(".ui-menu").hide().attr("aria-hidden", "true").attr("aria-expanded", "false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")
},
_closeOnDocumentClick: function(a) {
return !d(a.target).closest(".ui-menu").length
},
_isDivider: function(a) {
return !/[^\-\u2014\u2013\s]/.test(a.text())
},
collapse: function(a) {
var d = this.active && this.active.parent().closest(".ui-menu-item", this.element);
d && d.length && (this._close(), this.focus(a, d))
},
expand: function(a) {
var d = this.active && this.active.children(".ui-menu ").find(this.options.items).first();
d && d.length && (this._open(d.parent()), this._delay(function() {
this.focus(a, d)
}))
},
next: function(a) {
this._move("next", "first", a)
},
previous: function(a) {
this._move("prev", "last", a)
},
isFirstItem: function() {
return this.active && !this.active.prevAll(".ui-menu-item").length
},
isLastItem: function() {
return this.active && !this.active.nextAll(".ui-menu-item").length
},
_move: function(a, d, c) {
var f;
this.active && (f = "first" === a || "last" === a ? this.active["first" === a ? "prevAll" : "nextAll"](".ui-menu-item").eq(-1) : this.active[a + "All"](".ui-menu-item").eq(0));
f && f.length && this.active || (f = this.activeMenu.find(this.options.items)[d]());
this.focus(c, f)
},
nextPage: function(a) {
var c, f, k;
return this.active ? (this.isLastItem() || (this._hasScroll() ? (f = this.active.offset().top, k = this.element.height(), this.active.nextAll(".ui-menu-item").each(function() {
return c = d(this), 0 > c.offset().top - f - k
}), this.focus(a, c)) : this.focus(a, this.activeMenu.find(this.options.items)[this.active ? "last" : "first"]())), void 0) : (this.next(a), void 0)
},
previousPage: function(a) {
var c, f, k;
return this.active ? (this.isFirstItem() || (this._hasScroll() ? (f = this.active.offset().top, k = this.element.height(), this.active.prevAll(".ui-menu-item").each(function() {
return c = d(this), 0 < c.offset().top - f + k
}), this.focus(a, c)) : this.focus(a, this.activeMenu.find(this.options.items).first())), void 0) : (this.next(a), void 0)
},
_hasScroll: function() {
return this.element.outerHeight() < this.element.prop("scrollHeight")
},
select: function(a) {
this.active = this.active || d(a.target).closest(".ui-menu-item");
var c = {
item: this.active
};
this.active.has(".ui-menu").length || this.collapseAll(a, !0);
this._trigger("select", a, c)
},
_filterMenuItems: function(a) {
a = a.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
var c = RegExp("^" + a, "i");
return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function() {
return c.test(d.trim(d(this).text()))
})
}
});
d.widget("ui.autocomplete", {
version: "1.11.2",
defaultElement: "<input>",
options: {
appendTo: null,
autoFocus: !1,
delay: 300,
minLength: 1,
position: {
my: "left top",
at: "left bottom",
collision: "none"
},
source: null,
change: null,
close: null,
focus: null,
open: null,
response: null,
search: null,
select: null
},
requestIndex: 0,
pending: 0,
_create: function() {
var a, c, f, k = this.element[0].nodeName.toLowerCase(),
n = "textarea" === k,
k = "input" === k;
this.isMultiLine = n ? !0 : k ? !1 : this.element.prop("isContentEditable");
this.valueMethod = this.element[n || k ? "val" : "text"];
this.isNewMenu = !0;
this.element.addClass("ui-autocomplete-input").attr("autocomplete", "off");
this._on(this.element, {
keydown: function(k) {
if (this.element.prop("readOnly")) return a = !0, f = !0, c = !0, void 0;
c = f = a = !1;
var n = d.ui.keyCode;
switch (k.keyCode) {
case n.PAGE_UP:
a = !0;
this._move("previousPage", k);
break;
case n.PAGE_DOWN:
a = !0;
this._move("nextPage", k);
break;
case n.UP:
a = !0;
this._keyEvent("previous", k);
break;
case n.DOWN:
a = !0;
this._keyEvent("next", k);
break;
case n.ENTER:
this.menu.active && (a = !0, k.preventDefault(), this.menu.select(k));
break;
case n.TAB:
this.menu.active && this.menu.select(k);
break;
case n.ESCAPE:
this.menu.element.is(":visible") && (this.isMultiLine || this._value(this.term), this.close(k), k.preventDefault());
break;
default:
c = !0, this._searchTimeout(k)
}
},
keypress: function(f) {
if (a) return a = !1, (!this.isMultiLine || this.menu.element.is(":visible")) && f.preventDefault(), void 0;
if (!c) {
var k = d.ui.keyCode;
switch (f.keyCode) {
case k.PAGE_UP:
this._move("previousPage", f);
break;
case k.PAGE_DOWN:
this._move("nextPage", f);
break;
case k.UP:
this._keyEvent("previous", f);
break;
case k.DOWN:
this._keyEvent("next", f)
}
}
},
input: function(a) {
return f ? (f = !1, a.preventDefault(), void 0) : (this._searchTimeout(a), void 0)
},
focus: function() {
this.selectedItem = null;
this.previous = this._value()
},
blur: function(a) {
return this.cancelBlur ? (delete this.cancelBlur, void 0) : (clearTimeout(this.searching), this.close(a), this._change(a), void 0)
}
});
this._initSource();
this.menu = d("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({
role: null
}).hide().menu("instance");
this._on(this.menu.element, {
mousedown: function(a) {
a.preventDefault();
this.cancelBlur = !0;
this._delay(function() {
delete this.cancelBlur
});
var c = this.menu.element[0];
d(a.target).closest(".ui-menu-item").length || this._delay(function() {
var a = this;
this.document.one("mousedown", function(f) {
f.target === a.element[0] || f.target === c || d.contains(c, f.target) || a.close()
})
})
},
menufocus: function(a, c) {
var f, k;
return this.isNewMenu && (this.isNewMenu = !1, a.originalEvent && /^mouse/.test(a.originalEvent.type)) ? (this.menu.blur(), this.document.one("mousemove", function() {
d(a.target).trigger(a.originalEvent)
}), void 0) : (k = c.item.data("ui-autocomplete-item"), !1 !== this._trigger("focus", a, {
item: k
}) && a.originalEvent && /^key/.test(a.originalEvent.type) && this._value(k.value), f = c.item.attr("aria-label") || k.value, f && d.trim(f).length && (this.liveRegion.children().hide(), d("<div>").text(f).appendTo(this.liveRegion)), void 0)
},
menuselect: function(a, d) {
var c = d.item.data("ui-autocomplete-item"),
f = this.previous;
this.element[0] !== this.document[0].activeElement && (this.element.focus(), this.previous = f, this._delay(function() {
this.previous = f;
this.selectedItem = c
}));
!1 !== this._trigger("select", a, {
item: c
}) && this._value(c.value);
this.term = this._value();
this.close(a);
this.selectedItem = c
}
});
this.liveRegion = d("<span>", {
role: "status",
"aria-live": "assertive",
"aria-relevant": "additions"
}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body);
this._on(this.window, {
beforeunload: function() {
this.element.removeAttr("autocomplete")
}
})
},
_destroy: function() {
clearTimeout(this.searching);
this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete");
this.menu.element.remove();
this.liveRegion.remove()
},
_setOption: function(a, d) {
this._super(a, d);
"source" === a && this._initSource();
"appendTo" === a && this.menu.element.appendTo(this._appendTo());
"disabled" === a && d && this.xhr && this.xhr.abort()
},
_appendTo: function() {
var a = this.options.appendTo;
return a && (a = a.jquery || a.nodeType ? d(a) : this.document.find(a).eq(0)), a && a[0] || (a = this.element.closest(".ui-front")), a.length || (a = this.document[0].body), a
},
_initSource: function() {
var a, c, f = this;
d.isArray(this.options.source) ? (a = this.options.source, this.source = function(c, f) {
f(d.ui.autocomplete.filter(a, c.term))
}) : "string" == typeof this.options.source ? (c = this.options.source, this.source = function(a, k) {
f.xhr && f.xhr.abort();
f.xhr = d.ajax({
url: c,
data: a,
dataType: "json",
success: function(a) {
k(a)
},
error: function() {
k([])
}
})
}) : this.source = this.options.source
},
_searchTimeout: function(a) {
clearTimeout(this.searching);
this.searching = this._delay(function() {
var d = this.term === this._value(),
c = this.menu.element.is(":visible"),
f = a.altKey || a.ctrlKey || a.metaKey || a.shiftKey;
d && (!d || c || f) || (this.selectedItem = null, this.search(null, a))
}, this.options.delay)
},
search: function(a, d) {
return a = null != a ? a : this._value(), this.term = this._value(), a.length < this.options.minLength ? this.close(d) : !1 !== this._trigger("search", d) ? this._search(a) : void 0
},
_search: function(a) {
this.pending++;
this.element.addClass("ui-autocomplete-loading");
this.cancelSearch = !1;
this.source({
term: a
}, this._response())
},
_response: function() {
var a = ++this.requestIndex;
return d.proxy(function(d) {
a === this.requestIndex && this.__response(d);
this.pending--;
this.pending || this.element.removeClass("ui-autocomplete-loading")
}, this)
},
__response: function(a) {
a && (a = this._normalize(a));
this._trigger("response", null, {
content: a
});
!this.options.disabled && a && a.length && !this.cancelSearch ? (this._suggest(a), this._trigger("open")) : this._close()
},
close: function(a) {
this.cancelSearch = !0;
this._close(a)
},
_close: function(a) {
this.menu.element.is(":visible") && (this.menu.element.hide(), this.menu.blur(), this.isNewMenu = !0, this._trigger("close", a))
},
_change: function(a) {
this.previous !== this._value() && this._trigger("change", a, {
item: this.selectedItem
})
},
_normalize: function(a) {
return a.length && a[0].label && a[0].value ? a : d.map(a, function(a) {
return "string" == typeof a ? {
label: a,
value: a
} : d.extend({}, a, {
label: a.label || a.value,
value: a.value || a.label
})
})
},
_suggest: function(a) {
var c = this.menu.element.empty();
this._renderMenu(c, a);
this.isNewMenu = !0;
this.menu.refresh();
c.show();
this._resizeMenu();
c.position(d.extend({
of: this.element
}, this.options.position));
this.options.autoFocus && this.menu.next()
},
_resizeMenu: function() {
var a = this.menu.element;
a.outerWidth(Math.max(a.width("").outerWidth() + 1, this.element.outerWidth()))
},
_renderMenu: function(a, c) {
var f = this;
d.each(c, function(d, c) {
f._renderItemData(a, c)
})
},
_renderItemData: function(a, d) {
return this._renderItem(a, d).data("ui-autocomplete-item", d)
},
_renderItem: function(a, c) {
return d("<li>").text(c.label).appendTo(a)
},
_move: function(a, d) {
return this.menu.element.is(":visible") ? this.menu.isFirstItem() && /^previous/.test(a) || this.menu.isLastItem() && /^next/.test(a) ? (this.isMultiLine || this._value(this.term), this.menu.blur(), void 0) : (this.menu[a](d), void 0) : (this.search(null, d), void 0)
},
widget: function() {
return this.menu.element
},
_value: function() {
return this.valueMethod.apply(this.element, arguments)
},
_keyEvent: function(a, d) {
this.isMultiLine && !this.menu.element.is(":visible") || (this._move(a, d), d.preventDefault())
}
});
d.extend(d.ui.autocomplete, {
escapeRegex: function(a) {
return a.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
},
filter: function(a, c) {
var f = RegExp(d.ui.autocomplete.escapeRegex(c), "i");
return d.grep(a, function(a) {
return f.test(a.label || a.value || a)
})
}
});
d.widget("ui.autocomplete", d.ui.autocomplete, {
options: {
messages: {
noResults: "No search results.",
results: function(a) {
return a + (1 < a ? " results are" : " result is") + " available, use up and down arrow keys to navigate."
}
}
},
__response: function(a) {
var c;
this._superApply(arguments);
this.options.disabled || this.cancelSearch || (c = a && a.length ? this.options.messages.results(a.length) : this.options.messages.noResults, this.liveRegion.children().hide(), d("<div>").text(c).appendTo(this.liveRegion))
}
});
d.ui.autocomplete;
var w, u = function() {
var a = d(this);
setTimeout(function() {
a.find(":ui-button").button("refresh")
}, 1)
},
C = function(a) {
var c = a.name,
f = a.form,
k = d([]);
return c && (c = c.replace(/'/g, "\\'"), k = f ? d(f).find("[name='" + c + "'][type=radio]") : d("[name='" + c + "'][type=radio]", a.ownerDocument).filter(function() {
return !this.form
})), k
};
d.widget("ui.button", {
version: "1.11.2",
defaultElement: "<button>",
options: {
disabled: null,
text: !0,
label: null,
icons: {
primary: null,
secondary: null
}
},
_create: function() {
this.element.closest("form").unbind("reset" + this.eventNamespace).bind("reset" + this.eventNamespace, u);
"boolean" != typeof this.options.disabled ? this.options.disabled = !!this.element.prop("disabled") : this.element.prop("disabled", this.options.disabled);
this._determineButtonType();
this.hasTitle = !!this.buttonElement.attr("title");
var a = this,
c = this.options,
f = "checkbox" === this.type || "radio" === this.type,
k = f ? "" : "ui-state-active";
null === c.label && (c.label = "input" === this.type ? this.buttonElement.val() : this.buttonElement.html());
this._hoverable(this.buttonElement);
this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role", "button").bind("mouseenter" + this.eventNamespace, function() {
c.disabled || this === w && d(this).addClass("ui-state-active")
}).bind("mouseleave" + this.eventNamespace, function() {
c.disabled || d(this).removeClass(k)
}).bind("click" + this.eventNamespace, function(a) {
c.disabled && (a.preventDefault(), a.stopImmediatePropagation())
});
this._on({
focus: function() {
this.buttonElement.addClass("ui-state-focus")
},
blur: function() {
this.buttonElement.removeClass("ui-state-focus")
}
});
f && this.element.bind("change" + this.eventNamespace, function() {
a.refresh()
});
"checkbox" === this.type ? this.buttonElement.bind("click" + this.eventNamespace, function() {
return c.disabled ? !1 : void 0
}) : "radio" === this.type ? this.buttonElement.bind("click" + this.eventNamespace, function() {
if (c.disabled) return !1;
d(this).addClass("ui-state-active");
a.buttonElement.attr("aria-pressed", "true");
var f = a.element[0];
C(f).not(f).map(function() {
return d(this).button("widget")[0]
}).removeClass("ui-state-active").attr("aria-pressed", "false")
}) : (this.buttonElement.bind("mousedown" + this.eventNamespace, function() {
return c.disabled ? !1 : (d(this).addClass("ui-state-active"), w = this, a.document.one("mouseup", function() {
w = null
}), void 0)
}).bind("mouseup" + this.eventNamespace, function() {
return c.disabled ? !1 : (d(this).removeClass("ui-state-active"), void 0)
}).bind("keydown" + this.eventNamespace, function(a) {
return c.disabled ? !1 : ((a.keyCode === d.ui.keyCode.SPACE || a.keyCode === d.ui.keyCode.ENTER) && d(this).addClass("ui-state-active"), void 0)
}).bind("keyup" + this.eventNamespace + " blur" + this.eventNamespace, function() {
d(this).removeClass("ui-state-active")
}), this.buttonElement.is("a") && this.buttonElement.keyup(function(a) {
a.keyCode === d.ui.keyCode.SPACE && d(this).click()
}));
this._setOption("disabled", c.disabled);
this._resetButton()
},
_determineButtonType: function() {
var a, d, c;
this.type = this.element.is("[type=checkbox]") ? "checkbox" : this.element.is("[type=radio]") ? "radio" : this.element.is("input") ? "input" : "button";
"checkbox" === this.type || "radio" === this.type ? (a = this.element.parents().last(), d = "label[for='" + this.element.attr("id") + "']", this.buttonElement = a.find(d), this.buttonElement.length || (a = a.length ? a.siblings() : this.element.siblings(), this.buttonElement = a.filter(d), this.buttonElement.length || (this.buttonElement = a.find(d))), this.element.addClass("ui-helper-hidden-accessible"), c = this.element.is(":checked"), c && this.buttonElement.addClass("ui-state-active"), this.buttonElement.prop("aria-pressed", c)) : this.buttonElement = this.element
},
widget: function() {
return this.buttonElement
},
_destroy: function() {
this.element.removeClass("ui-helper-hidden-accessible");
this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-active ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());
this.hasTitle || this.buttonElement.removeAttr("title")
},
_setOption: function(a, d) {
return this._super(a, d), "disabled" === a ? (this.widget().toggleClass("ui-state-disabled", !!d), this.element.prop("disabled", !!d), d && ("checkbox" === this.type || "radio" === this.type ? this.buttonElement.removeClass("ui-state-focus") : this.buttonElement.removeClass("ui-state-focus ui-state-active")), void 0) : (this._resetButton(), void 0)
},
refresh: function() {
var a = this.element.is("input, button") ? this.element.is(":disabled") : this.element.hasClass("ui-button-disabled");
a !== this.options.disabled && this._setOption("disabled", a);
"radio" === this.type ? C(this.element[0]).each(function() {
d(this).is(":checked") ? d(this).button("widget").addClass("ui-state-active").attr("aria-pressed", "true") : d(this).button("widget").removeClass("ui-state-active").attr("aria-pressed", "false")
}) : "checkbox" === this.type && (this.element.is(":checked") ? this.buttonElement.addClass("ui-state-active").attr("aria-pressed", "true") : this.buttonElement.removeClass("ui-state-active").attr("aria-pressed", "false"))
},
_resetButton: function() {
if ("input" === this.type) return this.options.label && this.element.val(this.options.label), void 0;
var a = this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),
c = d("<span></span>", this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(a.empty()).text(),
f = this.options.icons,
k = f.primary && f.secondary,
n = [];
f.primary || f.secondary ? (this.options.text && n.push("ui-button-text-icon" + (k ? "s" : f.primary ? "-primary" : "-secondary")), f.primary && a.prepend("<span class='ui-button-icon-primary ui-icon " + f.primary + "'></span>"), f.secondary && a.append("<span class='ui-button-icon-secondary ui-icon " + f.secondary + "'></span>"), this.options.text || (n.push(k ? "ui-button-icons-only" : "ui-button-icon-only"), this.hasTitle || a.attr("title", d.trim(c)))) : n.push("ui-button-text-only");
a.addClass(n.join(" "))
}
});
d.widget("ui.buttonset", {
version: "1.11.2",
options: {
items: "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"
},
_create: function() {
this.element.addClass("ui-buttonset")
},
_init: function() {
this.refresh()
},
_setOption: function(a, d) {
"disabled" === a && this.buttons.button("option", a, d);
this._super(a, d)
},
refresh: function() {
var a = "rtl" === this.element.css("direction"),
c = this.element.find(this.options.items),
f = c.filter(":ui-button");
c.not(":ui-button").button();
f.button("refresh");
this.buttons = c.map(function() {
return d(this).button("widget")[0]
}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(a ? "ui-corner-right" : "ui-corner-left").end().filter(":last").addClass(a ? "ui-corner-left" : "ui-corner-right").end().end()
},
_destroy: function() {
this.element.removeClass("ui-buttonset");
this.buttons.map(function() {
return d(this).button("widget")[0]
}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")
}
});
d.ui.button;
d.extend(d.ui, {
datepicker: {
version: "1.11.2"
}
});
var A;
d.extend(h.prototype, {
markerClassName: "hasDatepicker",
maxRows: 4,
_widgetDatepicker: function() {
return this.dpDiv
},
setDefaults: function(d) {
return a(this._defaults, d || {}), this
},
_attachDatepicker: function(a, c) {
var f, k, n;
f = a.nodeName.toLowerCase();
k = "div" === f || "span" === f;
a.id || (this.uuid += 1, a.id = "dp" + this.uuid);
n = this._newInst(d(a), k);
n.settings = d.extend({}, c || {});
"input" === f ? this._connectDatepicker(a, n) : k && this._inlineDatepicker(a, n)
},
_newInst: function(a, c) {
return {
id: a[0].id.replace(/([^A-Za-z0-9_\-])/g, "\\\\$1"),
input: a,
selectedDay: 0,
selectedMonth: 0,
selectedYear: 0,
drawMonth: 0,
drawYear: 0,
inline: c,
dpDiv: c ? p(d("<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")) : this.dpDiv
}
},
_connectDatepicker: function(a, c) {
var f = d(a);
c.append = d([]);
c.trigger = d([]);
f.hasClass(this.markerClassName) || (this._attachments(f, c), f.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp), this._autoSize(c), d.data(a, "datepicker", c), c.settings.disabled && this._disableDatepicker(a))
},
_attachments: function(a, c) {
var f, k, n;
f = this._get(c, "appendText");
var e = this._get(c, "isRTL");
c.append && c.append.remove();
f && (c.append = d("<span class='" + this._appendClass + "'>" + f + "</span>"), a[e ? "before" : "after"](c.append));
a.unbind("focus", this._showDatepicker);
c.trigger && c.trigger.remove();
f = this._get(c, "showOn");
"focus" !== f && "both" !== f || a.focus(this._showDatepicker);
"button" !== f && "both" !== f || (k = this._get(c, "buttonText"), n = this._get(c, "buttonImage"), c.trigger = d(this._get(c, "buttonImageOnly") ? d("<img/>").addClass(this._triggerClass).attr({
src: n,
alt: k,
title: k
}) : d("<button type='button'></button>").addClass(this._triggerClass).html(n ? d("<img/>").attr({
src: n,
alt: k,
title: k
}) : k)), a[e ? "before" : "after"](c.trigger), c.trigger.click(function() {
return d.datepicker._datepickerShowing && d.datepicker._lastInput === a[0] ? d.datepicker._hideDatepicker() : d.datepicker._datepickerShowing && d.datepicker._lastInput !== a[0] ? (d.datepicker._hideDatepicker(), d.datepicker._showDatepicker(a[0])) : d.datepicker._showDatepicker(a[0]), !1
}))
},
_autoSize: function(a) {
if (this._get(a, "autoSize") && !a.inline) {
var d, c, f, k, n = new Date(2009, 11, 20),
e = this._get(a, "dateFormat");
e.match(/[DM]/) && (d = function(a) {
for (k = f = c = 0; a.length > k; k++) a[k].length > c && (c = a[k].length, f = k);
return f
}, n.setMonth(d(this._get(a, e.match(/MM/) ? "monthNames" : "monthNamesShort"))), n.setDate(d(this._get(a, e.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - n.getDay()));
a.input.attr("size", this._formatDate(a, n).length)
}
},
_inlineDatepicker: function(a, c) {
var f = d(a);
f.hasClass(this.markerClassName) || (f.addClass(this.markerClassName).append(c.dpDiv), d.data(a, "datepicker", c), this._setDate(c, this._getDefaultDate(c), !0), this._updateDatepicker(c), this._updateAlternate(c), c.settings.disabled && this._disableDatepicker(a), c.dpDiv.css("display", "block"))
},
_dialogDatepicker: function(c, f, k, n, e) {
var t, v, h, m, w;
c = this._dialogInst;
return c || (this.uuid += 1, t = "dp" + this.uuid, this._dialogInput = d("<input type='text' id='" + t + "' style='position: absolute; top: -100px; width: 0px;'/>"), this._dialogInput.keydown(this._doKeyDown), d("body").append(this._dialogInput), c = this._dialogInst = this._newInst(this._dialogInput, !1), c.settings = {}, d.data(this._dialogInput[0], "datepicker", c)), a(c.settings, n || {}), f = f && f.constructor === Date ? this._formatDate(c, f) : f, this._dialogInput.val(f), this._pos = e ? e.length ? e : [e.pageX, e.pageY] : null, this._pos || (v = document.documentElement.clientWidth, h = document.documentElement.clientHeight, m = document.documentElement.scrollLeft || document.body.scrollLeft, w = document.documentElement.scrollTop || document.body.scrollTop, this._pos = [v / 2 - 100 + m, h / 2 - 150 + w]), this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px"), c.settings.onSelect = k, this._inDialog = !0, this.dpDiv.addClass(this._dialogClass), this._showDatepicker(this._dialogInput[0]), d.blockUI && d.blockUI(this.dpDiv), d.data(this._dialogInput[0], "datepicker", c), this
},
_destroyDatepicker: function(a) {
var c, f = d(a),
k = d.data(a, "datepicker");
f.hasClass(this.markerClassName) && (c = a.nodeName.toLowerCase(), d.removeData(a, "datepicker"), "input" === c ? (k.append.remove(), k.trigger.remove(), f.removeClass(this.markerClassName).unbind("focus", this._showDatepicker).unbind("keydown", this._doKeyDown).unbind("keypress", this._doKeyPress).unbind("keyup", this._doKeyUp)) : ("div" === c || "span" === c) && f.removeClass(this.markerClassName).empty())
},
_enableDatepicker: function(a) {
var c, f, k = d(a),
n = d.data(a, "datepicker");
k.hasClass(this.markerClassName) && (c = a.nodeName.toLowerCase(), "input" === c ? (a.disabled = !1, n.trigger.filter("button").each(function() {
this.disabled = !1
}).end().filter("img").css({
opacity: "1.0",
cursor: ""
})) : ("div" === c || "span" === c) && (f = k.children("." + this._inlineClass), f.children().removeClass("ui-state-disabled"), f.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !1)), this._disabledInputs = d.map(this._disabledInputs, function(d) {
return d === a ? null : d
}))
},
_disableDatepicker: function(a) {
var c, f, k = d(a),
n = d.data(a, "datepicker");
k.hasClass(this.markerClassName) && (c = a.nodeName.toLowerCase(), "input" === c ? (a.disabled = !0, n.trigger.filter("button").each(function() {
this.disabled = !0
}).end().filter("img").css({
opacity: "0.5",
cursor: "default"
})) : ("div" === c || "span" === c) && (f = k.children("." + this._inlineClass), f.children().addClass("ui-state-disabled"), f.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled", !0)), this._disabledInputs = d.map(this._disabledInputs, function(d) {
return d === a ? null : d
}), this._disabledInputs[this._disabledInputs.length] = a)
},
_isDisabledDatepicker: function(a) {
if (!a) return !1;
for (var d = 0; this._disabledInputs.length > d; d++)
if (this._disabledInputs[d] === a) return !0;
return !1
},
_getInst: function(a) {
try {
return d.data(a, "datepicker")
} catch (B) {
throw "Missing instance data for this datepicker"
}
},
_optionDatepicker: function(c, f, k) {
var n, e, t, v, h = this._getInst(c);
return 2 === arguments.length && "string" == typeof f ? "defaults" === f ? d.extend({}, d.datepicker._defaults) : h ? "all" === f ? d.extend({}, h.settings) : this._get(h, f) : null : (n = f || {}, "string" == typeof f && (n = {}, n[f] = k), h && (this._curInst === h && this._hideDatepicker(), e = this._getDateDatepicker(c, !0), t = this._getMinMaxDate(h, "min"), v = this._getMinMaxDate(h, "max"), a(h.settings, n), null !== t && void 0 !== n.dateFormat && void 0 === n.minDate && (h.settings.minDate = this._formatDate(h, t)), null !== v && void 0 !== n.dateFormat && void 0 === n.maxDate && (h.settings.maxDate = this._formatDate(h, v)), "disabled" in n && (n.disabled ? this._disableDatepicker(c) : this._enableDatepicker(c)), this._attachments(d(c), h), this._autoSize(h), this._setDate(h, e), this._updateAlternate(h), this._updateDatepicker(h)), void 0)
},
_changeDatepicker: function(a, d, c) {
this._optionDatepicker(a, d, c)
},
_refreshDatepicker: function(a) {
(a = this._getInst(a)) && this._updateDatepicker(a)
},
_setDateDatepicker: function(a, d) {
var c = this._getInst(a);
c && (this._setDate(c, d), this._updateDatepicker(c), this._updateAlternate(c))
},
_getDateDatepicker: function(a, d) {
var c = this._getInst(a);
return c && !c.inline && this._setDateFromField(c, d), c ? this._getDate(c) : null
},
_doKeyDown: function(a) {
var c, f, k, n = d.datepicker._getInst(a.target),
e = !0,
t = n.dpDiv.is(".ui-datepicker-rtl");
if (n._keyEvent = !0, d.datepicker._datepickerShowing) switch (a.keyCode) {
case 9:
d.datepicker._hideDatepicker();
e = !1;
break;
case 13:
return k = d("td." + d.datepicker._dayOverClass + ":not(." + d.datepicker._currentClass + ")", n.dpDiv), k[0] && d.datepicker._selectDay(a.target, n.selectedMonth, n.selectedYear, k[0]), c = d.datepicker._get(n, "onSelect"), c ? (f = d.datepicker._formatDate(n), c.apply(n.input ? n.input[0] : null, [f, n])) : d.datepicker._hideDatepicker(), !1;
case 27:
d.datepicker._hideDatepicker();
break;
case 33:
d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(n, "stepBigMonths") : -d.datepicker._get(n, "stepMonths"), "M");
break;
case 34:
d.datepicker._adjustDate(a.target, a.ctrlKey ? +d.datepicker._get(n, "stepBigMonths") : +d.datepicker._get(n, "stepMonths"), "M");
break;
case 35:
(a.ctrlKey || a.metaKey) && d.datepicker._clearDate(a.target);
e = a.ctrlKey || a.metaKey;
break;
case 36:
(a.ctrlKey || a.metaKey) && d.datepicker._gotoToday(a.target);
e = a.ctrlKey || a.metaKey;
break;
case 37:
(a.ctrlKey || a.metaKey) && d.datepicker._adjustDate(a.target, t ? 1 : -1, "D");
e = a.ctrlKey || a.metaKey;
a.originalEvent.altKey && d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(n, "stepBigMonths") : -d.datepicker._get(n, "stepMonths"), "M");
break;
case 38:
(a.ctrlKey || a.metaKey) && d.datepicker._adjustDate(a.target, -7, "D");
e = a.ctrlKey || a.metaKey;
break;
case 39:
(a.ctrlKey || a.metaKey) && d.datepicker._adjustDate(a.target, t ? -1 : 1, "D");
e = a.ctrlKey || a.metaKey;
a.originalEvent.altKey && d.datepicker._adjustDate(a.target, a.ctrlKey ? +d.datepicker._get(n, "stepBigMonths") : +d.datepicker._get(n, "stepMonths"), "M");
break;
case 40:
(a.ctrlKey || a.metaKey) && d.datepicker._adjustDate(a.target, 7, "D");
e = a.ctrlKey || a.metaKey;
break;
default:
e = !1
} else 36 === a.keyCode && a.ctrlKey ? d.datepicker._showDatepicker(this) : e = !1;
e && (a.preventDefault(), a.stopPropagation())
},
_doKeyPress: function(a) {
var c, f, k = d.datepicker._getInst(a.target);
return d.datepicker._get(k, "constrainInput") ? (c = d.datepicker._possibleChars(d.datepicker._get(k, "dateFormat")), f = String.fromCharCode(null == a.charCode ? a.keyCode : a.charCode), a.ctrlKey || a.metaKey || " " > f || !c || -1 < c.indexOf(f)) : void 0
},
_doKeyUp: function(a) {
var c;
a = d.datepicker._getInst(a.target);
if (a.input.val() !== a.lastVal) try {
(c = d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), a.input ? a.input.val() : null, d.datepicker._getFormatConfig(a))) && (d.datepicker._setDateFromField(a), d.datepicker._updateAlternate(a), d.datepicker._updateDatepicker(a))
} catch (D) {}
return !0
},
_showDatepicker: function(c) {
if (c = c.target || c, "input" !== c.nodeName.toLowerCase() && (c = d("input", c.parentNode)[0]), !d.datepicker._isDisabledDatepicker(c) && d.datepicker._lastInput !== c) {
var f, k, n, e, t, v;
f = d.datepicker._getInst(c);
d.datepicker._curInst && d.datepicker._curInst !== f && (d.datepicker._curInst.dpDiv.stop(!0, !0), f && d.datepicker._datepickerShowing && d.datepicker._hideDatepicker(d.datepicker._curInst.input[0]));
k = (k = d.datepicker._get(f, "beforeShow")) ? k.apply(c, [c, f]) : {};
!1 !== k && (a(f.settings, k), f.lastVal = null, d.datepicker._lastInput = c, d.datepicker._setDateFromField(f), d.datepicker._inDialog && (c.value = ""), d.datepicker._pos || (d.datepicker._pos = d.datepicker._findPos(c), d.datepicker._pos[1] += c.offsetHeight), n = !1, d(c).parents().each(function() {
return n |= "fixed" === d(this).css("position"), !n
}), e = {
left: d.datepicker._pos[0],
top: d.datepicker._pos[1]
}, d.datepicker._pos = null, f.dpDiv.empty(), f.dpDiv.css({
position: "absolute",
display: "block",
top: "-1000px"
}), d.datepicker._updateDatepicker(f), e = d.datepicker._checkOffset(f, e, n), f.dpDiv.css({
position: d.datepicker._inDialog && d.blockUI ? "static" : n ? "fixed" : "absolute",
display: "none",
left: e.left + "px",
top: e.top + "px"
}), f.inline || (t = d.datepicker._get(f, "showAnim"), v = d.datepicker._get(f, "duration"), f.dpDiv.css("z-index", m(d(c)) + 1), d.datepicker._datepickerShowing = !0, d.effects && d.effects.effect[t] ? f.dpDiv.show(t, d.datepicker._get(f, "showOptions"), v) : f.dpDiv[t || "show"](t ? v : null), d.datepicker._shouldFocusInput(f) && f.input.focus(), d.datepicker._curInst = f))
}
},
_updateDatepicker: function(a) {
this.maxRows = 4;
A = a;
a.dpDiv.empty().append(this._generateHTML(a));
this._attachHandlers(a);
var c, f = this._getNumberOfMonths(a),
k = f[1],
n = a.dpDiv.find("." + this._dayOverClass + " a");
0 < n.length && q.apply(n.get(0));
a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");
1 < k && a.dpDiv.addClass("ui-datepicker-multi-" + k).css("width", 17 * k + "em");
a.dpDiv[(1 !== f[0] || 1 !== f[1] ? "add" : "remove") + "Class"]("ui-datepicker-multi");
a.dpDiv[(this._get(a, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl");
a === d.datepicker._curInst && d.datepicker._datepickerShowing && d.datepicker._shouldFocusInput(a) && a.input.focus();
a.yearshtml && (c = a.yearshtml, setTimeout(function() {
c === a.yearshtml && a.yearshtml && a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);
c = a.yearshtml = null
}, 0))
},
_shouldFocusInput: function(a) {
return a.input && a.input.is(":visible") && !a.input.is(":disabled") && !a.input.is(":focus")
},
_checkOffset: function(a, c, f) {
var k = a.dpDiv.outerWidth(),
n = a.dpDiv.outerHeight(),
e = a.input ? a.input.outerWidth() : 0,
t = a.input ? a.input.outerHeight() : 0,
v = document.documentElement.clientWidth + (f ? 0 : d(document).scrollLeft()),
h = document.documentElement.clientHeight + (f ? 0 : d(document).scrollTop());
return c.left -= this._get(a, "isRTL") ? k - e : 0, c.left -= f && c.left === a.input.offset().left ? d(document).scrollLeft() : 0, c.top -= f && c.top === a.input.offset().top + t ? d(document).scrollTop() : 0, c.left -= Math.min(c.left, c.left + k > v && v > k ? Math.abs(c.left + k - v) : 0), c.top -= Math.min(c.top, c.top + n > h && h > n ? Math.abs(n + t) : 0), c
},
_findPos: function(a) {
for (var c, f = this._getInst(a), f = this._get(f, "isRTL"); a && ("hidden" === a.type || 1 !== a.nodeType || d.expr.filters.hidden(a));) a = a[f ? "previousSibling" : "nextSibling"];
return c = d(a).offset(), [c.left, c.top]
},
_hideDatepicker: function(a) {
var c, f, k, n, e = this._curInst;
!e || a && e !== d.data(a, "datepicker") || this._datepickerShowing && (c = this._get(e, "showAnim"), f = this._get(e, "duration"), k = function() {
d.datepicker._tidyDialog(e)
}, d.effects && (d.effects.effect[c] || d.effects[c]) ? e.dpDiv.hide(c, d.datepicker._get(e, "showOptions"), f, k) : e.dpDiv["slideDown" === c ? "slideUp" : "fadeIn" === c ? "fadeOut" : "hide"](c ? f : null, k), c || k(), this._datepickerShowing = !1, n = this._get(e, "onClose"), n && n.apply(e.input ? e.input[0] : null, [e.input ? e.input.val() : "", e]), this._lastInput = null, this._inDialog && (this._dialogInput.css({
position: "absolute",
left: "0",
top: "-100px"
}), d.blockUI && (d.unblockUI(), d("body").append(this.dpDiv))), this._inDialog = !1)
},
_tidyDialog: function(a) {
a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")
},
_checkExternalClick: function(a) {
if (d.datepicker._curInst) {
a = d(a.target);
var c = d.datepicker._getInst(a[0]);
(!(a[0].id === d.datepicker._mainDivId || 0 !== a.parents("#" + d.datepicker._mainDivId).length || a.hasClass(d.datepicker.markerClassName) || a.closest("." + d.datepicker._triggerClass).length || !d.datepicker._datepickerShowing || d.datepicker._inDialog && d.blockUI) || a.hasClass(d.datepicker.markerClassName) && d.datepicker._curInst !== c) && d.datepicker._hideDatepicker()
}
},
_adjustDate: function(a, c, f) {
a = d(a);
var k = this._getInst(a[0]);
this._isDisabledDatepicker(a[0]) || (this._adjustInstDate(k, c + ("M" === f ? this._get(k, "showCurrentAtPos") : 0), f), this._updateDatepicker(k))
},
_gotoToday: function(a) {
var c;
a = d(a);
var f = this._getInst(a[0]);
this._get(f, "gotoCurrent") && f.currentDay ? (f.selectedDay = f.currentDay, f.drawMonth = f.selectedMonth = f.currentMonth, f.drawYear = f.selectedYear = f.currentYear) : (c = new Date, f.selectedDay = c.getDate(), f.drawMonth = f.selectedMonth = c.getMonth(), f.drawYear = f.selectedYear = c.getFullYear());
this._notifyChange(f);
this._adjustDate(a)
},
_selectMonthYear: function(a, c, f) {
a = d(a);
var k = this._getInst(a[0]);
k["selected" + ("M" === f ? "Month" : "Year")] = k["draw" + ("M" === f ? "Month" : "Year")] = parseInt(c.options[c.selectedIndex].value, 10);
this._notifyChange(k);
this._adjustDate(a)
},
_selectDay: function(a, c, f, k) {
var n, e = d(a);
d(k).hasClass(this._unselectableClass) || this._isDisabledDatepicker(e[0]) || (n = this._getInst(e[0]), n.selectedDay = n.currentDay = d("a", k).html(), n.selectedMonth = n.currentMonth = c, n.selectedYear = n.currentYear = f, this._selectDate(a, this._formatDate(n, n.currentDay, n.currentMonth, n.currentYear)))
},
_clearDate: function(a) {
a = d(a);
this._selectDate(a, "")
},
_selectDate: function(a, c) {
var f;
f = d(a);
var k = this._getInst(f[0]);
c = null != c ? c : this._formatDate(k);
k.input && k.input.val(c);
this._updateAlternate(k);
(f = this._get(k, "onSelect")) ? f.apply(k.input ? k.input[0] : null, [c, k]): k.input && k.input.trigger("change");
k.inline ? this._updateDatepicker(k) : (this._hideDatepicker(), this._lastInput = k.input[0], "object" != typeof k.input[0] && k.input.focus(), this._lastInput = null)
},
_updateAlternate: function(a) {
var c, f, k, n = this._get(a, "altField");
n && (c = this._get(a, "altFormat") || this._get(a, "dateFormat"), f = this._getDate(a), k = this.formatDate(c, f, this._getFormatConfig(a)), d(n).each(function() {
d(this).val(k)
}))
},
noWeekends: function(a) {
a = a.getDay();
return [0 < a && 6 > a, ""]
},
iso8601Week: function(a) {
var d;
a = new Date(a.getTime());
return a.setDate(a.getDate() + 4 - (a.getDay() || 7)), d = a.getTime(), a.setMonth(0), a.setDate(1), Math.floor(Math.round((d - a) / 864e5) / 7) + 1
},
parseDate: function(a, c, f) {
if (null == a || null == c) throw "Invalid arguments";
if (c = "object" == typeof c ? "" + c : c + "", "" === c) return null;
var k, n, e, t, h = 0,
v = (f ? f.shortYearCutoff : null) || this._defaults.shortYearCutoff,
v = "string" != typeof v ? v : (new Date).getFullYear() % 100 + parseInt(v, 10),
m = (f ? f.dayNamesShort : null) || this._defaults.dayNamesShort,
w = (f ? f.dayNames : null) || this._defaults.dayNames,
u = (f ? f.monthNamesShort : null) || this._defaults.monthNamesShort;
f = (f ? f.monthNames : null) || this._defaults.monthNames;
var q = -1,
p = -1,
B = -1,
C = -1,
D = !1,
A = function(d) {
d = a.length > k + 1 && a.charAt(k + 1) === d;
return d && k++, d
},
Y = function(a) {
var d = A(a),
d = "@" === a ? 14 : "!" === a ? 20 : "y" === a && d ? 4 : "o" === a ? 3 : 2;
a = RegExp("^\\d{" + ("y" === a ? d : 1) + "," + d + "}");
a = c.substring(h).match(a);
if (!a) throw "Missing number at position " + h;
return h += a[0].length, parseInt(a[0], 10)
},
Z = function(a, f, k) {
var n = -1;
a = d.map(A(a) ? k : f, function(a, d) {
return [
[d, a]
]
}).sort(function(a, d) {
return -(a[1].length - d[1].length)
});
if (d.each(a, function(a, d) {
var f = d[1];
return c.substr(h, f.length).toLowerCase() === f.toLowerCase() ? (n = d[0], h += f.length, !1) : void 0
}), -1 !== n) return n + 1;
throw "Unknown name at position " + h
},
R = function() {
if (c.charAt(h) !== a.charAt(k)) throw "Unexpected literal at position " + h;
h++
};
for (k = 0; a.length > k; k++)
if (D) "'" !== a.charAt(k) || A("'") ? R() : D = !1;
else switch (a.charAt(k)) {
case "d":
B = Y("d");
break;
case "D":
Z("D", m, w);
break;
case "o":
C = Y("o");
break;
case "m":
p = Y("m");
break;
case "M":
p = Z("M", u, f);
break;
case "y":
q = Y("y");
break;
case "@":
t = new Date(Y("@"));
q = t.getFullYear();
p = t.getMonth() + 1;
B = t.getDate();
break;
case "!":
t = new Date((Y("!") - this._ticksTo1970) / 1e4);
q = t.getFullYear();
p = t.getMonth() + 1;
B = t.getDate();
break;
case "'":
A("'") ? R() : D = !0;
break;
default:
R()
}
if (c.length > h && (e = c.substr(h), !/^\s+/.test(e))) throw "Extra/unparsed characters found in date: " + e;
if (-1 === q ? q = (new Date).getFullYear() : 100 > q && (q += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (v >= q ? 0 : -100)), -1 < C)
for (p = 1, B = C; !(n = this._getDaysInMonth(q, p - 1), n >= B);) p++, B -= n;
if (t = this._daylightSavingAdjust(new Date(q, p - 1, B)), t.getFullYear() !== q || t.getMonth() + 1 !== p || t.getDate() !== B) throw "Invalid date";
return t
},
ATOM: "yy-mm-dd",
COOKIE: "D, dd M yy",
ISO_8601: "yy-mm-dd",
RFC_822: "D, d M y",
RFC_850: "DD, dd-M-y",
RFC_1036: "D, d M y",
RFC_1123: "D, d M yy",
RFC_2822: "D, d M yy",
RSS: "D, d M y",
TICKS: "!",
TIMESTAMP: "@",
W3C: "yy-mm-dd",
_ticksTo1970: 864e9 * (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)),
formatDate: function(a, d, c) {
if (!d) return "";
var f, k = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort,
n = (c ? c.dayNames : null) || this._defaults.dayNames,
e = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort;
c = (c ? c.monthNames : null) || this._defaults.monthNames;
var t = function(d) {
d = a.length > f + 1 && a.charAt(f + 1) === d;
return d && f++, d
},
h = function(a, d, c) {
d = "" + d;
if (t(a))
for (; c > d.length;) d = "0" + d;
return d
},
v = function(a, d, c, f) {
return t(a) ? f[d] : c[d]
},
m = "",
w = !1;
if (d)
for (f = 0; a.length > f; f++)
if (w) "'" !== a.charAt(f) || t("'") ? m += a.charAt(f) : w = !1;
else switch (a.charAt(f)) {
case "d":
m += h("d", d.getDate(), 2);
break;
case "D":
m += v("D", d.getDay(), k, n);
break;
case "o":
m += h("o", Math.round((new Date(d.getFullYear(), d.getMonth(), d.getDate()).getTime() - new Date(d.getFullYear(), 0, 0).getTime()) / 864e5), 3);
break;
case "m":
m += h("m", d.getMonth() + 1, 2);
break;
case "M":
m += v("M", d.getMonth(), e, c);
break;
case "y":
m += t("y") ? d.getFullYear() : (10 > d.getYear() % 100 ? "0" : "") + d.getYear() % 100;
break;
case "@":
m += d.getTime();
break;
case "!":
m += 1e4 * d.getTime() + this._ticksTo1970;
break;
case "'":
t("'") ? m += "'" : w = !0;
break;
default:
m += a.charAt(f)
}
return m
},
_possibleChars: function(a) {
var d, c = "",
f = !1,
k = function(c) {
c = a.length > d + 1 && a.charAt(d + 1) === c;
return c && d++, c
};
for (d = 0; a.length > d; d++)
if (f) "'" !== a.charAt(d) || k("'") ? c += a.charAt(d) : f = !1;
else switch (a.charAt(d)) {
case "d":
case "m":
case "y":
case "@":
c += "0123456789";
break;
case "D":
case "M":
return null;
case "'":
k("'") ? c += "'" : f = !0;
break;
default:
c += a.charAt(d)
}
return c
},
_get: function(a, d) {
return void 0 !== a.settings[d] ? a.settings[d] : this._defaults[d]
},
_setDateFromField: function(a, d) {
if (a.input.val() !== a.lastVal) {
var c = this._get(a, "dateFormat"),
f = a.lastVal = a.input ? a.input.val() : null,
k = this._getDefaultDate(a),
n = k,
e = this._getFormatConfig(a);
try {
n = this.parseDate(c, f, e) || k
} catch (I) {
f = d ? "" : f
}
a.selectedDay = n.getDate();
a.drawMonth = a.selectedMonth = n.getMonth();
a.drawYear = a.selectedYear = n.getFullYear();
a.currentDay = f ? n.getDate() : 0;
a.currentMonth = f ? n.getMonth() : 0;
a.currentYear = f ? n.getFullYear() : 0;
this._adjustInstDate(a)
}
},
_getDefaultDate: function(a) {
return this._restrictMinMax(a, this._determineDate(a, this._get(a, "defaultDate"), new Date))
},
_determineDate: function(a, c, f) {
var k = function(a) {
var d = new Date;
return d.setDate(d.getDate() + a), d
},
n = function(c) {
try {
return d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), c, d.datepicker._getFormatConfig(a))
} catch (U) {}
for (var f = (c.toLowerCase().match(/^c/) ? d.datepicker._getDate(a) : null) || new Date, k = f.getFullYear(), n = f.getMonth(), f = f.getDate(), e = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, t = e.exec(c); t;) {
switch (t[2] || "d") {
case "d":
case "D":
f += parseInt(t[1], 10);
break;
case "w":
case "W":
f += 7 * parseInt(t[1], 10);
break;
case "m":
case "M":
n += parseInt(t[1], 10);
f = Math.min(f, d.datepicker._getDaysInMonth(k, n));
break;
case "y":
case "Y":
k += parseInt(t[1], 10), f = Math.min(f, d.datepicker._getDaysInMonth(k, n))
}
t = e.exec(c)
}
return new Date(k, n, f)
};
c = null == c || "" === c ? f : "string" == typeof c ? n(c) : "number" == typeof c ? isNaN(c) ? f : k(c) : new Date(c.getTime());
return c = c && "Invalid Date" == "" + c ? f : c, c && (c.setHours(0), c.setMinutes(0), c.setSeconds(0), c.setMilliseconds(0)), this._daylightSavingAdjust(c)
},
_daylightSavingAdjust: function(a) {
return a ? (a.setHours(12 < a.getHours() ? a.getHours() + 2 : 0), a) : null
},
_setDate: function(a, d, c) {
var f = !d,
k = a.selectedMonth,
n = a.selectedYear;
d = this._restrictMinMax(a, this._determineDate(a, d, new Date));
a.selectedDay = a.currentDay = d.getDate();
a.drawMonth = a.selectedMonth = a.currentMonth = d.getMonth();
a.drawYear = a.selectedYear = a.currentYear = d.getFullYear();
k === a.selectedMonth && n === a.selectedYear || c || this._notifyChange(a);
this._adjustInstDate(a);
a.input && a.input.val(f ? "" : this._formatDate(a))
},
_getDate: function(a) {
return !a.currentYear || a.input && "" === a.input.val() ? null : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay))
},
_attachHandlers: function(a) {
var c = this._get(a, "stepMonths"),
f = "#" + a.id.replace(/\\\\/g, "\\");
a.dpDiv.find("[data-handler]").map(function() {
d(this).bind(this.getAttribute("data-event"), {
prev: function() {
d.datepicker._adjustDate(f, -c, "M")
},
next: function() {
d.datepicker._adjustDate(f, +c, "M")
},
hide: function() {
d.datepicker._hideDatepicker()
},
today: function() {
d.datepicker._gotoToday(f)
},
selectDay: function() {
return d.datepicker._selectDay(f, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this), !1
},
selectMonth: function() {
return d.datepicker._selectMonthYear(f, this, "M"), !1
},
selectYear: function() {
return d.datepicker._selectMonthYear(f, this, "Y"), !1
}
}[this.getAttribute("data-handler")])
})
},
_generateHTML: function(a) {
var d, c, f, k, n, e, t, h, m, v, w, u, q, p, C, A, ha, Y, Z, R, aa, da, ua, Da, S, wa, ta, na = new Date,
na = this._daylightSavingAdjust(new Date(na.getFullYear(), na.getMonth(), na.getDate())),
ea = this._get(a, "isRTL");
e = this._get(a, "showButtonPanel");
f = this._get(a, "hideIfNoPrevNext");
n = this._get(a, "navigationAsDateFormat");
var Ea = this._getNumberOfMonths(a),
ja = this._get(a, "showCurrentAtPos");
k = this._get(a, "stepMonths");
var hb = 1 !== Ea[0] || 1 !== Ea[1],
ob = this._daylightSavingAdjust(a.currentDay ? new Date(a.currentYear, a.currentMonth, a.currentDay) : new Date(9999, 9, 9)),
xa = this._getMinMaxDate(a, "min"),
P = this._getMinMaxDate(a, "max"),
ja = a.drawMonth - ja,
z = a.drawYear;
if (0 > ja && (ja += 12, z--), P)
for (d = this._daylightSavingAdjust(new Date(P.getFullYear(), P.getMonth() - Ea[0] * Ea[1] + 1, P.getDate())), d = xa && xa > d ? xa : d; this._daylightSavingAdjust(new Date(z, ja, 1)) > d;) ja--, 0 > ja && (ja = 11, z--);
a.drawMonth = ja;
a.drawYear = z;
d = this._get(a, "prevText");
d = n ? this.formatDate(d, this._daylightSavingAdjust(new Date(z, ja - k, 1)), this._getFormatConfig(a)) : d;
d = this._canAdjustMonth(a, -1, z, ja) ? "<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='" + d + "'><span class='ui-icon ui-icon-circle-triangle-" + (ea ? "e" : "w") + "'>" + d + "</span></a>" : f ? "" : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='" + d + "'><span class='ui-icon ui-icon-circle-triangle-" + (ea ? "e" : "w") + "'>" + d + "</span></a>";
c = this._get(a, "nextText");
c = n ? this.formatDate(c, this._daylightSavingAdjust(new Date(z, ja + k, 1)), this._getFormatConfig(a)) : c;
f = this._canAdjustMonth(a, 1, z, ja) ? "<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='" + c + "'><span class='ui-icon ui-icon-circle-triangle-" + (ea ? "w" : "e") + "'>" + c + "</span></a>" : f ? "" : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='" + c + "'><span class='ui-icon ui-icon-circle-triangle-" + (ea ? "w" : "e") + "'>" + c + "</span></a>";
k = this._get(a, "currentText");
c = this._get(a, "gotoCurrent") && a.currentDay ? ob : na;
k = n ? this.formatDate(k, c, this._getFormatConfig(a)) : k;
n = a.inline ? "" : "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" + this._get(a, "closeText") + "</button>";
e = e ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + (ea ? n : "") + (this._isInRange(a, c) ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>" + k + "</button>" : "") + (ea ? "" : n) + "</div>" : "";
n = parseInt(this._get(a, "firstDay"), 10);
n = isNaN(n) ? 0 : n;
k = this._get(a, "showWeek");
c = this._get(a, "dayNames");
t = this._get(a, "dayNamesMin");
h = this._get(a, "monthNames");
m = this._get(a, "monthNamesShort");
v = this._get(a, "beforeShowDay");
w = this._get(a, "showOtherMonths");
u = this._get(a, "selectOtherMonths");
q = this._getDefaultDate(a);
p = "";
for (A = 0; Ea[0] > A; A++) {
ha = "";
this.maxRows = 4;
for (Y = 0; Ea[1] > Y; Y++) {
if (Z = this._daylightSavingAdjust(new Date(z, ja, a.selectedDay)), C = " ui-corner-all", R = "", hb) {
if (R += "<div class='ui-datepicker-group", 1 < Ea[1]) switch (Y) {
case 0:
R += " ui-datepicker-group-first";
C = " ui-corner-" + (ea ? "right" : "left");
break;
case Ea[1] - 1:
R += " ui-datepicker-group-last";
C = " ui-corner-" + (ea ? "left" : "right");
break;
default:
R += " ui-datepicker-group-middle", C = ""
}
R += "'>"
}
R += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + C + "'>" + (/all|left/.test(C) && 0 === A ? ea ? f : d : "") + (/all|right/.test(C) && 0 === A ? ea ? d : f : "") + this._generateMonthYearHeader(a, ja, z, xa, P, 0 < A || 0 < Y, h, m) + "</div><table class='ui-datepicker-calendar'><thead><tr>";
aa = k ? "<th class='ui-datepicker-week-col'>" + this._get(a, "weekHeader") + "</th>" : "";
for (C = 0; 7 > C; C++) da = (C + n) % 7, aa += "<th scope='col'" + (5 <= (C + n + 6) % 7 ? " class='ui-datepicker-week-end'" : "") + "><span title='" + c[da] + "'>" + t[da] + "</span></th>";
R += aa + "</tr></thead><tbody>";
aa = this._getDaysInMonth(z, ja);
z === a.selectedYear && ja === a.selectedMonth && (a.selectedDay = Math.min(a.selectedDay, aa));
C = (this._getFirstDayOfMonth(z, ja) - n + 7) % 7;
aa = Math.ceil((C + aa) / 7);
this.maxRows = aa = hb ? this.maxRows > aa ? this.maxRows : aa : aa;
da = this._daylightSavingAdjust(new Date(z, ja, 1 - C));
for (ua = 0; aa > ua; ua++) {
R += "<tr>";
Da = k ? "<td class='ui-datepicker-week-col'>" + this._get(a, "calculateWeek")(da) + "</td>" : "";
for (C = 0; 7 > C; C++) S = v ? v.apply(a.input ? a.input[0] : null, [da]) : [!0, ""], ta = (wa = da.getMonth() !== ja) && !u || !S[0] || xa && xa > da || P && da > P, Da += "<td class='" + (5 <= (C + n + 6) % 7 ? " ui-datepicker-week-end" : "") + (wa ? " ui-datepicker-other-month" : "") + (da.getTime() === Z.getTime() && ja === a.selectedMonth && a._keyEvent || q.getTime() === da.getTime() && q.getTime() === Z.getTime() ? " " + this._dayOverClass : "") + (ta ? " " + this._unselectableClass + " ui-state-disabled" : "") + (wa && !w ? "" : " " + S[1] + (da.getTime() === ob.getTime() ? " " + this._currentClass : "") + (da.getTime() === na.getTime() ? " ui-datepicker-today" : "")) + "'" + (wa && !w || !S[2] ? "" : " title='" + S[2].replace(/'/g, "&#39;") + "'") + (ta ? "" : " data-handler='selectDay' data-event='click' data-month='" + da.getMonth() + "' data-year='" + da.getFullYear() + "'") + ">" + (wa && !w ? "&#xa0;" : ta ? "<span class='ui-state-default'>" + da.getDate() + "</span>" : "<a class='ui-state-default" + (da.getTime() === na.getTime() ? " ui-state-highlight" : "") + (da.getTime() === ob.getTime() ? " ui-state-active" : "") + (wa ? " ui-priority-secondary" : "") + "' href='#'>" + da.getDate() + "</a>") + "</td>", da.setDate(da.getDate() + 1), da = this._daylightSavingAdjust(da);
R += Da + "</tr>"
}
ja++;
11 < ja && (ja = 0, z++);
R += "</tbody></table>" + (hb ? "</div>" + (0 < Ea[0] && Y === Ea[1] - 1 ? "<div class='ui-datepicker-row-break'></div>" : "") : "");
ha += R
}
p += ha
}
return p += e, a._keyEvent = !1, p
},
_generateMonthYearHeader: function(a, d, c, f, k, n, e, t) {
var h, m, v, w = this._get(a, "changeMonth"),
u = this._get(a, "changeYear"),
q = this._get(a, "showMonthAfterYear"),
p = "<div class='ui-datepicker-title'>",
B = "";
if (n || !w) B += "<span class='ui-datepicker-month'>" + e[d] + "</span>";
else {
e = f && f.getFullYear() === c;
h = k && k.getFullYear() === c;
B += "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>";
for (m = 0; 12 > m; m++)(!e || m >= f.getMonth()) && (!h || k.getMonth() >= m) && (B += "<option value='" + m + "'" + (m === d ? " selected='selected'" : "") + ">" + t[m] + "</option>");
B += "</select>"
}
if (q || (p += B + (!n && w && u ? "" : "&#xa0;")), !a.yearshtml)
if (a.yearshtml = "", n || !u) p += "<span class='ui-datepicker-year'>" + c + "</span>";
else {
t = this._get(a, "yearRange").split(":");
v = (new Date).getFullYear();
e = function(a) {
a = a.match(/c[+\-].*/) ? c + parseInt(a.substring(1), 10) : a.match(/[+\-].*/) ? v + parseInt(a, 10) : parseInt(a, 10);
return isNaN(a) ? v : a
};
d = e(t[0]);
t = Math.max(d, e(t[1] || ""));
d = f ? Math.max(d, f.getFullYear()) : d;
t = k ? Math.min(t, k.getFullYear()) : t;
for (a.yearshtml += "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>"; t >= d; d++) a.yearshtml += "<option value='" + d + "'" + (d === c ? " selected='selected'" : "") + ">" + d + "</option>";
a.yearshtml += "</select>";
p += a.yearshtml;
a.yearshtml = null
}
return p += this._get(a, "yearSuffix"), q && (p += (!n && w && u ? "" : "&#xa0;") + B), p += "</div>"
},
_adjustInstDate: function(a, d, c) {
var f = a.drawYear + ("Y" === c ? d : 0),
k = a.drawMonth + ("M" === c ? d : 0);
d = Math.min(a.selectedDay, this._getDaysInMonth(f, k)) + ("D" === c ? d : 0);
f = this._restrictMinMax(a, this._daylightSavingAdjust(new Date(f, k, d)));
a.selectedDay = f.getDate();
a.drawMonth = a.selectedMonth = f.getMonth();
a.drawYear = a.selectedYear = f.getFullYear();
"M" !== c && "Y" !== c || this._notifyChange(a)
},
_restrictMinMax: function(a, d) {
var c = this._getMinMaxDate(a, "min"),
f = this._getMinMaxDate(a, "max"),
c = c && c > d ? c : d;
return f && c > f ? f : c
},
_notifyChange: function(a) {
var d = this._get(a, "onChangeMonthYear");
d && d.apply(a.input ? a.input[0] : null, [a.selectedYear, a.selectedMonth + 1, a])
},
_getNumberOfMonths: function(a) {
a = this._get(a, "numberOfMonths");
return null == a ? [1, 1] : "number" == typeof a ? [1, a] : a
},
_getMinMaxDate: function(a, d) {
return this._determineDate(a, this._get(a, d + "Date"), null)
},
_getDaysInMonth: function(a, d) {
return 32 - this._daylightSavingAdjust(new Date(a, d, 32)).getDate()
},
_getFirstDayOfMonth: function(a, d) {
return new Date(a, d, 1).getDay()
},
_canAdjustMonth: function(a, d, c, f) {
var k = this._getNumberOfMonths(a);
c = this._daylightSavingAdjust(new Date(c, f + (0 > d ? d : k[0] * k[1]), 1));
return 0 > d && c.setDate(this._getDaysInMonth(c.getFullYear(), c.getMonth())), this._isInRange(a, c)
},
_isInRange: function(a, d) {
var c, f, k = this._getMinMaxDate(a, "min"),
n = this._getMinMaxDate(a, "max"),
e = null,
t = null,
h = this._get(a, "yearRange");
return h && (c = h.split(":"), f = (new Date).getFullYear(), e = parseInt(c[0], 10), t = parseInt(c[1], 10), c[0].match(/[+\-].*/) && (e += f), c[1].match(/[+\-].*/) && (t += f)), (!k || d.getTime() >= k.getTime()) && (!n || d.getTime() <= n.getTime()) && (!e || d.getFullYear() >= e) && (!t || t >= d.getFullYear())
},
_getFormatConfig: function(a) {
var d = this._get(a, "shortYearCutoff");
return d = "string" != typeof d ? d : (new Date).getFullYear() % 100 + parseInt(d, 10), {
shortYearCutoff: d,
dayNamesShort: this._get(a, "dayNamesShort"),
dayNames: this._get(a, "dayNames"),
monthNamesShort: this._get(a, "monthNamesShort"),
monthNames: this._get(a, "monthNames")
}
},
_formatDate: function(a, d, c, f) {
d || (a.currentDay = a.selectedDay, a.currentMonth = a.selectedMonth, a.currentYear = a.selectedYear);
d = d ? "object" == typeof d ? d : this._daylightSavingAdjust(new Date(f, c, d)) : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay));
return this.formatDate(this._get(a, "dateFormat"), d, this._getFormatConfig(a))
}
});
d.fn.datepicker = function(a) {
if (!this.length) return this;
d.datepicker.initialized || (d(document).mousedown(d.datepicker._checkExternalClick), d.datepicker.initialized = !0);
0 === d("#" + d.datepicker._mainDivId).length && d("body").append(d.datepicker.dpDiv);
var c = Array.prototype.slice.call(arguments, 1);
return "string" != typeof a || "isDisabled" !== a && "getDate" !== a && "widget" !== a ? "option" === a && 2 === arguments.length && "string" == typeof arguments[1] ? d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(c)) : this.each(function() {
"string" == typeof a ? d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this].concat(c)) : d.datepicker._attachDatepicker(this, a)
}) : d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(c))
};
d.datepicker = new h;
d.datepicker.initialized = !1;
d.datepicker.uuid = (new Date).getTime();
d.datepicker.version = "1.11.2";
d.datepicker;
d.widget("ui.draggable", d.ui.mouse, {
version: "1.11.2",
widgetEventPrefix: "drag",
options: {
addClasses: !0,
appendTo: "parent",
axis: !1,
connectToSortable: !1,
containment: !1,
cursor: "auto",
cursorAt: !1,
grid: !1,
handle: !1,
helper: "original",
iframeFix: !1,
opacity: !1,
refreshPositions: !1,
revert: !1,
revertDuration: 500,
scope: "default",
scroll: !0,
scrollSensitivity: 20,
scrollSpeed: 20,
snap: !1,
snapMode: "both",
snapTolerance: 20,
stack: !1,
zIndex: !1,
drag: null,
start: null,
stop: null
},
_create: function() {
"original" === this.options.helper && this._setPositionRelative();
this.options.addClasses && this.element.addClass("ui-draggable");
this.options.disabled && this.element.addClass("ui-draggable-disabled");
this._setHandleClassName();
this._mouseInit()
},
_setOption: function(a, d) {
this._super(a, d);
"handle" === a && (this._removeHandleClassName(), this._setHandleClassName())
},
_destroy: function() {
return (this.helper || this.element).is(".ui-draggable-dragging") ? (this.destroyOnClear = !0, void 0) : (this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"), this._removeHandleClassName(), this._mouseDestroy(), void 0)
},
_mouseCapture: function(a) {
var c = this.options;
return this._blurActiveElement(a), this.helper || c.disabled || 0 < d(a.target).closest(".ui-resizable-handle").length ? !1 : (this.handle = this._getHandle(a), this.handle ? (this._blockFrames(!0 === c.iframeFix ? "iframe" : c.iframeFix), !0) : !1)
},
_blockFrames: function(a) {
this.iframeBlocks = this.document.find(a).map(function() {
var a = d(this);
return d("<div>").css("position", "absolute").appendTo(a.parent()).outerWidth(a.outerWidth()).outerHeight(a.outerHeight()).offset(a.offset())[0]
})
},
_unblockFrames: function() {
this.iframeBlocks && (this.iframeBlocks.remove(), delete this.iframeBlocks)
},
_blurActiveElement: function(a) {
var c = this.document[0];
if (this.handleElement.is(a.target)) try {
c.activeElement && "body" !== c.activeElement.nodeName.toLowerCase() && d(c.activeElement).blur()
} catch (D) {}
},
_mouseStart: function(a) {
var c = this.options;
return this.helper = this._createHelper(a), this.helper.addClass("ui-draggable-dragging"), this._cacheHelperProportions(), d.ui.ddmanager && (d.ui.ddmanager.current = this), this._cacheMargins(), this.cssPosition = this.helper.css("position"), this.scrollParent = this.helper.scrollParent(!0), this.offsetParent = this.helper.offsetParent(), this.hasFixedAncestor = 0 < this.helper.parents().filter(function() {
return "fixed" === d(this).css("position")
}).length, this.positionAbs = this.element.offset(), this._refreshOffsets(a), this.originalPosition = this.position = this._generatePosition(a, !1), this.originalPageX = a.pageX, this.originalPageY = a.pageY, c.cursorAt && this._adjustOffsetFromHelper(c.cursorAt), this._setContainment(), !1 === this._trigger("start", a) ? (this._clear(), !1) : (this._cacheHelperProportions(), d.ui.ddmanager && !c.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a), this._normalizeRightBottom(), this._mouseDrag(a, !0), d.ui.ddmanager && d.ui.ddmanager.dragStart(this, a), !0)
},
_refreshOffsets: function(a) {
this.offset = {
top: this.positionAbs.top - this.margins.top,
left: this.positionAbs.left - this.margins.left,
scroll: !1,
parent: this._getParentOffset(),
relative: this._getRelativeOffset()
};
this.offset.click = {
left: a.pageX - this.offset.left,
top: a.pageY - this.offset.top
}
},
_mouseDrag: function(a, c) {
if (this.hasFixedAncestor && (this.offset.parent = this._getParentOffset()), this.position = this._generatePosition(a, !0), this.positionAbs = this._convertPositionTo("absolute"), !c) {
var f = this._uiHash();
if (!1 === this._trigger("drag", a, f)) return this._mouseUp({}), !1;
this.position = f.position
}
return this.helper[0].style.left = this.position.left + "px", this.helper[0].style.top = this.position.top + "px", d.ui.ddmanager && d.ui.ddmanager.drag(this, a), !1
},
_mouseStop: function(a) {
var c = this,
f = !1;
return d.ui.ddmanager && !this.options.dropBehaviour && (f = d.ui.ddmanager.drop(this, a)), this.dropped && (f = this.dropped, this.dropped = !1), "invalid" === this.options.revert && !f || "valid" === this.options.revert && f || !0 === this.options.revert || d.isFunction(this.options.revert) && this.options.revert.call(this.element, f) ? d(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
!1 !== c._trigger("stop", a) && c._clear()
}) : !1 !== this._trigger("stop", a) && this._clear(), !1
},
_mouseUp: function(a) {
return this._unblockFrames(), d.ui.ddmanager && d.ui.ddmanager.dragStop(this, a), this.handleElement.is(a.target) && this.element.focus(), d.ui.mouse.prototype._mouseUp.call(this, a)
},
cancel: function() {
return this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear(), this
},
_getHandle: function(a) {
return this.options.handle ? !!d(a.target).closest(this.element.find(this.options.handle)).length : !0
},
_setHandleClassName: function() {
this.handleElement = this.options.handle ? this.element.find(this.options.handle) : this.element;
this.handleElement.addClass("ui-draggable-handle")
},
_removeHandleClassName: function() {
this.handleElement.removeClass("ui-draggable-handle")
},
_createHelper: function(a) {
var c = this.options,
f = d.isFunction(c.helper);
a = f ? d(c.helper.apply(this.element[0], [a])) : "clone" === c.helper ? this.element.clone().removeAttr("id") : this.element;
return a.parents("body").length || a.appendTo("parent" === c.appendTo ? this.element[0].parentNode : c.appendTo), f && a[0] === this.element[0] && this._setPositionRelative(), a[0] === this.element[0] || /(fixed|absolute)/.test(a.css("position")) || a.css("position", "absolute"), a
},
_setPositionRelative: function() {
/^(?:r|a|f)/.test(this.element.css("position")) || (this.element[0].style.position = "relative")
},
_adjustOffsetFromHelper: function(a) {
"string" == typeof a && (a = a.split(" "));
d.isArray(a) && (a = {
left: +a[0],
top: +a[1] || 0
});
"left" in a && (this.offset.click.left = a.left + this.margins.left);
"right" in a && (this.offset.click.left = this.helperProportions.width - a.right + this.margins.left);
"top" in a && (this.offset.click.top = a.top + this.margins.top);
"bottom" in a && (this.offset.click.top = this.helperProportions.height - a.bottom + this.margins.top)
},
_isRootNode: function(a) {
return /(html|body)/i.test(a.tagName) || a === this.document[0]
},
_getParentOffset: function() {
var a = this.offsetParent.offset(),
c = this.document[0];
return "absolute" === this.cssPosition && this.scrollParent[0] !== c && d.contains(this.scrollParent[0], this.offsetParent[0]) && (a.left += this.scrollParent.scrollLeft(), a.top += this.scrollParent.scrollTop()), this._isRootNode(this.offsetParent[0]) && (a = {
top: 0,
left: 0
}), {
top: a.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
left: a.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
}
},
_getRelativeOffset: function() {
if ("relative" !== this.cssPosition) return {
top: 0,
left: 0
};
var a = this.element.position(),
d = this._isRootNode(this.scrollParent[0]);
return {
top: a.top - (parseInt(this.helper.css("top"), 10) || 0) + (d ? 0 : this.scrollParent.scrollTop()),
left: a.left - (parseInt(this.helper.css("left"), 10) || 0) + (d ? 0 : this.scrollParent.scrollLeft())
}
},
_cacheMargins: function() {
this.margins = {
left: parseInt(this.element.css("marginLeft"), 10) || 0,
top: parseInt(this.element.css("marginTop"), 10) || 0,
right: parseInt(this.element.css("marginRight"), 10) || 0,
bottom: parseInt(this.element.css("marginBottom"), 10) || 0
}
},
_cacheHelperProportions: function() {
this.helperProportions = {
width: this.helper.outerWidth(),
height: this.helper.outerHeight()
}
},
_setContainment: function() {
var a, c, f, k = this.options,
n = this.document[0];
return this.relativeContainer = null, k.containment ? "window" === k.containment ? (this.containment = [d(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, d(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, d(window).scrollLeft() + d(window).width() - this.helperProportions.width - this.margins.left, d(window).scrollTop() + (d(window).height() || n.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top], void 0) : "document" === k.containment ? (this.containment = [0, 0, d(n).width() - this.helperProportions.width - this.margins.left, (d(n).height() || n.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top], void 0) : k.containment.constructor === Array ? (this.containment = k.containment, void 0) : ("parent" === k.containment && (k.containment = this.helper[0].parentNode), c = d(k.containment), f = c[0], f && (a = /(scroll|auto)/.test(c.css("overflow")), this.containment = [(parseInt(c.css("borderLeftWidth"), 10) || 0) + (parseInt(c.css("paddingLeft"), 10) || 0), (parseInt(c.css("borderTopWidth"), 10) || 0) + (parseInt(c.css("paddingTop"), 10) || 0), (a ? Math.max(f.scrollWidth, f.offsetWidth) : f.offsetWidth) - (parseInt(c.css("borderRightWidth"), 10) || 0) - (parseInt(c.css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (a ? Math.max(f.scrollHeight, f.offsetHeight) : f.offsetHeight) - (parseInt(c.css("borderBottomWidth"), 10) || 0) - (parseInt(c.css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom], this.relativeContainer = c), void 0) : (this.containment = null, void 0)
},
_convertPositionTo: function(a, d) {
d || (d = this.position);
var c = "absolute" === a ? 1 : -1,
f = this._isRootNode(this.scrollParent[0]);
return {
top: d.top + this.offset.relative.top * c + this.offset.parent.top * c - ("fixed" === this.cssPosition ? -this.offset.scroll.top : f ? 0 : this.offset.scroll.top) * c,
left: d.left + this.offset.relative.left * c + this.offset.parent.left * c - ("fixed" === this.cssPosition ? -this.offset.scroll.left : f ? 0 : this.offset.scroll.left) * c
}
},
_generatePosition: function(a, d) {
var c, f, k, n, e = this.options,
t = this._isRootNode(this.scrollParent[0]),
h = a.pageX,
m = a.pageY;
return t && this.offset.scroll || (this.offset.scroll = {
top: this.scrollParent.scrollTop(),
left: this.scrollParent.scrollLeft()
}), d && (this.containment && (this.relativeContainer ? (f = this.relativeContainer.offset(), c = [this.containment[0] + f.left, this.containment[1] + f.top, this.containment[2] + f.left, this.containment[3] + f.top]) : c = this.containment, a.pageX - this.offset.click.left < c[0] && (h = c[0] + this.offset.click.left), a.pageY - this.offset.click.top < c[1] && (m = c[1] + this.offset.click.top), a.pageX - this.offset.click.left > c[2] && (h = c[2] + this.offset.click.left), a.pageY - this.offset.click.top > c[3] && (m = c[3] + this.offset.click.top)), e.grid && (k = e.grid[1] ? this.originalPageY + Math.round((m - this.originalPageY) / e.grid[1]) * e.grid[1] : this.originalPageY, m = c ? k - this.offset.click.top >= c[1] || k - this.offset.click.top > c[3] ? k : k - this.offset.click.top >= c[1] ? k - e.grid[1] : k + e.grid[1] : k, n = e.grid[0] ? this.originalPageX + Math.round((h - this.originalPageX) / e.grid[0]) * e.grid[0] : this.originalPageX, h = c ? n - this.offset.click.left >= c[0] || n - this.offset.click.left > c[2] ? n : n - this.offset.click.left >= c[0] ? n - e.grid[0] : n + e.grid[0] : n), "y" === e.axis && (h = this.originalPageX), "x" === e.axis && (m = this.originalPageY)), {
top: m - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.offset.scroll.top : t ? 0 : this.offset.scroll.top),
left: h - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.offset.scroll.left : t ? 0 : this.offset.scroll.left)
}
},
_clear: function() {
this.helper.removeClass("ui-draggable-dragging");
this.helper[0] === this.element[0] || this.cancelHelperRemoval || this.helper.remove();
this.helper = null;
this.cancelHelperRemoval = !1;
this.destroyOnClear && this.destroy()
},
_normalizeRightBottom: function() {
"y" !== this.options.axis && "auto" !== this.helper.css("right") && (this.helper.width(this.helper.width()), this.helper.css("right", "auto"));
"x" !== this.options.axis && "auto" !== this.helper.css("bottom") && (this.helper.height(this.helper.height()), this.helper.css("bottom", "auto"))
},
_trigger: function(a, c, f) {
return f = f || this._uiHash(), d.ui.plugin.call(this, a, [c, f, this], !0), /^(drag|start|stop)/.test(a) && (this.positionAbs = this._convertPositionTo("absolute"), f.offset = this.positionAbs), d.Widget.prototype._trigger.call(this, a, c, f)
},
plugins: {},
_uiHash: function() {
return {
helper: this.helper,
position: this.position,
originalPosition: this.originalPosition,
offset: this.positionAbs
}
}
});
d.ui.plugin.add("draggable", "connectToSortable", {
start: function(a, c, f) {
var k = d.extend({}, c, {
item: f.element
});
f.sortables = [];
d(f.options.connectToSortable).each(function() {
var c = d(this).sortable("instance");
c && !c.options.disabled && (f.sortables.push(c), c.refreshPositions(), c._trigger("activate", a, k))
})
},
stop: function(a, c, f) {
var k = d.extend({}, c, {
item: f.element
});
f.cancelHelperRemoval = !1;
d.each(f.sortables, function() {
this.isOver ? (this.isOver = 0, f.cancelHelperRemoval = !0, this.cancelHelperRemoval = !1, this._storedCSS = {
position: this.placeholder.css("position"),
top: this.placeholder.css("top"),
left: this.placeholder.css("left")
}, this._mouseStop(a), this.options.helper = this.options._helper) : (this.cancelHelperRemoval = !0, this._trigger("deactivate", a, k))
})
},
drag: function(a, c, f) {
d.each(f.sortables, function() {
var k = !1,
n = this;
n.positionAbs = f.positionAbs;
n.helperProportions = f.helperProportions;
n.offset.click = f.offset.click;
n._intersectsWith(n.containerCache) && (k = !0, d.each(f.sortables, function() {
return this.positionAbs = f.positionAbs, this.helperProportions = f.helperProportions, this.offset.click = f.offset.click, this !== n && this._intersectsWith(this.containerCache) && d.contains(n.element[0], this.element[0]) && (k = !1), k
}));
k ? (n.isOver || (n.isOver = 1, n.currentItem = c.helper.appendTo(n.element).data("ui-sortable-item", !0), n.options._helper = n.options.helper, n.options.helper = function() {
return c.helper[0]
}, a.target = n.currentItem[0], n._mouseCapture(a, !0), n._mouseStart(a, !0, !0), n.offset.click.top = f.offset.click.top, n.offset.click.left = f.offset.click.left, n.offset.parent.left -= f.offset.parent.left - n.offset.parent.left, n.offset.parent.top -= f.offset.parent.top - n.offset.parent.top, f._trigger("toSortable", a), f.dropped = n.element, d.each(f.sortables, function() {
this.refreshPositions()
}), f.currentItem = f.element, n.fromOutside = f), n.currentItem && (n._mouseDrag(a), c.position = n.position)) : n.isOver && (n.isOver = 0, n.cancelHelperRemoval = !0, n.options._revert = n.options.revert, n.options.revert = !1, n._trigger("out", a, n._uiHash(n)), n._mouseStop(a, !0), n.options.revert = n.options._revert, n.options.helper = n.options._helper, n.placeholder && n.placeholder.remove(), f._refreshOffsets(a), c.position = f._generatePosition(a, !0), f._trigger("fromSortable", a), f.dropped = !1, d.each(f.sortables, function() {
this.refreshPositions()
}))
})
}
});
d.ui.plugin.add("draggable", "cursor", {
start: function(a, c, f) {
a = d("body");
f = f.options;
a.css("cursor") && (f._cursor = a.css("cursor"));
a.css("cursor", f.cursor)
},
stop: function(a, c, f) {
a = f.options;
a._cursor && d("body").css("cursor", a._cursor)
}
});
d.ui.plugin.add("draggable", "opacity", {
start: function(a, c, f) {
a = d(c.helper);
f = f.options;
a.css("opacity") && (f._opacity = a.css("opacity"));
a.css("opacity", f.opacity)
},
stop: function(a, c, f) {
a = f.options;
a._opacity && d(c.helper).css("opacity", a._opacity)
}
});
d.ui.plugin.add("draggable", "scroll", {
start: function(a, d, c) {
c.scrollParentNotHidden || (c.scrollParentNotHidden = c.helper.scrollParent(!1));
c.scrollParentNotHidden[0] !== c.document[0] && "HTML" !== c.scrollParentNotHidden[0].tagName && (c.overflowOffset = c.scrollParentNotHidden.offset())
},
drag: function(a, c, f) {
c = f.options;
var k = !1,
n = f.scrollParentNotHidden[0],
e = f.document[0];
n !== e && "HTML" !== n.tagName ? (c.axis && "x" === c.axis || (f.overflowOffset.top + n.offsetHeight - a.pageY < c.scrollSensitivity ? n.scrollTop = k = n.scrollTop + c.scrollSpeed : a.pageY - f.overflowOffset.top < c.scrollSensitivity && (n.scrollTop = k = n.scrollTop - c.scrollSpeed)), c.axis && "y" === c.axis || (f.overflowOffset.left + n.offsetWidth - a.pageX < c.scrollSensitivity ? n.scrollLeft = k = n.scrollLeft + c.scrollSpeed : a.pageX - f.overflowOffset.left < c.scrollSensitivity && (n.scrollLeft = k = n.scrollLeft - c.scrollSpeed))) : (c.axis && "x" === c.axis || (a.pageY - d(e).scrollTop() < c.scrollSensitivity ? k = d(e).scrollTop(d(e).scrollTop() - c.scrollSpeed) : d(window).height() - (a.pageY - d(e).scrollTop()) < c.scrollSensitivity && (k = d(e).scrollTop(d(e).scrollTop() + c.scrollSpeed))), c.axis && "y" === c.axis || (a.pageX - d(e).scrollLeft() < c.scrollSensitivity ? k = d(e).scrollLeft(d(e).scrollLeft() - c.scrollSpeed) : d(window).width() - (a.pageX - d(e).scrollLeft()) < c.scrollSensitivity && (k = d(e).scrollLeft(d(e).scrollLeft() + c.scrollSpeed))));
!1 !== k && d.ui.ddmanager && !c.dropBehaviour && d.ui.ddmanager.prepareOffsets(f, a)
}
});
d.ui.plugin.add("draggable", "snap", {
start: function(a, c, f) {
a = f.options;
f.snapElements = [];
d(a.snap.constructor !== String ? a.snap.items || ":data(ui-draggable)" : a.snap).each(function() {
var a = d(this),
c = a.offset();
this !== f.element[0] && f.snapElements.push({
item: this,
width: a.outerWidth(),
height: a.outerHeight(),
top: c.top,
left: c.left
})
})
},
drag: function(a, c, f) {
var k, n, e, t, h, m, w, v, u, q, p = f.options,
C = p.snapTolerance,
B = c.offset.left,
A = B + f.helperProportions.width,
D = c.offset.top,
Y = D + f.helperProportions.height;
for (u = f.snapElements.length - 1; 0 <= u; u--) h = f.snapElements[u].left - f.margins.left, m = h + f.snapElements[u].width, w = f.snapElements[u].top - f.margins.top, v = w + f.snapElements[u].height, h - C > A || B > m + C || w - C > Y || D > v + C || !d.contains(f.snapElements[u].item.ownerDocument, f.snapElements[u].item) ? (f.snapElements[u].snapping && f.options.snap.release && f.options.snap.release.call(f.element, a, d.extend(f._uiHash(), {
snapItem: f.snapElements[u].item
})), f.snapElements[u].snapping = !1) : ("inner" !== p.snapMode && (k = C >= Math.abs(w - Y), n = C >= Math.abs(v - D), e = C >= Math.abs(h - A), t = C >= Math.abs(m - B), k && (c.position.top = f._convertPositionTo("relative", {
top: w - f.helperProportions.height,
left: 0
}).top), n && (c.position.top = f._convertPositionTo("relative", {
top: v,
left: 0
}).top), e && (c.position.left = f._convertPositionTo("relative", {
top: 0,
left: h - f.helperProportions.width
}).left), t && (c.position.left = f._convertPositionTo("relative", {
top: 0,
left: m
}).left)), q = k || n || e || t, "outer" !== p.snapMode && (k = C >= Math.abs(w - D), n = C >= Math.abs(v - Y), e = C >= Math.abs(h - B), t = C >= Math.abs(m - A), k && (c.position.top = f._convertPositionTo("relative", {
top: w,
left: 0
}).top), n && (c.position.top = f._convertPositionTo("relative", {
top: v - f.helperProportions.height,
left: 0
}).top), e && (c.position.left = f._convertPositionTo("relative", {
top: 0,
left: h
}).left), t && (c.position.left = f._convertPositionTo("relative", {
top: 0,
left: m - f.helperProportions.width
}).left)), !f.snapElements[u].snapping && (k || n || e || t || q) && f.options.snap.snap && f.options.snap.snap.call(f.element, a, d.extend(f._uiHash(), {
snapItem: f.snapElements[u].item
})), f.snapElements[u].snapping = k || n || e || t || q)
}
});
d.ui.plugin.add("draggable", "stack", {
start: function(a, c, f) {
var k;
a = d.makeArray(d(f.options.stack)).sort(function(a, c) {
return (parseInt(d(a).css("zIndex"), 10) || 0) - (parseInt(d(c).css("zIndex"), 10) || 0)
});
a.length && (k = parseInt(d(a[0]).css("zIndex"), 10) || 0, d(a).each(function(a) {
d(this).css("zIndex", k + a)
}), this.css("zIndex", k + a.length))
}
});
d.ui.plugin.add("draggable", "zIndex", {
start: function(a, c, f) {
a = d(c.helper);
f = f.options;
a.css("zIndex") && (f._zIndex = a.css("zIndex"));
a.css("zIndex", f.zIndex)
},
stop: function(a, c, f) {
a = f.options;
a._zIndex && d(c.helper).css("zIndex", a._zIndex)
}
});
d.ui.draggable;
d.widget("ui.resizable", d.ui.mouse, {
version: "1.11.2",
widgetEventPrefix: "resize",
options: {
alsoResize: !1,
animate: !1,
animateDuration: "slow",
animateEasing: "swing",
aspectRatio: !1,
autoHide: !1,
containment: !1,
ghost: !1,
grid: !1,
handles: "e,s,se",
helper: !1,
maxHeight: null,
maxWidth: null,
minHeight: 10,
minWidth: 10,
zIndex: 90,
resize: null,
start: null,
stop: null
},
_num: function(a) {
return parseInt(a, 10) || 0
},
_isNumber: function(a) {
return !isNaN(parseInt(a, 10))
},
_hasScroll: function(a, c) {
if ("hidden" === d(a).css("overflow")) return !1;
var f = c && "left" === c ? "scrollLeft" : "scrollTop",
k = !1;
return 0 < a[f] ? !0 : (a[f] = 1, k = 0 < a[f], a[f] = 0, k)
},
_create: function() {
var a, c, f, k, n, e = this,
t = this.options;
if (this.element.addClass("ui-resizable"), d.extend(this, {
_aspectRatio: !!t.aspectRatio,
aspectRatio: t.aspectRatio,
originalElement: this.element,
_proportionallyResizeElements: [],
_helper: t.helper || t.ghost || t.animate ? t.helper || "ui-resizable-helper" : null
}), this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i) && (this.element.wrap(d("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({
position: this.element.css("position"),
width: this.element.outerWidth(),
height: this.element.outerHeight(),
top: this.element.css("top"),
left: this.element.css("left")
})), this.element = this.element.parent().data("ui-resizable", this.element.resizable("instance")), this.elementIsWrapper = !0, this.element.css({
marginLeft: this.originalElement.css("marginLeft"),
marginTop: this.originalElement.css("marginTop"),
marginRight: this.originalElement.css("marginRight"),
marginBottom: this.originalElement.css("marginBottom")
}), this.originalElement.css({
marginLeft: 0,
marginTop: 0,
marginRight: 0,
marginBottom: 0
}), this.originalResizeStyle = this.originalElement.css("resize"), this.originalElement.css("resize", "none"), this._proportionallyResizeElements.push(this.originalElement.css({
position: "static",
zoom: 1,
display: "block"
})), this.originalElement.css({
margin: this.originalElement.css("margin")
}), this._proportionallyResize()), this.handles = t.handles || (d(".ui-resizable-handle", this.element).length ? {
n: ".ui-resizable-n",
e: ".ui-resizable-e",
s: ".ui-resizable-s",
w: ".ui-resizable-w",
se: ".ui-resizable-se",
sw: ".ui-resizable-sw",
ne: ".ui-resizable-ne",
nw: ".ui-resizable-nw"
} : "e,s,se"), this.handles.constructor === String)
for ("all" === this.handles && (this.handles = "n,e,s,w,se,sw,ne,nw"), a = this.handles.split(","), this.handles = {}, c = 0; a.length > c; c++) f = d.trim(a[c]), n = "ui-resizable-" + f, k = d("<div class='ui-resizable-handle " + n + "'></div>"), k.css({
zIndex: t.zIndex
}), "se" === f && k.addClass("ui-icon ui-icon-gripsmall-diagonal-se"), this.handles[f] = ".ui-resizable-" + f, this.element.append(k);
this._renderAxis = function(a) {
var c, f, k, n;
a = a || this.element;
for (c in this.handles) this.handles[c].constructor === String && (this.handles[c] = this.element.children(this.handles[c]).first().show()), this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i) && (f = d(this.handles[c], this.element), n = /sw|ne|nw|se|n|s/.test(c) ? f.outerHeight() : f.outerWidth(), k = ["padding", /ne|nw|n/.test(c) ? "Top" : /se|sw|s/.test(c) ? "Bottom" : /^e$/.test(c) ? "Right" : "Left"].join(""), a.css(k, n), this._proportionallyResize()), d(this.handles[c]).length
};
this._renderAxis(this.element);
this._handles = d(".ui-resizable-handle", this.element).disableSelection();
this._handles.mouseover(function() {
e.resizing || (this.className && (k = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)), e.axis = k && k[1] ? k[1] : "se")
});
t.autoHide && (this._handles.hide(), d(this.element).addClass("ui-resizable-autohide").mouseenter(function() {
t.disabled || (d(this).removeClass("ui-resizable-autohide"), e._handles.show())
}).mouseleave(function() {
t.disabled || e.resizing || (d(this).addClass("ui-resizable-autohide"), e._handles.hide())
}));
this._mouseInit()
},
_destroy: function() {
this._mouseDestroy();
var a, c = function(a) {
d(a).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()
};
return this.elementIsWrapper && (c(this.element), a = this.element, this.originalElement.css({
position: a.css("position"),
width: a.outerWidth(),
height: a.outerHeight(),
top: a.css("top"),
left: a.css("left")
}).insertAfter(a), a.remove()), this.originalElement.css("resize", this.originalResizeStyle), c(this.originalElement), this
},
_mouseCapture: function(a) {
var c, f, k = !1;
for (c in this.handles) f = d(this.handles[c])[0], (f === a.target || d.contains(f, a.target)) && (k = !0);
return !this.options.disabled && k
},
_mouseStart: function(a) {
var c, f, k, n = this.options,
e = this.element;
return this.resizing = !0, this._renderProxy(), c = this._num(this.helper.css("left")), f = this._num(this.helper.css("top")), n.containment && (c += d(n.containment).scrollLeft() || 0, f += d(n.containment).scrollTop() || 0), this.offset = this.helper.offset(), this.position = {
left: c,
top: f
}, this.size = this._helper ? {
width: this.helper.width(),
height: this.helper.height()
} : {
width: e.width(),
height: e.height()
}, this.originalSize = this._helper ? {
width: e.outerWidth(),
height: e.outerHeight()
} : {
width: e.width(),
height: e.height()
}, this.sizeDiff = {
width: e.outerWidth() - e.width(),
height: e.outerHeight() - e.height()
}, this.originalPosition = {
left: c,
top: f
}, this.originalMousePosition = {
left: a.pageX,
top: a.pageY
}, this.aspectRatio = "number" == typeof n.aspectRatio ? n.aspectRatio : this.originalSize.width / this.originalSize.height || 1, k = d(".ui-resizable-" + this.axis).css("cursor"), d("body").css("cursor", "auto" === k ? this.axis + "-resize" : k), e.addClass("ui-resizable-resizing"), this._propagate("start", a), !0
},
_mouseDrag: function(a) {
var c, f, k = this.originalMousePosition,
n = a.pageX - k.left || 0,
k = a.pageY - k.top || 0,
e = this._change[this.axis];
return this._updatePrevProperties(), e ? (c = e.apply(this, [a, n, k]), this._updateVirtualBoundaries(a.shiftKey), (this._aspectRatio || a.shiftKey) && (c = this._updateRatio(c, a)), c = this._respectSize(c, a), this._updateCache(c), this._propagate("resize", a), f = this._applyChanges(), !this._helper && this._proportionallyResizeElements.length && this._proportionallyResize(), d.isEmptyObject(f) || (this._updatePrevProperties(), this._trigger("resize", a, this.ui()), this._applyChanges()), !1) : !1
},
_mouseStop: function(a) {
this.resizing = !1;
var c, f, k, n, e, t, h, m = this.options;
return this._helper && (c = this._proportionallyResizeElements, f = c.length && /textarea/i.test(c[0].nodeName), k = f && this._hasScroll(c[0], "left") ? 0 : this.sizeDiff.height, n = f ? 0 : this.sizeDiff.width, e = {
width: this.helper.width() - n,
height: this.helper.height() - k
}, t = parseInt(this.element.css("left"), 10) + (this.position.left - this.originalPosition.left) || null, h = parseInt(this.element.css("top"), 10) + (this.position.top - this.originalPosition.top) || null, m.animate || this.element.css(d.extend(e, {
top: h,
left: t
})), this.helper.height(this.size.height), this.helper.width(this.size.width), this._helper && !m.animate && this._proportionallyResize()), d("body").css("cursor", "auto"), this.element.removeClass("ui-resizable-resizing"), this._propagate("stop", a), this._helper && this.helper.remove(), !1
},
_updatePrevProperties: function() {
this.prevPosition = {
top: this.position.top,
left: this.position.left
};
this.prevSize = {
width: this.size.width,
height: this.size.height
}
},
_applyChanges: function() {
var a = {};
return this.position.top !== this.prevPosition.top && (a.top = this.position.top + "px"), this.position.left !== this.prevPosition.left && (a.left = this.position.left + "px"), this.size.width !== this.prevSize.width && (a.width = this.size.width + "px"), this.size.height !== this.prevSize.height && (a.height = this.size.height + "px"), this.helper.css(a), a
},
_updateVirtualBoundaries: function(a) {
var d, c, f, k, n;
n = this.options;
n = {
minWidth: this._isNumber(n.minWidth) ? n.minWidth : 0,
maxWidth: this._isNumber(n.maxWidth) ? n.maxWidth : 1 / 0,
minHeight: this._isNumber(n.minHeight) ? n.minHeight : 0,
maxHeight: this._isNumber(n.maxHeight) ? n.maxHeight : 1 / 0
};
(this._aspectRatio || a) && (d = n.minHeight * this.aspectRatio, f = n.minWidth / this.aspectRatio, c = n.maxHeight * this.aspectRatio, k = n.maxWidth / this.aspectRatio, d > n.minWidth && (n.minWidth = d), f > n.minHeight && (n.minHeight = f), n.maxWidth > c && (n.maxWidth = c), n.maxHeight > k && (n.maxHeight = k));
this._vBoundaries = n
},
_updateCache: function(a) {
this.offset = this.helper.offset();
this._isNumber(a.left) && (this.position.left = a.left);
this._isNumber(a.top) && (this.position.top = a.top);
this._isNumber(a.height) && (this.size.height = a.height);
this._isNumber(a.width) && (this.size.width = a.width)
},
_updateRatio: function(a) {
var d = this.position,
c = this.size,
f = this.axis;
return this._isNumber(a.height) ? a.width = a.height * this.aspectRatio : this._isNumber(a.width) && (a.height = a.width / this.aspectRatio), "sw" === f && (a.left = d.left + (c.width - a.width), a.top = null), "nw" === f && (a.top = d.top + (c.height - a.height), a.left = d.left + (c.width - a.width)), a
},
_respectSize: function(a) {
var d = this._vBoundaries,
c = this.axis,
f = this._isNumber(a.width) && d.maxWidth && d.maxWidth < a.width,
k = this._isNumber(a.height) && d.maxHeight && d.maxHeight < a.height,
n = this._isNumber(a.width) && d.minWidth && d.minWidth > a.width,
e = this._isNumber(a.height) && d.minHeight && d.minHeight > a.height,
t = this.originalPosition.left + this.originalSize.width,
h = this.position.top + this.size.height,
m = /sw|nw|w/.test(c),
c = /nw|ne|n/.test(c);
return n && (a.width = d.minWidth), e && (a.height = d.minHeight), f && (a.width = d.maxWidth), k && (a.height = d.maxHeight), n && m && (a.left = t - d.minWidth), f && m && (a.left = t - d.maxWidth), e && c && (a.top = h - d.minHeight), k && c && (a.top = h - d.maxHeight), a.width || a.height || a.left || !a.top ? a.width || a.height || a.top || !a.left || (a.left = null) : a.top = null, a
},
_getPaddingPlusBorderDimensions: function(a) {
var d = 0,
c = [],
f = [a.css("borderTopWidth"), a.css("borderRightWidth"), a.css("borderBottomWidth"), a.css("borderLeftWidth")];
for (a = [a.css("paddingTop"), a.css("paddingRight"), a.css("paddingBottom"), a.css("paddingLeft")]; 4 > d; d++) c[d] = parseInt(f[d], 10) || 0, c[d] += parseInt(a[d], 10) || 0;
return {
height: c[0] + c[2],
width: c[1] + c[3]
}
},
_proportionallyResize: function() {
if (this._proportionallyResizeElements.length)
for (var a, d = 0, c = this.helper || this.element; this._proportionallyResizeElements.length > d; d++) a = this._proportionallyResizeElements[d], this.outerDimensions || (this.outerDimensions = this._getPaddingPlusBorderDimensions(a)), a.css({
height: c.height() - this.outerDimensions.height || 0,
width: c.width() - this.outerDimensions.width || 0
})
},
_renderProxy: function() {
var a = this.options;
this.elementOffset = this.element.offset();
this._helper ? (this.helper = this.helper || d("<div style='overflow:hidden;'></div>"), this.helper.addClass(this._helper).css({
width: this.element.outerWidth() - 1,
height: this.element.outerHeight() - 1,
position: "absolute",
left: this.elementOffset.left + "px",
top: this.elementOffset.top + "px",
zIndex: ++a.zIndex
}), this.helper.appendTo("body").disableSelection()) : this.helper = this.element
},
_change: {
e: function(a, d) {
return {
width: this.originalSize.width + d
}
},
w: function(a, d) {
return {
left: this.originalPosition.left + d,
width: this.originalSize.width - d
}
},
n: function(a, d, c) {
return {
top: this.originalPosition.top + c,
height: this.originalSize.height - c
}
},
s: function(a, d, c) {
return {
height: this.originalSize.height + c
}
},
se: function(a, c, f) {
return d.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [a, c, f]))
},
sw: function(a, c, f) {
return d.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [a, c, f]))
},
ne: function(a, c, f) {
return d.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [a, c, f]))
},
nw: function(a, c, f) {
return d.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [a, c, f]))
}
},
_propagate: function(a, c) {
d.ui.plugin.call(this, a, [c, this.ui()]);
"resize" !== a && this._trigger(a, c, this.ui())
},
plugins: {},
ui: function() {
return {
originalElement: this.originalElement,
element: this.element,
helper: this.helper,
position: this.position,
size: this.size,
originalSize: this.originalSize,
originalPosition: this.originalPosition
}
}
});
d.ui.plugin.add("resizable", "animate", {
stop: function(a) {
var c = d(this).resizable("instance"),
f = c.options,
k = c._proportionallyResizeElements,
n = k.length && /textarea/i.test(k[0].nodeName),
e = n && c._hasScroll(k[0], "left") ? 0 : c.sizeDiff.height,
n = {
width: c.size.width - (n ? 0 : c.sizeDiff.width),
height: c.size.height - e
},
e = parseInt(c.element.css("left"), 10) + (c.position.left - c.originalPosition.left) || null,
t = parseInt(c.element.css("top"), 10) + (c.position.top - c.originalPosition.top) || null;
c.element.animate(d.extend(n, t && e ? {
top: t,
left: e
} : {}), {
duration: f.animateDuration,
easing: f.animateEasing,
step: function() {
var f = {
width: parseInt(c.element.css("width"), 10),
height: parseInt(c.element.css("height"), 10),
top: parseInt(c.element.css("top"), 10),
left: parseInt(c.element.css("left"), 10)
};
k && k.length && d(k[0]).css({
width: f.width,
height: f.height
});
c._updateCache(f);
c._propagate("resize", a)
}
})
}
});
d.ui.plugin.add("resizable", "containment", {
start: function() {
var a, c, f, k, n, e, t, h = d(this).resizable("instance"),
m = h.element,
w = h.options.containment;
(m = w instanceof d ? w.get(0) : /parent/.test(w) ? m.parent().get(0) : w) && (h.containerElement = d(m), /document/.test(w) || w === document ? (h.containerOffset = {
left: 0,
top: 0
}, h.containerPosition = {
left: 0,
top: 0
}, h.parentData = {
element: d(document),
left: 0,
top: 0,
width: d(document).width(),
height: d(document).height() || document.body.parentNode.scrollHeight
}) : (a = d(m), c = [], d(["Top", "Right", "Left", "Bottom"]).each(function(d, f) {
c[d] = h._num(a.css("padding" + f))
}), h.containerOffset = a.offset(), h.containerPosition = a.position(), h.containerSize = {
height: a.innerHeight() - c[3],
width: a.innerWidth() - c[1]
}, f = h.containerOffset, k = h.containerSize.height, n = h.containerSize.width, e = h._hasScroll(m, "left") ? m.scrollWidth : n, t = h._hasScroll(m) ? m.scrollHeight : k, h.parentData = {
element: m,
left: f.left,
top: f.top,
width: e,
height: t
}))
},
resize: function(a) {
var c, f, k, n = d(this).resizable("instance");
c = n.options;
f = n.containerOffset;
k = n.position;
a = n._aspectRatio || a.shiftKey;
var e = {
top: 0,
left: 0
},
t = n.containerElement,
h = !0;
t[0] !== document && /static/.test(t.css("position")) && (e = f);
k.left < (n._helper ? f.left : 0) && (n.size.width += n._helper ? n.position.left - f.left : n.position.left - e.left, a && (n.size.height = n.size.width / n.aspectRatio, h = !1), n.position.left = c.helper ? f.left : 0);
k.top < (n._helper ? f.top : 0) && (n.size.height += n._helper ? n.position.top - f.top : n.position.top, a && (n.size.width = n.size.height * n.aspectRatio, h = !1), n.position.top = n._helper ? f.top : 0);
c = n.containerElement.get(0) === n.element.parent().get(0);
k = /relative|absolute/.test(n.containerElement.css("position"));
c && k ? (n.offset.left = n.parentData.left + n.position.left, n.offset.top = n.parentData.top + n.position.top) : (n.offset.left = n.element.offset().left, n.offset.top = n.element.offset().top);
c = Math.abs(n.sizeDiff.width + (n._helper ? n.offset.left - e.left : n.offset.left - f.left));
f = Math.abs(n.sizeDiff.height + (n._helper ? n.offset.top - e.top : n.offset.top - f.top));
c + n.size.width >= n.parentData.width && (n.size.width = n.parentData.width - c, a && (n.size.height = n.size.width / n.aspectRatio, h = !1));
f + n.size.height >= n.parentData.height && (n.size.height = n.parentData.height - f, a && (n.size.width = n.size.height * n.aspectRatio, h = !1));
h || (n.position.left = n.prevPosition.left, n.position.top = n.prevPosition.top, n.size.width = n.prevSize.width, n.size.height = n.prevSize.height)
},
stop: function() {
var a = d(this).resizable("instance"),
c = a.options,
f = a.containerOffset,
k = a.containerPosition,
n = a.containerElement,
e = d(a.helper),
t = e.offset(),
h = e.outerWidth() - a.sizeDiff.width,
e = e.outerHeight() - a.sizeDiff.height;
a._helper && !c.animate && /relative/.test(n.css("position")) && d(this).css({
left: t.left - k.left - f.left,
width: h,
height: e
});
a._helper && !c.animate && /static/.test(n.css("position")) && d(this).css({
left: t.left - k.left - f.left,
width: h,
height: e
})
}
});
d.ui.plugin.add("resizable", "alsoResize", {
start: function() {
var a = d(this).resizable("instance").options,
c = function(a) {
d(a).each(function() {
var a = d(this);
a.data("ui-resizable-alsoresize", {
width: parseInt(a.width(), 10),
height: parseInt(a.height(), 10),
left: parseInt(a.css("left"), 10),
top: parseInt(a.css("top"), 10)
})
})
};
"object" != typeof a.alsoResize || a.alsoResize.parentNode ? c(a.alsoResize) : a.alsoResize.length ? (a.alsoResize = a.alsoResize[0], c(a.alsoResize)) : d.each(a.alsoResize, function(a) {
c(a)
})
},
resize: function(a, c) {
var f = d(this).resizable("instance"),
k = f.options,
n = f.originalSize,
e = f.originalPosition,
t = {
height: f.size.height - n.height || 0,
width: f.size.width - n.width || 0,
top: f.position.top - e.top || 0,
left: f.position.left - e.left || 0
},
h = function(a, f) {
d(a).each(function() {
var a = d(this),
k = d(this).data("ui-resizable-alsoresize"),
n = {},
e = f && f.length ? f : a.parents(c.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"];
d.each(e, function(a, d) {
var c = (k[d] || 0) + (t[d] || 0);
c && 0 <= c && (n[d] = c || null)
});
a.css(n)
})
};
"object" != typeof k.alsoResize || k.alsoResize.nodeType ? h(k.alsoResize) : d.each(k.alsoResize, function(a, d) {
h(a, d)
})
},
stop: function() {
d(this).removeData("resizable-alsoresize")
}
});
d.ui.plugin.add("resizable", "ghost", {
start: function() {
var a = d(this).resizable("instance"),
c = a.options,
f = a.size;
a.ghost = a.originalElement.clone();
a.ghost.css({
opacity: .25,
display: "block",
position: "relative",
height: f.height,
width: f.width,
margin: 0,
left: 0,
top: 0
}).addClass("ui-resizable-ghost").addClass("string" == typeof c.ghost ? c.ghost : "");
a.ghost.appendTo(a.helper)
},
resize: function() {
var a = d(this).resizable("instance");
a.ghost && a.ghost.css({
position: "relative",
height: a.size.height,
width: a.size.width
})
},
stop: function() {
var a = d(this).resizable("instance");
a.ghost && a.helper && a.helper.get(0).removeChild(a.ghost.get(0))
}
});
d.ui.plugin.add("resizable", "grid", {
resize: function() {
var a, c = d(this).resizable("instance"),
f = c.options,
k = c.size,
n = c.originalSize,
e = c.originalPosition,
t = c.axis,
h = "number" == typeof f.grid ? [f.grid, f.grid] : f.grid,
m = h[0] || 1,
w = h[1] || 1,
u = Math.round((k.width - n.width) / m) * m,
k = Math.round((k.height - n.height) / w) * w,
q = n.width + u,
p = n.height + k,
C = f.maxWidth && q > f.maxWidth,
A = f.maxHeight && p > f.maxHeight,
W = f.minWidth && f.minWidth > q,
ca = f.minHeight && f.minHeight > p;
f.grid = h;
W && (q += m);
ca && (p += w);
C && (q -= m);
A && (p -= w);
/^(se|s|e)$/.test(t) ? (c.size.width = q, c.size.height = p) : /^(ne)$/.test(t) ? (c.size.width = q, c.size.height = p, c.position.top = e.top - k) : /^(sw)$/.test(t) ? (c.size.width = q, c.size.height = p, c.position.left = e.left - u) : ((0 >= p - w || 0 >= q - m) && (a = c._getPaddingPlusBorderDimensions(this)), 0 < p - w ? (c.size.height = p, c.position.top = e.top - k) : (p = w - a.height, c.size.height = p, c.position.top = e.top + n.height - p), 0 < q - m ? (c.size.width = q, c.position.left = e.left - u) : (q = w - a.height, c.size.width = q, c.position.left = e.left + n.width - q))
}
});
d.ui.resizable;
d.widget("ui.dialog", {
version: "1.11.2",
options: {
appendTo: "body",
autoOpen: !0,
buttons: [],
closeOnEscape: !0,
closeText: "Close",
dialogClass: "",
draggable: !0,
hide: null,
height: "auto",
maxHeight: null,
maxWidth: null,
minHeight: 150,
minWidth: 150,
modal: !1,
position: {
my: "center",
at: "center",
of: window,
collision: "fit",
using: function(a) {
var c = d(this).css(a).offset().top;
0 > c && d(this).css("top", a.top - c)
}
},
resizable: !0,
show: null,
title: null,
width: 300,
beforeClose: null,
close: null,
drag: null,
dragStart: null,
dragStop: null,
focus: null,
open: null,
resize: null,
resizeStart: null,
resizeStop: null
},
sizeRelatedOptions: {
buttons: !0,
height: !0,
maxHeight: !0,
maxWidth: !0,
minHeight: !0,
minWidth: !0,
width: !0
},
resizableRelatedOptions: {
maxHeight: !0,
maxWidth: !0,
minHeight: !0,
minWidth: !0
},
_create: function() {
this.originalCss = {
display: this.element[0].style.display,
width: this.element[0].style.width,
minHeight: this.element[0].style.minHeight,
maxHeight: this.element[0].style.maxHeight,
height: this.element[0].style.height
};
this.originalPosition = {
parent: this.element.parent(),
index: this.element.parent().children().index(this.element)
};
this.originalTitle = this.element.attr("title");
this.options.title = this.options.title || this.originalTitle;
this._createWrapper();
this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog);
this._createTitlebar();
this._createButtonPane();
this.options.draggable && d.fn.draggable && this._makeDraggable();
this.options.resizable && d.fn.resizable && this._makeResizable();
this._isOpen = !1;
this._trackFocus()
},
_init: function() {
this.options.autoOpen && this.open()
},
_appendTo: function() {
var a = this.options.appendTo;
return a && (a.jquery || a.nodeType) ? d(a) : this.document.find(a || "body").eq(0)
},
_destroy: function() {
var a, d = this.originalPosition;
this._destroyOverlay();
this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach();
this.uiDialog.stop(!0, !0).remove();
this.originalTitle && this.element.attr("title", this.originalTitle);
a = d.parent.children().eq(d.index);
a.length && a[0] !== this.element[0] ? a.before(this.element) : d.parent.append(this.element)
},
widget: function() {
return this.uiDialog
},
disable: d.noop,
enable: d.noop,
close: function(a) {
var c, f = this;
if (this._isOpen && !1 !== this._trigger("beforeClose", a)) {
if (this._isOpen = !1, this._focusedElement = null, this._destroyOverlay(), this._untrackInstance(), !this.opener.filter(":focusable").focus().length) try {
(c = this.document[0].activeElement) && "body" !== c.nodeName.toLowerCase() && d(c).blur()
} catch (E) {}
this._hide(this.uiDialog, this.options.hide, function() {
f._trigger("close", a)
})
}
},
isOpen: function() {
return this._isOpen
},
moveToTop: function() {
this._moveToTop()
},
_moveToTop: function(a, c) {
var f = !1,
k = this.uiDialog.siblings(".ui-front:visible").map(function() {
return +d(this).css("z-index")
}).get(),
k = Math.max.apply(null, k);
return k >= +this.uiDialog.css("z-index") && (this.uiDialog.css("z-index", k + 1), f = !0), f && !c && this._trigger("focus", a), f
},
open: function() {
var a = this;
return this._isOpen ? (this._moveToTop() && this._focusTabbable(), void 0) : (this._isOpen = !0, this.opener = d(this.document[0].activeElement), this._size(), this._position(), this._createOverlay(), this._moveToTop(null, !0), this.overlay && this.overlay.css("z-index", this.uiDialog.css("z-index") - 1), this._show(this.uiDialog, this.options.show, function() {
a._focusTabbable();
a._trigger("focus")
}), this._makeFocusTarget(), this._trigger("open"), void 0)
},
_focusTabbable: function() {
var a = this._focusedElement;
a || (a = this.element.find("[autofocus]"));
a.length || (a = this.element.find(":tabbable"));
a.length || (a = this.uiDialogButtonPane.find(":tabbable"));
a.length || (a = this.uiDialogTitlebarClose.filter(":tabbable"));
a.length || (a = this.uiDialog);
a.eq(0).focus()
},
_keepFocus: function(a) {
function c() {
var a = this.document[0].activeElement;
this.uiDialog[0] === a || d.contains(this.uiDialog[0], a) || this._focusTabbable()
}
a.preventDefault();
c.call(this);
this._delay(c)
},
_createWrapper: function() {
this.uiDialog = d("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front " + this.options.dialogClass).hide().attr({
tabIndex: -1,
role: "dialog"
}).appendTo(this._appendTo());
this._on(this.uiDialog, {
keydown: function(a) {
if (this.options.closeOnEscape && !a.isDefaultPrevented() && a.keyCode && a.keyCode === d.ui.keyCode.ESCAPE) return a.preventDefault(), this.close(a), void 0;
if (a.keyCode === d.ui.keyCode.TAB && !a.isDefaultPrevented()) {
var c = this.uiDialog.find(":tabbable"),
f = c.filter(":first"),
k = c.filter(":last");
a.target !== k[0] && a.target !== this.uiDialog[0] || a.shiftKey ? a.target !== f[0] && a.target !== this.uiDialog[0] || !a.shiftKey || (this._delay(function() {
k.focus()
}), a.preventDefault()) : (this._delay(function() {
f.focus()
}), a.preventDefault())
}
},
mousedown: function(a) {
this._moveToTop(a) && this._focusTabbable()
}
});
this.element.find("[aria-describedby]").length || this.uiDialog.attr({
"aria-describedby": this.element.uniqueId().attr("id")
})
},
_createTitlebar: function() {
var a;
this.uiDialogTitlebar = d("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog);
this._on(this.uiDialogTitlebar, {
mousedown: function(a) {
d(a.target).closest(".ui-dialog-titlebar-close") || this.uiDialog.focus()
}
});
this.uiDialogTitlebarClose = d("<button type='button'></button>").button({
label: this.options.closeText,
icons: {
primary: "ui-icon-closethick"
},
text: !1
}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar);
this._on(this.uiDialogTitlebarClose, {
click: function(a) {
a.preventDefault();
this.close(a)
}
});
a = d("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar);
this._title(a);
this.uiDialog.attr({
"aria-labelledby": a.attr("id")
})
},
_title: function(a) {
this.options.title || a.html("&#160;");
a.text(this.options.title)
},
_createButtonPane: function() {
this.uiDialogButtonPane = d("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");
this.uiButtonSet = d("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane);
this._createButtons()
},
_createButtons: function() {
var a = this,
c = this.options.buttons;
return this.uiDialogButtonPane.remove(), this.uiButtonSet.empty(), d.isEmptyObject(c) || d.isArray(c) && !c.length ? (this.uiDialog.removeClass("ui-dialog-buttons"), void 0) : (d.each(c, function(c, f) {
var k, n;
f = d.isFunction(f) ? {
click: f,
text: c
} : f;
f = d.extend({
type: "button"
}, f);
k = f.click;
f.click = function() {
k.apply(a.element[0], arguments)
};
n = {
icons: f.icons,
text: f.showText
};
delete f.icons;
delete f.showText;
d("<button></button>", f).button(n).appendTo(a.uiButtonSet)
}), this.uiDialog.addClass("ui-dialog-buttons"), this.uiDialogButtonPane.appendTo(this.uiDialog), void 0)
},
_makeDraggable: function() {
function a(a) {
return {
position: a.position,
offset: a.offset
}
}
var c = this,
f = this.options;
this.uiDialog.draggable({
cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
handle: ".ui-dialog-titlebar",
containment: "document",
start: function(f, k) {
d(this).addClass("ui-dialog-dragging");
c._blockFrames();
c._trigger("dragStart", f, a(k))
},
drag: function(d, f) {
c._trigger("drag", d, a(f))
},
stop: function(k, n) {
var e = n.offset.left - c.document.scrollLeft(),
t = n.offset.top - c.document.scrollTop();
f.position = {
my: "left top",
at: "left" + (0 <= e ? "+" : "") + e + " top" + (0 <= t ? "+" : "") + t,
of: c.window
};
d(this).removeClass("ui-dialog-dragging");
c._unblockFrames();
c._trigger("dragStop", k, a(n))
}
})
},
_makeResizable: function() {
function a(a) {
return {
originalPosition: a.originalPosition,
originalSize: a.originalSize,
position: a.position,
size: a.size
}
}
var c = this,
f = this.options,
k = f.resizable,
n = this.uiDialog.css("position"),
k = "string" == typeof k ? k : "n,e,s,w,se,sw,ne,nw";
this.uiDialog.resizable({
cancel: ".ui-dialog-content",
containment: "document",
alsoResize: this.element,
maxWidth: f.maxWidth,
maxHeight: f.maxHeight,
minWidth: f.minWidth,
minHeight: this._minHeight(),
handles: k,
start: function(f, k) {
d(this).addClass("ui-dialog-resizing");
c._blockFrames();
c._trigger("resizeStart", f, a(k))
},
resize: function(d, f) {
c._trigger("resize", d, a(f))
},
stop: function(k, n) {
var e = c.uiDialog.offset(),
t = e.left - c.document.scrollLeft(),
e = e.top - c.document.scrollTop();
f.height = c.uiDialog.height();
f.width = c.uiDialog.width();
f.position = {
my: "left top",
at: "left" + (0 <= t ? "+" : "") + t + " top" + (0 <= e ? "+" : "") + e,
of: c.window
};
d(this).removeClass("ui-dialog-resizing");
c._unblockFrames();
c._trigger("resizeStop", k, a(n))
}
}).css("position", n)
},
_trackFocus: function() {
this._on(this.widget(), {
focusin: function(a) {
this._makeFocusTarget();
this._focusedElement = d(a.target)
}
})
},
_makeFocusTarget: function() {
this._untrackInstance();
this._trackingInstances().unshift(this)
},
_untrackInstance: function() {
var a = this._trackingInstances(),
c = d.inArray(this, a); - 1 !== c && a.splice(c, 1)
},
_trackingInstances: function() {
var a = this.document.data("ui-dialog-instances");
return a || (a = [], this.document.data("ui-dialog-instances", a)), a
},
_minHeight: function() {
var a = this.options;
return "auto" === a.height ? a.minHeight : Math.min(a.minHeight, a.height)
},
_position: function() {
var a = this.uiDialog.is(":visible");
a || this.uiDialog.show();
this.uiDialog.position(this.options.position);
a || this.uiDialog.hide()
},
_setOptions: function(a) {
var c = this,
f = !1,
k = {};
d.each(a, function(a, d) {
c._setOption(a, d);
a in c.sizeRelatedOptions && (f = !0);
a in c.resizableRelatedOptions && (k[a] = d)
});
f && (this._size(), this._position());
this.uiDialog.is(":data(ui-resizable)") && this.uiDialog.resizable("option", k)
},
_setOption: function(a, d) {
var c, f, k = this.uiDialog;
"dialogClass" === a && k.removeClass(this.options.dialogClass).addClass(d);
"disabled" !== a && (this._super(a, d), "appendTo" === a && this.uiDialog.appendTo(this._appendTo()), "buttons" === a && this._createButtons(), "closeText" === a && this.uiDialogTitlebarClose.button({
label: "" + d
}), "draggable" === a && (c = k.is(":data(ui-draggable)"), c && !d && k.draggable("destroy"), !c && d && this._makeDraggable()), "position" === a && this._position(), "resizable" === a && (f = k.is(":data(ui-resizable)"), f && !d && k.resizable("destroy"), f && "string" == typeof d && k.resizable("option", "handles", d), f || !1 === d || this._makeResizable()), "title" === a && this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))
},
_size: function() {
var a, d, c, f = this.options;
this.element.show().css({
width: "auto",
minHeight: 0,
maxHeight: "none",
height: 0
});
f.minWidth > f.width && (f.width = f.minWidth);
a = this.uiDialog.css({
height: "auto",
width: f.width
}).outerHeight();
d = Math.max(0, f.minHeight - a);
c = "number" == typeof f.maxHeight ? Math.max(0, f.maxHeight - a) : "none";
"auto" === f.height ? this.element.css({
minHeight: d,
maxHeight: c,
height: "auto"
}) : this.element.height(Math.max(0, f.height - a));
this.uiDialog.is(":data(ui-resizable)") && this.uiDialog.resizable("option", "minHeight", this._minHeight())
},
_blockFrames: function() {
this.iframeBlocks = this.document.find("iframe").map(function() {
var a = d(this);
return d("<div>").css({
position: "absolute",
width: a.outerWidth(),
height: a.outerHeight()
}).appendTo(a.parent()).offset(a.offset())[0]
})
},
_unblockFrames: function() {
this.iframeBlocks && (this.iframeBlocks.remove(), delete this.iframeBlocks)
},
_allowInteraction: function(a) {
return d(a.target).closest(".ui-dialog").length ? !0 : !!d(a.target).closest(".ui-datepicker").length
},
_createOverlay: function() {
if (this.options.modal) {
var a = !0;
this._delay(function() {
a = !1
});
this.document.data("ui-dialog-overlays") || this._on(this.document, {
focusin: function(d) {
a || this._allowInteraction(d) || (d.preventDefault(), this._trackingInstances()[0]._focusTabbable())
}
});
this.overlay = d("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo());
this._on(this.overlay, {
mousedown: "_keepFocus"
});
this.document.data("ui-dialog-overlays", (this.document.data("ui-dialog-overlays") || 0) + 1)
}
},
_destroyOverlay: function() {
if (this.options.modal && this.overlay) {
var a = this.document.data("ui-dialog-overlays") - 1;
a ? this.document.data("ui-dialog-overlays", a) : this.document.unbind("focusin").removeData("ui-dialog-overlays");
this.overlay.remove();
this.overlay = null
}
}
});
d.widget("ui.droppable", {
version: "1.11.2",
widgetEventPrefix: "drop",
options: {
accept: "*",
activeClass: !1,
addClasses: !0,
greedy: !1,
hoverClass: !1,
scope: "default",
tolerance: "intersect",
activate: null,
deactivate: null,
drop: null,
out: null,
over: null
},
_create: function() {
var a, c = this.options,
f = c.accept;
this.isover = !1;
this.isout = !0;
this.accept = d.isFunction(f) ? f : function(a) {
return a.is(f)
};
this.proportions = function() {
return arguments.length ? (a = arguments[0], void 0) : a ? a : a = {
width: this.element[0].offsetWidth,
height: this.element[0].offsetHeight
}
};
this._addToManager(c.scope);
c.addClasses && this.element.addClass("ui-droppable")
},
_addToManager: function(a) {
d.ui.ddmanager.droppables[a] = d.ui.ddmanager.droppables[a] || [];
d.ui.ddmanager.droppables[a].push(this)
},
_splice: function(a) {
for (var d = 0; a.length > d; d++) a[d] === this && a.splice(d, 1)
},
_destroy: function() {
this._splice(d.ui.ddmanager.droppables[this.options.scope]);
this.element.removeClass("ui-droppable ui-droppable-disabled")
},
_setOption: function(a, c) {
"accept" === a ? this.accept = d.isFunction(c) ? c : function(a) {
return a.is(c)
} : "scope" === a && (this._splice(d.ui.ddmanager.droppables[this.options.scope]), this._addToManager(c));
this._super(a, c)
},
_activate: function(a) {
var c = d.ui.ddmanager.current;
this.options.activeClass && this.element.addClass(this.options.activeClass);
c && this._trigger("activate", a, this.ui(c))
},
_deactivate: function(a) {
var c = d.ui.ddmanager.current;
this.options.activeClass && this.element.removeClass(this.options.activeClass);
c && this._trigger("deactivate", a, this.ui(c))
},
_over: function(a) {
var c = d.ui.ddmanager.current;
c && (c.currentItem || c.element)[0] !== this.element[0] && this.accept.call(this.element[0], c.currentItem || c.element) && (this.options.hoverClass && this.element.addClass(this.options.hoverClass), this._trigger("over", a, this.ui(c)))
},
_out: function(a) {
var c = d.ui.ddmanager.current;
c && (c.currentItem || c.element)[0] !== this.element[0] && this.accept.call(this.element[0], c.currentItem || c.element) && (this.options.hoverClass && this.element.removeClass(this.options.hoverClass), this._trigger("out", a, this.ui(c)))
},
_drop: function(a, c) {
var f = c || d.ui.ddmanager.current,
k = !1;
return f && (f.currentItem || f.element)[0] !== this.element[0] ? (this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function() {
var c = d(this).droppable("instance");
return c.options.greedy && !c.options.disabled && c.options.scope === f.options.scope && c.accept.call(c.element[0], f.currentItem || f.element) && d.ui.intersect(f, d.extend(c, {
offset: c.element.offset()
}), c.options.tolerance, a) ? (k = !0, !1) : void 0
}), k ? !1 : this.accept.call(this.element[0], f.currentItem || f.element) ? (this.options.activeClass && this.element.removeClass(this.options.activeClass), this.options.hoverClass && this.element.removeClass(this.options.hoverClass), this._trigger("drop", a, this.ui(f)), this.element) : !1) : !1
},
ui: function(a) {
return {
draggable: a.currentItem || a.element,
helper: a.helper,
position: a.position,
offset: a.positionAbs
}
}
});
d.ui.intersect = function() {
return function(a, d, c, f) {
if (!d.offset) return !1;
var k = (a.positionAbs || a.position.absolute).left + a.margins.left,
n = (a.positionAbs || a.position.absolute).top + a.margins.top,
e = k + a.helperProportions.width,
t = n + a.helperProportions.height,
h = d.offset.left,
m = d.offset.top,
w = h + d.proportions().width,
u = m + d.proportions().height;
switch (c) {
case "fit":
return k >= h && w >= e && n >= m && u >= t;
case "intersect":
return k + a.helperProportions.width / 2 > h && w > e - a.helperProportions.width / 2 && n + a.helperProportions.height / 2 > m && u > t - a.helperProportions.height / 2;
case "pointer":
a = f.pageY;
c = d.proportions().height;
if (m = a >= m && m + c > a) f = f.pageX, d = d.proportions().width, m = f >= h && h + d > f;
return m;
case "touch":
return (n >= m && u >= n || t >= m && u >= t || m > n && t > u) && (k >= h && w >= k || e >= h && w >= e || h > k && e > w);
default:
return !1
}
}
}();
d.ui.ddmanager = {
current: null,
droppables: {
default: []
},
prepareOffsets: function(a, c) {
var f, k, n = d.ui.ddmanager.droppables[a.options.scope] || [],
e = c ? c.type : null,
t = (a.currentItem || a.element).find(":data(ui-droppable)").addBack();
f = 0;
a: for (; n.length > f; f++)
if (!(n[f].options.disabled || a && !n[f].accept.call(n[f].element[0], a.currentItem || a.element))) {
for (k = 0; t.length > k; k++)
if (t[k] === n[f].element[0]) {
n[f].proportions().height = 0;
continue a
}
n[f].visible = "none" !== n[f].element.css("display");
n[f].visible && ("mousedown" === e && n[f]._activate.call(n[f], c), n[f].offset = n[f].element.offset(), n[f].proportions({
width: n[f].element[0].offsetWidth,
height: n[f].element[0].offsetHeight
}))
}
},
drop: function(a, c) {
var f = !1;
return d.each((d.ui.ddmanager.droppables[a.options.scope] || []).slice(), function() {
this.options && (!this.options.disabled && this.visible && d.ui.intersect(a, this, this.options.tolerance, c) && (f = this._drop.call(this, c) || f), !this.options.disabled && this.visible && this.accept.call(this.element[0], a.currentItem || a.element) && (this.isout = !0, this.isover = !1, this._deactivate.call(this, c)))
}), f
},
dragStart: function(a, c) {
a.element.parentsUntil("body").bind("scroll.droppable", function() {
a.options.refreshPositions || d.ui.ddmanager.prepareOffsets(a, c)
})
},
drag: function(a, c) {
a.options.refreshPositions && d.ui.ddmanager.prepareOffsets(a, c);
d.each(d.ui.ddmanager.droppables[a.options.scope] || [], function() {
if (!this.options.disabled && !this.greedyChild && this.visible) {
var f, k, n, e = d.ui.intersect(a, this, this.options.tolerance, c);
(e = !e && this.isover ? "isout" : e && !this.isover ? "isover" : null) && (this.options.greedy && (k = this.options.scope, n = this.element.parents(":data(ui-droppable)").filter(function() {
return d(this).droppable("instance").options.scope === k
}), n.length && (f = d(n[0]).droppable("instance"), f.greedyChild = "isover" === e)), f && "isover" === e && (f.isover = !1, f.isout = !0, f._out.call(f, c)), this[e] = !0, this["isout" === e ? "isover" : "isout"] = !1, this["isover" === e ? "_over" : "_out"].call(this, c), f && "isout" === e && (f.isout = !1, f.isover = !0, f._over.call(f, c)))
}
})
},
dragStop: function(a, c) {
a.element.parentsUntil("body").unbind("scroll.droppable");
a.options.refreshPositions || d.ui.ddmanager.prepareOffsets(a, c)
}
};
d.ui.droppable;
d.effects = {
effect: {}
};
(function(a, d) {
function c(a, d, c) {
var f = w[d.type] || {};
return null == a ? c || !d.def ? null : d.def : (a = f.floor ? ~~a : parseFloat(a), isNaN(a) ? d.def : f.mod ? (a + f.mod) % f.mod : 0 > a ? 0 : a > f.max ? f.max : a)
}
function f(c) {
var f = h(),
k = f._rgba = [];
return c = c.toLowerCase(), q(t, function(a, n) {
var e, t = n.re.exec(c),
t = t && n.parse(t),
h = n.space || "rgba";
return t ? (e = f[h](t), f[m[h].cache] = e[m[h].cache], k = f._rgba = e._rgba, !1) : d
}), k.length ? ("0,0,0,0" === k.join() && a.extend(k, n.transparent), f) : n[c]
}
function k(a, d, c) {
return c = (c + 1) % 1, 1 > 6 * c ? a + 6 * (d - a) * c : 1 > 2 * c ? d : 2 > 3 * c ? a + 6 * (d - a) * (2 / 3 - c) : a
}
var n, e = /^([\-+])=\s*(\d+\.?\d*)/,
t = [{
re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
parse: function(a) {
return [a[1], a[2], a[3], a[4]]
}
}, {
re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
parse: function(a) {
return [2.55 * a[1], 2.55 * a[2], 2.55 * a[3], a[4]]
}
}, {
re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
parse: function(a) {
return [parseInt(a[1], 16), parseInt(a[2], 16), parseInt(a[3], 16)]
}
}, {
re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
parse: function(a) {
return [parseInt(a[1] + a[1], 16), parseInt(a[2] + a[2], 16), parseInt(a[3] + a[3], 16)]
}
}, {
re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
space: "hsla",
parse: function(a) {
return [a[1], a[2] / 100, a[3] / 100, a[4]]
}
}],
h = a.Color = function(d, c, f, k) {
return new a.Color.fn.parse(d, c, f, k)
},
m = {
rgba: {
props: {
red: {
idx: 0,
type: "byte"
},
green: {
idx: 1,
type: "byte"
},
blue: {
idx: 2,
type: "byte"
}
}
},
hsla: {
props: {
hue: {
idx: 0,
type: "degrees"
},
saturation: {
idx: 1,
type: "percent"
},
lightness: {
idx: 2,
type: "percent"
}
}
}
},
w = {
byte: {
floor: !0,
max: 255
},
percent: {
max: 1
},
degrees: {
mod: 360,
floor: !0
}
},
u = h.support = {},
v = a("<p>")[0],
q = a.each;
v.style.cssText = "background-color:rgba(1,1,1,.5)";
u.rgba = -1 < v.style.backgroundColor.indexOf("rgba");
q(m, function(a, d) {
d.cache = "_" + a;
d.props.alpha = {
idx: 3,
type: "percent",
def: 1
}
});
h.fn = a.extend(h.prototype, {
parse: function(k, e, t, w) {
if (k === d) return this._rgba = [null, null, null, null], this;
(k.jquery || k.nodeType) && (k = a(k).css(e), e = d);
var u = this,
v = a.type(k),
p = this._rgba = [];
return e !== d && (k = [k, e, t, w], v = "array"), "string" === v ? this.parse(f(k) || n._default) : "array" === v ? (q(m.rgba.props, function(a, d) {
p[d.idx] = c(k[d.idx], d)
}), this) : "object" === v ? (k instanceof h ? q(m, function(a, d) {
k[d.cache] && (u[d.cache] = k[d.cache].slice())
}) : q(m, function(d, f) {
var n = f.cache;
q(f.props, function(a, d) {
if (!u[n] && f.to) {
if ("alpha" === a || null == k[a]) return;
u[n] = f.to(u._rgba)
}
u[n][d.idx] = c(k[a], d, !0)
});
u[n] && 0 > a.inArray(null, u[n].slice(0, 3)) && (u[n][3] = 1, f.from && (u._rgba = f.from(u[n])))
}), this) : d
},
is: function(a) {
var c = h(a),
f = !0,
k = this;
return q(m, function(a, n) {
var e, t = c[n.cache];
return t && (e = k[n.cache] || n.to && n.to(k._rgba) || [], q(n.props, function(a, c) {
return null != t[c.idx] ? f = t[c.idx] === e[c.idx] : d
})), f
}), f
},
_space: function() {
var a = [],
d = this;
return q(m, function(c, f) {
d[f.cache] && a.push(c)
}), a.pop()
},
transition: function(a, d) {
var f = h(a),
k = f._space(),
n = m[k],
e = 0 === this.alpha() ? h("transparent") : this,
t = e[n.cache] || n.to(e._rgba),
u = t.slice();
return f = f[n.cache], q(n.props, function(a, k) {
var n = k.idx,
e = t[n],
h = f[n],
m = w[k.type] || {};
null !== h && (null === e ? u[n] = h : (m.mod && (h - e > m.mod / 2 ? e += m.mod : e - h > m.mod / 2 && (e -= m.mod)), u[n] = c((h - e) * d + e, k)))
}), this[k](u)
},
blend: function(d) {
if (1 === this._rgba[3]) return this;
var c = this._rgba.slice(),
f = c.pop(),
k = h(d)._rgba;
return h(a.map(c, function(a, d) {
return (1 - f) * k[d] + f * a
}))
},
toRgbaString: function() {
var d = "rgba(",
c = a.map(this._rgba, function(a, d) {
return null == a ? 2 < d ? 1 : 0 : a
});
return 1 === c[3] && (c.pop(), d = "rgb("), d + c.join() + ")"
},
toHslaString: function() {
var d = "hsla(",
c = a.map(this.hsla(), function(a, d) {
return null == a && (a = 2 < d ? 1 : 0), d && 3 > d && (a = Math.round(100 * a) + "%"), a
});
return 1 === c[3] && (c.pop(), d = "hsl("), d + c.join() + ")"
},
toHexString: function(d) {
var c = this._rgba.slice(),
f = c.pop();
return d && c.push(~~(255 * f)), "#" + a.map(c, function(a) {
return a = (a || 0).toString(16), 1 === a.length ? "0" + a : a
}).join("")
},
toString: function() {
return 0 === this._rgba[3] ? "transparent" : this.toRgbaString()
}
});
h.fn.parse.prototype = h.fn;
m.hsla.to = function(a) {
if (null == a[0] || null == a[1] || null == a[2]) return [null, null, null, a[3]];
var d, c, f = a[0] / 255,
k = a[1] / 255,
n = a[2] / 255;
a = a[3];
var e = Math.max(f, k, n),
t = Math.min(f, k, n),
h = e - t,
m = e + t,
w = .5 * m;
return d = t === e ? 0 : f === e ? 60 * (k - n) / h + 360 : k === e ? 60 * (n - f) / h + 120 : 60 * (f - k) / h + 240, c = 0 === h ? 0 : .5 >= w ? h / m : h / (2 - m), [Math.round(d) % 360, c, w, null == a ? 1 : a]
};
m.hsla.from = function(a) {
if (null == a[0] || null == a[1] || null == a[2]) return [null, null, null, a[3]];
var d = a[0] / 360,
c = a[1],
f = a[2];
a = a[3];
c = .5 >= f ? f * (1 + c) : f + c - f * c;
f = 2 * f - c;
return [Math.round(255 * k(f, c, d + 1 / 3)), Math.round(255 * k(f, c, d)), Math.round(255 * k(f, c, d - 1 / 3)), a]
};
q(m, function(f, k) {
var n = k.props,
t = k.cache,
m = k.to,
w = k.from;
h.fn[f] = function(f) {
if (m && !this[t] && (this[t] = m(this._rgba)), f === d) return this[t].slice();
var k, e = a.type(f),
u = "array" === e || "object" === e ? f : arguments,
v = this[t].slice();
return q(n, function(a, d) {
var f = u["object" === e ? a : d.idx];
null == f && (f = v[d.idx]);
v[d.idx] = c(f, d)
}), w ? (k = h(w(v)), k[t] = v, k) : h(v)
};
q(n, function(d, c) {
h.fn[d] || (h.fn[d] = function(k) {
var n, t = a.type(k),
h = "alpha" === d ? this._hsla ? "hsla" : "rgba" : f,
m = this[h](),
w = m[c.idx];
return "undefined" === t ? w : ("function" === t && (k = k.call(this, w), t = a.type(k)), null == k && c.empty ? this : ("string" === t && (n = e.exec(k), n && (k = w + parseFloat(n[2]) * ("+" === n[1] ? 1 : -1))), m[c.idx] = k, this[h](m)))
})
})
});
h.hook = function(d) {
d = d.split(" ");
q(d, function(d, c) {
a.cssHooks[c] = {
set: function(d, k) {
var n, e = "";
if ("transparent" !== k && ("string" !== a.type(k) || (n = f(k)))) {
if (k = h(n || k), !u.rgba && 1 !== k._rgba[3]) {
for (n = "backgroundColor" === c ? d.parentNode : d;
("" === e || "transparent" === e) && n && n.style;) try {
e = a.css(n, "backgroundColor"), n = n.parentNode
} catch (aa) {}
k = k.blend(e && "transparent" !== e ? e : "_default")
}
k = k.toRgbaString()
}
try {
d.style[c] = k
} catch (aa) {}
}
};
a.fx.step[c] = function(d) {
d.colorInit || (d.start = h(d.elem, c), d.end = h(d.end), d.colorInit = !0);
a.cssHooks[c].set(d.elem, d.start.transition(d.end, d.pos))
}
})
};
h.hook("backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor");
a.cssHooks.borderColor = {
expand: function(a) {
var d = {};
return q(["Top", "Right", "Bottom", "Left"], function(c, f) {
d["border" + f + "Color"] = a
}), d
}
};
n = a.Color.names = {
aqua: "#00ffff",
black: "#000000",
blue: "#0000ff",
fuchsia: "#ff00ff",
gray: "#808080",
green: "#008000",
lime: "#00ff00",
maroon: "#800000",
navy: "#000080",
olive: "#808000",
purple: "#800080",
red: "#ff0000",
silver: "#c0c0c0",
teal: "#008080",
white: "#ffffff",
yellow: "#ffff00",
transparent: [null, null, null, 0],
_default: "#ffffff"
}
})(d);
(function() {
function a(a) {
var c, f = a.ownerDocument.defaultView ? a.ownerDocument.defaultView.getComputedStyle(a, null) : a.currentStyle,
k = {};
if (f && f.length && f[0] && f[f[0]])
for (a = f.length; a--;) c = f[a], "string" == typeof f[c] && (k[d.camelCase(c)] = f[c]);
else
for (c in f) "string" == typeof f[c] && (k[c] = f[c]);
return k
}
var c = ["add", "remove", "toggle"],
f = {
border: 1,
borderBottom: 1,
borderColor: 1,
borderLeft: 1,
borderRight: 1,
borderTop: 1,
borderWidth: 1,
margin: 1,
padding: 1
};
d.each(["borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle"], function(a, c) {
d.fx.step[c] = function(a) {
("none" !== a.end && !a.setAttr || 1 === a.pos && !a.setAttr) && (d.style(a.elem, c, a.end), a.setAttr = !0)
}
});
d.fn.addBack || (d.fn.addBack = function(a) {
return this.add(null == a ? this.prevObject : this.prevObject.filter(a))
});
d.effects.animateClass = function(k, n, e, t) {
var h = d.speed(n, e, t);
return this.queue(function() {
var n, e = d(this),
t = e.attr("class") || "",
m = h.children ? e.find("*").addBack() : e,
m = m.map(function() {
return {
el: d(this),
start: a(this)
}
});
n = function() {
d.each(c, function(a, d) {
k[d] && e[d + "Class"](k[d])
})
};
n();
m = m.map(function() {
this.end = a(this.el[0]);
var c = this.start,
k = this.end,
n, e, t = {};
for (n in k) e = k[n], c[n] !== e && (f[n] || (d.fx.step[n] || !isNaN(parseFloat(e))) && (t[n] = e));
return this.diff = t, this
});
e.attr("class", t);
m = m.map(function() {
var a = this,
c = d.Deferred(),
f = d.extend({}, h, {
queue: !1,
complete: function() {
c.resolve(a)
}
});
return this.el.animate(this.diff, f), c.promise()
});
d.when.apply(d, m.get()).done(function() {
n();
d.each(arguments, function() {
var a = this.el;
d.each(this.diff, function(d) {
a.css(d, "")
})
});
h.complete.call(e[0])
})
})
};
d.fn.extend({
addClass: function(a) {
return function(c, f, k, n) {
return f ? d.effects.animateClass.call(this, {
add: c
}, f, k, n) : a.apply(this, arguments)
}
}(d.fn.addClass),
removeClass: function(a) {
return function(c, f, k, n) {
return 1 < arguments.length ? d.effects.animateClass.call(this, {
remove: c
}, f, k, n) : a.apply(this, arguments)
}
}(d.fn.removeClass),
toggleClass: function(a) {
return function(c, f, k, n, e) {
return "boolean" == typeof f || void 0 === f ? k ? d.effects.animateClass.call(this, f ? {
add: c
} : {
remove: c
}, k, n, e) : a.apply(this, arguments) : d.effects.animateClass.call(this, {
toggle: c
}, f, k, n)
}
}(d.fn.toggleClass),
switchClass: function(a, c, f, k, n) {
return d.effects.animateClass.call(this, {
add: c,
remove: a
}, f, k, n)
}
})
})();
(function() {
function a(a, c, f, k) {
return d.isPlainObject(a) && (c = a, a = a.effect), a = {
effect: a
}, null == c && (c = {}), d.isFunction(c) && (k = c, f = null, c = {}), ("number" == typeof c || d.fx.speeds[c]) && (k = f, f = c, c = {}), d.isFunction(f) && (k = f, f = null), c && d.extend(a, c), f = f || c.duration, a.duration = d.fx.off ? 0 : "number" == typeof f ? f : f in d.fx.speeds ? d.fx.speeds[f] : d.fx.speeds._default, a.complete = k || c.complete, a
}
function c(a) {
return !a || "number" == typeof a || d.fx.speeds[a] ? !0 : "string" != typeof a || d.effects.effect[a] ? d.isFunction(a) ? !0 : "object" != typeof a || a.effect ? !1 : !0 : !0
}
d.extend(d.effects, {
version: "1.11.2",
save: function(a, d) {
for (var c = 0; d.length > c; c++) null !== d[c] && a.data("ui-effects-" + d[c], a[0].style[d[c]])
},
restore: function(a, d) {
var c, f;
for (f = 0; d.length > f; f++) null !== d[f] && (c = a.data("ui-effects-" + d[f]), void 0 === c && (c = ""), a.css(d[f], c))
},
setMode: function(a, d) {
return "toggle" === d && (d = a.is(":hidden") ? "show" : "hide"), d
},
getBaseline: function(a, d) {
var c, f;
switch (a[0]) {
case "top":
c = 0;
break;
case "middle":
c = .5;
break;
case "bottom":
c = 1;
break;
default:
c = a[0] / d.height
}
switch (a[1]) {
case "left":
f = 0;
break;
case "center":
f = .5;
break;
case "right":
f = 1;
break;
default:
f = a[1] / d.width
}
return {
x: f,
y: c
}
},
createWrapper: function(a) {
if (a.parent().is(".ui-effects-wrapper")) return a.parent();
var c = {
width: a.outerWidth(!0),
height: a.outerHeight(!0),
float: a.css("float")
},
f = d("<div></div>").addClass("ui-effects-wrapper").css({
fontSize: "100%",
background: "transparent",
border: "none",
margin: 0,
padding: 0
}),
k = {
width: a.width(),
height: a.height()
},
n = document.activeElement;
try {
n.id
} catch (I) {
n = document.body
}
return a.wrap(f), (a[0] === n || d.contains(a[0], n)) && d(n).focus(), f = a.parent(), "static" === a.css("position") ? (f.css({
position: "relative"
}), a.css({
position: "relative"
})) : (d.extend(c, {
position: a.css("position"),
zIndex: a.css("z-index")
}), d.each(["top", "left", "bottom", "right"], function(d, f) {
c[f] = a.css(f);
isNaN(parseInt(c[f], 10)) && (c[f] = "auto")
}), a.css({
position: "relative",
top: 0,
left: 0,
right: "auto",
bottom: "auto"
})), a.css(k), f.css(c).show()
},
removeWrapper: function(a) {
var c = document.activeElement;
return a.parent().is(".ui-effects-wrapper") && (a.parent().replaceWith(a), (a[0] === c || d.contains(a[0], c)) && d(c).focus()), a
},
setTransition: function(a, c, f, k) {
return k = k || {}, d.each(c, function(d, c) {
var n = a.cssUnit(c);
0 < n[0] && (k[c] = n[0] * f + n[1])
}), k
}
});
d.fn.extend({
effect: function() {
function c(a) {
function c() {
d.isFunction(n) && n.call(k[0]);
d.isFunction(a) && a()
}
var k = d(this),
n = f.complete,
t = f.mode;
(k.is(":hidden") ? "hide" === t : "show" === t) ? (k[t](), c()) : e.call(k[0], f, c)
}
var f = a.apply(this, arguments),
k = f.mode,
n = f.queue,
e = d.effects.effect[f.effect];
return d.fx.off || !e ? k ? this[k](f.duration, f.complete) : this.each(function() {
f.complete && f.complete.call(this)
}) : !1 === n ? this.each(c) : this.queue(n || "fx", c)
},
show: function(d) {
return function(f) {
if (c(f)) return d.apply(this, arguments);
var k = a.apply(this, arguments);
return k.mode = "show", this.effect.call(this, k)
}
}(d.fn.show),
hide: function(d) {
return function(f) {
if (c(f)) return d.apply(this, arguments);
var k = a.apply(this, arguments);
return k.mode = "hide", this.effect.call(this, k)
}
}(d.fn.hide),
toggle: function(d) {
return function(f) {
if (c(f) || "boolean" == typeof f) return d.apply(this, arguments);
var k = a.apply(this, arguments);
return k.mode = "toggle", this.effect.call(this, k)
}
}(d.fn.toggle),
cssUnit: function(a) {
var c = this.css(a),
f = [];
return d.each(["em", "px", "%", "pt"], function(a, d) {
0 < c.indexOf(d) && (f = [parseFloat(c), d])
}), f
}
})
})();
(function() {
var a = {};
d.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function(d, c) {
a[c] = function(a) {
return Math.pow(a, d + 2)
}
});
d.extend(a, {
Sine: function(a) {
return 1 - Math.cos(a * Math.PI / 2)
},
Circ: function(a) {
return 1 - Math.sqrt(1 - a * a)
},
Elastic: function(a) {
return 0 === a || 1 === a ? a : -Math.pow(2, 8 * (a - 1)) * Math.sin((80 * (a - 1) - 7.5) * Math.PI / 15)
},
Back: function(a) {
return a * a * (3 * a - 2)
},
Bounce: function(a) {
for (var d, c = 4;
((d = Math.pow(2, --c)) - 1) / 11 > a;);
return 1 / Math.pow(4, 3 - c) - 7.5625 * Math.pow((3 * d - 2) / 22 - a, 2)
}
});
d.each(a, function(a, c) {
d.easing["easeIn" + a] = c;
d.easing["easeOut" + a] = function(a) {
return 1 - c(1 - a)
};
d.easing["easeInOut" + a] = function(a) {
return .5 > a ? c(2 * a) / 2 : 1 - c(-2 * a + 2) / 2
}
})
})();
d.effects;
d.effects.effect.blind = function(a, c) {
var f, k, n, e = d(this),
t = "position top bottom left right height width".split(" "),
h = d.effects.setMode(e, a.mode || "hide");
f = a.direction || "up";
var m = /up|down|vertical/.test(f),
w = m ? "height" : "width",
u = m ? "top" : "left",
v = /up|left|vertical|horizontal/.test(f),
q = {},
p = "show" === h;
e.parent().is(".ui-effects-wrapper") ? d.effects.save(e.parent(), t) : d.effects.save(e, t);
e.show();
f = d.effects.createWrapper(e).css({
overflow: "hidden"
});
k = f[w]();
n = parseFloat(f.css(u)) || 0;
q[w] = p ? k : 0;
v || (e.css(m ? "bottom" : "right", 0).css(m ? "top" : "left", "auto").css({
position: "absolute"
}), q[u] = p ? n : k + n);
p && (f.css(w, 0), v || f.css(u, n + k));
f.animate(q, {
duration: a.duration,
easing: a.easing,
queue: !1,
complete: function() {
"hide" === h && e.hide();
d.effects.restore(e, t);
d.effects.removeWrapper(e);
c()
}
})
};
d.effects.effect.bounce = function(a, c) {
var f, k, n, e = d(this),
t = "position top bottom left right height width".split(" "),
h = d.effects.setMode(e, a.mode || "effect"),
m = "hide" === h;
f = "show" === h;
var w = a.direction || "up",
h = a.distance,
u = a.times || 5,
v = 2 * u + (f || m ? 1 : 0),
q = a.duration / v,
p = a.easing,
C = "up" === w || "down" === w ? "top" : "left",
w = "up" === w || "left" === w,
A = e.queue(),
B = A.length;
(f || m) && t.push("opacity");
d.effects.save(e, t);
e.show();
d.effects.createWrapper(e);
h || (h = e["top" === C ? "outerHeight" : "outerWidth"]() / 3);
f && (n = {
opacity: 1
}, n[C] = 0, e.css("opacity", 0).css(C, w ? 2 * -h : 2 * h).animate(n, q, p));
m && (h /= Math.pow(2, u - 1));
n = {};
for (f = n[C] = 0; u > f; f++) k = {}, k[C] = (w ? "-=" : "+=") + h, e.animate(k, q, p).animate(n, q, p), h = m ? 2 * h : h / 2;
m && (k = {
opacity: 0
}, k[C] = (w ? "-=" : "+=") + h, e.animate(k, q, p));
e.queue(function() {
m && e.hide();
d.effects.restore(e, t);
d.effects.removeWrapper(e);
c()
});
1 < B && A.splice.apply(A, [1, 0].concat(A.splice(B, v + 1)));
e.dequeue()
};
d.effects.effect.clip = function(a, c) {
var f, k, n = d(this),
e = "position top bottom left right height width".split(" "),
t = "show" === d.effects.setMode(n, a.mode || "hide"),
h = "vertical" === (a.direction || "vertical"),
m = h ? "height" : "width",
h = h ? "top" : "left",
w = {};
d.effects.save(n, e);
n.show();
f = d.effects.createWrapper(n).css({
overflow: "hidden"
});
f = "IMG" === n[0].tagName ? f : n;
k = f[m]();
t && (f.css(m, 0), f.css(h, k / 2));
w[m] = t ? k : 0;
w[h] = t ? 0 : k / 2;
f.animate(w, {
queue: !1,
duration: a.duration,
easing: a.easing,
complete: function() {
t || n.hide();
d.effects.restore(n, e);
d.effects.removeWrapper(n);
c()
}
})
};
d.effects.effect.drop = function(a, c) {
var f, k = d(this),
n = "position top bottom left right opacity height width".split(" "),
e = d.effects.setMode(k, a.mode || "hide"),
t = "show" === e;
f = a.direction || "left";
var h = "up" === f || "down" === f ? "top" : "left",
m = "up" === f || "left" === f ? "pos" : "neg",
w = {
opacity: t ? 1 : 0
};
d.effects.save(k, n);
k.show();
d.effects.createWrapper(k);
f = a.distance || k["top" === h ? "outerHeight" : "outerWidth"](!0) / 2;
t && k.css("opacity", 0).css(h, "pos" === m ? -f : f);
w[h] = (t ? "pos" === m ? "+=" : "-=" : "pos" === m ? "-=" : "+=") + f;
k.animate(w, {
queue: !1,
duration: a.duration,
easing: a.easing,
complete: function() {
"hide" === e && k.hide();
d.effects.restore(k, n);
d.effects.removeWrapper(k);
c()
}
})
};
d.effects.effect.explode = function(a, c) {
function f() {
B.push(this);
B.length === w * u && (v.css({
visibility: "visible"
}), d(B).remove(), q || v.hide(), c())
}
var k, n, e, t, h, m, w = a.pieces ? Math.round(Math.sqrt(a.pieces)) : 3,
u = w,
v = d(this),
q = "show" === d.effects.setMode(v, a.mode || "hide"),
p = v.show().css("visibility", "hidden").offset(),
C = Math.ceil(v.outerWidth() / u),
A = Math.ceil(v.outerHeight() / w),
B = [];
for (k = 0; w > k; k++)
for (t = p.top + k * A, m = k - (w - 1) / 2, n = 0; u > n; n++) e = p.left + n * C, h = n - (u - 1) / 2, v.clone().appendTo("body").wrap("<div></div>").css({
position: "absolute",
visibility: "visible",
left: -n * C,
top: -k * A
}).parent().addClass("ui-effects-explode").css({
position: "absolute",
overflow: "hidden",
width: C,
height: A,
left: e + (q ? h * C : 0),
top: t + (q ? m * A : 0),
opacity: q ? 0 : 1
}).animate({
left: e + (q ? 0 : h * C),
top: t + (q ? 0 : m * A),
opacity: q ? 1 : 0
}, a.duration || 500, a.easing, f)
};
d.effects.effect.fade = function(a, c) {
var f = d(this),
k = d.effects.setMode(f, a.mode || "toggle");
f.animate({
opacity: k
}, {
queue: !1,
duration: a.duration,
easing: a.easing,
complete: c
})
};
d.effects.effect.fold = function(a, c) {
var f, k, n = d(this),
e = "position top bottom left right height width".split(" ");
f = d.effects.setMode(n, a.mode || "hide");
var t = "show" === f,
h = "hide" === f,
m = a.size || 15,
w = /([0-9]+)%/.exec(m),
u = !!a.horizFirst,
v = (k = t !== u) ? ["width", "height"] : ["height", "width"],
q = a.duration / 2,
p = {},
C = {};
d.effects.save(n, e);
n.show();
f = d.effects.createWrapper(n).css({
overflow: "hidden"
});
k = k ? [f.width(), f.height()] : [f.height(), f.width()];
w && (m = parseInt(w[1], 10) / 100 * k[h ? 0 : 1]);
t && f.css(u ? {
height: 0,
width: m
} : {
height: m,
width: 0
});
p[v[0]] = t ? k[0] : m;
C[v[1]] = t ? k[1] : 0;
f.animate(p, q, a.easing).animate(C, q, a.easing, function() {
h && n.hide();
d.effects.restore(n, e);
d.effects.removeWrapper(n);
c()
})
};
d.effects.effect.highlight = function(a, c) {
var f = d(this),
k = ["backgroundImage", "backgroundColor", "opacity"],
n = d.effects.setMode(f, a.mode || "show"),
e = {
backgroundColor: f.css("backgroundColor")
};
"hide" === n && (e.opacity = 0);
d.effects.save(f, k);
f.show().css({
backgroundImage: "none",
backgroundColor: a.color || "#ffff99"
}).animate(e, {
queue: !1,
duration: a.duration,
easing: a.easing,
complete: function() {
"hide" === n && f.hide();
d.effects.restore(f, k);
c()
}
})
};
d.effects.effect.size = function(a, c) {
var f, k, n, e, t, h, m = d(this),
w = "position top bottom left right width height overflow opacity".split(" ");
t = "position top bottom left right overflow opacity".split(" ");
var u = ["width", "height", "overflow"],
v = ["fontSize"],
q = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"],
p = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"],
C = d.effects.setMode(m, a.mode || "effect"),
A = a.restore || "effect" !== C,
B = a.scale || "both",
ha = a.origin || ["middle", "center"],
Y = m.css("position"),
Z = A ? w : t,
R = {
height: 0,
width: 0,
outerHeight: 0,
outerWidth: 0
};
"show" === C && m.show();
t = {
height: m.height(),
width: m.width(),
outerHeight: m.outerHeight(),
outerWidth: m.outerWidth()
};
"toggle" === a.mode && "show" === C ? (m.from = a.to || R, m.to = a.from || t) : (m.from = a.from || ("show" === C ? R : t), m.to = a.to || ("hide" === C ? R : t));
n = m.from.height / t.height;
e = m.from.width / t.width;
f = m.to.height / t.height;
k = m.to.width / t.width;
("box" === B || "both" === B) && (n !== f && (Z = Z.concat(q), m.from = d.effects.setTransition(m, q, n, m.from), m.to = d.effects.setTransition(m, q, f, m.to)), e !== k && (Z = Z.concat(p), m.from = d.effects.setTransition(m, p, e, m.from), m.to = d.effects.setTransition(m, p, k, m.to)));
("content" === B || "both" === B) && n !== f && (Z = Z.concat(v).concat(u), m.from = d.effects.setTransition(m, v, n, m.from), m.to = d.effects.setTransition(m, v, f, m.to));
d.effects.save(m, Z);
m.show();
d.effects.createWrapper(m);
m.css("overflow", "hidden").css(m.from);
ha && (h = d.effects.getBaseline(ha, t), m.from.top = (t.outerHeight - m.outerHeight()) * h.y, m.from.left = (t.outerWidth - m.outerWidth()) * h.x, m.to.top = (t.outerHeight - m.to.outerHeight) * h.y, m.to.left = (t.outerWidth - m.to.outerWidth) * h.x);
m.css(m.from);
"content" !== B && "both" !== B || (q = q.concat(["marginTop", "marginBottom"]).concat(v), p = p.concat(["marginLeft", "marginRight"]), u = w.concat(q).concat(p), m.find("*[width]").each(function() {
var c = d(this),
t = c.height(),
h = c.width(),
m = c.outerHeight(),
w = c.outerWidth();
A && d.effects.save(c, u);
c.from = {
height: t * n,
width: h * e,
outerHeight: m * n,
outerWidth: w * e
};
c.to = {
height: t * f,
width: h * k,
outerHeight: t * f,
outerWidth: h * k
};
n !== f && (c.from = d.effects.setTransition(c, q, n, c.from), c.to = d.effects.setTransition(c, q, f, c.to));
e !== k && (c.from = d.effects.setTransition(c, p, e, c.from), c.to = d.effects.setTransition(c, p, k, c.to));
c.css(c.from);
c.animate(c.to, a.duration, a.easing, function() {
A && d.effects.restore(c, u)
})
}));
m.animate(m.to, {
queue: !1,
duration: a.duration,
easing: a.easing,
complete: function() {
0 === m.to.opacity && m.css("opacity", m.from.opacity);
"hide" === C && m.hide();
d.effects.restore(m, Z);
A || ("static" === Y ? m.css({
position: "relative",
top: m.to.top,
left: m.to.left
}) : d.each(["top", "left"], function(a, d) {
m.css(d, function(d, c) {
var f = parseInt(c, 10),
k = a ? m.to.left : m.to.top;
return "auto" === c ? k + "px" : f + k + "px"
})
}));
d.effects.removeWrapper(m);
c()
}
})
};
d.effects.effect.scale = function(a, c) {
var f = d(this),
k = d.extend(!0, {}, a),
n = d.effects.setMode(f, a.mode || "effect"),
e = parseInt(a.percent, 10) || (0 === parseInt(a.percent, 10) ? 0 : "hide" === n ? 0 : 100),
t = a.direction || "both",
h = a.origin,
m = {
height: f.height(),
width: f.width(),
outerHeight: f.outerHeight(),
outerWidth: f.outerWidth()
},
w = "horizontal" !== t ? e / 100 : 1,
e = "vertical" !== t ? e / 100 : 1;
k.effect = "size";
k.queue = !1;
k.complete = c;
"effect" !== n && (k.origin = h || ["middle", "center"], k.restore = !0);
k.from = a.from || ("show" === n ? {
height: 0,
width: 0,
outerHeight: 0,
outerWidth: 0
} : m);
k.to = {
height: m.height * w,
width: m.width * e,
outerHeight: m.outerHeight * w,
outerWidth: m.outerWidth * e
};
k.fade && ("show" === n && (k.from.opacity = 0, k.to.opacity = 1), "hide" === n && (k.from.opacity = 1, k.to.opacity = 0));
f.effect(k)
};
d.effects.effect.puff = function(a, c) {
var f = d(this),
k = d.effects.setMode(f, a.mode || "hide"),
n = "hide" === k,
e = parseInt(a.percent, 10) || 150,
t = e / 100,
h = {
height: f.height(),
width: f.width(),
outerHeight: f.outerHeight(),
outerWidth: f.outerWidth()
};
d.extend(a, {
effect: "scale",
queue: !1,
fade: !0,
mode: k,
complete: c,
percent: n ? e : 100,
from: n ? h : {
height: h.height * t,
width: h.width * t,
outerHeight: h.outerHeight * t,
outerWidth: h.outerWidth * t
}
});
f.effect(a)
};
d.effects.effect.pulsate = function(a, c) {
var f, k = d(this),
n = d.effects.setMode(k, a.mode || "show");
f = "show" === n;
var e = "hide" === n,
n = 2 * (a.times || 5) + (f || "hide" === n ? 1 : 0),
t = a.duration / n,
h = 0,
m = k.queue(),
w = m.length;
(f || !k.is(":visible")) && (k.css("opacity", 0).show(), h = 1);
for (f = 1; n > f; f++) k.animate({
opacity: h
}, t, a.easing), h = 1 - h;
k.animate({
opacity: h
}, t, a.easing);
k.queue(function() {
e && k.hide();
c()
});
1 < w && m.splice.apply(m, [1, 0].concat(m.splice(w, n + 1)));
k.dequeue()
};
d.effects.effect.shake = function(a, c) {
var f, k = d(this),
n = "position top bottom left right height width".split(" "),
e = d.effects.setMode(k, a.mode || "effect"),
t = a.direction || "left";
f = a.distance || 20;
var h = a.times || 3,
m = 2 * h + 1,
w = Math.round(a.duration / m),
u = "up" === t || "down" === t ? "top" : "left",
v = "up" === t || "left" === t,
t = {},
q = {},
p = {},
C = k.queue(),
A = C.length;
d.effects.save(k, n);
k.show();
d.effects.createWrapper(k);
t[u] = (v ? "-=" : "+=") + f;
q[u] = (v ? "+=" : "-=") + 2 * f;
p[u] = (v ? "-=" : "+=") + 2 * f;
k.animate(t, w, a.easing);
for (f = 1; h > f; f++) k.animate(q, w, a.easing).animate(p, w, a.easing);
k.animate(q, w, a.easing).animate(t, w / 2, a.easing).queue(function() {
"hide" === e && k.hide();
d.effects.restore(k, n);
d.effects.removeWrapper(k);
c()
});
1 < A && C.splice.apply(C, [1, 0].concat(C.splice(A, m + 1)));
k.dequeue()
};
d.effects.effect.slide = function(a, c) {
var f, k = d(this),
n = "position top bottom left right width height".split(" "),
e = d.effects.setMode(k, a.mode || "show"),
t = "show" === e;
f = a.direction || "left";
var h = "up" === f || "down" === f ? "top" : "left",
m = "up" === f || "left" === f,
w = {};
d.effects.save(k, n);
k.show();
f = a.distance || k["top" === h ? "outerHeight" : "outerWidth"](!0);
d.effects.createWrapper(k).css({
overflow: "hidden"
});
t && k.css(h, m ? isNaN(f) ? "-" + f : -f : f);
w[h] = (t ? m ? "+=" : "-=" : m ? "-=" : "+=") + f;
k.animate(w, {
queue: !1,
duration: a.duration,
easing: a.easing,
complete: function() {
"hide" === e && k.hide();
d.effects.restore(k, n);
d.effects.removeWrapper(k);
c()
}
})
};
d.effects.effect.transfer = function(a, c) {
var f = d(this),
k = d(a.to),
n = "fixed" === k.css("position"),
e = d("body"),
t = n ? e.scrollTop() : 0,
e = n ? e.scrollLeft() : 0,
h = k.offset(),
k = {
top: h.top - t,
left: h.left - e,
height: k.innerHeight(),
width: k.innerWidth()
},
h = f.offset(),
m = d("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(a.className).css({
top: h.top - t,
left: h.left - e,
height: f.innerHeight(),
width: f.innerWidth(),
position: n ? "fixed" : "absolute"
}).animate(k, a.duration, a.easing, function() {
m.remove();
c()
})
};
d.widget("ui.progressbar", {
version: "1.11.2",
options: {
max: 100,
value: 0,
change: null,
complete: null
},
min: 0,
_create: function() {
this.oldValue = this.options.value = this._constrainedValue();
this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({
role: "progressbar",
"aria-valuemin": this.min
});
this.valueDiv = d("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);
this._refreshValue()
},
_destroy: function() {
this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
this.valueDiv.remove()
},
value: function(a) {
return void 0 === a ? this.options.value : (this.options.value = this._constrainedValue(a), this._refreshValue(), void 0)
},
_constrainedValue: function(a) {
return void 0 === a && (a = this.options.value), this.indeterminate = !1 === a, "number" != typeof a && (a = 0), this.indeterminate ? !1 : Math.min(this.options.max, Math.max(this.min, a))
},
_setOptions: function(a) {
var d = a.value;
delete a.value;
this._super(a);
this.options.value = this._constrainedValue(d);
this._refreshValue()
},
_setOption: function(a, d) {
"max" === a && (d = Math.max(this.min, d));
"disabled" === a && this.element.toggleClass("ui-state-disabled", !!d).attr("aria-disabled", d);
this._super(a, d)
},
_percentage: function() {
return this.indeterminate ? 100 : 100 * (this.options.value - this.min) / (this.options.max - this.min)
},
_refreshValue: function() {
var a = this.options.value,
c = this._percentage();
this.valueDiv.toggle(this.indeterminate || a > this.min).toggleClass("ui-corner-right", a === this.options.max).width(c.toFixed(0) + "%");
this.element.toggleClass("ui-progressbar-indeterminate", this.indeterminate);
this.indeterminate ? (this.element.removeAttr("aria-valuenow"), this.overlayDiv || (this.overlayDiv = d("<div class='ui-progressbar-overlay'></div>").appendTo(this.valueDiv))) : (this.element.attr({
"aria-valuemax": this.options.max,
"aria-valuenow": a
}), this.overlayDiv && (this.overlayDiv.remove(), this.overlayDiv = null));
this.oldValue !== a && (this.oldValue = a, this._trigger("change"));
a === this.options.max && this._trigger("complete")
}
});
d.widget("ui.selectable", d.ui.mouse, {
version: "1.11.2",
options: {
appendTo: "body",
autoRefresh: !0,
distance: 0,
filter: "*",
tolerance: "touch",
selected: null,
selecting: null,
start: null,
stop: null,
unselected: null,
unselecting: null
},
_create: function() {
var a, c = this;
this.element.addClass("ui-selectable");
this.dragged = !1;
this.refresh = function() {
a = d(c.options.filter, c.element[0]);
a.addClass("ui-selectee");
a.each(function() {
var a = d(this),
c = a.offset();
d.data(this, "selectable-item", {
element: this,
$element: a,
left: c.left,
top: c.top,
right: c.left + a.outerWidth(),
bottom: c.top + a.outerHeight(),
startselected: !1,
selected: a.hasClass("ui-selected"),
selecting: a.hasClass("ui-selecting"),
unselecting: a.hasClass("ui-unselecting")
})
})
};
this.refresh();
this.selectees = a.addClass("ui-selectee");
this._mouseInit();
this.helper = d("<div class='ui-selectable-helper'></div>")
},
_destroy: function() {
this.selectees.removeClass("ui-selectee").removeData("selectable-item");
this.element.removeClass("ui-selectable ui-selectable-disabled");
this._mouseDestroy()
},
_mouseStart: function(a) {
var c = this,
f = this.options;
this.opos = [a.pageX, a.pageY];
this.options.disabled || (this.selectees = d(f.filter, this.element[0]), this._trigger("start", a), d(f.appendTo).append(this.helper), this.helper.css({
left: a.pageX,
top: a.pageY,
width: 0,
height: 0
}), f.autoRefresh && this.refresh(), this.selectees.filter(".ui-selected").each(function() {
var f = d.data(this, "selectable-item");
f.startselected = !0;
a.metaKey || a.ctrlKey || (f.$element.removeClass("ui-selected"), f.selected = !1, f.$element.addClass("ui-unselecting"), f.unselecting = !0, c._trigger("unselecting", a, {
unselecting: f.element
}))
}), d(a.target).parents().addBack().each(function() {
var f, k = d.data(this, "selectable-item");
return k ? (f = !a.metaKey && !a.ctrlKey || !k.$element.hasClass("ui-selected"), k.$element.removeClass(f ? "ui-unselecting" : "ui-selected").addClass(f ? "ui-selecting" : "ui-unselecting"), k.unselecting = !f, k.selecting = f, k.selected = f, f ? c._trigger("selecting", a, {
selecting: k.element
}) : c._trigger("unselecting", a, {
unselecting: k.element
}), !1) : void 0
}))
},
_mouseDrag: function(a) {
if (this.dragged = !0, !this.options.disabled) {
var c, f = this,
k = this.options,
n = this.opos[0],
e = this.opos[1],
t = a.pageX,
h = a.pageY;
return n > t && (c = t, t = n, n = c), e > h && (c = h, h = e, e = c), this.helper.css({
left: n,
top: e,
width: t - n,
height: h - e
}), this.selectees.each(function() {
var c = d.data(this, "selectable-item"),
m = !1;
c && c.element !== f.element[0] && ("touch" === k.tolerance ? m = !(c.left > t || n > c.right || c.top > h || e > c.bottom) : "fit" === k.tolerance && (m = c.left > n && t > c.right && c.top > e && h > c.bottom), m ? (c.selected && (c.$element.removeClass("ui-selected"), c.selected = !1), c.unselecting && (c.$element.removeClass("ui-unselecting"), c.unselecting = !1), c.selecting || (c.$element.addClass("ui-selecting"), c.selecting = !0, f._trigger("selecting", a, {
selecting: c.element
}))) : (c.selecting && ((a.metaKey || a.ctrlKey) && c.startselected ? (c.$element.removeClass("ui-selecting"), c.selecting = !1, c.$element.addClass("ui-selected"), c.selected = !0) : (c.$element.removeClass("ui-selecting"), c.selecting = !1, c.startselected && (c.$element.addClass("ui-unselecting"), c.unselecting = !0), f._trigger("unselecting", a, {
unselecting: c.element
}))), c.selected && (a.metaKey || a.ctrlKey || c.startselected || (c.$element.removeClass("ui-selected"), c.selected = !1, c.$element.addClass("ui-unselecting"), c.unselecting = !0, f._trigger("unselecting", a, {
unselecting: c.element
})))))
}), !1
}
},
_mouseStop: function(a) {
var c = this;
return this.dragged = !1, d(".ui-unselecting", this.element[0]).each(function() {
var f = d.data(this, "selectable-item");
f.$element.removeClass("ui-unselecting");
f.unselecting = !1;
f.startselected = !1;
c._trigger("unselected", a, {
unselected: f.element
})
}), d(".ui-selecting", this.element[0]).each(function() {
var f = d.data(this, "selectable-item");
f.$element.removeClass("ui-selecting").addClass("ui-selected");
f.selecting = !1;
f.selected = !0;
f.startselected = !0;
c._trigger("selected", a, {
selected: f.element
})
}), this._trigger("stop", a), this.helper.remove(), !1
}
});
d.widget("ui.selectmenu", {
version: "1.11.2",
defaultElement: "<select>",
options: {
appendTo: null,
disabled: null,
icons: {
button: "ui-icon-triangle-1-s"
},
position: {
my: "left top",
at: "left bottom",
collision: "none"
},
width: null,
change: null,
close: null,
focus: null,
open: null,
select: null
},
_create: function() {
var a = this.element.uniqueId().attr("id");
this.ids = {
element: a,
button: a + "-button",
menu: a + "-menu"
};
this._drawButton();
this._drawMenu();
this.options.disabled && this.disable()
},
_drawButton: function() {
var a = this,
c = this.element.attr("tabindex");
this.label = d("label[for='" + this.ids.element + "']").attr("for", this.ids.button);
this._on(this.label, {
click: function(a) {
this.button.focus();
a.preventDefault()
}
});
this.element.hide();
this.button = d("<span>", {
class: "ui-selectmenu-button ui-widget ui-state-default ui-corner-all",
tabindex: c || this.options.disabled ? -1 : 0,
id: this.ids.button,
role: "combobox",
"aria-expanded": "false",
"aria-autocomplete": "list",
"aria-owns": this.ids.menu,
"aria-haspopup": "true"
}).insertAfter(this.element);
d("<span>", {
class: "ui-icon " + this.options.icons.button
}).prependTo(this.button);
this.buttonText = d("<span>", {
class: "ui-selectmenu-text"
}).appendTo(this.button);
this._setText(this.buttonText, this.element.find("option:selected").text());
this._resizeButton();
this._on(this.button, this._buttonEvents);
this.button.one("focusin", function() {
a.menuItems || a._refreshMenu()
});
this._hoverable(this.button);
this._focusable(this.button)
},
_drawMenu: function() {
var a = this;
this.menu = d("<ul>", {
"aria-hidden": "true",
"aria-labelledby": this.ids.button,
id: this.ids.menu
});
this.menuWrap = d("<div>", {
class: "ui-selectmenu-menu ui-front"
}).append(this.menu).appendTo(this._appendTo());
this.menuInstance = this.menu.menu({
role: "listbox",
select: function(d, c) {
d.preventDefault();
a._setSelection();
a._select(c.item.data("ui-selectmenu-item"), d)
},
focus: function(d, c) {
var f = c.item.data("ui-selectmenu-item");
null != a.focusIndex && f.index !== a.focusIndex && (a._trigger("focus", d, {
item: f
}), a.isOpen || a._select(f, d));
a.focusIndex = f.index;
a.button.attr("aria-activedescendant", a.menuItems.eq(f.index).attr("id"))
}
}).menu("instance");
this.menu.addClass("ui-corner-bottom").removeClass("ui-corner-all");
this.menuInstance._off(this.menu, "mouseleave");
this.menuInstance._closeOnDocumentClick = function() {
return !1
};
this.menuInstance._isDivider = function() {
return !1
}
},
refresh: function() {
this._refreshMenu();
this._setText(this.buttonText, this._getSelectedItem().text());
this.options.width || this._resizeButton()
},
_refreshMenu: function() {
this.menu.empty();
var a, d = this.element.find("option");
d.length && (this._parseOptions(d), this._renderMenu(this.menu, this.items), this.menuInstance.refresh(), this.menuItems = this.menu.find("li").not(".ui-selectmenu-optgroup"), a = this._getSelectedItem(), this.menuInstance.focus(null, a), this._setAria(a.data("ui-selectmenu-item")), this._setOption("disabled", this.element.prop("disabled")))
},
open: function(a) {
this.options.disabled || (this.menuItems ? (this.menu.find(".ui-state-focus").removeClass("ui-state-focus"), this.menuInstance.focus(null, this._getSelectedItem())) : this._refreshMenu(), this.isOpen = !0, this._toggleAttr(), this._resizeMenu(), this._position(), this._on(this.document, this._documentClick), this._trigger("open", a))
},
_position: function() {
this.menuWrap.position(d.extend({
of: this.button
}, this.options.position))
},
close: function(a) {
this.isOpen && (this.isOpen = !1, this._toggleAttr(), this.range = null, this._off(this.document), this._trigger("close", a))
},
widget: function() {
return this.button
},
menuWidget: function() {
return this.menu
},
_renderMenu: function(a, c) {
var f = this,
k = "";
d.each(c, function(c, n) {
n.optgroup !== k && (d("<li>", {
class: "ui-selectmenu-optgroup ui-menu-divider" + (n.element.parent("optgroup").prop("disabled") ? " ui-state-disabled" : ""),
text: n.optgroup
}).appendTo(a), k = n.optgroup);
f._renderItemData(a, n)
})
},
_renderItemData: function(a, d) {
return this._renderItem(a, d).data("ui-selectmenu-item", d)
},
_renderItem: function(a, c) {
var f = d("<li>");
return c.disabled && f.addClass("ui-state-disabled"), this._setText(f, c.label), f.appendTo(a)
},
_setText: function(a, d) {
d ? a.text(d) : a.html("&#160;")
},
_move: function(a, d) {
var c, f = ".ui-menu-item";
this.isOpen ? c = this.menuItems.eq(this.focusIndex) : (c = this.menuItems.eq(this.element[0].selectedIndex), f += ":not(.ui-state-disabled)");
c = "first" === a || "last" === a ? c["first" === a ? "prevAll" : "nextAll"](f).eq(-1) : c[a + "All"](f).eq(0);
c.length && this.menuInstance.focus(d, c)
},
_getSelectedItem: function() {
return this.menuItems.eq(this.element[0].selectedIndex)
},
_toggle: function(a) {
this[this.isOpen ? "close" : "open"](a)
},
_setSelection: function() {
var a;
this.range && (window.getSelection ? (a = window.getSelection(), a.removeAllRanges(), a.addRange(this.range)) : this.range.select(), this.button.focus())
},
_documentClick: {
mousedown: function(a) {
this.isOpen && (d(a.target).closest(".ui-selectmenu-menu, #" + this.ids.button).length || this.close(a))
}
},
_buttonEvents: {
mousedown: function() {
var a;
window.getSelection ? (a = window.getSelection(), a.rangeCount && (this.range = a.getRangeAt(0))) : this.range = document.selection.createRange()
},
click: function(a) {
this._setSelection();
this._toggle(a)
},
keydown: function(a) {
var c = !0;
switch (a.keyCode) {
case d.ui.keyCode.TAB:
case d.ui.keyCode.ESCAPE:
this.close(a);
c = !1;
break;
case d.ui.keyCode.ENTER:
this.isOpen && this._selectFocusedItem(a);
break;
case d.ui.keyCode.UP:
a.altKey ? this._toggle(a) : this._move("prev", a);
break;
case d.ui.keyCode.DOWN:
a.altKey ? this._toggle(a) : this._move("next", a);
break;
case d.ui.keyCode.SPACE:
this.isOpen ? this._selectFocusedItem(a) : this._toggle(a);
break;
case d.ui.keyCode.LEFT:
this._move("prev", a);
break;
case d.ui.keyCode.RIGHT:
this._move("next", a);
break;
case d.ui.keyCode.HOME:
case d.ui.keyCode.PAGE_UP:
this._move("first", a);
break;
case d.ui.keyCode.END:
case d.ui.keyCode.PAGE_DOWN:
this._move("last", a);
break;
default:
this.menu.trigger(a), c = !1
}
c && a.preventDefault()
}
},
_selectFocusedItem: function(a) {
var d = this.menuItems.eq(this.focusIndex);
d.hasClass("ui-state-disabled") || this._select(d.data("ui-selectmenu-item"), a)
},
_select: function(a, d) {
var c = this.element[0].selectedIndex;
this.element[0].selectedIndex = a.index;
this._setText(this.buttonText, a.label);
this._setAria(a);
this._trigger("select", d, {
item: a
});
a.index !== c && this._trigger("change", d, {
item: a
});
this.close(d)
},
_setAria: function(a) {
a = this.menuItems.eq(a.index).attr("id");
this.button.attr({
"aria-labelledby": a,
"aria-activedescendant": a
});
this.menu.attr("aria-activedescendant", a)
},
_setOption: function(a, d) {
"icons" === a && this.button.find("span.ui-icon").removeClass(this.options.icons.button).addClass(d.button);
this._super(a, d);
"appendTo" === a && this.menuWrap.appendTo(this._appendTo());
"disabled" === a && (this.menuInstance.option("disabled", d), this.button.toggleClass("ui-state-disabled", d).attr("aria-disabled", d), this.element.prop("disabled", d), d ? (this.button.attr("tabindex", -1), this.close()) : this.button.attr("tabindex", 0));
"width" === a && this._resizeButton()
},
_appendTo: function() {
var a = this.options.appendTo;
return a && (a = a.jquery || a.nodeType ? d(a) : this.document.find(a).eq(0)), a && a[0] || (a = this.element.closest(".ui-front")), a.length || (a = this.document[0].body), a
},
_toggleAttr: function() {
this.button.toggleClass("ui-corner-top", this.isOpen).toggleClass("ui-corner-all", !this.isOpen).attr("aria-expanded", this.isOpen);
this.menuWrap.toggleClass("ui-selectmenu-open", this.isOpen);
this.menu.attr("aria-hidden", !this.isOpen)
},
_resizeButton: function() {
var a = this.options.width;
a || (a = this.element.show().outerWidth(), this.element.hide());
this.button.outerWidth(a)
},
_resizeMenu: function() {
this.menu.outerWidth(Math.max(this.button.outerWidth(), this.menu.width("").outerWidth() + 1))
},
_getCreateOptions: function() {
return {
disabled: this.element.prop("disabled")
}
},
_parseOptions: function(a) {
var c = [];
a.each(function(a, f) {
var k = d(f),
n = k.parent("optgroup");
c.push({
element: k,
index: a,
value: k.attr("value"),
label: k.text(),
optgroup: n.attr("label") || "",
disabled: n.prop("disabled") || k.prop("disabled")
})
});
this.items = c
},
_destroy: function() {
this.menuWrap.remove();
this.button.remove();
this.element.show();
this.element.removeUniqueId();
this.label.attr("for", this.ids.element)
}
});
d.widget("ui.slider", d.ui.mouse, {
version: "1.11.2",
widgetEventPrefix: "slide",
options: {
animate: !1,
distance: 0,
max: 100,
min: 0,
orientation: "horizontal",
range: !1,
step: 1,
value: 0,
values: null,
change: null,
slide: null,
start: null,
stop: null
},
numPages: 5,
_create: function() {
this._mouseSliding = this._keySliding = !1;
this._animateOff = !0;
this._handleIndex = null;
this._detectOrientation();
this._mouseInit();
this._calculateNewMax();
this.element.addClass("ui-slider ui-slider-" + this.orientation + " ui-widget ui-widget-content ui-corner-all");
this._refresh();
this._setOption("disabled", this.options.disabled);
this._animateOff = !1
},
_refresh: function() {
this._createRange();
this._createHandles();
this._setupEvents();
this._refreshValue()
},
_createHandles: function() {
var a, c;
a = this.options;
var f = this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),
k = [];
c = a.values && a.values.length || 1;
f.length > c && (f.slice(c).remove(), f = f.slice(0, c));
for (a = f.length; c > a; a++) k.push("<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>");
this.handles = f.add(d(k.join("")).appendTo(this.element));
this.handle = this.handles.eq(0);
this.handles.each(function(a) {
d(this).data("ui-slider-handle-index", a)
})
},
_createRange: function() {
var a = this.options,
c = "";
a.range ? (!0 === a.range && (a.values ? a.values.length && 2 !== a.values.length ? a.values = [a.values[0], a.values[0]] : d.isArray(a.values) && (a.values = a.values.slice(0)) : a.values = [this._valueMin(), this._valueMin()]), this.range && this.range.length ? this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({
left: "",
bottom: ""
}) : (this.range = d("<div></div>").appendTo(this.element), c = "ui-slider-range ui-widget-header ui-corner-all"), this.range.addClass(c + ("min" === a.range || "max" === a.range ? " ui-slider-range-" + a.range : ""))) : (this.range && this.range.remove(), this.range = null)
},
_setupEvents: function() {
this._off(this.handles);
this._on(this.handles, this._handleEvents);
this._hoverable(this.handles);
this._focusable(this.handles)
},
_destroy: function() {
this.handles.remove();
this.range && this.range.remove();
this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all");
this._mouseDestroy()
},
_mouseCapture: function(a) {
var c, f, k, n, e, t, h, m, w = this,
u = this.options;
return u.disabled ? !1 : (this.elementSize = {
width: this.element.outerWidth(),
height: this.element.outerHeight()
}, this.elementOffset = this.element.offset(), c = {
x: a.pageX,
y: a.pageY
}, f = this._normValueFromMouse(c), k = this._valueMax() - this._valueMin() + 1, this.handles.each(function(a) {
var c = Math.abs(f - w.values(a));
(k > c || k === c && (a === w._lastChangedValue || w.values(a) === u.min)) && (k = c, n = d(this), e = a)
}), t = this._start(a, e), !1 === t ? !1 : (this._mouseSliding = !0, this._handleIndex = e, n.addClass("ui-state-active").focus(), h = n.offset(), m = !d(a.target).parents().addBack().is(".ui-slider-handle"), this._clickOffset = m ? {
left: 0,
top: 0
} : {
left: a.pageX - h.left - n.width() / 2,
top: a.pageY - h.top - n.height() / 2 - (parseInt(n.css("borderTopWidth"), 10) || 0) - (parseInt(n.css("borderBottomWidth"), 10) || 0) + (parseInt(n.css("marginTop"), 10) || 0)
}, this.handles.hasClass("ui-state-hover") || this._slide(a, e, f), this._animateOff = !0, !0))
},
_mouseStart: function() {
return !0
},
_mouseDrag: function(a) {
var d = this._normValueFromMouse({
x: a.pageX,
y: a.pageY
});
return this._slide(a, this._handleIndex, d), !1
},
_mouseStop: function(a) {
return this.handles.removeClass("ui-state-active"), this._mouseSliding = !1, this._stop(a, this._handleIndex), this._change(a, this._handleIndex), this._handleIndex = null, this._clickOffset = null, this._animateOff = !1, !1
},
_detectOrientation: function() {
this.orientation = "vertical" === this.options.orientation ? "vertical" : "horizontal"
},
_normValueFromMouse: function(a) {
var d, c, f, k, n;
return "horizontal" === this.orientation ? (d = this.elementSize.width, c = a.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)) : (d = this.elementSize.height, c = a.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)), f = c / d, 1 < f && (f = 1), 0 > f && (f = 0), "vertical" === this.orientation && (f = 1 - f), k = this._valueMax() - this._valueMin(), n = this._valueMin() + f * k, this._trimAlignValue(n)
},
_start: function(a, d) {
var c = {
handle: this.handles[d],
value: this.value()
};
return this.options.values && this.options.values.length && (c.value = this.values(d), c.values = this.values()), this._trigger("start", a, c)
},
_slide: function(a, d, c) {
var f, k, n;
this.options.values && this.options.values.length ? (f = this.values(d ? 0 : 1), 2 === this.options.values.length && !0 === this.options.range && (0 === d && c > f || 1 === d && f > c) && (c = f), c !== this.values(d) && (k = this.values(), k[d] = c, n = this._trigger("slide", a, {
handle: this.handles[d],
value: c,
values: k
}), this.values(d ? 0 : 1), !1 !== n && this.values(d, c))) : c !== this.value() && (n = this._trigger("slide", a, {
handle: this.handles[d],
value: c
}), !1 !== n && this.value(c))
},
_stop: function(a, d) {
var c = {
handle: this.handles[d],
value: this.value()
};
this.options.values && this.options.values.length && (c.value = this.values(d), c.values = this.values());
this._trigger("stop", a, c)
},
_change: function(a, d) {
if (!this._keySliding && !this._mouseSliding) {
var c = {
handle: this.handles[d],
value: this.value()
};
this.options.values && this.options.values.length && (c.value = this.values(d), c.values = this.values());
this._lastChangedValue = d;
this._trigger("change", a, c)
}
},
value: function(a) {
return arguments.length ? (this.options.value = this._trimAlignValue(a), this._refreshValue(), this._change(null, 0), void 0) : this._value()
},
values: function(a, c) {
var f, k, n;
if (1 < arguments.length) return this.options.values[a] = this._trimAlignValue(c), this._refreshValue(), this._change(null, a), void 0;
if (!arguments.length) return this._values();
if (!d.isArray(arguments[0])) return this.options.values && this.options.values.length ? this._values(a) : this.value();
f = this.options.values;
k = arguments[0];
for (n = 0; f.length > n; n += 1) f[n] = this._trimAlignValue(k[n]), this._change(null, n);
this._refreshValue()
},
_setOption: function(a, c) {
var f, k = 0;
switch ("range" === a && !0 === this.options.range && ("min" === c ? (this.options.value = this._values(0), this.options.values = null) : "max" === c && (this.options.value = this._values(this.options.values.length - 1), this.options.values = null)), d.isArray(this.options.values) && (k = this.options.values.length), "disabled" === a && this.element.toggleClass("ui-state-disabled", !!c), this._super(a, c), a) {
case "orientation":
this._detectOrientation();
this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-" + this.orientation);
this._refreshValue();
this.handles.css("horizontal" === c ? "bottom" : "left", "");
break;
case "value":
this._animateOff = !0;
this._refreshValue();
this._change(null, 0);
this._animateOff = !1;
break;
case "values":
this._animateOff = !0;
this._refreshValue();
for (f = 0; k > f; f += 1) this._change(null, f);
this._animateOff = !1;
break;
case "step":
case "min":
case "max":
this._animateOff = !0;
this._calculateNewMax();
this._refreshValue();
this._animateOff = !1;
break;
case "range":
this._animateOff = !0, this._refresh(), this._animateOff = !1
}
},
_value: function() {
return this._trimAlignValue(this.options.value)
},
_values: function(a) {
var d, c;
if (arguments.length) return d = this.options.values[a], this._trimAlignValue(d);
if (this.options.values && this.options.values.length) {
d = this.options.values.slice();
for (c = 0; d.length > c; c += 1) d[c] = this._trimAlignValue(d[c]);
return d
}
return []
},
_trimAlignValue: function(a) {
if (this._valueMin() >= a) return this._valueMin();
if (a >= this._valueMax()) return this._valueMax();
var d = 0 < this.options.step ? this.options.step : 1,
c = (a - this._valueMin()) % d;
a -= c;
return 2 * Math.abs(c) >= d && (a += 0 < c ? d : -d), parseFloat(a.toFixed(5))
},
_calculateNewMax: function() {
var a = (this.options.max - this._valueMin()) % this.options.step;
this.max = this.options.max - a
},
_valueMin: function() {
return this.options.min
},
_valueMax: function() {
return this.max
},
_refreshValue: function() {
var a, c, f, k, n, e = this.options.range,
t = this.options,
h = this,
m = this._animateOff ? !1 : t.animate,
w = {};
this.options.values && this.options.values.length ? this.handles.each(function(f) {
c = 100 * ((h.values(f) - h._valueMin()) / (h._valueMax() - h._valueMin()));
w["horizontal" === h.orientation ? "left" : "bottom"] = c + "%";
d(this).stop(1, 1)[m ? "animate" : "css"](w, t.animate);
!0 === h.options.range && ("horizontal" === h.orientation ? (0 === f && h.range.stop(1, 1)[m ? "animate" : "css"]({
left: c + "%"
}, t.animate), 1 === f && h.range[m ? "animate" : "css"]({
width: c - a + "%"
}, {
queue: !1,
duration: t.animate
})) : (0 === f && h.range.stop(1, 1)[m ? "animate" : "css"]({
bottom: c + "%"
}, t.animate), 1 === f && h.range[m ? "animate" : "css"]({
height: c - a + "%"
}, {
queue: !1,
duration: t.animate
})));
a = c
}) : (f = this.value(), k = this._valueMin(), n = this._valueMax(), c = n !== k ? (f - k) / (n - k) * 100 : 0, w["horizontal" === this.orientation ? "left" : "bottom"] = c + "%", this.handle.stop(1, 1)[m ? "animate" : "css"](w, t.animate), "min" === e && "horizontal" === this.orientation && this.range.stop(1, 1)[m ? "animate" : "css"]({
width: c + "%"
}, t.animate), "max" === e && "horizontal" === this.orientation && this.range[m ? "animate" : "css"]({
width: 100 - c + "%"
}, {
queue: !1,
duration: t.animate
}), "min" === e && "vertical" === this.orientation && this.range.stop(1, 1)[m ? "animate" : "css"]({
height: c + "%"
}, t.animate), "max" === e && "vertical" === this.orientation && this.range[m ? "animate" : "css"]({
height: 100 - c + "%"
}, {
queue: !1,
duration: t.animate
}))
},
_handleEvents: {
keydown: function(a) {
var c, f, k, n = d(a.target).data("ui-slider-handle-index");
switch (a.keyCode) {
case d.ui.keyCode.HOME:
case d.ui.keyCode.END:
case d.ui.keyCode.PAGE_UP:
case d.ui.keyCode.PAGE_DOWN:
case d.ui.keyCode.UP:
case d.ui.keyCode.RIGHT:
case d.ui.keyCode.DOWN:
case d.ui.keyCode.LEFT:
if (a.preventDefault(), !this._keySliding && (this._keySliding = !0, d(a.target).addClass("ui-state-active"), c = this._start(a, n), !1 === c)) return
}
switch (k = this.options.step, c = f = this.options.values && this.options.values.length ? this.values(n) : this.value(), a.keyCode) {
case d.ui.keyCode.HOME:
f = this._valueMin();
break;
case d.ui.keyCode.END:
f = this._valueMax();
break;
case d.ui.keyCode.PAGE_UP:
f = this._trimAlignValue(c + (this._valueMax() - this._valueMin()) / this.numPages);
break;
case d.ui.keyCode.PAGE_DOWN:
f = this._trimAlignValue(c - (this._valueMax() - this._valueMin()) / this.numPages);
break;
case d.ui.keyCode.UP:
case d.ui.keyCode.RIGHT:
if (c === this._valueMax()) return;
f = this._trimAlignValue(c + k);
break;
case d.ui.keyCode.DOWN:
case d.ui.keyCode.LEFT:
if (c === this._valueMin()) return;
f = this._trimAlignValue(c - k)
}
this._slide(a, n, f)
},
keyup: function(a) {
var c = d(a.target).data("ui-slider-handle-index");
this._keySliding && (this._keySliding = !1, this._stop(a, c), this._change(a, c), d(a.target).removeClass("ui-state-active"))
}
}
});
d.widget("ui.sortable", d.ui.mouse, {
version: "1.11.2",
widgetEventPrefix: "sort",
ready: !1,
options: {
appendTo: "parent",
axis: !1,
connectWith: !1,
containment: !1,
cursor: "auto",
cursorAt: !1,
dropOnEmpty: !0,
forcePlaceholderSize: !1,
forceHelperSize: !1,
grid: !1,
handle: !1,
helper: "original",
items: "> *",
opacity: !1,
placeholder: !1,
revert: !1,
scroll: !0,
scrollSensitivity: 20,
scrollSpeed: 20,
scope: "default",
tolerance: "intersect",
zIndex: 1e3,
activate: null,
beforeStop: null,
change: null,
deactivate: null,
out: null,
over: null,
receive: null,
remove: null,
sort: null,
start: null,
stop: null,
update: null
},
_isOverAxis: function(a, d, c) {
return a >= d && d + c > a
},
_isFloating: function(a) {
return /left|right/.test(a.css("float")) || /inline|table-cell/.test(a.css("display"))
},
_create: function() {
var a = this.options;
this.containerCache = {};
this.element.addClass("ui-sortable");
this.refresh();
this.floating = this.items.length ? "x" === a.axis || this._isFloating(this.items[0].item) : !1;
this.offset = this.element.offset();
this._mouseInit();
this._setHandleClassName();
this.ready = !0
},
_setOption: function(a, d) {
this._super(a, d);
"handle" === a && this._setHandleClassName()
},
_setHandleClassName: function() {
this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle");
d.each(this.items, function() {
(this.instance.options.handle ? this.item.find(this.instance.options.handle) : this.item).addClass("ui-sortable-handle")
})
},
_destroy: function() {
this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle");
this._mouseDestroy();
for (var a = this.items.length - 1; 0 <= a; a--) this.items[a].item.removeData(this.widgetName + "-item");
return this
},
_mouseCapture: function(a, c) {
var f = null,
k = !1,
n = this;
return this.reverting ? !1 : this.options.disabled || "static" === this.options.type ? !1 : (this._refreshItems(a), d(a.target).parents().each(function() {
return d.data(this, n.widgetName + "-item") === n ? (f = d(this), !1) : void 0
}), d.data(a.target, n.widgetName + "-item") === n && (f = d(a.target)), f ? !this.options.handle || c || (d(this.options.handle, f).find("*").addBack().each(function() {
this === a.target && (k = !0)
}), k) ? (this.currentItem = f, this._removeCurrentsFromItems(), !0) : !1 : !1)
},
_mouseStart: function(a, c, f) {
var k;
c = this.options;
if (this.currentContainer = this, this.refreshPositions(), this.helper = this._createHelper(a), this._cacheHelperProportions(), this._cacheMargins(), this.scrollParent = this.helper.scrollParent(), this.offset = this.currentItem.offset(), this.offset = {
top: this.offset.top - this.margins.top,
left: this.offset.left - this.margins.left
}, d.extend(this.offset, {
click: {
left: a.pageX - this.offset.left,
top: a.pageY - this.offset.top
},
parent: this._getParentOffset(),
relative: this._getRelativeOffset()
}), this.helper.css("position", "absolute"), this.cssPosition = this.helper.css("position"), this.originalPosition = this._generatePosition(a), this.originalPageX = a.pageX, this.originalPageY = a.pageY, c.cursorAt && this._adjustOffsetFromHelper(c.cursorAt), this.domPosition = {
prev: this.currentItem.prev()[0],
parent: this.currentItem.parent()[0]
}, this.helper[0] !== this.currentItem[0] && this.currentItem.hide(), this._createPlaceholder(), c.containment && this._setContainment(), c.cursor && "auto" !== c.cursor && (k = this.document.find("body"), this.storedCursor = k.css("cursor"), k.css("cursor", c.cursor), this.storedStylesheet = d("<style>*{ cursor: " + c.cursor + " !important; }</style>").appendTo(k)), c.opacity && (this.helper.css("opacity") && (this._storedOpacity = this.helper.css("opacity")), this.helper.css("opacity", c.opacity)), c.zIndex && (this.helper.css("zIndex") && (this._storedZIndex = this.helper.css("zIndex")), this.helper.css("zIndex", c.zIndex)), this.scrollParent[0] !== document && "HTML" !== this.scrollParent[0].tagName && (this.overflowOffset = this.scrollParent.offset()), this._trigger("start", a, this._uiHash()), this._preserveHelperProportions || this._cacheHelperProportions(), !f)
for (f = this.containers.length - 1; 0 <= f; f--) this.containers[f]._trigger("activate", a, this._uiHash(this));
return d.ui.ddmanager && (d.ui.ddmanager.current = this), d.ui.ddmanager && !c.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a), this.dragging = !0, this.helper.addClass("ui-sortable-helper"), this._mouseDrag(a), !0
},
_mouseDrag: function(a) {
var c, f, k, n;
c = this.options;
var e = !1;
this.position = this._generatePosition(a);
this.positionAbs = this._convertPositionTo("absolute");
this.lastPositionAbs || (this.lastPositionAbs = this.positionAbs);
this.options.scroll && (this.scrollParent[0] !== document && "HTML" !== this.scrollParent[0].tagName ? (this.overflowOffset.top + this.scrollParent[0].offsetHeight - a.pageY < c.scrollSensitivity ? this.scrollParent[0].scrollTop = e = this.scrollParent[0].scrollTop + c.scrollSpeed : a.pageY - this.overflowOffset.top < c.scrollSensitivity && (this.scrollParent[0].scrollTop = e = this.scrollParent[0].scrollTop - c.scrollSpeed), this.overflowOffset.left + this.scrollParent[0].offsetWidth - a.pageX < c.scrollSensitivity ? this.scrollParent[0].scrollLeft = e = this.scrollParent[0].scrollLeft + c.scrollSpeed : a.pageX - this.overflowOffset.left < c.scrollSensitivity && (this.scrollParent[0].scrollLeft = e = this.scrollParent[0].scrollLeft - c.scrollSpeed)) : (a.pageY - d(document).scrollTop() < c.scrollSensitivity ? e = d(document).scrollTop(d(document).scrollTop() - c.scrollSpeed) : d(window).height() - (a.pageY - d(document).scrollTop()) < c.scrollSensitivity && (e = d(document).scrollTop(d(document).scrollTop() + c.scrollSpeed)), a.pageX - d(document).scrollLeft() < c.scrollSensitivity ? e = d(document).scrollLeft(d(document).scrollLeft() - c.scrollSpeed) : d(window).width() - (a.pageX - d(document).scrollLeft()) < c.scrollSensitivity && (e = d(document).scrollLeft(d(document).scrollLeft() + c.scrollSpeed))), !1 !== e && d.ui.ddmanager && !c.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a));
this.positionAbs = this._convertPositionTo("absolute");
this.options.axis && "y" === this.options.axis || (this.helper[0].style.left = this.position.left + "px");
this.options.axis && "x" === this.options.axis || (this.helper[0].style.top = this.position.top + "px");
for (c = this.items.length - 1; 0 <= c; c--)
if (f = this.items[c], k = f.item[0], n = this._intersectsWithPointer(f), n && f.instance === this.currentContainer && k !== this.currentItem[0] && this.placeholder[1 === n ? "next" : "prev"]()[0] !== k && !d.contains(this.placeholder[0], k) && ("semi-dynamic" === this.options.type ? !d.contains(this.element[0], k) : !0)) {
if (this.direction = 1 === n ? "down" : "up", "pointer" !== this.options.tolerance && !this._intersectsWithSides(f)) break;
this._rearrange(a, f);
this._trigger("change", a, this._uiHash());
break
}
return this._contactContainers(a), d.ui.ddmanager && d.ui.ddmanager.drag(this, a), this._trigger("sort", a, this._uiHash()), this.lastPositionAbs = this.positionAbs, !1
},
_mouseStop: function(a, c) {
if (a) {
if (d.ui.ddmanager && !this.options.dropBehaviour && d.ui.ddmanager.drop(this, a), this.options.revert) {
var f = this,
k = this.placeholder.offset(),
n = this.options.axis,
e = {};
n && "x" !== n || (e.left = k.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollLeft));
n && "y" !== n || (e.top = k.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollTop));
this.reverting = !0;
d(this.helper).animate(e, parseInt(this.options.revert, 10) || 500, function() {
f._clear(a)
})
} else this._clear(a, c);
return !1
}
},
cancel: function() {
if (this.dragging) {
this._mouseUp({
target: null
});
"original" === this.options.helper ? this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") : this.currentItem.show();
for (var a = this.containers.length - 1; 0 <= a; a--) this.containers[a]._trigger("deactivate", null, this._uiHash(this)), this.containers[a].containerCache.over && (this.containers[a]._trigger("out", null, this._uiHash(this)), this.containers[a].containerCache.over = 0)
}
return this.placeholder && (this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]), "original" !== this.options.helper && this.helper && this.helper[0].parentNode && this.helper.remove(), d.extend(this, {
helper: null,
dragging: !1,
reverting: !1,
_noFinalSort: null
}), this.domPosition.prev ? d(this.domPosition.prev).after(this.currentItem) : d(this.domPosition.parent).prepend(this.currentItem)), this
},
serialize: function(a) {
var c = this._getItemsAsjQuery(a && a.connected),
f = [];
return a = a || {}, d(c).each(function() {
var c = (d(a.item || this).attr(a.attribute || "id") || "").match(a.expression || /(.+)[\-=_](.+)/);
c && f.push((a.key || c[1] + "[]") + "=" + (a.key && a.expression ? c[1] : c[2]))
}), !f.length && a.key && f.push(a.key + "="), f.join("&")
},
toArray: function(a) {
var c = this._getItemsAsjQuery(a && a.connected),
f = [];
return a = a || {}, c.each(function() {
f.push(d(a.item || this).attr(a.attribute || "id") || "")
}), f
},
_intersectsWith: function(a) {
var d = this.positionAbs.left,
c = d + this.helperProportions.width,
f = this.positionAbs.top,
k = f + this.helperProportions.height,
n = a.left,
e = n + a.width,
t = a.top,
h = t + a.height,
m = this.offset.click.top,
w = this.offset.click.left,
m = "x" === this.options.axis || f + m > t && h > f + m,
w = "y" === this.options.axis || d + w > n && e > d + w;
return "pointer" === this.options.tolerance || this.options.forcePointerForContainers || "pointer" !== this.options.tolerance && this.helperProportions[this.floating ? "width" : "height"] > a[this.floating ? "width" : "height"] ? m && w : d + this.helperProportions.width / 2 > n && e > c - this.helperProportions.width / 2 && f + this.helperProportions.height / 2 > t && h > k - this.helperProportions.height / 2
},
_intersectsWithPointer: function(a) {
var d = "x" === this.options.axis || this._isOverAxis(this.positionAbs.top + this.offset.click.top, a.top, a.height);
a = "y" === this.options.axis || this._isOverAxis(this.positionAbs.left + this.offset.click.left, a.left, a.width);
d = d && a;
a = this._getDragVerticalDirection();
var c = this._getDragHorizontalDirection();
return d ? this.floating ? c && "right" === c || "down" === a ? 2 : 1 : a && ("down" === a ? 2 : 1) : !1
},
_intersectsWithSides: function(a) {
var d = this._isOverAxis(this.positionAbs.top + this.offset.click.top, a.top + a.height / 2, a.height);
a = this._isOverAxis(this.positionAbs.left + this.offset.click.left, a.left + a.width / 2, a.width);
var c = this._getDragVerticalDirection(),
f = this._getDragHorizontalDirection();
return this.floating && f ? "right" === f && a || "left" === f && !a : c && ("down" === c && d || "up" === c && !d)
},
_getDragVerticalDirection: function() {
var a = this.positionAbs.top - this.lastPositionAbs.top;
return 0 !== a && (0 < a ? "down" : "up")
},
_getDragHorizontalDirection: function() {
var a = this.positionAbs.left - this.lastPositionAbs.left;
return 0 !== a && (0 < a ? "right" : "left")
},
refresh: function(a) {
return this._refreshItems(a), this._setHandleClassName(), this.refreshPositions(), this
},
_connectWith: function() {
var a = this.options;
return a.connectWith.constructor === String ? [a.connectWith] : a.connectWith
},
_getItemsAsjQuery: function(a) {
function c() {
e.push(this)
}
var f, k, n, e = [],
t = [],
h = this._connectWith();
if (h && a)
for (a = h.length - 1; 0 <= a; a--)
for (k = d(h[a]), f = k.length - 1; 0 <= f; f--)(n = d.data(k[f], this.widgetFullName)) && n !== this && !n.options.disabled && t.push([d.isFunction(n.options.items) ? n.options.items.call(n.element) : d(n.options.items, n.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), n]);
t.push([d.isFunction(this.options.items) ? this.options.items.call(this.element, null, {
options: this.options,
item: this.currentItem
}) : d(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]);
for (a = t.length - 1; 0 <= a; a--) t[a][0].each(c);
return d(e)
},
_removeCurrentsFromItems: function() {
var a = this.currentItem.find(":data(" + this.widgetName + "-item)");
this.items = d.grep(this.items, function(d) {
for (var c = 0; a.length > c; c++)
if (a[c] === d.item[0]) return !1;
return !0
})
},
_refreshItems: function(a) {
this.items = [];
this.containers = [this];
var c, f, k, n, e, t = this.items,
h = [
[d.isFunction(this.options.items) ? this.options.items.call(this.element[0], a, {
item: this.currentItem
}) : d(this.options.items, this.element), this]
];
if ((e = this._connectWith()) && this.ready)
for (c = e.length - 1; 0 <= c; c--)
for (k = d(e[c]), f = k.length - 1; 0 <= f; f--)(n = d.data(k[f], this.widgetFullName)) && n !== this && !n.options.disabled && (h.push([d.isFunction(n.options.items) ? n.options.items.call(n.element[0], a, {
item: this.currentItem
}) : d(n.options.items, n.element), n]), this.containers.push(n));
for (c = h.length - 1; 0 <= c; c--)
for (a = h[c][1], k = h[c][0], f = 0, e = k.length; e > f; f++) n = d(k[f]), n.data(this.widgetName + "-item", a), t.push({
item: n,
instance: a,
width: 0,
height: 0,
left: 0,
top: 0
})
},
refreshPositions: function(a) {
this.offsetParent && this.helper && (this.offset.parent = this._getParentOffset());
var c, f, k, n;
for (c = this.items.length - 1; 0 <= c; c--) f = this.items[c], f.instance !== this.currentContainer && this.currentContainer && f.item[0] !== this.currentItem[0] || (k = this.options.toleranceElement ? d(this.options.toleranceElement, f.item) : f.item, a || (f.width = k.outerWidth(), f.height = k.outerHeight()), n = k.offset(), f.left = n.left, f.top = n.top);
if (this.options.custom && this.options.custom.refreshContainers) this.options.custom.refreshContainers.call(this);
else
for (c = this.containers.length - 1; 0 <= c; c--) n = this.containers[c].element.offset(), this.containers[c].containerCache.left = n.left, this.containers[c].containerCache.top = n.top, this.containers[c].containerCache.width = this.containers[c].element.outerWidth(), this.containers[c].containerCache.height = this.containers[c].element.outerHeight();
return this
},
_createPlaceholder: function(a) {
a = a || this;
var c, f = a.options;
f.placeholder && f.placeholder.constructor !== String || (c = f.placeholder, f.placeholder = {
element: function() {
var f = a.currentItem[0].nodeName.toLowerCase(),
k = d("<" + f + ">", a.document[0]).addClass(c || a.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper");
return "tr" === f ? a.currentItem.children().each(function() {
d("<td>&#160;</td>", a.document[0]).attr("colspan", d(this).attr("colspan") || 1).appendTo(k)
}) : "img" === f && k.attr("src", a.currentItem.attr("src")), c || k.css("visibility", "hidden"), k
},
update: function(d, k) {
(!c || f.forcePlaceholderSize) && (k.height() || k.height(a.currentItem.innerHeight() - parseInt(a.currentItem.css("paddingTop") || 0, 10) - parseInt(a.currentItem.css("paddingBottom") || 0, 10)), k.width() || k.width(a.currentItem.innerWidth() - parseInt(a.currentItem.css("paddingLeft") || 0, 10) - parseInt(a.currentItem.css("paddingRight") || 0, 10)))
}
});
a.placeholder = d(f.placeholder.element.call(a.element, a.currentItem));
a.currentItem.after(a.placeholder);
f.placeholder.update(a, a.placeholder)
},
_contactContainers: function(a) {
var c, f, k, n, e, t, h, m, w = n = null;
for (c = this.containers.length - 1; 0 <= c; c--) d.contains(this.currentItem[0], this.containers[c].element[0]) || (this._intersectsWith(this.containers[c].containerCache) ? n && d.contains(this.containers[c].element[0], n.element[0]) || (n = this.containers[c], w = c) : this.containers[c].containerCache.over && (this.containers[c]._trigger("out", a, this._uiHash(this)), this.containers[c].containerCache.over = 0));
if (n)
if (1 === this.containers.length) this.containers[w].containerCache.over || (this.containers[w]._trigger("over", a, this._uiHash(this)), this.containers[w].containerCache.over = 1);
else {
c = 1e4;
k = null;
n = (f = n.floating || this._isFloating(this.currentItem)) ? "left" : "top";
e = f ? "width" : "height";
m = f ? "clientX" : "clientY";
for (f = this.items.length - 1; 0 <= f; f--) d.contains(this.containers[w].element[0], this.items[f].item[0]) && this.items[f].item[0] !== this.currentItem[0] && (t = this.items[f].item.offset()[n], h = !1, a[m] - t > this.items[f][e] / 2 && (h = !0), c > Math.abs(a[m] - t) && (c = Math.abs(a[m] - t), k = this.items[f], this.direction = h ? "up" : "down"));
if (k || this.options.dropOnEmpty) {
if (this.currentContainer === this.containers[w]) return this.currentContainer.containerCache.over || (this.containers[w]._trigger("over", a, this._uiHash()), this.currentContainer.containerCache.over = 1), void 0;
k ? this._rearrange(a, k, null, !0) : this._rearrange(a, null, this.containers[w].element, !0);
this._trigger("change", a, this._uiHash());
this.containers[w]._trigger("change", a, this._uiHash(this));
this.currentContainer = this.containers[w];
this.options.placeholder.update(this.currentContainer, this.placeholder);
this.containers[w]._trigger("over", a, this._uiHash(this));
this.containers[w].containerCache.over = 1
}
}
},
_createHelper: function(a) {
var c = this.options;
a = d.isFunction(c.helper) ? d(c.helper.apply(this.element[0], [a, this.currentItem])) : "clone" === c.helper ? this.currentItem.clone() : this.currentItem;
return a.parents("body").length || d("parent" !== c.appendTo ? c.appendTo : this.currentItem[0].parentNode)[0].appendChild(a[0]), a[0] === this.currentItem[0] && (this._storedCSS = {
width: this.currentItem[0].style.width,
height: this.currentItem[0].style.height,
position: this.currentItem.css("position"),
top: this.currentItem.css("top"),
left: this.currentItem.css("left")
}), (!a[0].style.width || c.forceHelperSize) && a.width(this.currentItem.width()), (!a[0].style.height || c.forceHelperSize) && a.height(this.currentItem.height()), a
},
_adjustOffsetFromHelper: function(a) {
"string" == typeof a && (a = a.split(" "));
d.isArray(a) && (a = {
left: +a[0],
top: +a[1] || 0
});
"left" in a && (this.offset.click.left = a.left + this.margins.left);
"right" in a && (this.offset.click.left = this.helperProportions.width - a.right + this.margins.left);
"top" in a && (this.offset.click.top = a.top + this.margins.top);
"bottom" in a && (this.offset.click.top = this.helperProportions.height - a.bottom + this.margins.top)
},
_getParentOffset: function() {
this.offsetParent = this.helper.offsetParent();
var a = this.offsetParent.offset();
return "absolute" === this.cssPosition && this.scrollParent[0] !== document && d.contains(this.scrollParent[0], this.offsetParent[0]) && (a.left += this.scrollParent.scrollLeft(), a.top += this.scrollParent.scrollTop()), (this.offsetParent[0] === document.body || this.offsetParent[0].tagName && "html" === this.offsetParent[0].tagName.toLowerCase() && d.ui.ie) && (a = {
top: 0,
left: 0
}), {
top: a.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
left: a.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
}
},
_getRelativeOffset: function() {
if ("relative" === this.cssPosition) {
var a = this.currentItem.position();
return {
top: a.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(),
left: a.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
}
}
return {
top: 0,
left: 0
}
},
_cacheMargins: function() {
this.margins = {
left: parseInt(this.currentItem.css("marginLeft"), 10) || 0,
top: parseInt(this.currentItem.css("marginTop"), 10) || 0
}
},
_cacheHelperProportions: function() {
this.helperProportions = {
width: this.helper.outerWidth(),
height: this.helper.outerHeight()
}
},
_setContainment: function() {
var a, c, f, k = this.options;
"parent" === k.containment && (k.containment = this.helper[0].parentNode);
"document" !== k.containment && "window" !== k.containment || (this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, d("document" === k.containment ? document : window).width() - this.helperProportions.width - this.margins.left, (d("document" === k.containment ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]);
/^(document|window|parent)$/.test(k.containment) || (a = d(k.containment)[0], c = d(k.containment).offset(), f = "hidden" !== d(a).css("overflow"), this.containment = [c.left + (parseInt(d(a).css("borderLeftWidth"), 10) || 0) + (parseInt(d(a).css("paddingLeft"), 10) || 0) - this.margins.left, c.top + (parseInt(d(a).css("borderTopWidth"), 10) || 0) + (parseInt(d(a).css("paddingTop"), 10) || 0) - this.margins.top, c.left + (f ? Math.max(a.scrollWidth, a.offsetWidth) : a.offsetWidth) - (parseInt(d(a).css("borderLeftWidth"), 10) || 0) - (parseInt(d(a).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, c.top + (f ? Math.max(a.scrollHeight, a.offsetHeight) : a.offsetHeight) - (parseInt(d(a).css("borderTopWidth"), 10) || 0) - (parseInt(d(a).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top])
},
_convertPositionTo: function(a, c) {
c || (c = this.position);
var f = "absolute" === a ? 1 : -1,
k = "absolute" !== this.cssPosition || this.scrollParent[0] !== document && d.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent,
n = /(html|body)/i.test(k[0].tagName);
return {
top: c.top + this.offset.relative.top * f + this.offset.parent.top * f - ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : n ? 0 : k.scrollTop()) * f,
left: c.left + this.offset.relative.left * f + this.offset.parent.left * f - ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : n ? 0 : k.scrollLeft()) * f
}
},
_generatePosition: function(a) {
var c, f, k = this.options,
n = a.pageX,
e = a.pageY,
t = "absolute" !== this.cssPosition || this.scrollParent[0] !== document && d.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent,
h = /(html|body)/i.test(t[0].tagName);
return "relative" !== this.cssPosition || this.scrollParent[0] !== document && this.scrollParent[0] !== this.offsetParent[0] || (this.offset.relative = this._getRelativeOffset()), this.originalPosition && (this.containment && (a.pageX - this.offset.click.left < this.containment[0] && (n = this.containment[0] + this.offset.click.left), a.pageY - this.offset.click.top < this.containment[1] && (e = this.containment[1] + this.offset.click.top), a.pageX - this.offset.click.left > this.containment[2] && (n = this.containment[2] + this.offset.click.left), a.pageY - this.offset.click.top > this.containment[3] && (e = this.containment[3] + this.offset.click.top)), k.grid && (c = this.originalPageY + Math.round((e - this.originalPageY) / k.grid[1]) * k.grid[1], e = this.containment ? c - this.offset.click.top >= this.containment[1] && c - this.offset.click.top <= this.containment[3] ? c : c - this.offset.click.top >= this.containment[1] ? c - k.grid[1] : c + k.grid[1] : c, f = this.originalPageX + Math.round((n - this.originalPageX) / k.grid[0]) * k.grid[0], n = this.containment ? f - this.offset.click.left >= this.containment[0] && f - this.offset.click.left <= this.containment[2] ? f : f - this.offset.click.left >= this.containment[0] ? f - k.grid[0] : f + k.grid[0] : f)), {
top: e - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + ("fixed" === this.cssPosition ? -this.scrollParent.scrollTop() : h ? 0 : t.scrollTop()),
left: n - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + ("fixed" === this.cssPosition ? -this.scrollParent.scrollLeft() : h ? 0 : t.scrollLeft())
}
},
_rearrange: function(a, d, c, f) {
c ? c[0].appendChild(this.placeholder[0]) : d.item[0].parentNode.insertBefore(this.placeholder[0], "down" === this.direction ? d.item[0] : d.item[0].nextSibling);
var k = this.counter = this.counter ? ++this.counter : 1;
this._delay(function() {
k === this.counter && this.refreshPositions(!f)
})
},
_clear: function(a, d) {
function c(a, d, c) {
return function(f) {
c._trigger(a, f, d._uiHash(d))
}
}
this.reverting = !1;
var f, k = [];
if (!this._noFinalSort && this.currentItem.parent().length && this.placeholder.before(this.currentItem), this._noFinalSort = null, this.helper[0] === this.currentItem[0]) {
for (f in this._storedCSS) "auto" !== this._storedCSS[f] && "static" !== this._storedCSS[f] || (this._storedCSS[f] = "");
this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")
} else this.currentItem.show();
this.fromOutside && !d && k.push(function(a) {
this._trigger("receive", a, this._uiHash(this.fromOutside))
});
!this.fromOutside && this.domPosition.prev === this.currentItem.prev().not(".ui-sortable-helper")[0] && this.domPosition.parent === this.currentItem.parent()[0] || d || k.push(function(a) {
this._trigger("update", a, this._uiHash())
});
this !== this.currentContainer && (d || (k.push(function(a) {
this._trigger("remove", a, this._uiHash())
}), k.push(function(a) {
return function(d) {
a._trigger("receive", d, this._uiHash(this))
}
}.call(this, this.currentContainer)), k.push(function(a) {
return function(d) {
a._trigger("update", d, this._uiHash(this))
}
}.call(this, this.currentContainer))));
for (f = this.containers.length - 1; 0 <= f; f--) d || k.push(c("deactivate", this, this.containers[f])), this.containers[f].containerCache.over && (k.push(c("out", this, this.containers[f])), this.containers[f].containerCache.over = 0);
if (this.storedCursor && (this.document.find("body").css("cursor", this.storedCursor), this.storedStylesheet.remove()), this._storedOpacity && this.helper.css("opacity", this._storedOpacity), this._storedZIndex && this.helper.css("zIndex", "auto" === this._storedZIndex ? "" : this._storedZIndex), this.dragging = !1, d || this._trigger("beforeStop", a, this._uiHash()), this.placeholder[0].parentNode.removeChild(this.placeholder[0]), this.cancelHelperRemoval || (this.helper[0] !== this.currentItem[0] && this.helper.remove(), this.helper = null), !d) {
for (f = 0; k.length > f; f++) k[f].call(this, a);
this._trigger("stop", a, this._uiHash())
}
return this.fromOutside = !1, !this.cancelHelperRemoval
},
_trigger: function() {
!1 === d.Widget.prototype._trigger.apply(this, arguments) && this.cancel()
},
_uiHash: function(a) {
var c = a || this;
return {
helper: c.helper,
placeholder: c.placeholder || d([]),
position: c.position,
originalPosition: c.originalPosition,
offset: c.positionAbs,
item: c.currentItem,
sender: a ? a.element : null
}
}
});
d.widget("ui.spinner", {
version: "1.11.2",
defaultElement: "<input>",
widgetEventPrefix: "spin",
options: {
culture: null,
icons: {
down: "ui-icon-triangle-1-s",
up: "ui-icon-triangle-1-n"
},
incremental: !0,
max: null,
min: null,
numberFormat: null,
page: 10,
step: 1,
change: null,
spin: null,
start: null,
stop: null
},
_create: function() {
this._setOption("max", this.options.max);
this._setOption("min", this.options.min);
this._setOption("step", this.options.step);
"" !== this.value() && this._value(this.element.val(), !0);
this._draw();
this._on(this._events);
this._refresh();
this._on(this.window, {
beforeunload: function() {
this.element.removeAttr("autocomplete")
}
})
},
_getCreateOptions: function() {
var a = {},
c = this.element;
return d.each(["min", "max", "step"], function(d, f) {
var k = c.attr(f);
void 0 !== k && k.length && (a[f] = k)
}), a
},
_events: {
keydown: function(a) {
this._start(a) && this._keydown(a) && a.preventDefault()
},
keyup: "_stop",
focus: function() {
this.previous = this.element.val()
},
blur: function(a) {
return this.cancelBlur ? (delete this.cancelBlur, void 0) : (this._stop(), this._refresh(), this.previous !== this.element.val() && this._trigger("change", a), void 0)
},
mousewheel: function(a, d) {
if (d) {
if (!this.spinning && !this._start(a)) return !1;
this._spin((0 < d ? 1 : -1) * this.options.step, a);
clearTimeout(this.mousewheelTimer);
this.mousewheelTimer = this._delay(function() {
this.spinning && this._stop(a)
}, 100);
a.preventDefault()
}
},
"mousedown .ui-spinner-button": function(a) {
function c() {
this.element[0] === this.document[0].activeElement || (this.element.focus(), this.previous = f, this._delay(function() {
this.previous = f
}))
}
var f;
f = this.element[0] === this.document[0].activeElement ? this.previous : this.element.val();
a.preventDefault();
c.call(this);
this.cancelBlur = !0;
this._delay(function() {
delete this.cancelBlur;
c.call(this)
});
!1 !== this._start(a) && this._repeat(null, d(a.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, a)
},
"mouseup .ui-spinner-button": "_stop",
"mouseenter .ui-spinner-button": function(a) {
return d(a.currentTarget).hasClass("ui-state-active") ? !1 === this._start(a) ? !1 : (this._repeat(null, d(a.currentTarget).hasClass("ui-spinner-up") ? 1 : -1, a), void 0) : void 0
},
"mouseleave .ui-spinner-button": "_stop"
},
_draw: function() {
var a = this.uiSpinner = this.element.addClass("ui-spinner-input").attr("autocomplete", "off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());
this.element.attr("role", "spinbutton");
this.buttons = a.find(".ui-spinner-button").attr("tabIndex", -1).button().removeClass("ui-corner-all");
this.buttons.height() > Math.ceil(.5 * a.height()) && 0 < a.height() && a.height(a.height());
this.options.disabled && this.disable()
},
_keydown: function(a) {
var c = this.options,
f = d.ui.keyCode;
switch (a.keyCode) {
case f.UP:
return this._repeat(null, 1, a), !0;
case f.DOWN:
return this._repeat(null, -1, a), !0;
case f.PAGE_UP:
return this._repeat(null, c.page, a), !0;
case f.PAGE_DOWN:
return this._repeat(null, -c.page, a), !0
}
return !1
},
_uiSpinnerHtml: function() {
return "<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"
},
_buttonHtml: function() {
return "<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon " + this.options.icons.up + "'>&#9650;</span></a><a class='ui-spinner-button ui-spinner-down ui-corner-br'><span class='ui-icon " + this.options.icons.down + "'>&#9660;</span></a>"
},
_start: function(a) {
return this.spinning || !1 !== this._trigger("start", a) ? (this.counter || (this.counter = 1), this.spinning = !0, !0) : !1
},
_repeat: function(a, d, c) {
a = a || 500;
clearTimeout(this.timer);
this.timer = this._delay(function() {
this._repeat(40, d, c)
}, a);
this._spin(d * this.options.step, c)
},
_spin: function(a, d) {
var c = this.value() || 0;
this.counter || (this.counter = 1);
c = this._adjustValue(c + a * this._increment(this.counter));
this.spinning && !1 === this._trigger("spin", d, {
value: c
}) || (this._value(c), this.counter++)
},
_increment: function(a) {
var c = this.options.incremental;
return c ? d.isFunction(c) ? c(a) : Math.floor(a * a * a / 5e4 - a * a / 500 + 17 * a / 200 + 1) : 1
},
_precision: function() {
var a = this._precisionOf(this.options.step);
return null !== this.options.min && (a = Math.max(a, this._precisionOf(this.options.min))), a
},
_precisionOf: function(a) {
a = "" + a;
var d = a.indexOf(".");
return -1 === d ? 0 : a.length - d - 1
},
_adjustValue: function(a) {
var d, c, f = this.options;
return d = null !== f.min ? f.min : 0, c = a - d, c = Math.round(c / f.step) * f.step, a = d + c, a = parseFloat(a.toFixed(this._precision())), null !== f.max && a > f.max ? f.max : null !== f.min && f.min > a ? f.min : a
},
_stop: function(a) {
this.spinning && (clearTimeout(this.timer), clearTimeout(this.mousewheelTimer), this.counter = 0, this.spinning = !1, this._trigger("stop", a))
},
_setOption: function(a, d) {
if ("culture" === a || "numberFormat" === a) {
var c = this._parse(this.element.val());
return this.options[a] = d, this.element.val(this._format(c)), void 0
}
"max" !== a && "min" !== a && "step" !== a || "string" != typeof d || (d = this._parse(d));
"icons" === a && (this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(d.up), this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(d.down));
this._super(a, d);
"disabled" === a && (this.widget().toggleClass("ui-state-disabled", !!d), this.element.prop("disabled", !!d), this.buttons.button(d ? "disable" : "enable"))
},
_setOptions: f(function(a) {
this._super(a)
}),
_parse: function(a) {
return "string" == typeof a && "" !== a && (a = window.Globalize && this.options.numberFormat ? Globalize.parseFloat(a, 10, this.options.culture) : +a), "" === a || isNaN(a) ? null : a
},
_format: function(a) {
return "" === a ? "" : window.Globalize && this.options.numberFormat ? Globalize.format(a, this.options.numberFormat, this.options.culture) : a
},
_refresh: function() {
this.element.attr({
"aria-valuemin": this.options.min,
"aria-valuemax": this.options.max,
"aria-valuenow": this._parse(this.element.val())
})
},
isValid: function() {
var a = this.value();
return null === a ? !1 : a === this._adjustValue(a)
},
_value: function(a, d) {
var c;
"" !== a && (c = this._parse(a), null !== c && (d || (c = this._adjustValue(c)), a = this._format(c)));
this.element.val(a);
this._refresh()
},
_destroy: function() {
this.element.removeClass("ui-spinner-input").prop("disabled", !1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
this.uiSpinner.replaceWith(this.element)
},
stepUp: f(function(a) {
this._stepUp(a)
}),
_stepUp: function(a) {
this._start() && (this._spin((a || 1) * this.options.step), this._stop())
},
stepDown: f(function(a) {
this._stepDown(a)
}),
_stepDown: function(a) {
this._start() && (this._spin((a || 1) * -this.options.step), this._stop())
},
pageUp: f(function(a) {
this._stepUp((a || 1) * this.options.page)
}),
pageDown: f(function(a) {
this._stepDown((a || 1) * this.options.page)
}),
value: function(a) {
return arguments.length ? (f(this._value).call(this, a), void 0) : this._parse(this.element.val())
},
widget: function() {
return this.uiSpinner
}
});
d.widget("ui.tabs", {
version: "1.11.2",
delay: 300,
options: {
active: null,
collapsible: !1,
event: "click",
heightStyle: "content",
hide: null,
show: null,
activate: null,
beforeActivate: null,
beforeLoad: null,
load: null
},
_isLocal: function() {
var a = /#.*$/;
return function(d) {
var c, f;
d = d.cloneNode(!1);
c = d.href.replace(a, "");
f = location.href.replace(a, "");
try {
c = decodeURIComponent(c)
} catch (F) {}
try {
f = decodeURIComponent(f)
} catch (F) {}
return 1 < d.hash.length && c === f
}
}(),
_create: function() {
var a = this,
c = this.options;
this.running = !1;
this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible", c.collapsible);
this._processTabs();
c.active = this._initialActive();
d.isArray(c.disabled) && (c.disabled = d.unique(c.disabled.concat(d.map(this.tabs.filter(".ui-state-disabled"), function(d) {
return a.tabs.index(d)
}))).sort());
this.active = !1 !== this.options.active && this.anchors.length ? this._findActive(c.active) : d();
this._refresh();
this.active.length && this.load(c.active)
},
_initialActive: function() {
var a = this.options.active,
c = this.options.collapsible,
f = location.hash.substring(1);
return null === a && (f && this.tabs.each(function(c, k) {
return d(k).attr("aria-controls") === f ? (a = c, !1) : void 0
}), null === a && (a = this.tabs.index(this.tabs.filter(".ui-tabs-active"))), (null === a || -1 === a) && (a = this.tabs.length ? 0 : !1)), !1 !== a && (a = this.tabs.index(this.tabs.eq(a)), -1 === a && (a = c ? !1 : 0)), !c && !1 === a && this.anchors.length && (a = 0), a
},
_getCreateEventData: function() {
return {
tab: this.active,
panel: this.active.length ? this._getPanelForTab(this.active) : d()
}
},
_tabKeydown: function(a) {
var c = d(this.document[0].activeElement).closest("li"),
f = this.tabs.index(c),
k = !0;
if (!this._handlePageNav(a)) {
switch (a.keyCode) {
case d.ui.keyCode.RIGHT:
case d.ui.keyCode.DOWN:
f++;
break;
case d.ui.keyCode.UP:
case d.ui.keyCode.LEFT:
k = !1;
f--;
break;
case d.ui.keyCode.END:
f = this.anchors.length - 1;
break;
case d.ui.keyCode.HOME:
f = 0;
break;
case d.ui.keyCode.SPACE:
return a.preventDefault(), clearTimeout(this.activating), this._activate(f), void 0;
case d.ui.keyCode.ENTER:
return a.preventDefault(), clearTimeout(this.activating), this._activate(f === this.options.active ? !1 : f), void 0;
default:
return
}
a.preventDefault();
clearTimeout(this.activating);
f = this._focusNextTab(f, k);
a.ctrlKey || (c.attr("aria-selected", "false"), this.tabs.eq(f).attr("aria-selected", "true"), this.activating = this._delay(function() {
this.option("active", f)
}, this.delay))
}
},
_panelKeydown: function(a) {
this._handlePageNav(a) || a.ctrlKey && a.keyCode === d.ui.keyCode.UP && (a.preventDefault(), this.active.focus())
},
_handlePageNav: function(a) {
return a.altKey && a.keyCode === d.ui.keyCode.PAGE_UP ? (this._activate(this._focusNextTab(this.options.active - 1, !1)), !0) : a.altKey && a.keyCode === d.ui.keyCode.PAGE_DOWN ? (this._activate(this._focusNextTab(this.options.active + 1, !0)), !0) : void 0
},
_findNextTab: function(a, c) {
for (var f = this.tabs.length - 1; - 1 !== d.inArray((a > f && (a = 0), 0 > a && (a = f), a), this.options.disabled);) a = c ? a + 1 : a - 1;
return a
},
_focusNextTab: function(a, d) {
return a = this._findNextTab(a, d), this.tabs.eq(a).focus(), a
},
_setOption: function(a, d) {
return "active" === a ? (this._activate(d), void 0) : "disabled" === a ? (this._setupDisabled(d), void 0) : (this._super(a, d), "collapsible" === a && (this.element.toggleClass("ui-tabs-collapsible", d), d || !1 !== this.options.active || this._activate(0)), "event" === a && this._setupEvents(d), "heightStyle" === a && this._setupHeightStyle(d), void 0)
},
_sanitizeSelector: function(a) {
return a ? a.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&") : ""
},
refresh: function() {
var a = this.options,
c = this.tablist.children(":has(a[href])");
a.disabled = d.map(c.filter(".ui-state-disabled"), function(a) {
return c.index(a)
});
this._processTabs();
!1 !== a.active && this.anchors.length ? this.active.length && !d.contains(this.tablist[0], this.active[0]) ? this.tabs.length === a.disabled.length ? (a.active = !1, this.active = d()) : this._activate(this._findNextTab(Math.max(0, a.active - 1), !1)) : a.active = this.tabs.index(this.active) : (a.active = !1, this.active = d());
this._refresh()
},
_refresh: function() {
this._setupDisabled(this.options.disabled);
this._setupEvents(this.options.event);
this._setupHeightStyle(this.options.heightStyle);
this.tabs.not(this.active).attr({
"aria-selected": "false",
"aria-expanded": "false",
tabIndex: -1
});
this.panels.not(this._getPanelForTab(this.active)).hide().attr({
"aria-hidden": "true"
});
this.active.length ? (this.active.addClass("ui-tabs-active ui-state-active").attr({
"aria-selected": "true",
"aria-expanded": "true",
tabIndex: 0
}), this._getPanelForTab(this.active).show().attr({
"aria-hidden": "false"
})) : this.tabs.eq(0).attr("tabIndex", 0)
},
_processTabs: function() {
var a = this,
c = this.tabs,
f = this.anchors,
k = this.panels;
this.tablist = this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role", "tablist").delegate("> li", "mousedown" + this.eventNamespace, function(a) {
d(this).is(".ui-state-disabled") && a.preventDefault()
}).delegate(".ui-tabs-anchor", "focus" + this.eventNamespace, function() {
d(this).closest("li").is(".ui-state-disabled") && this.blur()
});
this.tabs = this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({
role: "tab",
tabIndex: -1
});
this.anchors = this.tabs.map(function() {
return d("a", this)[0]
}).addClass("ui-tabs-anchor").attr({
role: "presentation",
tabIndex: -1
});
this.panels = d();
this.anchors.each(function(c, f) {
var k, n, e, t = d(f).uniqueId().attr("id"),
h = d(f).closest("li"),
m = h.attr("aria-controls");
a._isLocal(f) ? (k = f.hash, e = k.substring(1), n = a.element.find(a._sanitizeSelector(k))) : (e = h.attr("aria-controls") || d({}).uniqueId()[0].id, k = "#" + e, n = a.element.find(k), n.length || (n = a._createPanel(e), n.insertAfter(a.panels[c - 1] || a.tablist)), n.attr("aria-live", "polite"));
n.length && (a.panels = a.panels.add(n));
m && h.data("ui-tabs-aria-controls", m);
h.attr({
"aria-controls": e,
"aria-labelledby": t
});
n.attr("aria-labelledby", t)
});
this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role", "tabpanel");
c && (this._off(c.not(this.tabs)), this._off(f.not(this.anchors)), this._off(k.not(this.panels)))
},
_getList: function() {
return this.tablist || this.element.find("ol,ul").eq(0)
},
_createPanel: function(a) {
return d("<div>").attr("id", a).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy", !0)
},
_setupDisabled: function(a) {
d.isArray(a) && (a.length ? a.length === this.anchors.length && (a = !0) : a = !1);
for (var c, f = 0; c = this.tabs[f]; f++) !0 === a || -1 !== d.inArray(f, a) ? d(c).addClass("ui-state-disabled").attr("aria-disabled", "true") : d(c).removeClass("ui-state-disabled").removeAttr("aria-disabled");
this.options.disabled = a
},
_setupEvents: function(a) {
var c = {};
a && d.each(a.split(" "), function(a, d) {
c[d] = "_eventHandler"
});
this._off(this.anchors.add(this.tabs).add(this.panels));
this._on(!0, this.anchors, {
click: function(a) {
a.preventDefault()
}
});
this._on(this.anchors, c);
this._on(this.tabs, {
keydown: "_tabKeydown"
});
this._on(this.panels, {
keydown: "_panelKeydown"
});
this._focusable(this.tabs);
this._hoverable(this.tabs)
},
_setupHeightStyle: function(a) {
var c, f = this.element.parent();
"fill" === a ? (c = f.height(), c -= this.element.outerHeight() - this.element.height(), this.element.siblings(":visible").each(function() {
var a = d(this),
f = a.css("position");
"absolute" !== f && "fixed" !== f && (c -= a.outerHeight(!0))
}), this.element.children().not(this.panels).each(function() {
c -= d(this).outerHeight(!0)
}), this.panels.each(function() {
d(this).height(Math.max(0, c - d(this).innerHeight() + d(this).height()))
}).css("overflow", "auto")) : "auto" === a && (c = 0, this.panels.each(function() {
c = Math.max(c, d(this).height("").height())
}).height(c))
},
_eventHandler: function(a) {
var c = this.options,
f = this.active,
k = d(a.currentTarget).closest("li"),
n = k[0] === f[0],
e = n && c.collapsible,
t = e ? d() : this._getPanelForTab(k),
h = f.length ? this._getPanelForTab(f) : d(),
f = {
oldTab: f,
oldPanel: h,
newTab: e ? d() : k,
newPanel: t
};
a.preventDefault();
k.hasClass("ui-state-disabled") || k.hasClass("ui-tabs-loading") || this.running || n && !c.collapsible || !1 === this._trigger("beforeActivate", a, f) || (c.active = e ? !1 : this.tabs.index(k), this.active = n ? d() : k, this.xhr && this.xhr.abort(), h.length || t.length || d.error("jQuery UI Tabs: Mismatching fragment identifier."), t.length && this.load(this.tabs.index(k), a), this._toggle(a, f))
},
_toggle: function(a, c) {
function f() {
n.running = !1;
n._trigger("activate", a, c)
}
function k() {
c.newTab.closest("li").addClass("ui-tabs-active ui-state-active");
e.length && n.options.show ? n._show(e, n.options.show, f) : (e.show(), f())
}
var n = this,
e = c.newPanel,
t = c.oldPanel;
this.running = !0;
t.length && this.options.hide ? this._hide(t, this.options.hide, function() {
c.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");
k()
}) : (c.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"), t.hide(), k());
t.attr("aria-hidden", "true");
c.oldTab.attr({
"aria-selected": "false",
"aria-expanded": "false"
});
e.length && t.length ? c.oldTab.attr("tabIndex", -1) : e.length && this.tabs.filter(function() {
return 0 === d(this).attr("tabIndex")
}).attr("tabIndex", -1);
e.attr("aria-hidden", "false");
c.newTab.attr({
"aria-selected": "true",
"aria-expanded": "true",
tabIndex: 0
})
},
_activate: function(a) {
var c;
a = this._findActive(a);
a[0] !== this.active[0] && (a.length || (a = this.active), c = a.find(".ui-tabs-anchor")[0], this._eventHandler({
target: c,
currentTarget: c,
preventDefault: d.noop
}))
},
_findActive: function(a) {
return !1 === a ? d() : this.tabs.eq(a)
},
_getIndex: function(a) {
return "string" == typeof a && (a = this.anchors.index(this.anchors.filter("[href$='" + a + "']"))), a
},
_destroy: function() {
this.xhr && this.xhr.abort();
this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible");
this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role");
this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId();
this.tablist.unbind(this.eventNamespace);
this.tabs.add(this.panels).each(function() {
d.data(this, "ui-tabs-destroy") ? d(this).remove() : d(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")
});
this.tabs.each(function() {
var a = d(this),
c = a.data("ui-tabs-aria-controls");
c ? a.attr("aria-controls", c).removeData("ui-tabs-aria-controls") : a.removeAttr("aria-controls")
});
this.panels.show();
"content" !== this.options.heightStyle && this.panels.css("height", "")
},
enable: function(a) {
var c = this.options.disabled;
!1 !== c && (void 0 === a ? c = !1 : (a = this._getIndex(a), c = d.isArray(c) ? d.map(c, function(d) {
return d !== a ? d : null
}) : d.map(this.tabs, function(d, c) {
return c !== a ? c : null
})), this._setupDisabled(c))
},
disable: function(a) {
var c = this.options.disabled;
if (!0 !== c) {
if (void 0 === a) c = !0;
else {
if (a = this._getIndex(a), -1 !== d.inArray(a, c)) return;
c = d.isArray(c) ? d.merge([a], c).sort() : [a]
}
this._setupDisabled(c)
}
},
load: function(a, c) {
a = this._getIndex(a);
var f = this,
k = this.tabs.eq(a),
n = k.find(".ui-tabs-anchor"),
e = this._getPanelForTab(k),
t = {
tab: k,
panel: e
};
this._isLocal(n[0]) || (this.xhr = d.ajax(this._ajaxSettings(n, c, t)), this.xhr && "canceled" !== this.xhr.statusText && (k.addClass("ui-tabs-loading"), e.attr("aria-busy", "true"), this.xhr.success(function(a) {
setTimeout(function() {
e.html(a);
f._trigger("load", c, t)
}, 1)
}).complete(function(a, d) {
setTimeout(function() {
"abort" === d && f.panels.stop(!1, !0);
k.removeClass("ui-tabs-loading");
e.removeAttr("aria-busy");
a === f.xhr && delete f.xhr
}, 1)
})))
},
_ajaxSettings: function(a, c, f) {
var k = this;
return {
url: a.attr("href"),
beforeSend: function(a, n) {
return k._trigger("beforeLoad", c, d.extend({
jqXHR: a,
ajaxSettings: n
}, f))
}
}
},
_getPanelForTab: function(a) {
a = d(a).attr("aria-controls");
return this.element.find(this._sanitizeSelector("#" + a))
}
});
d.widget("ui.tooltip", {
version: "1.11.2",
options: {
content: function() {
var a = d(this).attr("title") || "";
return d("<a>").text(a).html()
},
hide: !0,
items: "[title]:not([disabled])",
position: {
my: "left top+15",
at: "left bottom",
collision: "flipfit flip"
},
show: !0,
tooltipClass: null,
track: !1,
close: null,
open: null
},
_addDescribedBy: function(a, c) {
var f = (a.attr("aria-describedby") || "").split(/\s+/);
f.push(c);
a.data("ui-tooltip-id", c).attr("aria-describedby", d.trim(f.join(" ")))
},
_removeDescribedBy: function(a) {
var c = a.data("ui-tooltip-id"),
f = (a.attr("aria-describedby") || "").split(/\s+/),
c = d.inArray(c, f); - 1 !== c && f.splice(c, 1);
a.removeData("ui-tooltip-id");
(f = d.trim(f.join(" "))) ? a.attr("aria-describedby", f): a.removeAttr("aria-describedby")
},
_create: function() {
this._on({
mouseover: "open",
focusin: "open"
});
this.tooltips = {};
this.parents = {};
this.options.disabled && this._disable();
this.liveRegion = d("<div>").attr({
role: "log",
"aria-live": "assertive",
"aria-relevant": "additions"
}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body)
},
_setOption: function(a, c) {
var f = this;
return "disabled" === a ? (this[c ? "_disable" : "_enable"](), this.options[a] = c, void 0) : (this._super(a, c), "content" === a && d.each(this.tooltips, function(a, d) {
f._updateContent(d.element)
}), void 0)
},
_disable: function() {
var a = this;
d.each(this.tooltips, function(c, f) {
var k = d.Event("blur");
k.target = k.currentTarget = f.element[0];
a.close(k, !0)
});
this.element.find(this.options.items).addBack().each(function() {
var a = d(this);
a.is("[title]") && a.data("ui-tooltip-title", a.attr("title")).removeAttr("title")
})
},
_enable: function() {
this.element.find(this.options.items).addBack().each(function() {
var a = d(this);
a.data("ui-tooltip-title") && a.attr("title", a.data("ui-tooltip-title"))
})
},
open: function(a) {
var c = this,
f = d(a ? a.target : this.element).closest(this.options.items);
f.length && !f.data("ui-tooltip-id") && (f.attr("title") && f.data("ui-tooltip-title", f.attr("title")), f.data("ui-tooltip-open", !0), a && "mouseover" === a.type && f.parents().each(function() {
var a, f = d(this);
f.data("ui-tooltip-open") && (a = d.Event("blur"), a.target = a.currentTarget = this, c.close(a, !0));
f.attr("title") && (f.uniqueId(), c.parents[this.id] = {
element: this,
title: f.attr("title")
}, f.attr("title", ""))
}), this._updateContent(f, a))
},
_updateContent: function(a, d) {
var c, f = this.options.content,
k = this,
n = d ? d.type : null;
return "string" == typeof f ? this._open(d, a, f) : (c = f.call(a[0], function(c) {
a.data("ui-tooltip-open") && k._delay(function() {
d && (d.type = n);
this._open(d, a, c)
})
}), c && this._open(d, a, c), void 0)
},
_open: function(a, c, f) {
function k(a) {
m.of = a;
e.is(":hidden") || e.position(m)
}
var n, e, t, h, m = d.extend({}, this.options.position);
if (f) {
if (n = this._find(c)) return n.tooltip.find(".ui-tooltip-content").html(f), void 0;
c.is("[title]") && (a && "mouseover" === a.type ? c.attr("title", "") : c.removeAttr("title"));
n = this._tooltip(c);
e = n.tooltip;
this._addDescribedBy(c, e.attr("id"));
e.find(".ui-tooltip-content").html(f);
this.liveRegion.children().hide();
f.clone ? (h = f.clone(), h.removeAttr("id").find("[id]").removeAttr("id")) : h = f;
d("<div>").html(h).appendTo(this.liveRegion);
this.options.track && a && /^mouse/.test(a.type) ? (this._on(this.document, {
mousemove: k
}), k(a)) : e.position(d.extend({
of: c
}, this.options.position));
e.hide();
this._show(e, this.options.show);
this.options.show && this.options.show.delay && (t = this.delayedShow = setInterval(function() {
e.is(":visible") && (k(m.of), clearInterval(t))
}, d.fx.interval));
this._trigger("open", a, {
tooltip: e
});
f = {
keyup: function(a) {
a.keyCode === d.ui.keyCode.ESCAPE && (a = d.Event(a), a.currentTarget = c[0], this.close(a, !0))
}
};
c[0] !== this.element[0] && (f.remove = function() {
this._removeTooltip(e)
});
a && "mouseover" !== a.type || (f.mouseleave = "close");
a && "focusin" !== a.type || (f.focusout = "close");
this._on(!0, c, f)
}
},
close: function(a) {
var c, f = this,
k = d(a ? a.currentTarget : this.element),
n = this._find(k);
n && (c = n.tooltip, n.closing || (clearInterval(this.delayedShow), k.data("ui-tooltip-title") && !k.attr("title") && k.attr("title", k.data("ui-tooltip-title")), this._removeDescribedBy(k), n.hiding = !0, c.stop(!0), this._hide(c, this.options.hide, function() {
f._removeTooltip(d(this))
}), k.removeData("ui-tooltip-open"), this._off(k, "mouseleave focusout keyup"), k[0] !== this.element[0] && this._off(k, "remove"), this._off(this.document, "mousemove"), a && "mouseleave" === a.type && d.each(this.parents, function(a, c) {
d(c.element).attr("title", c.title);
delete f.parents[a]
}), n.closing = !0, this._trigger("close", a, {
tooltip: c
}), n.hiding || (n.closing = !1)))
},
_tooltip: function(a) {
var c = d("<div>").attr("role", "tooltip").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content " + (this.options.tooltipClass || "")),
f = c.uniqueId().attr("id");
return d("<div>").addClass("ui-tooltip-content").appendTo(c), c.appendTo(this.document[0].body), this.tooltips[f] = {
element: a,
tooltip: c
}
},
_find: function(a) {
return (a = a.data("ui-tooltip-id")) ? this.tooltips[a] : null
},
_removeTooltip: function(a) {
a.remove();
delete this.tooltips[a.attr("id")]
},
_destroy: function() {
var a = this;
d.each(this.tooltips, function(c, f) {
var k = d.Event("blur"),
n = f.element;
k.target = k.currentTarget = n[0];
a.close(k, !0);
d("#" + c).remove();
n.data("ui-tooltip-title") && (n.attr("title") || n.attr("title", n.data("ui-tooltip-title")), n.removeData("ui-tooltip-title"))
});
this.liveRegion.remove()
}
})
});
function tweenDelete(d, c, e) {
setTimeout(function() {
var c = game.add.tween(d).to({
alpha: 0
}, e);
void 0 != d.shadow && game.add.tween(d.shadow).to({
alpha: 0
}, e).start();
setTimeout(function() {
d.kill();
d.readyForRecycle = !0;
if (void 0 != d.staticNodes)
for (var c = 0; c < d.staticNodes.length; c++) d.staticNodes[c].walkable = !0;
void 0 != d.goToMatrixNode && (d.goToMatrixNode.walkable = !0);
void 0 != d.nextWalkToNode && (d.nextWalkToNode.walkable = !0)
}, e + 100);
c.onComplete.add(function() {
void 0 != d.goToNode && (d.goToNode.walkable = !0);
void 0 != d.curPositionInGrid && (d.curPositionInGrid.walkable = !0);
recycleUnits ? d.kill() : d.destroy();
void 0 != fadingUnits[d.uid] && delete fadingUnits[d.uid];
d.readyForRecycle = !0;
if (void 0 != d.staticNodes)
for (var c = 0; c < d.staticNodes.length; c++) d.staticNodes[c].walkable = !0;
void 0 == d.shadow || shadowsAsRenderTexture || d.shadow.kill();
if (void 0 != d.curPositionInGrid)
for (c = 0; c < d.curPositionInGrid.length; c++) staticGrid.nodes[d.curPositionInGrid[c][0]][d.curPositionInGrid[c][1]].walkable = !0;
if (void 0 != d.staticGridNodes)
for (c = 0; c < d.staticGridNodes.length; c++) staticGrid.setWalkableAt(d.staticGridNodes[c][0], d.staticGridNodes[c][1], !0)
});
c.start()
}, c)
}
function toCamelCase(d) {
return d.split("_").map(function(d) {
return d.charAt(0).toUpperCase() + d.slice(1)
}).join("")
}
function capitalizeFirstLetter(d) {
return d.charAt(0).toUpperCase() + d.slice(1).toLowerCase()
}
function getParameterByName(d) {
d = d.replace(/[\[]/, "[").replace(/[\]]/, "]");
d = new RegExp("[?&]" + d + "=([^&#]*)").exec(location.search);
return null === d ? "" : decodeURIComponent(d[1].replace(/\+/g, " "))
}
function ClearAllIntervals() {
for (var d = 1; 999 > d; d++) window.clearInterval(d)
}
function createArrayFromString(d) {
if ($.isArray(d)) return d;
if ("" != d && void 0 != d) {
d = d.replace(/\],\[/g, "*");
d = d.replace(/\[/g, "");
d = d.replace(/\]/g, "");
d = d.replace(/,/g, ",");
d = d.split("*");
for (var c = 0; c < d.length; c++) {
var e = d[c].split(",");
d[c] = [e[0], e[1]]
}
} else d = void 0;
return d
}
function trueCreateArrayFromString(d) {
return d = JSON.parse(d)
}
function coordsInCamera(d, c) {
return game.camera.view.contains(d, c) ? !0 : !1
}
function getRotatedBounds(d) {
var c = d.width;
d.height > d.width && (c = d.height);
var e = d.offsetX;
d.offsetY > d.offsetX && (e = d.offsetY);
void 0 == d.rotatedBounds ? d.rotatedBounds = new Phaser.Rectangle(d.x - e, d.y - e, c, c) : (d.rotatedBounds.x = d.x - e, d.rotatedBounds.y = d.y - e, d.rotatedBounds.width = c, d.rotatedBounds.height = c);
return d.rotatedBounds
}
function getBoundsWithChildren(d) {
var c = d.width,
e = d.height,
m = d.offsetX,
h = d.offsetY;
if (0 < d.children.length)
for (var p = 0; p < d.children.length; p++) d.children[p].width > c && (c = d.children[p].width, m = d.children[p].offsetX), d.children[p].height > e && (e = d.children[p].height, h = d.children[p].offsetY);
return new Phaser.Rectangle(d.x - m, d.y - h, c, e)
}
function toggleNextUnit(d, c, e) {
var m, h = [];
void 0 != currentToggledUnit && d != currentToggledUnit.unitName && (currentToggledUnit = void 0);
void 0 != currentToggledUnit && void 0 != c && currentToggledUnit[c] != e && (currentToggledUnit = void 0);
gameObjects.forEachAlive(function(m) {
var a = !0;
void 0 != c && void 0 != e && (a = m[c] == e);
("droid" == m.unitName || 0 != m.finishedBuilding && 0 != m.selected) && a && m.unitName == d && m.playerKey == currentGameRoom.players[playerName].playerKey && h.push(m)
});
if (void 0 == currentToggledUnit && 0 < h.length) currentToggledUnit = h[0], "droid" == d ? (deselectAllUnits(), selectUnit(currentToggledUnit), game.camera.focusOn(currentToggledUnit)) : setLastSelectedWorkerBuilding(currentToggledUnit, !0);
else if (1 > h.length) game.sound.play("error1", .4), setMessage("No units found.");
else {
if ("droid" == d) {
h.sort(function(d, a) {
return d.x + d.y < a.x + a.y ? -1 : 1
});
for (var p = 0; p < h.length; p++) h[p].uid == currentToggledUnit.uid && (m = void 0 != h[p + 1] ? h[p + 1] : h[0])
} else h.sort(function(d, a) {
return d.buildingQue.length - a.buildingQue.length
}), m = h[0];
void 0 != m && (currentToggledUnit = m, "droid" == d ? (game.camera.focusOn(currentToggledUnit), deselectAllUnits(), selectUnit(currentToggledUnit)) : setLastSelectedWorkerBuilding(currentToggledUnit, !0))
}
}
function generateTinyUID() {
var d = 46656 * Math.random() | 0,
c = 46656 * Math.random() | 0,
d = ("000" + d.toString(36)).slice(-3),
c = ("000" + c.toString(36)).slice(-3);
return d + c
}
function getBoundsIncludingChildren(d) {
if (void 0 == d.trueBounds) {
for (var c = d.width, e = d.height, m = 0; m < d.children.length; m++) d.children[m].width > c && (c = d.children[m].width), d.children[m].height > e && (e = d.children[m].height);
d.trueBounds = new Phaser.Rectangle(d.x - d.offsetX, d.y - d.offsetY, c, e)
} else d.trueBounds.x = d.x - d.offsetX, d.trueBounds.y = d.y - d.offsetY;
return d.trueBounds
}
function getImageBounds(d) {
void 0 == d.imageBounds ? d.imageBounds = new Phaser.Rectangle(d.x - d.offsetX, d.y - d.offsetY, d.width, d.height) : (d.imageBounds.x = d.x - d.offsetX, d.imageBounds.y = d.y - d.offsetY);
return d.imageBounds
}
function getManualBounds(d) {
if (void 0 != d.worldX) return void 0 == d.manualBounds ? d.manualBounds = new Phaser.Rectangle(d.worldX - d.offsetX, d.worldY - d.offsetY, d.width, d.height) : (d.manualBounds.x = d.worldX - d.offsetX, d.manualBounds.y = d.worldY - d.offsetY), d.manualBounds;
void 0 != d.unitName && void 0 != unitDefinitions[d.unitName].bodyBounds ? void 0 == d.manualBounds ? d.manualBounds = new Phaser.Rectangle(d.x - unitDefinitions[d.unitName].bodyBounds[0] / 2, d.y - unitDefinitions[d.unitName].bodyBounds[1] / 2, unitDefinitions[d.unitName].bodyBounds[0], unitDefinitions[d.unitName].bodyBounds[1]) : (d.manualBounds.x = d.x - unitDefinitions[d.unitName].bodyBounds[0] / 2, d.manualBounds.y = d.y - unitDefinitions[d.unitName].bodyBounds[1] / 2) : void 0 == d.manualBounds ? d.manualBounds = new Phaser.Rectangle(d.x - d.offsetX, d.y - d.offsetY, d.width, d.height) : (d.manualBounds.x = d.x - d.offsetX, d.manualBounds.y = d.y - d.offsetY);
return d.manualBounds
}
function getUniqueValuesInObjectofObjects(d, c) {
var e = [];
for (key in d) {
for (var m = !1, h = 0; h < e.length; h++)
if (e[h][c] == d[key][c]) {
m = !0;
break
}
m || e.push(d[key])
}
return e
}
function setDrupalErrorMessage(d, c, e) {
void 0 == e && (e = 6e3);
void 0 != clearDrupalMessageTimeout && clearTimeout(clearDrupalMessageTimeout);
clearDrupalMessageTimeout = setTimeout(function() {
$(".messages").fadeOut(800, function() {
$(".messages").text("")
})
}, e);
e = $(".messages." + c);
0 < e.length ? $(".messages").text() == d ? console.log("message is already being displayed") : (e.text(d), e.css({
display: "block"
})) : $("body").prepend('<div class="messages ' + c + '">' + d + "</div>")
}
function addFullScreenButton() {
$("#full_screen_button").show();
0 < $("#full_screen_button").length || ($("body").append('<img src="/game_' + curGameVersion + '/css/images/open_fullscreen.png" class="hideable" id="full_screen_button" title="Toggle Fullscreen">'), $("#full_screen_button").on("click", function() {
toggleFullScreen()
}))
}
function toggleFullScreen() {
document.fullScreenElement && null !== document.fullScreenElement || !document.mozFullScreen && !document.webkitIsFullScreen ? ($("#full_screen_button").attr("src", "/game_" + curGameVersion + "/css/images/exit_fullscreen.png"), document.documentElement.requestFullScreen ? document.documentElement.requestFullScreen() : document.documentElement.mozRequestFullScreen ? document.documentElement.mozRequestFullScreen() : document.documentElement.webkitRequestFullScreen && document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)) : ($("#full_screen_button").attr("src", "/game_" + curGameVersion + "/css/images/open_fullscreen.png"), document.cancelFullScreen ? document.cancelFullScreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitCancelFullScreen && document.webkitCancelFullScreen())
}
function getFilename(d) {
return d && (d = d.toString().match(/.*\/(.+?)\./)) && 1 < d.length ? d[1] : ""
}
function createUIDialog(d, c, e, m) {
void 0 == m && (m = {});
d = '<div id="' + c + '" title="' + d + '">' + e + "</div>";
$("body").append(d);
m.resizable = !1;
m.closeOnEscape = !1;
$("#" + c).dialog(m);
$("#" + c).parent().attr("id", c + "_parent");
"editor" == mode && $(".ui-dialog").addClass("hideable");
makeInputFieldsSafe()
}(function(d) {
function c() {
d(".views-field-field-thumb").each(function() {
var c = d(this).siblings(".views-field-field-thumb-plant,.views-field-field-thumb-building,.views-field-field-thumb-other");
d(this).append(c.children())
});
d(".flag-link-toggle").on("click", function() {
d(this).hasClass("unflag-action") ? setDrupalErrorMessage("The next time you reload the page, this asset will no longer appear in the map editor menu.", "status") : setDrupalErrorMessage("The asset will now appear in the map editor menu the next time you refresh the page.", "status")
})
}
d(window).ready(function(d) {
rendering = getParameterByName("rendering");
if ("webgl" == rendering || "canvas" == rendering) d("#select_mode").show(), d("#select_mode").val(rendering);
d("#select_mode").on("change", function() {
rendering = d(this).val();
window.location = location.protocol + "//" + location.host + location.pathname + "?rendering=" + rendering
});
d("body").css({
display: "block"
});
1300 > d(window).width() && d("#main_menu").addClass("med");
if (0 < d(".ajax-register-links").length) d("#publish_assets_link").on("click", function(c) {
c.preventDefault();
d(".ajax-register-links li.first a").trigger("click")
});
1 > d("#overlay_footer").length && d(".assets-public").append('<div id="overlay_footer"></div>');
d(window).resize(function() {
resizeGame()
})
});
Drupal.behaviors.views = {
attach: function(e, m) {
d("#block-views-game_assets-block #close").on("click", function() {
d("#block-views-game_assets-block").fadeOut(500)
});
0 < d(".logged-in").length && c();
1 > d("#overlay_footer").length && d(".assets-public").append('<div id="overlay_footer"></div>')
}
};
Drupal.behaviors.ajax_register = {
attach: function(c, m) {
d(".ajax-register-links").ready(function(d) {
d(".ajax-register-links").prepend('<li><a href="/play" title="Logged in as a guest, you will not be able to save anything">Play as guest</a></li>')
})
}
};
d(window).focus(function() {
windowFocus = !0
}).blur(function() {
windowFocus = !1
})
})(jQuery);
function hasWhiteSpace(d) {
return 0 <= d.indexOf(" ")
}
function findLongestWord(d) {
d = d.split(" ");
for (var c = 0, e = 0; e < d.length; e++) d[e].length > c && (c = d[e].length);
return c
}
function setMessage(d, c, e, m, h, p) {
if (!hasWhiteSpace(d) && 25 < d.length) void 0 != c && c == playerName && setDrupalErrorMessage("Spamming the chat will get you banned. This incident has been reported.", "error");
else if (25 < findLongestWord(d)) void 0 != c && c == playerName && setDrupalErrorMessage("Spamming the chat will get you banned. This incident has been reported.", "error");
else if ("editor" == mode && 1 > $("#messages").length && $("body").append('<div id="messages"></div>'), "" != d && void 0 != d) {
void 0 == e && (e = "");
void 0 == m && (m = 2e3);
inGame || "editor" == mode || (m = 0);
"editor" == mode && (m = 1e4);
c = void 0 == c ? "" : c + ": ";
var q = !0;
$("#messages li .message").each(function() {
unitUID = void 0 == p ? "" : p.uid;
var a = $(this).parent().data("unit") == unitUID,
c = $.trim($(this).text()) == $.trim(d);
a && c && void 0 != p && (q = !1)
});
if (q) {
void 0 != h && h();
var a = $('<li class="' + e + '" data-unit="' + (void 0 != p ? p.uid : "") + '">').html('<span class="author">' + c + '</span><span class="message">' + d + "</span>");
$("#messages").append(a);
c = document.getElementById("messages");
null != c && (c.scrollTop = c.scrollHeight, 0 < m && setTimeout(function() {
a.fadeOut(1e3, function() {
a.remove()
})
}, m))
}
}
}
function hexToRgb(d) {
d = d.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function(d, e, m, h) {
return e + e + m + m + h + h
});
return (d = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(d)) ? {
r: parseInt(d[1], 16),
g: parseInt(d[2], 16),
b: parseInt(d[3], 16)
} : null
}
function checkIfObjectsHaveSameStructure(d, c) {
var e = Object.keys(d).length,
m = Object.keys(c).length;
if (e != m) return !1;
for (var h in d)
if (void 0 == c[h]) return !1;
return !0
}
function isLetter(d) {
return d.match("^[a-zA-Z()]+$")
}
function clone(d) {
if (null == d || "object" != typeof d) return d;
var c = d.constructor(),
e;
for (e in d) d.hasOwnProperty(e) && (c[e] = d[e]);
return c
}
function sortProperties(d, c, e, m) {
c = c || 1;
e = e || !1;
var h = m ? -1 : 1;
m = [];
for (var p in d) d.hasOwnProperty(p) && m.push([p, d[p]]);
e ? m.sort(function(d, a) {
return h * (d[1][c] - a[1][c])
}) : m.sort(function(d, a) {
var f = d[1][c].toLowerCase(),
k = a[1][c].toLowerCase();
return f < k ? -1 * h : f > k ? h : 0
});
return m
}
function compareArray(d, c) {
if (d.length != c.length) return !1;
for (var e = 0; e < c.length; e++)
if (!Array.isArray(d[e])) {
if (d[e] !== c[e]) return !1
} else if (d[e].compare) {
if (!d[e].compare(c[e])) return !1
} else if (d[e] !== c[e]) return !1;
return !0
}
function inArray(d, c) {
var e = !1;
d.map(function(d) {
d === c && (e = !0)
});
return e
}
function formatThousandsWithRounding(d, c) {
for (var e = d.toFixed(c), m = e | 0, h = 0 > d ? 1 : 0, e = ("" + Math.abs(e - m).toFixed(c)).substr(2, c), m = "" + m, p = m.length, q = "";
(p -= 3) > h;) q = "," + m.substr(p, 3) + q;
return m.substr(0, p + 3) + q + (e ? "." + e : "")
}
function requestPointerLock() {
canvas.requestPointerLock = canvas.requestPointerLock || canvas.mozRequestPointerLock;
canvas.requestPointerLock();
$("body").mousemove(function(d) {
console.log("( " + d.pageX + ", " + d.pageY + " )")
})
}
function getUnitThumb(d, c) {
var e, m, h = void 0 != currentGameRoom ? currentGameRoom.players[playerName].player : 1;
void 0 != c && (h = c);
void 0 == unitDefinitions[d].unitThumbs && (unitDefinitions[d].unitThumbs = {});
if (void 0 != unitDefinitions[d].unitThumbs[h]) return unitDefinitions[d].unitThumbs[h];
var p = getPrintedPart(d, h);
getLargestDimensions(p);
m = p.width;
e = p.height;
var q = game.make.renderTexture(m, e);
q.renderXY(p, p.offsetX, p.offsetY);
p = q.getBase64();
q.destroy();
unitDefinitions[d].unitThumbs[h] = {
base64: p,
width: m,
height: e
};
return unitDefinitions[d].unitThumbs[h]
}
function roundPrecision(d, c) {
var e = Math.pow(10, c || 0);
return Math.round(d * e) / e
}
function getFilename(d) {
return d && (d = d.toString().match(/.*\/(.+?)\./)) && 1 < d.length ? d[1] : ""
}
function translateText(d) {
switch (d) {
case "New Game":
if ("ru" == userLanguage) return "новая игра";
if ("es" == userLanguage) return "Nuevo juego";
break;
case "Find Game":
if ("ru" == userLanguage) return "найти игру";
if ("es" == userLanguage) return "Encontrar el juego";
break;
case "Map Editor":
if ("ru" == userLanguage) return "Редактор карт";
if ("es" == userLanguage) return "Editor de mapas";
break;
case "Map Name":
if ("ru" == userLanguage) return "Название карты";
if ("es" == userLanguage) return "Nombre del mapa";
break;
case "Game Type":
if ("ru" == userLanguage) return "Тип игры";
if ("es" == userLanguage) return "Tipo de juego";
break;
case "Players":
if ("ru" == userLanguage) return "игроки";
if ("es" == userLanguage) return "Jugadores";
break;
case "Host":
if ("ru" == userLanguage) return "хозяин";
if ("es" == userLanguage) return "Anfitrión";
break;
case "Status":
if ("ru" == userLanguage) return "положение дел";
if ("es" == userLanguage) return "Estado";
break;
case "Return to lobby":
if ("ru" == userLanguage) return "лобби";
if ("es" == userLanguage) return "Regresar";
break;
case "Start Game":
if ("ru" == userLanguage) return "начать игру";
if ("es" == userLanguage) return "Empezar juego";
break;
case "Team":
if ("ru" == userLanguage) return "команда";
if ("es" == userLanguage) return "Equipo";
break;
case "+AI":
if ("ru" == userLanguage) return "+ компьютер";
if ("es" == userLanguage) return "+ Computadora";
break;
case "Connecting":
if ("ru" == userLanguage) return "соединительный";
if ("es" == userLanguage) return "Conectando";
break;
case "Enter message here and hit enter...":
if ("ru" == userLanguage) return "Введите сообщение здесь...";
if ("es" == userLanguage) return "Introduzca el mensaje aquí y pulse enter ...";
break;
case "Surrender":
if ("ru" == userLanguage) return "капитуляция";
if ("es" == userLanguage) return "Rendición";
break;
case "Online":
if ("ru" == userLanguage) return "онлайн";
if ("es" == userLanguage) return "En línea";
break;
case "Options":
if ("ru" == userLanguage) return "опции";
if ("es" == userLanguage) return "Opciones";
break;
case "total":
if ("ru" == userLanguage) return "Всего";
if ("es" == userLanguage) return "total";
break;
case "here":
if ("ru" == userLanguage) return "Вот";
if ("es" == userLanguage) return "aquí";
break;
case "Victory!":
if ("ru" == userLanguage) return "Победа!";
if ("es" == userLanguage) return "¡Victoria!";
break;
case "Defeat!":
if ("ru" == userLanguage) return "Поражение!";
if ("es" == userLanguage) return "¡Derrota!";
break;
case 'Note: people using auto-matchmaking will not be put in your game. Only people who click your game from the lobby or have the game URL can join this game. Return to the lobby and hit the "find game" button to join auto-matchmaking.':
if ("ru" == userLanguage) return "Примечание: люди, использующие авто-matchmaking, не будут добавлены в вашу игру. В эту игру могут присоединиться только те, кто нажимает на вашу игру из лобби или имеет URL игры. Вернитесь в холл и нажмите кнопку «найти игру», чтобы присоединиться к автосогласованию.";
if ("es" == userLanguage) return 'Nota: las personas que usen auto-matchmaking no serán puestas en su juego. Solo las personas que hagan clic en el juego desde el lobby o que tengan la URL del juego pueden unirse a este juego. Vuelva al lobby y presione el botón "find game" para unirse a auto-matchmaking.';
break;
case "Finding players(s) on":
if ("ru" == userLanguage) return "Поиск игроков на";
if ("es" == userLanguage) return "Encontrar jugadores en ...";
break;
case "Welcome":
if ("ru" == userLanguage) return "желанный";
if ("es" == userLanguage) return "Bienvenido";
break;
case "Game Room":
if ("ru" == userLanguage) return "Игровая комната";
if ("es" == userLanguage) return "Sala de juego";
break;
case "Player":
if ("ru" == userLanguage) return "игрок";
if ("es" == userLanguage) return "Jugador";
break;
case "LINK":
if ("ru" == userLanguage) return "АДРЕС";
if ("es" == userLanguage) return "ENLAZAR";
break;
case "easy":
if ("ru" == userLanguage) return "легко";
if ("es" == userLanguage) return "fácil";
break;
case "medium":
if ("ru" == userLanguage) return "средний";
if ("es" == userLanguage) return "moderar";
break;
case "hard":
if ("ru" == userLanguage) return "жесткий";
if ("es" == userLanguage) return "difícil";
break;
case "cheating":
if ("ru" == userLanguage) return "мошенничество";
if ("es" == userLanguage) return "engañando";
break;
case "Military":
if ("ru" == userLanguage) return "военный";
if ("es" == userLanguage) return "Militar";
break;
case "Economy":
if ("ru" == userLanguage) return "экономика";
if ("es" == userLanguage) return "Economía";
break;
case "Overall":
if ("ru" == userLanguage) return "Резюме";
if ("es" == userLanguage) return "Resumen";
break;
case "Droid Count":
if ("ru" == userLanguage) return "Количество рабочих";
if ("es" == userLanguage) return "Cuenta de los trabajadores";
break;
case "Military Count":
if ("ru" == userLanguage) return "Военный граф";
if ("es" == userLanguage) return "Cuenta Militar";
break;
case "Buildings Created":
if ("ru" == userLanguage) return "Созданные здания";
if ("es" == userLanguage) return "Edificios creados";
break;
case "Buildings Destroyed":
if ("ru" == userLanguage) return "Разрушенные здания";
if ("es" == userLanguage) return "Edificios destruidos";
break;
case "Carbon Collected":
if ("ru" == userLanguage) return "Углерод, собранный";
if ("es" == userLanguage) return "Carbono recolectado";
break;
case "Ore Collected":
if ("ru" == userLanguage) return "Сбор руды";
if ("es" == userLanguage) return "Minerales recolectados";
break;
case "Energy Collected":
if ("ru" == userLanguage) return "Энергия, собранная";
if ("es" == userLanguage) return "Energía recolectada";
break;
case "Units Created":
if ("ru" == userLanguage) return "Созданные единицы";
if ("es" == userLanguage) return "Unidades creadas";
break;
case "Units Killed":
if ("ru" == userLanguage) return "Убитые единицы";
if ("es" == userLanguage) return "Unidades muertas";
break;
case "Units Lost":
if ("ru" == userLanguage) return "Утерянные единицы";
if ("es" == userLanguage) return "Unidades perdidas";
break;
case "Workers Created":
if ("ru" == userLanguage) return "Созданы рабочие";
if ("es" == userLanguage) return "Trabajadores creados";
break;
case "Military Score":
if ("ru" == userLanguage) return "Военный счет";
if ("es" == userLanguage) return "Puntuación Militar";
break;
case "Economy Score":
if ("ru" == userLanguage) return "Оценка экономики";
if ("es" == userLanguage) return "Puntuación Económica";
break;
case "Total Score":
if ("ru" == userLanguage) return "Общий счет";
if ("es" == userLanguage) return "Puntaje total";
break;
case "Standard":
if ("ru" == userLanguage) return "стандарт";
if ("es" == userLanguage) return "Estándar";
break;
case "Survival":
if ("ru" == userLanguage) return "выживание";
if ("es" == userLanguage) return "Supervivencia";
break;
case "Deathmatch":
if ("ru" == userLanguage) return "Смертельный матч";
if ("es" == userLanguage) return "Combate a muerte";
break;
case "FFA":
if ("ru" == userLanguage) return "Бесплатно для всех";
if ("es" == userLanguage) return "Gratuita para todos";
break;
case "Purchase Strike Tactics to access all game content.":
if ("ru" == userLanguage) return "Приобретайте тактику забастовки, чтобы получить доступ ко всему игровому контенту.";
if ("es" == userLanguage) return "Compra Strike Tactics para acceder a todo el contenido del juego.";
break;
case "Purchase the full game to access all game content.":
if ("ru" == userLanguage) return "Купите полную игру, чтобы получить доступ ко всему игровому контенту.";
if ("es" == userLanguage) return "Compra el juego completo para acceder a todo el contenido del juego.";
break;
case "Music Volume":
if ("ru" == userLanguage) return "Объем музыки";
if ("es" == userLanguage) return "Volumen de la música";
break;
case "Game Volume":
if ("ru" == userLanguage) return "Объем игры";
if ("es" == userLanguage) return "Volumen del juego";
break;
case "Smoothing":
if ("ru" == userLanguage) return "Сглаживание";
if ("es" == userLanguage) return "Suavizado";
break;
case "Anti-Aliasing":
if ("ru" == userLanguage || "es" == userLanguage) return "Anti-Aliasing";
break;
case "Camera Shake":
if ("ru" == userLanguage) return "Встряска камеры";
if ("es" == userLanguage) return "Vibración de la cámara";
break;
case "Show Tutorial":
if ("ru" == userLanguage) return "Показать учебное пособие";
if ("es" == userLanguage) return "Tutorial de presentación";
break;
case "Window Scroll":
if ("ru" == userLanguage) return "Окно прокрутки";
if ("es" == userLanguage) return "Desplazamiento de la ventana";
break;
case "Scroll Speed":
if ("ru" == userLanguage) return "Скорость прокрутки";
if ("es" == userLanguage) return "Velocidad de desplazamiento";
break;
case "Show Unit Info":
if ("ru" == userLanguage) return "Показать информацию о модуле";
if ("es" == userLanguage) return "Mostrar información de la unidad";
break;
case "Back":
if ("ru" == userLanguage) return "назад";
if ("es" == userLanguage) return "Espalda";
break;
case "Settings Defaults":
if ("ru" == userLanguage) return "Настройки по умолчанию";
if ("es" == userLanguage) return "Predeterminados";
break;
case "Hotkey Defaults":
if ("ru" == userLanguage) return "Горячие клавиши по умолчанию";
if ("es" == userLanguage) return "Predeterminados";
break;
case "Show Players In Room":
if ("ru" == userLanguage) return "Показать игроков в номере";
if ("es" == userLanguage) return "Mostrar jugadores en la habitación";
break;
case "Manual Attack":
if ("ru" == userLanguage) return "Ручная атака";
if ("es" == userLanguage) return "Ataque manual";
break;
case "Cancel Building":
if ("ru" == userLanguage) return "Отменить строительство";
if ("es" == userLanguage) return "Cancelar el edificio";
break;
case "Chat":
if ("ru" == userLanguage) return "чат";
if ("es" == userLanguage) return "Charla";
break;
case "Select All Military":
if ("ru" == userLanguage) return "Выберите все военные";
if ("es" == userLanguage) return "Seleccionar todo militar";
break;
case "System Hotkeys":
if ("ru" == userLanguage) return "Горячие клавиши системы";
if ("es" == userLanguage) return "Teclas de acceso rápido del sistema";
break;
case "Key Bindings":
if ("ru" == userLanguage) return "Ключевые привязки";
if ("es" == userLanguage) return "Atajos de teclado";
break;
case "Minutes":
if ("ru" == userLanguage) return "минут";
if ("es" == userLanguage) return "Minutos";
break;
case "Time":
if ("ru" == userLanguage) return "Время";
if ("es" == userLanguage) return "Hora"
}
return d
}
function translateUnitDefinitions() {}
function inIframe() {
try {
return window.self !== window.top
} catch (d) {
return !0
}
}(function(d) {
"function" === typeof define && define.amd ? define(["jquery"], function(c) {
return d(c, window, document)
}) : "object" === typeof exports ? module.exports = function(c, e) {
c || (c = window);
e || (e = "undefined" !== typeof window ? require("jquery") : require("jquery")(c));
return d(e, c, c.document)
} : d(jQuery, window, document)
})(function(d, c, e, m) {
function h(a) {
var c, f, k = {};
d.each(a, function(d) {
(c = d.match(/^([^A-Z]+?)([A-Z])/)) && -1 !== "a aa ai ao as b fn i m o s ".indexOf(c[1] + " ") && (f = d.replace(c[0], c[2].toLowerCase()), k[f] = d, "o" === c[1] && h(a[d]))
});
a._hungarianMap = k
}
function p(a, c, f) {
a._hungarianMap || h(a);
var k;
d.each(c, function(n) {
k = a._hungarianMap[n];
k === m || !f && c[k] !== m || ("o" === k.charAt(0) ? (c[k] || (c[k] = {}), d.extend(!0, c[k], c[n]), p(a[k], c[k], f)) : c[k] = c[n])
})
}
function q(a) {
var d = T.defaults.oLanguage,
c = a.sZeroRecords;
!a.sEmptyTable && c && "No data available in table" === d.sEmptyTable && Za(a, a, "sZeroRecords", "sEmptyTable");
!a.sLoadingRecords && c && "Loading..." === d.sLoadingRecords && Za(a, a, "sZeroRecords", "sLoadingRecords");
a.sInfoThousands && (a.sThousands = a.sInfoThousands);
(a = a.sDecimal) && ac(a)
}
function a(a) {
Ka(a, "ordering", "bSort");
Ka(a, "orderMulti", "bSortMulti");
Ka(a, "orderClasses", "bSortClasses");
Ka(a, "orderCellsTop", "bSortCellsTop");
Ka(a, "order", "aaSorting");
Ka(a, "orderFixed", "aaSortingFixed");
Ka(a, "paging", "bPaginate");
Ka(a, "pagingType", "sPaginationType");
Ka(a, "pageLength", "iDisplayLength");
Ka(a, "searching", "bFilter");
"boolean" === typeof a.sScrollX && (a.sScrollX = a.sScrollX ? "100%" : "");
"boolean" === typeof a.scrollX && (a.scrollX = a.scrollX ? "100%" : "");
if (a = a.aoSearchCols)
for (var d = 0, c = a.length; d < c; d++) a[d] && p(T.models.oSearch, a[d])
}
function f(a) {
Ka(a, "orderable", "bSortable");
Ka(a, "orderData", "aDataSort");
Ka(a, "orderSequence", "asSorting");
Ka(a, "orderDataType", "sortDataType");
var c = a.aDataSort;
c && !d.isArray(c) && (a.aDataSort = [c])
}
function k(a) {
if (!T.__browser) {
var f = {};
T.__browser = f;
var k = d("<div/>").css({
position: "fixed",
top: 0,
left: -1 * d(c).scrollLeft(),
height: 1,
width: 1,
overflow: "hidden"
}).append(d("<div/>").css({
position: "absolute",
top: 1,
left: 1,
width: 100,
overflow: "scroll"
}).append(d("<div/>").css({
width: "100%",
height: 10
}))).appendTo("body"),
n = k.children(),
e = n.children();
f.barWidth = n[0].offsetWidth - n[0].clientWidth;
f.bScrollOversize = 100 === e[0].offsetWidth && 100 !== n[0].clientWidth;
f.bScrollbarLeft = 1 !== Math.round(e.offset().left);
f.bBounding = k[0].getBoundingClientRect().width ? !0 : !1;
k.remove()
}
d.extend(a.oBrowser, T.__browser);
a.oScroll.iBarWidth = T.__browser.barWidth
}
function n(a, d, c, f, k, n) {
var e, t = !1;
for (c !== m && (e = c, t = !0); f !== k;) a.hasOwnProperty(f) && (e = t ? d(e, a[f], f, a) : a[f], t = !0, f += n);
return e
}
function t(a, c) {
var f = T.defaults.column,
k = a.aoColumns.length,
f = d.extend({}, T.models.oColumn, f, {
nTh: c ? c : e.createElement("th"),
sTitle: f.sTitle ? f.sTitle : c ? c.innerHTML : "",
aDataSort: f.aDataSort ? f.aDataSort : [k],
mData: f.mData ? f.mData : k,
idx: k
});
a.aoColumns.push(f);
f = a.aoPreSearchCols;
f[k] = d.extend({}, T.models.oSearch, f[k]);
w(a, k, d(c).data())
}
function w(a, c, k) {
c = a.aoColumns[c];
var n = a.oClasses,
e = d(c.nTh);
if (!c.sWidthOrig) {
c.sWidthOrig = e.attr("width") || null;
var t = (e.attr("style") || "").match(/width:\s*(\d+[pxem%]+)/);
t && (c.sWidthOrig = t[1])
}
k !== m && null !== k && (f(k), p(T.defaults.column, k), k.mDataProp !== m && !k.mData && (k.mData = k.mDataProp), k.sType && (c._sManualType = k.sType), k.className && !k.sClass && (k.sClass = k.className), d.extend(c, k), Za(c, k, "sWidth", "sWidthOrig"), k.iDataSort !== m && (c.aDataSort = [k.iDataSort]), Za(c, k, "aDataSort"));
var h = c.mData,
w = M(h),
u = c.mRender ? M(c.mRender) : null;
k = function(a) {
return "string" === typeof a && -1 !== a.indexOf("@")
};
c._bAttrSrc = d.isPlainObject(h) && (k(h.sort) || k(h.type) || k(h.filter));
c._setter = null;
c.fnGetData = function(a, d, c) {
var f = w(a, d, m, c);
return u && d ? u(f, d, a, c) : f
};
c.fnSetData = function(a, d, c) {
return L(h)(a, d, c)
};
"number" !== typeof h && (a._rowReadObject = !0);
a.oFeatures.bSort || (c.bSortable = !1, e.addClass(n.sSortableNone));
a = -1 !== d.inArray("asc", c.asSorting);
k = -1 !== d.inArray("desc", c.asSorting);
c.bSortable && (a || k) ? a && !k ? (c.sSortingClass = n.sSortableAsc, c.sSortingClassJUI = n.sSortJUIAscAllowed) : !a && k ? (c.sSortingClass = n.sSortableDesc, c.sSortingClassJUI = n.sSortJUIDescAllowed) : (c.sSortingClass = n.sSortable, c.sSortingClassJUI = n.sSortJUI) : (c.sSortingClass = n.sSortableNone, c.sSortingClassJUI = "")
}
function u(a) {
if (!1 !== a.oFeatures.bAutoWidth) {
var d = a.aoColumns;
ub(a);
for (var c = 0, f = d.length; c < f; c++) d[c].nTh.style.width = d[c].sWidth
}
d = a.oScroll;
"" === d.sY && "" === d.sX || Sa(a);
qa(a, null, "column-sizing", [a])
}
function C(a, d) {
var c = B(a, "bVisible");
return "number" === typeof c[d] ? c[d] : null
}
function A(a, c) {
var f = B(a, "bVisible"),
f = d.inArray(c, f);
return -1 !== f ? f : null
}
function v(a) {
var c = 0;
d.each(a.aoColumns, function(a, f) {
f.bVisible && "none" !== d(f.nTh).css("display") && c++
});
return c
}
function B(a, c) {
var f = [];
d.map(a.aoColumns, function(a, d) {
a[c] && f.push(d)
});
return f
}
function D(a) {
var d = a.aoColumns,
c = a.aoData,
f = T.ext.type.detect,
k, n, e, t, h, w, u, q, p;
k = 0;
for (n = d.length; k < n; k++)
if (u = d[k], p = [], !u.sType && u._sManualType) u.sType = u._sManualType;
else if (!u.sType) {
e = 0;
for (t = f.length; e < t; e++) {
h = 0;
for (w = c.length; h < w; h++) {
p[h] === m && (p[h] = J(a, h, k, "type"));
q = f[e](p[h], a);
if (!q && e !== f.length - 1) break;
if ("html" === q) break
}
if (q) {
u.sType = q;
break
}
}
u.sType || (u.sType = "string")
}
}
function E(a, c, f, k) {
var n, e, h, w, u, q, p = a.aoColumns;
if (c)
for (n = c.length - 1; 0 <= n; n--) {
q = c[n];
var C = q.targets !== m ? q.targets : q.aTargets;
d.isArray(C) || (C = [C]);
e = 0;
for (h = C.length; e < h; e++)
if ("number" === typeof C[e] && 0 <= C[e]) {
for (; p.length <= C[e];) t(a);
k(C[e], q)
} else if ("number" === typeof C[e] && 0 > C[e]) k(p.length + C[e], q);
else if ("string" === typeof C[e])
for (w = 0, u = p.length; w < u; w++)("_all" == C[e] || d(p[w].nTh).hasClass(C[e])) && k(w, q)
}
if (f)
for (n = 0, a = f.length; n < a; n++) k(n, f[n])
}
function F(a, c, f, k) {
var n = a.aoData.length,
e = d.extend(!0, {}, T.models.oRow, {
src: f ? "dom" : "data",
idx: n
});
e._aData = c;
a.aoData.push(e);
for (var t = a.aoColumns, h = 0, w = t.length; h < w; h++) t[h].sType = null;
a.aiDisplayMaster.push(n);
c = a.rowIdFn(c);
c !== m && (a.aIds[c] = e);
!f && a.oFeatures.bDeferRender || ca(a, n, f, k);
return n
}
function G(a, c) {
var f;
c instanceof d || (c = d(c));
return c.map(function(d, c) {
f = W(a, c);
return F(a, f.data, c, f.cells)
})
}
function J(a, d, c, f) {
var k = a.iDraw,
n = a.aoColumns[c],
e = a.aoData[d]._aData,
t = n.sDefaultContent,
h = n.fnGetData(e, f, {
settings: a,
row: d,
col: c
});
if (h === m) return a.iDrawError != k && null === t && (lb(a, 0, "Requested unknown parameter " + ("function" == typeof n.mData ? "{function}" : "'" + n.mData + "'") + " for row " + d + ", column " + c, 4), a.iDrawError = k), t;
if ((h === e || null === h) && null !== t && f !== m) h = t;
else if ("function" === typeof h) return h.call(e);
return null === h && "display" == f ? "" : h
}
function I(a, d, c, f) {
a.aoColumns[c].fnSetData(a.aoData[d]._aData, f, {
settings: a,
row: d,
col: c
})
}
function K(a) {
return d.map(a.match(/(\\.|[^\.])+/g) || [""], function(a) {
return a.replace(/\\\./g, ".")
})
}
function M(a) {
if (d.isPlainObject(a)) {
var c = {};
d.each(a, function(a, d) {
d && (c[a] = M(d))
});
return function(a, d, f, k) {
var n = c[d] || c._;
return n !== m ? n(a, d, f, k) : a
}
}
if (null === a) return function(a) {
return a
};
if ("function" === typeof a) return function(d, c, f, k) {
return a(d, c, f, k)
};
if ("string" === typeof a && (-1 !== a.indexOf(".") || -1 !== a.indexOf("[") || -1 !== a.indexOf("("))) {
var f = function(a, c, k) {
var n, e;
if ("" !== k) {
e = K(k);
for (var t = 0, h = e.length; t < h; t++) {
k = e[t].match(bb);
n = e[t].match(Nb);
if (k) {
e[t] = e[t].replace(bb, "");
"" !== e[t] && (a = a[e[t]]);
n = [];
e.splice(0, t + 1);
e = e.join(".");
if (d.isArray(a))
for (t = 0, h = a.length; t < h; t++) n.push(f(a[t], c, e));
a = k[0].substring(1, k[0].length - 1);
a = "" === a ? n : n.join(a);
break
} else if (n) {
e[t] = e[t].replace(Nb, "");
a = a[e[t]]();
continue
}
if (null === a || a[e[t]] === m) return m;
a = a[e[t]]
}
}
return a
};
return function(d, c) {
return f(d, c, a)
}
}
return function(d) {
return d[a]
}
}
function L(a) {
if (d.isPlainObject(a)) return L(a._);
if (null === a) return function() {};
if ("function" === typeof a) return function(d, c, f) {
a(d, "set", c, f)
};
if ("string" === typeof a && (-1 !== a.indexOf(".") || -1 !== a.indexOf("[") || -1 !== a.indexOf("("))) {
var c = function(a, f, k) {
k = K(k);
var n;
n = k[k.length - 1];
for (var e, t, h = 0, w = k.length - 1; h < w; h++) {
e = k[h].match(bb);
t = k[h].match(Nb);
if (e) {
k[h] = k[h].replace(bb, "");
a[k[h]] = [];
n = k.slice();
n.splice(0, h + 1);
e = n.join(".");
if (d.isArray(f))
for (t = 0, w = f.length; t < w; t++) n = {}, c(n, f[t], e), a[k[h]].push(n);
else a[k[h]] = f;
return
}
t && (k[h] = k[h].replace(Nb, ""), a = a[k[h]](f));
if (null === a[k[h]] || a[k[h]] === m) a[k[h]] = {};
a = a[k[h]]
}
if (n.match(Nb)) a[n.replace(Nb, "")](f);
else a[n.replace(bb, "")] = f
};
return function(d, f) {
return c(d, f, a)
}
}
return function(d, c) {
d[a] = c
}
}
function U(a) {
return Qa(a.aoData, "_aData")
}
function Q(a) {
a.aoData.length = 0;
a.aiDisplayMaster.length = 0;
a.aiDisplay.length = 0;
a.aIds = {}
}
function H(a, d, c) {
for (var f = -1, k = 0, n = a.length; k < n; k++) a[k] == d ? f = k : a[k] > d && a[k] --; - 1 != f && c === m && a.splice(f, 1)
}
function O(a, d, c, f) {
var k = a.aoData[d],
n, e = function(c, f) {
for (; c.childNodes.length;) c.removeChild(c.firstChild);
c.innerHTML = J(a, d, f, "display")
};
if ("dom" !== c && (c && "auto" !== c || "dom" !== k.src)) {
var t = k.anCells;
if (t)
if (f !== m) e(t[f], f);
else
for (c = 0, n = t.length; c < n; c++) e(t[c], c)
} else k._aData = W(a, k, f, f === m ? m : k._aData).data;
k._aSortData = null;
k._aFilterData = null;
e = a.aoColumns;
if (f !== m) e[f].sType = null;
else {
c = 0;
for (n = e.length; c < n; c++) e[c].sType = null;
ha(a, k)
}
}
function W(a, c, f, k) {
var n = [],
e = c.firstChild,
t, h, w = 0,
u, q = a.aoColumns,
p = a._rowReadObject;
k = k !== m ? k : p ? {} : [];
var C = function(a, d) {
if ("string" === typeof a) {
var c = a.indexOf("@"); - 1 !== c && (c = a.substring(c + 1), L(a)(k, d.getAttribute(c)))
}
},
v = function(a) {
if (f === m || f === w) h = q[w], u = d.trim(a.innerHTML), h && h._bAttrSrc ? (L(h.mData._)(k, u), C(h.mData.sort, a), C(h.mData.type, a), C(h.mData.filter, a)) : p ? (h._setter || (h._setter = L(h.mData)), h._setter(k, u)) : k[w] = u;
w++
};
if (e)
for (; e;) {
t = e.nodeName.toUpperCase();
if ("TD" == t || "TH" == t) v(e), n.push(e);
e = e.nextSibling
} else
for (n = c.anCells, e = 0, t = n.length; e < t; e++) v(n[e]);
(c = c.firstChild ? c : c.nTr) && (c = c.getAttribute("id")) && L(a.rowId)(k, c);
return {
data: k,
cells: n
}
}
function ca(a, c, f, k) {
var n = a.aoData[c],
t = n._aData,
h = [],
m, w, u, q, p;
if (null === n.nTr) {
m = f || e.createElement("tr");
n.nTr = m;
n.anCells = h;
m._DT_RowIndex = c;
ha(a, n);
q = 0;
for (p = a.aoColumns.length; q < p; q++) u = a.aoColumns[q], w = f ? k[q] : e.createElement(u.sCellType), w._DT_CellIndex = {
row: c,
column: q
}, h.push(w), f && !u.mRender && u.mData === q || d.isPlainObject(u.mData) && u.mData._ === q + ".display" || (w.innerHTML = J(a, c, q, "display")), u.sClass && (w.className += " " + u.sClass), u.bVisible && !f ? m.appendChild(w) : !u.bVisible && f && w.parentNode.removeChild(w), u.fnCreatedCell && u.fnCreatedCell.call(a.oInstance, w, J(a, c, q), t, c, q);
qa(a, "aoRowCreatedCallback", null, [m, t, c])
}
n.nTr.setAttribute("role", "row")
}
function ha(a, c) {
var f = c.nTr,
k = c._aData;
if (f) {
var n = a.rowIdFn(k);
n && (f.id = n);
k.DT_RowClass && (n = k.DT_RowClass.split(" "), c.__rowc = c.__rowc ? Mb(c.__rowc.concat(n)) : n, d(f).removeClass(c.__rowc.join(" ")).addClass(k.DT_RowClass));
k.DT_RowAttr && d(f).attr(k.DT_RowAttr);
k.DT_RowData && d(f).data(k.DT_RowData)
}
}
function Y(a) {
var c, f, k, n, e, t = a.nTHead,
h = a.nTFoot,
m = 0 === d("th, td", t).length,
w = a.oClasses,
u = a.aoColumns;
m && (n = d("<tr/>").appendTo(t));
c = 0;
for (f = u.length; c < f; c++) e = u[c], k = d(e.nTh).addClass(e.sClass), m && k.appendTo(n), a.oFeatures.bSort && (k.addClass(e.sSortingClass), !1 !== e.bSortable && (k.attr("tabindex", a.iTabIndex).attr("aria-controls", a.sTableId), Ab(a, e.nTh, c))), e.sTitle != k[0].innerHTML && k.html(e.sTitle), jc(a, "header")(a, k, e, w);
m && ua(a.aoHeader, t);
d(t).find(">tr").attr("role", "row");
d(t).find(">tr>th, >tr>td").addClass(w.sHeaderTH);
d(h).find(">tr>th, >tr>td").addClass(w.sFooterTH);
if (null !== h)
for (a = a.aoFooter[0], c = 0, f = a.length; c < f; c++) e = u[c], e.nTf = a[c].cell, e.sClass && d(e.nTf).addClass(e.sClass)
}
function Z(a, c, f) {
var k, n, e, t = [],
h = [],
w = a.aoColumns.length,
u;
if (c) {
f === m && (f = !1);
k = 0;
for (n = c.length; k < n; k++) {
t[k] = c[k].slice();
t[k].nTr = c[k].nTr;
for (e = w - 1; 0 <= e; e--) a.aoColumns[e].bVisible || f || t[k].splice(e, 1);
h.push([])
}
k = 0;
for (n = t.length; k < n; k++) {
if (a = t[k].nTr)
for (; e = a.firstChild;) a.removeChild(e);
e = 0;
for (c = t[k].length; e < c; e++)
if (u = w = 1, h[k][e] === m) {
a.appendChild(t[k][e].cell);
for (h[k][e] = 1; t[k + w] !== m && t[k][e].cell == t[k + w][e].cell;) h[k + w][e] = 1, w++;
for (; t[k][e + u] !== m && t[k][e].cell == t[k][e + u].cell;) {
for (f = 0; f < w; f++) h[k + f][e + u] = 1;
u++
}
d(t[k][e].cell).attr("rowspan", w).attr("colspan", u)
}
}
}
}
function R(a) {
var c = qa(a, "aoPreDrawCallback", "preDraw", [a]);
if (-1 !== d.inArray(!1, c)) Ga(a, !1);
else {
var c = [],
f = 0,
k = a.asStripeClasses,
n = k.length,
e = a.oLanguage,
t = a.iInitDisplayStart,
h = "ssp" == Wa(a),
w = a.aiDisplay;
a.bDrawing = !0;
t !== m && -1 !== t && (a._iDisplayStart = h ? t : t >= a.fnRecordsDisplay() ? 0 : t, a.iInitDisplayStart = -1);
var t = a._iDisplayStart,
u = a.fnDisplayEnd();
if (a.bDeferLoading) a.bDeferLoading = !1, a.iDraw++, Ga(a, !1);
else if (h) {
if (!a.bDestroying && !wa(a)) return
} else a.iDraw++;
if (0 !== w.length)
for (e = h ? a.aoData.length : u, h = h ? 0 : t; h < e; h++) {
var q = w[h],
p = a.aoData[q];
null === p.nTr && ca(a, q);
q = p.nTr;
if (0 !== n) {
var C = k[f % n];
p._sRowStripe != C && (d(q).removeClass(p._sRowStripe).addClass(C), p._sRowStripe = C)
}
qa(a, "aoRowCallback", null, [q, p._aData, f, h]);
c.push(q);
f++
} else f = e.sZeroRecords, 1 == a.iDraw && "ajax" == Wa(a) ? f = e.sLoadingRecords : e.sEmptyTable && 0 === a.fnRecordsTotal() && (f = e.sEmptyTable), c[0] = d("<tr/>", {
class: n ? k[0] : ""
}).append(d("<td />", {
valign: "top",
colSpan: v(a),
class: a.oClasses.sRowEmpty
}).html(f))[0];
qa(a, "aoHeaderCallback", "header", [d(a.nTHead).children("tr")[0], U(a), t, u, w]);
qa(a, "aoFooterCallback", "footer", [d(a.nTFoot).children("tr")[0], U(a), t, u, w]);
k = d(a.nTBody);
k.children().detach();
k.append(d(c));
qa(a, "aoDrawCallback", "draw", [a]);
a.bSorted = !1;
a.bFiltered = !1;
a.bDrawing = !1
}
}
function aa(a, d) {
var c = a.oFeatures,
f = c.bFilter;
c.bSort && vb(a);
f ? ja(a, a.oPreviousSearch) : a.aiDisplay = a.aiDisplayMaster.slice();
!0 !== d && (a._iDisplayStart = 0);
a._drawHold = d;
R(a);
a._drawHold = !1
}
function da(a) {
var c = a.oClasses,
f = d(a.nTable),
f = d("<div/>").insertBefore(f),
k = a.oFeatures,
n = d("<div/>", {
id: a.sTableId + "_wrapper",
class: c.sWrapper + (a.nTFoot ? "" : " " + c.sNoFooter)
});
a.nHolding = f[0];
a.nTableWrapper = n[0];
a.nTableReinsertBefore = a.nTable.nextSibling;
for (var e = a.sDom.split(""), t, h, m, w, u, q, p = 0; p < e.length; p++) {
t = null;
h = e[p];
if ("<" == h) {
m = d("<div/>")[0];
w = e[p + 1];
if ("'" == w || '"' == w) {
u = "";
for (q = 2; e[p + q] != w;) u += e[p + q], q++;
"H" == u ? u = c.sJUIHeader : "F" == u && (u = c.sJUIFooter); - 1 != u.indexOf(".") ? (w = u.split("."), m.id = w[0].substr(1, w[0].length - 1), m.className = w[1]) : "#" == u.charAt(0) ? m.id = u.substr(1, u.length - 1) : m.className = u;
p += q
}
n.append(m);
n = d(m)
} else if (">" == h) n = n.parent();
else if ("l" == h && k.bPaginate && k.bLengthChange) t = jb(a);
else if ("f" == h && k.bFilter) t = Ea(a);
else if ("r" == h && k.bProcessing) t = La(a);
else if ("t" == h) t = Ha(a);
else if ("i" == h && k.bInfo) t = Qb(a);
else if ("p" == h && k.bPaginate) t = X(a);
else if (0 !== T.ext.feature.length)
for (m = T.ext.feature, q = 0, w = m.length; q < w; q++)
if (h == m[q].cFeature) {
t = m[q].fnInit(a);
break
}
t && (m = a.aanFeatures, m[h] || (m[h] = []), m[h].push(t), n.append(t))
}
f.replaceWith(n);
a.nHolding = null
}
function ua(a, c) {
var f = d(c).children("tr"),
k, n, e, t, h, m, w, u, q, p;
a.splice(0, a.length);
e = 0;
for (m = f.length; e < m; e++) a.push([]);
e = 0;
for (m = f.length; e < m; e++)
for (k = f[e], n = k.firstChild; n;) {
if ("TD" == n.nodeName.toUpperCase() || "TH" == n.nodeName.toUpperCase()) {
u = 1 * n.getAttribute("colspan");
q = 1 * n.getAttribute("rowspan");
u = u && 0 !== u && 1 !== u ? u : 1;
q = q && 0 !== q && 1 !== q ? q : 1;
t = 0;
for (h = a[e]; h[t];) t++;
w = t;
p = 1 === u ? !0 : !1;
for (h = 0; h < u; h++)
for (t = 0; t < q; t++) a[e + t][w + h] = {
cell: n,
unique: p
}, a[e + t].nTr = k
}
n = n.nextSibling
}
}
function Da(a, d, c) {
var f = [];
c || (c = a.aoHeader, d && (c = [], ua(c, d)));
d = 0;
for (var k = c.length; d < k; d++)
for (var n = 0, e = c[d].length; n < e; n++) !c[d][n].unique || f[n] && a.bSortCellsTop || (f[n] = c[d][n].cell);
return f
}
function S(a, c, f) {
qa(a, "aoServerParams", "serverParams", [c]);
if (c && d.isArray(c)) {
var k = {},
n = /(.*?)\[\]$/;
d.each(c, function(a, d) {
var c = d.name.match(n);
c ? (c = c[0], k[c] || (k[c] = []), k[c].push(d.value)) : k[d.name] = d.value
});
c = k
}
var e, t = a.ajax,
h = a.oInstance,
m = function(d) {
qa(a, null, "xhr", [a, d, a.jqXHR]);
f(d)
};
if (d.isPlainObject(t) && t.data) {
e = t.data;
var w = d.isFunction(e) ? e(c, a) : e;
c = d.isFunction(e) && w ? w : d.extend(!0, c, w);
delete t.data
}
w = {
data: c,
success: function(d) {
var c = d.error || d.sError;
c && lb(a, 0, c);
a.json = d;
m(d)
},
dataType: "json",
cache: !1,
type: a.sServerMethod,
error: function(c, f) {
var k = qa(a, null, "xhr", [a, null, a.jqXHR]); - 1 === d.inArray(!0, k) && ("parsererror" == f ? lb(a, 0, "Invalid JSON response", 1) : 4 === c.readyState && lb(a, 0, "Ajax error", 7));
Ga(a, !1)
}
};
a.oAjaxData = c;
qa(a, null, "preXhr", [a, c]);
a.fnServerData ? a.fnServerData.call(h, a.sAjaxSource, d.map(c, function(a, d) {
return {
name: d,
value: a
}
}), m, a) : a.sAjaxSource || "string" === typeof t ? a.jqXHR = d.ajax(d.extend(w, {
url: t || a.sAjaxSource
})) : d.isFunction(t) ? a.jqXHR = t.call(h, c, m, a) : (a.jqXHR = d.ajax(d.extend(w, t)), t.data = e)
}
function wa(a) {
return a.bAjaxDataGet ? (a.iDraw++, Ga(a, !0), S(a, ta(a), function(d) {
na(a, d)
}), !1) : !0
}
function ta(a) {
var c = a.aoColumns,
f = c.length,
k = a.oFeatures,
n = a.oPreviousSearch,
e = a.aoPreSearchCols,
t, h = [],
m, w, u, q = va(a);
t = a._iDisplayStart;
m = !1 !== k.bPaginate ? a._iDisplayLength : -1;
var p = function(a, d) {
h.push({
name: a,
value: d
})
};
p("sEcho", a.iDraw);
p("iColumns", f);
p("sColumns", Qa(c, "sName").join(","));
p("iDisplayStart", t);
p("iDisplayLength", m);
var C = {
draw: a.iDraw,
columns: [],
order: [],
start: t,
length: m,
search: {
value: n.sSearch,
regex: n.bRegex
}
};
for (t = 0; t < f; t++) w = c[t], u = e[t], m = "function" == typeof w.mData ? "function" : w.mData, C.columns.push({
data: m,
name: w.sName,
searchable: w.bSearchable,
orderable: w.bSortable,
search: {
value: u.sSearch,
regex: u.bRegex
}
}), p("mDataProp_" + t, m), k.bFilter && (p("sSearch_" + t, u.sSearch), p("bRegex_" + t, u.bRegex), p("bSearchable_" + t, w.bSearchable)), k.bSort && p("bSortable_" + t, w.bSortable);
k.bFilter && (p("sSearch", n.sSearch), p("bRegex", n.bRegex));
k.bSort && (d.each(q, function(a, d) {
C.order.push({
column: d.col,
dir: d.dir
});
p("iSortCol_" + a, d.col);
p("sSortDir_" + a, d.dir)
}), p("iSortingCols", q.length));
c = T.ext.legacy.ajax;
return null === c ? a.sAjaxSource ? h : C : c ? h : C
}
function na(a, d) {
var c = ea(a, d),
f = d.sEcho !== m ? d.sEcho : d.draw,
k = d.iTotalRecords !== m ? d.iTotalRecords : d.recordsTotal,
n = d.iTotalDisplayRecords !== m ? d.iTotalDisplayRecords : d.recordsFiltered;
if (f) {
if (1 * f < a.iDraw) return;
a.iDraw = 1 * f
}
Q(a);
a._iRecordsTotal = parseInt(k, 10);
a._iRecordsDisplay = parseInt(n, 10);
f = 0;
for (k = c.length; f < k; f++) F(a, c[f]);
a.aiDisplay = a.aiDisplayMaster.slice();
a.bAjaxDataGet = !1;
R(a);
a._bInitComplete || ib(a, d);
a.bAjaxDataGet = !0;
Ga(a, !1)
}
function ea(a, c) {
var f = d.isPlainObject(a.ajax) && a.ajax.dataSrc !== m ? a.ajax.dataSrc : a.sAjaxDataProp;
return "data" === f ? c.aaData || c[f] : "" !== f ? M(f)(c) : c
}
function Ea(a) {
var c = a.oClasses,
f = a.sTableId,
k = a.oLanguage,
n = a.oPreviousSearch,
t = a.aanFeatures,
h = '<input type="search" class="' + c.sFilterInput + '"/>',
m = k.sSearch,
m = m.match(/_INPUT_/) ? m.replace("_INPUT_", h) : m + h,
c = d("<div/>", {
id: t.f ? null : f + "_filter",
class: c.sFilter
}).append(d("<label/>").append(m)),
t = function() {
var d = this.value ? this.value : "";
d != n.sSearch && (ja(a, {
sSearch: d,
bRegex: n.bRegex,
bSmart: n.bSmart,
bCaseInsensitive: n.bCaseInsensitive
}), a._iDisplayStart = 0, R(a))
},
h = null !== a.searchDelay ? a.searchDelay : "ssp" === Wa(a) ? 400 : 0,
w = d("input", c).val(n.sSearch).attr("placeholder", k.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT", h ? ka(t, h) : t).on("keypress.DT", function(a) {
if (13 == a.keyCode) return !1
}).attr("aria-controls", f);
d(a.nTable).on("search.dt.DT", function(d, c) {
if (a === c) try {
w[0] !== e.activeElement && w.val(n.sSearch)
} catch (sc) {}
});
return c[0]
}
function ja(a, d, c) {
var f = a.oPreviousSearch,
k = a.aoPreSearchCols,
n = function(a) {
f.sSearch = a.sSearch;
f.bRegex = a.bRegex;
f.bSmart = a.bSmart;
f.bCaseInsensitive = a.bCaseInsensitive
};
D(a);
if ("ssp" != Wa(a)) {
xa(a, d.sSearch, c, d.bEscapeRegex !== m ? !d.bEscapeRegex : d.bRegex, d.bSmart, d.bCaseInsensitive);
n(d);
for (d = 0; d < k.length; d++) ob(a, k[d].sSearch, d, k[d].bEscapeRegex !== m ? !k[d].bEscapeRegex : k[d].bRegex, k[d].bSmart, k[d].bCaseInsensitive);
hb(a)
} else n(d);
a.bFiltered = !0;
qa(a, null, "search", [a])
}
function hb(a) {
for (var c = T.ext.search, f = a.aiDisplay, k, n, e = 0, t = c.length; e < t; e++) {
for (var h = [], m = 0, w = f.length; m < w; m++) n = f[m], k = a.aoData[n], c[e](a, k._aFilterData, n, k._aData, m) && h.push(n);
f.length = 0;
d.merge(f, h)
}
}
function ob(a, d, c, f, k, n) {
if ("" !== d) {
var e = [],
t = a.aiDisplay;
f = P(d, f, k, n);
for (k = 0; k < t.length; k++) d = a.aoData[t[k]]._aFilterData[c], f.test(d) && e.push(t[k]);
a.aiDisplay = e
}
}
function xa(a, d, c, f, k, n) {
f = P(d, f, k, n);
n = a.oPreviousSearch.sSearch;
var e = a.aiDisplayMaster,
t;
k = [];
0 !== T.ext.search.length && (c = !0);
t = z(a);
if (0 >= d.length) a.aiDisplay = e.slice();
else {
if (t || c || n.length > d.length || 0 !== d.indexOf(n) || a.bSorted) a.aiDisplay = e.slice();
d = a.aiDisplay;
for (c = 0; c < d.length; c++) f.test(a.aoData[d[c]]._sFilterRow) && k.push(d[c]);
a.aiDisplay = k
}
}
function P(a, c, f, k) {
a = c ? a : Na(a);
f && (a = "^(?=.*?" + d.map(a.match(/"[^"]+"|[^ ]+/g) || [""], function(a) {
if ('"' === a.charAt(0)) {
var d = a.match(/^"(.*)"$/);
a = d ? d[1] : a
}
return a.replace('"', "")
}).join(")(?=.*?") + ").*$");
return RegExp(a, k ? "i" : "")
}
function z(a) {
var d = a.aoColumns,
c, f, k, n, e, t, h, m, w = T.ext.type.search;
c = !1;
f = 0;
for (n = a.aoData.length; f < n; f++)
if (m = a.aoData[f], !m._aFilterData) {
t = [];
k = 0;
for (e = d.length; k < e; k++) c = d[k], c.bSearchable ? (h = J(a, f, k, "filter"), w[c.sType] && (h = w[c.sType](h)), null === h && (h = ""), "string" !== typeof h && h.toString && (h = h.toString())) : h = "", h.indexOf && -1 !== h.indexOf("&") && (Tb.innerHTML = h, h = wb ? Tb.textContent : Tb.innerText), h.replace && (h = h.replace(/[\r\n]/g, "")), t.push(h);
m._aFilterData = t;
m._sFilterRow = t.join(" ");
c = !0
}
return c
}
function Db(a) {
return {
search: a.sSearch,
smart: a.bSmart,
regex: a.bRegex,
caseInsensitive: a.bCaseInsensitive
}
}
function Eb(a) {
return {
sSearch: a.search,
bSmart: a.smart,
bRegex: a.regex,
bCaseInsensitive: a.caseInsensitive
}
}
function Qb(a) {
var c = a.sTableId,
f = a.aanFeatures.i,
k = d("<div/>", {
class: a.oClasses.sInfo,
id: f ? null : c + "_info"
});
f || (a.aoDrawCallback.push({
fn: Ia,
sName: "information"
}), k.attr("role", "status").attr("aria-live", "polite"), d(a.nTable).attr("aria-describedby", c + "_info"));
return k[0]
}
function Ia(a) {
var c = a.aanFeatures.i;
if (0 !== c.length) {
var f = a.oLanguage,
k = a._iDisplayStart + 1,
n = a.fnDisplayEnd(),
e = a.fnRecordsTotal(),
t = a.fnRecordsDisplay(),
h = t ? f.sInfo : f.sInfoEmpty;
t !== e && (h += " " + f.sInfoFiltered);
h += f.sInfoPostFix;
h = za(a, h);
f = f.fnInfoCallback;
null !== f && (h = f.call(a.oInstance, a, k, n, e, t, h));
d(c).html(h)
}
}
function za(a, d) {
var c = a.fnFormatNumber,
f = a._iDisplayStart + 1,
k = a._iDisplayLength,
n = a.fnRecordsDisplay(),
e = -1 === k;
return d.replace(/_START_/g, c.call(a, f)).replace(/_END_/g, c.call(a, a.fnDisplayEnd())).replace(/_MAX_/g, c.call(a, a.fnRecordsTotal())).replace(/_TOTAL_/g, c.call(a, n)).replace(/_PAGE_/g, c.call(a, e ? 1 : Math.ceil(f / k))).replace(/_PAGES_/g, c.call(a, e ? 1 : Math.ceil(n / k)))
}
function Ta(a) {
var d, c, f = a.iInitDisplayStart,
k = a.aoColumns,
n;
c = a.oFeatures;
var e = a.bDeferLoading;
if (a.bInitialised) {
da(a);
Y(a);
Z(a, a.aoHeader);
Z(a, a.aoFooter);
Ga(a, !0);
c.bAutoWidth && ub(a);
d = 0;
for (c = k.length; d < c; d++) n = k[d], n.sWidth && (n.nTh.style.width = ia(n.sWidth));
qa(a, null, "preInit", [a]);
aa(a);
k = Wa(a);
if ("ssp" != k || e) "ajax" == k ? S(a, [], function(c) {
var k = ea(a, c);
for (d = 0; d < k.length; d++) F(a, k[d]);
a.iInitDisplayStart = f;
aa(a);
Ga(a, !1);
ib(a, c)
}, a) : (Ga(a, !1), ib(a))
} else setTimeout(function() {
Ta(a)
}, 200)
}
function ib(a, d) {
a._bInitComplete = !0;
(d || a.oInit.aaData) && u(a);
qa(a, null, "plugin-init", [a, d]);
qa(a, "aoInitComplete", "init", [a, d])
}
function Ib(a, d) {
var c = parseInt(d, 10);
a._iDisplayLength = c;
ic(a);
qa(a, null, "length", [a, c])
}
function jb(a) {
for (var c = a.oClasses, f = a.sTableId, k = a.aLengthMenu, n = d.isArray(k[0]), e = n ? k[0] : k, k = n ? k[1] : k, n = d("<select/>", {
name: f + "_length",
"aria-controls": f,
class: c.sLengthSelect
}), t = 0, h = e.length; t < h; t++) n[0][t] = new Option(k[t], e[t]);
var m = d("<div><label/></div>").addClass(c.sLength);
a.aanFeatures.l || (m[0].id = f + "_length");
m.children().append(a.oLanguage.sLengthMenu.replace("_MENU_", n[0].outerHTML));
d("select", m).val(a._iDisplayLength).on("change.DT", function() {
Ib(a, d(this).val());
R(a)
});
d(a.nTable).on("length.dt.DT", function(c, f, k) {
a === f && d("select", m).val(k)
});
return m[0]
}
function X(a) {
var c = a.sPaginationType,
f = T.ext.pager[c],
k = "function" === typeof f,
n = function(a) {
R(a)
},
c = d("<div/>").addClass(a.oClasses.sPaging + c)[0],
e = a.aanFeatures;
k || f.fnInit(a, c, n);
e.p || (c.id = a.sTableId + "_paginate", a.aoDrawCallback.push({
fn: function(a) {
if (k) {
var d = a._iDisplayStart,
c = a._iDisplayLength,
t = a.fnRecordsDisplay(),
h = -1 === c,
d = h ? 0 : Math.ceil(d / c),
c = h ? 1 : Math.ceil(t / c),
t = f(d, c),
m, h = 0;
for (m = e.p.length; h < m; h++) jc(a, "pageButton")(a, e.p[h], h, t, d, c)
} else f.fnUpdate(a, n)
},
sName: "pagination"
}));
return c
}
function kb(a, d, c) {
var f = a._iDisplayStart,
k = a._iDisplayLength,
n = a.fnRecordsDisplay();
0 === n || -1 === k ? f = 0 : "number" === typeof d ? (f = d * k, f > n && (f = 0)) : "first" == d ? f = 0 : "previous" == d ? (f = 0 <= k ? f - k : 0, 0 > f && (f = 0)) : "next" == d ? f + k < n && (f += k) : "last" == d ? f = Math.floor((n - 1) / k) * k : lb(a, 0, "Unknown paging action: " + d, 5);
d = a._iDisplayStart !== f;
a._iDisplayStart = f;
d && (qa(a, null, "page", [a]), c && R(a));
return d
}
function La(a) {
return d("<div/>", {
id: a.aanFeatures.r ? null : a.sTableId + "_processing",
class: a.oClasses.sProcessing
}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]
}
function Ga(a, c) {
a.oFeatures.bProcessing && d(a.aanFeatures.r).css("display", c ? "block" : "none");
qa(a, null, "processing", [a, c])
}
function Ha(a) {
var c = d(a.nTable);
c.attr("role", "grid");
var f = a.oScroll;
if ("" === f.sX && "" === f.sY) return a.nTable;
var k = f.sX,
n = f.sY,
e = a.oClasses,
t = c.children("caption"),
h = t.length ? t[0]._captionSide : null,
m = d(c[0].cloneNode(!1)),
w = d(c[0].cloneNode(!1)),
u = c.children("tfoot");
u.length || (u = null);
m = d("<div/>", {
class: e.sScrollWrapper
}).append(d("<div/>", {
class: e.sScrollHead
}).css({
overflow: "hidden",
position: "relative",
border: 0,
width: k ? k ? ia(k) : null : "100%"
}).append(d("<div/>", {
class: e.sScrollHeadInner
}).css({
"box-sizing": "content-box",
width: f.sXInner || "100%"
}).append(m.removeAttr("id").css("margin-left", 0).append("top" === h ? t : null).append(c.children("thead"))))).append(d("<div/>", {
class: e.sScrollBody
}).css({
position: "relative",
overflow: "auto",
width: k ? ia(k) : null
}).append(c));
u && m.append(d("<div/>", {
class: e.sScrollFoot
}).css({
overflow: "hidden",
border: 0,
width: k ? k ? ia(k) : null : "100%"
}).append(d("<div/>", {
class: e.sScrollFootInner
}).append(w.removeAttr("id").css("margin-left", 0).append("bottom" === h ? t : null).append(c.children("tfoot")))));
var c = m.children(),
q = c[0],
e = c[1],
p = u ? c[2] : null;
if (k) d(e).on("scroll.DT", function() {
var a = this.scrollLeft;
q.scrollLeft = a;
u && (p.scrollLeft = a)
});
d(e).css(n && f.bCollapse ? "max-height" : "height", n);
a.nScrollHead = q;
a.nScrollBody = e;
a.nScrollFoot = p;
a.aoDrawCallback.push({
fn: Sa,
sName: "scrolling"
});
return m[0]
}
function Sa(a) {
var c = a.oScroll,
f = c.sX,
k = c.sXInner,
n = c.sY,
c = c.iBarWidth,
e = d(a.nScrollHead),
t = e[0].style,
h = e.children("div"),
w = h[0].style,
q = h.children("table"),
h = a.nScrollBody,
p = d(h),
v = h.style,
A = d(a.nScrollFoot).children("div"),
B = A.children("table"),
D = d(a.nTHead),
N = d(a.nTable),
z = N[0],
E = z.style,
F = a.nTFoot ? d(a.nTFoot) : null,
G = a.oBrowser,
K = G.bScrollOversize,
J = Qa(a.aoColumns, "nTh"),
H, I, L, O, M = [],
W = [],
va = [],
S = [],
U, Q = function(a) {
a = a.style;
a.paddingTop = "0";
a.paddingBottom = "0";
a.borderTopWidth = "0";
a.borderBottomWidth = "0";
a.height = 0
};
I = h.scrollHeight > h.clientHeight;
a.scrollBarVis !== I && a.scrollBarVis !== m ? (a.scrollBarVis = I, u(a)) : (a.scrollBarVis = I, N.children("thead, tfoot").remove(), F && (L = F.clone().prependTo(N), H = F.find("tr"), L = L.find("tr")), O = D.clone().prependTo(N), D = D.find("tr"), I = O.find("tr"), O.find("th, td").removeAttr("tabindex"), f || (v.width = "100%", e[0].style.width = "100%"), d.each(Da(a, O), function(d, c) {
U = C(a, d);
c.style.width = a.aoColumns[U].sWidth
}), F && Ua(function(a) {
a.style.width = ""
}, L), e = N.outerWidth(), "" === f ? (E.width = "100%", K && (N.find("tbody").height() > h.offsetHeight || "scroll" == p.css("overflow-y")) && (E.width = ia(N.outerWidth() - c)), e = N.outerWidth()) : "" !== k && (E.width = ia(k), e = N.outerWidth()), Ua(Q, I), Ua(function(a) {
va.push(a.innerHTML);
M.push(ia(d(a).css("width")))
}, I), Ua(function(a, c) {
-1 !== d.inArray(a, J) && (a.style.width = M[c])
}, D), d(I).height(0), F && (Ua(Q, L), Ua(function(a) {
S.push(a.innerHTML);
W.push(ia(d(a).css("width")))
}, L), Ua(function(a, d) {
a.style.width = W[d]
}, H), d(L).height(0)), Ua(function(a, d) {
a.innerHTML = '<div class="dataTables_sizing" style="height:0;overflow:hidden;">' + va[d] + "</div>";
a.style.width = M[d]
}, I), F && Ua(function(a, d) {
a.innerHTML = '<div class="dataTables_sizing" style="height:0;overflow:hidden;">' + S[d] + "</div>";
a.style.width = W[d]
}, L), N.outerWidth() < e ? (H = h.scrollHeight > h.offsetHeight || "scroll" == p.css("overflow-y") ? e + c : e, K && (h.scrollHeight > h.offsetHeight || "scroll" == p.css("overflow-y")) && (E.width = ia(H - c)), "" !== f && "" === k || lb(a, 1, "Possible column misalignment", 6)) : H = "100%", v.width = ia(H), t.width = ia(H), F && (a.nScrollFoot.style.width = ia(H)), !n && K && (v.height = ia(z.offsetHeight + c)), f = N.outerWidth(), q[0].style.width = ia(f), w.width = ia(f), k = N.height() > h.clientHeight || "scroll" == p.css("overflow-y"), n = "padding" + (G.bScrollbarLeft ? "Left" : "Right"), w[n] = k ? c + "px" : "0px", F && (B[0].style.width = ia(f), A[0].style.width = ia(f), A[0].style[n] = k ? c + "px" : "0px"), N.children("colgroup").insertBefore(N.children("thead")), p.scroll(), !a.bSorted && !a.bFiltered || a._drawHold || (h.scrollTop = 0))
}
function Ua(a, d, c) {
for (var f = 0, k = 0, n = d.length, e, t; k < n;) {
e = d[k].firstChild;
for (t = c ? c[k].firstChild : null; e;) 1 === e.nodeType && (c ? a(e, t, f) : a(e, f), f++), e = e.nextSibling, t = c ? t.nextSibling : null;
k++
}
}
function ub(a) {
var f = a.nTable,
k = a.aoColumns,
n = a.oScroll,
e = n.sY,
t = n.sX,
h = n.sXInner,
m = k.length,
w = B(a, "bVisible"),
q = d("th", a.nTHead),
p = f.getAttribute("width"),
A = f.parentNode,
D = !1,
N, z, E = a.oBrowser,
n = E.bScrollOversize;
(N = f.style.width) && -1 !== N.indexOf("%") && (p = N);
for (N = 0; N < w.length; N++) z = k[w[N]], null !== z.sWidth && (z.sWidth = ab(z.sWidthOrig, A), D = !0);
if (n || !D && !t && !e && m == v(a) && m == q.length)
for (N = 0; N < m; N++) w = C(a, N), null !== w && (k[w].sWidth = ia(q.eq(N).width()));
else {
m = d(f).clone().css("visibility", "hidden").removeAttr("id");
m.find("tbody tr").remove();
var F = d("<tr/>").appendTo(m.find("tbody"));
m.find("thead, tfoot").remove();
m.append(d(a.nTHead).clone()).append(d(a.nTFoot).clone());
m.find("tfoot th, tfoot td").css("width", "");
q = Da(a, m.find("thead")[0]);
for (N = 0; N < w.length; N++) z = k[w[N]], q[N].style.width = null !== z.sWidthOrig && "" !== z.sWidthOrig ? ia(z.sWidthOrig) : "", z.sWidthOrig && t && d(q[N]).append(d("<div/>").css({
width: z.sWidthOrig,
margin: 0,
padding: 0,
border: 0,
height: 1
}));
if (a.aoData.length)
for (N = 0; N < w.length; N++) D = w[N], z = k[D], d(yb(a, D)).clone(!1).append(z.sContentPadding).appendTo(F);
d("[name]", m).removeAttr("name");
z = d("<div/>").css(t || e ? {
position: "absolute",
top: 0,
left: 0,
height: 1,
right: 0,
overflow: "hidden"
} : {}).append(m).appendTo(A);
t && h ? m.width(h) : t ? (m.css("width", "auto"), m.removeAttr("width"), m.width() < A.clientWidth && p && m.width(A.clientWidth)) : e ? m.width(A.clientWidth) : p && m.width(p);
for (N = e = 0; N < w.length; N++) A = d(q[N]), h = A.outerWidth() - A.width(), A = E.bBounding ? Math.ceil(q[N].getBoundingClientRect().width) : A.outerWidth(), e += A, k[w[N]].sWidth = ia(A - h);
f.style.width = ia(e);
z.remove()
}
p && (f.style.width = ia(p));
!p && !t || a._reszEvt || (f = function() {
d(c).on("resize.DT-" + a.sInstance, ka(function() {
u(a)
}))
}, n ? setTimeout(f, 1e3) : f(), a._reszEvt = !0)
}
function ab(a, c) {
if (!a) return 0;
var f = d("<div/>").css("width", ia(a)).appendTo(c || e.body),
k = f[0].offsetWidth;
f.remove();
return k
}
function yb(a, c) {
var f = Ma(a, c);
if (0 > f) return null;
var k = a.aoData[f];
return k.nTr ? k.anCells[c] : d("<td/>").html(J(a, f, c, "display"))[0]
}
function Ma(a, d) {
for (var c, f = -1, k = -1, n = 0, e = a.aoData.length; n < e; n++) c = J(a, n, d, "display") + "", c = c.replace(Ub, ""), c = c.replace(/&nbsp;/g, " "), c.length > f && (f = c.length, k = n);
return k
}
function ia(a) {
return null === a ? "0px" : "number" == typeof a ? 0 > a ? "0px" : a + "px" : a.match(/\d$/) ? a + "px" : a
}
function va(a) {
var c, f, k = [],
n = a.aoColumns,
e, t, h, w;
c = a.aaSortingFixed;
f = d.isPlainObject(c);
var u = [];
e = function(a) {
a.length && !d.isArray(a[0]) ? u.push(a) : d.merge(u, a)
};
d.isArray(c) && e(c);
f && c.pre && e(c.pre);
e(a.aaSorting);
f && c.post && e(c.post);
for (a = 0; a < u.length; a++)
for (w = u[a][0], e = n[w].aDataSort, c = 0, f = e.length; c < f; c++) t = e[c], h = n[t].sType || "string", u[a]._idx === m && (u[a]._idx = d.inArray(u[a][1], n[t].asSorting)), k.push({
src: w,
col: t,
dir: u[a][1],
index: u[a]._idx,
type: h,
formatter: T.ext.type.order[h + "-pre"]
});
return k
}
function vb(a) {
var d, c, f = [],
k = T.ext.type.order,
n = a.aoData,
e = 0,
t, h = a.aiDisplayMaster,
m;
D(a);
m = va(a);
d = 0;
for (c = m.length; d < c; d++) t = m[d], t.formatter && e++, Lb(a, t.col);
if ("ssp" != Wa(a) && 0 !== m.length) {
d = 0;
for (c = h.length; d < c; d++) f[h[d]] = d;
e === m.length ? h.sort(function(a, d) {
var c, k, e, t, h = m.length,
w = n[a]._aSortData,
u = n[d]._aSortData;
for (e = 0; e < h; e++)
if (t = m[e], c = w[t.col], k = u[t.col], c = c < k ? -1 : c > k ? 1 : 0, 0 !== c) return "asc" === t.dir ? c : -c;
c = f[a];
k = f[d];
return c < k ? -1 : c > k ? 1 : 0
}) : h.sort(function(a, d) {
var c, e, t, h, w = m.length,
u = n[a]._aSortData,
q = n[d]._aSortData;
for (t = 0; t < w; t++)
if (h = m[t], c = u[h.col], e = q[h.col], h = k[h.type + "-" + h.dir] || k["string-" + h.dir], c = h(c, e), 0 !== c) return c;
c = f[a];
e = f[d];
return c < e ? -1 : c > e ? 1 : 0
})
}
a.bSorted = !0
}
function Jb(a) {
var d, c, f = a.aoColumns,
k = va(a);
a = a.oLanguage.oAria;
for (var n = 0, e = f.length; n < e; n++) {
c = f[n];
var t = c.asSorting;
d = c.sTitle.replace(/<.*?>/g, "");
var h = c.nTh;
h.removeAttribute("aria-sort");
c.bSortable && (0 < k.length && k[0].col == n ? (h.setAttribute("aria-sort", "asc" == k[0].dir ? "ascending" : "descending"), c = t[k[0].index + 1] || t[0]) : c = t[0], d += "asc" === c ? a.sSortAscending : a.sSortDescending);
h.setAttribute("aria-label", d)
}
}
function ma(a, c, f, k) {
var n = a.aaSorting,
e = a.aoColumns[c].asSorting,
t = function(a, c) {
var f = a._idx;
f === m && (f = d.inArray(a[1], e));
return f + 1 < e.length ? f + 1 : c ? null : 0
};
"number" === typeof n[0] && (n = a.aaSorting = [n]);
f && a.oFeatures.bSortMulti ? (f = d.inArray(c, Qa(n, "0")), -1 !== f ? (c = t(n[f], !0), null === c && 1 === n.length && (c = 0), null === c ? n.splice(f, 1) : (n[f][1] = e[c], n[f]._idx = c)) : (n.push([c, e[0], 0]), n[n.length - 1]._idx = 0)) : n.length && n[0][0] == c ? (c = t(n[0]), n.length = 1, n[0][1] = e[c], n[0]._idx = c) : (n.length = 0, n.push([c, e[0]]), n[0]._idx = 0);
aa(a);
"function" == typeof k && k(a)
}
function Ab(a, d, c, f) {
var k = a.aoColumns[c];
qb(d, {}, function(d) {
!1 !== k.bSortable && (a.oFeatures.bProcessing ? (Ga(a, !0), setTimeout(function() {
ma(a, c, d.shiftKey, f);
"ssp" !== Wa(a) && Ga(a, !1)
}, 0)) : ma(a, c, d.shiftKey, f))
})
}
function pb(a) {
var c = a.aLastSort,
f = a.oClasses.sSortColumn,
k = va(a),
n = a.oFeatures,
e, t;
if (n.bSort && n.bSortClasses) {
n = 0;
for (e = c.length; n < e; n++) t = c[n].src, d(Qa(a.aoData, "anCells", t)).removeClass(f + (2 > n ? n + 1 : 3));
n = 0;
for (e = k.length; n < e; n++) t = k[n].src, d(Qa(a.aoData, "anCells", t)).addClass(f + (2 > n ? n + 1 : 3))
}
a.aLastSort = k
}
function Lb(a, d) {
var c = a.aoColumns[d],
f = T.ext.order[c.sSortDataType],
k;
f && (k = f.call(a.oInstance, a, d, A(a, d)));
for (var n, e = T.ext.type.order[c.sType + "-pre"], t = 0, h = a.aoData.length; t < h; t++)
if (c = a.aoData[t], c._aSortData || (c._aSortData = []), !c._aSortData[d] || f) n = f ? k[t] : J(a, t, d, "sort"), c._aSortData[d] = e ? e(n) : n
}
function Va(a) {
if (a.oFeatures.bStateSave && !a.bDestroying) {
var c = {
time: +new Date,
start: a._iDisplayStart,
length: a._iDisplayLength,
order: d.extend(!0, [], a.aaSorting),
search: Db(a.oPreviousSearch),
columns: d.map(a.aoColumns, function(d, c) {
return {
visible: d.bVisible,
search: Db(a.aoPreSearchCols[c])
}
})
};
qa(a, "aoStateSaveParams", "stateSaveParams", [a, c]);
a.oSavedState = c;
a.fnStateSaveCallback.call(a.oInstance, a, c)
}
}
function cc(a, c, f) {
var k, n, e = a.aoColumns;
c = function(c) {
if (c && c.time) {
var h = qa(a, "aoStateLoadParams", "stateLoadParams", [a, t]);
if (-1 === d.inArray(!1, h) && (h = a.iStateDuration, !(0 < h && c.time < +new Date - 1e3 * h || c.columns && e.length !== c.columns.length))) {
a.oLoadedState = d.extend(!0, {}, t);
c.start !== m && (a._iDisplayStart = c.start, a.iInitDisplayStart = c.start);
c.length !== m && (a._iDisplayLength = c.length);
c.order !== m && (a.aaSorting = [], d.each(c.order, function(d, c) {
a.aaSorting.push(c[0] >= e.length ? [0, c[1]] : c)
}));
c.search !== m && d.extend(a.oPreviousSearch, Eb(c.search));
if (c.columns)
for (k = 0, n = c.columns.length; k < n; k++) h = c.columns[k], h.visible !== m && (e[k].bVisible = h.visible), h.search !== m && d.extend(a.aoPreSearchCols[k], Eb(h.search));
qa(a, "aoStateLoaded", "stateLoaded", [a, t])
}
}
f()
};
if (a.oFeatures.bStateSave) {
var t = a.fnStateLoadCallback.call(a.oInstance, a, c);
t !== m && c(t)
} else f()
}
function Bb(a) {
var c = T.settings;
a = d.inArray(a, Qa(c, "nTable"));
return -1 !== a ? c[a] : null
}
function lb(a, d, f, k) {
f = "DataTables warning: " + (a ? "table id=" + a.sTableId + " - " : "") + f;
k && (f += ". For more information about this error, please see http://datatables.net/tn/" + k);
if (d) c.console && console.log && console.log(f);
else if (d = T.ext, d = d.sErrMode || d.errMode, a && qa(a, null, "error", [a, k, f]), "alert" == d) alert(f);
else {
if ("throw" == d) throw Error(f);
"function" == typeof d && d(a, k, f)
}
}
function Za(a, c, f, k) {
d.isArray(f) ? d.each(f, function(f, k) {
d.isArray(k) ? Za(a, c, k[0], k[1]) : Za(a, c, k)
}) : (k === m && (k = f), c[f] !== m && (a[k] = c[f]))
}
function hc(a, c, f) {
var k, n;
for (n in c) c.hasOwnProperty(n) && (k = c[n], d.isPlainObject(k) ? (d.isPlainObject(a[n]) || (a[n] = {}), d.extend(!0, a[n], k)) : a[n] = f && "data" !== n && "aaData" !== n && d.isArray(k) ? k.slice() : k);
return a
}
function qb(a, c, f) {
d(a).on("click.DT", c, function(d) {
a.blur();
f(d)
}).on("keypress.DT", c, function(a) {
13 === a.which && (a.preventDefault(), f(a))
}).on("selectstart.DT", function() {
return !1
})
}
function Aa(a, d, c, f) {
c && a[d].push({
fn: c,
sName: f
})
}
function qa(a, c, f, k) {
var n = [];
c && (n = d.map(a[c].slice().reverse(), function(d) {
return d.fn.apply(a.oInstance, k)
}));
null !== f && (c = d.Event(f + ".dt"), d(a.nTable).trigger(c, k), n.push(c.result));
return n
}
function ic(a) {
var d = a._iDisplayStart,
c = a.fnDisplayEnd(),
f = a._iDisplayLength;
d >= c && (d = c - f);
d -= d % f;
if (-1 === f || 0 > d) d = 0;
a._iDisplayStart = d
}
function jc(a, c) {
var f = a.renderer,
k = T.ext.renderer[c];
return d.isPlainObject(f) && f[c] ? k[f[c]] || k._ : "string" === typeof f ? k[f] || k._ : k._
}
function Wa(a) {
return a.oFeatures.bServerSide ? "ssp" : a.ajax || a.sAjaxSource ? "ajax" : "dom"
}
function Pb(a, d) {
var c;
c = cb.numbers_length;
var f = Math.floor(c / 2);
d <= c ? c = Ba(0, d) : a <= f ? (c = Ba(0, c - 2), c.push("ellipsis"), c.push(d - 1)) : (a >= d - 1 - f ? c = Ba(d - (c - 2), d) : (c = Ba(a - f + 2, a + f - 1), c.push("ellipsis"), c.push(d - 1)), c.splice(0, 0, "ellipsis"), c.splice(0, 0, 0));
c.DT_el = "span";
return c
}
function ac(a) {
d.each({
num: function(d) {
return gb(d, a)
},
"num-fmt": function(d) {
return gb(d, a, Rb)
},
"html-num": function(d) {
return gb(d, a, rb)
},
"html-num-fmt": function(d) {
return gb(d, a, rb, Rb)
}
}, function(d, c) {
ra.type.order[d + a + "-pre"] = c;
d.match(/^html\-/) && (ra.type.search[d + a] = ra.type.search.html)
})
}
function db(a) {
return function() {
var d = [Bb(this[T.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));
return T.ext.internal[a].apply(this, d)
}
}
var T = function(c) {
this.$ = function(a, d) {
return this.api(!0).$(a, d)
};
this._ = function(a, d) {
return this.api(!0).rows(a, d).data()
};
this.api = function(a) {
return a ? new ga(Bb(this[ra.iApiIndex])) : new ga(this)
};
this.fnAddData = function(a, c) {
var f = this.api(!0),
k = d.isArray(a) && (d.isArray(a[0]) || d.isPlainObject(a[0])) ? f.rows.add(a) : f.row.add(a);
(c === m || c) && f.draw();
return k.flatten().toArray()
};
this.fnAdjustColumnSizing = function(a) {
var d = this.api(!0).columns.adjust(),
c = d.settings()[0],
f = c.oScroll;
a === m || a ? d.draw(!1) : ("" !== f.sX || "" !== f.sY) && Sa(c)
};
this.fnClearTable = function(a) {
var d = this.api(!0).clear();
(a === m || a) && d.draw()
};
this.fnClose = function(a) {
this.api(!0).row(a).child.hide()
};
this.fnDeleteRow = function(a, d, c) {
var f = this.api(!0);
a = f.rows(a);
var k = a.settings()[0],
n = k.aoData[a[0][0]];
a.remove();
d && d.call(this, k, n);
(c === m || c) && f.draw();
return n
};
this.fnDestroy = function(a) {
this.api(!0).destroy(a)
};
this.fnDraw = function(a) {
this.api(!0).draw(a)
};
this.fnFilter = function(a, d, c, f, k, n) {
k = this.api(!0);
null === d || d === m ? k.search(a, c, f, n) : k.column(d).search(a, c, f, n);
k.draw()
};
this.fnGetData = function(a, d) {
var c = this.api(!0);
if (a !== m) {
var f = a.nodeName ? a.nodeName.toLowerCase() : "";
return d !== m || "td" == f || "th" == f ? c.cell(a, d).data() : c.row(a).data() || null
}
return c.data().toArray()
};
this.fnGetNodes = function(a) {
var d = this.api(!0);
return a !== m ? d.row(a).node() : d.rows().nodes().flatten().toArray()
};
this.fnGetPosition = function(a) {
var d = this.api(!0),
c = a.nodeName.toUpperCase();
return "TR" == c ? d.row(a).index() : "TD" == c || "TH" == c ? (a = d.cell(a).index(), [a.row, a.columnVisible, a.column]) : null
};
this.fnIsOpen = function(a) {
return this.api(!0).row(a).child.isShown()
};
this.fnOpen = function(a, d, c) {
return this.api(!0).row(a).child(d, c).show().child()[0]
};
this.fnPageChange = function(a, d) {
var c = this.api(!0).page(a);
(d === m || d) && c.draw(!1)
};
this.fnSetColumnVis = function(a, d, c) {
a = this.api(!0).column(a).visible(d);
(c === m || c) && a.columns.adjust().draw()
};
this.fnSettings = function() {
return Bb(this[ra.iApiIndex])
};
this.fnSort = function(a) {
this.api(!0).order(a).draw()
};
this.fnSortListener = function(a, d, c) {
this.api(!0).order.listener(a, d, c)
};
this.fnUpdate = function(a, d, c, f, k) {
var n = this.api(!0);
c === m || null === c ? n.row(d).data(a) : n.cell(d, c).data(a);
(k === m || k) && n.columns.adjust();
(f === m || f) && n.draw();
return 0
};
this.fnVersionCheck = ra.fnVersionCheck;
var n = this,
e = c === m,
h = this.length;
e && (c = {});
this.oApi = this.internal = ra.internal;
for (var u in T.ext.internal) u && (this[u] = db(u));
this.each(function() {
var u = {},
C = 1 < h ? hc(u, c, !0) : c,
v = 0,
A, u = this.getAttribute("id"),
B = !1,
D = T.defaults,
z = d(this);
if ("table" != this.nodeName.toLowerCase()) lb(null, 0, "Non-table node initialisation (" + this.nodeName + ")", 2);
else {
a(D);
f(D.column);
p(D, D, !0);
p(D.column, D.column, !0);
p(D, d.extend(C, z.data()));
var N = T.settings,
v = 0;
for (A = N.length; v < A; v++) {
var K = N[v];
if (K.nTable == this || K.nTHead.parentNode == this || K.nTFoot && K.nTFoot.parentNode == this) {
var Ca = C.bRetrieve !== m ? C.bRetrieve : D.bRetrieve;
if (e || Ca) return K.oInstance;
if (C.bDestroy !== m ? C.bDestroy : D.bDestroy) {
K.oInstance.fnDestroy();
break
} else {
lb(K, 0, "Cannot reinitialise DataTable", 3);
return
}
}
if (K.sTableId == this.id) {
N.splice(v, 1);
break
}
}
if (null === u || "" === u) this.id = u = "DataTables_Table_" + T.ext._unique++;
var H = d.extend(!0, {}, T.models.oSettings, {
sDestroyWidth: z[0].style.width,
sInstance: u,
sTableId: u
});
H.nTable = this;
H.oApi = n.internal;
H.oInit = C;
N.push(H);
H.oInstance = 1 === n.length ? n : z.dataTable();
a(C);
C.oLanguage && q(C.oLanguage);
C.aLengthMenu && !C.iDisplayLength && (C.iDisplayLength = d.isArray(C.aLengthMenu[0]) ? C.aLengthMenu[0][0] : C.aLengthMenu[0]);
C = hc(d.extend(!0, {}, D), C);
Za(H.oFeatures, C, "bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" "));
Za(H, C, ["asStripeClasses", "ajax", "fnServerData", "fnFormatNumber", "sServerMethod", "aaSorting", "aaSortingFixed", "aLengthMenu", "sPaginationType", "sAjaxSource", "sAjaxDataProp", "iStateDuration", "sDom", "bSortCellsTop", "iTabIndex", "fnStateLoadCallback", "fnStateSaveCallback", "renderer", "searchDelay", "rowId", ["iCookieDuration", "iStateDuration"],
["oSearch", "oPreviousSearch"],
["aoSearchCols", "aoPreSearchCols"],
["iDisplayLength", "_iDisplayLength"],
["bJQueryUI", "bJUI"]
]);
Za(H.oScroll, C, [
["sScrollX", "sX"],
["sScrollXInner", "sXInner"],
["sScrollY", "sY"],
["bScrollCollapse", "bCollapse"]
]);
Za(H.oLanguage, C, "fnInfoCallback");
Aa(H, "aoDrawCallback", C.fnDrawCallback, "user");
Aa(H, "aoServerParams", C.fnServerParams, "user");
Aa(H, "aoStateSaveParams", C.fnStateSaveParams, "user");
Aa(H, "aoStateLoadParams", C.fnStateLoadParams, "user");
Aa(H, "aoStateLoaded", C.fnStateLoaded, "user");
Aa(H, "aoRowCallback", C.fnRowCallback, "user");
Aa(H, "aoRowCreatedCallback", C.fnCreatedRow, "user");
Aa(H, "aoHeaderCallback", C.fnHeaderCallback, "user");
Aa(H, "aoFooterCallback", C.fnFooterCallback, "user");
Aa(H, "aoInitComplete", C.fnInitComplete, "user");
Aa(H, "aoPreDrawCallback", C.fnPreDrawCallback, "user");
H.rowIdFn = M(C.rowId);
k(H);
var J = H.oClasses;
C.bJQueryUI ? (d.extend(J, T.ext.oJUIClasses, C.oClasses), C.sDom === D.sDom && "lfrtip" === D.sDom && (H.sDom = '<"H"lfr>t<"F"ip>'), H.renderer) ? d.isPlainObject(H.renderer) && !H.renderer.header && (H.renderer.header = "jqueryui") : H.renderer = "jqueryui" : d.extend(J, T.ext.classes, C.oClasses);
z.addClass(J.sTable);
H.iInitDisplayStart === m && (H.iInitDisplayStart = C.iDisplayStart, H._iDisplayStart = C.iDisplayStart);
null !== C.iDeferLoading && (H.bDeferLoading = !0, u = d.isArray(C.iDeferLoading), H._iRecordsDisplay = u ? C.iDeferLoading[0] : C.iDeferLoading, H._iRecordsTotal = u ? C.iDeferLoading[1] : C.iDeferLoading);
var I = H.oLanguage;
d.extend(!0, I, C.oLanguage);
I.sUrl && (d.ajax({
dataType: "json",
url: I.sUrl,
success: function(a) {
q(a);
p(D.oLanguage, a);
d.extend(!0, I, a);
Ta(H)
},
error: function() {
Ta(H)
}
}), B = !0);
null === C.asStripeClasses && (H.asStripeClasses = [J.sStripeOdd, J.sStripeEven]);
var u = H.asStripeClasses,
fa = z.children("tbody").find("tr").eq(0); - 1 !== d.inArray(!0, d.map(u, function(a) {
return fa.hasClass(a)
})) && (d("tbody tr", this).removeClass(u.join(" ")), H.asDestroyStripes = u.slice());
u = [];
N = this.getElementsByTagName("thead");
0 !== N.length && (ua(H.aoHeader, N[0]), u = Da(H));
if (null === C.aoColumns)
for (N = [], v = 0, A = u.length; v < A; v++) N.push(null);
else N = C.aoColumns;
v = 0;
for (A = N.length; v < A; v++) t(H, u ? u[v] : null);
E(H, C.aoColumnDefs, N, function(a, d) {
w(H, a, d)
});
if (fa.length) {
var L = function(a, d) {
return null !== a.getAttribute("data-" + d) ? d : null
};
d(fa[0]).children("th, td").each(function(a, d) {
var c = H.aoColumns[a];
if (c.mData === a) {
var f = L(d, "sort") || L(d, "order"),
k = L(d, "filter") || L(d, "search");
if (null !== f || null !== k) c.mData = {
_: a + ".display",
sort: null !== f ? a + ".@data-" + f : m,
type: null !== f ? a + ".@data-" + f : m,
filter: null !== k ? a + ".@data-" + k : m
}, w(H, a)
}
})
}
var O = H.oFeatures,
u = function() {
if (C.aaSorting === m) {
var a = H.aaSorting;
v = 0;
for (A = a.length; v < A; v++) a[v][1] = H.aoColumns[v].asSorting[0]
}
pb(H);
O.bSort && Aa(H, "aoDrawCallback", function() {
if (H.bSorted) {
var a = va(H),
c = {};
d.each(a, function(a, d) {
c[d.src] = d.dir
});
qa(H, null, "order", [H, a, c]);
Jb(H)
}
});
Aa(H, "aoDrawCallback", function() {
(H.bSorted || "ssp" === Wa(H) || O.bDeferRender) && pb(H)
}, "sc");
var a = z.children("caption").each(function() {
this._captionSide = d(this).css("caption-side")
}),
c = z.children("thead");
0 === c.length && (c = d("<thead/>").appendTo(z));
H.nTHead = c[0];
c = z.children("tbody");
0 === c.length && (c = d("<tbody/>").appendTo(z));
H.nTBody = c[0];
c = z.children("tfoot");
0 === c.length && 0 < a.length && ("" !== H.oScroll.sX || "" !== H.oScroll.sY) && (c = d("<tfoot/>").appendTo(z));
0 === c.length || 0 === c.children().length ? z.addClass(J.sNoFooter) : 0 < c.length && (H.nTFoot = c[0], ua(H.aoFooter, H.nTFoot));
if (C.aaData)
for (v = 0; v < C.aaData.length; v++) F(H, C.aaData[v]);
else(H.bDeferLoading || "dom" == Wa(H)) && G(H, d(H.nTBody).children("tr"));
H.aiDisplay = H.aiDisplayMaster.slice();
H.bInitialised = !0;
!1 === B && Ta(H)
};
C.bStateSave ? (O.bStateSave = !0, Aa(H, "aoDrawCallback", Va, "state_save"), cc(H, C, u)) : u()
}
});
n = null;
return this
},
ra, ga, ba, la, tb = {},
zb = /[\r\n]/g,
rb = /<.*?>/g,
Cb = /^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,
uc = RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)", "g"),
Rb = /[',$\u00a3\u20ac\u00a5%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi,
sb = function(a) {
return a && !0 !== a && "-" !== a ? !1 : !0
},
rc = function(a) {
var d = parseInt(a, 10);
return !isNaN(d) && isFinite(a) ? d : null
},
kc = function(a, d) {
tb[d] || (tb[d] = RegExp(Na(d), "g"));
return "string" === typeof a && "." !== d ? a.replace(/\./g, "").replace(tb[d], ".") : a
},
Sb = function(a, d, c) {
var f = "string" === typeof a;
if (sb(a)) return !0;
d && f && (a = kc(a, d));
c && f && (a = a.replace(Rb, ""));
return !isNaN(parseFloat(a)) && isFinite(a)
},
dc = function(a, d, c) {
return sb(a) ? !0 : sb(a) || "string" === typeof a ? Sb(a.replace(rb, ""), d, c) ? !0 : null : null
},
Qa = function(a, d, c) {
var f = [],
k = 0,
n = a.length;
if (c !== m)
for (; k < n; k++) a[k] && a[k][d] && f.push(a[k][d][c]);
else
for (; k < n; k++) a[k] && f.push(a[k][d]);
return f
},
mb = function(a, d, c, f) {
var k = [],
n = 0,
e = d.length;
if (f !== m)
for (; n < e; n++) a[d[n]][c] && k.push(a[d[n]][c][f]);
else
for (; n < e; n++) k.push(a[d[n]][c]);
return k
},
Ba = function(a, d) {
var c = [],
f;
d === m ? (d = 0, f = a) : (f = d, d = a);
for (var k = d; k < f; k++) c.push(k);
return c
},
lc = function(a) {
for (var d = [], c = 0, f = a.length; c < f; c++) a[c] && d.push(a[c]);
return d
},
Mb = function(a) {
var d = [],
c, f, k = a.length,
n, e = 0;
f = 0;
a: for (; f < k; f++) {
c = a[f];
for (n = 0; n < e; n++)
if (d[n] === c) continue a;
d.push(c);
e++
}
return d
};
T.util = {
throttle: function(a, d) {
var c = d !== m ? d : 200,
f, k;
return function() {
var d = this,
n = +new Date,
e = arguments;
f && n < f + c ? (clearTimeout(k), k = setTimeout(function() {
f = m;
a.apply(d, e)
}, c)) : (f = n, a.apply(d, e))
}
},
escapeRegex: function(a) {
return a.replace(uc, "\\$1")
}
};
var Ka = function(a, d, c) {
a[d] !== m && (a[c] = a[d])
},
bb = /\[.*?\]$/,
Nb = /\(\)$/,
Na = T.util.escapeRegex,
Tb = d("<div>")[0],
wb = Tb.textContent !== m,
Ub = /<.*?>/g,
ka = T.util.throttle,
Vb = [],
Oa = Array.prototype,
mc = function(a) {
var c, f, k = T.settings,
n = d.map(k, function(a) {
return a.nTable
});
if (a) {
if (a.nTable && a.oApi) return [a];
if (a.nodeName && "table" === a.nodeName.toLowerCase()) return c = d.inArray(a, n), -1 !== c ? [k[c]] : null;
if (a && "function" === typeof a.settings) return a.settings().toArray();
"string" === typeof a ? f = d(a) : a instanceof d && (f = a)
} else return [];
if (f) return f.map(function() {
c = d.inArray(this, n);
return -1 !== c ? k[c] : null
}).toArray()
};
ga = function(a, c) {
if (!(this instanceof ga)) return new ga(a, c);
var f = [],
k = function(a) {
(a = mc(a)) && (f = f.concat(a))
};
if (d.isArray(a))
for (var n = 0, e = a.length; n < e; n++) k(a[n]);
else k(a);
this.context = Mb(f);
c && d.merge(this, c);
this.selector = {
rows: null,
cols: null,
opts: null
};
ga.extend(this, this, Vb)
};
T.Api = ga;
d.extend(ga.prototype, {
any: function() {
return 0 !== this.count()
},
concat: Oa.concat,
context: [],
count: function() {
return this.flatten().length
},
each: function(a) {
for (var d = 0, c = this.length; d < c; d++) a.call(this, this[d], d, this);
return this
},
eq: function(a) {
var d = this.context;
return d.length > a ? new ga(d[a], this[a]) : null
},
filter: function(a) {
var d = [];
if (Oa.filter) d = Oa.filter.call(this, a, this);
else
for (var c = 0, f = this.length; c < f; c++) a.call(this, this[c], c, this) && d.push(this[c]);
return new ga(this.context, d)
},
flatten: function() {
var a = [];
return new ga(this.context, a.concat.apply(a, this.toArray()))
},
join: Oa.join,
indexOf: Oa.indexOf || function(a, d) {
for (var c = d || 0, f = this.length; c < f; c++)
if (this[c] === a) return c;
return -1
},
iterator: function(a, d, c, f) {
var k = [],
n, e, t, h, w, u = this.context,
q, p, C = this.selector;
"string" === typeof a && (f = c, c = d, d = a, a = !1);
e = 0;
for (t = u.length; e < t; e++) {
var v = new ga(u[e]);
if ("table" === d) n = c.call(v, u[e], e), n !== m && k.push(n);
else if ("columns" === d || "rows" === d) n = c.call(v, u[e], this[e], e), n !== m && k.push(n);
else if ("column" === d || "column-rows" === d || "row" === d || "cell" === d)
for (p = this[e], "column-rows" === d && (q = xb(u[e], C.opts)), h = 0, w = p.length; h < w; h++) n = p[h], n = "cell" === d ? c.call(v, u[e], n.row, n.column, e, h) : c.call(v, u[e], n, e, h, q), n !== m && k.push(n)
}
return k.length || f ? (a = new ga(u, a ? k.concat.apply([], k) : k), d = a.selector, d.rows = C.rows, d.cols = C.cols, d.opts = C.opts, a) : this
},
lastIndexOf: Oa.lastIndexOf || function(a, d) {
return this.indexOf.apply(this.toArray.reverse(), arguments)
},
length: 0,
map: function(a) {
var d = [];
if (Oa.map) d = Oa.map.call(this, a, this);
else
for (var c = 0, f = this.length; c < f; c++) d.push(a.call(this, this[c], c));
return new ga(this.context, d)
},
pluck: function(a) {
return this.map(function(d) {
return d[a]
})
},
pop: Oa.pop,
push: Oa.push,
reduce: Oa.reduce || function(a, d) {
return n(this, a, d, 0, this.length, 1)
},
reduceRight: Oa.reduceRight || function(a, d) {
return n(this, a, d, this.length - 1, -1, -1)
},
reverse: Oa.reverse,
selector: null,
shift: Oa.shift,
sort: Oa.sort,
splice: Oa.splice,
toArray: function() {
return Oa.slice.call(this)
},
to$: function() {
return d(this)
},
toJQuery: function() {
return d(this)
},
unique: function() {
return new ga(this.context, Mb(this))
},
unshift: Oa.unshift
});
ga.extend = function(a, c, f) {
if (f.length && c && (c instanceof ga || c.__dt_wrapper)) {
var k, n, e, t = function(a, d, c) {
return function() {
var f = d.apply(a, arguments);
ga.extend(f, f, c.methodExt);
return f
}
};
k = 0;
for (n = f.length; k < n; k++) e = f[k], c[e.name] = "function" === typeof e.val ? t(a, e.val, e) : d.isPlainObject(e.val) ? {} : e.val, c[e.name].__dt_wrapper = !0, ga.extend(a, c[e.name], e.propExt)
}
};
ga.register = ba = function(a, c) {
if (d.isArray(a))
for (var f = 0, k = a.length; f < k; f++) ga.register(a[f], c);
else
for (var n = a.split("."), e = Vb, t, h, f = 0, k = n.length; f < k; f++) {
t = (h = -1 !== n[f].indexOf("()")) ? n[f].replace("()", "") : n[f];
var m;
a: {
m = 0;
for (var w = e.length; m < w; m++)
if (e[m].name === t) {
m = e[m];
break a
}
m = null
}
m || (m = {
name: t,
val: {},
methodExt: [],
propExt: []
}, e.push(m));
f === k - 1 ? m.val = c : e = h ? m.methodExt : m.propExt
}
};
ga.registerPlural = la = function(a, c, f) {
ga.register(a, f);
ga.register(c, function() {
var a = f.apply(this, arguments);
return a === this ? this : a instanceof ga ? a.length ? d.isArray(a[0]) ? new ga(a.context, a[0]) : a[0] : m : a
})
};
ba("tables()", function(a) {
var c;
if (a) {
c = ga;
var f = this.context;
if ("number" === typeof a) a = [f[a]];
else {
var k = d.map(f, function(a) {
return a.nTable
});
a = d(k).filter(a).map(function() {
var a = d.inArray(this, k);
return f[a]
}).toArray()
}
c = new c(a)
} else c = this;
return c
});
ba("table()", function(a) {
a = this.tables(a);
var d = a.context;
return d.length ? new ga(d[0]) : a
});
la("tables().nodes()", "table().node()", function() {
return this.iterator("table", function(a) {
return a.nTable
}, 1)
});
la("tables().body()", "table().body()", function() {
return this.iterator("table", function(a) {
return a.nTBody
}, 1)
});
la("tables().header()", "table().header()", function() {
return this.iterator("table", function(a) {
return a.nTHead
}, 1)
});
la("tables().footer()", "table().footer()", function() {
return this.iterator("table", function(a) {
return a.nTFoot
}, 1)
});
la("tables().containers()", "table().container()", function() {
return this.iterator("table", function(a) {
return a.nTableWrapper
}, 1)
});
ba("draw()", function(a) {
return this.iterator("table", function(d) {
"page" === a ? R(d) : ("string" === typeof a && (a = "full-hold" === a ? !1 : !0), aa(d, !1 === a))
})
});
ba("page()", function(a) {
return a === m ? this.page.info().page : this.iterator("table", function(d) {
kb(d, a)
})
});
ba("page.info()", function() {
if (0 === this.context.length) return m;
var a = this.context[0],
d = a._iDisplayStart,
c = a.oFeatures.bPaginate ? a._iDisplayLength : -1,
f = a.fnRecordsDisplay(),
k = -1 === c;
return {
page: k ? 0 : Math.floor(d / c),
pages: k ? 1 : Math.ceil(f / c),
start: d,
end: a.fnDisplayEnd(),
length: c,
recordsTotal: a.fnRecordsTotal(),
recordsDisplay: f,
serverSide: "ssp" === Wa(a)
}
});
ba("page.len()", function(a) {
return a === m ? 0 !== this.context.length ? this.context[0]._iDisplayLength : m : this.iterator("table", function(d) {
Ib(d, a)
})
});
var Wb = function(a, d, c) {
if (c) {
var f = new ga(a);
f.one("draw", function() {
c(f.ajax.json())
})
}
if ("ssp" == Wa(a)) aa(a, d);
else {
Ga(a, !0);
var k = a.jqXHR;
k && 4 !== k.readyState && k.abort();
S(a, [], function(c) {
Q(a);
c = ea(a, c);
for (var f = 0, k = c.length; f < k; f++) F(a, c[f]);
aa(a, d);
Ga(a, !1)
})
}
};
ba("ajax.json()", function() {
var a = this.context;
if (0 < a.length) return a[0].json
});
ba("ajax.params()", function() {
var a = this.context;
if (0 < a.length) return a[0].oAjaxData
});
ba("ajax.reload()", function(a, d) {
return this.iterator("table", function(c) {
Wb(c, !1 === d, a)
})
});
ba("ajax.url()", function(a) {
var c = this.context;
if (a === m) {
if (0 === c.length) return m;
c = c[0];
return c.ajax ? d.isPlainObject(c.ajax) ? c.ajax.url : c.ajax : c.sAjaxSource
}
return this.iterator("table", function(c) {
d.isPlainObject(c.ajax) ? c.ajax.url = a : c.ajax = a
})
});
ba("ajax.url().load()", function(a, d) {
return this.iterator("table", function(c) {
Wb(c, !1 === d, a)
})
});
var Fb = function(a, c, f, k, n) {
var e = [],
t, h, w, u, q, p;
w = typeof c;
c && "string" !== w && "function" !== w && c.length !== m || (c = [c]);
w = 0;
for (u = c.length; w < u; w++)
for (h = c[w] && c[w].split && !c[w].match(/[\[\(:]/) ? c[w].split(",") : [c[w]], q = 0, p = h.length; q < p; q++)(t = f("string" === typeof h[q] ? d.trim(h[q]) : h[q])) && t.length && (e = e.concat(t));
a = ra.selector[a];
if (a.length)
for (w = 0, u = a.length; w < u; w++) e = a[w](k, n, e);
return Mb(e)
},
bc = function(a) {
a || (a = {});
a.filter && a.search === m && (a.search = a.filter);
return d.extend({
search: "none",
order: "current",
page: "all"
}, a)
},
Xb = function(a) {
for (var d = 0, c = a.length; d < c; d++)
if (0 < a[d].length) return a[0] = a[d], a[0].length = 1, a.length = 1, a.context = [a.context[d]], a;
a.length = 0;
return a
},
xb = function(a, c) {
var f, k, n, e = [],
t = a.aiDisplay;
f = a.aiDisplayMaster;
var h = c.search;
k = c.order;
n = c.page;
if ("ssp" == Wa(a)) return "removed" === h ? [] : Ba(0, f.length);
if ("current" == n)
for (f = a._iDisplayStart, k = a.fnDisplayEnd(); f < k; f++) e.push(t[f]);
else if ("current" == k || "applied" == k) e = "none" == h ? f.slice() : "applied" == h ? t.slice() : d.map(f, function(a) {
return -1 === d.inArray(a, t) ? a : null
});
else if ("index" == k || "original" == k)
for (f = 0, k = a.aoData.length; f < k; f++) "none" == h ? e.push(f) : (n = d.inArray(f, t), (-1 === n && "removed" == h || 0 <= n && "applied" == h) && e.push(f));
return e
};
ba("rows()", function(a, c) {
a === m ? a = "" : d.isPlainObject(a) && (c = a, a = "");
c = bc(c);
var f = this.iterator("table", function(f) {
var k = c,
n;
return Fb("row", a, function(a) {
var c = rc(a);
if (null !== c && !k) return [c];
n || (n = xb(f, k));
if (null !== c && -1 !== d.inArray(c, n)) return [c];
if (null === a || a === m || "" === a) return n;
if ("function" === typeof a) return d.map(n, function(d) {
var c = f.aoData[d];
return a(d, c._aData, c.nTr) ? d : null
});
c = lc(mb(f.aoData, n, "nTr"));
if (a.nodeName) {
if (a._DT_RowIndex !== m) return [a._DT_RowIndex];
if (a._DT_CellIndex) return [a._DT_CellIndex.row];
c = d(a).closest("*[data-dt-row]");
return c.length ? [c.data("dt-row")] : []
}
if ("string" === typeof a && "#" === a.charAt(0)) {
var e = f.aIds[a.replace(/^#/, "")];
if (e !== m) return [e.idx]
}
return d(c).filter(a).map(function() {
return this._DT_RowIndex
}).toArray()
}, f, k)
}, 1);
f.selector.rows = a;
f.selector.opts = c;
return f
});
ba("rows().nodes()", function() {
return this.iterator("row", function(a, d) {
return a.aoData[d].nTr || m
}, 1)
});
ba("rows().data()", function() {
return this.iterator(!0, "rows", function(a, d) {
return mb(a.aoData, d, "_aData")
}, 1)
});
la("rows().cache()", "row().cache()", function(a) {
return this.iterator("row", function(d, c) {
var f = d.aoData[c];
return "search" === a ? f._aFilterData : f._aSortData
}, 1)
});
la("rows().invalidate()", "row().invalidate()", function(a) {
return this.iterator("row", function(d, c) {
O(d, c, a)
})
});
la("rows().indexes()", "row().index()", function() {
return this.iterator("row", function(a, d) {
return d
}, 1)
});
la("rows().ids()", "row().id()", function(a) {
for (var d = [], c = this.context, f = 0, k = c.length; f < k; f++)
for (var n = 0, e = this[f].length; n < e; n++) {
var t = c[f].rowIdFn(c[f].aoData[this[f][n]]._aData);
d.push((!0 === a ? "#" : "") + t)
}
return new ga(c, d)
});
la("rows().remove()", "row().remove()", function() {
var a = this;
this.iterator("row", function(d, c, f) {
var k = d.aoData,
n = k[c],
e, t, h, w, u;
k.splice(c, 1);
e = 0;
for (t = k.length; e < t; e++)
if (h = k[e], u = h.anCells, null !== h.nTr && (h.nTr._DT_RowIndex = e), null !== u)
for (h = 0, w = u.length; h < w; h++) u[h]._DT_CellIndex.row = e;
H(d.aiDisplayMaster, c);
H(d.aiDisplay, c);
H(a[f], c, !1);
ic(d);
c = d.rowIdFn(n._aData);
c !== m && delete d.aIds[c]
});
this.iterator("table", function(a) {
for (var d = 0, c = a.aoData.length; d < c; d++) a.aoData[d].idx = d
});
return this
});
ba("rows.add()", function(a) {
var c = this.iterator("table", function(d) {
var c, f, k, n = [];
f = 0;
for (k = a.length; f < k; f++) c = a[f], c.nodeName && "TR" === c.nodeName.toUpperCase() ? n.push(G(d, c)[0]) : n.push(F(d, c));
return n
}, 1),
f = this.rows(-1);
f.pop();
d.merge(f, c);
return f
});
ba("row()", function(a, d) {
return Xb(this.rows(a, d))
});
ba("row().data()", function(a) {
var d = this.context;
if (a === m) return d.length && this.length ? d[0].aoData[this[0]]._aData : m;
d[0].aoData[this[0]]._aData = a;
O(d[0], this[0], "data");
return this
});
ba("row().node()", function() {
var a = this.context;
return a.length && this.length ? a[0].aoData[this[0]].nTr || null : null
});
ba("row.add()", function(a) {
a instanceof d && a.length && (a = a[0]);
var c = this.iterator("table", function(d) {
return a.nodeName && "TR" === a.nodeName.toUpperCase() ? G(d, a)[0] : F(d, a)
});
return this.row(c[0])
});
var fb = function(a, d) {
var c = a.context;
c.length && (c = c[0].aoData[d !== m ? d : a[0]]) && c._details && (c._details.remove(), c._detailsShow = m, c._details = m)
},
Yb = function(a, d) {
var c = a.context;
if (c.length && a.length) {
var f = c[0].aoData[a[0]];
if (f._details) {
(f._detailsShow = d) ? f._details.insertAfter(f.nTr): f._details.detach();
var k = c[0],
n = new ga(k),
e = k.aoData;
n.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details");
0 < Qa(e, "_details").length && (n.on("draw.dt.DT_details", function(a, d) {
k === d && n.rows({
page: "current"
}).eq(0).each(function(a) {
a = e[a];
a._detailsShow && a._details.insertAfter(a.nTr)
})
}), n.on("column-visibility.dt.DT_details", function(a, d) {
if (k === d)
for (var c, f = v(d), n = 0, t = e.length; n < t; n++) c = e[n], c._details && c._details.children("td[colspan]").attr("colspan", f)
}), n.on("destroy.dt.DT_details", function(a, d) {
if (k === d)
for (var c = 0, f = e.length; c < f; c++) e[c]._details && fb(n, c)
}))
}
}
};
ba("row().child()", function(a, c) {
var f = this.context;
if (a === m) return f.length && this.length ? f[0].aoData[this[0]]._details : m;
if (!0 === a) this.child.show();
else if (!1 === a) fb(this);
else if (f.length && this.length) {
var k = f[0],
f = f[0].aoData[this[0]],
n = [],
e = function(a, c) {
if (d.isArray(a) || a instanceof d)
for (var f = 0, t = a.length; f < t; f++) e(a[f], c);
else a.nodeName && "tr" === a.nodeName.toLowerCase() ? n.push(a) : (f = d("<tr><td/></tr>").addClass(c), d("td", f).addClass(c).html(a)[0].colSpan = v(k), n.push(f[0]))
};
e(a, c);
f._details && f._details.detach();
f._details = d(n);
f._detailsShow && f._details.insertAfter(f.nTr)
}
return this
});
ba(["row().child.show()", "row().child().show()"], function() {
Yb(this, !0);
return this
});
ba(["row().child.hide()", "row().child().hide()"], function() {
Yb(this, !1);
return this
});
ba(["row().child.remove()", "row().child().remove()"], function() {
fb(this);
return this
});
ba("row().child.isShown()", function() {
var a = this.context;
return a.length && this.length ? a[0].aoData[this[0]]._detailsShow || !1 : !1
});
var nc = /^([^:]+):(name|visIdx|visible)$/,
oc = function(a, d, c, f, k) {
c = [];
f = 0;
for (var n = k.length; f < n; f++) c.push(J(a, k[f], d));
return c
};
ba("columns()", function(a, c) {
a === m ? a = "" : d.isPlainObject(a) && (c = a, a = "");
c = bc(c);
var f = this.iterator("table", function(f) {
var k = a,
n = c,
e = f.aoColumns,
t = Qa(e, "sName"),
h = Qa(e, "nTh");
return Fb("column", k, function(a) {
var c = rc(a);
if ("" === a) return Ba(e.length);
if (null !== c) return [0 <= c ? c : e.length + c];
if ("function" === typeof a) {
var k = xb(f, n);
return d.map(e, function(d, c) {
return a(c, oc(f, c, 0, 0, k), h[c]) ? c : null
})
}
var m = "string" === typeof a ? a.match(nc) : "";
if (m) switch (m[2]) {
case "visIdx":
case "visible":
c = parseInt(m[1], 10);
if (0 > c) {
var w = d.map(e, function(a, d) {
return a.bVisible ? d : null
});
return [w[w.length + c]]
}
return [C(f, c)];
case "name":
return d.map(t, function(a, d) {
return a === m[1] ? d : null
});
default:
return []
}
if (a.nodeName && a._DT_CellIndex) return [a._DT_CellIndex.column];
c = d(h).filter(a).map(function() {
return d.inArray(this, h)
}).toArray();
if (c.length || !a.nodeName) return c;
c = d(a).closest("*[data-dt-column]");
return c.length ? [c.data("dt-column")] : []
}, f, n)
}, 1);
f.selector.cols = a;
f.selector.opts = c;
return f
});
la("columns().header()", "column().header()", function() {
return this.iterator("column", function(a, d) {
return a.aoColumns[d].nTh
}, 1)
});
la("columns().footer()", "column().footer()", function() {
return this.iterator("column", function(a, d) {
return a.aoColumns[d].nTf
}, 1)
});
la("columns().data()", "column().data()", function() {
return this.iterator("column-rows", oc, 1)
});
la("columns().dataSrc()", "column().dataSrc()", function() {
return this.iterator("column", function(a, d) {
return a.aoColumns[d].mData
}, 1)
});
la("columns().cache()", "column().cache()", function(a) {
return this.iterator("column-rows", function(d, c, f, k, n) {
return mb(d.aoData, n, "search" === a ? "_aFilterData" : "_aSortData", c)
}, 1)
});
la("columns().nodes()", "column().nodes()", function() {
return this.iterator("column-rows", function(a, d, c, f, k) {
return mb(a.aoData, k, "anCells", d)
}, 1)
});
la("columns().visible()", "column().visible()", function(a, c) {
var f = this.iterator("column", function(c, f) {
if (a === m) return c.aoColumns[f].bVisible;
var k = c.aoColumns,
n = k[f],
e = c.aoData,
t, h, w;
if (a !== m && n.bVisible !== a) {
if (a) {
var u = d.inArray(!0, Qa(k, "bVisible"), f + 1);
t = 0;
for (h = e.length; t < h; t++) w = e[t].nTr, k = e[t].anCells, w && w.insertBefore(k[f], k[u] || null)
} else d(Qa(c.aoData, "anCells", f)).detach();
n.bVisible = a;
Z(c, c.aoHeader);
Z(c, c.aoFooter);
Va(c)
}
});
a !== m && (this.iterator("column", function(d, f) {
qa(d, null, "column-visibility", [d, f, a, c])
}), (c === m || c) && this.columns.adjust());
return f
});
la("columns().indexes()", "column().index()", function(a) {
return this.iterator("column", function(d, c) {
return "visible" === a ? A(d, c) : c
}, 1)
});
ba("columns.adjust()", function() {
return this.iterator("table", function(a) {
u(a)
}, 1)
});
ba("column.index()", function(a, d) {
if (0 !== this.context.length) {
var c = this.context[0];
if ("fromVisible" === a || "toData" === a) return C(c, d);
if ("fromData" === a || "toVisible" === a) return A(c, d)
}
});
ba("column()", function(a, d) {
return Xb(this.columns(a, d))
});
ba("cells()", function(a, c, f) {
d.isPlainObject(a) && (a.row === m ? (f = a, a = null) : (f = c, c = null));
d.isPlainObject(c) && (f = c, c = null);
if (null === c || c === m) return this.iterator("table", function(c) {
var k = a,
n = bc(f),
e = c.aoData,
t = xb(c, n),
h = lc(mb(e, t, "anCells")),
w = d([].concat.apply([], h)),
u, q = c.aoColumns.length,
p, C, v, A, B, D;
return Fb("cell", k, function(a) {
var f = "function" === typeof a;
if (null === a || a === m || f) {
p = [];
C = 0;
for (v = t.length; C < v; C++)
for (u = t[C], A = 0; A < q; A++) B = {
row: u,
column: A
}, f ? (D = e[u], a(B, J(c, u, A), D.anCells ? D.anCells[A] : null) && p.push(B)) : p.push(B);
return p
}
if (d.isPlainObject(a)) return [a];
f = w.filter(a).map(function(a, d) {
return {
row: d._DT_CellIndex.row,
column: d._DT_CellIndex.column
}
}).toArray();
if (f.length || !a.nodeName) return f;
D = d(a).closest("*[data-dt-row]");
return D.length ? [{
row: D.data("dt-row"),
column: D.data("dt-column")
}] : []
}, c, n)
});
var k = this.columns(c, f),
n = this.rows(a, f),
e, t, h, w, u, q = this.iterator("table", function(a, d) {
e = [];
t = 0;
for (h = n[d].length; t < h; t++)
for (w = 0, u = k[d].length; w < u; w++) e.push({
row: n[d][t],
column: k[d][w]
});
return e
}, 1);
d.extend(q.selector, {
cols: c,
rows: a,
opts: f
});
return q
});
la("cells().nodes()", "cell().node()", function() {
return this.iterator("cell", function(a, d, c) {
return (a = a.aoData[d]) && a.anCells ? a.anCells[c] : m
}, 1)
});
ba("cells().data()", function() {
return this.iterator("cell", function(a, d, c) {
return J(a, d, c)
}, 1)
});
la("cells().cache()", "cell().cache()", function(a) {
a = "search" === a ? "_aFilterData" : "_aSortData";
return this.iterator("cell", function(d, c, f) {
return d.aoData[c][a][f]
}, 1)
});
la("cells().render()", "cell().render()", function(a) {
return this.iterator("cell", function(d, c, f) {
return J(d, c, f, a)
}, 1)
});
la("cells().indexes()", "cell().index()", function() {
return this.iterator("cell", function(a, d, c) {
return {
row: d,
column: c,
columnVisible: A(a, c)
}
}, 1)
});
la("cells().invalidate()", "cell().invalidate()", function(a) {
return this.iterator("cell", function(d, c, f) {
O(d, c, a, f)
})
});
ba("cell()", function(a, d, c) {
return Xb(this.cells(a, d, c))
});
ba("cell().data()", function(a) {
var d = this.context,
c = this[0];
if (a === m) return d.length && c.length ? J(d[0], c[0].row, c[0].column) : m;
I(d[0], c[0].row, c[0].column, a);
O(d[0], c[0].row, "data", c[0].column);
return this
});
ba("order()", function(a, c) {
var f = this.context;
if (a === m) return 0 !== f.length ? f[0].aaSorting : m;
"number" === typeof a ? a = [
[a, c]
] : a.length && !d.isArray(a[0]) && (a = Array.prototype.slice.call(arguments));
return this.iterator("table", function(d) {
d.aaSorting = a.slice()
})
});
ba("order.listener()", function(a, d, c) {
return this.iterator("table", function(f) {
Ab(f, a, d, c)
})
});
ba("order.fixed()", function(a) {
if (!a) {
var c = this.context,
c = c.length ? c[0].aaSortingFixed : m;
return d.isArray(c) ? {
pre: c
} : c
}
return this.iterator("table", function(c) {
c.aaSortingFixed = d.extend(!0, {}, a)
})
});
ba(["columns().order()", "column().order()"], function(a) {
var c = this;
return this.iterator("table", function(f, k) {
var n = [];
d.each(c[k], function(d, c) {
n.push([c, a])
});
f.aaSorting = n
})
});
ba("search()", function(a, c, f, k) {
var n = this.context;
return a === m ? 0 !== n.length ? n[0].oPreviousSearch.sSearch : m : this.iterator("table", function(n) {
n.oFeatures.bFilter && ja(n, d.extend({}, n.oPreviousSearch, {
sSearch: a + "",
bRegex: null === c ? !1 : c,
bSmart: null === f ? !0 : f,
bCaseInsensitive: null === k ? !0 : k
}), 1)
})
});
la("columns().search()", "column().search()", function(a, c, f, k) {
return this.iterator("column", function(n, e) {
var t = n.aoPreSearchCols;
if (a === m) return t[e].sSearch;
n.oFeatures.bFilter && (d.extend(t[e], {
sSearch: a + "",
bRegex: null === c ? !1 : c,
bSmart: null === f ? !0 : f,
bCaseInsensitive: null === k ? !0 : k
}), ja(n, n.oPreviousSearch, 1))
})
});
ba("state()", function() {
return this.context.length ? this.context[0].oSavedState : null
});
ba("state.clear()", function() {
return this.iterator("table", function(a) {
a.fnStateSaveCallback.call(a.oInstance, a, {})
})
});
ba("state.loaded()", function() {
return this.context.length ? this.context[0].oLoadedState : null
});
ba("state.save()", function() {
return this.iterator("table", function(a) {
Va(a)
})
});
T.versionCheck = T.fnVersionCheck = function(a) {
var d = T.version.split(".");
a = a.split(".");
for (var c, f, k = 0, n = a.length; k < n; k++)
if (c = parseInt(d[k], 10) || 0, f = parseInt(a[k], 10) || 0, c !== f) return c > f;
return !0
};
T.isDataTable = T.fnIsDataTable = function(a) {
var c = d(a).get(0),
f = !1;
if (a instanceof T.Api) return !0;
d.each(T.settings, function(a, k) {
var n = k.nScrollHead ? d("table", k.nScrollHead)[0] : null,
e = k.nScrollFoot ? d("table", k.nScrollFoot)[0] : null;
if (k.nTable === c || n === c || e === c) f = !0
});
return f
};
T.tables = T.fnTables = function(a) {
var c = !1;
d.isPlainObject(a) && (c = a.api, a = a.visible);
var f = d.map(T.settings, function(c) {
if (!a || a && d(c.nTable).is(":visible")) return c.nTable
});
return c ? new ga(f) : f
};
T.camelToHungarian = p;
ba("$()", function(a, c) {
var f = this.rows(c).nodes(),
f = d(f);
return d([].concat(f.filter(a).toArray(), f.find(a).toArray()))
});
d.each(["on", "one", "off"], function(a, c) {
ba(c + "()", function() {
var a = Array.prototype.slice.call(arguments);
a[0] = d.map(a[0].split(/\s/), function(a) {
return a.match(/\.dt\b/) ? a : a + ".dt"
}).join(" ");
var f = d(this.tables().nodes());
f[c].apply(f, a);
return this
})
});
ba("clear()", function() {
return this.iterator("table", function(a) {
Q(a)
})
});
ba("settings()", function() {
return new ga(this.context, this.context)
});
ba("init()", function() {
var a = this.context;
return a.length ? a[0].oInit : null
});
ba("data()", function() {
return this.iterator("table", function(a) {
return Qa(a.aoData, "_aData")
}).flatten()
});
ba("destroy()", function(a) {
a = a || !1;
return this.iterator("table", function(f) {
var k = f.nTableWrapper.parentNode,
n = f.oClasses,
e = f.nTable,
t = f.nTBody,
h = f.nTHead,
m = f.nTFoot,
w = d(e),
t = d(t),
u = d(f.nTableWrapper),
q = d.map(f.aoData, function(a) {
return a.nTr
}),
p;
f.bDestroying = !0;
qa(f, "aoDestroyCallback", "destroy", [f]);
a || new ga(f).columns().visible(!0);
u.off(".DT").find(":not(tbody *)").off(".DT");
d(c).off(".DT-" + f.sInstance);
e != h.parentNode && (w.children("thead").detach(), w.append(h));
m && e != m.parentNode && (w.children("tfoot").detach(), w.append(m));
f.aaSorting = [];
f.aaSortingFixed = [];
pb(f);
d(q).removeClass(f.asStripeClasses.join(" "));
d("th, td", h).removeClass(n.sSortable + " " + n.sSortableAsc + " " + n.sSortableDesc + " " + n.sSortableNone);
f.bJUI && (d("th span." + n.sSortIcon + ", td span." + n.sSortIcon, h).detach(), d("th, td", h).each(function() {
var a = d("div." + n.sSortJUIWrapper, this);
d(this).append(a.contents());
a.detach()
}));
t.children().detach();
t.append(q);
h = a ? "remove" : "detach";
w[h]();
u[h]();
!a && k && (k.insertBefore(e, f.nTableReinsertBefore), w.css("width", f.sDestroyWidth).removeClass(n.sTable), (p = f.asDestroyStripes.length) && t.children().each(function(a) {
d(this).addClass(f.asDestroyStripes[a % p])
}));
k = d.inArray(f, T.settings); - 1 !== k && T.settings.splice(k, 1)
})
});
d.each(["column", "row", "cell"], function(a, d) {
ba(d + "s().every()", function(a) {
var c = this.selector.opts,
f = this;
return this.iterator(d, function(k, n, e, t, h) {
a.call(f[d](n, "cell" === d ? e : c, "cell" === d ? c : m), n, e, t, h)
})
})
});
ba("i18n()", function(a, c, f) {
var k = this.context[0];
a = M(a)(k.oLanguage);
a === m && (a = c);
f !== m && d.isPlainObject(a) && (a = a[f] !== m ? a[f] : a._);
return a.replace("%d", f)
});
T.version = "1.10.13";
T.settings = [];
T.models = {};
T.models.oSearch = {
bCaseInsensitive: !0,
sSearch: "",
bRegex: !1,
bSmart: !0
};
T.models.oRow = {
nTr: null,
anCells: null,
_aData: [],
_aSortData: null,
_aFilterData: null,
_sFilterRow: null,
_sRowStripe: "",
src: null,
idx: -1
};
T.models.oColumn = {
idx: null,
aDataSort: null,
asSorting: null,
bSearchable: null,
bSortable: null,
bVisible: null,
_sManualType: null,
_bAttrSrc: !1,
fnCreatedCell: null,
fnGetData: null,
fnSetData: null,
mData: null,
mRender: null,
nTh: null,
nTf: null,
sClass: null,
sContentPadding: null,
sDefaultContent: null,
sName: null,
sSortDataType: "std",
sSortingClass: null,
sSortingClassJUI: null,
sTitle: null,
sType: null,
sWidth: null,
sWidthOrig: null
};
T.defaults = {
aaData: null,
aaSorting: [
[0, "asc"]
],
aaSortingFixed: [],
ajax: null,
aLengthMenu: [10, 25, 50, 100],
aoColumns: null,
aoColumnDefs: null,
aoSearchCols: [],
asStripeClasses: null,
bAutoWidth: !0,
bDeferRender: !1,
bDestroy: !1,
bFilter: !0,
bInfo: !0,
bJQueryUI: !1,
bLengthChange: !0,
bPaginate: !0,
bProcessing: !1,
bRetrieve: !1,
bScrollCollapse: !1,
bServerSide: !1,
bSort: !0,
bSortMulti: !0,
bSortCellsTop: !1,
bSortClasses: !0,
bStateSave: !1,
fnCreatedRow: null,
fnDrawCallback: null,
fnFooterCallback: null,
fnFormatNumber: function(a) {
return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g, this.oLanguage.sThousands)
},
fnHeaderCallback: null,
fnInfoCallback: null,
fnInitComplete: null,
fnPreDrawCallback: null,
fnRowCallback: null,
fnServerData: null,
fnServerParams: null,
fnStateLoadCallback: function(a) {
try {
return JSON.parse((-1 === a.iStateDuration ? sessionStorage : localStorage).getItem("DataTables_" + a.sInstance + "_" + location.pathname))
} catch (Ca) {}
},
fnStateLoadParams: null,
fnStateLoaded: null,
fnStateSaveCallback: function(a, d) {
try {
(-1 === a.iStateDuration ? sessionStorage : localStorage).setItem("DataTables_" + a.sInstance + "_" + location.pathname, JSON.stringify(d))
} catch (fa) {}
},
fnStateSaveParams: null,
iStateDuration: 7200,
iDeferLoading: null,
iDisplayLength: 10,
iDisplayStart: 0,
iTabIndex: 0,
oClasses: {},
oLanguage: {
oAria: {
sSortAscending: ": activate to sort column ascending",
sSortDescending: ": activate to sort column descending"
},
oPaginate: {
sFirst: "First",
sLast: "Last",
sNext: "Next",
sPrevious: "Previous"
},
sEmptyTable: "No data available in table",
sInfo: "Showing _START_ to _END_ of _TOTAL_ entries",
sInfoEmpty: "Showing 0 to 0 of 0 entries",
sInfoFiltered: "(filtered from _MAX_ total entries)",
sInfoPostFix: "",
sDecimal: "",
sThousands: ",",
sLengthMenu: "Show _MENU_ entries",
sLoadingRecords: "Loading...",
sProcessing: "Processing...",
sSearch: "Search:",
sSearchPlaceholder: "",
sUrl: "",
sZeroRecords: "No matching records found"
},
oSearch: d.extend({}, T.models.oSearch),
sAjaxDataProp: "data",
sAjaxSource: null,
sDom: "lfrtip",
searchDelay: null,
sPaginationType: "simple_numbers",
sScrollX: "",
sScrollXInner: "",
sScrollY: "",
sServerMethod: "GET",
renderer: null,
rowId: "DT_RowId"
};
h(T.defaults);
T.defaults.column = {
aDataSort: null,
iDataSort: -1,
asSorting: ["asc", "desc"],
bSearchable: !0,
bSortable: !0,
bVisible: !0,
fnCreatedCell: null,
mData: null,
mRender: null,
sCellType: "td",
sClass: "",
sContentPadding: "",
sDefaultContent: null,
sName: "",
sSortDataType: "std",
sTitle: null,
sType: null,
sWidth: null
};
h(T.defaults.column);
T.models.oSettings = {
oFeatures: {
bAutoWidth: null,
bDeferRender: null,
bFilter: null,
bInfo: null,
bLengthChange: null,
bPaginate: null,
bProcessing: null,
bServerSide: null,
bSort: null,
bSortMulti: null,
bSortClasses: null,
bStateSave: null
},
oScroll: {
bCollapse: null,
iBarWidth: 0,
sX: null,
sXInner: null,
sY: null
},
oLanguage: {
fnInfoCallback: null
},
oBrowser: {
bScrollOversize: !1,
bScrollbarLeft: !1,
bBounding: !1,
barWidth: 0
},
ajax: null,
aanFeatures: [],
aoData: [],
aiDisplay: [],
aiDisplayMaster: [],
aIds: {},
aoColumns: [],
aoHeader: [],
aoFooter: [],
oPreviousSearch: {},
aoPreSearchCols: [],
aaSorting: null,
aaSortingFixed: [],
asStripeClasses: null,
asDestroyStripes: [],
sDestroyWidth: 0,
aoRowCallback: [],
aoHeaderCallback: [],
aoFooterCallback: [],
aoDrawCallback: [],
aoRowCreatedCallback: [],
aoPreDrawCallback: [],
aoInitComplete: [],
aoStateSaveParams: [],
aoStateLoadParams: [],
aoStateLoaded: [],
sTableId: "",
nTable: null,
nTHead: null,
nTFoot: null,
nTBody: null,
nTableWrapper: null,
bDeferLoading: !1,
bInitialised: !1,
aoOpenRows: [],
sDom: null,
searchDelay: null,
sPaginationType: "two_button",
iStateDuration: 0,
aoStateSave: [],
aoStateLoad: [],
oSavedState: null,
oLoadedState: null,
sAjaxSource: null,
sAjaxDataProp: null,
bAjaxDataGet: !0,
jqXHR: null,
json: m,
oAjaxData: m,
fnServerData: null,
aoServerParams: [],
sServerMethod: null,
fnFormatNumber: null,
aLengthMenu: null,
iDraw: 0,
bDrawing: !1,
iDrawError: -1,
_iDisplayLength: 10,
_iDisplayStart: 0,
_iRecordsTotal: 0,
_iRecordsDisplay: 0,
bJUI: null,
oClasses: {},
bFiltered: !1,
bSorted: !1,
bSortCellsTop: null,
oInit: null,
aoDestroyCallback: [],
fnRecordsTotal: function() {
return "ssp" == Wa(this) ? 1 * this._iRecordsTotal : this.aiDisplayMaster.length
},
fnRecordsDisplay: function() {
return "ssp" == Wa(this) ? 1 * this._iRecordsDisplay : this.aiDisplay.length
},
fnDisplayEnd: function() {
var a = this._iDisplayLength,
d = this._iDisplayStart,
c = d + a,
f = this.aiDisplay.length,
k = this.oFeatures,
n = k.bPaginate;
return k.bServerSide ? !1 === n || -1 === a ? d + f : Math.min(d + a, this._iRecordsDisplay) : !n || c > f || -1 === a ? f : c
},
oInstance: null,
sInstance: null,
iTabIndex: 0,
nScrollHead: null,
nScrollFoot: null,
aLastSort: [],
oPlugins: {},
rowIdFn: null,
rowId: null
};
T.ext = ra = {
buttons: {},
classes: {},
builder: "-source-",
errMode: "alert",
feature: [],
search: [],
selector: {
cell: [],
column: [],
row: []
},
internal: {},
legacy: {
ajax: null
},
pager: {},
renderer: {
pageButton: {},
header: {}
},
order: {},
type: {
detect: [],
search: {},
order: {}
},
_unique: 0,
fnVersionCheck: T.fnVersionCheck,
iApiIndex: 0,
oJUIClasses: {},
sVersion: T.version
};
d.extend(ra, {
afnFiltering: ra.search,
aTypes: ra.type.detect,
ofnSearch: ra.type.search,
oSort: ra.type.order,
afnSortData: ra.order,
aoFeatures: ra.feature,
oApi: ra.internal,
oStdClasses: ra.classes,
oPagination: ra.pager
});
d.extend(T.ext.classes, {
sTable: "dataTable",
sNoFooter: "no-footer",
sPageButton: "paginate_button",
sPageButtonActive: "current",
sPageButtonDisabled: "disabled",
sStripeOdd: "odd",
sStripeEven: "even",
sRowEmpty: "dataTables_empty",
sWrapper: "dataTables_wrapper",
sFilter: "dataTables_filter",
sInfo: "dataTables_info",
sPaging: "dataTables_paginate paging_",
sLength: "dataTables_length",
sProcessing: "dataTables_processing",
sSortAsc: "sorting_asc",
sSortDesc: "sorting_desc",
sSortable: "sorting",
sSortableAsc: "sorting_asc_disabled",
sSortableDesc: "sorting_desc_disabled",
sSortableNone: "sorting_disabled",
sSortColumn: "sorting_",
sFilterInput: "",
sLengthSelect: "",
sScrollWrapper: "dataTables_scroll",
sScrollHead: "dataTables_scrollHead",
sScrollHeadInner: "dataTables_scrollHeadInner",
sScrollBody: "dataTables_scrollBody",
sScrollFoot: "dataTables_scrollFoot",
sScrollFootInner: "dataTables_scrollFootInner",
sHeaderTH: "",
sFooterTH: "",
sSortJUIAsc: "",
sSortJUIDesc: "",
sSortJUI: "",
sSortJUIAscAllowed: "",
sSortJUIDescAllowed: "",
sSortJUIWrapper: "",
sSortIcon: "",
sJUIHeader: "",
sJUIFooter: ""
});
var eb = "",
eb = "",
Pa = eb + "ui-state-default",
$a = eb + "css_right ui-icon ui-icon-",
Ja = eb + "fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix";
d.extend(T.ext.oJUIClasses, T.ext.classes, {
sPageButton: "fg-button ui-button " + Pa,
sPageButtonActive: "ui-state-disabled",
sPageButtonDisabled: "ui-state-disabled",
sPaging: "dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",
sSortAsc: Pa + " sorting_asc",
sSortDesc: Pa + " sorting_desc",
sSortable: Pa + " sorting",
sSortableAsc: Pa + " sorting_asc_disabled",
sSortableDesc: Pa + " sorting_desc_disabled",
sSortableNone: Pa + " sorting_disabled",
sSortJUIAsc: $a + "triangle-1-n",
sSortJUIDesc: $a + "triangle-1-s",
sSortJUI: $a + "carat-2-n-s",
sSortJUIAscAllowed: $a + "carat-1-n",
sSortJUIDescAllowed: $a + "carat-1-s",
sSortJUIWrapper: "DataTables_sort_wrapper",
sSortIcon: "DataTables_sort_icon",
sScrollHead: "dataTables_scrollHead " + Pa,
sScrollFoot: "dataTables_scrollFoot " + Pa,
sHeaderTH: Pa,
sFooterTH: Pa,
sJUIHeader: Ja + " ui-corner-tl ui-corner-tr",
sJUIFooter: Ja + " ui-corner-bl ui-corner-br"
});
var cb = T.ext.pager;
d.extend(cb, {
simple: function() {
return ["previous", "next"]
},
full: function() {
return ["first", "previous", "next", "last"]
},
numbers: function(a, d) {
return [Pb(a, d)]
},
simple_numbers: function(a, d) {
return ["previous", Pb(a, d), "next"]
},
full_numbers: function(a, d) {
return ["first", "previous", Pb(a, d), "next", "last"]
},
first_last_numbers: function(a, d) {
return ["first", Pb(a, d), "last"]
},
_numbers: Pb,
numbers_length: 7
});
d.extend(!0, T.ext.renderer, {
pageButton: {
_: function(a, c, f, k, n, t) {
var h = a.oClasses,
w = a.oLanguage.oPaginate,
u = a.oLanguage.oAria.paginate || {},
q, p, C = 0,
v = function(c, k) {
var e, m, A, B, D = function(d) {
kb(a, d.data.action, !0)
};
e = 0;
for (m = k.length; e < m; e++)
if (B = k[e], d.isArray(B)) A = d("<" + (B.DT_el || "div") + "/>").appendTo(c), v(A, B);
else {
q = null;
p = "";
switch (B) {
case "ellipsis":
c.append('<span class="ellipsis">&#x2026;</span>');
break;
case "first":
q = w.sFirst;
p = B + (0 < n ? "" : " " + h.sPageButtonDisabled);
break;
case "previous":
q = w.sPrevious;
p = B + (0 < n ? "" : " " + h.sPageButtonDisabled);
break;
case "next":
q = w.sNext;
p = B + (n < t - 1 ? "" : " " + h.sPageButtonDisabled);
break;
case "last":
q = w.sLast;
p = B + (n < t - 1 ? "" : " " + h.sPageButtonDisabled);
break;
default:
q = B + 1, p = n === B ? h.sPageButtonActive : ""
}
null !== q && (A = d("<a>", {
class: h.sPageButton + " " + p,
"aria-controls": a.sTableId,
"aria-label": u[B],
"data-dt-idx": C,
tabindex: a.iTabIndex,
id: 0 === f && "string" === typeof B ? a.sTableId + "_" + B : null
}).html(q).appendTo(c), qb(A, {
action: B
}, D), C++)
}
},
A;
try {
A = d(c).find(e.activeElement).data("dt-idx")
} catch (qc) {}
v(d(c).empty(), k);
A !== m && d(c).find("[data-dt-idx=" + A + "]").focus()
}
}
});
d.extend(T.ext.type.detect, [function(a, d) {
var c = d.oLanguage.sDecimal;
return Sb(a, c) ? "num" + c : null
}, function(a) {
if (a && !(a instanceof Date) && !Cb.test(a)) return null;
var d = Date.parse(a);
return null !== d && !isNaN(d) || sb(a) ? "date" : null
}, function(a, d) {
var c = d.oLanguage.sDecimal;
return Sb(a, c, !0) ? "num-fmt" + c : null
}, function(a, d) {
var c = d.oLanguage.sDecimal;
return dc(a, c) ? "html-num" + c : null
}, function(a, d) {
var c = d.oLanguage.sDecimal;
return dc(a, c, !0) ? "html-num-fmt" + c : null
}, function(a) {
return sb(a) || "string" === typeof a && -1 !== a.indexOf("<") ? "html" : null
}]);
d.extend(T.ext.type.search, {
html: function(a) {
return sb(a) ? a : "string" === typeof a ? a.replace(zb, " ").replace(rb, "") : ""
},
string: function(a) {
return sb(a) ? a : "string" === typeof a ? a.replace(zb, " ") : a
}
});
var gb = function(a, d, c, f) {
if (0 !== a && (!a || "-" === a)) return -Infinity;
d && (a = kc(a, d));
a.replace && (c && (a = a.replace(c, "")), f && (a = a.replace(f, "")));
return 1 * a
};
d.extend(ra.type.order, {
"date-pre": function(a) {
return Date.parse(a) || -Infinity
},
"html-pre": function(a) {
return sb(a) ? "" : a.replace ? a.replace(/<.*?>/g, "").toLowerCase() : a + ""
},
"string-pre": function(a) {
return sb(a) ? "" : "string" === typeof a ? a.toLowerCase() : a.toString ? a.toString() : ""
},
"string-asc": function(a, d) {
return a < d ? -1 : a > d ? 1 : 0
},
"string-desc": function(a, d) {
return a < d ? 1 : a > d ? -1 : 0
}
});
ac("");
d.extend(!0, T.ext.renderer, {
header: {
_: function(a, c, f, k) {
d(a.nTable).on("order.dt.DT", function(d, n, e, t) {
a === n && (d = f.idx, c.removeClass(f.sSortingClass + " " + k.sSortAsc + " " + k.sSortDesc).addClass("asc" == t[d] ? k.sSortAsc : "desc" == t[d] ? k.sSortDesc : f.sSortingClass))
})
},
jqueryui: function(a, c, f, k) {
d("<div/>").addClass(k.sSortJUIWrapper).append(c.contents()).append(d("<span/>").addClass(k.sSortIcon + " " + f.sSortingClassJUI)).appendTo(c);
d(a.nTable).on("order.dt.DT", function(d, n, e, t) {
a === n && (d = f.idx, c.removeClass(k.sSortAsc + " " + k.sSortDesc).addClass("asc" == t[d] ? k.sSortAsc : "desc" == t[d] ? k.sSortDesc : f.sSortingClass), c.find("span." + k.sSortIcon).removeClass(k.sSortJUIAsc + " " + k.sSortJUIDesc + " " + k.sSortJUI + " " + k.sSortJUIAscAllowed + " " + k.sSortJUIDescAllowed).addClass("asc" == t[d] ? k.sSortJUIAsc : "desc" == t[d] ? k.sSortJUIDesc : f.sSortingClassJUI))
})
}
}
});
var Gb = function(a) {
return "string" === typeof a ? a.replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;") : a
};
T.render = {
number: function(a, d, c, f, k) {
return {
display: function(n) {
if ("number" !== typeof n && "string" !== typeof n) return n;
var e = 0 > n ? "-" : "",
t = parseFloat(n);
if (isNaN(t)) return Gb(n);
t = t.toFixed(c);
n = Math.abs(t);
t = parseInt(n, 10);
n = c ? d + (n - t).toFixed(c).substring(2) : "";
return e + (f || "") + t.toString().replace(/\B(?=(\d{3})+(?!\d))/g, a) + n + (k || "")
}
}
},
text: function() {
return {
display: Gb
}
}
};
d.extend(T.ext.internal, {
_fnExternApiFunc: db,
_fnBuildAjax: S,
_fnAjaxUpdate: wa,
_fnAjaxParameters: ta,
_fnAjaxUpdateDraw: na,
_fnAjaxDataSrc: ea,
_fnAddColumn: t,
_fnColumnOptions: w,
_fnAdjustColumnSizing: u,
_fnVisibleToColumnIndex: C,
_fnColumnIndexToVisible: A,
_fnVisbleColumns: v,
_fnGetColumns: B,
_fnColumnTypes: D,
_fnApplyColumnDefs: E,
_fnHungarianMap: h,
_fnCamelToHungarian: p,
_fnLanguageCompat: q,
_fnBrowserDetect: k,
_fnAddData: F,
_fnAddTr: G,
_fnNodeToDataIndex: function(a, d) {
return d._DT_RowIndex !== m ? d._DT_RowIndex : null
},
_fnNodeToColumnIndex: function(a, c, f) {
return d.inArray(f, a.aoData[c].anCells)
},
_fnGetCellData: J,
_fnSetCellData: I,
_fnSplitObjNotation: K,
_fnGetObjectDataFn: M,
_fnSetObjectDataFn: L,
_fnGetDataMaster: U,
_fnClearTable: Q,
_fnDeleteIndex: H,
_fnInvalidate: O,
_fnGetRowElements: W,
_fnCreateTr: ca,
_fnBuildHead: Y,
_fnDrawHead: Z,
_fnDraw: R,
_fnReDraw: aa,
_fnAddOptionsHtml: da,
_fnDetectHeader: ua,
_fnGetUniqueThs: Da,
_fnFeatureHtmlFilter: Ea,
_fnFilterComplete: ja,
_fnFilterCustom: hb,
_fnFilterColumn: ob,
_fnFilter: xa,
_fnFilterCreateSearch: P,
_fnEscapeRegex: Na,
_fnFilterData: z,
_fnFeatureHtmlInfo: Qb,
_fnUpdateInfo: Ia,
_fnInfoMacros: za,
_fnInitialise: Ta,
_fnInitComplete: ib,
_fnLengthChange: Ib,
_fnFeatureHtmlLength: jb,
_fnFeatureHtmlPaginate: X,
_fnPageChange: kb,
_fnFeatureHtmlProcessing: La,
_fnProcessingDisplay: Ga,
_fnFeatureHtmlTable: Ha,
_fnScrollDraw: Sa,
_fnApplyToChildren: Ua,
_fnCalculateColumnWidths: ub,
_fnThrottle: ka,
_fnConvertToWidth: ab,
_fnGetWidestNode: yb,
_fnGetMaxLenString: Ma,
_fnStringToCss: ia,
_fnSortFlatten: va,
_fnSort: vb,
_fnSortAria: Jb,
_fnSortListener: ma,
_fnSortAttachListener: Ab,
_fnSortingClasses: pb,
_fnSortData: Lb,
_fnSaveState: Va,
_fnLoadState: cc,
_fnSettingsFromNode: Bb,
_fnLog: lb,
_fnMap: Za,
_fnBindAction: qb,
_fnCallbackReg: Aa,
_fnCallbackFire: qa,
_fnLengthOverflow: ic,
_fnRenderer: jc,
_fnDataSource: Wa,
_fnRowAttributes: ha,
_fnCalculateEnd: function() {}
});
d.fn.dataTable = T;
T.$ = d;
d.fn.dataTableSettings = T.settings;
d.fn.dataTableExt = T.ext;
d.fn.DataTable = function(a) {
return d(this).dataTable(a).api()
};
d.each(T, function(a, c) {
d.fn.DataTable[a] = c
});
return d.fn.dataTable
});
! function(d) {
"object" == typeof exports && "undefined" != typeof module ? module.exports = d() : "function" == typeof define && define.amd ? define([], d) : ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).Chart = d()
}(function() {
return function c(e, m, h) {
function p(a, k) {
if (!m[a]) {
if (!e[a]) {
var f = "function" == typeof require && require;
if (!k && f) return f(a, !0);
if (q) return q(a, !0);
f = Error("Cannot find module '" + a + "'");
throw f.code = "MODULE_NOT_FOUND", f
}
f = m[a] = {
exports: {}
};
e[a][0].call(f.exports, function(c) {
var f = e[a][1][c];
return p(f ? f : c)
}, f, f.exports, c, e, m, h)
}
return m[a].exports
}
for (var q = "function" == typeof require && require, a = 0; a < h.length; a++) p(h[a]);
return p
}({
1: [function(c, e, m) {
function h(a) {
if (a) {
var c = /^#([a-fA-F0-9]{6})$/,
f = /^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/,
k = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/,
e = /(\w+)/,
t = [0, 0, 0],
h = 1,
m = a.match(/^#([a-fA-F0-9]{3})$/);
if (m)
for (m = m[1], a = 0; a < t.length; a++) t[a] = parseInt(m[a] + m[a], 16);
else if (m = a.match(c))
for (m = m[1], a = 0; a < t.length; a++) t[a] = parseInt(m.slice(2 * a, 2 * a + 2), 16);
else if (m = a.match(f)) {
for (a = 0; a < t.length; a++) t[a] = parseInt(m[a + 1]);
h = parseFloat(m[4])
} else if (m = a.match(k)) {
for (a = 0; a < t.length; a++) t[a] = Math.round(2.55 * parseFloat(m[a + 1]));
h = parseFloat(m[4])
} else if (m = a.match(e)) {
if ("transparent" == m[1]) return [0, 0, 0, 0];
if (t = w[m[1]], !t) return
}
for (a = 0; a < t.length; a++) t[a] = n(t[a], 0, 255);
return h = h || 0 == h ? n(h, 0, 1) : 1, t[3] = h, t
}
}
function p(a) {
if (a) {
var c = a.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);
if (c) {
var f = parseFloat(c[4]);
a = n(parseInt(c[1]), 0, 360);
var k = n(parseFloat(c[2]), 0, 100),
c = n(parseFloat(c[3]), 0, 100),
f = n(isNaN(f) ? 1 : f, 0, 1);
return [a, k, c, f]
}
}
}
function q(a) {
if (a) {
var c = a.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);
if (c) {
var f = parseFloat(c[4]);
a = n(parseInt(c[1]), 0, 360);
var k = n(parseFloat(c[2]), 0, 100),
c = n(parseFloat(c[3]), 0, 100),
f = n(isNaN(f) ? 1 : f, 0, 1);
return [a, k, c, f]
}
}
}
function a(a, c) {
return void 0 === c && (c = void 0 !== a[3] ? a[3] : 1), "rgba(" + a[0] + ", " + a[1] + ", " + a[2] + ", " + c + ")"
}
function f(a, c) {
return "rgba(" + Math.round(a[0] / 255 * 100) + "%, " + Math.round(a[1] / 255 * 100) + "%, " + Math.round(a[2] / 255 * 100) + "%, " + (c || a[3] || 1) + ")"
}
function k(a, c) {
return void 0 === c && (c = void 0 !== a[3] ? a[3] : 1), "hsla(" + a[0] + ", " + a[1] + "%, " + a[2] + "%, " + c + ")"
}
function n(a, c, f) {
return Math.min(Math.max(c, a), f)
}
function t(a) {
a = a.toString(16).toUpperCase();
return 2 > a.length ? "0" + a : a
}
var w = c(5);
e.exports = {
getRgba: h,
getHsla: p,
getRgb: function(a) {
return (a = h(a)) && a.slice(0, 3)
},
getHsl: function(a) {
return (a = p(a)) && a.slice(0, 3)
},
getHwb: q,
getAlpha: function(a) {
var c = h(a);
return c ? c[3] : (c = p(a)) ? c[3] : (c = q(a)) ? c[3] : void 0
},
hexString: function(a) {
return "#" + t(a[0]) + t(a[1]) + t(a[2])
},
rgbString: function(c, f) {
return 1 > f || c[3] && 1 > c[3] ? a(c, f) : "rgb(" + c[0] + ", " + c[1] + ", " + c[2] + ")"
},
rgbaString: a,
percentString: function(a, c) {
return 1 > c || a[3] && 1 > a[3] ? f(a, c) : "rgb(" + Math.round(a[0] / 255 * 100) + "%, " + Math.round(a[1] / 255 * 100) + "%, " + Math.round(a[2] / 255 * 100) + "%)"
},
percentaString: f,
hslString: function(a, c) {
return 1 > c || a[3] && 1 > a[3] ? k(a, c) : "hsl(" + a[0] + ", " + a[1] + "%, " + a[2] + "%)"
},
hslaString: k,
hwbString: function(a, c) {
return void 0 === c && (c = void 0 !== a[3] ? a[3] : 1), "hwb(" + a[0] + ", " + a[1] + "%, " + a[2] + "%" + (void 0 !== c && 1 !== c ? ", " + c : "") + ")"
},
keyword: function(a) {
return u[a.slice(0, 3)]
}
};
var u = {},
C;
for (C in w) u[w[C]] = C
}, {
5: 5
}],
2: [function(c, e, m) {
var h = c(4),
p = c(1),
q = function(a) {
if (a instanceof q) return a;
if (!(this instanceof q)) return new q(a);
this.values = {
rgb: [0, 0, 0],
hsl: [0, 0, 0],
hsv: [0, 0, 0],
hwb: [0, 0, 0],
cmyk: [0, 0, 0, 0],
alpha: 1
};
var c;
if ("string" == typeof a)
if (c = p.getRgba(a)) this.setValues("rgb", c);
else if (c = p.getHsla(a)) this.setValues("hsl", c);
else {
if (!(c = p.getHwb(a))) throw Error('Unable to parse color from string "' + a + '"');
this.setValues("hwb", c)
} else if ("object" == typeof a)
if (c = a, void 0 !== c.r || void 0 !== c.red) this.setValues("rgb", c);
else if (void 0 !== c.l || void 0 !== c.lightness) this.setValues("hsl", c);
else if (void 0 !== c.v || void 0 !== c.value) this.setValues("hsv", c);
else if (void 0 !== c.w || void 0 !== c.whiteness) this.setValues("hwb", c);
else {
if (void 0 === c.c && void 0 === c.cyan) throw Error("Unable to parse color from object " + JSON.stringify(a));
this.setValues("cmyk", c)
}
};
q.prototype = {
rgb: function() {
return this.setSpace("rgb", arguments)
},
hsl: function() {
return this.setSpace("hsl", arguments)
},
hsv: function() {
return this.setSpace("hsv", arguments)
},
hwb: function() {
return this.setSpace("hwb", arguments)
},
cmyk: function() {
return this.setSpace("cmyk", arguments)
},
rgbArray: function() {
return this.values.rgb
},
hslArray: function() {
return this.values.hsl
},
hsvArray: function() {
return this.values.hsv
},
hwbArray: function() {
var a = this.values;
return 1 !== a.alpha ? a.hwb.concat([a.alpha]) : a.hwb
},
cmykArray: function() {
return this.values.cmyk
},
rgbaArray: function() {
var a = this.values;
return a.rgb.concat([a.alpha])
},
hslaArray: function() {
var a = this.values;
return a.hsl.concat([a.alpha])
},
alpha: function(a) {
return void 0 === a ? this.values.alpha : (this.setValues("alpha", a), this)
},
red: function(a) {
return this.setChannel("rgb", 0, a)
},
green: function(a) {
return this.setChannel("rgb", 1, a)
},
blue: function(a) {
return this.setChannel("rgb", 2, a)
},
hue: function(a) {
return a && (a %= 360, a = 0 > a ? 360 + a : a), this.setChannel("hsl", 0, a)
},
saturation: function(a) {
return this.setChannel("hsl", 1, a)
},
lightness: function(a) {
return this.setChannel("hsl", 2, a)
},
saturationv: function(a) {
return this.setChannel("hsv", 1, a)
},
whiteness: function(a) {
return this.setChannel("hwb", 1, a)
},
blackness: function(a) {
return this.setChannel("hwb", 2, a)
},
value: function(a) {
return this.setChannel("hsv", 2, a)
},
cyan: function(a) {
return this.setChannel("cmyk", 0, a)
},
magenta: function(a) {
return this.setChannel("cmyk", 1, a)
},
yellow: function(a) {
return this.setChannel("cmyk", 2, a)
},
black: function(a) {
return this.setChannel("cmyk", 3, a)
},
hexString: function() {
return p.hexString(this.values.rgb)
},
rgbString: function() {
return p.rgbString(this.values.rgb, this.values.alpha)
},
rgbaString: function() {
return p.rgbaString(this.values.rgb, this.values.alpha)
},
percentString: function() {
return p.percentString(this.values.rgb, this.values.alpha)
},
hslString: function() {
return p.hslString(this.values.hsl, this.values.alpha)
},
hslaString: function() {
return p.hslaString(this.values.hsl, this.values.alpha)
},
hwbString: function() {
return p.hwbString(this.values.hwb, this.values.alpha)
},
keyword: function() {
return p.keyword(this.values.rgb, this.values.alpha)
},
rgbNumber: function() {
var a = this.values.rgb;
return a[0] << 16 | a[1] << 8 | a[2]
},
luminosity: function() {
for (var a = this.values.rgb, c = [], k = 0; k < a.length; k++) {
var n = a[k] / 255;
c[k] = .03928 >= n ? n / 12.92 : Math.pow((n + .055) / 1.055, 2.4)
}
return .2126 * c[0] + .7152 * c[1] + .0722 * c[2]
},
contrast: function(a) {
var c = this.luminosity();
a = a.luminosity();
return c > a ? (c + .05) / (a + .05) : (a + .05) / (c + .05)
},
level: function(a) {
a = this.contrast(a);
return 7.1 <= a ? "AAA" : 4.5 <= a ? "AA" : ""
},
dark: function() {
var a = this.values.rgb;
return 128 > (299 * a[0] + 587 * a[1] + 114 * a[2]) / 1e3
},
light: function() {
return !this.dark()
},
negate: function() {
for (var a = [], c = 0; 3 > c; c++) a[c] = 255 - this.values.rgb[c];
return this.setValues("rgb", a), this
},
lighten: function(a) {
var c = this.values.hsl;
return c[2] += c[2] * a, this.setValues("hsl", c), this
},
darken: function(a) {
var c = this.values.hsl;
return c[2] -= c[2] * a, this.setValues("hsl", c), this
},
saturate: function(a) {
var c = this.values.hsl;
return c[1] += c[1] * a, this.setValues("hsl", c), this
},
desaturate: function(a) {
var c = this.values.hsl;
return c[1] -= c[1] * a, this.setValues("hsl", c), this
},
whiten: function(a) {
var c = this.values.hwb;
return c[1] += c[1] * a, this.setValues("hwb", c), this
},
blacken: function(a) {
var c = this.values.hwb;
return c[2] += c[2] * a, this.setValues("hwb", c), this
},
greyscale: function() {
var a = this.values.rgb,
a = .3 * a[0] + .59 * a[1] + .11 * a[2];
return this.setValues("rgb", [a, a, a]), this
},
clearer: function(a) {
var c = this.values.alpha;
return this.setValues("alpha", c - c * a), this
},
opaquer: function(a) {
var c = this.values.alpha;
return this.setValues("alpha", c + c * a), this
},
rotate: function(a) {
var c = this.values.hsl;
a = (c[0] + a) % 360;
return c[0] = 0 > a ? 360 + a : a, this.setValues("hsl", c), this
},
mix: function(a, c) {
var f = void 0 === c ? .5 : c,
n = 2 * f - 1,
e = this.alpha() - a.alpha(),
n = ((-1 === n * e ? n : (n + e) / (1 + n * e)) + 1) / 2,
e = 1 - n;
return this.rgb(n * this.red() + e * a.red(), n * this.green() + e * a.green(), n * this.blue() + e * a.blue()).alpha(this.alpha() * f + a.alpha() * (1 - f))
},
toJSON: function() {
return this.rgb()
},
clone: function() {
var a, c, k = new q,
n = this.values,
e = k.values,
h;
for (h in n) n.hasOwnProperty(h) && (a = n[h], c = {}.toString.call(a), "[object Array]" === c ? e[h] = a.slice(0) : "[object Number]" === c ? e[h] = a : console.error("unexpected color value:", a));
return k
}
};
q.prototype.spaces = {
rgb: ["red", "green", "blue"],
hsl: ["hue", "saturation", "lightness"],
hsv: ["hue", "saturation", "value"],
hwb: ["hue", "whiteness", "blackness"],
cmyk: ["cyan", "magenta", "yellow", "black"]
};
q.prototype.maxes = {
rgb: [255, 255, 255],
hsl: [360, 100, 100],
hsv: [360, 100, 100],
hwb: [360, 100, 100],
cmyk: [100, 100, 100, 100]
};
q.prototype.getValues = function(a) {
for (var c = this.values, k = {}, n = 0; n < a.length; n++) k[a.charAt(n)] = c[a][n];
return 1 !== c.alpha && (k.a = c.alpha), k
};
q.prototype.setValues = function(a, c) {
var f, n = this.values,
e = this.spaces,
m = this.maxes;
f = 1;
if ("alpha" === a) f = c;
else if (c.length) n[a] = c.slice(0, a.length), f = c[a.length];
else if (void 0 !== c[a.charAt(0)]) {
for (f = 0; f < a.length; f++) n[a][f] = c[a.charAt(f)];
f = c.a
} else if (void 0 !== c[e[a][0]]) {
var u = e[a];
for (f = 0; f < a.length; f++) n[a][f] = c[u[f]];
f = c.alpha
}
if (n.alpha = Math.max(0, Math.min(1, void 0 === f ? n.alpha : f)), "alpha" === a) return !1;
for (f = 0; f < a.length; f++) u = Math.max(0, Math.min(m[a][f], n[a][f])), n[a][f] = Math.round(u);
for (var q in e) q !== a && (n[q] = h[a][q](n[a]));
return !0
};
q.prototype.setSpace = function(a, c) {
var f = c[0];
return void 0 === f ? this.getValues(a) : ("number" == typeof f && (f = Array.prototype.slice.call(c)), this.setValues(a, f), this)
};
q.prototype.setChannel = function(a, c, k) {
var f = this.values[a];
return void 0 === k ? f[c] : k === f[c] ? this : (f[c] = k, this.setValues(a, f), this)
};
"undefined" != typeof window && (window.Color = q);
e.exports = q
}, {
1: 1,
4: 4
}],
3: [function(c, e, m) {
function h(a) {
var c, f, k, n = a[0] / 255,
e = a[1] / 255;
a = a[2] / 255;
var t = Math.min(n, e, a),
h = Math.max(n, e, a),
m = h - t;
return h == t ? c = 0 : n == h ? c = (e - a) / m : e == h ? c = 2 + (a - n) / m : a == h && (c = 4 + (n - e) / m), c = Math.min(60 * c, 360), 0 > c && (c += 360), k = (t + h) / 2, f = h == t ? 0 : .5 >= k ? m / (h + t) : m / (2 - h - t), [c, 100 * f, 100 * k]
}
function p(a) {
var c, f, k, n = a[0],
e = a[1];
a = a[2];
var t = Math.min(n, e, a),
h = Math.max(n, e, a),
m = h - t;
return f = 0 == h ? 0 : m / h * 1e3 / 10, h == t ? c = 0 : n == h ? c = (e - a) / m : e == h ? c = 2 + (a - n) / m : a == h && (c = 4 + (n - e) / m), c = Math.min(60 * c, 360), 0 > c && (c += 360), k = h / 255 * 1e3 / 10, [c, f, k]
}
function q(a) {
var c = a[0],
f = a[1],
k = a[2];
a = h(a)[0];
var n = 1 / 255 * Math.min(c, Math.min(f, k)),
k = 1 - 1 / 255 * Math.max(c, Math.max(f, k));
return [a, 100 * n, 100 * k]
}
function a(a) {
var c, f, k, n, e = a[0] / 255,
t = a[1] / 255;
a = a[2] / 255;
return n = Math.min(1 - e, 1 - t, 1 - a), c = (1 - e - n) / (1 - n) || 0, f = (1 - t - n) / (1 - n) || 0, k = (1 - a - n) / (1 - n) || 0, [100 * c, 100 * f, 100 * k, 100 * n]
}
function f(a) {
return J[JSON.stringify(a)]
}
function k(a) {
var c = a[0] / 255,
f = a[1] / 255;
a = a[2] / 255;
c = .04045 < c ? Math.pow((c + .055) / 1.055, 2.4) : c / 12.92;
f = .04045 < f ? Math.pow((f + .055) / 1.055, 2.4) : f / 12.92;
a = .04045 < a ? Math.pow((a + .055) / 1.055, 2.4) : a / 12.92;
return [100 * (.4124 * c + .3576 * f + .1805 * a), 100 * (.2126 * c + .7152 * f + .0722 * a), 100 * (.0193 * c + .1192 * f + .9505 * a)]
}
function n(a) {
var c, f, n, e = k(a);
a = e[0];
var t = e[1],
e = e[2];
return a /= 95.047, t /= 100, e /= 108.883, a = .008856 < a ? Math.pow(a, 1 / 3) : 7.787 * a + 16 / 116, t = .008856 < t ? Math.pow(t, 1 / 3) : 7.787 * t + 16 / 116, e = .008856 < e ? Math.pow(e, 1 / 3) : 7.787 * e + 16 / 116, c = 116 * t - 16, f = 500 * (a - t), n = 200 * (t - e), [c, f, n]
}
function t(a) {
var c, f, k, n = a[0] / 360;
c = a[1] / 100;
a = a[2] / 100;
if (0 == c) return f = 255 * a, [f, f, f];
c = .5 > a ? a * (1 + c) : a + c - a * c;
a = 2 * a - c;
k = [0, 0, 0];
for (var e = 0; 3 > e; e++) f = n + 1 / 3 * -(e - 1), 0 > f && f++, 1 < f && f--, f = 1 > 6 * f ? a + 6 * (c - a) * f : 1 > 2 * f ? c : 2 > 3 * f ? a + (c - a) * (2 / 3 - f) * 6 : a, k[e] = 255 * f;
return k
}
function w(a) {
var c = a[0] / 60,
f = a[1] / 100;
a = a[2] / 100;
var k = Math.floor(c) % 6,
n = c - Math.floor(c),
c = 255 * a * (1 - f),
e = 255 * a * (1 - f * n),
f = 255 * a * (1 - f * (1 - n));
a *= 255;
switch (k) {
case 0:
return [a, f, c];
case 1:
return [e, a, c];
case 2:
return [c, a, f];
case 3:
return [c, e, a];
case 4:
return [f, c, a];
case 5:
return [a, c, e]
}
}
function u(a) {
var c, f, k, n;
n = a[0] / 360;
var e = a[1] / 100;
a = a[2] / 100;
var t = e + a;
switch (1 < t && (e /= t, a /= t), c = Math.floor(6 * n), f = 1 - a, k = 6 * n - c, 0 != (1 & c) && (k = 1 - k), n = e + k * (f - e), c) {
default:
case 6:
case 0:
r = f;g = n;b = e;
break;
case 1:
r = n;g = f;b = e;
break;
case 2:
r = e;g = f;b = n;
break;
case 3:
r = e;g = n;b = f;
break;
case 4:
r = n;g = e;b = f;
break;
case 5:
r = f,
g = e,
b = n
}
return [255 * r, 255 * g, 255 * b]
}
function C(a) {
var c, f, k, n = a[1] / 100,
e = a[2] / 100,
t = a[3] / 100;
return c = 1 - Math.min(1, a[0] / 100 * (1 - t) + t), f = 1 - Math.min(1, n * (1 - t) + t), k = 1 - Math.min(1, e * (1 - t) + t), [255 * c, 255 * f, 255 * k]
}
function A(a) {
var c, f, k, n = a[0] / 100,
e = a[1] / 100;
a = a[2] / 100;
return c = 3.2406 * n + -1.5372 * e + -.4986 * a, f = -.9689 * n + 1.8758 * e + .0415 * a, k = .0557 * n + -.204 * e + 1.057 * a, c = .0031308 < c ? 1.055 * Math.pow(c, 1 / 2.4) - .055 : c *= 12.92, f = .0031308 < f ? 1.055 * Math.pow(f, 1 / 2.4) - .055 : f *= 12.92, k = .0031308 < k ? 1.055 * Math.pow(k, 1 / 2.4) - .055 : k *= 12.92, c = Math.min(Math.max(0, c), 1), f = Math.min(Math.max(0, f), 1), k = Math.min(Math.max(0, k), 1), [255 * c, 255 * f, 255 * k]
}
function v(a) {
var c, f, k, n = a[0],
e = a[1];
a = a[2];
return n /= 95.047, e /= 100, a /= 108.883, n = .008856 < n ? Math.pow(n, 1 / 3) : 7.787 * n + 16 / 116, e = .008856 < e ? Math.pow(e, 1 / 3) : 7.787 * e + 16 / 116, a = .008856 < a ? Math.pow(a, 1 / 3) : 7.787 * a + 16 / 116, c = 116 * e - 16, f = 500 * (n - e), k = 200 * (e - a), [c, f, k]
}
function B(a) {
var c, f, k, n, e = a[0],
t = a[1];
a = a[2];
return 8 >= e ? (f = 100 * e / 903.3, n = f / 100 * 7.787 + 16 / 116) : (f = 100 * Math.pow((e + 16) / 116, 3), n = Math.pow(f / 100, 1 / 3)), c = .008856 >= c / 95.047 ? c = 95.047 * (t / 500 + n - 16 / 116) / 7.787 : 95.047 * Math.pow(t / 500 + n, 3), k = .008859 >= k / 108.883 ? k = 108.883 * (n - a / 200 - 16 / 116) / 7.787 : 108.883 * Math.pow(n - a / 200, 3), [c, f, k]
}
function D(a) {
var c, f, k, n = a[0],
e = a[1];
a = a[2];
return c = Math.atan2(a, e), f = 360 * c / 2 / Math.PI, 0 > f && (f += 360), k = Math.sqrt(e * e + a * a), [n, k, f]
}
function E(a) {
return A(B(a))
}
function F(a) {
var c, f, k, n = a[0],
e = a[1];
return k = a[2] / 360 * 2 * Math.PI, c = e * Math.cos(k), f = e * Math.sin(k), [n, c, f]
}
e.exports = {
rgb2hsl: h,
rgb2hsv: p,
rgb2hwb: q,
rgb2cmyk: a,
rgb2keyword: f,
rgb2xyz: k,
rgb2lab: n,
rgb2lch: function(a) {
return D(n(a))
},
hsl2rgb: t,
hsl2hsv: function(a) {
var c, f, k = a[0],
n = a[1] / 100;
a = a[2] / 100;
return 0 === a ? [0, 0, 0] : (a *= 2, n *= 1 >= a ? a : 2 - a, f = (a + n) / 2, c = 2 * n / (a + n), [k, 100 * c, 100 * f])
},
hsl2hwb: function(a) {
return q(t(a))
},
hsl2cmyk: function(c) {
return a(t(c))
},
hsl2keyword: function(a) {
return f(t(a))
},
hsv2rgb: w,
hsv2hsl: function(a) {
var c, f, k = a[0],
n = a[1] / 100;
a = a[2] / 100;
return f = (2 - n) * a, c = n * a, c /= 1 >= f ? f : 2 - f, c = c || 0, f /= 2, [k, 100 * c, 100 * f]
},
hsv2hwb: function(a) {
return q(w(a))
},
hsv2cmyk: function(c) {
return a(w(c))
},
hsv2keyword: function(a) {
return f(w(a))
},
hwb2rgb: u,
hwb2hsl: function(a) {
return h(u(a))
},
hwb2hsv: function(a) {
return p(u(a))
},
hwb2cmyk: function(c) {
return a(u(c))
},
hwb2keyword: function(a) {
return f(u(a))
},
cmyk2rgb: C,
cmyk2hsl: function(a) {
return h(C(a))
},
cmyk2hsv: function(a) {
return p(C(a))
},
cmyk2hwb: function(a) {
return q(C(a))
},
cmyk2keyword: function(a) {
return f(C(a))
},
keyword2rgb: function(a) {
return G[a]
},
keyword2hsl: function(a) {
return h(G[a])
},
keyword2hsv: function(a) {
return p(G[a])
},
keyword2hwb: function(a) {
return q(G[a])
},
keyword2cmyk: function(c) {
return a(G[c])
},
keyword2lab: function(a) {
return n(G[a])
},
keyword2xyz: function(a) {
return k(G[a])
},
xyz2rgb: A,
xyz2lab: v,
xyz2lch: function(a) {
return D(v(a))
},
lab2xyz: B,
lab2rgb: E,
lab2lch: D,
lch2lab: F,
lch2xyz: function(a) {
return B(F(a))
},
lch2rgb: function(a) {
return E(F(a))
}
};
var G = {
aliceblue: [240, 248, 255],
antiquewhite: [250, 235, 215],
aqua: [0, 255, 255],
aquamarine: [127, 255, 212],
azure: [240, 255, 255],
beige: [245, 245, 220],
bisque: [255, 228, 196],
black: [0, 0, 0],
blanchedalmond: [255, 235, 205],
blue: [0, 0, 255],
blueviolet: [138, 43, 226],
brown: [165, 42, 42],
burlywood: [222, 184, 135],
cadetblue: [95, 158, 160],
chartreuse: [127, 255, 0],
chocolate: [210, 105, 30],
coral: [255, 127, 80],
cornflowerblue: [100, 149, 237],
cornsilk: [255, 248, 220],
crimson: [220, 20, 60],
cyan: [0, 255, 255],
darkblue: [0, 0, 139],
darkcyan: [0, 139, 139],
darkgoldenrod: [184, 134, 11],
darkgray: [169, 169, 169],
darkgreen: [0, 100, 0],
darkgrey: [169, 169, 169],
darkkhaki: [189, 183, 107],
darkmagenta: [139, 0, 139],
darkolivegreen: [85, 107, 47],
darkorange: [255, 140, 0],
darkorchid: [153, 50, 204],
darkred: [139, 0, 0],
darksalmon: [233, 150, 122],
darkseagreen: [143, 188, 143],
darkslateblue: [72, 61, 139],
darkslategray: [47, 79, 79],
darkslategrey: [47, 79, 79],
darkturquoise: [0, 206, 209],
darkviolet: [148, 0, 211],
deeppink: [255, 20, 147],
deepskyblue: [0, 191, 255],
dimgray: [105, 105, 105],
dimgrey: [105, 105, 105],
dodgerblue: [30, 144, 255],
firebrick: [178, 34, 34],
floralwhite: [255, 250, 240],
forestgreen: [34, 139, 34],
fuchsia: [255, 0, 255],
gainsboro: [220, 220, 220],
ghostwhite: [248, 248, 255],
gold: [255, 215, 0],
goldenrod: [218, 165, 32],
gray: [128, 128, 128],
green: [0, 128, 0],
greenyellow: [173, 255, 47],
grey: [128, 128, 128],
honeydew: [240, 255, 240],
hotpink: [255, 105, 180],
indianred: [205, 92, 92],
indigo: [75, 0, 130],
ivory: [255, 255, 240],
khaki: [240, 230, 140],
lavender: [230, 230, 250],
lavenderblush: [255, 240, 245],
lawngreen: [124, 252, 0],
lemonchiffon: [255, 250, 205],
lightblue: [173, 216, 230],
lightcoral: [240, 128, 128],
lightcyan: [224, 255, 255],
lightgoldenrodyellow: [250, 250, 210],
lightgray: [211, 211, 211],
lightgreen: [144, 238, 144],
lightgrey: [211, 211, 211],
lightpink: [255, 182, 193],
lightsalmon: [255, 160, 122],
lightseagreen: [32, 178, 170],
lightskyblue: [135, 206, 250],
lightslategray: [119, 136, 153],
lightslategrey: [119, 136, 153],
lightsteelblue: [176, 196, 222],
lightyellow: [255, 255, 224],
lime: [0, 255, 0],
limegreen: [50, 205, 50],
linen: [250, 240, 230],
magenta: [255, 0, 255],
maroon: [128, 0, 0],
mediumaquamarine: [102, 205, 170],
mediumblue: [0, 0, 205],
mediumorchid: [186, 85, 211],
mediumpurple: [147, 112, 219],
mediumseagreen: [60, 179, 113],
mediumslateblue: [123, 104, 238],
mediumspringgreen: [0, 250, 154],
mediumturquoise: [72, 209, 204],
mediumvioletred: [199, 21, 133],
midnightblue: [25, 25, 112],
mintcream: [245, 255, 250],
mistyrose: [255, 228, 225],
moccasin: [255, 228, 181],
navajowhite: [255, 222, 173],
navy: [0, 0, 128],
oldlace: [253, 245, 230],
olive: [128, 128, 0],
olivedrab: [107, 142, 35],
orange: [255, 165, 0],
orangered: [255, 69, 0],
orchid: [218, 112, 214],
palegoldenrod: [238, 232, 170],
palegreen: [152, 251, 152],
paleturquoise: [175, 238, 238],
palevioletred: [219, 112, 147],
papayawhip: [255, 239, 213],
peachpuff: [255, 218, 185],
peru: [205, 133, 63],
pink: [255, 192, 203],
plum: [221, 160, 221],
powderblue: [176, 224, 230],
purple: [128, 0, 128],
rebeccapurple: [102, 51, 153],
red: [255, 0, 0],
rosybrown: [188, 143, 143],
royalblue: [65, 105, 225],
saddlebrown: [139, 69, 19],
salmon: [250, 128, 114],
sandybrown: [244, 164, 96],
seagreen: [46, 139, 87],
seashell: [255, 245, 238],
sienna: [160, 82, 45],
silver: [192, 192, 192],
skyblue: [135, 206, 235],
slateblue: [106, 90, 205],
slategray: [112, 128, 144],
slategrey: [112, 128, 144],
snow: [255, 250, 250],
springgreen: [0, 255, 127],
steelblue: [70, 130, 180],
tan: [210, 180, 140],
teal: [0, 128, 128],
thistle: [216, 191, 216],
tomato: [255, 99, 71],
turquoise: [64, 224, 208],
violet: [238, 130, 238],
wheat: [245, 222, 179],
white: [255, 255, 255],
whitesmoke: [245, 245, 245],
yellow: [255, 255, 0],
yellowgreen: [154, 205, 50]
},
J = {},
I;
for (I in G) J[JSON.stringify(G[I])] = I
}, {}],
4: [function(c, e, m) {
var h = c(3),
p = function() {
return new a
},
q;
for (q in h) p[q + "Raw"] = function(a) {
return function(c) {
return "number" == typeof c && (c = Array.prototype.slice.call(arguments)), h[a](c)
}
}(q), m = /(\w+)2(\w+)/.exec(q), c = m[1], m = m[2], p[c] = p[c] || {}, p[c][m] = p[q] = function(a) {
return function(c) {
"number" == typeof c && (c = Array.prototype.slice.call(arguments));
var f = h[a](c);
if ("string" == typeof f || void 0 === f) return f;
for (var k = 0; k < f.length; k++) f[k] = Math.round(f[k]);
return f
}
}(q);
var a = function() {
this.convs = {}
};
a.prototype.routeSpace = function(a, c) {
var f = c[0];
return void 0 === f ? this.getValues(a) : ("number" == typeof f && (f = Array.prototype.slice.call(c)), this.setValues(a, f))
};
a.prototype.setValues = function(a, c) {
return this.space = a, this.convs = {}, this.convs[a] = c, this
};
a.prototype.getValues = function(a) {
var c = this.convs[a];
c || (c = this.space, c = p[c][a](this.convs[c]), this.convs[a] = c);
return c
};
["rgb", "hsl", "hsv", "cmyk", "keyword"].forEach(function(c) {
a.prototype[c] = function(a) {
return this.routeSpace(c, arguments)
}
});
e.exports = p
}, {
3: 3
}],
5: [function(c, e, m) {
e.exports = {
aliceblue: [240, 248, 255],
antiquewhite: [250, 235, 215],
aqua: [0, 255, 255],
aquamarine: [127, 255, 212],
azure: [240, 255, 255],
beige: [245, 245, 220],
bisque: [255, 228, 196],
black: [0, 0, 0],
blanchedalmond: [255, 235, 205],
blue: [0, 0, 255],
blueviolet: [138, 43, 226],
brown: [165, 42, 42],
burlywood: [222, 184, 135],
cadetblue: [95, 158, 160],
chartreuse: [127, 255, 0],
chocolate: [210, 105, 30],
coral: [255, 127, 80],
cornflowerblue: [100, 149, 237],
cornsilk: [255, 248, 220],
crimson: [220, 20, 60],
cyan: [0, 255, 255],
darkblue: [0, 0, 139],
darkcyan: [0, 139, 139],
darkgoldenrod: [184, 134, 11],
darkgray: [169, 169, 169],
darkgreen: [0, 100, 0],
darkgrey: [169, 169, 169],
darkkhaki: [189, 183, 107],
darkmagenta: [139, 0, 139],
darkolivegreen: [85, 107, 47],
darkorange: [255, 140, 0],
darkorchid: [153, 50, 204],
darkred: [139, 0, 0],
darksalmon: [233, 150, 122],
darkseagreen: [143, 188, 143],
darkslateblue: [72, 61, 139],
darkslategray: [47, 79, 79],
darkslategrey: [47, 79, 79],
darkturquoise: [0, 206, 209],
darkviolet: [148, 0, 211],
deeppink: [255, 20, 147],
deepskyblue: [0, 191, 255],
dimgray: [105, 105, 105],
dimgrey: [105, 105, 105],
dodgerblue: [30, 144, 255],
firebrick: [178, 34, 34],
floralwhite: [255, 250, 240],
forestgreen: [34, 139, 34],
fuchsia: [255, 0, 255],
gainsboro: [220, 220, 220],
ghostwhite: [248, 248, 255],
gold: [255, 215, 0],
goldenrod: [218, 165, 32],
gray: [128, 128, 128],
green: [0, 128, 0],
greenyellow: [173, 255, 47],
grey: [128, 128, 128],
honeydew: [240, 255, 240],
hotpink: [255, 105, 180],
indianred: [205, 92, 92],
indigo: [75, 0, 130],
ivory: [255, 255, 240],
khaki: [240, 230, 140],
lavender: [230, 230, 250],
lavenderblush: [255, 240, 245],
lawngreen: [124, 252, 0],
lemonchiffon: [255, 250, 205],
lightblue: [173, 216, 230],
lightcoral: [240, 128, 128],
lightcyan: [224, 255, 255],
lightgoldenrodyellow: [250, 250, 210],
lightgray: [211, 211, 211],
lightgreen: [144, 238, 144],
lightgrey: [211, 211, 211],
lightpink: [255, 182, 193],
lightsalmon: [255, 160, 122],
lightseagreen: [32, 178, 170],
lightskyblue: [135, 206, 250],
lightslategray: [119, 136, 153],
lightslategrey: [119, 136, 153],
lightsteelblue: [176, 196, 222],
lightyellow: [255, 255, 224],
lime: [0, 255, 0],
limegreen: [50, 205, 50],
linen: [250, 240, 230],
magenta: [255, 0, 255],
maroon: [128, 0, 0],
mediumaquamarine: [102, 205, 170],
mediumblue: [0, 0, 205],
mediumorchid: [186, 85, 211],
mediumpurple: [147, 112, 219],
mediumseagreen: [60, 179, 113],
mediumslateblue: [123, 104, 238],
mediumspringgreen: [0, 250, 154],
mediumturquoise: [72, 209, 204],
mediumvioletred: [199, 21, 133],
midnightblue: [25, 25, 112],
mintcream: [245, 255, 250],
mistyrose: [255, 228, 225],
moccasin: [255, 228, 181],
navajowhite: [255, 222, 173],
navy: [0, 0, 128],
oldlace: [253, 245, 230],
olive: [128, 128, 0],
olivedrab: [107, 142, 35],
orange: [255, 165, 0],
orangered: [255, 69, 0],
orchid: [218, 112, 214],
palegoldenrod: [238, 232, 170],
palegreen: [152, 251, 152],
paleturquoise: [175, 238, 238],
palevioletred: [219, 112, 147],
papayawhip: [255, 239, 213],
peachpuff: [255, 218, 185],
peru: [205, 133, 63],
pink: [255, 192, 203],
plum: [221, 160, 221],
powderblue: [176, 224, 230],
purple: [128, 0, 128],
rebeccapurple: [102, 51, 153],
red: [255, 0, 0],
rosybrown: [188, 143, 143],
royalblue: [65, 105, 225],
saddlebrown: [139, 69, 19],
salmon: [250, 128, 114],
sandybrown: [244, 164, 96],
seagreen: [46, 139, 87],
seashell: [255, 245, 238],
sienna: [160, 82, 45],
silver: [192, 192, 192],
skyblue: [135, 206, 235],
slateblue: [106, 90, 205],
slategray: [112, 128, 144],
slategrey: [112, 128, 144],
snow: [255, 250, 250],
springgreen: [0, 255, 127],
steelblue: [70, 130, 180],
tan: [210, 180, 140],
teal: [0, 128, 128],
thistle: [216, 191, 216],
tomato: [255, 99, 71],
turquoise: [64, 224, 208],
violet: [238, 130, 238],
wheat: [245, 222, 179],
white: [255, 255, 255],
whitesmoke: [245, 245, 245],
yellow: [255, 255, 0],
yellowgreen: [154, 205, 50]
}
}, {}],
6: [function(c, e, m) {
! function(c, p) {
"object" == typeof m && "undefined" != typeof e ? e.exports = p() : c.moment = p()
}(this, function() {
function h() {
return sb.apply(null, arguments)
}
function m(a) {
return a instanceof Array || "[object Array]" === Object.prototype.toString.call(a)
}
function q(a) {
return null != a && "[object Object]" === Object.prototype.toString.call(a)
}
function a(a) {
return "number" == typeof a || "[object Number]" === Object.prototype.toString.call(a)
}
function f(a) {
return a instanceof Date || "[object Date]" === Object.prototype.toString.call(a)
}
function k(a, c) {
var f, k = [];
for (f = 0; f < a.length; ++f) k.push(c(a[f], f));
return k
}
function n(a, c) {
return Object.prototype.hasOwnProperty.call(a, c)
}
function t(a, c) {
for (var f in c) n(c, f) && (a[f] = c[f]);
return n(c, "toString") && (a.toString = c.toString), n(c, "valueOf") && (a.valueOf = c.valueOf), a
}
function w(a, c, f, k) {
return Jb(a, c, f, k, !0).utc()
}
function u(a) {
return null == a._pf && (a._pf = {
empty: !1,
unusedTokens: [],
unusedInput: [],
overflow: -2,
charsLeftOver: 0,
nullInput: !1,
invalidMonth: null,
invalidFormat: !1,
userInvalidated: !1,
iso: !1,
parsedDateParts: [],
meridiem: null
}), a._pf
}
function C(a) {
if (null == a._isValid) {
var c = u(a),
f = rc.call(c.parsedDateParts, function(a) {
return null != a
}),
f = !isNaN(a._d.getTime()) && 0 > c.overflow && !c.empty && !c.invalidMonth && !c.invalidWeekday && !c.nullInput && !c.invalidFormat && !c.userInvalidated && (!c.meridiem || c.meridiem && f);
if (a._strict && (f = f && 0 === c.charsLeftOver && 0 === c.unusedTokens.length && void 0 === c.bigHour), null != Object.isFrozen && Object.isFrozen(a)) return f;
a._isValid = f
}
return a._isValid
}
function A(a) {
var c = w(NaN);
return null != a ? t(u(c), a) : u(c).userInvalidated = !0, c
}
function v(a) {
return void 0 === a
}
function B(a, c) {
var f, k, n;
if (v(c._isAMomentObject) || (a._isAMomentObject = c._isAMomentObject), v(c._i) || (a._i = c._i), v(c._f) || (a._f = c._f), v(c._l) || (a._l = c._l), v(c._strict) || (a._strict = c._strict), v(c._tzm) || (a._tzm = c._tzm), v(c._isUTC) || (a._isUTC = c._isUTC), v(c._offset) || (a._offset = c._offset), v(c._pf) || (a._pf = u(c)), v(c._locale) || (a._locale = c._locale), 0 < kc.length)
for (f in kc) k = kc[f], n = c[k], v(n) || (a[k] = n);
return a
}
function D(a) {
B(this, a);
this._d = new Date(null != a._d ? a._d.getTime() : NaN);
this.isValid() || (this._d = new Date(NaN));
!1 === Sb && (Sb = !0, h.updateOffset(this), Sb = !1)
}
function E(a) {
return a instanceof D || null != a && null != a._isAMomentObject
}
function F(a) {
return 0 > a ? Math.ceil(a) || 0 : Math.floor(a)
}
function G(a) {
a = +a;
var c = 0;
return 0 !== a && isFinite(a) && (c = F(a)), c
}
function J(a, c, f) {
var k, n = Math.min(a.length, c.length),
e = Math.abs(a.length - c.length),
t = 0;
for (k = 0; k < n; k++)(f && a[k] !== c[k] || !f && G(a[k]) !== G(c[k])) && t++;
return t + e
}
function I(a) {
!1 === h.suppressDeprecationWarnings && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + a)
}
function K(a, c) {
var f = !0;
return t(function() {
if (null != h.deprecationHandler && h.deprecationHandler(null, a), f) {
for (var k, n = [], e = 0; e < arguments.length; e++) {
if (k = "", "object" == typeof arguments[e]) {
k += "\n[" + e + "] ";
for (var t in arguments[0]) k += t + ": " + arguments[0][t] + ", ";
k = k.slice(0, -2)
} else k = arguments[e];
n.push(k)
}
I(a + "\nArguments: " + Array.prototype.slice.call(n).join("") + "\n" + Error().stack);
f = !1
}
return c.apply(this, arguments)
}, c)
}
function M(a, c) {
null != h.deprecationHandler && h.deprecationHandler(a, c);
dc[a] || (I(c), dc[a] = !0)
}
function L(a) {
return a instanceof Function || "[object Function]" === Object.prototype.toString.call(a)
}
function U(a, c) {
var f, k = t({}, a);
for (f in c) n(c, f) && (q(a[f]) && q(c[f]) ? (k[f] = {}, t(k[f], a[f]), t(k[f], c[f])) : null != c[f] ? k[f] = c[f] : delete k[f]);
for (f in a) n(a, f) && !n(c, f) && q(a[f]) && (k[f] = t({}, k[f]));
return k
}
function Q(a) {
null != a && this.set(a)
}
function H(a, c) {
var f = a.toLowerCase();
mb[f] = mb[f + "s"] = mb[c] = a
}
function O(a) {
return "string" == typeof a ? mb[a] || mb[a.toLowerCase()] : void 0
}
function W(a) {
var c, f, k = {};
for (f in a) n(a, f) && (c = O(f), c && (k[c] = a[f]));
return k
}
function ca(a) {
var c = [],
f;
for (f in a) c.push({
unit: f,
priority: Ba[f]
});
return c.sort(function(a, c) {
return a.priority - c.priority
}), c
}
function ha(a, c) {
return function(f) {
null != f ? (this.isValid() && this._d["set" + (this._isUTC ? "UTC" : "") + a](f), f = (h.updateOffset(this, c), this)) : f = Y(this, a);
return f
}
}
function Y(a, c) {
return a.isValid() ? a._d["get" + (a._isUTC ? "UTC" : "") + c]() : NaN
}
function Z(a, c, f) {
var k = "" + Math.abs(a);
return (0 <= a ? f ? "+" : "" : "-") + Math.pow(10, Math.max(0, c - k.length)).toString().substr(1) + k
}
function R(a, c, f, k) {
var n = k;
"string" == typeof k && (n = function() {
return this[k]()
});
a && (bb[a] = n);
c && (bb[c[0]] = function() {
return Z(n.apply(this, arguments), c[1], c[2])
});
f && (bb[f] = function() {
return this.localeData().ordinal(n.apply(this, arguments), a)
})
}
function aa(a) {
return a.match(/\[[\s\S]/) ? a.replace(/^\[|\]$/g, "") : a.replace(/\\/g, "")
}
function da(a) {
var c, f, k = a.match(lc);
c = 0;
for (f = k.length; c < f; c++) bb[k[c]] ? k[c] = bb[k[c]] : k[c] = aa(k[c]);
return function(c) {
var n, e = "";
for (n = 0; n < f; n++) e += k[n] instanceof Function ? k[n].call(c, a) : k[n];
return e
}
}
function ua(a, c) {
return a.isValid() ? (c = Da(c, a.localeData()), Ka[c] = Ka[c] || da(c), Ka[c](a)) : a.localeData().invalidDate()
}
function Da(a, c) {
function f(a) {
return c.longDateFormat(a) || a
}
var k = 5;
for (Mb.lastIndex = 0; 0 <= k && Mb.test(a);) a = a.replace(Mb, f), Mb.lastIndex = 0, --k;
return a
}
function S(a, c, f) {
nc[a] = L(c) ? c : function(a, k) {
return a && f ? f : c
}
}
function wa(a, c) {
return n(nc, a) ? nc[a](c._strict, c._locale) : new RegExp(ta(a))
}
function ta(a) {
return na(a.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function(a, c, f, k, n) {
return c || f || k || n
}))
}
function na(a) {
return a.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&")
}
function ea(c, f) {
var k, n = f;
"string" == typeof c && (c = [c]);
a(f) && (n = function(a, c) {
c[f] = G(a)
});
for (k = 0; k < c.length; k++) oc[c[k]] = n
}
function Ea(a, c) {
ea(a, function(a, f, k, n) {
k._w = k._w || {};
c(a, k._w, k, n)
})
}
function ja(a, c) {
return new Date(Date.UTC(a, c + 1, 0)).getUTCDate()
}
function hb(c, f) {
var k;
if (!c.isValid()) return c;
if ("string" == typeof f)
if (/^\d+$/.test(f)) f = G(f);
else if (f = c.localeData().monthsParse(f), !a(f)) return c;
return k = Math.min(c.date(), ja(c.year(), f)), c._d["set" + (c._isUTC ? "UTC" : "") + "Month"](f, k), c
}
function ob(a) {
return null != a ? (hb(this, a), h.updateOffset(this, !0), this) : Y(this, "Month")
}
function xa() {
function a(a, c) {
return c.length - a.length
}
var c, f, k = [],
n = [],
e = [];
for (c = 0; 12 > c; c++) f = w([2e3, c]), k.push(this.monthsShort(f, "")), n.push(this.months(f, "")), e.push(this.months(f, "")), e.push(this.monthsShort(f, ""));
k.sort(a);
n.sort(a);
e.sort(a);
for (c = 0; 12 > c; c++) k[c] = na(k[c]), n[c] = na(n[c]);
for (c = 0; 24 > c; c++) e[c] = na(e[c]);
this._monthsShortRegex = this._monthsRegex = new RegExp("^(" + e.join("|") + ")", "i");
this._monthsStrictRegex = new RegExp("^(" + n.join("|") + ")", "i");
this._monthsShortStrictRegex = new RegExp("^(" + k.join("|") + ")", "i")
}
function P(a) {
return 0 === a % 4 && 0 !== a % 100 || 0 === a % 400
}
function z(a, c, f, k, n, e, t) {
c = new Date(a, c, f, k, n, e, t);
return 100 > a && 0 <= a && isFinite(c.getFullYear()) && c.setFullYear(a), c
}
function Db(a) {
var c = new Date(Date.UTC.apply(null, arguments));
return 100 > a && 0 <= a && isFinite(c.getUTCFullYear()) && c.setUTCFullYear(a), c
}
function Eb(a, c, f) {
f = 7 + c - f;
return -((7 + Db(a, 0, f).getUTCDay() - c) % 7) + f - 1
}
function Qb(a, c, f, k, n) {
var e, t;
f = (7 + f - k) % 7;
k = Eb(a, k, n);
c = 1 + 7 * (c - 1) + f + k;
return 0 >= c ? (e = a - 1, t = (P(e) ? 366 : 365) + c) : c > (P(a) ? 366 : 365) ? (e = a + 1, t = c - (P(a) ? 366 : 365)) : (e = a, t = c), {
year: e,
dayOfYear: t
}
}
function Ia(a, c, f) {
var k, n, e = Eb(a.year(), c, f),
e = Math.floor((a.dayOfYear() - e - 1) / 7) + 1;
return 1 > e ? (n = a.year() - 1, k = e + za(n, c, f)) : e > za(a.year(), c, f) ? (k = e - za(a.year(), c, f), n = a.year() + 1) : (n = a.year(), k = e), {
week: k,
year: n
}
}
function za(a, c, f) {
var k = Eb(a, c, f);
c = Eb(a + 1, c, f);
return ((P(a) ? 366 : 365) - k + c) / 7
}
function Ta() {
function a(a, c) {
return c.length - a.length
}
var c, f, k, n, e = [],
t = [],
h = [],
m = [];
for (c = 0; 7 > c; c++) f = w([2e3, 1]).day(c), k = this.weekdaysMin(f, ""), n = this.weekdaysShort(f, ""), f = this.weekdays(f, ""), e.push(k), t.push(n), h.push(f), m.push(k), m.push(n), m.push(f);
e.sort(a);
t.sort(a);
h.sort(a);
m.sort(a);
for (c = 0; 7 > c; c++) t[c] = na(t[c]), h[c] = na(h[c]), m[c] = na(m[c]);
this._weekdaysMinRegex = this._weekdaysShortRegex = this._weekdaysRegex = new RegExp("^(" + m.join("|") + ")", "i");
this._weekdaysStrictRegex = new RegExp("^(" + h.join("|") + ")", "i");
this._weekdaysShortStrictRegex = new RegExp("^(" + t.join("|") + ")", "i");
this._weekdaysMinStrictRegex = new RegExp("^(" + e.join("|") + ")", "i")
}
function ib() {
return this.hours() % 12 || 12
}
function Ib(a, c) {
R(a, 0, 0, function() {
return this.localeData().meridiem(this.hours(), this.minutes(), c)
})
}
function jb(a, c) {
return c._meridiemParse
}
function X(a) {
return a ? a.toLowerCase().replace("_", "-") : a
}
function kb(a) {
var f = null;
if (!sa[a] && "undefined" != typeof e && e && e.exports) try {
f = Ya._abbr, c("./locale/" + a), La(f)
} catch (Kb) {}
return sa[a]
}
function La(a, c) {
var f;
return a && (f = v(c) ? Ha(a) : Ga(a, c), f && (Ya = f)), Ya._abbr
}
function Ga(a, c) {
if (null !== c) {
var f = pc;
if (c.abbr = a, null != sa[a]) M("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."), f = sa[a]._config;
else if (null != c.parentLocale) {
if (null == sa[c.parentLocale]) return Zb[c.parentLocale] || (Zb[c.parentLocale] = []), Zb[c.parentLocale].push({
name: a,
config: c
}), null;
f = sa[c.parentLocale]._config
}
return sa[a] = new Q(U(f, c)), Zb[a] && Zb[a].forEach(function(a) {
Ga(a.name, a.config)
}), La(a), sa[a]
}
return delete sa[a], null
}
function Ha(a) {
var c;
if (a && a._locale && a._locale._abbr && (a = a._locale._abbr), !a) return Ya;
if (!m(a)) {
if (c = kb(a)) return c;
a = [a]
}
a: {
for (var f, k, n, e = 0; e < a.length;) {
n = X(a[e]).split("-");
c = n.length;
for (f = (f = X(a[e + 1])) ? f.split("-") : null; 0 < c;) {
if (k = kb(n.slice(0, c).join("-"))) {
a = k;
break a
}
if (f && f.length >= c && J(n, f, !0) >= c - 1) break;
c--
}
e++
}
a = null
}
return a
}
function Sa(a) {
var c, f = a._a;
return f && -2 === u(a).overflow && (c = 0 > f[Pa] || 11 < f[Pa] ? Pa : 1 > f[$a] || f[$a] > ja(f[eb], f[Pa]) ? $a : 0 > f[Ja] || 24 < f[Ja] || 24 === f[Ja] && (0 !== f[cb] || 0 !== f[gb] || 0 !== f[Gb]) ? Ja : 0 > f[cb] || 59 < f[cb] ? cb : 0 > f[gb] || 59 < f[gb] ? gb : 0 > f[Gb] || 999 < f[Gb] ? Gb : -1, u(a)._overflowDayOfYear && (c < eb || c > $a) && (c = $a), u(a)._overflowWeeks && -1 === c && (c = N), u(a)._overflowWeekday && -1 === c && (c = Ca), u(a).overflow = c), a
}
function Ua(a) {
var c, f, k, n, e, t;
c = a._i;
var h = Hb.exec(c) || sc.exec(c);
if (h) {
u(a).iso = !0;
c = 0;
for (f = nb.length; c < f; c++)
if (nb[c][1].exec(h[1])) {
n = nb[c][0];
k = !1 !== nb[c][2];
break
}
if (null == n) return void(a._isValid = !1);
if (h[3]) {
c = 0;
for (f = qc.length; c < f; c++)
if (qc[c][1].exec(h[3])) {
e = (h[2] || " ") + qc[c][0];
break
}
if (null == e) return void(a._isValid = !1)
}
if (!k && null != e) return void(a._isValid = !1);
if (h[4]) {
if (!vc.exec(h[4])) return void(a._isValid = !1);
t = "Z"
}
a._f = n + (e || "") + (t || "");
Ma(a)
} else a._isValid = !1
}
function ub(a) {
var c = xc.exec(a._i);
return null !== c ? void(a._d = new Date(+c[1])) : (Ua(a), void(!1 === a._isValid && (delete a._isValid, h.createFromInputFallback(a))))
}
function ab(a, c, f) {
return null != a ? a : null != c ? c : f
}
function yb(a) {
var c, f, k, n = [];
if (!a._d) {
f = new Date(h.now());
f = a._useUTC ? [f.getUTCFullYear(), f.getUTCMonth(), f.getUTCDate()] : [f.getFullYear(), f.getMonth(), f.getDate()];
if (a._w && null == a._a[$a] && null == a._a[Pa]) {
var e, t, m, w, q, p, C, v;
(e = a._w, null != e.GG || null != e.W || null != e.E) ? (q = 1, p = 4, t = ab(e.GG, a._a[eb], Ia(ma(), 1, 4).year), m = ab(e.W, 1), w = ab(e.E, 1), (1 > w || 7 < w) && (v = !0)) : (q = a._locale._week.dow, p = a._locale._week.doy, m = Ia(ma(), q, p), t = ab(e.gg, a._a[eb], m.year), m = ab(e.w, m.week), null != e.d ? (w = e.d, (0 > w || 6 < w) && (v = !0)) : null != e.e ? (w = e.e + q, (0 > e.e || 6 < e.e) && (v = !0)) : w = q);
1 > m || m > za(t, q, p) ? u(a)._overflowWeeks = !0 : null != v ? u(a)._overflowWeekday = !0 : (C = Qb(t, m, w, q, p), a._a[eb] = C.year, a._dayOfYear = C.dayOfYear)
}
a._dayOfYear && (k = ab(a._a[eb], f[eb]), a._dayOfYear > (P(k) ? 366 : 365) && (u(a)._overflowDayOfYear = !0), c = Db(k, 0, a._dayOfYear), a._a[Pa] = c.getUTCMonth(), a._a[$a] = c.getUTCDate());
for (c = 0; 3 > c && null == a._a[c]; ++c) a._a[c] = n[c] = f[c];
for (; 7 > c; c++) a._a[c] = n[c] = null == a._a[c] ? 2 === c ? 1 : 0 : a._a[c];
24 === a._a[Ja] && 0 === a._a[cb] && 0 === a._a[gb] && 0 === a._a[Gb] && (a._nextDay = !0, a._a[Ja] = 0);
a._d = (a._useUTC ? Db : z).apply(null, n);
null != a._tzm && a._d.setUTCMinutes(a._d.getUTCMinutes() - a._tzm);
a._nextDay && (a._a[Ja] = 24)
}
}
function Ma(a) {
if (a._f === h.ISO_8601) return void Ua(a);
a._a = [];
u(a).empty = !0;
var c, f, k, e, t, m = "" + a._i,
w = m.length,
q = 0;
k = Da(a._f, a._locale).match(lc) || [];
for (c = 0; c < k.length; c++)
if (e = k[c], (f = (m.match(wa(e, a)) || [])[0]) && (t = m.substr(0, m.indexOf(f)), 0 < t.length && u(a).unusedInput.push(t), m = m.slice(m.indexOf(f) + f.length), q += f.length), bb[e]) {
f ? u(a).empty = !1 : u(a).unusedTokens.push(e);
var p = a;
null != f && n(oc, e) && oc[e](f, p._a, p, e)
} else a._strict && !f && u(a).unusedTokens.push(e);
u(a).charsLeftOver = w - q;
0 < m.length && u(a).unusedInput.push(m);
12 >= a._a[Ja] && !0 === u(a).bigHour && 0 < a._a[Ja] && (u(a).bigHour = void 0);
u(a).parsedDateParts = a._a.slice(0);
u(a).meridiem = a._meridiem;
c = a._a;
k = Ja;
m = a._locale;
t = a._a[Ja];
var w = a._meridiem,
C, m = null == w ? t : null != m.meridiemHour ? m.meridiemHour(t, w) : null != m.isPM ? (C = m.isPM(w), C && 12 > t && (t += 12), C || 12 !== t || (t = 0), t) : t;
c[k] = m;
yb(a);
Sa(a)
}
function ia(a) {
if (!a._d) {
var c = W(a._i);
a._a = k([c.year, c.month, c.day || c.date, c.hour, c.minute, c.second, c.millisecond], function(a) {
return a && parseInt(a, 10)
});
yb(a)
}
}
function va(a) {
var c = a._i,
k = a._f;
a._locale = a._locale || Ha(a._l);
if (null === c || void 0 === k && "" === c) a = A({
nullInput: !0
});
else if ("string" == typeof c && (a._i = c = a._locale.preparse(c)), E(c)) a = new D(Sa(c));
else {
if (f(c)) a._d = c;
else if (m(k)) {
var n, e, h;
if (0 === a._f.length) u(a).invalidFormat = !0, a._d = new Date(NaN);
else {
for (c = 0; c < a._f.length; c++) k = 0, n = B({}, a), null != a._useUTC && (n._useUTC = a._useUTC), n._f = a._f[c], Ma(n), C(n) && (k += u(n).charsLeftOver, k += 10 * u(n).unusedTokens.length, u(n).score = k, (null == h || k < h) && (h = k, e = n));
t(a, e || n)
}
} else k ? Ma(a) : vb(a);
a = (C(a) || (a._d = null), a)
}
return a
}
function vb(c) {
var n = c._i;
void 0 === n ? c._d = new Date(h.now()) : f(n) ? c._d = new Date(n.valueOf()) : "string" == typeof n ? ub(c) : m(n) ? (c._a = k(n.slice(0), function(a) {
return parseInt(a, 10)
}), yb(c)) : "object" == typeof n ? ia(c) : a(n) ? c._d = new Date(n) : h.createFromInputFallback(c)
}
function Jb(a, c, f, k, n) {
var e = {};
!0 !== f && !1 !== f || (k = f, f = void 0);
var t;
if (t = q(a)) a: {
t = a;
for (var h in t) {
t = !1;
break a
}
t = !0
}(t || m(a) && 0 === a.length) && (a = void 0);
e._isAMomentObject = !0;
e._useUTC = e._isUTC = n;
e._l = f;
e._i = a;
e._f = c;
e._strict = k;
a = new D(Sa(va(e)));
return a._nextDay && (a.add(1, "d"), a._nextDay = void 0), a
}
function ma(a, c, f, k) {
return Jb(a, c, f, k, !1)
}
function Ab(a, c) {
var f, k;
if (1 === c.length && m(c[0]) && (c = c[0]), !c.length) return ma();
f = c[0];
for (k = 1; k < c.length; ++k) c[k].isValid() && !c[k][a](f) || (f = c[k]);
return f
}
function pb(a) {
a = W(a);
var c = a.year || 0,
f = a.quarter || 0,
k = a.month || 0,
n = a.week || 0,
e = a.day || 0;
this._milliseconds = +(a.millisecond || 0) + 1e3 * (a.second || 0) + 6e4 * (a.minute || 0) + 36e5 * (a.hour || 0);
this._days = +e + 7 * n;
this._months = +k + 3 * f + 12 * c;
this._data = {};
this._locale = Ha();
this._bubble()
}
function Lb(a) {
return a instanceof pb
}
function Va(a) {
return 0 > a ? -1 * Math.round(-1 * a) : Math.round(a)
}
function cc(a, c) {
R(a, 0, 0, function() {
var a = this.utcOffset(),
f = "+";
return 0 > a && (a = -a, f = "-"), f + Z(~~(a / 60), 2) + c + Z(~~a % 60, 2)
})
}
function Bb(a, c) {
var f = (c || "").match(a);
if (null === f) return null;
var f = ((f[f.length - 1] || []) + "").match(Cc) || ["-", 0, 0],
k = +(60 * f[1]) + G(f[2]);
return 0 === k ? 0 : "+" === f[0] ? k : -k
}
function lb(a, c) {
var k, n;
return c._isUTC ? (k = c.clone(), n = (E(a) || f(a) ? a.valueOf() : ma(a).valueOf()) - k.valueOf(), k._d.setTime(k._d.valueOf() + n), h.updateOffset(k, !1), k) : ma(a).local()
}
function Za(a) {
return 15 * -Math.round(a._d.getTimezoneOffset() / 15)
}
function hc() {
return !!this.isValid() && this._isUTC && 0 === this._offset
}
function qb(c, f) {
var k, e, t, h = c;
Lb(c) ? h = {
ms: c._milliseconds,
d: c._days,
M: c._months
} : a(c) ? (h = {}, f ? h[f] = c : h.milliseconds = c) : (t = Hc.exec(c)) ? (k = "-" === t[1] ? -1 : 1, h = {
y: 0,
d: G(t[$a]) * k,
h: G(t[Ja]) * k,
m: G(t[cb]) * k,
s: G(t[gb]) * k,
ms: G(Va(1e3 * t[Gb])) * k
}) : (t = Dc.exec(c)) ? (k = "-" === t[1] ? -1 : 1, h = {
y: Aa(t[2], k),
M: Aa(t[3], k),
w: Aa(t[4], k),
d: Aa(t[5], k),
h: Aa(t[6], k),
m: Aa(t[7], k),
s: Aa(t[8], k)
}) : null == h ? h = {} : "object" == typeof h && ("from" in h || "to" in h) && (t = ma(h.from), h = ma(h.to), t = t.isValid() && h.isValid() ? (h = lb(h, t), t.isBefore(h) ? k = qa(t, h) : (k = qa(h, t), k.milliseconds = -k.milliseconds, k.months = -k.months), k) : {
milliseconds: 0,
months: 0
}, h = {}, h.ms = t.milliseconds, h.M = t.months);
return e = new pb(h), Lb(c) && n(c, "_locale") && (e._locale = c._locale), e
}
function Aa(a, c) {
var f = a && parseFloat(a.replace(",", "."));
return (isNaN(f) ? 0 : f) * c
}
function qa(a, c) {
var f = {
milliseconds: 0,
months: 0
};
return f.months = c.month() - a.month() + 12 * (c.year() - a.year()), a.clone().add(f.months, "M").isAfter(c) && --f.months, f.milliseconds = +c - +a.clone().add(f.months, "M"), f
}
function ic(a, c) {
return function(f, k) {
var n, e;
return null === k || isNaN(+k) || (M(c, "moment()." + c + "(period, number) is deprecated. Please use moment()." + c + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."), e = f, f = k, k = e), f = "string" == typeof f ? +f : f, n = qb(f, k), jc(this, n, a), this
}
}
function jc(a, c, f, k) {
var n = c._milliseconds,
e = Va(c._days);
c = Va(c._months);
a.isValid() && (k = null == k || k, n && a._d.setTime(a._d.valueOf() + n * f), e && (n = Y(a, "Date") + e * f, a.isValid() && a._d["set" + (a._isUTC ? "UTC" : "") + "Date"](n)), c && hb(a, Y(a, "Month") + c * f), k && h.updateOffset(a, e || c))
}
function Wa(a) {
var c;
return void 0 === a ? this._locale._abbr : (c = Ha(a), null != c && (this._locale = c), this)
}
function Pb() {
return this._locale
}
function ac(a, c) {
R(0, [a, a.length], 0, c)
}
function db(a, c, f, k, n) {
var e;
null == a ? a = Ia(this, k, n).year : (e = za(a, k, n), c > e && (c = e), a = Qb(a, c, f, k, n), a = Db(a.year, 0, a.dayOfYear), a = (this.year(a.getUTCFullYear()), this.month(a.getUTCMonth()), this.date(a.getUTCDate()), this));
return a
}
function T(a, c) {
c[Gb] = G(1e3 * ("0." + a))
}
function ra(a) {
return a
}
function ga(a, c, f, k) {
var n = Ha();
c = w().set(k, c);
return n[f](c, a)
}
function ba(c, f, k) {
if (a(c) && (f = c, c = void 0), c = c || "", null != f) return ga(c, f, k, "month");
var n = [];
for (f = 0; 12 > f; f++) n[f] = ga(c, f, k, "month");
return n
}
function la(c, f, k, n) {
"boolean" == typeof c ? (a(f) && (k = f, f = void 0), f = f || "") : (f = c, k = f, c = !1, a(f) && (k = f, f = void 0), f = f || "");
var e = Ha();
c = c ? e._week.dow : 0;
if (null != k) return ga(f, (k + c) % 7, n, "day");
e = [];
for (k = 0; 7 > k; k++) e[k] = ga(f, (k + c) % 7, n, "day");
return e
}
function tb(a, c, f, k) {
c = qb(c, f);
return a._milliseconds += k * c._milliseconds, a._days += k * c._days, a._months += k * c._months, a._bubble()
}
function zb(a) {
return 0 > a ? Math.floor(a) : Math.ceil(a)
}
function rb(a) {
return function() {
return this.as(a)
}
}
function Cb(a) {
return function() {
return this._data[a]
}
}
function uc(a, c, f, k, n) {
return n.relativeTime(c || 1, !!f, a, k)
}
function Rb() {
var a, c, f, k = Bc(this._milliseconds) / 1e3,
n = Bc(this._days),
e = Bc(this._months);
a = F(k / 60);
c = F(a / 60);
k %= 60;
a %= 60;
f = F(e / 12);
var e = e % 12,
t = this.asSeconds();
return t ? (0 > t ? "-" : "") + "P" + (f ? f + "Y" : "") + (e ? e + "M" : "") + (n ? n + "D" : "") + (c || a || k ? "T" : "") + (c ? c + "H" : "") + (a ? a + "M" : "") + (k ? k + "S" : "") : "P0D"
}
var sb, rc = Array.prototype.some ? Array.prototype.some : function(a) {
for (var c = Object(this), f = c.length >>> 0, k = 0; k < f; k++)
if (k in c && a.call(this, c[k], k, c)) return !0;
return !1
},
kc = h.momentProperties = [],
Sb = !1,
dc = {};
h.suppressDeprecationWarnings = !1;
h.deprecationHandler = null;
var Qa = Object.keys ? Object.keys : function(a) {
var c, f = [];
for (c in a) n(a, c) && f.push(c);
return f
},
mb = {},
Ba = {},
lc = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,
Mb = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
Ka = {},
bb = {},
Nb = /\d/,
Na = /\d\d/,
Tb = /\d{3}/,
wb = /\d{4}/,
Ub = /[+-]?\d{6}/,
ka = /\d\d?/,
Vb = /\d\d\d\d?/,
Oa = /\d\d\d\d\d\d?/,
mc = /\d{1,3}/,
Wb = /\d{1,4}/,
Fb = /[+-]?\d{1,6}/,
bc = /\d+/,
Xb = /[+-]?\d+/,
xb = /Z|[+-]\d\d:?\d\d/gi,
fb = /Z|[+-]\d\d(?::?\d\d)?/gi,
Yb = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,
nc = {},
oc = {},
eb = 0,
Pa = 1,
$a = 2,
Ja = 3,
cb = 4,
gb = 5,
Gb = 6,
N = 7,
Ca = 8,
fa = Array.prototype.indexOf ? Array.prototype.indexOf : function(a) {
var c;
for (c = 0; c < this.length; ++c)
if (this[c] === a) return c;
return -1
};
R("M", ["MM", 2], "Mo", function() {
return this.month() + 1
});
R("MMM", 0, 0, function(a) {
return this.localeData().monthsShort(this, a)
});
R("MMMM", 0, 0, function(a) {
return this.localeData().months(this, a)
});
H("month", "M");
Ba.month = 8;
S("M", ka);
S("MM", ka, Na);
S("MMM", function(a, c) {
return c.monthsShortRegex(a)
});
S("MMMM", function(a, c) {
return c.monthsRegex(a)
});
ea(["M", "MM"], function(a, c) {
c[Pa] = G(a) - 1
});
ea(["MMM", "MMMM"], function(a, c, f, k) {
k = f._locale.monthsParse(a, k, f._strict);
null != k ? c[Pa] = k : u(f).invalidMonth = a
});
var Ra = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/;
R("Y", 0, 0, function() {
var a = this.year();
return 9999 >= a ? "" + a : "+" + a
});
R(0, ["YY", 2], 0, function() {
return this.year() % 100
});
R(0, ["YYYY", 4], 0, "year");
R(0, ["YYYYY", 5], 0, "year");
R(0, ["YYYYYY", 6, !0], 0, "year");
H("year", "y");
Ba.year = 1;
S("Y", Xb);
S("YY", ka, Na);
S("YYYY", Wb, wb);
S("YYYYY", Fb, Ub);
S("YYYYYY", Fb, Ub);
ea(["YYYYY", "YYYYYY"], eb);
ea("YYYY", function(a, c) {
c[eb] = 2 === a.length ? h.parseTwoDigitYear(a) : G(a)
});
ea("YY", function(a, c) {
c[eb] = h.parseTwoDigitYear(a)
});
ea("Y", function(a, c) {
c[eb] = parseInt(a, 10)
});
h.parseTwoDigitYear = function(a) {
return G(a) + (68 < G(a) ? 1900 : 2e3)
};
var Xa = ha("FullYear", !0);
R("w", ["ww", 2], "wo", "week");
R("W", ["WW", 2], "Wo", "isoWeek");
H("week", "w");
H("isoWeek", "W");
Ba.week = 5;
Ba.isoWeek = 5;
S("w", ka);
S("ww", ka, Na);
S("W", ka);
S("WW", ka, Na);
Ea(["w", "ww", "W", "WW"], function(a, c, f, k) {
c[k.substr(0, 1)] = G(a)
});
R("d", 0, "do", "day");
R("dd", 0, 0, function(a) {
return this.localeData().weekdaysMin(this, a)
});
R("ddd", 0, 0, function(a) {
return this.localeData().weekdaysShort(this, a)
});
R("dddd", 0, 0, function(a) {
return this.localeData().weekdays(this, a)
});
R("e", 0, 0, "weekday");
R("E", 0, 0, "isoWeekday");
H("day", "d");
H("weekday", "e");
H("isoWeekday", "E");
Ba.day = 11;
Ba.weekday = 11;
Ba.isoWeekday = 11;
S("d", ka);
S("e", ka);
S("E", ka);
S("dd", function(a, c) {
return c.weekdaysMinRegex(a)
});
S("ddd", function(a, c) {
return c.weekdaysShortRegex(a)
});
S("dddd", function(a, c) {
return c.weekdaysRegex(a)
});
Ea(["dd", "ddd", "dddd"], function(a, c, f, k) {
k = f._locale.weekdaysParse(a, k, f._strict);
null != k ? c.d = k : u(f).invalidWeekday = a
});
Ea(["d", "e", "E"], function(a, c, f, k) {
c[k] = G(a)
});
R("H", ["HH", 2], 0, "hour");
R("h", ["hh", 2], 0, ib);
R("k", ["kk", 2], 0, function() {
return this.hours() || 24
});
R("hmm", 0, 0, function() {
return "" + ib.apply(this) + Z(this.minutes(), 2)
});
R("hmmss", 0, 0, function() {
return "" + ib.apply(this) + Z(this.minutes(), 2) + Z(this.seconds(), 2)
});
R("Hmm", 0, 0, function() {
return "" + this.hours() + Z(this.minutes(), 2)
});
R("Hmmss", 0, 0, function() {
return "" + this.hours() + Z(this.minutes(), 2) + Z(this.seconds(), 2)
});
Ib("a", !0);
Ib("A", !1);
H("hour", "h");
Ba.hour = 13;
S("a", jb);
S("A", jb);
S("H", ka);
S("h", ka);
S("HH", ka, Na);
S("hh", ka, Na);
S("hmm", Vb);
S("hmmss", Oa);
S("Hmm", Vb);
S("Hmmss", Oa);
ea(["H", "HH"], Ja);
ea(["a", "A"], function(a, c, f) {
f._isPm = f._locale.isPM(a);
f._meridiem = a
});
ea(["h", "hh"], function(a, c, f) {
c[Ja] = G(a);
u(f).bigHour = !0
});
ea("hmm", function(a, c, f) {
var k = a.length - 2;
c[Ja] = G(a.substr(0, k));
c[cb] = G(a.substr(k));
u(f).bigHour = !0
});
ea("hmmss", function(a, c, f) {
var k = a.length - 4,
n = a.length - 2;
c[Ja] = G(a.substr(0, k));
c[cb] = G(a.substr(k, 2));
c[gb] = G(a.substr(n));
u(f).bigHour = !0
});
ea("Hmm", function(a, c, f) {
f = a.length - 2;
c[Ja] = G(a.substr(0, f));
c[cb] = G(a.substr(f))
});
ea("Hmmss", function(a, c, f) {
f = a.length - 4;
var k = a.length - 2;
c[Ja] = G(a.substr(0, f));
c[cb] = G(a.substr(f, 2));
c[gb] = G(a.substr(k))
});
var Ya, Ob = ha("Hours", !0),
pc = {
calendar: {
sameDay: "[Today at] LT",
nextDay: "[Tomorrow at] LT",
nextWeek: "dddd [at] LT",
lastDay: "[Yesterday at] LT",
lastWeek: "[Last] dddd [at] LT",
sameElse: "L"
},
longDateFormat: {
LTS: "h:mm:ss A",
LT: "h:mm A",
L: "MM/DD/YYYY",
LL: "MMMM D, YYYY",
LLL: "MMMM D, YYYY h:mm A",
LLLL: "dddd, MMMM D, YYYY h:mm A"
},
invalidDate: "Invalid date",
ordinal: "%d",
ordinalParse: /\d{1,2}/,
relativeTime: {
future: "in %s",
past: "%s ago",
s: "a few seconds",
m: "a minute",
mm: "%d minutes",
h: "an hour",
hh: "%d hours",
d: "a day",
dd: "%d days",
M: "a month",
MM: "%d months",
y: "a year",
yy: "%d years"
},
months: "January February March April May June July August September October November December".split(" "),
monthsShort: "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),
week: {
dow: 0,
doy: 6
},
weekdays: "Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),
weekdaysMin: "Su Mo Tu We Th Fr Sa".split(" "),
weekdaysShort: "Sun Mon Tue Wed Thu Fri Sat".split(" "),
meridiemParse: /[ap]\.?m?\.?/i
},
sa = {},
Zb = {},
Hb = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
sc = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
vc = /Z|[+-]\d\d(?::?\d\d)?/,
nb = [
["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/],
["YYYY-MM-DD", /\d{4}-\d\d-\d\d/],
["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/],
["GGGG-[W]WW", /\d{4}-W\d\d/, !1],
["YYYY-DDD", /\d{4}-\d{3}/],
["YYYY-MM", /\d{4}-\d\d/, !1],
["YYYYYYMMDD", /[+-]\d{10}/],
["YYYYMMDD", /\d{8}/],
["GGGG[W]WWE", /\d{4}W\d{3}/],
["GGGG[W]WW", /\d{4}W\d{2}/, !1],
["YYYYDDD", /\d{7}/]
],
qc = [
["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/],
["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/],
["HH:mm:ss", /\d\d:\d\d:\d\d/],
["HH:mm", /\d\d:\d\d/],
["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/],
["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/],
["HHmmss", /\d\d\d\d\d\d/],
["HHmm", /\d\d\d\d/],
["HH", /\d\d/]
],
xc = /^\/?Date\((\-?\d+)/i;
h.createFromInputFallback = K("value provided is not in a recognized ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", function(a) {
a._d = new Date(a._i + (a._useUTC ? " UTC" : ""))
});
h.ISO_8601 = function() {};
var tc = K("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", function() {
var a = ma.apply(null, arguments);
return this.isValid() && a.isValid() ? a < this ? this : a : A()
}),
yc = K("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", function() {
var a = ma.apply(null, arguments);
return this.isValid() && a.isValid() ? a > this ? this : a : A()
});
cc("Z", ":");
cc("ZZ", "");
S("Z", fb);
S("ZZ", fb);
ea(["Z", "ZZ"], function(a, c, f) {
f._useUTC = !0;
f._tzm = Bb(fb, a)
});
var Cc = /([\+\-]|\d\d)/gi;
h.updateOffset = function() {};
var Hc = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,
Dc = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;
qb.fn = pb.prototype;
var Ic = ic(1, "add"),
Ec = ic(-1, "subtract");
h.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ";
h.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]";
var Fc = K("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", function(a) {
return void 0 === a ? this.localeData() : this.locale(a)
});
R(0, ["gg", 2], 0, function() {
return this.weekYear() % 100
});
R(0, ["GG", 2], 0, function() {
return this.isoWeekYear() % 100
});
ac("gggg", "weekYear");
ac("ggggg", "weekYear");
ac("GGGG", "isoWeekYear");
ac("GGGGG", "isoWeekYear");
H("weekYear", "gg");
H("isoWeekYear", "GG");
Ba.weekYear = 1;
Ba.isoWeekYear = 1;
S("G", Xb);
S("g", Xb);
S("GG", ka, Na);
S("gg", ka, Na);
S("GGGG", Wb, wb);
S("gggg", Wb, wb);
S("GGGGG", Fb, Ub);
S("ggggg", Fb, Ub);
Ea(["gggg", "ggggg", "GGGG", "GGGGG"], function(a, c, f, k) {
c[k.substr(0, 2)] = G(a)
});
Ea(["gg", "GG"], function(a, c, f, k) {
c[k] = h.parseTwoDigitYear(a)
});
R("Q", 0, "Qo", "quarter");
H("quarter", "Q");
Ba.quarter = 7;
S("Q", Nb);
ea("Q", function(a, c) {
c[Pa] = 3 * (G(a) - 1)
});
R("D", ["DD", 2], "Do", "date");
H("date", "D");
Ba.date = 9;
S("D", ka);
S("DD", ka, Na);
S("Do", function(a, c) {
return a ? c._ordinalParse : c._ordinalParseLenient
});
ea(["D", "DD"], $a);
ea("Do", function(a, c) {
c[$a] = G(a.match(ka)[0], 10)
});
var Gc = ha("Date", !0);
R("DDD", ["DDDD", 3], "DDDo", "dayOfYear");
H("dayOfYear", "DDD");
Ba.dayOfYear = 4;
S("DDD", mc);
S("DDDD", Tb);
ea(["DDD", "DDDD"], function(a, c, f) {
f._dayOfYear = G(a)
});
R("m", ["mm", 2], 0, "minute");
H("minute", "m");
Ba.minute = 14;
S("m", ka);
S("mm", ka, Na);
ea(["m", "mm"], cb);
var zc = ha("Minutes", !1);
R("s", ["ss", 2], 0, "second");
H("second", "s");
Ba.second = 15;
S("s", ka);
S("ss", ka, Na);
ea(["s", "ss"], gb);
var Ac = ha("Seconds", !1);
R("S", 0, 0, function() {
return ~~(this.millisecond() / 100)
});
R(0, ["SS", 2], 0, function() {
return ~~(this.millisecond() / 10)
});
R(0, ["SSS", 3], 0, "millisecond");
R(0, ["SSSS", 4], 0, function() {
return 10 * this.millisecond()
});
R(0, ["SSSSS", 5], 0, function() {
return 100 * this.millisecond()
});
R(0, ["SSSSSS", 6], 0, function() {
return 1e3 * this.millisecond()
});
R(0, ["SSSSSSS", 7], 0, function() {
return 1e4 * this.millisecond()
});
R(0, ["SSSSSSSS", 8], 0, function() {
return 1e5 * this.millisecond()
});
R(0, ["SSSSSSSSS", 9], 0, function() {
return 1e6 * this.millisecond()
});
H("millisecond", "ms");
Ba.millisecond = 16;
S("S", mc, Nb);
S("SS", mc, Na);
S("SSS", mc, Tb);
var fc;
for (fc = "SSSS"; 9 >= fc.length; fc += "S") S(fc, bc);
for (fc = "S"; 9 >= fc.length; fc += "S") ea(fc, T);
var Qc = ha("Milliseconds", !1);
R("z", 0, 0, "zoneAbbr");
R("zz", 0, 0, "zoneName");
var V = D.prototype;
V.add = Ic;
V.calendar = function(a, c) {
var f = a || ma(),
k = lb(f, this).startOf("day"),
k = h.calendarFormat(this, k) || "sameElse",
n = c && (L(c[k]) ? c[k].call(this, f) : c[k]);
return this.format(n || this.localeData().calendar(k, this, ma(f)))
};
V.clone = function() {
return new D(this)
};
V.diff = function(a, c, f) {
var k, n;
if (this.isValid())
if (a = lb(a, this), a.isValid()) {
k = 6e4 * (a.utcOffset() - this.utcOffset());
c = O(c);
if ("year" === c || "month" === c || "quarter" === c) {
var e;
k = 12 * (a.year() - this.year()) + (a.month() - this.month());
var t = this.clone().add(k, "months");
a = (0 > a - t ? (n = this.clone().add(k - 1, "months"), e = (a - t) / (t - n)) : (n = this.clone().add(k + 1, "months"), e = (a - t) / (n - t)), -(k + e) || 0);
"quarter" === c ? a /= 3 : "year" === c && (a /= 12)
} else n = this - a, a = "second" === c ? n / 1e3 : "minute" === c ? n / 6e4 : "hour" === c ? n / 36e5 : "day" === c ? (n - k) / 864e5 : "week" === c ? (n - k) / 6048e5 : n;
c = f ? a : F(a)
} else c = NaN;
else c = NaN;
return c
};
V.endOf = function(a) {
return a = O(a), void 0 === a || "millisecond" === a ? this : ("date" === a && (a = "day"), this.startOf(a).add(1, "isoWeek" === a ? "week" : a).subtract(1, "ms"))
};
V.format = function(a) {
a || (a = this.isUtc() ? h.defaultFormatUtc : h.defaultFormat);
a = ua(this, a);
return this.localeData().postformat(a)
};
V.from = function(a, c) {
return this.isValid() && (E(a) && a.isValid() || ma(a).isValid()) ? qb({
to: this,
from: a
}).locale(this.locale()).humanize(!c) : this.localeData().invalidDate()
};
V.fromNow = function(a) {
return this.from(ma(), a)
};
V.to = function(a, c) {
return this.isValid() && (E(a) && a.isValid() || ma(a).isValid()) ? qb({
from: this,
to: a
}).locale(this.locale()).humanize(!c) : this.localeData().invalidDate()
};
V.toNow = function(a) {
return this.to(ma(), a)
};
V.get = function(a) {
return a = O(a), L(this[a]) ? this[a]() : this
};
V.invalidAt = function() {
return u(this).overflow
};
V.isAfter = function(a, c) {
var f = E(a) ? a : ma(a);
return !(!this.isValid() || !f.isValid()) && (c = O(v(c) ? "millisecond" : c), "millisecond" === c ? this.valueOf() > f.valueOf() : f.valueOf() < this.clone().startOf(c).valueOf())
};
V.isBefore = function(a, c) {
var f = E(a) ? a : ma(a);
return !(!this.isValid() || !f.isValid()) && (c = O(v(c) ? "millisecond" : c), "millisecond" === c ? this.valueOf() < f.valueOf() : this.clone().endOf(c).valueOf() < f.valueOf())
};
V.isBetween = function(a, c, f, k) {
return k = k || "()", ("(" === k[0] ? this.isAfter(a, f) : !this.isBefore(a, f)) && (")" === k[1] ? this.isBefore(c, f) : !this.isAfter(c, f))
};
V.isSame = function(a, c) {
var f, k = E(a) ? a : ma(a);
return !(!this.isValid() || !k.isValid()) && (c = O(c || "millisecond"), "millisecond" === c ? this.valueOf() === k.valueOf() : (f = k.valueOf(), this.clone().startOf(c).valueOf() <= f && f <= this.clone().endOf(c).valueOf()))
};
V.isSameOrAfter = function(a, c) {
return this.isSame(a, c) || this.isAfter(a, c)
};
V.isSameOrBefore = function(a, c) {
return this.isSame(a, c) || this.isBefore(a, c)
};
V.isValid = function() {
return C(this)
};
V.lang = Fc;
V.locale = Wa;
V.localeData = Pb;
V.max = yc;
V.min = tc;
V.parsingFlags = function() {
return t({}, u(this))
};
V.set = function(a, c) {
if ("object" == typeof a) {
a = W(a);
for (var f = ca(a), k = 0; k < f.length; k++) this[f[k].unit](a[f[k].unit])
} else if (a = O(a), L(this[a])) return this[a](c);
return this
};
V.startOf = function(a) {
switch (a = O(a)) {
case "year":
this.month(0);
case "quarter":
case "month":
this.date(1);
case "week":
case "isoWeek":
case "day":
case "date":
this.hours(0);
case "hour":
this.minutes(0);
case "minute":
this.seconds(0);
case "second":
this.milliseconds(0)
}
return "week" === a && this.weekday(0), "isoWeek" === a && this.isoWeekday(1), "quarter" === a && this.month(3 * Math.floor(this.month() / 3)), this
};
V.subtract = Ec;
V.toArray = function() {
return [this.year(), this.month(), this.date(), this.hour(), this.minute(), this.second(), this.millisecond()]
};
V.toObject = function() {
return {
years: this.year(),
months: this.month(),
date: this.date(),
hours: this.hours(),
minutes: this.minutes(),
seconds: this.seconds(),
milliseconds: this.milliseconds()
}
};
V.toDate = function() {
return new Date(this.valueOf())
};
V.toISOString = function() {
var a = this.clone().utc();
return 0 < a.year() && 9999 >= a.year() ? L(Date.prototype.toISOString) ? this.toDate().toISOString() : ua(a, "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]") : ua(a, "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")
};
V.inspect = function() {
if (!this.isValid()) return "moment.invalid(/* " + this._i + " */)";
var a = "moment",
c = "";
this.isLocal() || (a = 0 === this.utcOffset() ? "moment.utc" : "moment.parseZone", c = "Z");
var a = "[" + a + '("]',
f = 0 < this.year() && 9999 >= this.year() ? "YYYY" : "YYYYYY";
return this.format(a + f + "-MM-DD[T]HH:mm:ss.SSS" + (c + '[")]'))
};
V.toJSON = function() {
return this.isValid() ? this.toISOString() : null
};
V.toString = function() {
return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")
};
V.unix = function() {
return Math.floor(this.valueOf() / 1e3)
};
V.valueOf = function() {
return this._d.valueOf() - 6e4 * (this._offset || 0)
};
V.creationData = function() {
return {
input: this._i,
format: this._f,
locale: this._locale,
isUTC: this._isUTC,
strict: this._strict
}
};
V.year = Xa;
V.isLeapYear = function() {
return P(this.year())
};
V.weekYear = function(a) {
return db.call(this, a, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy)
};
V.isoWeekYear = function(a) {
return db.call(this, a, this.isoWeek(), this.isoWeekday(), 1, 4)
};
V.quarter = V.quarters = function(a) {
return null == a ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (a - 1) + this.month() % 3)
};
V.month = ob;
V.daysInMonth = function() {
return ja(this.year(), this.month())
};
V.week = V.weeks = function(a) {
var c = this.localeData().week(this);
return null == a ? c : this.add(7 * (a - c), "d")
};
V.isoWeek = V.isoWeeks = function(a) {
var c = Ia(this, 1, 4).week;
return null == a ? c : this.add(7 * (a - c), "d")
};
V.weeksInYear = function() {
var a = this.localeData()._week;
return za(this.year(), a.dow, a.doy)
};
V.isoWeeksInYear = function() {
return za(this.year(), 1, 4)
};
V.date = Gc;
V.day = V.days = function(a) {
if (!this.isValid()) return null != a ? this : NaN;
var c = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
if (null != a) var f = a,
k = this.localeData(),
c = (a = "string" != typeof f ? f : isNaN(f) ? (f = k.weekdaysParse(f), "number" == typeof f ? f : null) : parseInt(f, 10), this.add(a - c, "d"));
return c
};
V.weekday = function(a) {
if (!this.isValid()) return null != a ? this : NaN;
var c = (this.day() + 7 - this.localeData()._week.dow) % 7;
return null == a ? c : this.add(a - c, "d")
};
V.isoWeekday = function(a) {
if (!this.isValid()) return null != a ? this : NaN;
if (null != a) {
var c = this.localeData();
a = "string" == typeof a ? c.weekdaysParse(a) % 7 || 7 : isNaN(a) ? null : a;
return this.day(this.day() % 7 ? a : a - 7)
}
return this.day() || 7
};
V.dayOfYear = function(a) {
var c = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1;
return null == a ? c : this.add(a - c, "d")
};
V.hour = V.hours = Ob;
V.minute = V.minutes = zc;
V.second = V.seconds = Ac;
V.millisecond = V.milliseconds = Qc;
V.utcOffset = function(a, c) {
var f, k = this._offset || 0;
if (!this.isValid()) return null != a ? this : NaN;
if (null != a) {
if ("string" == typeof a) {
if (a = Bb(fb, a), null === a) return this
} else 16 > Math.abs(a) && (a *= 60);
return !this._isUTC && c && (f = Za(this)), this._offset = a, this._isUTC = !0, null != f && this.add(f, "m"), k !== a && (!c || this._changeInProgress ? jc(this, qb(a - k, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, h.updateOffset(this, !0), this._changeInProgress = null)), this
}
return this._isUTC ? k : Za(this)
};
V.utc = function(a) {
return this.utcOffset(0, a)
};
V.local = function(a) {
return this._isUTC && (this.utcOffset(0, a), this._isUTC = !1, a && this.subtract(Za(this), "m")), this
};
V.parseZone = function() {
if (null != this._tzm) this.utcOffset(this._tzm);
else if ("string" == typeof this._i) {
var a = Bb(xb, this._i);
null != a ? this.utcOffset(a) : this.utcOffset(0, !0)
}
return this
};
V.hasAlignedHourOffset = function(a) {
return !!this.isValid() && (a = a ? ma(a).utcOffset() : 0, 0 === (this.utcOffset() - a) % 60)
};
V.isDST = function() {
return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset()
};
V.isLocal = function() {
return !!this.isValid() && !this._isUTC
};
V.isUtcOffset = function() {
return !!this.isValid() && this._isUTC
};
V.isUtc = hc;
V.isUTC = hc;
V.zoneAbbr = function() {
return this._isUTC ? "UTC" : ""
};
V.zoneName = function() {
return this._isUTC ? "Coordinated Universal Time" : ""
};
V.dates = K("dates accessor is deprecated. Use date instead.", Gc);
V.months = K("months accessor is deprecated. Use month instead", ob);
V.years = K("years accessor is deprecated. Use year instead", Xa);
V.zone = K("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", function(a, c) {
return null != a ? ("string" != typeof a && (a = -a), this.utcOffset(a, c), this) : -this.utcOffset()
});
V.isDSTShifted = K("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", function() {
if (!v(this._isDSTShifted)) return this._isDSTShifted;
var a = {};
if (B(a, this), a = va(a), a._a) {
var c = a._isUTC ? w(a._a) : ma(a._a);
this._isDSTShifted = this.isValid() && 0 < J(a._a, c.toArray())
} else this._isDSTShifted = !1;
return this._isDSTShifted
});
var ya = Q.prototype;
ya.calendar = function(a, c, f) {
a = this._calendar[a] || this._calendar.sameElse;
return L(a) ? a.call(c, f) : a
};
ya.longDateFormat = function(a) {
var c = this._longDateFormat[a],
f = this._longDateFormat[a.toUpperCase()];
return c || !f ? c : (this._longDateFormat[a] = f.replace(/MMMM|MM|DD|dddd/g, function(a) {
return a.slice(1)
}), this._longDateFormat[a])
};
ya.invalidDate = function() {
return this._invalidDate
};
ya.ordinal = function(a) {
return this._ordinal.replace("%d", a)
};
ya.preparse = ra;
ya.postformat = ra;
ya.relativeTime = function(a, c, f, k) {
var n = this._relativeTime[f];
return L(n) ? n(a, c, f, k) : n.replace(/%d/i, a)
};
ya.pastFuture = function(a, c) {
var f = this._relativeTime[0 < a ? "future" : "past"];
return L(f) ? f(c) : f.replace(/%s/i, c)
};
ya.set = function(a) {
var c, f;
for (f in a) c = a[f], L(c) ? this[f] = c : this["_" + f] = c;
this._config = a;
this._ordinalParseLenient = new RegExp(this._ordinalParse.source + "|" + /\d{1,2}/.source)
};
ya.months = function(a, c) {
return a ? m(this._months) ? this._months[a.month()] : this._months[(this._months.isFormat || Ra).test(c) ? "format" : "standalone"][a.month()] : this._months
};
ya.monthsShort = function(a, c) {
return a ? m(this._monthsShort) ? this._monthsShort[a.month()] : this._monthsShort[Ra.test(c) ? "format" : "standalone"][a.month()] : this._monthsShort
};
ya.monthsParse = function(a, c, f) {
var k, n, e;
if (this._monthsParseExact) {
e = a.toLocaleLowerCase();
if (!this._monthsParse)
for (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], a = 0; 12 > a; ++a) n = w([2e3, a]), this._shortMonthsParse[a] = this.monthsShort(n, "").toLocaleLowerCase(), this._longMonthsParse[a] = this.months(n, "").toLocaleLowerCase();
return f ? "MMM" === c ? (k = fa.call(this._shortMonthsParse, e), -1 !== k ? k : null) : (k = fa.call(this._longMonthsParse, e), -1 !== k ? k : null) : "MMM" === c ? (k = fa.call(this._shortMonthsParse, e), -1 !== k ? k : (k = fa.call(this._longMonthsParse, e), -1 !== k ? k : null)) : (k = fa.call(this._longMonthsParse, e), -1 !== k ? k : (k = fa.call(this._shortMonthsParse, e), -1 !== k ? k : null))
}
this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []);
for (k = 0; 12 > k; k++)
if ((n = w([2e3, k]), f && !this._longMonthsParse[k] && (this._longMonthsParse[k] = new RegExp("^" + this.months(n, "").replace(".", "") + "$", "i"), this._shortMonthsParse[k] = new RegExp("^" + this.monthsShort(n, "").replace(".", "") + "$", "i")), f || this._monthsParse[k] || (e = "^" + this.months(n, "") + "|^" + this.monthsShort(n, ""), this._monthsParse[k] = new RegExp(e.replace(".", ""), "i")), f && "MMMM" === c && this._longMonthsParse[k].test(a)) || f && "MMM" === c && this._shortMonthsParse[k].test(a) || !f && this._monthsParse[k].test(a)) return k
};
ya.monthsRegex = function(a) {
return this._monthsParseExact ? (n(this, "_monthsRegex") || xa.call(this), a ? this._monthsStrictRegex : this._monthsRegex) : (n(this, "_monthsRegex") || (this._monthsRegex = Yb), this._monthsStrictRegex && a ? this._monthsStrictRegex : this._monthsRegex)
};
ya.monthsShortRegex = function(a) {
return this._monthsParseExact ? (n(this, "_monthsRegex") || xa.call(this), a ? this._monthsShortStrictRegex : this._monthsShortRegex) : (n(this, "_monthsShortRegex") || (this._monthsShortRegex = Yb), this._monthsShortStrictRegex && a ? this._monthsShortStrictRegex : this._monthsShortRegex)
};
ya.week = function(a) {
return Ia(a, this._week.dow, this._week.doy).week
};
ya.firstDayOfYear = function() {
return this._week.doy
};
ya.firstDayOfWeek = function() {
return this._week.dow
};
ya.weekdays = function(a, c) {
return a ? m(this._weekdays) ? this._weekdays[a.day()] : this._weekdays[this._weekdays.isFormat.test(c) ? "format" : "standalone"][a.day()] : this._weekdays
};
ya.weekdaysMin = function(a) {
return a ? this._weekdaysMin[a.day()] : this._weekdaysMin
};
ya.weekdaysShort = function(a) {
return a ? this._weekdaysShort[a.day()] : this._weekdaysShort
};
ya.weekdaysParse = function(a, c, f) {
var k, n, e;
if (this._weekdaysParseExact) {
e = a.toLocaleLowerCase();
if (!this._weekdaysParse)
for (this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], a = 0; 7 > a; ++a) n = w([2e3, 1]).day(a), this._minWeekdaysParse[a] = this.weekdaysMin(n, "").toLocaleLowerCase(), this._shortWeekdaysParse[a] = this.weekdaysShort(n, "").toLocaleLowerCase(), this._weekdaysParse[a] = this.weekdays(n, "").toLocaleLowerCase();
return f ? "dddd" === c ? (k = fa.call(this._weekdaysParse, e), -1 !== k ? k : null) : "ddd" === c ? (k = fa.call(this._shortWeekdaysParse, e), -1 !== k ? k : null) : (k = fa.call(this._minWeekdaysParse, e), -1 !== k ? k : null) : "dddd" === c ? (k = fa.call(this._weekdaysParse, e), -1 !== k ? k : (k = fa.call(this._shortWeekdaysParse, e), -1 !== k ? k : (k = fa.call(this._minWeekdaysParse, e), -1 !== k ? k : null))) : "ddd" === c ? (k = fa.call(this._shortWeekdaysParse, e), -1 !== k ? k : (k = fa.call(this._weekdaysParse, e), -1 !== k ? k : (k = fa.call(this._minWeekdaysParse, e), -1 !== k ? k : null))) : (k = fa.call(this._minWeekdaysParse, e), -1 !== k ? k : (k = fa.call(this._weekdaysParse, e), -1 !== k ? k : (k = fa.call(this._shortWeekdaysParse, e), -1 !== k ? k : null)))
}
this._weekdaysParse || (this._weekdaysParse = [], this._minWeekdaysParse = [], this._shortWeekdaysParse = [], this._fullWeekdaysParse = []);
for (k = 0; 7 > k; k++)
if ((n = w([2e3, 1]).day(k), f && !this._fullWeekdaysParse[k] && (this._fullWeekdaysParse[k] = new RegExp("^" + this.weekdays(n, "").replace(".", ".?") + "$", "i"), this._shortWeekdaysParse[k] = new RegExp("^" + this.weekdaysShort(n, "").replace(".", ".?") + "$", "i"), this._minWeekdaysParse[k] = new RegExp("^" + this.weekdaysMin(n, "").replace(".", ".?") + "$", "i")), this._weekdaysParse[k] || (e = "^" + this.weekdays(n, "") + "|^" + this.weekdaysShort(n, "") + "|^" + this.weekdaysMin(n, ""), this._weekdaysParse[k] = new RegExp(e.replace(".", ""), "i")), f && "dddd" === c && this._fullWeekdaysParse[k].test(a)) || f && "ddd" === c && this._shortWeekdaysParse[k].test(a) || f && "dd" === c && this._minWeekdaysParse[k].test(a) || !f && this._weekdaysParse[k].test(a)) return k
};
ya.weekdaysRegex = function(a) {
return this._weekdaysParseExact ? (n(this, "_weekdaysRegex") || Ta.call(this), a ? this._weekdaysStrictRegex : this._weekdaysRegex) : (n(this, "_weekdaysRegex") || (this._weekdaysRegex = Yb), this._weekdaysStrictRegex && a ? this._weekdaysStrictRegex : this._weekdaysRegex)
};
ya.weekdaysShortRegex = function(a) {
return this._weekdaysParseExact ? (n(this, "_weekdaysRegex") || Ta.call(this), a ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) : (n(this, "_weekdaysShortRegex") || (this._weekdaysShortRegex = Yb), this._weekdaysShortStrictRegex && a ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex)
};
ya.weekdaysMinRegex = function(a) {
return this._weekdaysParseExact ? (n(this, "_weekdaysRegex") || Ta.call(this), a ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) : (n(this, "_weekdaysMinRegex") || (this._weekdaysMinRegex = Yb), this._weekdaysMinStrictRegex && a ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex)
};
ya.isPM = function(a) {
return "p" === (a + "").toLowerCase().charAt(0)
};
ya.meridiem = function(a, c, f) {
return 11 < a ? f ? "pm" : "PM" : f ? "am" : "AM"
};
La("en", {
ordinalParse: /\d{1,2}(th|st|nd|rd)/,
ordinal: function(a) {
var c = a % 10,
c = 1 === G(a % 100 / 10) ? "th" : 1 === c ? "st" : 2 === c ? "nd" : 3 === c ? "rd" : "th";
return a + c
}
});
h.lang = K("moment.lang is deprecated. Use moment.locale instead.", La);
h.langData = K("moment.langData is deprecated. Use moment.localeData instead.", Ha);
var $b = Math.abs,
Sc = rb("ms"),
Mc = rb("s"),
Pc = rb("m"),
wc = rb("h"),
Tc = rb("d"),
Nc = rb("w"),
Uc = rb("M"),
Oc = rb("y"),
Rc = Cb("milliseconds"),
Vc = Cb("seconds"),
Wc = Cb("minutes"),
Kc = Cb("hours"),
Jc = Cb("days"),
Xc = Cb("months"),
Lc = Cb("years"),
ec = Math.round,
gc = {
s: 45,
m: 45,
h: 22,
d: 26,
M: 11
},
Bc = Math.abs,
pa = pb.prototype;
pa.abs = function() {
var a = this._data;
return this._milliseconds = $b(this._milliseconds), this._days = $b(this._days), this._months = $b(this._months), a.milliseconds = $b(a.milliseconds), a.seconds = $b(a.seconds), a.minutes = $b(a.minutes), a.hours = $b(a.hours), a.months = $b(a.months), a.years = $b(a.years), this
};
pa.add = function(a, c) {
return tb(this, a, c, 1)
};
pa.subtract = function(a, c) {
return tb(this, a, c, -1)
};
pa.as = function(a) {
var c, f, k = this._milliseconds;
if (a = O(a), "month" === a || "year" === a) return c = this._days + k / 864e5, f = this._months + 4800 * c / 146097, "month" === a ? f : f / 12;
switch (c = this._days + Math.round(146097 * this._months / 4800), a) {
case "week":
return c / 7 + k / 6048e5;
case "day":
return c + k / 864e5;
case "hour":
return 24 * c + k / 36e5;
case "minute":
return 1440 * c + k / 6e4;
case "second":
return 86400 * c + k / 1e3;
case "millisecond":
return Math.floor(864e5 * c) + k;
default:
throw Error("Unknown unit " + a)
}
};
pa.asMilliseconds = Sc;
pa.asSeconds = Mc;
pa.asMinutes = Pc;
pa.asHours = wc;
pa.asDays = Tc;
pa.asWeeks = Nc;
pa.asMonths = Uc;
pa.asYears = Oc;
pa.valueOf = function() {
return this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * G(this._months / 12)
};
pa._bubble = function() {
var a, c, f, k, n, e = this._milliseconds,
t = this._days,
h = this._months,
m = this._data;
return 0 <= e && 0 <= t && 0 <= h || 0 >= e && 0 >= t && 0 >= h || (e += 864e5 * zb(146097 * h / 4800 + t), t = 0, h = 0), m.milliseconds = e % 1e3, a = F(e / 1e3), m.seconds = a % 60, c = F(a / 60), m.minutes = c % 60, f = F(c / 60), m.hours = f % 24, t += F(f / 24), n = F(4800 * t / 146097), h += n, t -= zb(146097 * n / 4800), k = F(h / 12), h %= 12, m.days = t, m.months = h, m.years = k, this
};
pa.get = function(a) {
return a = O(a), this[a + "s"]()
};
pa.milliseconds = Rc;
pa.seconds = Vc;
pa.minutes = Wc;
pa.hours = Kc;
pa.days = Jc;
pa.weeks = function() {
return F(this.days() / 7)
};
pa.months = Xc;
pa.years = Lc;
pa.humanize = function(a) {
var c = this.localeData(),
f;
f = !a;
var k = qb(this).abs(),
n = ec(k.as("s")),
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment