tech4biz/admin/assets/js/form-builder/form-builder-1/main-built.js
2024-10-24 17:20:08 +05:30

5928 lines
310 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*! jQuery v1.9.0 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license */
//@ sourceMappingURL=jquery.min.map;
// Underscore.js 1.4.4
// http://underscorejs.org
// (c) 2009-2013 Jeremy Ashkenas, DocumentCloud Inc.
// Underscore may be freely distributed under the MIT license.
// (c) 2010-2012 Jeremy Ashkenas, DocumentCloud Inc.
// Backbone may be freely distributed under the MIT license.
// For all details and documentation:
// http://backbonejs.org
/**
* @license RequireJS text 2.0.5 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
* Available via the MIT or new BSD license.
* see: http://github.com/requirejs/text for details
*/
/**
* bootstrap.js v3.0.0 by @fat and @mdo
* Copyright 2013 Twitter Inc.
* http://www.apache.org/licenses/LICENSE-2.0
*/
/* ========================================================================
* Bootstrap: transition.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#transitions
* ========================================================================
* Copyright 2013 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: alert.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#alerts
* ========================================================================
* Copyright 2013 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: button.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#buttons
* ========================================================================
* Copyright 2013 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: carousel.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#carousel
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: collapse.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#collapse
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: dropdown.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#dropdowns
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: modal.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#modals
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: tooltip.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#tooltip
* Inspired by the original jQuery.tipsy by Jason Frame
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: popover.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#popovers
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: scrollspy.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#scrollspy
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: tab.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#tabs
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
/* ========================================================================
* Bootstrap: affix.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#affix
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
var j = 5;
function guidS4() {
return (65536 * (1 + Math.random()) | 0).toString(16).substring(1)
}
function generateGuid() {
return guidS4() + guidS4() + "-" + guidS4() + "-" + guidS4() + "-" + guidS4() + "-" + guidS4() + guidS4() + guidS4()
}(function(e, t) {
function n(e) {
var t = e.length,
n = ut.type(e);
return ut.isWindow(e) ? !1 : 1 === e.nodeType && t ? !0 : "array" === n || "function" !== n && (0 === t || "number" == typeof t && t > 0 && t - 1 in e)
}
function r(e) {
var t = Et[e] = {};
return ut.each(e.match(ft) || [], function(e, n) {
t[n] = !0
}), t
}
function i(e, n, r, i) {
if (ut.acceptData(e)) {
var s, o, u = ut.expando,
a = "string" == typeof n,
f = e.nodeType,
l = f ? ut.cache : e,
c = f ? e[u] : e[u] && u;
if (c && l[c] && (i || l[c].data) || !a || r !== t) return c || (f ? e[u] = c = Y.pop() || ut.guid++ : c = u), l[c] || (l[c] = {}, f || (l[c].toJSON = ut.noop)), ("object" == typeof n || "function" == typeof n) && (i ? l[c] = ut.extend(l[c], n) : l[c].data = ut.extend(l[c].data, n)), s = l[c], i || (s.data || (s.data = {}), s = s.data), r !== t && (s[ut.camelCase(n)] = r), a ? (o = s[n], null == o && (o = s[ut.camelCase(n)])) : o = s, o
}
}
function s(e, t, n) {
if (ut.acceptData(e)) {
var r, i, s, o = e.nodeType,
a = o ? ut.cache : e,
f = o ? e[ut.expando] : ut.expando;
if (a[f]) {
if (t && (r = n ? a[f] : a[f].data)) {
ut.isArray(t) ? t = t.concat(ut.map(t, ut.camelCase)) : t in r ? t = [t] : (t = ut.camelCase(t), t = t in r ? [t] : t.split(" "));
for (i = 0, s = t.length; s > i; i++) delete r[t[i]];
if (!(n ? u : ut.isEmptyObject)(r)) return
}(n || (delete a[f].data, u(a[f]))) && (o ? ut.cleanData([e], !0) : ut.support.deleteExpando || a != a.window ? delete a[f] : a[f] = null)
}
}
}
function o(e, n, r) {
if (r === t && 1 === e.nodeType) {
var i = "data-" + n.replace(xt, "-$1").toLowerCase();
if (r = e.getAttribute(i), "string" == typeof r) {
try {
r = "true" === r ? !0 : "false" === r ? !1 : "null" === r ? null : +r + "" === r ? +r : St.test(r) ? ut.parseJSON(r) : r
} catch (s) {}
ut.data(e, n, r)
} else r = t
}
return r
}
function u(e) {
var t;
for (t in e)
if (("data" !== t || !ut.isEmptyObject(e[t])) && "toJSON" !== t) return !1;
return !0
}
function a() {
return !0
}
function f() {
return !1
}
function l(e, t) {
do e = e[t]; while (e && 1 !== e.nodeType);
return e
}
function c(e, t, n) {
if (t = t || 0, ut.isFunction(t)) return ut.grep(e, function(e, r) {
var i = !!t.call(e, r, e);
return i === n
});
if (t.nodeType) return ut.grep(e, function(e) {
return e === t === n
});
if ("string" == typeof t) {
var r = ut.grep(e, function(e) {
return 1 === e.nodeType
});
if (Rt.test(t)) return ut.filter(t, r, !n);
t = ut.filter(t, r)
}
return ut.grep(e, function(e) {
return ut.inArray(e, t) >= 0 === n
})
}
function h(e) {
var t = Wt.split("|"),
n = e.createDocumentFragment();
if (n.createElement)
for (; t.length;) n.createElement(t.pop());
return n
}
function p(e, t) {
return e.getElementsByTagName(t)[0] || e.appendChild(e.ownerDocument.createElement(t))
}
function d(e) {
var t = e.getAttributeNode("type");
return e.type = (t && t.specified) + "/" + e.type, e
}
function v(e) {
var t = nn.exec(e.type);
return t ? e.type = t[1] : e.removeAttribute("type"), e
}
function m(e, t) {
for (var n, r = 0; null != (n = e[r]); r++) ut._data(n, "globalEval", !t || ut._data(t[r], "globalEval"))
}
function g(e, t) {
if (1 === t.nodeType && ut.hasData(e)) {
var n, r, i, s = ut._data(e),
o = ut._data(t, s),
u = s.events;
if (u) {
delete o.handle, o.events = {};
for (n in u)
for (r = 0, i = u[n].length; i > r; r++) ut.event.add(t, n, u[n][r])
}
o.data && (o.data = ut.extend({}, o.data))
}
}
function y(e, t) {
var n, r, i;
if (1 === t.nodeType) {
if (n = t.nodeName.toLowerCase(), !ut.support.noCloneEvent && t[ut.expando]) {
r = ut._data(t);
for (i in r.events) ut.removeEvent(t, i, r.handle);
t.removeAttribute(ut.expando)
}
"script" === n && t.text !== e.text ? (d(t).text = e.text, v(t)) : "object" === n ? (t.parentNode && (t.outerHTML = e.outerHTML), ut.support.html5Clone && e.innerHTML && !ut.trim(t.innerHTML) && (t.innerHTML = e.innerHTML)) : "input" === n && Zt.test(e.type) ? (t.defaultChecked = t.checked = e.checked, t.value !== e.value && (t.value = e.value)) : "option" === n ? t.defaultSelected = t.selected = e.defaultSelected : ("input" === n || "textarea" === n) && (t.defaultValue = e.defaultValue)
}
}
function b(e, n) {
var r, i, s = 0,
o = e.getElementsByTagName !== t ? e.getElementsByTagName(n || "*") : e.querySelectorAll !== t ? e.querySelectorAll(n || "*") : t;
if (!o)
for (o = [], r = e.childNodes || e; null != (i = r[s]); s++) !n || ut.nodeName(i, n) ? o.push(i) : ut.merge(o, b(i, n));
return n === t || n && ut.nodeName(e, n) ? ut.merge([e], o) : o
}
function w(e) {
Zt.test(e.type) && (e.defaultChecked = e.checked)
}
function E(e, t) {
if (t in e) return t;
for (var n = t.charAt(0).toUpperCase() + t.slice(1), r = t, i = xn.length; i--;)
if (t = xn[i] + n, t in e) return t;
return r
}
function S(e, t) {
return e = t || e, "none" === ut.css(e, "display") || !ut.contains(e.ownerDocument, e)
}
function x(e, t) {
for (var n, r = [], i = 0, s = e.length; s > i; i++) n = e[i], n.style && (r[i] = ut._data(n, "olddisplay"), t ? (r[i] || "none" !== n.style.display || (n.style.display = ""), "" === n.style.display && S(n) && (r[i] = ut._data(n, "olddisplay", k(n.nodeName)))) : r[i] || S(n) || ut._data(n, "olddisplay", ut.css(n, "display")));
for (i = 0; s > i; i++) n = e[i], n.style && (t && "none" !== n.style.display && "" !== n.style.display || (n.style.display = t ? r[i] || "" : "none"));
return e
}
function T(e, t, n) {
var r = mn.exec(t);
return r ? Math.max(0, r[1] - (n || 0)) + (r[2] || "px") : t
}
function N(e, t, n, r, i) {
for (var s = n === (r ? "border" : "content") ? 4 : "width" === t ? 1 : 0, o = 0; 4 > s; s += 2) "margin" === n && (o += ut.css(e, n + Sn[s], !0, i)), r ? ("content" === n && (o -= ut.css(e, "padding" + Sn[s], !0, i)), "margin" !== n && (o -= ut.css(e, "border" + Sn[s] + "Width", !0, i))) : (o += ut.css(e, "padding" + Sn[s], !0, i), "padding" !== n && (o += ut.css(e, "border" + Sn[s] + "Width", !0, i)));
return o
}
function C(e, t, n) {
var r = !0,
i = "width" === t ? e.offsetWidth : e.offsetHeight,
s = fn(e),
o = ut.support.boxSizing && "border-box" === ut.css(e, "boxSizing", !1, s);
if (0 >= i || null == i) {
if (i = an(e, t, s), (0 > i || null == i) && (i = e.style[t]), gn.test(i)) return i;
r = o && (ut.support.boxSizingReliable || i === e.style[t]), i = parseFloat(i) || 0
}
return i + N(e, t, n || (o ? "border" : "content"), r, s) + "px"
}
function k(e) {
var t = $,
n = bn[e];
return n || (n = L(e, t), "none" !== n && n || (ln = (ln || ut("<iframe frameborder='0' width='0' height='0'/>").css("cssText", "display:block !important")).appendTo(t.documentElement), t = (ln[0].contentWindow || ln[0].contentDocument).document, t.write("<!doctype html><html><body>"), t.close(), n = L(e, t), ln.detach()), bn[e] = n), n
}
function L(e, t) {
var n = ut(t.createElement(e)).appendTo(t.body),
r = ut.css(n[0], "display");
return n.remove(), r
}
function A(e, t, n, r) {
var i;
if (ut.isArray(t)) ut.each(t, function(t, i) {
n || Nn.test(e) ? r(e, i) : A(e + "[" + ("object" == typeof i ? t : "") + "]", i, n, r)
});
else if (n || "object" !== ut.type(t)) r(e, t);
else
for (i in t) A(e + "[" + i + "]", t[i], n, r)
}
function O(e) {
return function(t, n) {
"string" != typeof t && (n = t, t = "*");
var r, i = 0,
s = t.toLowerCase().match(ft) || [];
if (ut.isFunction(n))
for (; r = s[i++];) "+" === r[0] ? (r = r.slice(1) || "*", (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n)
}
}
function M(e, n, r, i) {
function s(a) {
var f;
return o[a] = !0, ut.each(e[a] || [], function(e, a) {
var l = a(n, r, i);
return "string" != typeof l || u || o[l] ? u ? !(f = l) : t : (n.dataTypes.unshift(l), s(l), !1)
}), f
}
var o = {},
u = e === Un;
return s(n.dataTypes[0]) || !o["*"] && s("*")
}
function _(e, n) {
var r, i, s = ut.ajaxSettings.flatOptions || {};
for (r in n) n[r] !== t && ((s[r] ? e : i || (i = {}))[r] = n[r]);
return i && ut.extend(!0, e, i), e
}
function D(e, n, r) {
var i, s, o, u, a = e.contents,
f = e.dataTypes,
l = e.responseFields;
for (s in l) s in r && (n[l[s]] = r[s]);
for (;
"*" === f[0];) f.shift(), i === t && (i = e.mimeType || n.getResponseHeader("Content-Type"));
if (i)
for (s in a)
if (a[s] && a[s].test(i)) {
f.unshift(s);
break
}
if (f[0] in r) o = f[0];
else {
for (s in r) {
if (!f[0] || e.converters[s + " " + f[0]]) {
o = s;
break
}
u || (u = s)
}
o = o || u
}
return o ? (o !== f[0] && f.unshift(o), r[o]) : t
}
function P(e, t) {
var n, r, i, s, o = {},
u = 0,
a = e.dataTypes.slice(),
f = a[0];
if (e.dataFilter && (t = e.dataFilter(t, e.dataType)), a[1])
for (n in e.converters) o[n.toLowerCase()] = e.converters[n];
for (; i = a[++u];)
if ("*" !== i) {
if ("*" !== f && f !== i) {
if (n = o[f + " " + i] || o["* " + i], !n)
for (r in o)
if (s = r.split(" "), s[1] === i && (n = o[f + " " + s[0]] || o["* " + s[0]])) {
n === !0 ? n = o[r] : o[r] !== !0 && (i = s[0], a.splice(u--, 0, i));
break
}
if (n !== !0)
if (n && e["throws"]) t = n(t);
else try {
t = n(t)
} catch (l) {
return {
state: "parsererror",
error: n ? l : "No conversion from " + f + " to " + i
}
}
}
f = i
}
return {
state: "success",
data: t
}
}
function H() {
try {
return new e.XMLHttpRequest
} catch (t) {}
}
function B() {
try {
return new e.ActiveXObject("Microsoft.XMLHTTP")
} catch (t) {}
}
function j() {
return setTimeout(function() {
Gn = t
}), Gn = ut.now()
}
function F(e, t) {
ut.each(t, function(t, n) {
for (var r = (rr[t] || []).concat(rr["*"]), i = 0, s = r.length; s > i; i++)
if (r[i].call(e, t, n)) return
})
}
function I(e, t, n) {
var r, i, s = 0,
o = nr.length,
u = ut.Deferred().always(function() {
delete a.elem
}),
a = function() {
if (i) return !1;
for (var t = Gn || j(), n = Math.max(0, f.startTime + f.duration - t), r = n / f.duration || 0, s = 1 - r, o = 0, a = f.tweens.length; a > o; o++) f.tweens[o].run(s);
return u.notifyWith(e, [f, s, n]), 1 > s && a ? n : (u.resolveWith(e, [f]), !1)
},
f = u.promise({
elem: e,
props: ut.extend({}, t),
opts: ut.extend(!0, {
specialEasing: {}
}, n),
originalProperties: t,
originalOptions: n,
startTime: Gn || j(),
duration: n.duration,
tweens: [],
createTween: function(t, n) {
var r = ut.Tween(e, f.opts, t, n, f.opts.specialEasing[t] || f.opts.easing);
return f.tweens.push(r), r
},
stop: function(t) {
var n = 0,
r = t ? f.tweens.length : 0;
if (i) return this;
for (i = !0; r > n; n++) f.tweens[n].run(1);
return t ? u.resolveWith(e, [f, t]) : u.rejectWith(e, [f, t]), this
}
}),
l = f.props;
for (q(l, f.opts.specialEasing); o > s; s++)
if (r = nr[s].call(f, e, l, f.opts)) return r;
return F(f, l), ut.isFunction(f.opts.start) && f.opts.start.call(e, f), ut.fx.timer(ut.extend(a, {
elem: e,
anim: f,
queue: f.opts.queue
})), f.progress(f.opts.progress).done(f.opts.done, f.opts.complete).fail(f.opts.fail).always(f.opts.always)
}
function q(e, t) {
var n, r, i, s, o;
for (n in e)
if (r = ut.camelCase(n), i = t[r], s = e[n], ut.isArray(s) && (i = s[1], s = e[n] = s[0]), n !== r && (e[r] = s, delete e[n]), o = ut.cssHooks[r], o && "expand" in o) {
s = o.expand(s), delete e[r];
for (n in s) n in e || (e[n] = s[n], t[n] = i)
} else t[r] = i
}
function R(e, t, n) {
var r, i, s, o, u, a, f, l, c, h = this,
p = e.style,
d = {},
v = [],
m = e.nodeType && S(e);
n.queue || (l = ut._queueHooks(e, "fx"), null == l.unqueued && (l.unqueued = 0, c = l.empty.fire, l.empty.fire = function() {
l.unqueued || c()
}), l.unqueued++, h.always(function() {
h.always(function() {
l.unqueued--, ut.queue(e, "fx").length || l.empty.fire()
})
})), 1 === e.nodeType && ("height" in t || "width" in t) && (n.overflow = [p.overflow, p.overflowX, p.overflowY], "inline" === ut.css(e, "display") && "none" === ut.css(e, "float") && (ut.support.inlineBlockNeedsLayout && "inline" !== k(e.nodeName) ? p.zoom = 1 : p.display = "inline-block")), n.overflow && (p.overflow = "hidden", ut.support.shrinkWrapBlocks || h.done(function() {
p.overflow = n.overflow[0], p.overflowX = n.overflow[1], p.overflowY = n.overflow[2]
}));
for (r in t)
if (s = t[r], Zn.exec(s)) {
if (delete t[r], a = a || "toggle" === s, s === (m ? "hide" : "show")) continue;
v.push(r)
}
if (o = v.length) {
u = ut._data(e, "fxshow") || ut._data(e, "fxshow", {}), "hidden" in u && (m = u.hidden), a && (u.hidden = !m), m ? ut(e).show() : h.done(function() {
ut(e).hide()
}), h.done(function() {
var t;
ut._removeData(e, "fxshow");
for (t in d) ut.style(e, t, d[t])
});
for (r = 0; o > r; r++) i = v[r], f = h.createTween(i, m ? u[i] : 0), d[i] = u[i] || ut.style(e, i), i in u || (u[i] = f.start, m && (f.end = f.start, f.start = "width" === i || "height" === i ? 1 : 0))
}
}
function U(e, t, n, r, i) {
return new U.prototype.init(e, t, n, r, i)
}
function z(e, t) {
var n, r = {
height: e
},
i = 0;
for (t = t ? 1 : 0; 4 > i; i += 2 - t) n = Sn[i], r["margin" + n] = r["padding" + n] = e;
return t && (r.opacity = r.width = e), r
}
function W(e) {
return ut.isWindow(e) ? e : 9 === e.nodeType ? e.defaultView || e.parentWindow : !1
}
var X, V, $ = e.document,
J = e.location,
K = e.jQuery,
Q = e.$,
G = {},
Y = [],
Z = "1.9.0",
et = Y.concat,
tt = Y.push,
nt = Y.slice,
rt = Y.indexOf,
it = G.toString,
st = G.hasOwnProperty,
ot = Z.trim,
ut = function(e, t) {
return new ut.fn.init(e, t, X)
},
at = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
ft = /\S+/g,
lt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
ct = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,
ht = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
pt = /^[\],:{}\s]*$/,
dt = /(?:^|:|,)(?:\s*\[)+/g,
vt = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
mt = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,
gt = /^-ms-/,
yt = /-([\da-z])/gi,
bt = function(e, t) {
return t.toUpperCase()
},
wt = function() {
$.addEventListener ? ($.removeEventListener("DOMContentLoaded", wt, !1), ut.ready()) : "complete" === $.readyState && ($.detachEvent("onreadystatechange", wt), ut.ready())
};
ut.fn = ut.prototype = {
jquery: Z,
constructor: ut,
init: function(e, n, r) {
var i, s;
if (!e) return this;
if ("string" == typeof e) {
if (i = "<" === e.charAt(0) && ">" === e.charAt(e.length - 1) && e.length >= 3 ? [null, e, null] : ct.exec(e), !i || !i[1] && n) return !n || n.jquery ? (n || r).find(e) : this.constructor(n).find(e);
if (i[1]) {
if (n = n instanceof ut ? n[0] : n, ut.merge(this, ut.parseHTML(i[1], n && n.nodeType ? n.ownerDocument || n : $, !0)), ht.test(i[1]) && ut.isPlainObject(n))
for (i in n) ut.isFunction(this[i]) ? this[i](n[i]) : this.attr(i, n[i]);
return this
}
if (s = $.getElementById(i[2]), s && s.parentNode) {
if (s.id !== i[2]) return r.find(e);
this.length = 1, this[0] = s
}
return this.context = $, this.selector = e, this
}
return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : ut.isFunction(e) ? r.ready(e) : (e.selector !== t && (this.selector = e.selector, this.context = e.context), ut.makeArray(e, this))
},
selector: "",
length: 0,
size: function() {
return this.length
},
toArray: function() {
return nt.call(this)
},
get: function(e) {
return null == e ? this.toArray() : 0 > e ? this[this.length + e] : this[e]
},
pushStack: function(e) {
var t = ut.merge(this.constructor(), e);
return t.prevObject = this, t.context = this.context, t
},
each: function(e, t) {
return ut.each(this, e, t)
},
ready: function(e) {
return ut.ready.promise().done(e), this
},
slice: function() {
return this.pushStack(nt.apply(this, arguments))
},
first: function() {
return this.eq(0)
},
last: function() {
return this.eq(-1)
},
eq: function(e) {
var t = this.length,
n = +e + (0 > e ? t : 0);
return this.pushStack(n >= 0 && t > n ? [this[n]] : [])
},
map: function(e) {
return this.pushStack(ut.map(this, function(t, n) {
return e.call(t, n, t)
}))
},
end: function() {
return this.prevObject || this.constructor(null)
},
push: tt,
sort: [].sort,
splice: [].splice
}, ut.fn.init.prototype = ut.fn, ut.extend = ut.fn.extend = function() {
var e, n, r, i, s, o, u = arguments[0] || {},
a = 1,
f = arguments.length,
l = !1;
for ("boolean" == typeof u && (l = u, u = arguments[1] || {}, a = 2), "object" == typeof u || ut.isFunction(u) || (u = {}), f === a && (u = this, --a); f > a; a++)
if (null != (e = arguments[a]))
for (n in e) r = u[n], i = e[n], u !== i && (l && i && (ut.isPlainObject(i) || (s = ut.isArray(i))) ? (s ? (s = !1, o = r && ut.isArray(r) ? r : []) : o = r && ut.isPlainObject(r) ? r : {}, u[n] = ut.extend(l, o, i)) : i !== t && (u[n] = i));
return u
}, ut.extend({
noConflict: function(t) {
return e.$ === ut && (e.$ = Q), t && e.jQuery === ut && (e.jQuery = K), ut
},
isReady: !1,
readyWait: 1,
holdReady: function(e) {
e ? ut.readyWait++ : ut.ready(!0)
},
ready: function(e) {
if (e === !0 ? !--ut.readyWait : !ut.isReady) {
if (!$.body) return setTimeout(ut.ready);
ut.isReady = !0, e !== !0 && --ut.readyWait > 0 || (V.resolveWith($, [ut]), ut.fn.trigger && ut($).trigger("ready").off("ready"))
}
},
isFunction: function(e) {
return "function" === ut.type(e)
},
isArray: Array.isArray || function(e) {
return "array" === ut.type(e)
},
isWindow: function(e) {
return null != e && e == e.window
},
isNumeric: function(e) {
return !isNaN(parseFloat(e)) && isFinite(e)
},
type: function(e) {
return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? G[it.call(e)] || "object" : typeof e
},
isPlainObject: function(e) {
if (!e || "object" !== ut.type(e) || e.nodeType || ut.isWindow(e)) return !1;
try {
if (e.constructor && !st.call(e, "constructor") && !st.call(e.constructor.prototype, "isPrototypeOf")) return !1
} catch (n) {
return !1
}
var r;
for (r in e);
return r === t || st.call(e, r)
},
isEmptyObject: function(e) {
var t;
for (t in e) return !1;
return !0
},
error: function(e) {
throw Error(e)
},
parseHTML: function(e, t, n) {
if (!e || "string" != typeof e) return null;
"boolean" == typeof t && (n = t, t = !1), t = t || $;
var r = ht.exec(e),
i = !n && [];
return r ? [t.createElement(r[1])] : (r = ut.buildFragment([e], t, i), i && ut(i).remove(), ut.merge([], r.childNodes))
},
parseJSON: function(n) {
return e.JSON && e.JSON.parse ? e.JSON.parse(n) : null === n ? n : "string" == typeof n && (n = ut.trim(n), n && pt.test(n.replace(vt, "@").replace(mt, "]").replace(dt, ""))) ? Function("return " + n)() : (ut.error("Invalid JSON: " + n), t)
},
parseXML: function(n) {
var r, i;
if (!n || "string" != typeof n) return null;
try {
e.DOMParser ? (i = new DOMParser, r = i.parseFromString(n, "text/xml")) : (r = new ActiveXObject("Microsoft.XMLDOM"), r.async = "false", r.loadXML(n))
} catch (s) {
r = t
}
return r && r.documentElement && !r.getElementsByTagName("parsererror").length || ut.error("Invalid XML: " + n), r
},
noop: function() {},
globalEval: function(t) {
t && ut.trim(t) && (e.execScript || function(t) {
e.eval.call(e, t)
})(t)
},
camelCase: function(e) {
return e.replace(gt, "ms-").replace(yt, bt)
},
nodeName: function(e, t) {
return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
},
each: function(e, t, r) {
var i, s = 0,
o = e.length,
u = n(e);
if (r) {
if (u)
for (; o > s && (i = t.apply(e[s], r), i !== !1); s++);
else
for (s in e)
if (i = t.apply(e[s], r), i === !1) break
} else if (u)
for (; o > s && (i = t.call(e[s], s, e[s]), i !== !1); s++);
else
for (s in e)
if (i = t.call(e[s], s, e[s]), i === !1) break;
return e
},
trim: ot && !ot.call(" ") ? function(e) {
return null == e ? "" : ot.call(e)
} : function(e) {
return null == e ? "" : (e + "").replace(lt, "")
},
makeArray: function(e, t) {
var r = t || [];
return null != e && (n(Object(e)) ? ut.merge(r, "string" == typeof e ? [e] : e) : tt.call(r, e)), r
},
inArray: function(e, t, n) {
var r;
if (t) {
if (rt) return rt.call(t, e, n);
for (r = t.length, n = n ? 0 > n ? Math.max(0, r + n) : n : 0; r > n; n++)
if (n in t && t[n] === e) return n
}
return -1
},
merge: function(e, n) {
var r = n.length,
i = e.length,
s = 0;
if ("number" == typeof r)
for (; r > s; s++) e[i++] = n[s];
else
for (; n[s] !== t;) e[i++] = n[s++];
return e.length = i, e
},
grep: function(e, t, n) {
var r, i = [],
s = 0,
o = e.length;
for (n = !!n; o > s; s++) r = !!t(e[s], s), n !== r && i.push(e[s]);
return i
},
map: function(e, t, r) {
var i, s = 0,
o = e.length,
u = n(e),
a = [];
if (u)
for (; o > s; s++) i = t(e[s], s, r), null != i && (a[a.length] = i);
else
for (s in e) i = t(e[s], s, r), null != i && (a[a.length] = i);
return et.apply([], a)
},
guid: 1,
proxy: function(e, n) {
var r, i, s;
return "string" == typeof n && (r = e[n], n = e, e = r), ut.isFunction(e) ? (i = nt.call(arguments, 2), s = function() {
return e.apply(n || this, i.concat(nt.call(arguments)))
}, s.guid = e.guid = e.guid || ut.guid++, s) : t
},
access: function(e, n, r, i, s, o, u) {
var a = 0,
f = e.length,
l = null == r;
if ("object" === ut.type(r)) {
s = !0;
for (a in r) ut.access(e, n, a, r[a], !0, o, u)
} else if (i !== t && (s = !0, ut.isFunction(i) || (u = !0), l && (u ? (n.call(e, i), n = null) : (l = n, n = function(e, t, n) {
return l.call(ut(e), n)
})), n))
for (; f > a; a++) n(e[a], r, u ? i : i.call(e[a], a, n(e[a], r)));
return s ? e : l ? n.call(e) : f ? n(e[0], r) : o
},
now: function() {
return (new Date).getTime()
}
}), ut.ready.promise = function(t) {
if (!V)
if (V = ut.Deferred(), "complete" === $.readyState) setTimeout(ut.ready);
else if ($.addEventListener) $.addEventListener("DOMContentLoaded", wt, !1), e.addEventListener("load", ut.ready, !1);
else {
$.attachEvent("onreadystatechange", wt), e.attachEvent("onload", ut.ready);
var n = !1;
try {
n = null == e.frameElement && $.documentElement
} catch (r) {}
n && n.doScroll && function i() {
if (!ut.isReady) {
try {
n.doScroll("left")
} catch (e) {
return setTimeout(i, 50)
}
ut.ready()
}
}()
}
return V.promise(t)
}, ut.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(e, t) {
G["[object " + t + "]"] = t.toLowerCase()
}), X = ut($);
var Et = {};
ut.Callbacks = function(e) {
e = "string" == typeof e ? Et[e] || r(e) : ut.extend({}, e);
var n, i, s, o, u, a, f = [],
l = !e.once && [],
c = function(t) {
for (n = e.memory && t, i = !0, a = o || 0, o = 0, u = f.length, s = !0; f && u > a; a++)
if (f[a].apply(t[0], t[1]) === !1 && e.stopOnFalse) {
n = !1;
break
}
s = !1, f && (l ? l.length && c(l.shift()) : n ? f = [] : h.disable())
},
h = {
add: function() {
if (f) {
var t = f.length;
(function r(t) {
ut.each(t, function(t, n) {
var i = ut.type(n);
"function" === i ? e.unique && h.has(n) || f.push(n) : n && n.length && "string" !== i && r(n)
})
})(arguments), s ? u = f.length : n && (o = t, c(n))
}
return this
},
remove: function() {
return f && ut.each(arguments, function(e, t) {
for (var n;
(n = ut.inArray(t, f, n)) > -1;) f.splice(n, 1), s && (u >= n && u--, a >= n && a--)
}), this
},
has: function(e) {
return ut.inArray(e, f) > -1
},
empty: function() {
return f = [], this
},
disable: function() {
return f = l = n = t, this
},
disabled: function() {
return !f
},
lock: function() {
return l = t, n || h.disable(), this
},
locked: function() {
return !l
},
fireWith: function(e, t) {
return t = t || [], t = [e, t.slice ? t.slice() : t], !f || i && !l || (s ? l.push(t) : c(t)), this
},
fire: function() {
return h.fireWith(this, arguments), this
},
fired: function() {
return !!i
}
};
return h
}, ut.extend({
Deferred: function(e) {
var t = [
["resolve", "done", ut.Callbacks("once memory"), "resolved"],
["reject", "fail", ut.Callbacks("once memory"), "rejected"],
["notify", "progress", ut.Callbacks("memory")]
],
n = "pending",
r = {
state: function() {
return n
},
always: function() {
return i.done(arguments).fail(arguments), this
},
then: function() {
var e = arguments;
return ut.Deferred(function(n) {
ut.each(t, function(t, s) {
var o = s[0],
u = ut.isFunction(e[t]) && e[t];
i[s[1]](function() {
var e = u && u.apply(this, arguments);
e && ut.isFunction(e.promise) ? e.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[o + "With"](this === r ? n.promise() : this, u ? [e] : arguments)
})
}), e = null
}).promise()
},
promise: function(e) {
return null != e ? ut.extend(e, r) : r
}
},
i = {};
return r.pipe = r.then, ut.each(t, function(e, s) {
var o = s[2],
u = s[3];
r[s[1]] = o.add, u && o.add(function() {
n = u
}, t[1 ^ e][2].disable, t[2][2].lock), i[s[0]] = function() {
return i[s[0] + "With"](this === i ? r : this, arguments), this
}, i[s[0] + "With"] = o.fireWith
}), r.promise(i), e && e.call(i, i), i
},
when: function(e) {
var t, n, r, i = 0,
s = nt.call(arguments),
o = s.length,
u = 1 !== o || e && ut.isFunction(e.promise) ? o : 0,
a = 1 === u ? e : ut.Deferred(),
f = function(e, n, r) {
return function(i) {
n[e] = this, r[e] = arguments.length > 1 ? nt.call(arguments) : i, r === t ? a.notifyWith(n, r) : --u || a.resolveWith(n, r)
}
};
if (o > 1)
for (t = Array(o), n = Array(o), r = Array(o); o > i; i++) s[i] && ut.isFunction(s[i].promise) ? s[i].promise().done(f(i, r, s)).fail(a.reject).progress(f(i, n, t)) : --u;
return u || a.resolveWith(r, s), a.promise()
}
}), ut.support = function() {
var n, r, i, s, o, u, a, f, l, c, h = $.createElement("div");
if (h.setAttribute("className", "t"), h.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", r = h.getElementsByTagName("*"), i = h.getElementsByTagName("a")[0], !r || !i || !r.length) return {};
s = $.createElement("select"), o = s.appendChild($.createElement("option")), u = h.getElementsByTagName("input")[0], i.style.cssText = "top:1px;float:left;opacity:.5", n = {
getSetAttribute: "t" !== h.className,
leadingWhitespace: 3 === h.firstChild.nodeType,
tbody: !h.getElementsByTagName("tbody").length,
htmlSerialize: !!h.getElementsByTagName("link").length,
style: /top/.test(i.getAttribute("style")),
hrefNormalized: "/a" === i.getAttribute("href"),
opacity: /^0.5/.test(i.style.opacity),
cssFloat: !!i.style.cssFloat,
checkOn: !!u.value,
optSelected: o.selected,
enctype: !!$.createElement("form").enctype,
html5Clone: "<:nav></:nav>" !== $.createElement("nav").cloneNode(!0).outerHTML,
boxModel: "CSS1Compat" === $.compatMode,
deleteExpando: !0,
noCloneEvent: !0,
inlineBlockNeedsLayout: !1,
shrinkWrapBlocks: !1,
reliableMarginRight: !0,
boxSizingReliable: !0,
pixelPosition: !1
}, u.checked = !0, n.noCloneChecked = u.cloneNode(!0).checked, s.disabled = !0, n.optDisabled = !o.disabled;
try {
delete h.test
} catch (p) {
n.deleteExpando = !1
}
u = $.createElement("input"), u.setAttribute("value", ""), n.input = "" === u.getAttribute("value"), u.value = "t", u.setAttribute("type", "radio"), n.radioValue = "t" === u.value, u.setAttribute("checked", "t"), u.setAttribute("name", "t"), a = $.createDocumentFragment(), a.appendChild(u), n.appendChecked = u.checked, n.checkClone = a.cloneNode(!0).cloneNode(!0).lastChild.checked, h.attachEvent && (h.attachEvent("onclick", function() {
n.noCloneEvent = !1
}), h.cloneNode(!0).click());
for (c in {
submit: !0,
change: !0,
focusin: !0
}) h.setAttribute(f = "on" + c, "t"), n[c + "Bubbles"] = f in e || h.attributes[f].expando === !1;
return h.style.backgroundClip = "content-box", h.cloneNode(!0).style.backgroundClip = "", n.clearCloneStyle = "content-box" === h.style.backgroundClip, ut(function() {
var r, i, s, o = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",
u = $.getElementsByTagName("body")[0];
u && (r = $.createElement("div"), r.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px", u.appendChild(r).appendChild(h), h.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", s = h.getElementsByTagName("td"), s[0].style.cssText = "padding:0;margin:0;border:0;display:none", l = 0 === s[0].offsetHeight, s[0].style.display = "", s[1].style.display = "none", n.reliableHiddenOffsets = l && 0 === s[0].offsetHeight, h.innerHTML = "", h.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;", n.boxSizing = 4 === h.offsetWidth, n.doesNotIncludeMarginInBodyOffset = 1 !== u.offsetTop, e.getComputedStyle && (n.pixelPosition = "1%" !== (e.getComputedStyle(h, null) || {}).top, n.boxSizingReliable = "4px" === (e.getComputedStyle(h, null) || {
width: "4px"
}).width, i = h.appendChild($.createElement("div")), i.style.cssText = h.style.cssText = o, i.style.marginRight = i.style.width = "0", h.style.width = "1px", n.reliableMarginRight = !parseFloat((e.getComputedStyle(i, null) || {}).marginRight)), h.style.zoom !== t && (h.innerHTML = "", h.style.cssText = o + "width:1px;padding:1px;display:inline;zoom:1", n.inlineBlockNeedsLayout = 3 === h.offsetWidth, h.style.display = "block", h.innerHTML = "<div></div>", h.firstChild.style.width = "5px", n.shrinkWrapBlocks = 3 !== h.offsetWidth, u.style.zoom = 1), u.removeChild(r), r = h = s = i = null)
}), r = s = a = o = i = u = null, n
}();
var St = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
xt = /([A-Z])/g;
ut.extend({
cache: {},
expando: "jQuery" + (Z + Math.random()).replace(/\D/g, ""),
noData: {
embed: !0,
object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
applet: !0
},
hasData: function(e) {
return e = e.nodeType ? ut.cache[e[ut.expando]] : e[ut.expando], !!e && !u(e)
},
data: function(e, t, n) {
return i(e, t, n, !1)
},
removeData: function(e, t) {
return s(e, t, !1)
},
_data: function(e, t, n) {
return i(e, t, n, !0)
},
_removeData: function(e, t) {
return s(e, t, !0)
},
acceptData: function(e) {
var t = e.nodeName && ut.noData[e.nodeName.toLowerCase()];
return !t || t !== !0 && e.getAttribute("classid") === t
}
}), ut.fn.extend({
data: function(e, n) {
var r, i, s = this[0],
u = 0,
a = null;
if (e === t) {
if (this.length && (a = ut.data(s), 1 === s.nodeType && !ut._data(s, "parsedAttrs"))) {
for (r = s.attributes; r.length > u; u++) i = r[u].name, i.indexOf("data-") || (i = ut.camelCase(i.substring(5)), o(s, i, a[i]));
ut._data(s, "parsedAttrs", !0)
}
return a
}
return "object" == typeof e ? this.each(function() {
ut.data(this, e)
}) : ut.access(this, function(n) {
return n === t ? s ? o(s, e, ut.data(s, e)) : null : (this.each(function() {
ut.data(this, e, n)
}), t)
}, null, n, arguments.length > 1, null, !0)
},
removeData: function(e) {
return this.each(function() {
ut.removeData(this, e)
})
}
}), ut.extend({
queue: function(e, n, r) {
var i;
return e ? (n = (n || "fx") + "queue", i = ut._data(e, n), r && (!i || ut.isArray(r) ? i = ut._data(e, n, ut.makeArray(r)) : i.push(r)), i || []) : t
},
dequeue: function(e, t) {
t = t || "fx";
var n = ut.queue(e, t),
r = n.length,
i = n.shift(),
s = ut._queueHooks(e, t),
o = function() {
ut.dequeue(e, t)
};
"inprogress" === i && (i = n.shift(), r--), s.cur = i, i && ("fx" === t && n.unshift("inprogress"), delete s.stop, i.call(e, o, s)), !r && s && s.empty.fire()
},
_queueHooks: function(e, t) {
var n = t + "queueHooks";
return ut._data(e, n) || ut._data(e, n, {
empty: ut.Callbacks("once memory").add(function() {
ut._removeData(e, t + "queue"), ut._removeData(e, n)
})
})
}
}), ut.fn.extend({
queue: function(e, n) {
var r = 2;
return "string" != typeof e && (n = e, e = "fx", r--), r > arguments.length ? ut.queue(this[0], e) : n === t ? this : this.each(function() {
var t = ut.queue(this, e, n);
ut._queueHooks(this, e), "fx" === e && "inprogress" !== t[0] && ut.dequeue(this, e)
})
},
dequeue: function(e) {
return this.each(function() {
ut.dequeue(this, e)
})
},
delay: function(e, t) {
return e = ut.fx ? ut.fx.speeds[e] || e : e, t = t || "fx", this.queue(t, function(t, n) {
var r = setTimeout(t, e);
n.stop = function() {
clearTimeout(r)
}
})
},
clearQueue: function(e) {
return this.queue(e || "fx", [])
},
promise: function(e, n) {
var r, i = 1,
s = ut.Deferred(),
o = this,
u = this.length,
a = function() {
--i || s.resolveWith(o, [o])
};
for ("string" != typeof e && (n = e, e = t), e = e || "fx"; u--;) r = ut._data(o[u], e + "queueHooks"), r && r.empty && (i++, r.empty.add(a));
return a(), s.promise(n)
}
});
var Tt, Nt, Ct = /[\t\r\n]/g,
kt = /\r/g,
Lt = /^(?:input|select|textarea|button|object)$/i,
At = /^(?:a|area)$/i,
Ot = /^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,
Mt = /^(?:checked|selected)$/i,
_t = ut.support.getSetAttribute,
Dt = ut.support.input;
ut.fn.extend({
attr: function(e, t) {
return ut.access(this, ut.attr, e, t, arguments.length > 1)
},
removeAttr: function(e) {
return this.each(function() {
ut.removeAttr(this, e)
})
},
prop: function(e, t) {
return ut.access(this, ut.prop, e, t, arguments.length > 1)
},
removeProp: function(e) {
return e = ut.propFix[e] || e, this.each(function() {
try {
this[e] = t, delete this[e]
} catch (n) {}
})
},
addClass: function(e) {
var t, n, r, i, s, o = 0,
u = this.length,
a = "string" == typeof e && e;
if (ut.isFunction(e)) return this.each(function(t) {
ut(this).addClass(e.call(this, t, this.className))
});
if (a)
for (t = (e || "").match(ft) || []; u > o; o++)
if (n = this[o], r = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(Ct, " ") : " ")) {
for (s = 0; i = t[s++];) 0 > r.indexOf(" " + i + " ") && (r += i + " ");
n.className = ut.trim(r)
}
return this
},
removeClass: function(e) {
var t, n, r, i, s, o = 0,
u = this.length,
a = 0 === arguments.length || "string" == typeof e && e;
if (ut.isFunction(e)) return this.each(function(t) {
ut(this).removeClass(e.call(this, t, this.className))
});
if (a)
for (t = (e || "").match(ft) || []; u > o; o++)
if (n = this[o], r = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(Ct, " ") : "")) {
for (s = 0; i = t[s++];)
for (; r.indexOf(" " + i + " ") >= 0;) r = r.replace(" " + i + " ", " ");
n.className = e ? ut.trim(r) : ""
}
return this
},
toggleClass: function(e, t) {
var n = typeof e,
r = "boolean" == typeof t;
return ut.isFunction(e) ? this.each(function(n) {
ut(this).toggleClass(e.call(this, n, this.className, t), t)
}) : this.each(function() {
if ("string" === n)
for (var i, s = 0, o = ut(this), u = t, a = e.match(ft) || []; i = a[s++];) u = r ? u : !o.hasClass(i), o[u ? "addClass" : "removeClass"](i);
else("undefined" === n || "boolean" === n) && (this.className && ut._data(this, "__className__", this.className), this.className = this.className || e === !1 ? "" : ut._data(this, "__className__") || "")
})
},
hasClass: function(e) {
for (var t = " " + e + " ", n = 0, r = this.length; r > n; n++)
if (1 === this[n].nodeType && (" " + this[n].className + " ").replace(Ct, " ").indexOf(t) >= 0) return !0;
return !1
},
val: function(e) {
var n, r, i, s = this[0];
if (arguments.length) return i = ut.isFunction(e), this.each(function(r) {
var s, o = ut(this);
1 === this.nodeType && (s = i ? e.call(this, r, o.val()) : e, null == s ? s = "" : "number" == typeof s ? s += "" : ut.isArray(s) && (s = ut.map(s, function(e) {
return null == e ? "" : e + ""
})), n = ut.valHooks[this.type] || ut.valHooks[this.nodeName.toLowerCase()], n && "set" in n && n.set(this, s, "value") !== t || (this.value = s))
});
if (s) return n = ut.valHooks[s.type] || ut.valHooks[s.nodeName.toLowerCase()], n && "get" in n && (r = n.get(s, "value")) !== t ? r : (r = s.value, "string" == typeof r ? r.replace(kt, "") : null == r ? "" : r)
}
}), ut.extend({
valHooks: {
option: {
get: function(e) {
var t = e.attributes.value;
return !t || t.specified ? e.value : e.text
}
},
select: {
get: function(e) {
for (var t, n, r = e.options, i = e.selectedIndex, s = "select-one" === e.type || 0 > i, o = s ? null : [], u = s ? i + 1 : r.length, a = 0 > i ? u : s ? i : 0; u > a; a++)
if (n = r[a], !(!n.selected && a !== i || (ut.support.optDisabled ? n.disabled : null !== n.getAttribute("disabled")) || n.parentNode.disabled && ut.nodeName(n.parentNode, "optgroup"))) {
if (t = ut(n).val(), s) return t;
o.push(t)
}
return o
},
set: function(e, t) {
var n = ut.makeArray(t);
return ut(e).find("option").each(function() {
this.selected = ut.inArray(ut(this).val(), n) >= 0
}), n.length || (e.selectedIndex = -1), n
}
}
},
attr: function(e, n, r) {
var i, s, o, u = e.nodeType;
if (e && 3 !== u && 8 !== u && 2 !== u) return e.getAttribute === t ? ut.prop(e, n, r) : (o = 1 !== u || !ut.isXMLDoc(e), o && (n = n.toLowerCase(), s = ut.attrHooks[n] || (Ot.test(n) ? Nt : Tt)), r === t ? s && o && "get" in s && null !== (i = s.get(e, n)) ? i : (e.getAttribute !== t && (i = e.getAttribute(n)), null == i ? t : i) : null !== r ? s && o && "set" in s && (i = s.set(e, r, n)) !== t ? i : (e.setAttribute(n, r + ""), r) : (ut.removeAttr(e, n), t))
},
removeAttr: function(e, t) {
var n, r, i = 0,
s = t && t.match(ft);
if (s && 1 === e.nodeType)
for (; n = s[i++];) r = ut.propFix[n] || n, Ot.test(n) ? !_t && Mt.test(n) ? e[ut.camelCase("default-" + n)] = e[r] = !1 : e[r] = !1 : ut.attr(e, n, ""), e.removeAttribute(_t ? n : r)
},
attrHooks: {
type: {
set: function(e, t) {
if (!ut.support.radioValue && "radio" === t && ut.nodeName(e, "input")) {
var n = e.value;
return e.setAttribute("type", t), n && (e.value = n), t
}
}
}
},
propFix: {
tabindex: "tabIndex",
readonly: "readOnly",
"for": "htmlFor",
"class": "className",
maxlength: "maxLength",
cellspacing: "cellSpacing",
cellpadding: "cellPadding",
rowspan: "rowSpan",
colspan: "colSpan",
usemap: "useMap",
frameborder: "frameBorder",
contenteditable: "contentEditable"
},
prop: function(e, n, r) {
var i, s, o, u = e.nodeType;
if (e && 3 !== u && 8 !== u && 2 !== u) return o = 1 !== u || !ut.isXMLDoc(e), o && (n = ut.propFix[n] || n, s = ut.propHooks[n]), r !== t ? s && "set" in s && (i = s.set(e, r, n)) !== t ? i : e[n] = r : s && "get" in s && null !== (i = s.get(e, n)) ? i : e[n]
},
propHooks: {
tabIndex: {
get: function(e) {
var n = e.getAttributeNode("tabindex");
return n && n.specified ? parseInt(n.value, 10) : Lt.test(e.nodeName) || At.test(e.nodeName) && e.href ? 0 : t
}
}
}
}), Nt = {
get: function(e, n) {
var r = ut.prop(e, n),
i = "boolean" == typeof r && e.getAttribute(n),
s = "boolean" == typeof r ? Dt && _t ? null != i : Mt.test(n) ? e[ut.camelCase("default-" + n)] : !!i : e.getAttributeNode(n);
return s && s.value !== !1 ? n.toLowerCase() : t
},
set: function(e, t, n) {
return t === !1 ? ut.removeAttr(e, n) : Dt && _t || !Mt.test(n) ? e.setAttribute(!_t && ut.propFix[n] || n, n) : e[ut.camelCase("default-" + n)] = e[n] = !0, n
}
}, Dt && _t || (ut.attrHooks.value = {
get: function(e, n) {
var r = e.getAttributeNode(n);
return ut.nodeName(e, "input") ? e.defaultValue : r && r.specified ? r.value : t
},
set: function(e, n, r) {
return ut.nodeName(e, "input") ? (e.defaultValue = n, t) : Tt && Tt.set(e, n, r)
}
}), _t || (Tt = ut.valHooks.button = {
get: function(e, n) {
var r = e.getAttributeNode(n);
return r && ("id" === n || "name" === n || "coords" === n ? "" !== r.value : r.specified) ? r.value : t
},
set: function(e, n, r) {
var i = e.getAttributeNode(r);
return i || e.setAttributeNode(i = e.ownerDocument.createAttribute(r)), i.value = n += "", "value" === r || n === e.getAttribute(r) ? n : t
}
}, ut.attrHooks.contenteditable = {
get: Tt.get,
set: function(e, t, n) {
Tt.set(e, "" === t ? !1 : t, n)
}
}, ut.each(["width", "height"], function(e, n) {
ut.attrHooks[n] = ut.extend(ut.attrHooks[n], {
set: function(e, r) {
return "" === r ? (e.setAttribute(n, "auto"), r) : t
}
})
})), ut.support.hrefNormalized || (ut.each(["href", "src", "width", "height"], function(e, n) {
ut.attrHooks[n] = ut.extend(ut.attrHooks[n], {
get: function(e) {
var r = e.getAttribute(n, 2);
return null == r ? t : r
}
})
}), ut.each(["href", "src"], function(e, t) {
ut.propHooks[t] = {
get: function(e) {
return e.getAttribute(t, 4)
}
}
})), ut.support.style || (ut.attrHooks.style = {
get: function(e) {
return e.style.cssText || t
},
set: function(e, t) {
return e.style.cssText = t + ""
}
}), ut.support.optSelected || (ut.propHooks.selected = ut.extend(ut.propHooks.selected, {
get: function(e) {
var t = e.parentNode;
return t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex), null
}
})), ut.support.enctype || (ut.propFix.enctype = "encoding"), ut.support.checkOn || ut.each(["radio", "checkbox"], function() {
ut.valHooks[this] = {
get: function(e) {
return null === e.getAttribute("value") ? "on" : e.value
}
}
}), ut.each(["radio", "checkbox"], function() {
ut.valHooks[this] = ut.extend(ut.valHooks[this], {
set: function(e, n) {
return ut.isArray(n) ? e.checked = ut.inArray(ut(e).val(), n) >= 0 : t
}
})
});
var Pt = /^(?:input|select|textarea)$/i,
Ht = /^key/,
Bt = /^(?:mouse|contextmenu)|click/,
jt = /^(?:focusinfocus|focusoutblur)$/,
Ft = /^([^.]*)(?:\.(.+)|)$/;
ut.event = {
global: {},
add: function(e, n, r, i, s) {
var o, u, a, f, l, c, h, p, d, v, m, g = 3 !== e.nodeType && 8 !== e.nodeType && ut._data(e);
if (g) {
for (r.handler && (o = r, r = o.handler, s = o.selector), r.guid || (r.guid = ut.guid++), (f = g.events) || (f = g.events = {}), (u = g.handle) || (u = g.handle = function(e) {
return ut === t || e && ut.event.triggered === e.type ? t : ut.event.dispatch.apply(u.elem, arguments)
}, u.elem = e), n = (n || "").match(ft) || [""], l = n.length; l--;) a = Ft.exec(n[l]) || [], d = m = a[1], v = (a[2] || "").split(".").sort(), h = ut.event.special[d] || {}, d = (s ? h.delegateType : h.bindType) || d, h = ut.event.special[d] || {}, c = ut.extend({
type: d,
origType: m,
data: i,
handler: r,
guid: r.guid,
selector: s,
needsContext: s && ut.expr.match.needsContext.test(s),
namespace: v.join(".")
}, o), (p = f[d]) || (p = f[d] = [], p.delegateCount = 0, h.setup && h.setup.call(e, i, v, u) !== !1 || (e.addEventListener ? e.addEventListener(d, u, !1) : e.attachEvent && e.attachEvent("on" + d, u))), h.add && (h.add.call(e, c), c.handler.guid || (c.handler.guid = r.guid)), s ? p.splice(p.delegateCount++, 0, c) : p.push(c), ut.event.global[d] = !0;
e = null
}
},
remove: function(e, t, n, r, i) {
var s, o, u, a, f, l, c, h, p, d, v, m = ut.hasData(e) && ut._data(e);
if (m && (a = m.events)) {
for (t = (t || "").match(ft) || [""], f = t.length; f--;)
if (u = Ft.exec(t[f]) || [], p = v = u[1], d = (u[2] || "").split(".").sort(), p) {
for (c = ut.event.special[p] || {}, p = (r ? c.delegateType : c.bindType) || p, h = a[p] || [], u = u[2] && RegExp("(^|\\.)" + d.join("\\.(?:.*\\.|)") + "(\\.|$)"), o = s = h.length; s--;) l = h[s], !i && v !== l.origType || n && n.guid !== l.guid || u && !u.test(l.namespace) || r && r !== l.selector && ("**" !== r || !l.selector) || (h.splice(s, 1), l.selector && h.delegateCount--, c.remove && c.remove.call(e, l));
o && !h.length && (c.teardown && c.teardown.call(e, d, m.handle) !== !1 || ut.removeEvent(e, p, m.handle), delete a[p])
} else
for (p in a) ut.event.remove(e, p + t[f], n, r, !0);
ut.isEmptyObject(a) && (delete m.handle, ut._removeData(e, "events"))
}
},
trigger: function(n, r, i, s) {
var o, u, a, f, l, c, h, p = [i || $],
d = n.type || n,
v = n.namespace ? n.namespace.split(".") : [];
if (u = a = i = i || $, 3 !== i.nodeType && 8 !== i.nodeType && !jt.test(d + ut.event.triggered) && (d.indexOf(".") >= 0 && (v = d.split("."), d = v.shift(), v.sort()), l = 0 > d.indexOf(":") && "on" + d, n = n[ut.expando] ? n : new ut.Event(d, "object" == typeof n && n), n.isTrigger = !0, n.namespace = v.join("."), n.namespace_re = n.namespace ? RegExp("(^|\\.)" + v.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, n.result = t, n.target || (n.target = i), r = null == r ? [n] : ut.makeArray(r, [n]), h = ut.event.special[d] || {}, s || !h.trigger || h.trigger.apply(i, r) !== !1)) {
if (!s && !h.noBubble && !ut.isWindow(i)) {
for (f = h.delegateType || d, jt.test(f + d) || (u = u.parentNode); u; u = u.parentNode) p.push(u), a = u;
a === (i.ownerDocument || $) && p.push(a.defaultView || a.parentWindow || e)
}
for (o = 0;
(u = p[o++]) && !n.isPropagationStopped();) n.type = o > 1 ? f : h.bindType || d, c = (ut._data(u, "events") || {})[n.type] && ut._data(u, "handle"), c && c.apply(u, r), c = l && u[l], c && ut.acceptData(u) && c.apply && c.apply(u, r) === !1 && n.preventDefault();
if (n.type = d, !(s || n.isDefaultPrevented() || h._default && h._default.apply(i.ownerDocument, r) !== !1 || "click" === d && ut.nodeName(i, "a") || !ut.acceptData(i) || !l || !i[d] || ut.isWindow(i))) {
a = i[l], a && (i[l] = null), ut.event.triggered = d;
try {
i[d]()
} catch (m) {}
ut.event.triggered = t, a && (i[l] = a)
}
return n.result
}
},
dispatch: function(e) {
e = ut.event.fix(e);
var n, r, i, s, o, u = [],
a = nt.call(arguments),
f = (ut._data(this, "events") || {})[e.type] || [],
l = ut.event.special[e.type] || {};
if (a[0] = e, e.delegateTarget = this, !l.preDispatch || l.preDispatch.call(this, e) !== !1) {
for (u = ut.event.handlers.call(this, e, f), n = 0;
(s = u[n++]) && !e.isPropagationStopped();)
for (e.currentTarget = s.elem, r = 0;
(o = s.handlers[r++]) && !e.isImmediatePropagationStopped();)(!e.namespace_re || e.namespace_re.test(o.namespace)) && (e.handleObj = o, e.data = o.data, i = ((ut.event.special[o.origType] || {}).handle || o.handler).apply(s.elem, a), i !== t && (e.result = i) === !1 && (e.preventDefault(), e.stopPropagation()));
return l.postDispatch && l.postDispatch.call(this, e), e.result
}
},
handlers: function(e, n) {
var r, i, s, o, u = [],
a = n.delegateCount,
f = e.target;
if (a && f.nodeType && (!e.button || "click" !== e.type))
for (; f != this; f = f.parentNode || this)
if (f.disabled !== !0 || "click" !== e.type) {
for (i = [], r = 0; a > r; r++) o = n[r], s = o.selector + " ", i[s] === t && (i[s] = o.needsContext ? ut(s, this).index(f) >= 0 : ut.find(s, this, null, [f]).length), i[s] && i.push(o);
i.length && u.push({
elem: f,
handlers: i
})
}
return n.length > a && u.push({
elem: this,
handlers: n.slice(a)
}), u
},
fix: function(e) {
if (e[ut.expando]) return e;
var t, n, r = e,
i = ut.event.fixHooks[e.type] || {},
s = i.props ? this.props.concat(i.props) : this.props;
for (e = new ut.Event(r), t = s.length; t--;) n = s[t], e[n] = r[n];
return e.target || (e.target = r.srcElement || $), 3 === e.target.nodeType && (e.target = e.target.parentNode), e.metaKey = !!e.metaKey, i.filter ? i.filter(e, r) : e
},
props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
fixHooks: {},
keyHooks: {
props: "char charCode key keyCode".split(" "),
filter: function(e, t) {
return null == e.which && (e.which = null != t.charCode ? t.charCode : t.keyCode), e
}
},
mouseHooks: {
props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
filter: function(e, n) {
var r, i, s, o = n.button,
u = n.fromElement;
return null == e.pageX && null != n.clientX && (r = e.target.ownerDocument || $, i = r.documentElement, s = r.body, e.pageX = n.clientX + (i && i.scrollLeft || s && s.scrollLeft || 0) - (i && i.clientLeft || s && s.clientLeft || 0), e.pageY = n.clientY + (i && i.scrollTop || s && s.scrollTop || 0) - (i && i.clientTop || s && s.clientTop || 0)), !e.relatedTarget && u && (e.relatedTarget = u === e.target ? n.toElement : u), e.which || o === t || (e.which = 1 & o ? 1 : 2 & o ? 3 : 4 & o ? 2 : 0), e
}
},
special: {
load: {
noBubble: !0
},
click: {
trigger: function() {
return ut.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : t
}
},
focus: {
trigger: function() {
if (this !== $.activeElement && this.focus) try {
return this.focus(), !1
} catch (e) {}
},
delegateType: "focusin"
},
blur: {
trigger: function() {
return this === $.activeElement && this.blur ? (this.blur(), !1) : t
},
delegateType: "focusout"
},
beforeunload: {
postDispatch: function(e) {
e.result !== t && (e.originalEvent.returnValue = e.result)
}
}
},
simulate: function(e, t, n, r) {
var i = ut.extend(new ut.Event, n, {
type: e,
isSimulated: !0,
originalEvent: {}
});
r ? ut.event.trigger(i, null, t) : ut.event.dispatch.call(t, i), i.isDefaultPrevented() && n.preventDefault()
}
}, ut.removeEvent = $.removeEventListener ? function(e, t, n) {
e.removeEventListener && e.removeEventListener(t, n, !1)
} : function(e, n, r) {
var i = "on" + n;
e.detachEvent && (e[i] === t && (e[i] = null), e.detachEvent(i, r))
}, ut.Event = function(e, n) {
return this instanceof ut.Event ? (e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || e.returnValue === !1 || e.getPreventDefault && e.getPreventDefault() ? a : f) : this.type = e, n && ut.extend(this, n), this.timeStamp = e && e.timeStamp || ut.now(), this[ut.expando] = !0, t) : new ut.Event(e, n)
}, ut.Event.prototype = {
isDefaultPrevented: f,
isPropagationStopped: f,
isImmediatePropagationStopped: f,
preventDefault: function() {
var e = this.originalEvent;
this.isDefaultPrevented = a, e && (e.preventDefault ? e.preventDefault() : e.returnValue = !1)
},
stopPropagation: function() {
var e = this.originalEvent;
this.isPropagationStopped = a, e && (e.stopPropagation && e.stopPropagation(), e.cancelBubble = !0)
},
stopImmediatePropagation: function() {
this.isImmediatePropagationStopped = a, this.stopPropagation()
}
}, ut.each({
mouseenter: "mouseover",
mouseleave: "mouseout"
}, function(e, t) {
ut.event.special[e] = {
delegateType: t,
bindType: t,
handle: function(e) {
var n, r = this,
i = e.relatedTarget,
s = e.handleObj;
return (!i || i !== r && !ut.contains(r, i)) && (e.type = s.origType, n = s.handler.apply(this, arguments), e.type = t), n
}
}
}), ut.support.submitBubbles || (ut.event.special.submit = {
setup: function() {
return ut.nodeName(this, "form") ? !1 : (ut.event.add(this, "click._submit keypress._submit", function(e) {
var n = e.target,
r = ut.nodeName(n, "input") || ut.nodeName(n, "button") ? n.form : t;
r && !ut._data(r, "submitBubbles") && (ut.event.add(r, "submit._submit", function(e) {
e._submit_bubble = !0
}), ut._data(r, "submitBubbles", !0))
}), t)
},
postDispatch: function(e) {
e._submit_bubble && (delete e._submit_bubble, this.parentNode && !e.isTrigger && ut.event.simulate("submit", this.parentNode, e, !0))
},
teardown: function() {
return ut.nodeName(this, "form") ? !1 : (ut.event.remove(this, "._submit"), t)
}
}), ut.support.changeBubbles || (ut.event.special.change = {
setup: function() {
return Pt.test(this.nodeName) ? (("checkbox" === this.type || "radio" === this.type) && (ut.event.add(this, "propertychange._change", function(e) {
"checked" === e.originalEvent.propertyName && (this._just_changed = !0)
}), ut.event.add(this, "click._change", function(e) {
this._just_changed && !e.isTrigger && (this._just_changed = !1), ut.event.simulate("change", this, e, !0)
})), !1) : (ut.event.add(this, "beforeactivate._change", function(e) {
var t = e.target;
Pt.test(t.nodeName) && !ut._data(t, "changeBubbles") && (ut.event.add(t, "change._change", function(e) {
!this.parentNode || e.isSimulated || e.isTrigger || ut.event.simulate("change", this.parentNode, e, !0)
}), ut._data(t, "changeBubbles", !0))
}), t)
},
handle: function(e) {
var n = e.target;
return this !== n || e.isSimulated || e.isTrigger || "radio" !== n.type && "checkbox" !== n.type ? e.handleObj.handler.apply(this, arguments) : t
},
teardown: function() {
return ut.event.remove(this, "._change"), !Pt.test(this.nodeName)
}
}), ut.support.focusinBubbles || ut.each({
focus: "focusin",
blur: "focusout"
}, function(e, t) {
var n = 0,
r = function(e) {
ut.event.simulate(t, e.target, ut.event.fix(e), !0)
};
ut.event.special[t] = {
setup: function() {
0 === n++ && $.addEventListener(e, r, !0)
},
teardown: function() {
0 === --n && $.removeEventListener(e, r, !0)
}
}
}), ut.fn.extend({
on: function(e, n, r, i, s) {
var o, u;
if ("object" == typeof e) {
"string" != typeof n && (r = r || n, n = t);
for (u in e) this.on(u, n, r, e[u], s);
return this
}
if (null == r && null == i ? (i = n, r = n = t) : null == i && ("string" == typeof n ? (i = r, r = t) : (i = r, r = n, n = t)), i === !1) i = f;
else if (!i) return this;
return 1 === s && (o = i, i = function(e) {
return ut().off(e), o.apply(this, arguments)
}, i.guid = o.guid || (o.guid = ut.guid++)), this.each(function() {
ut.event.add(this, e, i, r, n)
})
},
one: function(e, t, n, r) {
return this.on(e, t, n, r, 1)
},
off: function(e, n, r) {
var i, s;
if (e && e.preventDefault && e.handleObj) return i = e.handleObj, ut(e.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler), this;
if ("object" == typeof e) {
for (s in e) this.off(s, n, e[s]);
return this
}
return (n === !1 || "function" == typeof n) && (r = n, n = t), r === !1 && (r = f), this.each(function() {
ut.event.remove(this, e, r, n)
})
},
bind: function(e, t, n) {
return this.on(e, null, t, n)
},
unbind: function(e, t) {
return this.off(e, null, t)
},
delegate: function(e, t, n, r) {
return this.on(t, e, n, r)
},
undelegate: function(e, t, n) {
return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
},
trigger: function(e, t) {
return this.each(function() {
ut.event.trigger(e, t, this)
})
},
triggerHandler: function(e, n) {
var r = this[0];
return r ? ut.event.trigger(e, n, r, !0) : t
},
hover: function(e, t) {
return this.mouseenter(e).mouseleave(t || e)
}
}), ut.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(e, t) {
ut.fn[t] = function(e, n) {
return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t)
}, Ht.test(t) && (ut.event.fixHooks[t] = ut.event.keyHooks), Bt.test(t) && (ut.event.fixHooks[t] = ut.event.mouseHooks)
}),
function(e, t) {
function n(e) {
return dt.test(e + "")
}
function r() {
var e, t = [];
return e = function(n, r) {
return t.push(n += " ") > T.cacheLength && delete e[t.shift()], e[n] = r
}
}
function i(e) {
return e[I] = !0, e
}
function s(e) {
var t = M.createElement("div");
try {
return e(t)
} catch (n) {
return !1
} finally {
t = null
}
}
function o(e, t, n, r) {
var i, s, o, u, a, f, l, p, d, v;
if ((t ? t.ownerDocument || t : q) !== M && O(t), t = t || M, n = n || [], !e || "string" != typeof e) return n;
if (1 !== (u = t.nodeType) && 9 !== u) return [];
if (!D && !r) {
if (i = vt.exec(e))
if (o = i[1]) {
if (9 === u) {
if (s = t.getElementById(o), !s || !s.parentNode) return n;
if (s.id === o) return n.push(s), n
} else if (t.ownerDocument && (s = t.ownerDocument.getElementById(o)) && j(t, s) && s.id === o) return n.push(s), n
} else {
if (i[2]) return G.apply(n, Y.call(t.getElementsByTagName(e), 0)), n;
if ((o = i[3]) && R.getByClassName && t.getElementsByClassName) return G.apply(n, Y.call(t.getElementsByClassName(o), 0)), n
}
if (R.qsa && !P.test(e)) {
if (l = !0, p = I, d = t, v = 9 === u && e, 1 === u && "object" !== t.nodeName.toLowerCase()) {
for (f = c(e), (l = t.getAttribute("id")) ? p = l.replace(yt, "\\$&") : t.setAttribute("id", p), p = "[id='" + p + "'] ", a = f.length; a--;) f[a] = p + h(f[a]);
d = pt.test(e) && t.parentNode || t, v = f.join(",")
}
if (v) try {
return G.apply(n, Y.call(d.querySelectorAll(v), 0)), n
} catch (m) {} finally {
l || t.removeAttribute("id")
}
}
}
return w(e.replace(ot, "$1"), t, n, r)
}
function u(e, t) {
for (var n = e && t && e.nextSibling; n; n = n.nextSibling)
if (n === t) return -1;
return e ? 1 : -1
}
function a(e) {
return function(t) {
var n = t.nodeName.toLowerCase();
return "input" === n && t.type === e
}
}
function f(e) {
return function(t) {
var n = t.nodeName.toLowerCase();
return ("input" === n || "button" === n) && t.type === e
}
}
function l(e) {
return i(function(t) {
return t = +t, i(function(n, r) {
for (var i, s = e([], n.length, t), o = s.length; o--;) n[i = s[o]] && (n[i] = !(r[i] = n[i]))
})
})
}
function c(e, t) {
var n, r, i, s, u, a, f, l = X[e + " "];
if (l) return t ? 0 : l.slice(0);
for (u = e, a = [], f = T.preFilter; u;) {
(!n || (r = at.exec(u))) && (r && (u = u.slice(r[0].length) || u), a.push(i = [])), n = !1, (r = ft.exec(u)) && (n = r.shift(), i.push({
value: n,
type: r[0].replace(ot, " ")
}), u = u.slice(n.length));
for (s in T.filter) !(r = ht[s].exec(u)) || f[s] && !(r = f[s](r)) || (n = r.shift(), i.push({
value: n,
type: s,
matches: r
}), u = u.slice(n.length));
if (!n) break
}
return t ? u.length : u ? o.error(e) : X(e, a).slice(0)
}
function h(e) {
for (var t = 0, n = e.length, r = ""; n > t; t++) r += e[t].value;
return r
}
function p(e, t, n) {
var r = t.dir,
i = n && "parentNode" === t.dir,
s = z++;
return t.first ? function(t, n, s) {
for (; t = t[r];)
if (1 === t.nodeType || i) return e(t, n, s)
} : function(t, n, o) {
var u, a, f, l = U + " " + s;
if (o) {
for (; t = t[r];)
if ((1 === t.nodeType || i) && e(t, n, o)) return !0
} else
for (; t = t[r];)
if (1 === t.nodeType || i)
if (f = t[I] || (t[I] = {}), (a = f[r]) && a[0] === l) {
if ((u = a[1]) === !0 || u === x) return u === !0
} else if (a = f[r] = [l], a[1] = e(t, n, o) || x, a[1] === !0) return !0
}
}
function d(e) {
return e.length > 1 ? function(t, n, r) {
for (var i = e.length; i--;)
if (!e[i](t, n, r)) return !1;
return !0
} : e[0]
}
function v(e, t, n, r, i) {
for (var s, o = [], u = 0, a = e.length, f = null != t; a > u; u++)(s = e[u]) && (!n || n(s, r, i)) && (o.push(s), f && t.push(u));
return o
}
function m(e, t, n, r, s, o) {
return r && !r[I] && (r = m(r)), s && !s[I] && (s = m(s, o)), i(function(i, o, u, a) {
var f, l, c, h = [],
p = [],
d = o.length,
m = i || b(t || "*", u.nodeType ? [u] : u, []),
g = !e || !i && t ? m : v(m, h, e, u, a),
y = n ? s || (i ? e : d || r) ? [] : o : g;
if (n && n(g, y, u, a), r)
for (f = v(y, p), r(f, [], u, a), l = f.length; l--;)(c = f[l]) && (y[p[l]] = !(g[p[l]] = c));
if (i) {
if (s || e) {
if (s) {
for (f = [], l = y.length; l--;)(c = y[l]) && f.push(g[l] = c);
s(null, y = [], f, a)
}
for (l = y.length; l--;)(c = y[l]) && (f = s ? Z.call(i, c) : h[l]) > -1 && (i[f] = !(o[f] = c))
}
} else y = v(y === o ? y.splice(d, y.length) : y), s ? s(null, o, y, a) : G.apply(o, y)
})
}
function g(e) {
for (var t, n, r, i = e.length, s = T.relative[e[0].type], o = s || T.relative[" "], u = s ? 1 : 0, a = p(function(e) {
return e === t
}, o, !0), f = p(function(e) {
return Z.call(t, e) > -1
}, o, !0), l = [function(e, n, r) {
return !s && (r || n !== A) || ((t = n).nodeType ? a(e, n, r) : f(e, n, r))
}]; i > u; u++)
if (n = T.relative[e[u].type]) l = [p(d(l), n)];
else {
if (n = T.filter[e[u].type].apply(null, e[u].matches), n[I]) {
for (r = ++u; i > r && !T.relative[e[r].type]; r++);
return m(u > 1 && d(l), u > 1 && h(e.slice(0, u - 1)).replace(ot, "$1"), n, r > u && g(e.slice(u, r)), i > r && g(e = e.slice(r)), i > r && h(e))
}
l.push(n)
}
return d(l)
}
function y(e, t) {
var n = 0,
r = t.length > 0,
s = e.length > 0,
u = function(i, u, a, f, l) {
var c, h, p, d = [],
m = 0,
g = "0",
y = i && [],
b = null != l,
w = A,
E = i || s && T.find.TAG("*", l && u.parentNode || u),
S = U += null == w ? 1 : Math.E;
for (b && (A = u !== M && u, x = n); null != (c = E[g]); g++) {
if (s && c) {
for (h = 0; p = e[h]; h++)
if (p(c, u, a)) {
f.push(c);
break
}
b && (U = S, x = ++n)
}
r && ((c = !p && c) && m--, i && y.push(c))
}
if (m += g, r && g !== m) {
for (h = 0; p = t[h]; h++) p(y, d, u, a);
if (i) {
if (m > 0)
for (; g--;) y[g] || d[g] || (d[g] = Q.call(f));
d = v(d)
}
G.apply(f, d), b && !i && d.length > 0 && m + t.length > 1 && o.uniqueSort(f)
}
return b && (U = S, A = w), y
};
return r ? i(u) : u
}
function b(e, t, n) {
for (var r = 0, i = t.length; i > r; r++) o(e, t[r], n);
return n
}
function w(e, t, n, r) {
var i, s, o, u, a, f = c(e);
if (!r && 1 === f.length) {
if (s = f[0] = f[0].slice(0), s.length > 2 && "ID" === (o = s[0]).type && 9 === t.nodeType && !D && T.relative[s[1].type]) {
if (t = T.find.ID(o.matches[0].replace(wt, Et), t)[0], !t) return n;
e = e.slice(s.shift().value.length)
}
for (i = ht.needsContext.test(e) ? -1 : s.length - 1; i >= 0 && (o = s[i], !T.relative[u = o.type]); i--)
if ((a = T.find[u]) && (r = a(o.matches[0].replace(wt, Et), pt.test(s[0].type) && t.parentNode || t))) {
if (s.splice(i, 1), e = r.length && h(s), !e) return G.apply(n, Y.call(r, 0)), n;
break
}
}
return k(e, f)(r, t, D, n, pt.test(e)), n
}
function E() {}
var S, x, T, N, C, k, L, A, O, M, _, D, P, H, B, j, F, I = "sizzle" + -(new Date),
q = e.document,
R = {},
U = 0,
z = 0,
W = r(),
X = r(),
V = r(),
$ = typeof t,
J = 1 << 31,
K = [],
Q = K.pop,
G = K.push,
Y = K.slice,
Z = K.indexOf || function(e) {
for (var t = 0, n = this.length; n > t; t++)
if (this[t] === e) return t;
return -1
},
et = "[\\x20\\t\\r\\n\\f]",
tt = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
nt = tt.replace("w", "w#"),
rt = "([*^$|!~]?=)",
it = "\\[" + et + "*(" + tt + ")" + et + "*(?:" + rt + et + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + nt + ")|)|)" + et + "*\\]",
st = ":(" + tt + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + it.replace(3, 8) + ")*)|.*)\\)|)",
ot = RegExp("^" + et + "+|((?:^|[^\\\\])(?:\\\\.)*)" + et + "+$", "g"),
at = RegExp("^" + et + "*," + et + "*"),
ft = RegExp("^" + et + "*([\\x20\\t\\r\\n\\f>+~])" + et + "*"),
lt = RegExp(st),
ct = RegExp("^" + nt + "$"),
ht = {
ID: RegExp("^#(" + tt + ")"),
CLASS: RegExp("^\\.(" + tt + ")"),
NAME: RegExp("^\\[name=['\"]?(" + tt + ")['\"]?\\]"),
TAG: RegExp("^(" + tt.replace("w", "w*") + ")"),
ATTR: RegExp("^" + it),
PSEUDO: RegExp("^" + st),
CHILD: RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + et + "*(even|odd|(([+-]|)(\\d*)n|)" + et + "*(?:([+-]|)" + et + "*(\\d+)|))" + et + "*\\)|)", "i"),
needsContext: RegExp("^" + et + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + et + "*((?:-\\d)?\\d*)" + et + "*\\)|)(?=[^-]|$)", "i")
},
pt = /[\x20\t\r\n\f]*[+~]/,
dt = /\{\s*\[native code\]\s*\}/,
vt = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
mt = /^(?:input|select|textarea|button)$/i,
gt = /^h\d$/i,
yt = /'|\\/g,
bt = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,
wt = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,
Et = function(e, t) {
var n = "0x" + t - 65536;
return n !== n ? t : 0 > n ? String.fromCharCode(n + 65536) : String.fromCharCode(55296 | n >> 10, 56320 | 1023 & n)
};
try {
Y.call(_.childNodes, 0)[0].nodeType
} catch (St) {
Y = function(e) {
for (var t, n = []; t = this[e]; e++) n.push(t);
return n
}
}
C = o.isXML = function(e) {
var t = e && (e.ownerDocument || e).documentElement;
return t ? "HTML" !== t.nodeName : !1
}, O = o.setDocument = function(e) {
var r = e ? e.ownerDocument || e : q;
return r !== M && 9 === r.nodeType && r.documentElement ? (M = r, _ = r.documentElement, D = C(r), R.tagNameNoComments = s(function(e) {
return e.appendChild(r.createComment("")), !e.getElementsByTagName("*").length
}), R.attributes = s(function(e) {
e.innerHTML = "<select></select>";
var t = typeof e.lastChild.getAttribute("multiple");
return "boolean" !== t && "string" !== t
}), R.getByClassName = s(function(e) {
return e.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>", e.getElementsByClassName && e.getElementsByClassName("e").length ? (e.lastChild.className = "e", 2 === e.getElementsByClassName("e").length) : !1
}), R.getByName = s(function(e) {
e.id = I + 0, e.innerHTML = "<a name='" + I + "'></a><div name='" + I + "'></div>", _.insertBefore(e, _.firstChild);
var t = r.getElementsByName && r.getElementsByName(I).length === 2 + r.getElementsByName(I + 0).length;
return R.getIdNotName = !r.getElementById(I), _.removeChild(e), t
}), T.attrHandle = s(function(e) {
return e.innerHTML = "<a href='#'></a>", e.firstChild && typeof e.firstChild.getAttribute !== $ && "#" === e.firstChild.getAttribute("href")
}) ? {} : {
href: function(e) {
return e.getAttribute("href", 2)
},
type: function(e) {
return e.getAttribute("type")
}
}, R.getIdNotName ? (T.find.ID = function(e, t) {
if (typeof t.getElementById !== $ && !D) {
var n = t.getElementById(e);
return n && n.parentNode ? [n] : []
}
}, T.filter.ID = function(e) {
var t = e.replace(wt, Et);
return function(e) {
return e.getAttribute("id") === t
}
}) : (T.find.ID = function(e, n) {
if (typeof n.getElementById !== $ && !D) {
var r = n.getElementById(e);
return r ? r.id === e || typeof r.getAttributeNode !== $ && r.getAttributeNode("id").value === e ? [r] : t : []
}
}, T.filter.ID = function(e) {
var t = e.replace(wt, Et);
return function(e) {
var n = typeof e.getAttributeNode !== $ && e.getAttributeNode("id");
return n && n.value === t
}
}), T.find.TAG = R.tagNameNoComments ? function(e, n) {
return typeof n.getElementsByTagName !== $ ? n.getElementsByTagName(e) : t
} : function(e, t) {
var n, r = [],
i = 0,
s = t.getElementsByTagName(e);
if ("*" === e) {
for (; n = s[i]; i++) 1 === n.nodeType && r.push(n);
return r
}
return s
}, T.find.NAME = R.getByName && function(e, n) {
return typeof n.getElementsByName !== $ ? n.getElementsByName(name) : t
}, T.find.CLASS = R.getByClassName && function(e, n) {
return typeof n.getElementsByClassName === $ || D ? t : n.getElementsByClassName(e)
}, H = [], P = [":focus"], (R.qsa = n(r.querySelectorAll)) && (s(function(e) {
e.innerHTML = "<select><option selected=''></option></select>", e.querySelectorAll("[selected]").length || P.push("\\[" + et + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)"), e.querySelectorAll(":checked").length || P.push(":checked")
}), s(function(e) {
e.innerHTML = "<input type='hidden' i=''/>", e.querySelectorAll("[i^='']").length && P.push("[*^$]=" + et + "*(?:\"\"|'')"), e.querySelectorAll(":enabled").length || P.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), P.push(",.*:")
})), (R.matchesSelector = n(B = _.matchesSelector || _.mozMatchesSelector || _.webkitMatchesSelector || _.oMatchesSelector || _.msMatchesSelector)) && s(function(e) {
R.disconnectedMatch = B.call(e, "div"), B.call(e, "[s!='']:x"), H.push("!=", st)
}), P = RegExp(P.join("|")), H = RegExp(H.join("|")), j = n(_.contains) || _.compareDocumentPosition ? function(e, t) {
var n = 9 === e.nodeType ? e.documentElement : e,
r = t && t.parentNode;
return e === r || !!r && 1 === r.nodeType && !!(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r))
} : function(e, t) {
if (t)
for (; t = t.parentNode;)
if (t === e) return !0;
return !1
}, F = _.compareDocumentPosition ? function(e, t) {
var n;
return e === t ? (L = !0, 0) : (n = t.compareDocumentPosition && e.compareDocumentPosition && e.compareDocumentPosition(t)) ? 1 & n || e.parentNode && 11 === e.parentNode.nodeType ? e === r || j(q, e) ? -1 : t === r || j(q, t) ? 1 : 0 : 4 & n ? -1 : 1 : e.compareDocumentPosition ? -1 : 1
} : function(e, t) {
var n, i = 0,
s = e.parentNode,
o = t.parentNode,
a = [e],
f = [t];
if (e === t) return L = !0, 0;
if (e.sourceIndex && t.sourceIndex) return (~t.sourceIndex || J) - (j(q, e) && ~e.sourceIndex || J);
if (!s || !o) return e === r ? -1 : t === r ? 1 : s ? -1 : o ? 1 : 0;
if (s === o) return u(e, t);
for (n = e; n = n.parentNode;) a.unshift(n);
for (n = t; n = n.parentNode;) f.unshift(n);
for (; a[i] === f[i];) i++;
return i ? u(a[i], f[i]) : a[i] === q ? -1 : f[i] === q ? 1 : 0
}, L = !1, [0, 0].sort(F), R.detectDuplicates = L, M) : M
}, o.matches = function(e, t) {
return o(e, null, null, t)
}, o.matchesSelector = function(e, t) {
if ((e.ownerDocument || e) !== M && O(e), t = t.replace(bt, "='$1']"), !(!R.matchesSelector || D || H && H.test(t) || P.test(t))) try {
var n = B.call(e, t);
if (n || R.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n
} catch (r) {}
return o(t, M, null, [e]).length > 0
}, o.contains = function(e, t) {
return (e.ownerDocument || e) !== M && O(e), j(e, t)
}, o.attr = function(e, t) {
var n;
return (e.ownerDocument || e) !== M && O(e), D || (t = t.toLowerCase()), (n = T.attrHandle[t]) ? n(e) : D || R.attributes ? e.getAttribute(t) : ((n = e.getAttributeNode(t)) || e.getAttribute(t)) && e[t] === !0 ? t : n && n.specified ? n.value : null
}, o.error = function(e) {
throw Error("Syntax error, unrecognized expression: " + e)
}, o.uniqueSort = function(e) {
var t, n = [],
r = 1,
i = 0;
if (L = !R.detectDuplicates, e.sort(F), L) {
for (; t = e[r]; r++) t === e[r - 1] && (i = n.push(r));
for (; i--;) e.splice(n[i], 1)
}
return e
}, N = o.getText = function(e) {
var t, n = "",
r = 0,
i = e.nodeType;
if (i) {
if (1 === i || 9 === i || 11 === i) {
if ("string" == typeof e.textContent) return e.textContent;
for (e = e.firstChild; e; e = e.nextSibling) n += N(e)
} else if (3 === i || 4 === i) return e.nodeValue
} else
for (; t = e[r]; r++) n += N(t);
return n
}, T = o.selectors = {
cacheLength: 50,
createPseudo: i,
match: ht,
find: {},
relative: {
">": {
dir: "parentNode",
first: !0
},
" ": {
dir: "parentNode"
},
"+": {
dir: "previousSibling",
first: !0
},
"~": {
dir: "previousSibling"
}
},
preFilter: {
ATTR: function(e) {
return e[1] = e[1].replace(wt, Et), e[3] = (e[4] || e[5] || "").replace(wt, Et), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)
},
CHILD: function(e) {
return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || o.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && o.error(e[0]), e
},
PSEUDO: function(e) {
var t, n = !e[5] && e[2];
return ht.CHILD.test(e[0]) ? null : (e[4] ? e[2] = e[4] : n && lt.test(n) && (t = c(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
}
},
filter: {
TAG: function(e) {
return "*" === e ? function() {
return !0
} : (e = e.replace(wt, Et).toLowerCase(), function(t) {
return t.nodeName && t.nodeName.toLowerCase() === e
})
},
CLASS: function(e) {
var t = W[e + " "];
return t || (t = RegExp("(^|" + et + ")" + e + "(" + et + "|$)")) && W(e, function(e) {
return t.test(e.className || typeof e.getAttribute !== $ && e.getAttribute("class") || "")
})
},
ATTR: function(e, t, n) {
return function(r) {
var i = o.attr(r, e);
return null == i ? "!=" === t : t ? (i += "", "=" === t ? i === n : "!=" === t ? i !== n : "^=" === t ? n && 0 === i.indexOf(n) : "*=" === t ? n && i.indexOf(n) > -1 : "$=" === t ? n && i.substr(i.length - n.length) === n : "~=" === t ? (" " + i + " ").indexOf(n) > -1 : "|=" === t ? i === n || i.substr(0, n.length + 1) === n + "-" : !1) : !0
}
},
CHILD: function(e, t, n, r, i) {
var s = "nth" !== e.slice(0, 3),
o = "last" !== e.slice(-4),
u = "of-type" === t;
return 1 === r && 0 === i ? function(e) {
return !!e.parentNode
} : function(t, n, a) {
var f, l, c, h, p, d, v = s !== o ? "nextSibling" : "previousSibling",
m = t.parentNode,
g = u && t.nodeName.toLowerCase(),
y = !a && !u;
if (m) {
if (s) {
for (; v;) {
for (c = t; c = c[v];)
if (u ? c.nodeName.toLowerCase() === g : 1 === c.nodeType) return !1;
d = v = "only" === e && !d && "nextSibling"
}
return !0
}
if (d = [o ? m.firstChild : m.lastChild], o && y) {
for (l = m[I] || (m[I] = {}), f = l[e] || [], p = f[0] === U && f[1], h = f[0] === U && f[2], c = p && m.childNodes[p]; c = ++p && c && c[v] || (h = p = 0) || d.pop();)
if (1 === c.nodeType && ++h && c === t) {
l[e] = [U, p, h];
break
}
} else if (y && (f = (t[I] || (t[I] = {}))[e]) && f[0] === U) h = f[1];
else
for (;
(c = ++p && c && c[v] || (h = p = 0) || d.pop()) && ((u ? c.nodeName.toLowerCase() !== g : 1 !== c.nodeType) || !++h || (y && ((c[I] || (c[I] = {}))[e] = [U, h]), c !== t)););
return h -= i, h === r || 0 === h % r && h / r >= 0
}
}
},
PSEUDO: function(e, t) {
var n, r = T.pseudos[e] || T.setFilters[e.toLowerCase()] || o.error("unsupported pseudo: " + e);
return r[I] ? r(t) : r.length > 1 ? (n = [e, e, "", t], T.setFilters.hasOwnProperty(e.toLowerCase()) ? i(function(e, n) {
for (var i, s = r(e, t), o = s.length; o--;) i = Z.call(e, s[o]), e[i] = !(n[i] = s[o])
}) : function(e) {
return r(e, 0, n)
}) : r
}
},
pseudos: {
not: i(function(e) {
var t = [],
n = [],
r = k(e.replace(ot, "$1"));
return r[I] ? i(function(e, t, n, i) {
for (var s, o = r(e, null, i, []), u = e.length; u--;)(s = o[u]) && (e[u] = !(t[u] = s))
}) : function(e, i, s) {
return t[0] = e, r(t, null, s, n), !n.pop()
}
}),
has: i(function(e) {
return function(t) {
return o(e, t).length > 0
}
}),
contains: i(function(e) {
return function(t) {
return (t.textContent || t.innerText || N(t)).indexOf(e) > -1
}
}),
lang: i(function(e) {
return ct.test(e || "") || o.error("unsupported lang: " + e), e = e.replace(wt, Et).toLowerCase(),
function(t) {
var n;
do
if (n = D ? t.getAttribute("xml:lang") || t.getAttribute("lang") : t.lang) return n = n.toLowerCase(), n === e || 0 === n.indexOf(e + "-");
while ((t = t.parentNode) && 1 === t.nodeType);
return !1
}
}),
target: function(t) {
var n = e.location && e.location.hash;
return n && n.slice(1) === t.id
},
root: function(e) {
return e === _
},
focus: function(e) {
return e === M.activeElement && (!M.hasFocus || M.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
},
enabled: function(e) {
return e.disabled === !1
},
disabled: function(e) {
return e.disabled === !0
},
checked: function(e) {
var t = e.nodeName.toLowerCase();
return "input" === t && !!e.checked || "option" === t && !!e.selected
},
selected: function(e) {
return e.parentNode && e.parentNode.selectedIndex, e.selected === !0
},
empty: function(e) {
for (e = e.firstChild; e; e = e.nextSibling)
if (e.nodeName > "@" || 3 === e.nodeType || 4 === e.nodeType) return !1;
return !0
},
parent: function(e) {
return !T.pseudos.empty(e)
},
header: function(e) {
return gt.test(e.nodeName)
},
input: function(e) {
return mt.test(e.nodeName)
},
button: function(e) {
var t = e.nodeName.toLowerCase();
return "input" === t && "button" === e.type || "button" === t
},
text: function(e) {
var t;
return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || t.toLowerCase() === e.type)
},
first: l(function() {
return [0]
}),
last: l(function(e, t) {
return [t - 1]
}),
eq: l(function(e, t, n) {
return [0 > n ? n + t : n]
}),
even: l(function(e, t) {
for (var n = 0; t > n; n += 2) e.push(n);
return e
}),
odd: l(function(e, t) {
for (var n = 1; t > n; n += 2) e.push(n);
return e
}),
lt: l(function(e, t, n) {
for (var r = 0 > n ? n + t : n; --r >= 0;) e.push(r);
return e
}),
gt: l(function(e, t, n) {
for (var r = 0 > n ? n + t : n; t > ++r;) e.push(r);
return e
})
}
};
for (S in {
radio: !0,
checkbox: !0,
file: !0,
password: !0,
image: !0
}) T.pseudos[S] = a(S);
for (S in {
submit: !0,
reset: !0
}) T.pseudos[S] = f(S);
k = o.compile = function(e, t) {
var n, r = [],
i = [],
s = V[e + " "];
if (!s) {
for (t || (t = c(e)), n = t.length; n--;) s = g(t[n]), s[I] ? r.push(s) : i.push(s);
s = V(e, y(i, r))
}
return s
}, T.pseudos.nth = T.pseudos.eq, T.filters = E.prototype = T.pseudos, T.setFilters = new E, O(), o.attr = ut.attr, ut.find = o, ut.expr = o.selectors, ut.expr[":"] = ut.expr.pseudos, ut.unique = o.uniqueSort, ut.text = o.getText, ut.isXMLDoc = o.isXML, ut.contains = o.contains
}(e);
var It = /Until$/,
qt = /^(?:parents|prev(?:Until|All))/,
Rt = /^.[^:#\[\.,]*$/,
Ut = ut.expr.match.needsContext,
zt = {
children: !0,
contents: !0,
next: !0,
prev: !0
};
ut.fn.extend({
find: function(e) {
var t, n, r;
if ("string" != typeof e) return r = this, this.pushStack(ut(e).filter(function() {
for (t = 0; r.length > t; t++)
if (ut.contains(r[t], this)) return !0
}));
for (n = [], t = 0; this.length > t; t++) ut.find(e, this[t], n);
return n = this.pushStack(ut.unique(n)), n.selector = (this.selector ? this.selector + " " : "") + e, n
},
has: function(e) {
var t, n = ut(e, this),
r = n.length;
return this.filter(function() {
for (t = 0; r > t; t++)
if (ut.contains(this, n[t])) return !0
})
},
not: function(e) {
return this.pushStack(c(this, e, !1))
},
filter: function(e) {
return this.pushStack(c(this, e, !0))
},
is: function(e) {
return !!e && ("string" == typeof e ? Ut.test(e) ? ut(e, this.context).index(this[0]) >= 0 : ut.filter(e, this).length > 0 : this.filter(e).length > 0)
},
closest: function(e, t) {
for (var n, r = 0, i = this.length, s = [], o = Ut.test(e) || "string" != typeof e ? ut(e, t || this.context) : 0; i > r; r++)
for (n = this[r]; n && n.ownerDocument && n !== t && 11 !== n.nodeType;) {
if (o ? o.index(n) > -1 : ut.find.matchesSelector(n, e)) {
s.push(n);
break
}
n = n.parentNode
}
return this.pushStack(s.length > 1 ? ut.unique(s) : s)
},
index: function(e) {
return e ? "string" == typeof e ? ut.inArray(this[0], ut(e)) : ut.inArray(e.jquery ? e[0] : e, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
},
add: function(e, t) {
var n = "string" == typeof e ? ut(e, t) : ut.makeArray(e && e.nodeType ? [e] : e),
r = ut.merge(this.get(), n);
return this.pushStack(ut.unique(r))
},
addBack: function(e) {
return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
}
}), ut.fn.andSelf = ut.fn.addBack, ut.each({
parent: function(e) {
var t = e.parentNode;
return t && 11 !== t.nodeType ? t : null
},
parents: function(e) {
return ut.dir(e, "parentNode")
},
parentsUntil: function(e, t, n) {
return ut.dir(e, "parentNode", n)
},
next: function(e) {
return l(e, "nextSibling")
},
prev: function(e) {
return l(e, "previousSibling")
},
nextAll: function(e) {
return ut.dir(e, "nextSibling")
},
prevAll: function(e) {
return ut.dir(e, "previousSibling")
},
nextUntil: function(e, t, n) {
return ut.dir(e, "nextSibling", n)
},
prevUntil: function(e, t, n) {
return ut.dir(e, "previousSibling", n)
},
siblings: function(e) {
return ut.sibling((e.parentNode || {}).firstChild, e)
},
children: function(e) {
return ut.sibling(e.firstChild)
},
contents: function(e) {
return ut.nodeName(e, "iframe") ? e.contentDocument || e.contentWindow.document : ut.merge([], e.childNodes)
}
}, function(e, t) {
ut.fn[e] = function(n, r) {
var i = ut.map(this, t, n);
return It.test(e) || (r = n), r && "string" == typeof r && (i = ut.filter(r, i)), i = this.length > 1 && !zt[e] ? ut.unique(i) : i, this.length > 1 && qt.test(e) && (i = i.reverse()), this.pushStack(i)
}
}), ut.extend({
filter: function(e, t, n) {
return n && (e = ":not(" + e + ")"), 1 === t.length ? ut.find.matchesSelector(t[0], e) ? [t[0]] : [] : ut.find.matches(e, t)
},
dir: function(e, n, r) {
for (var i = [], s = e[n]; s && 9 !== s.nodeType && (r === t || 1 !== s.nodeType || !ut(s).is(r));) 1 === s.nodeType && i.push(s), s = s[n];
return i
},
sibling: function(e, t) {
for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
return n
}
});
var Wt = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
Xt = / jQuery\d+="(?:null|\d+)"/g,
Vt = RegExp("<(?:" + Wt + ")[\\s/>]", "i"),
$t = /^\s+/,
Jt = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
Kt = /<([\w:]+)/,
Qt = /<tbody/i,
Gt = /<|&#?\w+;/,
Yt = /<(?:script|style|link)/i,
Zt = /^(?:checkbox|radio)$/i,
en = /checked\s*(?:[^=]|=\s*.checked.)/i,
tn = /^$|\/(?:java|ecma)script/i,
nn = /^true\/(.*)/,
rn = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
sn = {
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: ut.support.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"]
},
on = h($),
un = on.appendChild($.createElement("div"));
sn.optgroup = sn.option, sn.tbody = sn.tfoot = sn.colgroup = sn.caption = sn.thead, sn.th = sn.td, ut.fn.extend({
text: function(e) {
return ut.access(this, function(e) {
return e === t ? ut.text(this) : this.empty().append((this[0] && this[0].ownerDocument || $).createTextNode(e))
}, null, e, arguments.length)
},
wrapAll: function(e) {
if (ut.isFunction(e)) return this.each(function(t) {
ut(this).wrapAll(e.call(this, t))
});
if (this[0]) {
var t = ut(e, this[0].ownerDocument).eq(0).clone(!0);
this[0].parentNode && t.insertBefore(this[0]), t.map(function() {
for (var e = this; e.firstChild && 1 === e.firstChild.nodeType;) e = e.firstChild;
return e
}).append(this)
}
return this
},
wrapInner: function(e) {
return ut.isFunction(e) ? this.each(function(t) {
ut(this).wrapInner(e.call(this, t))
}) : this.each(function() {
var t = ut(this),
n = t.contents();
n.length ? n.wrapAll(e) : t.append(e)
})
},
wrap: function(e) {
var t = ut.isFunction(e);
return this.each(function(n) {
ut(this).wrapAll(t ? e.call(this, n) : e)
})
},
unwrap: function() {
return this.parent().each(function() {
ut.nodeName(this, "body") || ut(this).replaceWith(this.childNodes)
}).end()
},
append: function() {
return this.domManip(arguments, !0, function(e) {
(1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) && this.appendChild(e)
})
},
prepend: function() {
return this.domManip(arguments, !0, function(e) {
(1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) && this.insertBefore(e, this.firstChild)
})
},
before: function() {
return this.domManip(arguments, !1, function(e) {
this.parentNode && this.parentNode.insertBefore(e, this)
})
},
after: function() {
return this.domManip(arguments, !1, function(e) {
this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
})
},
remove: function(e, t) {
for (var n, r = 0; null != (n = this[r]); r++)(!e || ut.filter(e, [n]).length > 0) && (t || 1 !== n.nodeType || ut.cleanData(b(n)), n.parentNode && (t && ut.contains(n.ownerDocument, n) && m(b(n, "script")), n.parentNode.removeChild(n)));
return this
},
empty: function() {
for (var e, t = 0; null != (e = this[t]); t++) {
for (1 === e.nodeType && ut.cleanData(b(e, !1)); e.firstChild;) e.removeChild(e.firstChild);
e.options && ut.nodeName(e, "select") && (e.options.length = 0)
}
return this
},
clone: function(e, t) {
return e = null == e ? !1 : e, t = null == t ? e : t, this.map(function() {
return ut.clone(this, e, t)
})
},
html: function(e) {
return ut.access(this, function(e) {
var n = this[0] || {},
r = 0,
i = this.length;
if (e === t) return 1 === n.nodeType ? n.innerHTML.replace(Xt, "") : t;
if (!("string" != typeof e || Yt.test(e) || !ut.support.htmlSerialize && Vt.test(e) || !ut.support.leadingWhitespace && $t.test(e) || sn[(Kt.exec(e) || ["", ""])[1].toLowerCase()])) {
e = e.replace(Jt, "<$1></$2>");
try {
for (; i > r; r++) n = this[r] || {}, 1 === n.nodeType && (ut.cleanData(b(n, !1)), n.innerHTML = e);
n = 0
} catch (s) {}
}
n && this.empty().append(e)
}, null, e, arguments.length)
},
replaceWith: function(e) {
var t = ut.isFunction(e);
return t || "string" == typeof e || (e = ut(e).not(this).detach()), this.domManip([e], !0, function(e) {
var t = this.nextSibling,
n = this.parentNode;
(n && 1 === this.nodeType || 11 === this.nodeType) && (ut(this).remove(), t ? t.parentNode.insertBefore(e, t) : n.appendChild(e))
})
},
detach: function(e) {
return this.remove(e, !0)
},
domManip: function(e, n, r) {
e = et.apply([], e);
var i, s, o, u, a, f, l = 0,
c = this.length,
h = this,
m = c - 1,
g = e[0],
y = ut.isFunction(g);
if (y || !(1 >= c || "string" != typeof g || ut.support.checkClone) && en.test(g)) return this.each(function(i) {
var s = h.eq(i);
y && (e[0] = g.call(this, i, n ? s.html() : t)), s.domManip(e, n, r)
});
if (c && (i = ut.buildFragment(e, this[0].ownerDocument, !1, this), s = i.firstChild, 1 === i.childNodes.length && (i = s), s)) {
for (n = n && ut.nodeName(s, "tr"), o = ut.map(b(i, "script"), d), u = o.length; c > l; l++) a = i, l !== m && (a = ut.clone(a, !0, !0), u && ut.merge(o, b(a, "script"))), r.call(n && ut.nodeName(this[l], "table") ? p(this[l], "tbody") : this[l], a, l);
if (u)
for (f = o[o.length - 1].ownerDocument, ut.map(o, v), l = 0; u > l; l++) a = o[l], tn.test(a.type || "") && !ut._data(a, "globalEval") && ut.contains(f, a) && (a.src ? ut.ajax({
url: a.src,
type: "GET",
dataType: "script",
async: !1,
global: !1,
"throws": !0
}) : ut.globalEval((a.text || a.textContent || a.innerHTML || "").replace(rn, "")));
i = s = null
}
return this
}
}), ut.each({
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
insertAfter: "after",
replaceAll: "replaceWith"
}, function(e, t) {
ut.fn[e] = function(e) {
for (var n, r = 0, i = [], s = ut(e), o = s.length - 1; o >= r; r++) n = r === o ? this : this.clone(!0), ut(s[r])[t](n), tt.apply(i, n.get());
return this.pushStack(i)
}
}), ut.extend({
clone: function(e, t, n) {
var r, i, s, o, u, a = ut.contains(e.ownerDocument, e);
if (ut.support.html5Clone || ut.isXMLDoc(e) || !Vt.test("<" + e.nodeName + ">") ? u = e.cloneNode(!0) : (un.innerHTML = e.outerHTML, un.removeChild(u = un.firstChild)), !(ut.support.noCloneEvent && ut.support.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || ut.isXMLDoc(e)))
for (r = b(u), i = b(e), o = 0; null != (s = i[o]); ++o) r[o] && y(s, r[o]);
if (t)
if (n)
for (i = i || b(e), r = r || b(u), o = 0; null != (s = i[o]); o++) g(s, r[o]);
else g(e, u);
return r = b(u, "script"), r.length > 0 && m(r, !a && b(e, "script")), r = i = s = null, u
},
buildFragment: function(e, t, n, r) {
for (var i, s, o, u, a, f, l, c = e.length, p = h(t), d = [], v = 0; c > v; v++)
if (s = e[v], s || 0 === s)
if ("object" === ut.type(s)) ut.merge(d, s.nodeType ? [s] : s);
else if (Gt.test(s)) {
for (u = u || p.appendChild(t.createElement("div")), o = (Kt.exec(s) || ["", ""])[1].toLowerCase(), a = sn[o] || sn._default, u.innerHTML = a[1] + s.replace(Jt, "<$1></$2>") + a[2], l = a[0]; l--;) u = u.lastChild;
if (!ut.support.leadingWhitespace && $t.test(s) && d.push(t.createTextNode($t.exec(s)[0])), !ut.support.tbody)
for (s = "table" !== o || Qt.test(s) ? "<table>" !== a[1] || Qt.test(s) ? 0 : u : u.firstChild, l = s && s.childNodes.length; l--;) ut.nodeName(f = s.childNodes[l], "tbody") && !f.childNodes.length && s.removeChild(f);
for (ut.merge(d, u.childNodes), u.textContent = ""; u.firstChild;) u.removeChild(u.firstChild);
u = p.lastChild
} else d.push(t.createTextNode(s));
for (u && p.removeChild(u), ut.support.appendChecked || ut.grep(b(d, "input"), w), v = 0; s = d[v++];)
if ((!r || -1 === ut.inArray(s, r)) && (i = ut.contains(s.ownerDocument, s), u = b(p.appendChild(s), "script"), i && m(u), n))
for (l = 0; s = u[l++];) tn.test(s.type || "") && n.push(s);
return u = null, p
},
cleanData: function(e, n) {
for (var r, i, s, o, u = 0, a = ut.expando, f = ut.cache, l = ut.support.deleteExpando, c = ut.event.special; null != (s = e[u]); u++)
if ((n || ut.acceptData(s)) && (i = s[a], r = i && f[i])) {
if (r.events)
for (o in r.events) c[o] ? ut.event.remove(s, o) : ut.removeEvent(s, o, r.handle);
f[i] && (delete f[i], l ? delete s[a] : s.removeAttribute !== t ? s.removeAttribute(a) : s[a] = null, Y.push(i))
}
}
});
var an, fn, ln, cn = /alpha\([^)]*\)/i,
hn = /opacity\s*=\s*([^)]*)/,
pn = /^(top|right|bottom|left)$/,
dn = /^(none|table(?!-c[ea]).+)/,
vn = /^margin/,
mn = RegExp("^(" + at + ")(.*)$", "i"),
gn = RegExp("^(" + at + ")(?!px)[a-z%]+$", "i"),
yn = RegExp("^([+-])=(" + at + ")", "i"),
bn = {
BODY: "block"
},
wn = {
position: "absolute",
visibility: "hidden",
display: "block"
},
En = {
letterSpacing: 0,
fontWeight: 400
},
Sn = ["Top", "Right", "Bottom", "Left"],
xn = ["Webkit", "O", "Moz", "ms"];
ut.fn.extend({
css: function(e, n) {
return ut.access(this, function(e, n, r) {
var i, s, o = {},
u = 0;
if (ut.isArray(n)) {
for (i = fn(e), s = n.length; s > u; u++) o[n[u]] = ut.css(e, n[u], !1, i);
return o
}
return r !== t ? ut.style(e, n, r) : ut.css(e, n)
}, e, n, arguments.length > 1)
},
show: function() {
return x(this, !0)
},
hide: function() {
return x(this)
},
toggle: function(e) {
var t = "boolean" == typeof e;
return this.each(function() {
(t ? e : S(this)) ? ut(this).show(): ut(this).hide()
})
}
}), ut.extend({
cssHooks: {
opacity: {
get: function(e, t) {
if (t) {
var n = an(e, "opacity");
return "" === n ? "1" : n
}
}
}
},
cssNumber: {
columnCount: !0,
fillOpacity: !0,
fontWeight: !0,
lineHeight: !0,
opacity: !0,
orphans: !0,
widows: !0,
zIndex: !0,
zoom: !0
},
cssProps: {
"float": ut.support.cssFloat ? "cssFloat" : "styleFloat"
},
style: function(e, n, r, i) {
if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
var s, o, u, a = ut.camelCase(n),
f = e.style;
if (n = ut.cssProps[a] || (ut.cssProps[a] = E(f, a)), u = ut.cssHooks[n] || ut.cssHooks[a], r === t) return u && "get" in u && (s = u.get(e, !1, i)) !== t ? s : f[n];
if (o = typeof r, "string" === o && (s = yn.exec(r)) && (r = (s[1] + 1) * s[2] + parseFloat(ut.css(e, n)), o = "number"), !(null == r || "number" === o && isNaN(r) || ("number" !== o || ut.cssNumber[a] || (r += "px"), ut.support.clearCloneStyle || "" !== r || 0 !== n.indexOf("background") || (f[n] = "inherit"), u && "set" in u && (r = u.set(e, r, i)) === t))) try {
f[n] = r
} catch (l) {}
}
},
css: function(e, n, r, i) {
var s, o, u, a = ut.camelCase(n);
return n = ut.cssProps[a] || (ut.cssProps[a] = E(e.style, a)), u = ut.cssHooks[n] || ut.cssHooks[a], u && "get" in u && (s = u.get(e, !0, r)), s === t && (s = an(e, n, i)), "normal" === s && n in En && (s = En[n]), r ? (o = parseFloat(s), r === !0 || ut.isNumeric(o) ? o || 0 : s) : s
},
swap: function(e, t, n, r) {
var i, s, o = {};
for (s in t) o[s] = e.style[s], e.style[s] = t[s];
i = n.apply(e, r || []);
for (s in t) e.style[s] = o[s];
return i
}
}), e.getComputedStyle ? (fn = function(t) {
return e.getComputedStyle(t, null)
}, an = function(e, n, r) {
var i, s, o, u = r || fn(e),
a = u ? u.getPropertyValue(n) || u[n] : t,
f = e.style;
return u && ("" !== a || ut.contains(e.ownerDocument, e) || (a = ut.style(e, n)), gn.test(a) && vn.test(n) && (i = f.width, s = f.minWidth, o = f.maxWidth, f.minWidth = f.maxWidth = f.width = a, a = u.width, f.width = i, f.minWidth = s, f.maxWidth = o)), a
}) : $.documentElement.currentStyle && (fn = function(e) {
return e.currentStyle
}, an = function(e, n, r) {
var i, s, o, u = r || fn(e),
a = u ? u[n] : t,
f = e.style;
return null == a && f && f[n] && (a = f[n]), gn.test(a) && !pn.test(n) && (i = f.left, s = e.runtimeStyle, o = s && s.left, o && (s.left = e.currentStyle.left), f.left = "fontSize" === n ? "1em" : a, a = f.pixelLeft + "px", f.left = i, o && (s.left = o)), "" === a ? "auto" : a
}), ut.each(["height", "width"], function(e, n) {
ut.cssHooks[n] = {
get: function(e, r, i) {
return r ? 0 === e.offsetWidth && dn.test(ut.css(e, "display")) ? ut.swap(e, wn, function() {
return C(e, n, i)
}) : C(e, n, i) : t
},
set: function(e, t, r) {
var i = r && fn(e);
return T(e, t, r ? N(e, n, r, ut.support.boxSizing && "border-box" === ut.css(e, "boxSizing", !1, i), i) : 0)
}
}
}), ut.support.opacity || (ut.cssHooks.opacity = {
get: function(e, t) {
return hn.test((t && e.currentStyle ? e.currentStyle.filter : e.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : t ? "1" : ""
},
set: function(e, t) {
var n = e.style,
r = e.currentStyle,
i = ut.isNumeric(t) ? "alpha(opacity=" + 100 * t + ")" : "",
s = r && r.filter || n.filter || "";
n.zoom = 1, (t >= 1 || "" === t) && "" === ut.trim(s.replace(cn, "")) && n.removeAttribute && (n.removeAttribute("filter"), "" === t || r && !r.filter) || (n.filter = cn.test(s) ? s.replace(cn, i) : s + " " + i)
}
}), ut(function() {
ut.support.reliableMarginRight || (ut.cssHooks.marginRight = {
get: function(e, n) {
return n ? ut.swap(e, {
display: "inline-block"
}, an, [e, "marginRight"]) : t
}
}), !ut.support.pixelPosition && ut.fn.position && ut.each(["top", "left"], function(e, n) {
ut.cssHooks[n] = {
get: function(e, r) {
return r ? (r = an(e, n), gn.test(r) ? ut(e).position()[n] + "px" : r) : t
}
}
})
}), ut.expr && ut.expr.filters && (ut.expr.filters.hidden = function(e) {
return 0 === e.offsetWidth && 0 === e.offsetHeight || !ut.support.reliableHiddenOffsets && "none" === (e.style && e.style.display || ut.css(e, "display"))
}, ut.expr.filters.visible = function(e) {
return !ut.expr.filters.hidden(e)
}), ut.each({
margin: "",
padding: "",
border: "Width"
}, function(e, t) {
ut.cssHooks[e + t] = {
expand: function(n) {
for (var r = 0, i = {}, s = "string" == typeof n ? n.split(" ") : [n]; 4 > r; r++) i[e + Sn[r] + t] = s[r] || s[r - 2] || s[0];
return i
}
}, vn.test(e) || (ut.cssHooks[e + t].set = T)
});
var Tn = /%20/g,
Nn = /\[\]$/,
Cn = /\r?\n/g,
kn = /^(?:submit|button|image|reset)$/i,
Ln = /^(?:input|select|textarea|keygen)/i;
ut.fn.extend({
serialize: function() {
return ut.param(this.serializeArray())
},
serializeArray: function() {
return this.map(function() {
var e = ut.prop(this, "elements");
return e ? ut.makeArray(e) : this
}).filter(function() {
var e = this.type;
return this.name && !ut(this).is(":disabled") && Ln.test(this.nodeName) && !kn.test(e) && (this.checked || !Zt.test(e))
}).map(function(e, t) {
var n = ut(this).val();
return null == n ? null : ut.isArray(n) ? ut.map(n, function(e) {
return {
name: t.name,
value: e.replace(Cn, "\r\n")
}
}) : {
name: t.name,
value: n.replace(Cn, "\r\n")
}
}).get()
}
}), ut.param = function(e, n) {
var r, i = [],
s = function(e, t) {
t = ut.isFunction(t) ? t() : null == t ? "" : t, i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t)
};
if (n === t && (n = ut.ajaxSettings && ut.ajaxSettings.traditional), ut.isArray(e) || e.jquery && !ut.isPlainObject(e)) ut.each(e, function() {
s(this.name, this.value)
});
else
for (r in e) A(r, e[r], n, s);
return i.join("&").replace(Tn, "+")
};
var An, On, Mn = ut.now(),
_n = /\?/,
Dn = /#.*$/,
Pn = /([?&])_=[^&]*/,
Hn = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
Bn = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
jn = /^(?:GET|HEAD)$/,
Fn = /^\/\//,
In = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,
qn = ut.fn.load,
Rn = {},
Un = {},
zn = "*/".concat("*");
try {
On = J.href
} catch (Wn) {
On = $.createElement("a"), On.href = "", On = On.href
}
An = In.exec(On.toLowerCase()) || [], ut.fn.load = function(e, n, r) {
if ("string" != typeof e && qn) return qn.apply(this, arguments);
var i, s, o, u = this,
a = e.indexOf(" ");
return a >= 0 && (i = e.slice(a, e.length), e = e.slice(0, a)), ut.isFunction(n) ? (r = n, n = t) : n && "object" == typeof n && (s = "POST"), u.length > 0 && ut.ajax({
url: e,
type: s,
dataType: "html",
data: n
}).done(function(e) {
o = arguments, u.html(i ? ut("<div>").append(ut.parseHTML(e)).find(i) : e)
}).complete(r && function(e, t) {
u.each(r, o || [e.responseText, t, e])
}), this
}, ut.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) {
ut.fn[t] = function(e) {
return this.on(t, e)
}
}), ut.each(["get", "post"], function(e, n) {
ut[n] = function(e, r, i, s) {
return ut.isFunction(r) && (s = s || i, i = r, r = t), ut.ajax({
url: e,
type: n,
dataType: s,
data: r,
success: i
})
}
}), ut.extend({
active: 0,
lastModified: {},
etag: {},
ajaxSettings: {
url: On,
type: "GET",
isLocal: Bn.test(An[1]),
global: !0,
processData: !0,
async: !0,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
accepts: {
"*": zn,
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"
},
converters: {
"* text": e.String,
"text html": !0,
"text json": ut.parseJSON,
"text xml": ut.parseXML
},
flatOptions: {
url: !0,
context: !0
}
},
ajaxSetup: function(e, t) {
return t ? _(_(e, ut.ajaxSettings), t) : _(ut.ajaxSettings, e)
},
ajaxPrefilter: O(Rn),
ajaxTransport: O(Un),
ajax: function(e, n) {
function r(e, n, r, u) {
var f, c, y, b, E, x = n;
2 !== w && (w = 2, a && clearTimeout(a), i = t, o = u || "", S.readyState = e > 0 ? 4 : 0, r && (b = D(h, S, r)), e >= 200 && 300 > e || 304 === e ? (h.ifModified && (E = S.getResponseHeader("Last-Modified"), E && (ut.lastModified[s] = E), E = S.getResponseHeader("etag"), E && (ut.etag[s] = E)), 304 === e ? (f = !0, x = "notmodified") : (f = P(h, b), x = f.state, c = f.data, y = f.error, f = !y)) : (y = x, (e || !x) && (x = "error", 0 > e && (e = 0))), S.status = e, S.statusText = (n || x) + "", f ? v.resolveWith(p, [c, x, S]) : v.rejectWith(p, [S, x, y]), S.statusCode(g), g = t, l && d.trigger(f ? "ajaxSuccess" : "ajaxError", [S, h, f ? c : y]), m.fireWith(p, [S, x]), l && (d.trigger("ajaxComplete", [S, h]), --ut.active || ut.event.trigger("ajaxStop")))
}
"object" == typeof e && (n = e, e = t), n = n || {};
var i, s, o, u, a, f, l, c, h = ut.ajaxSetup({}, n),
p = h.context || h,
d = h.context && (p.nodeType || p.jquery) ? ut(p) : ut.event,
v = ut.Deferred(),
m = ut.Callbacks("once memory"),
g = h.statusCode || {},
y = {},
b = {},
w = 0,
E = "canceled",
S = {
readyState: 0,
getResponseHeader: function(e) {
var t;
if (2 === w) {
if (!u)
for (u = {}; t = Hn.exec(o);) u[t[1].toLowerCase()] = t[2];
t = u[e.toLowerCase()]
}
return null == t ? null : t
},
getAllResponseHeaders: function() {
return 2 === w ? o : null
},
setRequestHeader: function(e, t) {
var n = e.toLowerCase();
return w || (e = b[n] = b[n] || e, y[e] = t), this
},
overrideMimeType: function(e) {
return w || (h.mimeType = e), this
},
statusCode: function(e) {
var t;
if (e)
if (2 > w)
for (t in e) g[t] = [g[t], e[t]];
else S.always(e[S.status]);
return this
},
abort: function(e) {
var t = e || E;
return i && i.abort(t), r(0, t), this
}
};
if (v.promise(S).complete = m.add, S.success = S.done, S.error = S.fail, h.url = ((e || h.url || On) + "").replace(Dn, "").replace(Fn, An[1] + "//"), h.type = n.method || n.type || h.method || h.type, h.dataTypes = ut.trim(h.dataType || "*").toLowerCase().match(ft) || [""], null == h.crossDomain && (f = In.exec(h.url.toLowerCase()), h.crossDomain = !(!f || f[1] === An[1] && f[2] === An[2] && (f[3] || ("http:" === f[1] ? 80 : 443)) == (An[3] || ("http:" === An[1] ? 80 : 443)))), h.data && h.processData && "string" != typeof h.data && (h.data = ut.param(h.data, h.traditional)), M(Rn, h, n, S), 2 === w) return S;
l = h.global, l && 0 === ut.active++ && ut.event.trigger("ajaxStart"), h.type = h.type.toUpperCase(), h.hasContent = !jn.test(h.type), s = h.url, h.hasContent || (h.data && (s = h.url += (_n.test(s) ? "&" : "?") + h.data, delete h.data), h.cache === !1 && (h.url = Pn.test(s) ? s.replace(Pn, "$1_=" + Mn++) : s + (_n.test(s) ? "&" : "?") + "_=" + Mn++)), h.ifModified && (ut.lastModified[s] && S.setRequestHeader("If-Modified-Since", ut.lastModified[s]), ut.etag[s] && S.setRequestHeader("If-None-Match", ut.etag[s])), (h.data && h.hasContent && h.contentType !== !1 || n.contentType) && S.setRequestHeader("Content-Type", h.contentType), S.setRequestHeader("Accept", h.dataTypes[0] && h.accepts[h.dataTypes[0]] ? h.accepts[h.dataTypes[0]] + ("*" !== h.dataTypes[0] ? ", " + zn + "; q=0.01" : "") : h.accepts["*"]);
for (c in h.headers) S.setRequestHeader(c, h.headers[c]);
if (!h.beforeSend || h.beforeSend.call(p, S, h) !== !1 && 2 !== w) {
E = "abort";
for (c in {
success: 1,
error: 1,
complete: 1
}) S[c](h[c]);
if (i = M(Un, h, n, S)) {
S.readyState = 1, l && d.trigger("ajaxSend", [S, h]), h.async && h.timeout > 0 && (a = setTimeout(function() {
S.abort("timeout")
}, h.timeout));
try {
w = 1, i.send(y, r)
} catch (x) {
if (!(2 > w)) throw x;
r(-1, x)
}
} else r(-1, "No Transport");
return S
}
return S.abort()
},
getScript: function(e, n) {
return ut.get(e, t, n, "script")
},
getJSON: function(e, t, n) {
return ut.get(e, t, n, "json")
}
}), ut.ajaxSetup({
accepts: {
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
},
contents: {
script: /(?:java|ecma)script/
},
converters: {
"text script": function(e) {
return ut.globalEval(e), e
}
}
}), ut.ajaxPrefilter("script", function(e) {
e.cache === t && (e.cache = !1), e.crossDomain && (e.type = "GET", e.global = !1)
}), ut.ajaxTransport("script", function(e) {
if (e.crossDomain) {
var n, r = $.head || ut("head")[0] || $.documentElement;
return {
send: function(t, i) {
n = $.createElement("script"), n.async = !0, e.scriptCharset && (n.charset = e.scriptCharset), n.src = e.url, n.onload = n.onreadystatechange = function(e, t) {
(t || !n.readyState || /loaded|complete/.test(n.readyState)) && (n.onload = n.onreadystatechange = null, n.parentNode && n.parentNode.removeChild(n), n = null, t || i(200, "success"))
}, r.insertBefore(n, r.firstChild)
},
abort: function() {
n && n.onload(t, !0)
}
}
}
});
var Xn = [],
Vn = /(=)\?(?=&|$)|\?\?/;
ut.ajaxSetup({
jsonp: "callback",
jsonpCallback: function() {
var e = Xn.pop() || ut.expando + "_" + Mn++;
return this[e] = !0, e
}
}), ut.ajaxPrefilter("json jsonp", function(n, r, i) {
var s, o, u, a = n.jsonp !== !1 && (Vn.test(n.url) ? "url" : "string" == typeof n.data && !(n.contentType || "").indexOf("application/x-www-form-urlencoded") && Vn.test(n.data) && "data");
return a || "jsonp" === n.dataTypes[0] ? (s = n.jsonpCallback = ut.isFunction(n.jsonpCallback) ? n.jsonpCallback() : n.jsonpCallback, a ? n[a] = n[a].replace(Vn, "$1" + s) : n.jsonp !== !1 && (n.url += (_n.test(n.url) ? "&" : "?") + n.jsonp + "=" + s), n.converters["script json"] = function() {
return u || ut.error(s + " was not called"), u[0]
}, n.dataTypes[0] = "json", o = e[s], e[s] = function() {
u = arguments
}, i.always(function() {
e[s] = o, n[s] && (n.jsonpCallback = r.jsonpCallback, Xn.push(s)), u && ut.isFunction(o) && o(u[0]), u = o = t
}), "script") : t
});
var $n, Jn, Kn = 0,
Qn = e.ActiveXObject && function() {
var e;
for (e in $n) $n[e](t, !0)
};
ut.ajaxSettings.xhr = e.ActiveXObject ? function() {
return !this.isLocal && H() || B()
} : H, Jn = ut.ajaxSettings.xhr(), ut.support.cors = !!Jn && "withCredentials" in Jn, Jn = ut.support.ajax = !!Jn, Jn && ut.ajaxTransport(function(n) {
if (!n.crossDomain || ut.support.cors) {
var r;
return {
send: function(i, s) {
var o, u, a = n.xhr();
if (n.username ? a.open(n.type, n.url, n.async, n.username, n.password) : a.open(n.type, n.url, n.async), n.xhrFields)
for (u in n.xhrFields) a[u] = n.xhrFields[u];
n.mimeType && a.overrideMimeType && a.overrideMimeType(n.mimeType), n.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest");
try {
for (u in i) a.setRequestHeader(u, i[u])
} catch (f) {}
a.send(n.hasContent && n.data || null), r = function(e, i) {
var u, f, l, c, h;
try {
if (r && (i || 4 === a.readyState))
if (r = t, o && (a.onreadystatechange = ut.noop, Qn && delete $n[o]), i) 4 !== a.readyState && a.abort();
else {
c = {}, u = a.status, h = a.responseXML, l = a.getAllResponseHeaders(), h && h.documentElement && (c.xml = h), "string" == typeof a.responseText && (c.text = a.responseText);
try {
f = a.statusText
} catch (p) {
f = ""
}
u || !n.isLocal || n.crossDomain ? 1223 === u && (u = 204) : u = c.text ? 200 : 404
}
} catch (d) {
i || s(-1, d)
}
c && s(u, f, c, l)
}, n.async ? 4 === a.readyState ? setTimeout(r) : (o = ++Kn, Qn && ($n || ($n = {}, ut(e).unload(Qn)), $n[o] = r), a.onreadystatechange = r) : r()
},
abort: function() {
r && r(t, !0)
}
}
}
});
var Gn, Yn, Zn = /^(?:toggle|show|hide)$/,
er = RegExp("^(?:([+-])=|)(" + at + ")([a-z%]*)$", "i"),
tr = /queueHooks$/,
nr = [R],
rr = {
"*": [function(e, t) {
var n, r, i = this.createTween(e, t),
s = er.exec(t),
o = i.cur(),
u = +o || 0,
a = 1,
f = 20;
if (s) {
if (n = +s[2], r = s[3] || (ut.cssNumber[e] ? "" : "px"), "px" !== r && u) {
u = ut.css(i.elem, e, !0) || n || 1;
do a = a || ".5", u /= a, ut.style(i.elem, e, u + r); while (a !== (a = i.cur() / o) && 1 !== a && --f)
}
i.unit = r, i.start = u, i.end = s[1] ? u + (s[1] + 1) * n : n
}
return i
}]
};
ut.Animation = ut.extend(I, {
tweener: function(e, t) {
ut.isFunction(e) ? (t = e, e = ["*"]) : e = e.split(" ");
for (var n, r = 0, i = e.length; i > r; r++) n = e[r], rr[n] = rr[n] || [], rr[n].unshift(t)
},
prefilter: function(e, t) {
t ? nr.unshift(e) : nr.push(e)
}
}), ut.Tween = U, U.prototype = {
constructor: U,
init: function(e, t, n, r, i, s) {
this.elem = e, this.prop = n, this.easing = i || "swing", this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = s || (ut.cssNumber[n] ? "" : "px")
},
cur: function() {
var e = U.propHooks[this.prop];
return e && e.get ? e.get(this) : U.propHooks._default.get(this)
},
run: function(e) {
var t, n = U.propHooks[this.prop];
return this.pos = t = this.options.duration ? ut.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : U.propHooks._default.set(this), this
}
}, U.prototype.init.prototype = U.prototype, U.propHooks = {
_default: {
get: function(e) {
var t;
return null == e.elem[e.prop] || e.elem.style && null != e.elem.style[e.prop] ? (t = ut.css(e.elem, e.prop, "auto"), t && "auto" !== t ? t : 0) : e.elem[e.prop]
},
set: function(e) {
ut.fx.step[e.prop] ? ut.fx.step[e.prop](e) : e.elem.style && (null != e.elem.style[ut.cssProps[e.prop]] || ut.cssHooks[e.prop]) ? ut.style(e.elem, e.prop, e.now + e.unit) : e.elem[e.prop] = e.now
}
}
}, U.propHooks.scrollTop = U.propHooks.scrollLeft = {
set: function(e) {
e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
}
}, ut.each(["toggle", "show", "hide"], function(e, t) {
var n = ut.fn[t];
ut.fn[t] = function(e, r, i) {
return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(z(t, !0), e, r, i)
}
}), ut.fn.extend({
fadeTo: function(e, t, n, r) {
return this.filter(S).css("opacity", 0).show().end().animate({
opacity: t
}, e, n, r)
},
animate: function(e, t, n, r) {
var i = ut.isEmptyObject(e),
s = ut.speed(t, n, r),
o = function() {
var t = I(this, ut.extend({}, e), s);
o.finish = function() {
t.stop(!0)
}, (i || ut._data(this, "finish")) && t.stop(!0)
};
return o.finish = o, i || s.queue === !1 ? this.each(o) : this.queue(s.queue, o)
},
stop: function(e, n, r) {
var i = function(e) {
var t = e.stop;
delete e.stop, t(r)
};
return "string" != typeof e && (r = n, n = e, e = t), n && e !== !1 && this.queue(e || "fx", []), this.each(function() {
var t = !0,
n = null != e && e + "queueHooks",
s = ut.timers,
o = ut._data(this);
if (n) o[n] && o[n].stop && i(o[n]);
else
for (n in o) o[n] && o[n].stop && tr.test(n) && i(o[n]);
for (n = s.length; n--;) s[n].elem !== this || null != e && s[n].queue !== e || (s[n].anim.stop(r), t = !1, s.splice(n, 1));
(t || !r) && ut.dequeue(this, e)
})
},
finish: function(e) {
return e !== !1 && (e = e || "fx"), this.each(function() {
var t, n = ut._data(this),
r = n[e + "queue"],
i = n[e + "queueHooks"],
s = ut.timers,
o = r ? r.length : 0;
for (n.finish = !0, ut.queue(this, e, []), i && i.cur && i.cur.finish && i.cur.finish.call(this), t = s.length; t--;) s[t].elem === this && s[t].queue === e && (s[t].anim.stop(!0), s.splice(t, 1));
for (t = 0; o > t; t++) r[t] && r[t].finish && r[t].finish.call(this);
delete n.finish
})
}
}), ut.each({
slideDown: z("show"),
slideUp: z("hide"),
slideToggle: z("toggle"),
fadeIn: {
opacity: "show"
},
fadeOut: {
opacity: "hide"
},
fadeToggle: {
opacity: "toggle"
}
}, function(e, t) {
ut.fn[e] = function(e, n, r) {
return this.animate(t, e, n, r)
}
}), ut.speed = function(e, t, n) {
var r = e && "object" == typeof e ? ut.extend({}, e) : {
complete: n || !n && t || ut.isFunction(e) && e,
duration: e,
easing: n && t || t && !ut.isFunction(t) && t
};
return r.duration = ut.fx.off ? 0 : "number" == typeof r.duration ? r.duration : r.duration in ut.fx.speeds ? ut.fx.speeds[r.duration] : ut.fx.speeds._default, (null == r.queue || r.queue === !0) && (r.queue = "fx"), r.old = r.complete, r.complete = function() {
ut.isFunction(r.old) && r.old.call(this), r.queue && ut.dequeue(this, r.queue)
}, r
}, ut.easing = {
linear: function(e) {
return e
},
swing: function(e) {
return .5 - Math.cos(e * Math.PI) / 2
}
}, ut.timers = [], ut.fx = U.prototype.init, ut.fx.tick = function() {
var e, n = ut.timers,
r = 0;
for (Gn = ut.now(); n.length > r; r++) e = n[r], e() || n[r] !== e || n.splice(r--, 1);
n.length || ut.fx.stop(), Gn = t
}, ut.fx.timer = function(e) {
e() && ut.timers.push(e) && ut.fx.start()
}, ut.fx.interval = 13, ut.fx.start = function() {
Yn || (Yn = setInterval(ut.fx.tick, ut.fx.interval))
}, ut.fx.stop = function() {
clearInterval(Yn), Yn = null
}, ut.fx.speeds = {
slow: 600,
fast: 200,
_default: 400
}, ut.fx.step = {}, ut.expr && ut.expr.filters && (ut.expr.filters.animated = function(e) {
return ut.grep(ut.timers, function(t) {
return e === t.elem
}).length
}), ut.fn.offset = function(e) {
if (arguments.length) return e === t ? this : this.each(function(t) {
ut.offset.setOffset(this, e, t)
});
var n, r, i = {
top: 0,
left: 0
},
s = this[0],
o = s && s.ownerDocument;
if (o) return n = o.documentElement, ut.contains(n, s) ? (s.getBoundingClientRect !== t && (i = s.getBoundingClientRect()), r = W(o), {
top: i.top + (r.pageYOffset || n.scrollTop) - (n.clientTop || 0),
left: i.left + (r.pageXOffset || n.scrollLeft) - (n.clientLeft || 0)
}) : i
}, ut.offset = {
setOffset: function(e, t, n) {
var r = ut.css(e, "position");
"static" === r && (e.style.position = "relative");
var i, s, o = ut(e),
u = o.offset(),
a = ut.css(e, "top"),
f = ut.css(e, "left"),
l = ("absolute" === r || "fixed" === r) && ut.inArray("auto", [a, f]) > -1,
c = {},
h = {};
l ? (h = o.position(), i = h.top, s = h.left) : (i = parseFloat(a) || 0, s = parseFloat(f) || 0), ut.isFunction(t) && (t = t.call(e, n, u)), null != t.top && (c.top = t.top - u.top + i), null != t.left && (c.left = t.left - u.left + s), "using" in t ? t.using.call(e, c) : o.css(c)
}
}, ut.fn.extend({
position: function() {
if (this[0]) {
var e, t, n = {
top: 0,
left: 0
},
r = this[0];
return "fixed" === ut.css(r, "position") ? t = r.getBoundingClientRect() : (e = this.offsetParent(), t = this.offset(), ut.nodeName(e[0], "html") || (n = e.offset()), n.top += ut.css(e[0], "borderTopWidth", !0), n.left += ut.css(e[0], "borderLeftWidth", !0)), {
top: t.top - n.top - ut.css(r, "marginTop", !0),
left: t.left - n.left - ut.css(r, "marginLeft", !0)
}
}
},
offsetParent: function() {
return this.map(function() {
for (var e = this.offsetParent || $.documentElement; e && !ut.nodeName(e, "html") && "static" === ut.css(e, "position");) e = e.offsetParent;
return e || $.documentElement
})
}
}), ut.each({
scrollLeft: "pageXOffset",
scrollTop: "pageYOffset"
}, function(e, n) {
var r = /Y/.test(n);
ut.fn[e] = function(i) {
return ut.access(this, function(e, i, s) {
var o = W(e);
return s === t ? o ? n in o ? o[n] : o.document.documentElement[i] : e[i] : (o ? o.scrollTo(r ? ut(o).scrollLeft() : s, r ? s : ut(o).scrollTop()) : e[i] = s, t)
}, e, i, arguments.length, null)
}
}), ut.each({
Height: "height",
Width: "width"
}, function(e, n) {
ut.each({
padding: "inner" + e,
content: n,
"": "outer" + e
}, function(r, i) {
ut.fn[i] = function(i, s) {
var o = arguments.length && (r || "boolean" != typeof i),
u = r || (i === !0 || s === !0 ? "margin" : "border");
return ut.access(this, function(n, r, i) {
var s;
return ut.isWindow(n) ? n.document.documentElement["client" + e] : 9 === n.nodeType ? (s = n.documentElement, Math.max(n.body["scroll" + e], s["scroll" + e], n.body["offset" + e], s["offset" + e], s["client" + e])) : i === t ? ut.css(n, r, u) : ut.style(n, r, i, u)
}, n, o ? i : t, o, null)
}
})
}), e.jQuery = e.$ = ut, "function" == typeof define && define.amd && define.amd.jQuery && define("jquery", [], function() {
return ut
})
})(window),
function() {
var e = this,
t = e._,
n = {},
r = Array.prototype,
i = Object.prototype,
s = Function.prototype,
o = r.push,
u = r.slice,
a = r.concat,
f = i.toString,
l = i.hasOwnProperty,
c = r.forEach,
h = r.map,
p = r.reduce,
d = r.reduceRight,
v = r.filter,
m = r.every,
g = r.some,
y = r.indexOf,
b = r.lastIndexOf,
w = Array.isArray,
E = Object.keys,
S = s.bind,
x = function(e) {
if (e instanceof x) return e;
if (!(this instanceof x)) return new x(e);
this._wrapped = e
};
typeof exports != "undefined" ? (typeof module != "undefined" && module.exports && (exports = module.exports = x), exports._ = x) : e._ = x, x.VERSION = "1.4.4";
var T = x.each = x.forEach = function(e, t, r) {
if (e == null) return;
if (c && e.forEach === c) e.forEach(t, r);
else if (e.length === +e.length) {
for (var i = 0, s = e.length; i < s; i++)
if (t.call(r, e[i], i, e) === n) return
} else
for (var o in e)
if (x.has(e, o) && t.call(r, e[o], o, e) === n) return
};
x.map = x.collect = function(e, t, n) {
var r = [];
return e == null ? r : h && e.map === h ? e.map(t, n) : (T(e, function(e, i, s) {
r[r.length] = t.call(n, e, i, s)
}), r)
};
var N = "Reduce of empty array with no initial value";
x.reduce = x.foldl = x.inject = function(e, t, n, r) {
var i = arguments.length > 2;
e == null && (e = []);
if (p && e.reduce === p) return r && (t = x.bind(t, r)), i ? e.reduce(t, n) : e.reduce(t);
T(e, function(e, s, o) {
i ? n = t.call(r, n, e, s, o) : (n = e, i = !0)
});
if (!i) throw new TypeError(N);
return n
}, x.reduceRight = x.foldr = function(e, t, n, r) {
var i = arguments.length > 2;
e == null && (e = []);
if (d && e.reduceRight === d) return r && (t = x.bind(t, r)), i ? e.reduceRight(t, n) : e.reduceRight(t);
var s = e.length;
if (s !== +s) {
var o = x.keys(e);
s = o.length
}
T(e, function(u, a, f) {
a = o ? o[--s] : --s, i ? n = t.call(r, n, e[a], a, f) : (n = e[a], i = !0)
});
if (!i) throw new TypeError(N);
return n
}, x.find = x.detect = function(e, t, n) {
var r;
return C(e, function(e, i, s) {
if (t.call(n, e, i, s)) return r = e, !0
}), r
}, x.filter = x.select = function(e, t, n) {
var r = [];
return e == null ? r : v && e.filter === v ? e.filter(t, n) : (T(e, function(e, i, s) {
t.call(n, e, i, s) && (r[r.length] = e)
}), r)
}, x.reject = function(e, t, n) {
return x.filter(e, function(e, r, i) {
return !t.call(n, e, r, i)
}, n)
}, x.every = x.all = function(e, t, r) {
t || (t = x.identity);
var i = !0;
return e == null ? i : m && e.every === m ? e.every(t, r) : (T(e, function(e, s, o) {
if (!(i = i && t.call(r, e, s, o))) return n
}), !!i)
};
var C = x.some = x.any = function(e, t, r) {
t || (t = x.identity);
var i = !1;
return e == null ? i : g && e.some === g ? e.some(t, r) : (T(e, function(e, s, o) {
if (i || (i = t.call(r, e, s, o))) return n
}), !!i)
};
x.contains = x.include = function(e, t) {
return e == null ? !1 : y && e.indexOf === y ? e.indexOf(t) != -1 : C(e, function(e) {
return e === t
})
}, x.invoke = function(e, t) {
var n = u.call(arguments, 2),
r = x.isFunction(t);
return x.map(e, function(e) {
return (r ? t : e[t]).apply(e, n)
})
}, x.pluck = function(e, t) {
return x.map(e, function(e) {
return e[t]
})
}, x.where = function(e, t, n) {
return x.isEmpty(t) ? n ? null : [] : x[n ? "find" : "filter"](e, function(e) {
for (var n in t)
if (t[n] !== e[n]) return !1;
return !0
})
}, x.findWhere = function(e, t) {
return x.where(e, t, !0)
}, x.max = function(e, t, n) {
if (!t && x.isArray(e) && e[0] === +e[0] && e.length < 65535) return Math.max.apply(Math, e);
if (!t && x.isEmpty(e)) return -Infinity;
var r = {
computed: -Infinity,
value: -Infinity
};
return T(e, function(e, i, s) {
var o = t ? t.call(n, e, i, s) : e;
o >= r.computed && (r = {
value: e,
computed: o
})
}), r.value
}, x.min = function(e, t, n) {
if (!t && x.isArray(e) && e[0] === +e[0] && e.length < 65535) return Math.min.apply(Math, e);
if (!t && x.isEmpty(e)) return Infinity;
var r = {
computed: Infinity,
value: Infinity
};
return T(e, function(e, i, s) {
var o = t ? t.call(n, e, i, s) : e;
o < r.computed && (r = {
value: e,
computed: o
})
}), r.value
}, x.shuffle = function(e) {
var t, n = 0,
r = [];
return T(e, function(e) {
t = x.random(n++), r[n - 1] = r[t], r[t] = e
}), r
};
var k = function(e) {
return x.isFunction(e) ? e : function(t) {
return t[e]
}
};
x.sortBy = function(e, t, n) {
var r = k(t);
return x.pluck(x.map(e, function(e, t, i) {
return {
value: e,
index: t,
criteria: r.call(n, e, t, i)
}
}).sort(function(e, t) {
var n = e.criteria,
r = t.criteria;
if (n !== r) {
if (n > r || n === void 0) return 1;
if (n < r || r === void 0) return -1
}
return e.index < t.index ? -1 : 1
}), "value")
};
var L = function(e, t, n, r) {
var i = {},
s = k(t || x.identity);
return T(e, function(t, o) {
var u = s.call(n, t, o, e);
r(i, u, t)
}), i
};
x.groupBy = function(e, t, n) {
return L(e, t, n, function(e, t, n) {
(x.has(e, t) ? e[t] : e[t] = []).push(n)
})
}, x.countBy = function(e, t, n) {
return L(e, t, n, function(e, t) {
x.has(e, t) || (e[t] = 0), e[t]++
})
}, x.sortedIndex = function(e, t, n, r) {
n = n == null ? x.identity : k(n);
var i = n.call(r, t),
s = 0,
o = e.length;
while (s < o) {
var u = s + o >>> 1;
n.call(r, e[u]) < i ? s = u + 1 : o = u
}
return s
}, x.toArray = function(e) {
return e ? x.isArray(e) ? u.call(e) : e.length === +e.length ? x.map(e, x.identity) : x.values(e) : []
}, x.size = function(e) {
return e == null ? 0 : e.length === +e.length ? e.length : x.keys(e).length
}, x.first = x.head = x.take = function(e, t, n) {
return e == null ? void 0 : t != null && !n ? u.call(e, 0, t) : e[0]
}, x.initial = function(e, t, n) {
return u.call(e, 0, e.length - (t == null || n ? 1 : t))
}, x.last = function(e, t, n) {
return e == null ? void 0 : t != null && !n ? u.call(e, Math.max(e.length - t, 0)) : e[e.length - 1]
}, x.rest = x.tail = x.drop = function(e, t, n) {
return u.call(e, t == null || n ? 1 : t)
}, x.compact = function(e) {
return x.filter(e, x.identity)
};
var A = function(e, t, n) {
return T(e, function(e) {
x.isArray(e) ? t ? o.apply(n, e) : A(e, t, n) : n.push(e)
}), n
};
x.flatten = function(e, t) {
return A(e, t, [])
}, x.without = function(e) {
return x.difference(e, u.call(arguments, 1))
}, x.uniq = x.unique = function(e, t, n, r) {
x.isFunction(t) && (r = n, n = t, t = !1);
var i = n ? x.map(e, n, r) : e,
s = [],
o = [];
return T(i, function(n, r) {
if (t ? !r || o[o.length - 1] !== n : !x.contains(o, n)) o.push(n), s.push(e[r])
}), s
}, x.union = function() {
return x.uniq(a.apply(r, arguments))
}, x.intersection = function(e) {
var t = u.call(arguments, 1);
return x.filter(x.uniq(e), function(e) {
return x.every(t, function(t) {
return x.indexOf(t, e) >= 0
})
})
}, x.difference = function(e) {
var t = a.apply(r, u.call(arguments, 1));
return x.filter(e, function(e) {
return !x.contains(t, e)
})
}, x.zip = function() {
var e = u.call(arguments),
t = x.max(x.pluck(e, "length")),
n = new Array(t);
for (var r = 0; r < t; r++) n[r] = x.pluck(e, "" + r);
return n
}, x.object = function(e, t) {
if (e == null) return {};
var n = {};
for (var r = 0, i = e.length; r < i; r++) t ? n[e[r]] = t[r] : n[e[r][0]] = e[r][1];
return n
}, x.indexOf = function(e, t, n) {
if (e == null) return -1;
var r = 0,
i = e.length;
if (n) {
if (typeof n != "number") return r = x.sortedIndex(e, t), e[r] === t ? r : -1;
r = n < 0 ? Math.max(0, i + n) : n
}
if (y && e.indexOf === y) return e.indexOf(t, n);
for (; r < i; r++)
if (e[r] === t) return r;
return -1
}, x.lastIndexOf = function(e, t, n) {
if (e == null) return -1;
var r = n != null;
if (b && e.lastIndexOf === b) return r ? e.lastIndexOf(t, n) : e.lastIndexOf(t);
var i = r ? n : e.length;
while (i--)
if (e[i] === t) return i;
return -1
}, x.range = function(e, t, n) {
arguments.length <= 1 && (t = e || 0, e = 0), n = arguments[2] || 1;
var r = Math.max(Math.ceil((t - e) / n), 0),
i = 0,
s = new Array(r);
while (i < r) s[i++] = e, e += n;
return s
}, x.bind = function(e, t) {
if (e.bind === S && S) return S.apply(e, u.call(arguments, 1));
var n = u.call(arguments, 2);
return function() {
return e.apply(t, n.concat(u.call(arguments)))
}
}, x.partial = function(e) {
var t = u.call(arguments, 1);
return function() {
return e.apply(this, t.concat(u.call(arguments)))
}
}, x.bindAll = function(e) {
var t = u.call(arguments, 1);
return t.length === 0 && (t = x.functions(e)), T(t, function(t) {
e[t] = x.bind(e[t], e)
}), e
}, x.memoize = function(e, t) {
var n = {};
return t || (t = x.identity),
function() {
var r = t.apply(this, arguments);
return x.has(n, r) ? n[r] : n[r] = e.apply(this, arguments)
}
}, x.delay = function(e, t) {
var n = u.call(arguments, 2);
return setTimeout(function() {
return e.apply(null, n)
}, t)
}, x.defer = function(e) {
return x.delay.apply(x, [e, 1].concat(u.call(arguments, 1)))
}, x.throttle = function(e, t) {
var n, r, i, s, o = 0,
u = function() {
o = new Date, i = null, s = e.apply(n, r)
};
return function() {
var a = new Date,
f = t - (a - o);
return n = this, r = arguments, f <= 0 ? (clearTimeout(i), i = null, o = a, s = e.apply(n, r)) : i || (i = setTimeout(u, f)), s
}
}, x.debounce = function(e, t, n) {
var r, i;
return function() {
var s = this,
o = arguments,
u = function() {
r = null, n || (i = e.apply(s, o))
},
a = n && !r;
return clearTimeout(r), r = setTimeout(u, t), a && (i = e.apply(s, o)), i
}
}, x.once = function(e) {
var t = !1,
n;
return function() {
return t ? n : (t = !0, n = e.apply(this, arguments), e = null, n)
}
}, x.wrap = function(e, t) {
return function() {
var n = [e];
return o.apply(n, arguments), t.apply(this, n)
}
}, x.compose = function() {
var e = arguments;
return function() {
var t = arguments;
for (var n = e.length - 1; n >= 0; n--) t = [e[n].apply(this, t)];
return t[0]
}
}, x.after = function(e, t) {
return e <= 0 ? t() : function() {
if (--e < 1) return t.apply(this, arguments)
}
}, x.keys = E || function(e) {
if (e !== Object(e)) throw new TypeError("Invalid object");
var t = [];
for (var n in e) x.has(e, n) && (t[t.length] = n);
return t
}, x.values = function(e) {
var t = [];
for (var n in e) x.has(e, n) && t.push(e[n]);
return t
}, x.pairs = function(e) {
var t = [];
for (var n in e) x.has(e, n) && t.push([n, e[n]]);
return t
}, x.invert = function(e) {
var t = {};
for (var n in e) x.has(e, n) && (t[e[n]] = n);
return t
}, x.functions = x.methods = function(e) {
var t = [];
for (var n in e) x.isFunction(e[n]) && t.push(n);
return t.sort()
}, x.extend = function(e) {
return T(u.call(arguments, 1), function(t) {
if (t)
for (var n in t) e[n] = t[n]
}), e
}, x.pick = function(e) {
var t = {},
n = a.apply(r, u.call(arguments, 1));
return T(n, function(n) {
n in e && (t[n] = e[n])
}), t
}, x.omit = function(e) {
var t = {},
n = a.apply(r, u.call(arguments, 1));
for (var i in e) x.contains(n, i) || (t[i] = e[i]);
return t
}, x.defaults = function(e) {
return T(u.call(arguments, 1), function(t) {
if (t)
for (var n in t) e[n] == null && (e[n] = t[n])
}), e
}, x.clone = function(e) {
return x.isObject(e) ? x.isArray(e) ? e.slice() : x.extend({}, e) : e
}, x.tap = function(e, t) {
return t(e), e
};
var O = function(e, t, n, r) {
if (e === t) return e !== 0 || 1 / e == 1 / t;
if (e == null || t == null) return e === t;
e instanceof x && (e = e._wrapped), t instanceof x && (t = t._wrapped);
var i = f.call(e);
if (i != f.call(t)) return !1;
switch (i) {
case "[object String]":
return e == String(t);
case "[object Number]":
return e != +e ? t != +t : e == 0 ? 1 / e == 1 / t : e == +t;
case "[object Date]":
case "[object Boolean]":
return +e == +t;
case "[object RegExp]":
return e.source == t.source && e.global == t.global && e.multiline == t.multiline && e.ignoreCase == t.ignoreCase
}
if (typeof e != "object" || typeof t != "object") return !1;
var s = n.length;
while (s--)
if (n[s] == e) return r[s] == t;
n.push(e), r.push(t);
var o = 0,
u = !0;
if (i == "[object Array]") {
o = e.length, u = o == t.length;
if (u)
while (o--)
if (!(u = O(e[o], t[o], n, r))) break
} else {
var a = e.constructor,
l = t.constructor;
if (a !== l && !(x.isFunction(a) && a instanceof a && x.isFunction(l) && l instanceof l)) return !1;
for (var c in e)
if (x.has(e, c)) {
o++;
if (!(u = x.has(t, c) && O(e[c], t[c], n, r))) break
}
if (u) {
for (c in t)
if (x.has(t, c) && !(o--)) break;
u = !o
}
}
return n.pop(), r.pop(), u
};
x.isEqual = function(e, t) {
return O(e, t, [], [])
}, x.isEmpty = function(e) {
if (e == null) return !0;
if (x.isArray(e) || x.isString(e)) return e.length === 0;
for (var t in e)
if (x.has(e, t)) return !1;
return !0
}, x.isElement = function(e) {
return !!e && e.nodeType === 1
}, x.isArray = w || function(e) {
return f.call(e) == "[object Array]"
}, x.isObject = function(e) {
return e === Object(e)
}, T(["Arguments", "Function", "String", "Number", "Date", "RegExp"], function(e) {
x["is" + e] = function(t) {
return f.call(t) == "[object " + e + "]"
}
}), x.isArguments(arguments) || (x.isArguments = function(e) {
return !!e && !!x.has(e, "callee")
}), typeof /./ != "function" && (x.isFunction = function(e) {
return typeof e == "function"
}), x.isFinite = function(e) {
return isFinite(e) && !isNaN(parseFloat(e))
}, x.isNaN = function(e) {
return x.isNumber(e) && e != +e
}, x.isBoolean = function(e) {
return e === !0 || e === !1 || f.call(e) == "[object Boolean]"
}, x.isNull = function(e) {
return e === null
}, x.isUndefined = function(e) {
return e === void 0
}, x.has = function(e, t) {
return l.call(e, t)
}, x.noConflict = function() {
return e._ = t, this
}, x.identity = function(e) {
return e
}, x.times = function(e, t, n) {
var r = Array(e);
for (var i = 0; i < e; i++) r[i] = t.call(n, i);
return r
}, x.random = function(e, t) {
return t == null && (t = e, e = 0), e + Math.floor(Math.random() * (t - e + 1))
};
var M = {
escape: {
"&": "&amp;",
"<": "&lt;",
">": "&gt;",
'"': "&quot;",
"'": "&#x27;",
"/": "&#x2F;"
}
};
M.unescape = x.invert(M.escape);
var _ = {
escape: new RegExp("[" + x.keys(M.escape).join("") + "]", "g"),
unescape: new RegExp("(" + x.keys(M.unescape).join("|") + ")", "g")
};
x.each(["escape", "unescape"], function(e) {
x[e] = function(t) {
return t == null ? "" : ("" + t).replace(_[e], function(t) {
return M[e][t]
})
}
}), x.result = function(e, t) {
if (e == null) return null;
var n = e[t];
return x.isFunction(n) ? n.call(e) : n
}, x.mixin = function(e) {
T(x.functions(e), function(t) {
var n = x[t] = e[t];
x.prototype[t] = function() {
var e = [this._wrapped];
return o.apply(e, arguments), j.call(this, n.apply(x, e))
}
})
};
var D = 0;
x.uniqueId = function(e) {
var t = ++D + "";
return e ? e + t : t
}, x.templateSettings = {
evaluate: /<%([\s\S]+?)%>/g,
interpolate: /<%=([\s\S]+?)%>/g,
escape: /<%-([\s\S]+?)%>/g
};
var P = /(.)^/,
H = {
"'": "'",
"\\": "\\",
"\r": "r",
"\n": "n",
" ": "t",
"\u2028": "u2028",
"\u2029": "u2029"
},
B = /\\|'|\r|\n|\t|\u2028|\u2029/g;
x.template = function(e, t, n) {
var r;
n = x.defaults({}, n, x.templateSettings);
var i = new RegExp([(n.escape || P).source, (n.interpolate || P).source, (n.evaluate || P).source].join("|") + "|$", "g"),
s = 0,
o = "__p+='";
e.replace(i, function(t, n, r, i, u) {
return o += e.slice(s, u).replace(B, function(e) {
return "\\" + H[e]
}), n && (o += "'+\n((__t=(" + n + "))==null?'':_.escape(__t))+\n'"), r && (o += "'+\n((__t=(" + r + "))==null?'':__t)+\n'"), i && (o += "';\n" + i + "\n__p+='"), s = u + t.length, t
}), o += "';\n", n.variable || (o = "with(obj||{}){\n" + o + "}\n"), o = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + o + "return __p;\n";
try {
r = new Function(n.variable || "obj", "_", o)
} catch (u) {
throw u.source = o, u
}
if (t) return r(t, x);
var a = function(e) {
return r.call(this, e, x)
};
return a.source = "function(" + (n.variable || "obj") + "){\n" + o + "}", a
}, x.chain = function(e) {
return x(e).chain()
};
var j = function(e) {
return this._chain ? x(e).chain() : e
};
x.mixin(x), T(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function(e) {
var t = r[e];
x.prototype[e] = function() {
var n = this._wrapped;
return t.apply(n, arguments), (e == "shift" || e == "splice") && n.length === 0 && delete n[0], j.call(this, n)
}
}), T(["concat", "join", "slice"], function(e) {
var t = r[e];
x.prototype[e] = function() {
return j.call(this, t.apply(this._wrapped, arguments))
}
}), x.extend(x.prototype, {
chain: function() {
return this._chain = !0, this
},
value: function() {
return this._wrapped
}
})
}.call(this), define("underscore", function(e) {
return function() {
var t, n;
return t || e._
}
}(this)),
function() {
var e = this,
t = e.Backbone,
n = Array.prototype.slice,
r = Array.prototype.splice,
i;
typeof exports != "undefined" ? i = exports : i = e.Backbone = {}, i.VERSION = "0.9.2";
var s = e._;
!s && typeof require != "undefined" && (s = require("underscore"));
var o = e.jQuery || e.Zepto || e.ender;
i.setDomLibrary = function(e) {
o = e
}, i.noConflict = function() {
return e.Backbone = t, this
}, i.emulateHTTP = !1, i.emulateJSON = !1;
var u = /\s+/,
a = i.Events = {
on: function(e, t, n) {
var r, i, s, o, a;
if (!t) return this;
e = e.split(u), r = this._callbacks || (this._callbacks = {});
while (i = e.shift()) a = r[i], s = a ? a.tail : {}, s.next = o = {}, s.context = n, s.callback = t, r[i] = {
tail: o,
next: a ? a.next : s
};
return this
},
off: function(e, t, n) {
var r, i, o, a, f, l;
if (!(i = this._callbacks)) return;
if (!(e || t || n)) return delete this._callbacks, this;
e = e ? e.split(u) : s.keys(i);
while (r = e.shift()) {
o = i[r], delete i[r];
if (!o || !t && !n) continue;
a = o.tail;
while ((o = o.next) !== a) f = o.callback, l = o.context, (t && f !== t || n && l !== n) && this.on(r, f, l)
}
return this
},
trigger: function(e) {
var t, r, i, s, o, a, f;
if (!(i = this._callbacks)) return this;
a = i.all, e = e.split(u), f = n.call(arguments, 1);
while (t = e.shift()) {
if (r = i[t]) {
s = r.tail;
while ((r = r.next) !== s) r.callback.apply(r.context || this, f)
}
if (r = a) {
s = r.tail, o = [t].concat(f);
while ((r = r.next) !== s) r.callback.apply(r.context || this, o)
}
}
return this
}
};
a.bind = a.on, a.unbind = a.off;
var f = i.Model = function(e, t) {
var n;
e || (e = {}), t && t.parse && (e = this.parse(e));
if (n = C(this, "defaults")) e = s.extend({}, n, e);
t && t.collection && (this.collection = t.collection), this.attributes = {}, this._escapedAttributes = {}, this.cid = s.uniqueId("c"), this.changed = {}, this._silent = {}, this._pending = {}, this.set(e, {
silent: !0
}), this.changed = {}, this._silent = {}, this._pending = {}, this._previousAttributes = s.clone(this.attributes), this.initialize.apply(this, arguments)
};
s.extend(f.prototype, a, {
changed: null,
_silent: null,
_pending: null,
idAttribute: "id",
initialize: function() {},
toJSON: function(e) {
return s.clone(this.attributes)
},
get: function(e) {
return this.attributes[e]
},
escape: function(e) {
var t;
if (t = this._escapedAttributes[e]) return t;
var n = this.get(e);
return this._escapedAttributes[e] = s.escape(n == null ? "" : "" + n)
},
has: function(e) {
return this.get(e) != null
},
set: function(e, t, n) {
var r, i, o;
s.isObject(e) || e == null ? (r = e, n = t) : (r = {}, r[e] = t), n || (n = {});
if (!r) return this;
r instanceof f && (r = r.attributes);
if (n.unset)
for (i in r) r[i] = void 0;
if (!this._validate(r, n)) return !1;
this.idAttribute in r && (this.id = r[this.idAttribute]);
var u = n.changes = {},
a = this.attributes,
l = this._escapedAttributes,
c = this._previousAttributes || {};
for (i in r) {
o = r[i];
if (!s.isEqual(a[i], o) || n.unset && s.has(a, i)) delete l[i], (n.silent ? this._silent : u)[i] = !0;
n.unset ? delete a[i] : a[i] = o, !s.isEqual(c[i], o) || s.has(a, i) != s.has(c, i) ? (this.changed[i] = o, n.silent || (this._pending[i] = !0)) : (delete this.changed[i], delete this._pending[i])
}
return n.silent || this.change(n), this
},
unset: function(e, t) {
return (t || (t = {})).unset = !0, this.set(e, null, t)
},
clear: function(e) {
return (e || (e = {})).unset = !0, this.set(s.clone(this.attributes), e)
},
fetch: function(e) {
e = e ? s.clone(e) : {};
var t = this,
n = e.success;
return e.success = function(r, i, s) {
if (!t.set(t.parse(r, s), e)) return !1;
n && n(t, r)
}, e.error = i.wrapError(e.error, t, e), (this.sync || i.sync).call(this, "read", this, e)
},
save: function(e, t, n) {
var r, o;
s.isObject(e) || e == null ? (r = e, n = t) : (r = {}, r[e] = t), n = n ? s.clone(n) : {};
if (n.wait) {
if (!this._validate(r, n)) return !1;
o = s.clone(this.attributes)
}
var u = s.extend({}, n, {
silent: !0
});
if (r && !this.set(r, n.wait ? u : n)) return !1;
var a = this,
f = n.success;
n.success = function(e, t, i) {
var o = a.parse(e, i);
n.wait && (delete n.wait, o = s.extend(r || {}, o));
if (!a.set(o, n)) return !1;
f ? f(a, e) : a.trigger("sync", a, e, n)
}, n.error = i.wrapError(n.error, a, n);
var l = this.isNew() ? "create" : "update",
c = (this.sync || i.sync).call(this, l, this, n);
return n.wait && this.set(o, u), c
},
destroy: function(e) {
e = e ? s.clone(e) : {};
var t = this,
n = e.success,
r = function() {
t.trigger("destroy", t, t.collection, e)
};
if (this.isNew()) return r(), !1;
e.success = function(i) {
e.wait && r(), n ? n(t, i) : t.trigger("sync", t, i, e)
}, e.error = i.wrapError(e.error, t, e);
var o = (this.sync || i.sync).call(this, "delete", this, e);
return e.wait || r(), o
},
url: function() {
var e = C(this, "urlRoot") || C(this.collection, "url") || k();
return this.isNew() ? e : e + (e.charAt(e.length - 1) == "/" ? "" : "/") + encodeURIComponent(this.id)
},
parse: function(e, t) {
return e
},
clone: function() {
return new this.constructor(this.attributes)
},
isNew: function() {
return this.id == null
},
change: function(e) {
e || (e = {});
var t = this._changing;
this._changing = !0;
for (var n in this._silent) this._pending[n] = !0;
var r = s.extend({}, e.changes, this._silent);
this._silent = {};
for (var n in r) this.trigger("change:" + n, this, this.get(n), e);
if (t) return this;
while (!s.isEmpty(this._pending)) {
this._pending = {}, this.trigger("change", this, e);
for (var n in this.changed) {
if (this._pending[n] || this._silent[n]) continue;
delete this.changed[n]
}
this._previousAttributes = s.clone(this.attributes)
}
return this._changing = !1, this
},
hasChanged: function(e) {
return arguments.length ? s.has(this.changed, e) : !s.isEmpty(this.changed)
},
changedAttributes: function(e) {
if (!e) return this.hasChanged() ? s.clone(this.changed) : !1;
var t, n = !1,
r = this._previousAttributes;
for (var i in e) {
if (s.isEqual(r[i], t = e[i])) continue;
(n || (n = {}))[i] = t
}
return n
},
previous: function(e) {
return !arguments.length || !this._previousAttributes ? null : this._previousAttributes[e]
},
previousAttributes: function() {
return s.clone(this._previousAttributes)
},
isValid: function() {
return !this.validate(this.attributes)
},
_validate: function(e, t) {
if (t.silent || !this.validate) return !0;
e = s.extend({}, this.attributes, e);
var n = this.validate(e, t);
return n ? (t && t.error ? t.error(this, n, t) : this.trigger("error", this, n, t), !1) : !0
}
});
var l = i.Collection = function(e, t) {
t || (t = {}), t.model && (this.model = t.model), t.comparator && (this.comparator = t.comparator), this._reset(), this.initialize.apply(this, arguments), e && this.reset(e, {
silent: !0,
parse: t.parse
})
};
s.extend(l.prototype, a, {
model: f,
initialize: function() {},
toJSON: function(e) {
return this.map(function(t) {
return t.toJSON(e)
})
},
add: function(e, t) {
var n, i, o, u, a, f, l = {},
c = {},
h = [];
t || (t = {}), e = s.isArray(e) ? e.slice() : [e];
for (n = 0, o = e.length; n < o; n++) {
if (!(u = e[n] = this._prepareModel(e[n], t))) throw new Error("Can't add an invalid model to a collection");
a = u.cid, f = u.id;
if (l[a] || this._byCid[a] || f != null && (c[f] || this._byId[f])) {
h.push(n);
continue
}
l[a] = c[f] = u
}
n = h.length;
while (n--) e.splice(h[n], 1);
for (n = 0, o = e.length; n < o; n++)(u = e[n]).on("all", this._onModelEvent, this), this._byCid[u.cid] = u, u.id != null && (this._byId[u.id] = u);
this.length += o, i = t.at != null ? t.at : this.models.length, r.apply(this.models, [i, 0].concat(e)), this.comparator && this.sort({
silent: !0
});
if (t.silent) return this;
for (n = 0, o = this.models.length; n < o; n++) {
if (!l[(u = this.models[n]).cid]) continue;
t.index = n, u.trigger("add", u, this, t)
}
return this
},
remove: function(e, t) {
var n, r, i, o;
t || (t = {}), e = s.isArray(e) ? e.slice() : [e];
for (n = 0, r = e.length; n < r; n++) {
o = this.getByCid(e[n]) || this.get(e[n]);
if (!o) continue;
delete this._byId[o.id], delete this._byCid[o.cid], i = this.indexOf(o), this.models.splice(i, 1), this.length--, t.silent || (t.index = i, o.trigger("remove", o, this, t)), this._removeReference(o)
}
return this
},
push: function(e, t) {
return e = this._prepareModel(e, t), this.add(e, t), e
},
pop: function(e) {
var t = this.at(this.length - 1);
return this.remove(t, e), t
},
unshift: function(e, t) {
return e = this._prepareModel(e, t), this.add(e, s.extend({
at: 0
}, t)), e
},
shift: function(e) {
var t = this.at(0);
return this.remove(t, e), t
},
get: function(e) {
return e == null ? void 0 : this._byId[e.id != null ? e.id : e]
},
getByCid: function(e) {
return e && this._byCid[e.cid || e]
},
at: function(e) {
return this.models[e]
},
where: function(e) {
return s.isEmpty(e) ? [] : this.filter(function(t) {
for (var n in e)
if (e[n] !== t.get(n)) return !1;
return !0
})
},
sort: function(e) {
e || (e = {});
if (!this.comparator) throw new Error("Cannot sort a set without a comparator");
var t = s.bind(this.comparator, this);
return this.comparator.length == 1 ? this.models = this.sortBy(t) : this.models.sort(t), e.silent || this.trigger("reset", this, e), this
},
pluck: function(e) {
return s.map(this.models, function(t) {
return t.get(e)
})
},
reset: function(e, t) {
e || (e = []), t || (t = {});
for (var n = 0, r = this.models.length; n < r; n++) this._removeReference(this.models[n]);
return this._reset(), this.add(e, s.extend({
silent: !0
}, t)), t.silent || this.trigger("reset", this, t), this
},
fetch: function(e) {
e = e ? s.clone(e) : {}, e.parse === undefined && (e.parse = !0);
var t = this,
n = e.success;
return e.success = function(r, i, s) {
t[e.add ? "add" : "reset"](t.parse(r, s), e), n && n(t, r)
}, e.error = i.wrapError(e.error, t, e), (this.sync || i.sync).call(this, "read", this, e)
},
create: function(e, t) {
var n = this;
t = t ? s.clone(t) : {}, e = this._prepareModel(e, t);
if (!e) return !1;
t.wait || n.add(e, t);
var r = t.success;
return t.success = function(i, s, o) {
t.wait && n.add(i, t), r ? r(i, s) : i.trigger("sync", e, s, t)
}, e.save(null, t), e
},
parse: function(e, t) {
return e
},
chain: function() {
return s(this.models).chain()
},
_reset: function(e) {
this.length = 0, this.models = [], this._byId = {}, this._byCid = {}
},
_prepareModel: function(e, t) {
t || (t = {});
if (e instanceof f) e.collection || (e.collection = this);
else {
var n = e;
t.collection = this, e = new this.model(n, t), e._validate(e.attributes, t) || (e = !1)
}
return e
},
_removeReference: function(e) {
this == e.collection && delete e.collection, e.off("all", this._onModelEvent, this)
},
_onModelEvent: function(e, t, n, r) {
if ((e == "add" || e == "remove") && n != this) return;
e == "destroy" && this.remove(t, r), t && e === "change:" + t.idAttribute && (delete this._byId[t.previous(t.idAttribute)], this._byId[t.id] = t), this.trigger.apply(this, arguments)
}
});
var c = ["forEach", "each", "map", "reduce", "reduceRight", "find", "detect", "filter", "select", "reject", "every", "all", "some", "any", "include", "contains", "invoke", "max", "min", "sortBy", "sortedIndex", "toArray", "size", "first", "initial", "rest", "last", "without", "indexOf", "shuffle", "lastIndexOf", "isEmpty", "groupBy"];
s.each(c, function(e) {
l.prototype[e] = function() {
return s[e].apply(s, [this.models].concat(s.toArray(arguments)))
}
});
var h = i.Router = function(e) {
e || (e = {}), e.routes && (this.routes = e.routes), this._bindRoutes(), this.initialize.apply(this, arguments)
},
p = /:\w+/g,
d = /\*\w+/g,
v = /[-[\]{}()+?.,\\^$|#\s]/g;
s.extend(h.prototype, a, {
initialize: function() {},
route: function(e, t, n) {
return i.history || (i.history = new m), s.isRegExp(e) || (e = this._routeToRegExp(e)), n || (n = this[t]), i.history.route(e, s.bind(function(r) {
var s = this._extractParameters(e, r);
n && n.apply(this, s), this.trigger.apply(this, ["route:" + t].concat(s)), i.history.trigger("route", this, t, s)
}, this)), this
},
navigate: function(e, t) {
i.history.navigate(e, t)
},
_bindRoutes: function() {
if (!this.routes) return;
var e = [];
for (var t in this.routes) e.unshift([t, this.routes[t]]);
for (var n = 0, r = e.length; n < r; n++) this.route(e[n][0], e[n][1], this[e[n][1]])
},
_routeToRegExp: function(e) {
return e = e.replace(v, "\\$&").replace(p, "([^/]+)").replace(d, "(.*?)"), new RegExp("^" + e + "$")
},
_extractParameters: function(e, t) {
return e.exec(t).slice(1)
}
});
var m = i.History = function() {
this.handlers = [], s.bindAll(this, "checkUrl")
},
g = /^[#\/]/,
y = /msie [\w.]+/;
m.started = !1, s.extend(m.prototype, a, {
interval: 50,
getHash: function(e) {
var t = e ? e.location : window.location,
n = t.href.match(/#(.*)$/);
return n ? n[1] : ""
},
getFragment: function(e, t) {
if (e == null)
if (this._hasPushState || t) {
e = window.location.pathname;
var n = window.location.search;
n && (e += n)
} else e = this.getHash();
return e.indexOf(this.options.root) || (e = e.substr(this.options.root.length)), e.replace(g, "")
},
start: function(e) {
if (m.started) throw new Error("Backbone.history has already been started");
m.started = !0, this.options = s.extend({}, {
root: "/"
}, this.options, e), this._wantsHashChange = this.options.hashChange !== !1, this._wantsPushState = !!this.options.pushState, this._hasPushState = !!(this.options.pushState && window.history && window.history.pushState);
var t = this.getFragment(),
n = document.documentMode,
r = y.exec(navigator.userAgent.toLowerCase()) && (!n || n <= 7);
r && (this.iframe = o('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo("body")[0].contentWindow, this.navigate(t)), this._hasPushState ? o(window).bind("popstate", this.checkUrl) : this._wantsHashChange && "onhashchange" in window && !r ? o(window).bind("hashchange", this.checkUrl) : this._wantsHashChange && (this._checkUrlInterval = setInterval(this.checkUrl, this.interval)), this.fragment = t;
var i = window.location,
u = i.pathname == this.options.root;
if (this._wantsHashChange && this._wantsPushState && !this._hasPushState && !u) return this.fragment = this.getFragment(null, !0), window.location.replace(this.options.root + "#" + this.fragment), !0;
this._wantsPushState && this._hasPushState && u && i.hash && (this.fragment = this.getHash().replace(g, ""), window.history.replaceState({}, document.title, i.protocol + "//" + i.host + this.options.root + this.fragment));
if (!this.options.silent) return this.loadUrl()
},
stop: function() {
o(window).unbind("popstate", this.checkUrl).unbind("hashchange", this.checkUrl), clearInterval(this._checkUrlInterval), m.started = !1
},
route: function(e, t) {
this.handlers.unshift({
route: e,
callback: t
})
},
checkUrl: function(e) {
var t = this.getFragment();
t == this.fragment && this.iframe && (t = this.getFragment(this.getHash(this.iframe)));
if (t == this.fragment) return !1;
this.iframe && this.navigate(t), this.loadUrl() || this.loadUrl(this.getHash())
},
loadUrl: function(e) {
var t = this.fragment = this.getFragment(e),
n = s.any(this.handlers, function(e) {
if (e.route.test(t)) return e.callback(t), !0
});
return n
},
navigate: function(e, t) {
if (!m.started) return !1;
if (!t || t === !0) t = {
trigger: t
};
var n = (e || "").replace(g, "");
if (this.fragment == n) return;
this._hasPushState ? (n.indexOf(this.options.root) != 0 && (n = this.options.root + n), this.fragment = n, window.history[t.replace ? "replaceState" : "pushState"]({}, document.title, n)) : this._wantsHashChange ? (this.fragment = n, this._updateHash(window.location, n, t.replace), this.iframe && n != this.getFragment(this.getHash(this.iframe)) && (t.replace || this.iframe.document.open().close(), this._updateHash(this.iframe.location, n, t.replace))) : window.location.assign(this.options.root + e), t.trigger && this.loadUrl(e)
},
_updateHash: function(e, t, n) {
n ? e.replace(e.toString().replace(/(javascript:|#).*$/, "") + "#" + t) : e.hash = t
}
});
var b = i.View = function(e) {
this.cid = s.uniqueId("view"), this._configure(e || {}), this._ensureElement(), this.initialize.apply(this, arguments), this.delegateEvents()
},
w = /^(\S+)\s*(.*)$/,
E = ["model", "collection", "el", "id", "attributes", "className", "tagName"];
s.extend(b.prototype, a, {
tagName: "div",
$: function(e) {
return this.$el.find(e)
},
initialize: function() {},
render: function() {
return this
},
remove: function() {
return this.$el.remove(), this
},
make: function(e, t, n) {
var r = document.createElement(e);
return t && o(r).attr(t), n && o(r).html(n), r
},
setElement: function(e, t) {
return this.$el && this.undelegateEvents(), this.$el = e instanceof o ? e : o(e), this.el = this.$el[0], t !== !1 && this.delegateEvents(), this
},
delegateEvents: function(e) {
if (!e && !(e = C(this, "events"))) return;
this.undelegateEvents();
for (var t in e) {
var n = e[t];
s.isFunction(n) || (n = this[e[t]]);
if (!n) throw new Error('Method "' + e[t] + '" does not exist');
var r = t.match(w),
i = r[1],
o = r[2];
n = s.bind(n, this), i += ".delegateEvents" + this.cid, o === "" ? this.$el.bind(i, n) : this.$el.delegate(o, i, n)
}
},
undelegateEvents: function() {
this.$el.unbind(".delegateEvents" + this.cid)
},
_configure: function(e) {
this.options && (e = s.extend({}, this.options, e));
for (var t = 0, n = E.length; t < n; t++) {
var r = E[t];
e[r] && (this[r] = e[r])
}
this.options = e
},
_ensureElement: function() {
if (!this.el) {
var e = C(this, "attributes") || {};
this.id && (e.id = this.id), this.className && (e["class"] = this.className), this.setElement(this.make(this.tagName, e), !1)
} else this.setElement(this.el, !1)
}
});
var S = function(e, t) {
var n = N(this, e, t);
return n.extend = this.extend, n
};
f.extend = l.extend = h.extend = b.extend = S;
var x = {
create: "POST",
update: "PUT",
"delete": "DELETE",
read: "GET"
};
i.sync = function(e, t, n) {
var r = x[e];
n || (n = {});
var u = {
type: r,
dataType: "json"
};
return n.url || (u.url = C(t, "url") || k()), !n.data && t && (e == "create" || e == "update") && (u.contentType = "application/json", u.data = JSON.stringify(t.toJSON())), i.emulateJSON && (u.contentType = "application/x-www-form-urlencoded", u.data = u.data ? {
model: u.data
} : {}), i.emulateHTTP && (r === "PUT" || r === "DELETE") && (i.emulateJSON && (u.data._method = r), u.type = "POST", u.beforeSend = function(e) {
e.setRequestHeader("X-HTTP-Method-Override", r)
}), u.type !== "GET" && !i.emulateJSON && (u.processData = !1), o.ajax(s.extend(u, n))
}, i.wrapError = function(e, t, n) {
return function(r, i) {
i = r === t ? i : r, e ? e(t, i, n) : t.trigger("error", t, i, n)
}
};
var T = function() {},
N = function(e, t, n) {
var r;
return t && t.hasOwnProperty("constructor") ? r = t.constructor : r = function() {
e.apply(this, arguments)
}, s.extend(r, e), T.prototype = e.prototype, r.prototype = new T, t && s.extend(r.prototype, t), n && s.extend(r, n), r.prototype.constructor = r, r.__super__ = e.prototype, r
},
C = function(e, t) {
return !e || !e[t] ? null : s.isFunction(e[t]) ? e[t]() : e[t]
},
k = function() {
throw new Error('A "url" property or function must be specified')
}
}.call(this), define("backbone", ["underscore", "jquery"], function(e) {
return function() {
var t, n;
return t || e.Backbone
}
}(this)), define("models/snippet", ["jquery", "underscore", "backbone"], function(e, t, n) {
return n.Model.extend({
getValues: function() {
return t.reduce(this.get("fields"), function(e, n, r) {
return n["type"] == "select" ? e[r] = t.find(n.value, function(e) {
return e.selected
}).value : e[r] = n.value, e
}, {})
},
idFriendlyTitle: function() {
return this.get("title").replace(/\W/g, "").toLowerCase()
},
setField: function(e, t) {
var n = this.get("fields");
n[e].value = t, this.set("fields", n)
}
})
}), define("text", ["module"], function(e) {
var t, n, r = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP", "Msxml2.XMLHTTP.4.0"],
i = /^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,
s = /<body[^>]*>\s*([\s\S]+)\s*<\/body>/im,
o = typeof location != "undefined" && location.href,
u = o && location.protocol && location.protocol.replace(/\:/, ""),
a = o && location.hostname,
f = o && (location.port || undefined),
l = [],
c = e.config && e.config() || {};
t = {
version: "2.0.5",
strip: function(e) {
if (e) {
e = e.replace(i, "");
var t = e.match(s);
t && (e = t[1])
} else e = "";
return e
},
jsEscape: function(e) {
return e.replace(/(['\\])/g, "\\$1").replace(/[\f]/g, "\\f").replace(/[\b]/g, "\\b").replace(/[\n]/g, "\\n").replace(/[\t]/g, "\\t").replace(/[\r]/g, "\\r").replace(/[\u2028]/g, "\\u2028").replace(/[\u2029]/g, "\\u2029")
},
createXhr: c.createXhr || function() {
var e, t, n;
if (typeof XMLHttpRequest != "undefined") return new XMLHttpRequest;
if (typeof ActiveXObject != "undefined")
for (t = 0; t < 3; t += 1) {
n = r[t];
try {
e = new ActiveXObject(n)
} catch (i) {}
if (e) {
r = [n];
break
}
}
return e
},
parseName: function(e) {
var t, n, r, i = !1,
s = e.indexOf("."),
o = e.indexOf("./") === 0 || e.indexOf("../") === 0;
return s !== -1 && (!o || s > 1) ? (t = e.substring(0, s), n = e.substring(s + 1, e.length)) : t = e, r = n || t, s = r.indexOf("!"), s !== -1 && (i = r.substring(s + 1) === "strip", r = r.substring(0, s), n ? n = r : t = r), {
moduleName: t,
ext: n,
strip: i
}
},
xdRegExp: /^((\w+)\:)?\/\/([^\/\\]+)/,
useXhr: function(e, n, r, i) {
var s, o, u, a = t.xdRegExp.exec(e);
return a ? (s = a[2], o = a[3], o = o.split(":"), u = o[1], o = o[0], (!s || s === n) && (!o || o.toLowerCase() === r.toLowerCase()) && (!u && !o || u === i)) : !0
},
finishLoad: function(e, n, r, i) {
r = n ? t.strip(r) : r, c.isBuild && (l[e] = r), i(r)
},
load: function(e, n, r, i) {
if (i.isBuild && !i.inlineText) {
r();
return
}
c.isBuild = i.isBuild;
var s = t.parseName(e),
l = s.moduleName + (s.ext ? "." + s.ext : ""),
h = n.toUrl(l),
p = c.useXhr || t.useXhr;
!o || p(h, u, a, f) ? t.get(h, function(n) {
t.finishLoad(e, s.strip, n, r)
}, function(e) {
r.error && r.error(e)
}) : n([l], function(e) {
t.finishLoad(s.moduleName + "." + s.ext, s.strip, e, r)
})
},
write: function(e, n, r, i) {
if (l.hasOwnProperty(n)) {
var s = t.jsEscape(l[n]);
r.asModule(e + "!" + n, "define(function () { return '" + s + "';});\n")
}
},
writeFile: function(e, n, r, i, s) {
var o = t.parseName(n),
u = o.ext ? "." + o.ext : "",
a = o.moduleName + u,
f = r.toUrl(o.moduleName + u) + ".js";
t.load(a, r, function(n) {
var r = function(e) {
return i(f, e)
};
r.asModule = function(e, t) {
return i.asModule(e, f, t)
}, t.write(e, a, r, s)
}, s)
}
};
if (c.env === "node" || !c.env && typeof process != "undefined" && process.versions && !!process.versions.node) n = require.nodeRequire("fs"), t.get = function(e, t) {
var r = n.readFileSync(e, "utf8");
r.indexOf("") === 0 && (r = r.substring(1)), t(r)
};
else if (c.env === "xhr" || !c.env && t.createXhr()) t.get = function(e, n, r, i) {
var s = t.createXhr(),
o;
s.open("GET", e, !0);
if (i)
for (o in i) i.hasOwnProperty(o) && s.setRequestHeader(o.toLowerCase(), i[o]);
c.onXhr && c.onXhr(s, e), s.onreadystatechange = function(t) {
var i, o;
s.readyState === 4 && (i = s.status, i > 399 && i < 600 ? (o = new Error(e + " HTTP status: " + i), o.xhr = s, r(o)) : n(s.responseText))
}, s.send(null)
};
else if (c.env === "rhino" || !c.env && typeof Packages != "undefined" && typeof java != "undefined") t.get = function(e, t) {
var n, r, i = "utf-8",
s = new java.io.File(e),
o = java.lang.System.getProperty("line.separator"),
u = new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(s), i)),
a = "";
try {
n = new java.lang.StringBuffer, r = u.readLine(), r && r.length() && r.charAt(0) === 65279 && (r = r.substring(1)), n.append(r);
while ((r = u.readLine()) !== null) n.append(o), n.append(r);
a = String(n.toString())
} finally {
u.close()
}
t(a)
};
return t
}), define("text!templates/popover/popover-main.html", [], function() {
return '<form role="form" class="theme-form">\n <% var compiled = _.reduce(items, function(str, v, k){ %>\n <% v["name"] = k; %>\n <% return str + popoverTemplates[v["type"]](v); %>\n <% }, "") %>\n <%= compiled %>\n <hr/>\n <button id="save" class=\'btn btn-primary\'>Save</button>&nbsp;<button id="cancel" class=\'btn btn-secondary\'>Cancel</button>\n</form>\n'
}), define("text!templates/popover/popover-input.html", [], function() {
return "<div class=\"mb-3\">\n <label class=\"col-md-12 form-label\"> <%= label %> </label>\n <div class=\"col-md-12\">\n <input class='form-control field' data-type=\"<%= type %>\" type='text' name='<%= name %>' id='<%= name %>' value ='<%= value %>' />\n </div>\n</div>"
}), define("text!templates/popover/popover-select.html", [], function() {
return '<div class="mb-3 row">\n <label class=\'col-lg-12 form-label text-lg-start\'> <%= label %> </label>\n <div class="col-lg-12">\n <select class="form-control field" data-type="<%= type %>" id=\'<%= name %>\'>\n <% _.each(value, function(v,k){ %>\n <option value="<%= v["value"] %>" <% if (v["selected"]){ %> selected <% } %> ><%= v["label"] %></option>\n <% }); %>\n </select>\n </div>\n</div>\n'
}), define("text!templates/popover/popover-textarea.html", [], function() {
return '<div class="mb-3 row">\n <label class="col-md-12 form-label"> <%= label %> </label>\n <div class="col-md-12"> \n <textarea class="form-control field" data-type="<%= type %>" style=\'min-height: 200px\' id=\'<%= name %>\'><%= value %></textarea>\n </div>\n</div>\n'
}), define("text!templates/popover/popover-textarea-split.html", [], function() {
return '<div class="mb-3 row">\n <label class="col-md-12 form-label"> <%= label %> </label>\n <div class="col-md-12">\n <textarea class="form-control field" data-type="<%= type %>" id=\'<%= name %>\'><% for ( var i = 0; i < value.length ; i++ ) { %><%= value[i] %><% if (i < value.length - 1) { %><%= "\\n" %><% } %><% } %></textarea>\n </div>\n</div>'
}), define("text!templates/popover/popover-checkbox.html", [], function() {
return '<div class="">\n <label>\n <input type="checkbox" data-type="<%= type %>" class="field" name="<%= name %>" id="checkbox1" <% if(value) {%> checked="checked" <% } %>> \n <%= label %>\n </label>\n</div>\n'
}), define("text!templates/snippet/formname.html", [], function() {
return "<!-- Form Name -->\n<h6 class='m-t-10'><%= name %></h6><hr>\n"
}), define("text!templates/snippet/prependedtext.html", [], function() {
return '<!-- Prepended text-->\n<div class="mb-3 row">\n <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n <div class=<% if ( inputsize.length <= 0){ %> "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%> >\n <div class="input-group">\n <span class="input-group-text btn btn-primary"><%= prepend %></span>\n <input id="<%= id %>" name="<%= id %>" class="form-control btn-square" placeholder="<%= placeholder %>" type="text"<% if(required) {%> required <% } %> />\n </div>\n <% if (helptext.length > 0) { %><p class="help-block"><%= helptext %></p><% } %>\n </div>\n</div>\n'
}), define("text!templates/snippet/searchinput.html", [], function() {
return '<!-- Search input-->\n<div class="mb-3 row">\n <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n <div class=<% if ( inputsize.length <= 0){ %> "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%> >\n <input id="<%= id %>" name="<%= id %>" type="search" placeholder="<%= placeholder %>" class="form-control btn-square input-md" <% if(required) {%> required <% } %> />\n <% if (helptext.length > 0) { %><p class="help-block"><%= helptext %></p><% } %>\n </div>\n</div>\n'
}), define("text!templates/snippet/textinput.html", [], function() {
return '<!-- Text input-->\n<div class="mb-3 row">\n <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label> \n <div class=<% if ( inputsize.length <= 0){ %> "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%> >\n <input id="<%= id %>" name="<%= id %>" type="text" placeholder="<%= placeholder %>" class="form-control btn-square input-md" <% if(required) {%> required <% } %> />\n <% if (helptext.length > 0) { %><p class="help-block"><%= helptext %></p><% } %> \n </div>\n</div>\n'
}), define("text!templates/snippet/appendedcheckbox.html", [], function() {
return '<!-- Appended checkbox -->\n<div class="mb-3 row">\n <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n <div class=<% if ( inputsize.length <= 0){ %> "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%>>\n <div class="input-group">\n <input id="<%= id %>" name="<%= id %>" class="form-control btn-square" type="text" placeholder="<%= placeholder %>" <% if(required) {%> required <% } %> />\n <span class="input-group-text checkbox-radius"> \n <input type="checkbox" <% if (checked){ %>checked="checked"<% } %>> \n </span></div>\n </div>\n <% if (helptext.length > 0) { %><p class="help-block"><%= helptext %></p><% } %>\n \n</div>\n'
}), define("text!templates/snippet/appendedtext.html", [], function() {
return '<!-- Appended Input-->\n<div class="mb-3 row">\n <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n <div class=<% if ( inputsize.length <= 0){ %> "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%> >\n <div class="input-group">\n <input id="<%= id %>" name="<%= id %>" class="form-control btn-square" placeholder="<%= placeholder %>" type="text"<% if(required) {%> required <% } %> />\n <span class="input-group-text btn btn-primary btn-right"><%= append %></span>\n </div>\n <% if (helptext.length > 0) { %><p class="help-block"><%= helptext %></p><% } %>\n </div>\n</div>'
}), define("text!templates/snippet/filebutton.html", [], function() {
return '<!-- File Button --> \n<div class="mb-3 row">\n <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n <div class="col-lg-12">\n <input id="<%= id %>" name="<%= id %>" class="input-file" id="fileInput" type="file">\n </div>\n</div>\n'
}), define("text!templates/snippet/button.html", [], function() {
return '<!-- Button -->\n<div class="mb-3 row">\n <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n <div class="col-lg-12">\n <button id="<%= id %>" name="<%= id %>" class=\'btn <%= buttontype %>\'><%= buttonlabel %></button>\n </div>\n</div>\n'
}), define("text!templates/snippet/buttondouble.html", [], function() {
return '<!-- Button (Double) -->\n<div class="mb-3 row mb-0">\n <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n <div class="col-md-9">\n <button id="<%= id %>" name="<%= id %>" class=\'btn <%= button1type %>\'><%= button1label %></button>\n <button id="<%= id2 %>" name="<%= id2 %>" class=\'btn <%= button2type %>\'><%= button2label %></button>\n </div>\n</div>\n'
}), define("text!templates/snippet/buttondropdown.html", [], function() {
return '<!-- Button Drop Down -->\n<div class="mb-3 row">\n <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n <div class=<% if ( inputsize.length <= 0){ %> "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%>>\n <div class="input-group">\n <input id="<%= id %>" name="<%= id %>" class="form-control btn-square" placeholder="<%= placeholder %>" type="text" <% if(required) {%> required <% } %> />\n <div class="input-group-text p-0">\n <button type="button" class="btn btn-primary dropdown-toggle btn-square" data-toggle="dropdown">\n <%= buttontext %>\n <span class="caret"></span>\n </button>\n <ul class="dropdown-menu pull-right"><% _.each(buttonoptions, function(value) { %>\n <li><a href="#" class="dropdown-item"><%= value %></a></li><% }); %>\n </ul>\n </div>\n </div>\n </div>\n</div>\n'
}), define("text!templates/snippet/multiplecheckboxes.html", [], function() {
return '<!-- Multiple Checkboxes -->\n<div class="mb-3 row">\n <label class="col-sm-3 form-label text-lg-start" for="<%= name %>"><%= label %></label>\n <div class="col-sm-9"><% _.each(checkboxes, function(checkbox, i){ %>\n <div class="checkbox">\n <input type="checkbox" name="<%= name %>" id="<%= name+\'-\'+i %>" value="<%= checkboxesValues[i] %>">\n <label for="<%= name+\'-\'+i %>" class="mt-0">\n <%= checkbox %>\n </label>\n </div><% }); %>\n </div>\n</div>\n'
}), define("text!templates/snippet/multiplecheckboxesinline.html", [], function() {
return '<!-- Multiple Checkboxes (inline) -->\n<div class="mb-3 row mb-0">\n <label class="col-sm-3 form-label text-lg-start mb-0" for="<%= name %>"><%= label %></label>\n <div class="col-sm-9"><div class="m-checkbox-inline">\n <% _.each(checkboxes, function(checkbox, i){ %>\n <div class="checkbox"> <input type="checkbox" name="<%= name %>" id="<%= name+\'-\'+j++ %>" value="<%= checkboxesValues[i] %>">\n <label class="checkbox-inline mb-0" for="<%= name+\'-\'+i %>">\n <%= checkbox %>\n </label> </div>\n <% }); %>\n </div>\n</div>\n</div>\n'
}), define("text!templates/snippet/multipleradios.html", [], function() {
return '<!-- Multiple Radios -->\n<div class="mb-3 row">\n <label class="col-sm-3 form-label text-lg-start" for="<%= name %>"><%= label %></label>\n <div class="col-sm-9 pl-md-radios"><% _.each(radios, function(radio, i){ %>\n <div class="radio">\n <label for="<%= name+\'-\'+i %>"><%= radio %>\n </label>\n <input type="radio" name="<%= name %>" id="<%= name+\'-\'+j++ %>" value="<%= radiosValues[i] %>" <% if (i < 1) { %> checked="checked" <% } %>>\n </div><% }); %>\n </div>\n</div>\n'
}), define("text!templates/snippet/multipleradiosinline.html", [], function() {
return '<!-- Multiple Radios (inline) -->\n<div class="mb-3 row">\n <label class="col-sm-3 form-label text-lg-start" for="<%= name %>"><%= label %></label>\n <div class="col-sm-9 pl-md-radios"><div class="m-checkbox-inline"><% _.each(radios, function(radio, i){ %> \n <div class="radio radio-primary"> \n <label class="radio-inline" for="<%= name+\'-\'+i %>"> <%= radio %></label> \n <input type="radio" name="<%= name %>" id="<%= name+\'-\'+i %>" value="<%= radiosValues[i] %>" <% if (i < 1) { %> checked="checked" <% } %>>\n </div><% }); %>\n </div> </div>\n</div>\n</div>\n'
}), define("text!templates/snippet/passwordinput.html", [], function() {
return '<!-- Password input-->\n<div class="mb-3 row">\n <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n <div class=<% if ( inputsize.length <= 0){ %> "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%> >\n <input id="<%= id %>" name="<%= id %>" type="password" placeholder="<%= placeholder %>" class="form-control btn-square input-md" <% if(required) {%> required <% } %> />\n <% if (helptext.length > 0) { %><span class="help-block"><%= helptext %></span><% } %>\n </div>\n</div>\n'
}), define("text!templates/snippet/prependedcheckbox.html", [], function() {
return '<!-- Prepended checkbox -->\n<div class="mb-3 row">\n <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n <div class=<% if ( inputsize.length <= 0){ %> "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%>>\n <div class="input-group">\n <span class="input-group-text"> \n <input type="checkbox" <% if (checked){ %>checked="checked"<% } %>> \n </span>\n <input id="<%= id %>" name="<%= id %>" class="form-control btn-square" type="text" placeholder="<%= placeholder %>" <% if(required) {%> required <% } %> />\n </div>\n <% if (helptext.length > 0) { %><p class="help-block"><%= helptext %></p><% } %>\n </div>\n</div>\n'
}), define("text!templates/snippet/selectbasic.html", [], function() {
return '<!-- Select Basic -->\n<div class="mb-3 row">\n <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n <div class=<% if ( inputsize.length <= 0){ %> "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%>>\n <select id="<%= id %>" name="<%= id %>" class="form-control btn-square"><% _.each(options, function(option,i) { %>\n <option value="<%= values[i] %>"><%= option %></option><% }); %>\n </select>\n </div>\n</div>\n'
}), define("text!templates/snippet/selectmultiple.html", [], function() {
return '<!-- Select Multiple -->\n<div class="mb-3 row mb-0">\n <label class="col-lg-12 form-label text-lg-start" for="<%= id %>"><%= label %></label>\n <div class=<% if ( inputsize.length <= 0){ %> "col-lg-12" <%}else { %> "<%= inputsize %>"<%}%>>\n <select id="<%= id %>" name="<%= id %>" class="form-control btn-square" multiple="multiple"><% _.each(options, function(option,i) { %>\n <option value="<%= values[i] %>"><%= option %></option><% }); %>\n </select>\n </div>\n</div>\n'
}), define("text!templates/snippet/textarea.html", [], function() {
return '<!-- Textarea -->\n<div class="mb-3 row mb-0">\n <label class="col-lg-12 form-label text-lg-start" for ="<%= id %>"><%= label %></label>\n <div class="col-lg-12" > \n <textarea class="form-control btn-square" id="<%= id %>" name="<%= id %>" ><%= textarea %></textarea>\n </div>\n</div>\n'
}), define("templates/snippet/snippet-templates", ["require", "text!templates/snippet/formname.html", "text!templates/snippet/prependedtext.html", "text!templates/snippet/searchinput.html", "text!templates/snippet/textinput.html", "text!templates/snippet/appendedcheckbox.html", "text!templates/snippet/appendedtext.html", "text!templates/snippet/filebutton.html", "text!templates/snippet/button.html", "text!templates/snippet/buttondouble.html", "text!templates/snippet/buttondropdown.html", "text!templates/snippet/multiplecheckboxes.html", "text!templates/snippet/multiplecheckboxesinline.html", "text!templates/snippet/multipleradios.html", "text!templates/snippet/multipleradiosinline.html", "text!templates/snippet/passwordinput.html", "text!templates/snippet/prependedcheckbox.html", "text!templates/snippet/prependedtext.html", "text!templates/snippet/searchinput.html", "text!templates/snippet/selectbasic.html", "text!templates/snippet/selectmultiple.html", "text!templates/snippet/textarea.html", "text!templates/snippet/textinput.html"], function(e) {
var t = e("text!templates/snippet/formname.html"),
n = e("text!templates/snippet/prependedtext.html"),
r = e("text!templates/snippet/searchinput.html"),
i = e("text!templates/snippet/textinput.html"),
s = e("text!templates/snippet/appendedcheckbox.html"),
o = e("text!templates/snippet/appendedtext.html"),
u = e("text!templates/snippet/filebutton.html"),
a = e("text!templates/snippet/button.html"),
f = e("text!templates/snippet/buttondouble.html"),
l = e("text!templates/snippet/buttondropdown.html"),
c = e("text!templates/snippet/multiplecheckboxes.html"),
h = e("text!templates/snippet/multiplecheckboxesinline.html"),
p = e("text!templates/snippet/multipleradios.html"),
d = e("text!templates/snippet/multipleradiosinline.html"),
v = e("text!templates/snippet/passwordinput.html"),
m = e("text!templates/snippet/prependedcheckbox.html"),
n = e("text!templates/snippet/prependedtext.html"),
g = e("text!templates/snippet/searchinput.html"),
y = e("text!templates/snippet/selectbasic.html"),
b = e("text!templates/snippet/selectmultiple.html"),
w = e("text!templates/snippet/textarea.html"),
i = e("text!templates/snippet/textinput.html");
return {
formname: t,
prependedtext: n,
search: r,
textinput: i,
appendedcheckbox: s,
appendedtext: o,
filebutton: u,
singlebutton: a,
doublebutton: f,
buttondropdown: l,
multiplecheckboxes: c,
multiplecheckboxesinline: h,
multipleradios: p,
multipleradiosinline: d,
passwordinput: v,
prependedcheckbox: m,
prependedtext: n,
searchinput: g,
selectbasic: y,
selectmultiple: b,
textarea: w,
textinput: i
}
});
if (!jQuery) throw new Error("Bootstrap requires jQuery"); + function(e) {
function t() {
var e = document.createElement("bootstrap"),
t = {
WebkitTransition: "webkitTransitionEnd",
MozTransition: "transitionend",
OTransition: "oTransitionEnd otransitionend",
transition: "transitionend"
};
for (var n in t)
if (e.style[n] !== undefined) return {
end: t[n]
}
}
e.fn.emulateTransitionEnd = function(t) {
var n = !1,
r = this;
e(this).one(e.support.transition.end, function() {
n = !0
});
var i = function() {
n || e(r).trigger(e.support.transition.end)
};
return setTimeout(i, t), this
}, e(function() {
e.support.transition = t()
})
}(window.jQuery), + function(e) {
var t = '[data-dismiss="alert"]',
n = function(n) {
e(n).on("click", t, this.close)
};
n.prototype.close = function(t) {
function s() {
i.trigger("closed.bs.alert").remove()
}
var n = e(this),
r = n.attr("data-target");
r || (r = n.attr("href"), r = r && r.replace(/.*(?=#[^\s]*$)/, ""));
var i = e(r);
t && t.preventDefault(), i.length || (i = n.hasClass("alert") ? n : n.parent()), i.trigger(t = e.Event("close.bs.alert"));
if (t.isDefaultPrevented()) return;
i.removeClass("in"), e.support.transition && i.hasClass("fade") ? i.one(e.support.transition.end, s).emulateTransitionEnd(150) : s()
};
var r = e.fn.alert;
e.fn.alert = function(t) {
return this.each(function() {
var r = e(this),
i = r.data("bs.alert");
i || r.data("bs.alert", i = new n(this)), typeof t == "string" && i[t].call(r)
})
}, e.fn.alert.Constructor = n, e.fn.alert.noConflict = function() {
return e.fn.alert = r, this
}, e(document).on("click.bs.alert.data-api", t, n.prototype.close)
}(window.jQuery), + function(e) {
var t = function(n, r) {
this.$element = e(n), this.options = e.extend({}, t.DEFAULTS, r)
};
t.DEFAULTS = {
loadingText: "loading..."
}, t.prototype.setState = function(e) {
var t = "disabled",
n = this.$element,
r = n.is("input") ? "val" : "html",
i = n.data();
e += "Text", i.resetText || n.data("resetText", n[r]()), n[r](i[e] || this.options[e]), setTimeout(function() {
e == "loadingText" ? n.addClass(t).attr(t, t) : n.removeClass(t).removeAttr(t)
}, 0)
}, t.prototype.toggle = function() {
var e = this.$element.closest('[data-toggle="buttons"]');
if (e.length) {
var t = this.$element.find("input").prop("checked", !this.$element.hasClass("active")).trigger("change");
t.prop("type") === "radio" && e.find(".active").removeClass("active")
}
this.$element.toggleClass("active")
};
var n = e.fn.button;
e.fn.button = function(n) {
return this.each(function() {
var r = e(this),
i = r.data("bs.button"),
s = typeof n == "object" && n;
i || r.data("bs.button", i = new t(this, s)), n == "toggle" ? i.toggle() : n && i.setState(n)
})
}, e.fn.button.Constructor = t, e.fn.button.noConflict = function() {
return e.fn.button = n, this
}, e(document).on("click.bs.button.data-api", "[data-toggle^=button]", function(t) {
var n = e(t.target);
n.hasClass("btn") || (n = n.closest(".btn")), n.button("toggle"), t.preventDefault()
})
}(window.jQuery), + function(e) {
var t = function(t, n) {
this.$element = e(t), this.$indicators = this.$element.find(".carousel-indicators"), this.options = n, this.paused = this.sliding = this.interval = this.$active = this.$items = null, this.options.pause == "hover" && this.$element.on("mouseenter", e.proxy(this.pause, this)).on("mouseleave", e.proxy(this.cycle, this))
};
t.DEFAULTS = {
interval: 5e3,
pause: "hover",
wrap: !0
}, t.prototype.cycle = function(t) {
return t || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(e.proxy(this.next, this), this.options.interval)), this
}, t.prototype.getActiveIndex = function() {
return this.$active = this.$element.find(".item.active"), this.$items = this.$active.parent().children(), this.$items.index(this.$active)
}, t.prototype.to = function(t) {
var n = this,
r = this.getActiveIndex();
if (t > this.$items.length - 1 || t < 0) return;
return this.sliding ? this.$element.one("slid", function() {
n.to(t)
}) : r == t ? this.pause().cycle() : this.slide(t > r ? "next" : "prev", e(this.$items[t]))
}, t.prototype.pause = function(t) {
return t || (this.paused = !0), this.$element.find(".next, .prev").length && e.support.transition.end && (this.$element.trigger(e.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this
}, t.prototype.next = function() {
if (this.sliding) return;
return this.slide("next")
}, t.prototype.prev = function() {
if (this.sliding) return;
return this.slide("prev")
}, t.prototype.slide = function(t, n) {
var r = this.$element.find(".item.active"),
i = n || r[t](),
s = this.interval,
o = t == "next" ? "left" : "right",
u = t == "next" ? "first" : "last",
a = this;
if (!i.length) {
if (!this.options.wrap) return;
i = this.$element.find(".item")[u]()
}
this.sliding = !0, s && this.pause();
var f = e.Event("slide.bs.carousel", {
relatedTarget: i[0],
direction: o
});
if (i.hasClass("active")) return;
this.$indicators.length && (this.$indicators.find(".active").removeClass("active"), this.$element.one("slid", function() {
var t = e(a.$indicators.children()[a.getActiveIndex()]);
t && t.addClass("active")
}));
if (e.support.transition && this.$element.hasClass("slide")) {
this.$element.trigger(f);
if (f.isDefaultPrevented()) return;
i.addClass(t), i[0].offsetWidth, r.addClass(o), i.addClass(o), r.one(e.support.transition.end, function() {
i.removeClass([t, o].join(" ")).addClass("active"), r.removeClass(["active", o].join(" ")), a.sliding = !1, setTimeout(function() {
a.$element.trigger("slid")
}, 0)
}).emulateTransitionEnd(600)
} else {
this.$element.trigger(f);
if (f.isDefaultPrevented()) return;
r.removeClass("active"), i.addClass("active"), this.sliding = !1, this.$element.trigger("slid")
}
return s && this.cycle(), this
};
var n = e.fn.carousel;
e.fn.carousel = function(n) {
return this.each(function() {
var r = e(this),
i = r.data("bs.carousel"),
s = e.extend({}, t.DEFAULTS, r.data(), typeof n == "object" && n),
o = typeof n == "string" ? n : s.slide;
i || r.data("bs.carousel", i = new t(this, s)), typeof n == "number" ? i.to(n) : o ? i[o]() : s.interval && i.pause().cycle()
})
}, e.fn.carousel.Constructor = t, e.fn.carousel.noConflict = function() {
return e.fn.carousel = n, this
}, e(document).on("click.bs.carousel.data-api", "[data-slide], [data-slide-to]", function(t) {
var n = e(this),
r, i = e(n.attr("data-target") || (r = n.attr("href")) && r.replace(/.*(?=#[^\s]+$)/, "")),
s = e.extend({}, i.data(), n.data()),
o = n.attr("data-slide-to");
o && (s.interval = !1), i.carousel(s), (o = n.attr("data-slide-to")) && i.data("bs.carousel").to(o), t.preventDefault()
}), e(window).on("load", function() {
e('[data-ride="carousel"]').each(function() {
var t = e(this);
t.carousel(t.data())
})
})
}(window.jQuery), + function(e) {
var t = function(n, r) {
this.$element = e(n), this.options = e.extend({}, t.DEFAULTS, r), this.transitioning = null, this.options.parent && (this.$parent = e(this.options.parent)), this.options.toggle && this.toggle()
};
t.DEFAULTS = {
toggle: !0
}, t.prototype.dimension = function() {
var e = this.$element.hasClass("width");
return e ? "width" : "height"
}, t.prototype.show = function() {
if (this.transitioning || this.$element.hasClass("in")) return;
var t = e.Event("show.bs.collapse");
this.$element.trigger(t);
if (t.isDefaultPrevented()) return;
var n = this.$parent && this.$parent.find("> .panel > .in");
if (n && n.length) {
var r = n.data("bs.collapse");
if (r && r.transitioning) return;
n.collapse("hide"), r || n.data("bs.collapse", null)
}
var i = this.dimension();
this.$element.removeClass("collapse").addClass("collapsing")[i](0), this.transitioning = 1;
var s = function() {
this.$element.removeClass("collapsing").addClass("in")[i]("auto"), this.transitioning = 0, this.$element.trigger("shown.bs.collapse")
};
if (!e.support.transition) return s.call(this);
var o = e.camelCase(["scroll", i].join("-"));
this.$element.one(e.support.transition.end, e.proxy(s, this)).emulateTransitionEnd(350)[i](this.$element[0][o])
}, t.prototype.hide = function() {
if (this.transitioning || !this.$element.hasClass("in")) return;
var t = e.Event("hide.bs.collapse");
this.$element.trigger(t);
if (t.isDefaultPrevented()) return;
var n = this.dimension();
this.$element[n](this.$element[n]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"), this.transitioning = 1;
var r = function() {
this.transitioning = 0, this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")
};
if (!e.support.transition) return r.call(this);
this.$element[n](0).one(e.support.transition.end, e.proxy(r, this)).emulateTransitionEnd(350)
}, t.prototype.toggle = function() {
this[this.$element.hasClass("in") ? "hide" : "show"]()
};
var n = e.fn.collapse;
e.fn.collapse = function(n) {
return this.each(function() {
var r = e(this),
i = r.data("bs.collapse"),
s = e.extend({}, t.DEFAULTS, r.data(), typeof n == "object" && n);
i || r.data("bs.collapse", i = new t(this, s)), typeof n == "string" && i[n]()
})
}, e.fn.collapse.Constructor = t, e.fn.collapse.noConflict = function() {
return e.fn.collapse = n, this
}, e(document).on("click.bs.collapse.data-api", "[data-toggle=collapse]", function(t) {
var n = e(this),
r, i = n.attr("data-target") || t.preventDefault() || (r = n.attr("href")) && r.replace(/.*(?=#[^\s]+$)/, ""),
s = e(i),
o = s.data("bs.collapse"),
u = o ? "toggle" : n.data(),
a = n.attr("data-parent"),
f = a && e(a);
if (!o || !o.transitioning) f && f.find('[data-toggle=collapse][data-parent="' + a + '"]').not(n).addClass("collapsed"), n[s.hasClass("in") ? "addClass" : "removeClass"]("collapsed");
s.collapse(u)
})
}(window.jQuery), + function(e) {
function i() {
e(t).remove(), e(n).each(function(t) {
var n = s(e(this));
if (!n.hasClass("open")) return;
n.trigger(t = e.Event("hide.bs.dropdown"));
if (t.isDefaultPrevented()) return;
n.removeClass("open").trigger("hidden.bs.dropdown")
})
}
function s(t) {
var n = t.attr("data-target");
n || (n = t.attr("href"), n = n && /#/.test(n) && n.replace(/.*(?=#[^\s]*$)/, ""));
var r = n && e(n);
return r && r.length ? r : t.parent()
}
var t = ".dropdown-backdrop",
n = "[data-toggle=dropdown]",
r = function(t) {
var n = e(t).on("click.bs.dropdown", this.toggle)
};
r.prototype.toggle = function(t) {
var n = e(this);
if (n.is(".disabled, :disabled")) return;
var r = s(n),
o = r.hasClass("open");
i();
if (!o) {
"ontouchstart" in document.documentElement && !r.closest(".navbar-nav").length && e('<div class="dropdown-backdrop"/>').insertAfter(e(this)).on("click", i), r.trigger(t = e.Event("show.bs.dropdown"));
if (t.isDefaultPrevented()) return;
r.toggleClass("open").trigger("shown.bs.dropdown"), n.focus()
}
return !1
}, r.prototype.keydown = function(t) {
if (!/(38|40|27)/.test(t.keyCode)) return;
var r = e(this);
t.preventDefault(), t.stopPropagation();
if (r.is(".disabled, :disabled")) return;
var i = s(r),
o = i.hasClass("open");
if (!o || o && t.keyCode == 27) return t.which == 27 && i.find(n).focus(), r.click();
var u = e("[role=menu] li:not(.divider):visible a", i);
if (!u.length) return;
var a = u.index(u.filter(":focus"));
t.keyCode == 38 && a > 0 && a--, t.keyCode == 40 && a < u.length - 1 && a++, ~a || (a = 0), u.eq(a).focus()
};
var o = e.fn.dropdown;
e.fn.dropdown = function(t) {
return this.each(function() {
var n = e(this),
i = n.data("dropdown");
i || n.data("dropdown", i = new r(this)), typeof t == "string" && i[t].call(n)
})
}, e.fn.dropdown.Constructor = r, e.fn.dropdown.noConflict = function() {
return e.fn.dropdown = o, this
}, e(document).on("click.bs.dropdown.data-api", i).on("click.bs.dropdown.data-api", ".dropdown form", function(e) {
e.stopPropagation()
}).on("click.bs.dropdown.data-api", n, r.prototype.toggle).on("keydown.bs.dropdown.data-api", n + ", [role=menu]", r.prototype.keydown)
}(window.jQuery), + function(e) {
var t = function(t, n) {
this.options = n, this.$element = e(t), this.$backdrop = this.isShown = null, this.options.remote && this.$element.load(this.options.remote)
};
t.DEFAULTS = {
backdrop: !0,
keyboard: !0,
show: !0
}, t.prototype.toggle = function(e) {
return this[this.isShown ? "hide" : "show"](e)
}, t.prototype.show = function(t) {
var n = this,
r = e.Event("show.bs.modal", {
relatedTarget: t
});
this.$element.trigger(r);
if (this.isShown || r.isDefaultPrevented()) return;
this.isShown = !0, this.escape(), this.$element.on("click.dismiss.modal", '[data-dismiss="modal"]', e.proxy(this.hide, this)), this.backdrop(function() {
var r = e.support.transition && n.$element.hasClass("fade");
n.$element.parent().length || n.$element.appendTo(document.body), n.$element.show(), r && n.$element[0].offsetWidth, n.$element.addClass("in").attr("aria-hidden", !1), n.enforceFocus();
var i = e.Event("shown.bs.modal", {
relatedTarget: t
});
r ? n.$element.find(".modal-dialog").one(e.support.transition.end, function() {
n.$element.focus().trigger(i)
}).emulateTransitionEnd(300) : n.$element.focus().trigger(i)
})
}, t.prototype.hide = function(t) {
t && t.preventDefault(), t = e.Event("hide.bs.modal"), this.$element.trigger(t);
if (!this.isShown || t.isDefaultPrevented()) return;
this.isShown = !1, this.escape(), e(document).off("focusin.bs.modal"), this.$element.removeClass("in").attr("aria-hidden", !0).off("click.dismiss.modal"), e.support.transition && this.$element.hasClass("fade") ? this.$element.one(e.support.transition.end, e.proxy(this.hideModal, this)).emulateTransitionEnd(300) : this.hideModal()
}, t.prototype.enforceFocus = function() {
e(document).off("focusin.bs.modal").on("focusin.bs.modal", e.proxy(function(e) {
this.$element[0] !== e.target && !this.$element.has(e.target).length && this.$element.focus()
}, this))
}, t.prototype.escape = function() {
this.isShown && this.options.keyboard ? this.$element.on("keyup.dismiss.bs.modal", e.proxy(function(e) {
e.which == 27 && this.hide()
}, this)) : this.isShown || this.$element.off("keyup.dismiss.bs.modal")
}, t.prototype.hideModal = function() {
var e = this;
this.$element.hide(), this.backdrop(function() {
e.removeBackdrop(), e.$element.trigger("hidden.bs.modal")
})
}, t.prototype.removeBackdrop = function() {
this.$backdrop && this.$backdrop.remove(), this.$backdrop = null
}, t.prototype.backdrop = function(t) {
var n = this,
r = this.$element.hasClass("fade") ? "fade" : "";
if (this.isShown && this.options.backdrop) {
var i = e.support.transition && r;
this.$backdrop = e('<div class="modal-backdrop ' + r + '" />').appendTo(document.body), this.$element.on("click.dismiss.modal", e.proxy(function(e) {
if (e.target !== e.currentTarget) return;
this.options.backdrop == "static" ? this.$element[0].focus.call(this.$element[0]) : this.hide.call(this)
}, this)), i && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in");
if (!t) return;
i ? this.$backdrop.one(e.support.transition.end, t).emulateTransitionEnd(150) : t()
} else !this.isShown && this.$backdrop ? (this.$backdrop.removeClass("in"), e.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one(e.support.transition.end, t).emulateTransitionEnd(150) : t()) : t && t()
};
var n = e.fn.modal;
e.fn.modal = function(n, r) {
return this.each(function() {
var i = e(this),
s = i.data("bs.modal"),
o = e.extend({}, t.DEFAULTS, i.data(), typeof n == "object" && n);
s || i.data("bs.modal", s = new t(this, o)), typeof n == "string" ? s[n](r) : o.show && s.show(r)
})
}, e.fn.modal.Constructor = t, e.fn.modal.noConflict = function() {
return e.fn.modal = n, this
}, e(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function(t) {
var n = e(this),
r = n.attr("href"),
i = e(n.attr("data-target") || r && r.replace(/.*(?=#[^\s]+$)/, "")),
s = i.data("modal") ? "toggle" : e.extend({
remote: !/#/.test(r) && r
}, i.data(), n.data());
t.preventDefault(), i.modal(s, this).one("hide", function() {
n.is(":visible") && n.focus()
})
}), e(document).on("show.bs.modal", ".modal", function() {
e(document.body).addClass("modal-open")
}).on("hidden.bs.modal", ".modal", function() {
e(document.body).removeClass("modal-open")
})
}(window.jQuery), + function(e) {
var t = function(e, t) {
this.type = this.options = this.enabled = this.timeout = this.hoverState = this.$element = null, this.init("tooltip", e, t)
};
t.DEFAULTS = {
animation: !0,
placement: "top",
selector: !1,
template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
trigger: "hover focus",
title: "",
delay: 0,
html: !1,
container: !1
}, t.prototype.init = function(t, n, r) {
this.enabled = !0, this.type = t, this.$element = e(n), this.options = this.getOptions(r);
var i = this.options.trigger.split(" ");
for (var s = i.length; s--;) {
var o = i[s];
if (o == "click") this.$element.on("click." + this.type, this.options.selector, e.proxy(this.toggle, this));
else if (o != "manual") {
var u = o == "hover" ? "mouseenter" : "focus",
a = o == "hover" ? "mouseleave" : "blur";
this.$element.on(u + "." + this.type, this.options.selector, e.proxy(this.enter, this)), this.$element.on(a + "." + this.type, this.options.selector, e.proxy(this.leave, this))
}
}
this.options.selector ? this._options = e.extend({}, this.options, {
trigger: "manual",
selector: ""
}) : this.fixTitle()
}, t.prototype.getDefaults = function() {
return t.DEFAULTS
}, t.prototype.getOptions = function(t) {
return t = e.extend({}, this.getDefaults(), this.$element.data(), t), t.delay && typeof t.delay == "number" && (t.delay = {
show: t.delay,
hide: t.delay
}), t
}, t.prototype.getDelegateOptions = function() {
var t = {},
n = this.getDefaults();
return this._options && e.each(this._options, function(e, r) {
n[e] != r && (t[e] = r)
}), t
}, t.prototype.enter = function(t) {
var n = t instanceof this.constructor ? t : e(t.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type);
clearTimeout(n.timeout), n.hoverState = "in";
if (!n.options.delay || !n.options.delay.show) return n.show();
n.timeout = setTimeout(function() {
n.hoverState == "in" && n.show()
}, n.options.delay.show)
}, t.prototype.leave = function(t) {
var n = t instanceof this.constructor ? t : e(t.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type);
clearTimeout(n.timeout), n.hoverState = "out";
if (!n.options.delay || !n.options.delay.hide) return n.hide();
n.timeout = setTimeout(function() {
n.hoverState == "out" && n.hide()
}, n.options.delay.hide)
}, t.prototype.show = function() {
var t = e.Event("show.bs." + this.type);
if (this.hasContent() && this.enabled) {
this.$element.trigger(t);
if (t.isDefaultPrevented()) return;
var n = this.tip();
this.setContent(), this.options.animation && n.addClass("fade");
var r = typeof this.options.placement == "function" ? this.options.placement.call(this, n[0], this.$element[0]) : this.options.placement,
i = /\s?auto?\s?/i,
s = i.test(r);
s && (r = r.replace(i, "") || "top"), n.detach().css({
top: 0,
left: 0,
display: "block"
}).addClass(r), this.options.container ? n.appendTo(this.options.container) : n.insertAfter(this.$element);
var o = this.getPosition(),
u = n[0].offsetWidth,
a = n[0].offsetHeight;
if (s) {
var f = this.$element.parent(),
l = r,
c = document.documentElement.scrollTop || document.body.scrollTop,
h = this.options.container == "body" ? window.innerWidth : f.outerWidth(),
p = this.options.container == "body" ? window.innerHeight : f.outerHeight(),
d = this.options.container == "body" ? 0 : f.offset().left;
r = r == "bottom" && o.top + o.height + a - c > p ? "top" : r == "top" && o.top - c - a < 0 ? "bottom" : r == "right" && o.right + u > h ? "left" : r == "left" && o.left - u < d ? "right" : r, n.removeClass(l).addClass(r)
}
var v = this.getCalculatedOffset(r, o, u, a);
this.applyPlacement(v, r), this.$element.trigger("shown.bs." + this.type)
}
}, t.prototype.applyPlacement = function(e, t) {
var n, r = this.tip(),
i = r[0].offsetWidth,
s = r[0].offsetHeight,
o = parseInt(r.css("margin-top"), 10),
u = parseInt(r.css("margin-left"), 10);
isNaN(o) && (o = 0), isNaN(u) && (u = 0), e.top = e.top + o, e.left = e.left + u, r.offset(e).addClass("in");
var a = r[0].offsetWidth,
f = r[0].offsetHeight;
t == "top" && f != s && (n = !0, e.top = e.top + s - f);
if (/bottom|top/.test(t)) {
var l = 0;
e.left < 0 && (l = e.left * -2, e.left = 0, r.offset(e), a = r[0].offsetWidth, f = r[0].offsetHeight), this.replaceArrow(l - i + a, a, "left")
} else this.replaceArrow(f - s, f, "top");
n && r.offset(e)
}, t.prototype.replaceArrow = function(e, t, n) {
this.arrow().css(n, e ? 50 * (1 - e / t) + "%" : "")
}, t.prototype.setContent = function() {
var e = this.tip(),
t = this.getTitle();
e.find(".tooltip-inner")[this.options.html ? "html" : "text"](t), e.removeClass("fade show bs-popover-top bs-popover-bottom bs-popover-left bs-popover-right")
}, t.prototype.hide = function() {
function i() {
t.hoverState != "in" && n.detach()
}
var t = this,
n = this.tip(),
r = e.Event("hide.bs." + this.type);
this.$element.trigger(r);
if (r.isDefaultPrevented()) return;
return n.removeClass("in"), e.support.transition && this.$tip.hasClass("fade") ? n.one(e.support.transition.end, i).emulateTransitionEnd(150) : i(), this.$element.trigger("hidden.bs." + this.type), this
}, t.prototype.fixTitle = function() {
var e = this.$element;
(e.attr("title") || typeof e.attr("data-original-title") != "string") && e.attr("data-original-title", e.attr("title") || "").attr("title", "")
}, t.prototype.hasContent = function() {
return this.getTitle()
}, t.prototype.getPosition = function() {
var t = this.$element[0];
return e.extend({}, typeof t.getBoundingClientRect == "function" ? t.getBoundingClientRect() : {
width: t.offsetWidth,
height: t.offsetHeight
}, this.$element.offset())
}, t.prototype.getCalculatedOffset = function(e, t, n, r) {
return e == "bottom" ? {
top: t.top + t.height,
left: t.left + t.width / 2 - n / 2
} : e == "top" ? {
top: t.top - r,
left: t.left + t.width / 2 - n / 2
} : e == "left" ? {
top: t.top + t.height / 2 - r / 2,
left: t.left - n
} : {
top: t.top + t.height / 2 - r / 2,
left: t.left + t.width
}
}, t.prototype.getTitle = function() {
var e, t = this.$element,
n = this.options;
return e = t.attr("data-original-title") || (typeof n.title == "function" ? n.title.call(t[0]) : n.title), e
}, t.prototype.tip = function() {
return this.$tip = this.$tip || e(this.options.template)
}, t.prototype.arrow = function() {
return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
}, t.prototype.validate = function() {
this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null)
}, t.prototype.enable = function() {
this.enabled = !0
}, t.prototype.disable = function() {
this.enabled = !1
}, t.prototype.toggleEnabled = function() {
this.enabled = !this.enabled
}, t.prototype.toggle = function(t) {
var n = t ? e(t.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type) : this;
n.tip().hasClass("in") ? n.leave(n) : n.enter(n)
}, t.prototype.destroy = function() {
this.hide().$element.off("." + this.type).removeData("bs." + this.type)
};
var n = e.fn.tooltip;
e.fn.tooltip = function(n) {
return this.each(function() {
var r = e(this),
i = r.data("bs.tooltip"),
s = typeof n == "object" && n;
i || r.data("bs.tooltip", i = new t(this, s)), typeof n == "string" && i[n]()
})
}, e.fn.tooltip.Constructor = t, e.fn.tooltip.noConflict = function() {
return e.fn.tooltip = n, this
}
}(window.jQuery), + function(e) {
var t = function(e, t) {
this.init("popover", e, t)
};
if (!e.fn.tooltip) throw new Error("Popover requires tooltip.js");
t.DEFAULTS = e.extend({}, e.fn.tooltip.Constructor.DEFAULTS, {
placement: "right",
trigger: "click",
content: "",
template: '<div class="popover"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
}), t.prototype = e.extend({}, e.fn.tooltip.Constructor.prototype), t.prototype.constructor = t, t.prototype.getDefaults = function() {
return t.DEFAULTS
}, t.prototype.setContent = function() {
var e = this.tip(),
t = this.getTitle(),
n = this.getContent();
e.find(".popover-header")[this.options.html ? "html" : "text"](t), e.find(".popover-body")[this.options.html ? "html" : "text"](n), e.removeClass("fade bs-popover-top bs-popover-bottom bs-popover-left bs-popover-right show"), e.find(".popover-header").html() || e.find(".popover-header").hide()
}, t.prototype.hasContent = function() {
return this.getTitle() || this.getContent()
}, t.prototype.getContent = function() {
var e = this.$element,
t = this.options;
return e.attr("data-content") || (typeof t.content == "function" ? t.content.call(e[0]) : t.content)
}, t.prototype.arrow = function() {
return this.$arrow = this.$arrow || this.tip().find(".arrow")
}, t.prototype.tip = function() {
return this.$tip || (this.$tip = e(this.options.template)), this.$tip
};
var n = e.fn.popover;
e.fn.popover = function(n) {
return this.each(function() {
var r = e(this),
i = r.data("bs.popover"),
s = typeof n == "object" && n;
i || r.data("bs.popover", i = new t(this, s)), typeof n == "string" && i[n]()
})
}, e.fn.popover.Constructor = t, e.fn.popover.noConflict = function() {
return e.fn.popover = n, this
}
}(window.jQuery), + function(e) {
function t(n, r) {
var i, s = e.proxy(this.process, this);
this.$element = e(n).is("body") ? e(window) : e(n), this.$body = e("body"), this.$scrollElement = this.$element.on("scroll.bs.scroll-spy.data-api", s), this.options = e.extend({}, t.DEFAULTS, r), this.selector = (this.options.target || (i = e(n).attr("href")) && i.replace(/.*(?=#[^\s]+$)/, "") || "") + " .nav li > a", this.offsets = e([]), this.targets = e([]), this.activeTarget = null, this.refresh(), this.process()
}
t.DEFAULTS = {
offset: 10
}, t.prototype.refresh = function() {
var t = this.$element[0] == window ? "offset" : "position";
this.offsets = e([]), this.targets = e([]);
var n = this,
r = this.$body.find(this.selector).map(function() {
var r = e(this),
i = r.data("target") || r.attr("href"),
s = /^#\w/.test(i) && e(i);
return s && s.length && [
[s[t]().top + (!e.isWindow(n.$scrollElement.get(0)) && n.$scrollElement.scrollTop()), i]
] || null
}).sort(function(e, t) {
return e[0] - t[0]
}).each(function() {
n.offsets.push(this[0]), n.targets.push(this[1])
})
}, t.prototype.process = function() {
var e = this.$scrollElement.scrollTop() + this.options.offset,
t = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight,
n = t - this.$scrollElement.height(),
r = this.offsets,
i = this.targets,
s = this.activeTarget,
o;
if (e >= n) return s != (o = i.last()[0]) && this.activate(o);
for (o = r.length; o--;) s != i[o] && e >= r[o] && (!r[o + 1] || e <= r[o + 1]) && this.activate(i[o])
}, t.prototype.activate = function(t) {
this.activeTarget = t, e(this.selector).parents(".active").removeClass("active");
var n = this.selector + '[data-target="' + t + '"],' + this.selector + '[href="' + t + '"]',
r = e(n).parents("li").addClass("active");
r.parent(".dropdown-menu").length && (r = r.closest("li.dropdown").addClass("active")), r.trigger("activate")
};
var n = e.fn.scrollspy;
e.fn.scrollspy = function(n) {
return this.each(function() {
var r = e(this),
i = r.data("bs.scrollspy"),
s = typeof n == "object" && n;
i || r.data("bs.scrollspy", i = new t(this, s)), typeof n == "string" && i[n]()
})
}, e.fn.scrollspy.Constructor = t, e.fn.scrollspy.noConflict = function() {
return e.fn.scrollspy = n, this
}, e(window).on("load", function() {
e('[data-spy="scroll"]').each(function() {
var t = e(this);
t.scrollspy(t.data())
})
})
}(window.jQuery), + function(e) {
var t = function(t) {
this.element = e(t)
};
t.prototype.show = function() {
var t = this.element,
n = t.closest("ul:not(.dropdown-menu)"),
r = t.attr("data-target");
r || (r = t.attr("href"), r = r && r.replace(/.*(?=#[^\s]*$)/, ""));
if (t.parent("li").hasClass("active")) return;
var i = n.find(".active:last a")[0],
s = e.Event("show.bs.tab", {
relatedTarget: i
});
t.trigger(s);
if (s.isDefaultPrevented()) return;
var o = e(r);
this.activate(t.parent("li"), n), this.activate(o, o.parent(), function() {
t.trigger({
type: "shown.bs.tab",
relatedTarget: i
})
})
}, t.prototype.activate = function(t, n, r) {
function o() {
i.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"), t.addClass("active"), s ? (t[0].offsetWidth, t.addClass("in")) : t.removeClass("fade"), t.parent(".dropdown-menu") && t.closest("li.dropdown").addClass("active"), r && r()
}
var i = n.find("> .active"),
s = r && e.support.transition && i.hasClass("fade");
s ? i.one(e.support.transition.end, o).emulateTransitionEnd(150) : o(), i.removeClass("in")
};
var n = e.fn.tab;
e.fn.tab = function(n) {
return this.each(function() {
var r = e(this),
i = r.data("bs.tab");
i || r.data("bs.tab", i = new t(this)), typeof n == "string" && i[n]()
})
}, e.fn.tab.Constructor = t, e.fn.tab.noConflict = function() {
return e.fn.tab = n, this
}, e(document).on("click.bs.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"]', function(t) {
t.preventDefault(), e(this).tab("show")
})
}(window.jQuery), + function(e) {
var t = function(n, r) {
this.options = e.extend({}, t.DEFAULTS, r), this.$window = e(window).on("scroll.bs.affix.data-api", e.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", e.proxy(this.checkPositionWithEventLoop, this)), this.$element = e(n), this.affixed = this.unpin = null, this.checkPosition()
};
t.RESET = "affix affix-top affix-bottom", t.DEFAULTS = {
offset: 0
}, t.prototype.checkPositionWithEventLoop = function() {
setTimeout(e.proxy(this.checkPosition, this), 1)
}, t.prototype.checkPosition = function() {
if (!this.$element.is(":visible")) return;
var n = e(document).height(),
r = this.$window.scrollTop(),
i = this.$element.offset(),
s = this.options.offset,
o = s.top,
u = s.bottom;
typeof s != "object" && (u = o = s), typeof o == "function" && (o = s.top()), typeof u == "function" && (u = s.bottom());
var a = this.unpin != null && r + this.unpin <= i.top ? !1 : u != null && i.top + this.$element.height() >= n - u ? "bottom" : o != null && r <= o ? "top" : !1;
if (this.affixed === a) return;
this.unpin && this.$element.css("top", ""), this.affixed = a, this.unpin = a == "bottom" ? i.top - r : null, this.$element.removeClass(t.RESET).addClass("affix" + (a ? "-" + a : "")), a == "bottom" && this.$element.offset({
top: document.body.offsetHeight - u - this.$element.height()
})
};
var n = e.fn.affix;
e.fn.affix = function(n) {
return this.each(function() {
var r = e(this),
i = r.data("bs.affix"),
s = typeof n == "object" && n;
i || r.data("bs.affix", i = new t(this, s)), typeof n == "string" && i[n]()
})
}, e.fn.affix.Constructor = t, e.fn.affix.noConflict = function() {
return e.fn.affix = n, this
}, e(window).on("load", function() {
e('[data-spy="affix"]').each(function() {
var t = e(this),
n = t.data();
n.offset = n.offset || {}, n.offsetBottom && (n.offset.bottom = n.offsetBottom), n.offsetTop && (n.offset.top = n.offsetTop), t.affix(n)
})
})
}(window.jQuery), define("bootstrap", ["jquery"], function(e) {
return function() {
var t, n;
return t || e.$.fn.popover
}
}(this)), define("views/snippet", ["jquery", "underscore", "backbone", "text!templates/popover/popover-main.html", "text!templates/popover/popover-input.html", "text!templates/popover/popover-select.html", "text!templates/popover/popover-textarea.html", "text!templates/popover/popover-textarea-split.html", "text!templates/popover/popover-checkbox.html", "templates/snippet/snippet-templates", "bootstrap"], function(e, t, n, r, i, s, o, u, a, f) {
return n.View.extend({
tagName: "div",
className: "component",
initialize: function() {
this.template = t.template(f[this.model.idFriendlyTitle()]), this.popoverTemplates = {
input: t.template(i),
select: t.template(s),
textarea: t.template(o),
"textarea-split": t.template(u),
checkbox: t.template(a)
}
},
render: function(e) {
var n = this,
i = t.template(r)({
title: n.model.get("title"),
items: n.model.get("fields"),
popoverTemplates: n.popoverTemplates
});
return e ? this.$el.html(n.template(n.model.getValues())).attr({
"data-content": i,
"data-title": n.model.get("title"),
"data-trigger": "manual",
"data-html": !0
}) : this.$el.html(n.template(n.model.getValues()))
}
})
}), define("text!templates/app/temp.html", [], function() {
return "<form class='form-horizontal col-lg-5' id='temp'>\n <%= text %>\n</form>\n"
}), define("helper/pubsub", ["jquery", "underscore", "backbone"], function(e, t, n) {
return t.extend({}, n.Events)
}), define("views/temp-snippet", ["jquery", "views/snippet", "text!templates/app/temp.html", "helper/pubsub"], function(e, t, n, r) {
return t.extend({
initialize: function() {
r.on("newTempPostRender", this.postRender, this), this.constructor.__super__.initialize.call(this), this.tempTemplate = _.template(n)
},
className: "drag",
render: function() {
return this.$el.html(this.tempTemplate({
text: this.constructor.__super__.render.call(this).html()
}))
},
postRender: function(e) {
this.tempForm = this.$el.find("form")[0], this.halfHeight = Math.floor(this.tempForm.clientHeight / 2), this.halfWidth = Math.floor(this.tempForm.clientWidth / 2), this.centerOnEvent(e)
},
events: {
mousemove: "mouseMoveHandler",
mouseup: "mouseUpHandler"
},
centerOnEvent: function(e) {
var t = e.pageX,
n = e.pageY;
this.tempForm.style.top = n - this.halfHeight + "px", this.tempForm.style.left = t - this.halfWidth + "px", r.trigger("tempMove", e)
},
mouseMoveHandler: function(e) {
e.preventDefault(), this.centerOnEvent(e)
},
mouseUpHandler: function(e) {
e.preventDefault(), r.trigger("tempDrop", e, this.model), this.remove()
}
})
}), define("views/tab-snippet", ["jquery", "underscore", "backbone", "models/snippet", "views/snippet", "views/temp-snippet", "helper/pubsub"], function(e, t, n, r, i, s, o) {
return i.extend({
events: {
mousedown: "mouseDownHandler"
},
mouseDownHandler: function(t) {
t.preventDefault(), t.stopPropagation(), e(".popover").hide(), e("body").append((new s({
model: new r(e.extend(!0, {}, this.model.attributes))
})).render()), o.trigger("newTempPostRender", t)
}
})
}), define("collections/snippets", ["jquery", "underscore", "backbone", "models/snippet", "views/tab-snippet"], function(e, t, n, r, i) {
return n.Collection.extend({
model: r,
renderAll: function() {
return this.map(function(e) {
return (new i({
model: e
})).render()
})
}
})
}), define("views/my-form-snippet", ["jquery", "underscore", "backbone", "views/snippet", "views/temp-snippet", "helper/pubsub"], function(e, t, n, r, i, s) {
return r.extend({
events: {
click: "preventPropagation",
mousedown: "mouseDownHandler",
mouseup: "mouseUpHandler"
},
mouseDownHandler: function(t) {
t.stopPropagation(), t.preventDefault();
var n = this;
e(".popover").remove(), this.$el.popover({
placement: "left"
}).popover("show"), e(".popover #save").on("click", this.saveHandler(n)), e(".popover #cancel").on("click", this.cancelHandler(n)), this.model.get("title") !== "Form Name" && e("body").on("mousemove", function(e) {
if (Math.abs(t.pageX - e.pageX) > 10 || Math.abs(t.pageY - e.pageY) > 10) n.$el.popover("destroy"), s.trigger("mySnippetDrag", t, n.model), n.mouseUpHandler()
})
},
preventPropagation: function(e) {
e.stopPropagation(), e.preventDefault()
},
mouseUpHandler: function(t) {
e("body").off("mousemove")
},
saveHandler: function(n) {
return function(r) {
r.preventDefault();
var i = e(".popover .field");
t.each(i, function(r) {
// debugger;
var i = e(r),
s = i.attr("data-type"),
o = i.attr("id");
switch (s) {
case "checkbox1":
n.model.setField(o, i.is(":checked"));
break;
case "input":
n.model.setField(o, i.val());
break;
case "textarea":
n.model.setField(o, i.val());
break;
case "textarea-split":
n.model.setField(o, t.chain(i.val().split("\n")).map(function(t) {
return e.trim(t)
}).filter(function(e) {
return e.length > 0
}).value());
break;
case "select":
var u = t.map(i.find("option"), function(t) {
return {
value: t.value,
selected: t.selected,
label: e(t).text()
}
});
n.model.setField(o, u)
}
}), n.model.trigger("change"), e(".popover").remove()
}
},
cancelHandler: function(t) {
return function(n) {
n.preventDefault(), e(".popover").remove(), t.model.trigger("change")
}
}
})
}), define("collections/my-form-snippets", ["jquery", "underscore", "backbone", "models/snippet", "collections/snippets", "views/my-form-snippet"], function(e, t, n, r, i, s) {
return i.extend({
model: r,
renderAll: function() {
return this.map(function(e) {
return (new s({
model: e
})).render(!0)
})
},
renderAllClean: function() {
return this.map(function(e) {
return (new s({
model: e
})).render(!1)
})
}
})
}), define("text!templates/app/tab-nav.html", [], function() {
return '<li><a href="#<%= id %>" data-toggle="tab"><%= title %></a></li>\n'
}), define("views/tab", ["jquery", "underscore", "backbone", "text!templates/app/tab-nav.html"], function(e, t, n, r) {
return n.View.extend({
tagName: "div",
className: "tab-pane",
initialize: function() {
this.id = this.options.title.toLowerCase().replace(/\W/g, ""), this.tabNavTemplate = t.template(r), this.render()
},
render: function() {
var n = this;
n.collection !== undefined ? t.each(this.collection.renderAll(), function(e) {
n.$el.append(e)
}) : n.options.content && n.$el.append(n.options.content), e("#formtabs").append(this.tabNavTemplate({
title: this.options.title,
id: this.id
})), this.$el.attr("id", this.id), this.$el.appendTo(".tab-content"), this.delegateEvents()
}
})
}), define("text!templates/app/renderform.html", [], function() {
return '<form class="form-horizontal">\n<fieldset>\n\n<%= text %>\n</fieldset>\n</form>\n'
}), define("Guid", function() {}), define("views/my-form", ["jquery", "underscore", "backbone", "views/temp-snippet", "helper/pubsub", "text!templates/app/renderform.html", "Guid"], function(e, t, n, r, i, s) {
return n.View.extend({
tagName: "fieldset",
initialize: function() {
this.collection.on("add", this.render, this), this.collection.on("remove", this.render, this), this.collection.on("change", this.render, this), i.on("mySnippetDrag", this.handleSnippetDrag, this), i.on("tempMove", this.handleTempMove, this), i.on("tempDrop", this.handleTempDrop, this), this.$build = e("#build"), this.build = document.getElementById("build"), this.buildBCR = this.build.getBoundingClientRect(), this.renderForm = t.template(s), this.render()
},
render: function() {
this.$el.empty();
var n = this;
t.each(this.collection.renderAll(), function(e) {
n.$el.append(e)
}), e("#render").val(n.renderForm({
text: t.map(this.collection.renderAllClean(), function(e) {
return e.html()
}).join("\n")
})), this.$el.appendTo("#build form"), this.delegateEvents()
},
getBottomAbove: function(n) {
var r = e(this.$el.find(".component")),
i = t.find(r, function(t) {
return e(t).position().top + e(t).height() > n - 160 ? !0 : !1
});
return i ? i : r[0]
},
handleSnippetDrag: function(t, n) {
e("body").append((new r({
model: n
})).render()), this.collection.remove(n), i.trigger("newTempPostRender", t)
},
handleTempMove: function(t) {
e(".target").removeClass("target"), t.pageX >= this.buildBCR.left && t.pageX < this.$build.width() + this.buildBCR.left && t.pageY >= this.buildBCR.top && t.pageY < this.$build.height() + this.buildBCR.top ? e(this.getBottomAbove(t.pageY)).addClass("target") : e(".target").removeClass("target")
},
handleTempDrop: function(t, n, r) {
if (t.pageX >= this.buildBCR.left && t.pageX < this.$build.width() + this.buildBCR.left && t.pageY >= this.buildBCR.top && t.pageY < this.$build.height() + this.buildBCR.top) {
var r = e(".target").index();
e(".target").removeClass("target"), this.collection.add(n, {
at: r + 1
})
} else e(".target").removeClass("target")
}
})
}), define("text!data/input.json", [], function() {
return '[\n {\n "title": "Text Input",\n "fields": {\n "id": {\n "label": "ID / Name",\n "type": "input",\n "value": "textinput"\n },\n "label": {\n "label": "Label Text",\n "type": "input",\n "value": "Text Input"\n },\n "placeholder": {\n "label": "Placeholder",\n "type": "input",\n "value": "placeholder"\n },\n "helptext": {\n "label": "Help Text",\n "type": "input",\n "value": "help"\n },\n "required": {\n "label": "Required",\n "type": "checkbox",\n "value": false\n },\n "inputsize": {\n "label": "Input Size",\n "type": "select",\n "value": [\n {\n "value": "col-md-1",\n "label": "Mini",\n "selected": false\n },\n {\n "value": "col-md-2",\n "label": "Small",\n "selected": false\n },\n {\n "value": "col-lg-12",\n "label": "Medium",\n "selected": true\n },\n {\n "value": "col-lg-12",\n "label": "Large",\n "selected": false\n },\n {\n "value": "col-md-6",\n "label": "Xlarge",\n "selected": false\n },\n {\n "value": "col-md-8",\n "label": "Xxlarge",\n "selected": false\n }\n ]\n }\n }\n },\n {\n "title": "Password Input",\n "fields": {\n "id": {\n "label": "ID / Name",\n "type": "input",\n "value": "passwordinput"\n },\n "label": {\n "label": "Label Text",\n "type": "input",\n "value": "Password Input"\n },\n "placeholder": {\n "label": "Placeholder",\n "type": "input",\n "value": "placeholder"\n },\n "helptext": {\n "label": "Help Text",\n "type": "input",\n "value": "help"\n },\n "required": {\n "label": "Required",\n "type": "checkbox",\n "value": false\n },\n "inputsize": {\n "label": "Input Size",\n "type": "select",\n "value": [\n {\n "value": "col-md-1",\n "label": "Mini",\n "selected": false\n },\n {\n "value": "col-md-2",\n "label": "Small",\n "selected": false\n },\n {\n "value": "col-lg-12",\n "label": "Medium",\n "selected": true\n },\n {\n "value": "col-lg-12",\n "label": "Large",\n "selected": false\n },\n {\n "value": "col-md-6",\n "label": "Xlarge",\n "selected": false\n },\n {\n "value": "col-md-8",\n "label": "Xxlarge",\n "selected": false\n }\n ]\n }\n }\n },\n {\n "title": "Search Input",\n "fields": {\n "id": {\n "label": "ID / Name",\n "type": "input",\n "value": "searchinput"\n },\n "label": {\n "label": "Label Text",\n "type": "input",\n "value": "Search Input"\n },\n "placeholder": {\n "label": "Placeholder",\n "type": "input",\n "value": "placeholder"\n },\n "helptext": {\n "label": "Help Text",\n "type": "input",\n "value": "help"\n },\n "required": {\n "label": "Required",\n "type": "checkbox",\n "value": false\n },\n "inputsize": {\n "label": "Input Size",\n "type": "select",\n "value": [\n {\n "value": "col-md-1",\n "label": "Mini",\n "selected": false\n },\n {\n "value": "col-md-2",\n "label": "Small",\n "selected": false\n },\n {\n "value": "col-lg-12",\n "label": "Medium",\n "selected": true\n },\n {\n "value": "col-lg-12",\n "label": "Large",\n "selected": false\n },\n {\n "value": "col-md-6",\n "label": "Xlarge",\n "selected": false\n },\n {\n "value": "col-md-8",\n "label": "Xxlarge",\n "selected": false\n }\n ]\n }\n }\n },\n {\n "title": "Prepended Text",\n "fields": {\n "id": {\n "label": "ID / Name",\n "type": "input",\n "value": "prependedtext"\n },\n "label": {\n "label": "Label Text",\n "type": "input",\n "value": "Prepended Text"\n },\n "prepend": {\n "label": "Prepend",\n "type": "input",\n "value": "prepend"\n },\n "placeholder": {\n "label": "Placeholder",\n "type": "input",\n "value": "placeholder"\n },\n "helptext": {\n "label": "Help Text",\n "type": "input",\n "value": "help"\n },\n "required": {\n "label": "Required",\n "type": "checkbox",\n "value": false\n },\n "inputsize": {\n "label": "Input Size",\n "type": "select",\n "value": [\n {\n "value": "col-md-1",\n "label": "Mini",\n "selected": false\n },\n {\n "value": "col-md-2",\n "label": "Small",\n "selected": false\n },\n {\n "value": "col-lg-12",\n "label": "Medium",\n "selected": true\n },\n {\n "value": "col-lg-12",\n "label": "Large",\n "selected": false\n },\n {\n "value": "col-md-6",\n "label": "Xlarge",\n "selected": false\n },\n {\n "value": "col-md-8",\n "label": "Xxlarge",\n "selected": false\n }\n ]\n }\n }\n },\n {\n "title": "Appended Text",\n "fields": {\n "id": {\n "label": "ID / Name",\n "type": "input",\n "value": "appendedtext"\n },\n "label": {\n "label": "Label Text",\n "type": "input",\n "value": "Appended Text"\n },\n "append": {\n "label": "Append",\n "type": "input",\n "value": "append"\n },\n "placeholder": {\n "label": "Placeholder",\n "type": "input",\n "value": "placeholder"\n },\n "helptext": {\n "label": "Help Text",\n "type": "input",\n "value": "help"\n },\n "required": {\n "label": "Required",\n "type": "checkbox",\n "value": false\n },\n "inputsize": {\n "label": "Input Size",\n "type": "select",\n "value": [\n {\n "value": "col-md-1",\n "label": "Mini",\n "selected": false\n },\n {\n "value": "col-md-2",\n "label": "Small",\n "selected": false\n },\n {\n "value": "col-lg-12",\n "label": "Medium",\n "selected": true\n },\n {\n "value": "col-lg-12",\n "label": "Large",\n "selected": false\n },\n {\n "value": "col-md-6",\n "label": "Xlarge",\n "selected": false\n },\n {\n "value": "col-md-8",\n "label": "Xxlarge",\n "selected": false\n }\n ]\n }\n }\n },\n {\n "title": "Prepended Checkbox",\n "fields": {\n "id": {\n "label": "ID / Name",\n "type": "input",\n "value": "prependedcheckbox"\n },\n "label": {\n "label": "Label Text",\n "type": "input",\n "value": "Prepended Checkbox"\n },\n "placeholder": {\n "label": "Placeholder",\n "type": "input",\n "value": "placeholder"\n },\n "helptext": {\n "label": "Help Text",\n "type": "input",\n "value": "help"\n },\n "checked": {\n "label": "Checked",\n "type": "checkbox",\n "value": false\n },\n "required": {\n "label": "Required",\n "type": "checkbox",\n "value": false\n },\n "inputsize": {\n "label": "Input Size",\n "type": "select",\n "value": [\n {\n "value": "col-md-1",\n "label": "Mini",\n "selected": false\n },\n {\n "value": "col-md-2",\n "label": "Small",\n "selected": false\n },\n {\n "value": "col-lg-12",\n "label": "Medium",\n "selected": true\n },\n {\n "value": "col-lg-12",\n "label": "Large",\n "selected": false\n },\n {\n "value": "col-md-6",\n "label": "Xlarge",\n "selected": false\n },\n {\n "value": "col-md-8",\n "label": "Xxlarge",\n "selected": false\n }\n ]\n }\n }\n },\n {\n "title": "Appended Checkbox",\n "fields": {\n "id": {\n "label": "ID / Name",\n "type": "input",\n "value": "appendedcheckbox"\n },\n "label": {\n "label": "Label Text",\n "type": "input",\n "value": "Appended Checkbox"\n },\n "placeholder": {\n "label": "Placeholder",\n "type": "input",\n "value": "placeholder"\n },\n "helptext": {\n "label": "Help Text",\n "type": "input",\n "value": "help"\n },\n "checked": {\n "label": "Checked",\n "type": "checkbox",\n "value": false\n },\n "required": {\n "label": "Required",\n "type": "checkbox",\n "value": false\n },\n "inputsize": {\n "label": "Input Size",\n "type": "select",\n "value": [\n {\n "value": "col-md-1",\n "label": "Mini",\n "selected": false\n },\n {\n "value": "col-md-2",\n "label": "Small",\n "selected": false\n },\n {\n "value": "col-lg-12",\n "label": "Medium",\n "selected": true\n },\n {\n "value": "col-lg-12",\n "label": "Large",\n "selected": false\n },\n {\n "value": "col-md-6",\n "label": "Xlarge",\n "selected": false\n },\n {\n "value": "col-md-8",\n "label": "Xxlarge",\n "selected": false\n }\n ]\n }\n }\n },\n {\n "title": "Button Drop Down",\n "fields": {\n "id": {\n "label": "ID / Name",\n "type": "input",\n "value": "buttondropdown"\n },\n "label": {\n "label": "Label Text",\n "type": "input",\n "value": "Button Drop Down"\n },\n "placeholder": {\n "label": "Placeholder",\n "type": "input",\n "value": "placeholder"\n },\n "buttontext": {\n "label": "Button Text",\n "type": "input",\n "value": "Action"\n },\n "buttonoptions": {\n "label": "Options",\n "type": "textarea-split",\n "value": [\n "Option one",\n "Option two",\n "Option three"\n ]\n },\n "required": {\n "label": "Required",\n "type": "checkbox",\n "value": false\n },\n "inputsize": {\n "label": "Input Size",\n "type": "select",\n "value": [\n {\n "value": "col-md-1",\n "label": "Mini",\n "selected": false\n },\n {\n "value": "col-md-2",\n "label": "Small",\n "selected": false\n },\n {\n "value": "col-lg-12",\n "label": "Medium",\n "selected": true\n },\n {\n "value": "col-lg-12",\n "label": "Large",\n "selected": false\n },\n {\n "value": "col-md-6",\n "label": "Xlarge",\n "selected": false\n },\n {\n "value": "col-md-8",\n "label": "Xxlarge",\n "selected": false\n }\n ]\n }\n }\n },\n {\n "title": "Text Area",\n "fields": {\n "id": {\n "label": "ID / Name",\n "type": "input",\n "value": "textarea"\n },\n "label": {\n "label": "Label Text",\n "type": "input",\n "value": "Text Area"\n },\n "textarea": {\n "label": "Starting Text",\n "type": "textarea",\n "value": "default text"\n }\n }\n }\n]'
}), define("text!data/radio.json", [], function() {
return '[\n {\n "title": "Multiple Radios",\n "fields": {\n "name": {\n "label": "Group Name",\n "type": "input",\n "value": "radios"\n },\n "label": {\n "label": "Label Text",\n "type": "input",\n "value": "Multiple Radios"\n },\n "radios": {\n "label": "Radios",\n "type": "textarea-split",\n "value": [\n "Option one",\n "Option two"\n ]\n },\n "radiosValues" :{\n "label" : "Radios Values",\n "type" : "textarea-split",\n "value" :[\n "1",\n "2"\n ] \n }\n }\n },\n {\n "title": "Multiple Radios Inline",\n "fields": {\n "name": {\n "label": "Group Name",\n "type": "input",\n "value": "radios"\n },\n "label": {\n "label": "Label Text",\n "type": "input",\n "value": "Inline Radios"\n },\n "radios": {\n "label": "Radios",\n "type": "textarea-split",\n "value": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n "radiosValues" :{\n "label" : "Radios Values",\n "type" : "textarea-split",\n "value" :[\n "1",\n "2",\n "3",\n "4"\n ] \n }\n }\n },\n {\n "title": "Multiple Checkboxes",\n "fields": {\n "name": {\n "label": "Group Name",\n "type": "input",\n "value": "checkboxes"\n },\n "label": {\n "label": "Label Text",\n "type": "input",\n "value": "Multiple Checkboxes"\n },\n "checkboxes": {\n "label": "Checkboxes",\n "type": "textarea-split",\n "value": [\n "Option one",\n "Option two"\n ]\n },\n "checkboxesValues":{\n "label" : "Checkboxes Values",\n "type" : "textarea-split",\n "value" : [\n "1",\n "2"\n ] \n }\n }\n },\n {\n "title": "Multiple Checkboxes Inline",\n "fields": {\n "name": {\n "label": "Group Name",\n "type": "input",\n "value": "checkboxes"\n },\n "label": {\n "label": "Label Text",\n "type": "input",\n "value": "Inline Checkboxes"\n },\n "checkboxes": {\n "label": "Checkboxes",\n "type": "textarea-split",\n "value": [\n 1,\n 2,\n 3,\n 4\n ]\n },\n "checkboxesValues":{\n "label" : "Checkboxes Values",\n "type" : "textarea-split",\n "value" : [\n "1",\n "2",\n "3",\n "4"\n ] \n }\n }\n }\n]'
}), define("text!data/select.json", [], function() {
return '[\n {\n "title": "Select Basic",\n "fields": {\n "id": {\n "label": "ID / Name",\n "type": "input",\n "value": "selectbasic"\n },\n "label": {\n "label": "Label Text",\n "type": "input",\n "value": "Select Basic"\n },\n "options": {\n "label": "Options",\n "type": "textarea-split",\n "value": [\n "Option one",\n "Option two"\n ]\n },\n "values":{\n "label": "Values",\n "type": "textarea-split",\n "value": [\n "1",\n "2"\n ]\n },\n "inputsize": {\n "label": "Input Size",\n "type": "select",\n "value": [\n {\n "value": "col-md-1",\n "label": "Mini",\n "selected": false\n },\n {\n "value": "col-md-2",\n "label": "Small",\n "selected": false\n },\n {\n "value": "col-lg-12",\n "label": "Medium",\n "selected": true\n },\n {\n "value": "col-lg-12",\n "label": "Large",\n "selected": false\n },\n {\n "value": "col-md-6",\n "label": "Xlarge",\n "selected": false\n },\n {\n "value": "col-md-8",\n "label": "Xxlarge",\n "selected": false\n }\n ]\n }\n }\n },\n {\n "title": "Select Multiple",\n "fields": {\n "id": {\n "label": "ID / Name",\n "type": "input",\n "value": "selectmultiple"\n },\n "label": {\n "label": "Label Text",\n "type": "input",\n "value": "Select Multiple"\n },\n "options": {\n "label": "Options",\n "type": "textarea-split",\n "value": [\n "Option one",\n "Option two"\n ]\n },\n "values":{\n "label": "Values",\n "type": "textarea-split",\n "value": [\n "1",\n "2"\n ]\n },\n "inputsize": {\n "label": "Input Size",\n "type": "select",\n "value": [\n {\n "value": "col-md-1",\n "label": "Mini",\n "selected": false\n },\n {\n "value": "col-md-2",\n "label": "Small",\n "selected": false\n },\n {\n "value": "col-lg-12",\n "label": "Medium",\n "selected": true\n },\n {\n "value": "col-lg-12",\n "label": "Large",\n "selected": false\n },\n {\n "value": "col-md-6",\n "label": "Xlarge",\n "selected": false\n },\n {\n "value": "col-md-8",\n "label": "Xxlarge",\n "selected": false\n }\n ]\n }\n }\n }\n]'
}), define("text!data/buttons.json", [], function() {
return '[\n {\n "title": "File Button",\n "fields": {\n "id": {\n "label": "ID / Name",\n "type": "input",\n "value": "filebutton"\n },\n "label": {\n "label": "Label Text",\n "type": "input",\n "value": "File Button"\n }\n }\n },\n {\n "title": "Single Button",\n "fields": {\n "id": {\n "label": "ID / Name",\n "type": "input",\n "value": "singlebutton"\n },\n "label": {\n "label": "Label Text",\n "type": "input",\n "value": "Single Button"\n },\n "buttonlabel": {\n "label": "Button Label",\n "type": "input",\n "value": "Button"\n },\n "buttontype": {\n "label": "Button Type",\n "type": "select",\n "value": [\n {\n "value": "btn-default",\n "label": "Default",\n "selected": false\n },\n {\n "value": "btn-primary",\n "label": "Primary",\n "selected": true\n },\n {\n "value": "btn-info",\n "label": "Info",\n "selected": false\n },\n {\n "value": "btn-success",\n "label": "Success",\n "selected": false\n },\n {\n "value": "btn-warning",\n "label": "Warning",\n "selected": false\n },\n {\n "value": "btn-danger",\n "label": "Danger",\n "selected": false\n },\n {\n "value": "btn-inverse",\n "label": "Inverse",\n "selected": false\n }\n ]\n }\n }\n },\n {\n "title": "Double Button",\n "fields": {\n "id": {\n "label": "Button 1 ID / Name",\n "type": "input",\n "value": "button1id"\n },\n "label": {\n "label": "Label Text",\n "type": "input",\n "value": "Double Button"\n },\n "button1label": {\n "label": "Button Label",\n "type": "input",\n "value": "Good Button"\n },\n "button1type": {\n "label": "Button Type",\n "type": "select",\n "value": [\n {\n "value": "btn-default",\n "label": "Default",\n "selected": false\n },\n {\n "value": "btn-primary",\n "label": "Primary",\n "selected": false\n },\n {\n "value": "btn-info",\n "label": "Info",\n "selected": false\n },\n {\n "value": "btn-success",\n "label": "Success",\n "selected": true\n },\n {\n "value": "btn-warning",\n "label": "Warning",\n "selected": false\n },\n {\n "value": "btn-danger",\n "label": "Danger",\n "selected": false\n },\n {\n "value": "btn-inverse",\n "label": "Inverse",\n "selected": false\n }\n ]\n },\n "id2": {\n "label": "Button 2 ID / Name",\n "type": "input",\n "value": "button2id"\n },\n "button2label": {\n "label": "Button Label",\n "type": "input",\n "value": "Scary Button"\n },\n "button2type": {\n "label": "Button Type",\n "type": "select",\n "value": [\n {\n "value": "btn-default",\n "label": "Default",\n "selected": false\n },\n {\n "value": "btn-primary",\n "label": "Primary",\n "selected": false\n },\n {\n "value": "btn-info",\n "label": "Info",\n "selected": false\n },\n {\n "value": "btn-success",\n "label": "Success",\n "selected": false\n },\n {\n "value": "btn-warning",\n "label": "Warning",\n "selected": false\n },\n {\n "value": "btn-danger",\n "label": "Danger",\n "selected": true\n },\n {\n "value": "btn-inverse",\n "label": "Inverse",\n "selected": false\n }\n ]\n }\n }\n }\n]'
}), define("text!templates/app/render.html", [], function() {
return '<h6>Rendered source of your form:</h6>\n<textarea id="render" class="render p-3"></textarea>\n'
}), define("app/app", ["jquery", "underscore", "backbone", "collections/snippets", "collections/my-form-snippets", "views/tab", "views/my-form", "text!data/input.json", "text!data/radio.json", "text!data/select.json", "text!data/buttons.json", "text!templates/app/render.html"], function(e, t, n, r, i, s, o, u, a, f, l, c, h) {
return {
initialize: function() {
new s({
title: "Input",
collection: new r(JSON.parse(u))
}), new s({
title: "Radios / Checkboxes",
collection: new r(JSON.parse(a))
}), new s({
title: "Select",
collection: new r(JSON.parse(f))
}), new s({
title: "Buttons",
collection: new r(JSON.parse(l))
}), new s({
title: "View HTML",
content: c
}), e("#components .tab-pane").first().addClass("active"), e("#formtabs li").addClass("nav-item"), e("#formtabs li a").addClass("nav-link m-r-5").first().addClass("active"), new o({
title: "Original",
collection: new i([{
title: "Form Name",
fields: {
name: {
label: "Form Name",
type: "input",
value: "Form Name"
}
}
}])
})
}
}
}), require.config({
baseUrl: "assets/js/lib/",
shim: {
backbone: {
deps: ["underscore", "jquery"],
exports: "Backbone"
},
underscore: {
exports: "_"
},
bootstrap: {
deps: ["jquery"],
exports: "$.fn.popover"
}
},
paths: {
app: "..",
collections: "../collections",
data: "../data",
models: "../models",
helper: "../helper",
templates: "../templates",
views: "../views"
}
}), require(["app/app"], function(e) {
e.initialize()
}), define("../main", function() {});