Created
June 11, 2015 15:53
-
-
Save edjasperdev/319e8258095311d6f708 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
! function(e, t) { | |
t() | |
}(this, function() { | |
var requirejs, require, define; | |
! function(e) { | |
function t(e, t) { | |
return m.call(e, t) | |
} | |
function n(e, t) { | |
var n, i, s, r, o, a, c, l, u, h, d, p = t && t.split("/"), | |
f = g.map, | |
A = f && f["*"] || {}; | |
if (e && "." === e.charAt(0)) | |
if (t) { | |
for (p = p.slice(0, p.length - 1), e = e.split("/"), o = e.length - 1, g.nodeIdCompat && v.test(e[o]) && (e[o] = e[o].replace(v, "")), e = p.concat(e), u = 0; u < e.length; u += 1) | |
if (d = e[u], "." === d) e.splice(u, 1), u -= 1; | |
else if (".." === d) { | |
if (1 === u && (".." === e[2] || ".." === e[0])) break; | |
u > 0 && (e.splice(u - 1, 2), u -= 2) | |
} | |
e = e.join("/") | |
} else 0 === e.indexOf("./") && (e = e.substring(2)); | |
if ((p || A) && f) { | |
for (n = e.split("/"), u = n.length; u > 0; u -= 1) { | |
if (i = n.slice(0, u).join("/"), p) | |
for (h = p.length; h > 0; h -= 1) | |
if (s = f[p.slice(0, h).join("/")], s && (s = s[i])) { | |
r = s, a = u; | |
break | |
} | |
if (r) break; | |
!c && A && A[i] && (c = A[i], l = u) | |
}!r && c && (r = c, a = l), r && (n.splice(0, a, r), e = n.join("/")) | |
} | |
return e | |
} | |
function i(t, n) { | |
return function() { | |
return u.apply(e, y.call(arguments, 0).concat([t, n])) | |
} | |
} | |
function s(e) { | |
return function(t) { | |
return n(t, e) | |
} | |
} | |
function r(e) { | |
return function(t) { | |
p[e] = t | |
} | |
} | |
function o(n) { | |
if (t(f, n)) { | |
var i = f[n]; | |
delete f[n], A[n] = !0, l.apply(e, i) | |
} | |
if (!t(p, n) && !t(A, n)) throw new Error("No " + n); | |
return p[n] | |
} | |
function a(e) { | |
var t, n = e ? e.indexOf("!") : -1; | |
return n > -1 && (t = e.substring(0, n), e = e.substring(n + 1, e.length)), [t, e] | |
} | |
function c(e) { | |
return function() { | |
return g && g.config && g.config[e] || {} | |
} | |
} | |
var l, u, h, d, p = {}, | |
f = {}, | |
g = {}, | |
A = {}, | |
m = Object.prototype.hasOwnProperty, | |
y = [].slice, | |
v = /\.js$/; | |
h = function(e, t) { | |
var i, r = a(e), | |
c = r[0]; | |
return e = r[1], c && (c = n(c, t), i = o(c)), c ? e = i && i.normalize ? i.normalize(e, s(t)) : n(e, t) : (e = n(e, t), r = a(e), c = r[0], e = r[1], c && (i = o(c))), { | |
f: c ? c + "!" + e : e, | |
n: e, | |
pr: c, | |
p: i | |
} | |
}, d = { | |
require: function(e) { | |
return i(e) | |
}, | |
exports: function(e) { | |
var t = p[e]; | |
return "undefined" != typeof t ? t : p[e] = {} | |
}, | |
module: function(e) { | |
return { | |
id: e, | |
uri: "", | |
exports: p[e], | |
config: c(e) | |
} | |
} | |
}, l = function(n, s, a, c) { | |
var l, u, g, m, y, v, b = [], | |
w = typeof a; | |
if (c = c || n, "undefined" === w || "function" === w) { | |
for (s = !s.length && a.length ? ["require", "exports", "module"] : s, y = 0; y < s.length; y += 1) | |
if (m = h(s[y], c), u = m.f, "require" === u) b[y] = d.require(n); | |
else if ("exports" === u) b[y] = d.exports(n), v = !0; | |
else if ("module" === u) l = b[y] = d.module(n); | |
else if (t(p, u) || t(f, u) || t(A, u)) b[y] = o(u); | |
else { | |
if (!m.p) throw new Error(n + " missing " + u); | |
m.p.load(m.n, i(c, !0), r(u), {}), b[y] = p[u] | |
} | |
g = a ? a.apply(p[n], b) : void 0, n && (l && l.exports !== e && l.exports !== p[n] ? p[n] = l.exports : g === e && v || (p[n] = g)) | |
} else n && (p[n] = a) | |
}, requirejs = require = u = function(t, n, i, s, r) { | |
if ("string" == typeof t) return d[t] ? d[t](n) : o(h(t, n).f); | |
if (!t.splice) { | |
if (g = t, g.deps && u(g.deps, g.callback), !n) return; | |
n.splice ? (t = n, n = i, i = null) : t = e | |
} | |
return n = n || function() {}, "function" == typeof i && (i = s, s = r), s ? l(e, t, n, i) : setTimeout(function() { | |
l(e, t, n, i) | |
}, 4), u | |
}, u.config = function(e) { | |
return u(e) | |
}, requirejs._defined = p, define = function(e, n, i) { | |
n.splice || (i = n, n = []), t(p, e) || t(f, e) || (f[e] = [e, n, i]) | |
}, define.amd = { | |
jQuery: !0 | |
} | |
}(), define("../../almond/almond", function() {}), | |
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 i(e) { | |
var t = kt[e] = {}; | |
return ut.each(e.match(dt) || [], function(e, n) { | |
t[n] = !0 | |
}), t | |
} | |
function s(e, n, i, s) { | |
if (ut.acceptData(e)) { | |
var r, o, a = ut.expando, | |
c = e.nodeType, | |
l = c ? ut.cache : e, | |
u = c ? e[a] : e[a] && a; | |
if (u && l[u] && (s || l[u].data) || i !== t || "string" != typeof n) return u || (u = c ? e[a] = tt.pop() || ut.guid++ : a), l[u] || (l[u] = c ? {} : { | |
toJSON: ut.noop | |
}), ("object" == typeof n || "function" == typeof n) && (s ? l[u] = ut.extend(l[u], n) : l[u].data = ut.extend(l[u].data, n)), o = l[u], s || (o.data || (o.data = {}), o = o.data), i !== t && (o[ut.camelCase(n)] = i), "string" == typeof n ? (r = o[n], null == r && (r = o[ut.camelCase(n)])) : r = o, r | |
} | |
} | |
function r(e, t, n) { | |
if (ut.acceptData(e)) { | |
var i, s, r = e.nodeType, | |
o = r ? ut.cache : e, | |
c = r ? e[ut.expando] : ut.expando; | |
if (o[c]) { | |
if (t && (i = n ? o[c] : o[c].data)) { | |
ut.isArray(t) ? t = t.concat(ut.map(t, ut.camelCase)) : t in i ? t = [t] : (t = ut.camelCase(t), t = t in i ? [t] : t.split(" ")), s = t.length; | |
for (; s--;) delete i[t[s]]; | |
if (n ? !a(i) : !ut.isEmptyObject(i)) return | |
}(n || (delete o[c].data, a(o[c]))) && (r ? ut.cleanData([e], !0) : ut.support.deleteExpando || o != o.window ? delete o[c] : o[c] = null) | |
} | |
} | |
} | |
function o(e, n, i) { | |
if (i === t && 1 === e.nodeType) { | |
var s = "data-" + n.replace(Bt, "-$1").toLowerCase(); | |
if (i = e.getAttribute(s), "string" == typeof i) { | |
try { | |
i = "true" === i ? !0 : "false" === i ? !1 : "null" === i ? null : +i + "" === i ? +i : St.test(i) ? ut.parseJSON(i) : i | |
} catch (r) {} | |
ut.data(e, n, i) | |
} else i = t | |
} | |
return i | |
} | |
function a(e) { | |
var t; | |
for (t in e) | |
if (("data" !== t || !ut.isEmptyObject(e[t])) && "toJSON" !== t) return !1; | |
return !0 | |
} | |
function c() { | |
return !0 | |
} | |
function l() { | |
return !1 | |
} | |
function u() { | |
try { | |
return K.activeElement | |
} catch (e) {} | |
} | |
function h(e, t) { | |
do e = e[t]; while (e && 1 !== e.nodeType); | |
return e | |
} | |
function d(e, t, n) { | |
if (ut.isFunction(t)) return ut.grep(e, function(e, i) { | |
return !!t.call(e, i, e) !== n | |
}); | |
if (t.nodeType) return ut.grep(e, function(e) { | |
return e === t !== n | |
}); | |
if ("string" == typeof t) { | |
if (Ut.test(t)) return ut.filter(t, e, n); | |
t = ut.filter(t, e) | |
} | |
return ut.grep(e, function(e) { | |
return ut.inArray(e, t) >= 0 !== n | |
}) | |
} | |
function p(e) { | |
var t = Vt.split("|"), | |
n = e.createDocumentFragment(); | |
if (n.createElement) | |
for (; t.length;) n.createElement(t.pop()); | |
return n | |
} | |
function f(e, t) { | |
return ut.nodeName(e, "table") && ut.nodeName(1 === t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e | |
} | |
function g(e) { | |
return e.type = (null !== ut.find.attr(e, "type")) + "/" + e.type, e | |
} | |
function A(e) { | |
var t = rn.exec(e.type); | |
return t ? e.type = t[1] : e.removeAttribute("type"), e | |
} | |
function m(e, t) { | |
for (var n, i = 0; null != (n = e[i]); i++) ut._data(n, "globalEval", !t || ut._data(t[i], "globalEval")) | |
} | |
function y(e, t) { | |
if (1 === t.nodeType && ut.hasData(e)) { | |
var n, i, s, r = ut._data(e), | |
o = ut._data(t, r), | |
a = r.events; | |
if (a) { | |
delete o.handle, o.events = {}; | |
for (n in a) | |
for (i = 0, s = a[n].length; s > i; i++) ut.event.add(t, n, a[n][i]) | |
} | |
o.data && (o.data = ut.extend({}, o.data)) | |
} | |
} | |
function v(e, t) { | |
var n, i, s; | |
if (1 === t.nodeType) { | |
if (n = t.nodeName.toLowerCase(), !ut.support.noCloneEvent && t[ut.expando]) { | |
s = ut._data(t); | |
for (i in s.events) ut.removeEvent(t, i, s.handle); | |
t.removeAttribute(ut.expando) | |
} | |
"script" === n && t.text !== e.text ? (g(t).text = e.text, A(t)) : "object" === n ? (t.parentNode && (t.outerHTML = e.outerHTML), ut.support.html5Clone && e.innerHTML && !ut.trim(t.innerHTML) && (t.innerHTML = e.innerHTML)) : "input" === n && tn.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 i, s, r = 0, | |
o = typeof e.getElementsByTagName !== q ? e.getElementsByTagName(n || "*") : typeof e.querySelectorAll !== q ? e.querySelectorAll(n || "*") : t; | |
if (!o) | |
for (o = [], i = e.childNodes || e; null != (s = i[r]); r++) !n || ut.nodeName(s, n) ? o.push(s) : ut.merge(o, b(s, n)); | |
return n === t || n && ut.nodeName(e, n) ? ut.merge([e], o) : o | |
} | |
function w(e) { | |
tn.test(e.type) && (e.defaultChecked = e.checked) | |
} | |
function x(e, t) { | |
if (t in e) return t; | |
for (var n = t.charAt(0).toUpperCase() + t.slice(1), i = t, s = kn.length; s--;) | |
if (t = kn[s] + n, t in e) return t; | |
return i | |
} | |
function C(e, t) { | |
return e = t || e, "none" === ut.css(e, "display") || !ut.contains(e.ownerDocument, e) | |
} | |
function E(e, t) { | |
for (var n, i, s, r = [], o = 0, a = e.length; a > o; o++) i = e[o], i.style && (r[o] = ut._data(i, "olddisplay"), n = i.style.display, t ? (r[o] || "none" !== n || (i.style.display = ""), "" === i.style.display && C(i) && (r[o] = ut._data(i, "olddisplay", _(i.nodeName)))) : r[o] || (s = C(i), (n && "none" !== n || !s) && ut._data(i, "olddisplay", s ? n : ut.css(i, "display")))); | |
for (o = 0; a > o; o++) i = e[o], i.style && (t && "none" !== i.style.display && "" !== i.style.display || (i.style.display = t ? r[o] || "" : "none")); | |
return e | |
} | |
function k(e, t, n) { | |
var i = yn.exec(t); | |
return i ? Math.max(0, i[1] - (n || 0)) + (i[2] || "px") : t | |
} | |
function S(e, t, n, i, s) { | |
for (var r = n === (i ? "border" : "content") ? 4 : "width" === t ? 1 : 0, o = 0; 4 > r; r += 2) "margin" === n && (o += ut.css(e, n + En[r], !0, s)), i ? ("content" === n && (o -= ut.css(e, "padding" + En[r], !0, s)), "margin" !== n && (o -= ut.css(e, "border" + En[r] + "Width", !0, s))) : (o += ut.css(e, "padding" + En[r], !0, s), "padding" !== n && (o += ut.css(e, "border" + En[r] + "Width", !0, s))); | |
return o | |
} | |
function B(e, t, n) { | |
var i = !0, | |
s = "width" === t ? e.offsetWidth : e.offsetHeight, | |
r = hn(e), | |
o = ut.support.boxSizing && "border-box" === ut.css(e, "boxSizing", !1, r); | |
if (0 >= s || null == s) { | |
if (s = dn(e, t, r), (0 > s || null == s) && (s = e.style[t]), vn.test(s)) return s; | |
i = o && (ut.support.boxSizingReliable || s === e.style[t]), s = parseFloat(s) || 0 | |
} | |
return s + S(e, t, n || (o ? "border" : "content"), i, r) + "px" | |
} | |
function _(e) { | |
var t = K, | |
n = wn[e]; | |
return n || (n = T(e, t), "none" !== n && n || (un = (un || ut("<iframe frameborder='0' width='0' height='0'/>").css("cssText", "display:block !important")).appendTo(t.documentElement), t = (un[0].contentWindow || un[0].contentDocument).document, t.write("<!doctype html><html><body>"), t.close(), n = T(e, t), un.detach()), wn[e] = n), n | |
} | |
function T(e, t) { | |
var n = ut(t.createElement(e)).appendTo(t.body), | |
i = ut.css(n[0], "display"); | |
return n.remove(), i | |
} | |
function D(e, t, n, i) { | |
var s; | |
if (ut.isArray(t)) ut.each(t, function(t, s) { | |
n || Bn.test(e) ? i(e, s) : D(e + "[" + ("object" == typeof s ? t : "") + "]", s, n, i) | |
}); | |
else if (n || "object" !== ut.type(t)) i(e, t); | |
else | |
for (s in t) D(e + "[" + s + "]", t[s], n, i) | |
} | |
function M(e) { | |
return function(t, n) { | |
"string" != typeof t && (n = t, t = "*"); | |
var i, s = 0, | |
r = t.toLowerCase().match(dt) || []; | |
if (ut.isFunction(n)) | |
for (; i = r[s++];) "+" === i[0] ? (i = i.slice(1) || "*", (e[i] = e[i] || []).unshift(n)) : (e[i] = e[i] || []).push(n) | |
} | |
} | |
function N(e, t, n, i) { | |
function s(a) { | |
var c; | |
return r[a] = !0, ut.each(e[a] || [], function(e, a) { | |
var l = a(t, n, i); | |
return "string" != typeof l || o || r[l] ? o ? !(c = l) : void 0 : (t.dataTypes.unshift(l), s(l), !1) | |
}), c | |
} | |
var r = {}, | |
o = e === Wn; | |
return s(t.dataTypes[0]) || !r["*"] && s("*") | |
} | |
function I(e, n) { | |
var i, s, r = ut.ajaxSettings.flatOptions || {}; | |
for (s in n) n[s] !== t && ((r[s] ? e : i || (i = {}))[s] = n[s]); | |
return i && ut.extend(!0, e, i), e | |
} | |
function j(e, n, i) { | |
for (var s, r, o, a, c = e.contents, l = e.dataTypes; | |
"*" === l[0];) l.shift(), r === t && (r = e.mimeType || n.getResponseHeader("Content-Type")); | |
if (r) | |
for (a in c) | |
if (c[a] && c[a].test(r)) { | |
l.unshift(a); | |
break | |
} | |
if (l[0] in i) o = l[0]; | |
else { | |
for (a in i) { | |
if (!l[0] || e.converters[a + " " + l[0]]) { | |
o = a; | |
break | |
} | |
s || (s = a) | |
} | |
o = o || s | |
} | |
return o ? (o !== l[0] && l.unshift(o), i[o]) : void 0 | |
} | |
function L(e, t, n, i) { | |
var s, r, o, a, c, l = {}, | |
u = e.dataTypes.slice(); | |
if (u[1]) | |
for (o in e.converters) l[o.toLowerCase()] = e.converters[o]; | |
for (r = u.shift(); r;) | |
if (e.responseFields[r] && (n[e.responseFields[r]] = t), !c && i && e.dataFilter && (t = e.dataFilter(t, e.dataType)), c = r, r = u.shift()) | |
if ("*" === r) r = c; | |
else if ("*" !== c && c !== r) { | |
if (o = l[c + " " + r] || l["* " + r], !o) | |
for (s in l) | |
if (a = s.split(" "), a[1] === r && (o = l[c + " " + a[0]] || l["* " + a[0]])) { | |
o === !0 ? o = l[s] : l[s] !== !0 && (r = a[0], u.unshift(a[1])); | |
break | |
} | |
if (o !== !0) | |
if (o && e["throws"]) t = o(t); | |
else try { | |
t = o(t) | |
} catch (h) { | |
return { | |
state: "parsererror", | |
error: o ? h : "No conversion from " + c + " to " + r | |
} | |
} | |
} | |
return { | |
state: "success", | |
data: t | |
} | |
} | |
function O() { | |
try { | |
return new e.XMLHttpRequest | |
} catch (t) {} | |
} | |
function F() { | |
try { | |
return new e.ActiveXObject("Microsoft.XMLHTTP") | |
} catch (t) {} | |
} | |
function H() { | |
return setTimeout(function() { | |
Xn = t | |
}), Xn = ut.now() | |
} | |
function R(e, t, n) { | |
for (var i, s = (ri[t] || []).concat(ri["*"]), r = 0, o = s.length; o > r; r++) | |
if (i = s[r].call(n, t, e)) return i | |
} | |
function Q(e, t, n) { | |
var i, s, r = 0, | |
o = si.length, | |
a = ut.Deferred().always(function() { | |
delete c.elem | |
}), | |
c = function() { | |
if (s) return !1; | |
for (var t = Xn || H(), n = Math.max(0, l.startTime + l.duration - t), i = n / l.duration || 0, r = 1 - i, o = 0, c = l.tweens.length; c > o; o++) l.tweens[o].run(r); | |
return a.notifyWith(e, [l, r, n]), 1 > r && c ? n : (a.resolveWith(e, [l]), !1) | |
}, | |
l = a.promise({ | |
elem: e, | |
props: ut.extend({}, t), | |
opts: ut.extend(!0, { | |
specialEasing: {} | |
}, n), | |
originalProperties: t, | |
originalOptions: n, | |
startTime: Xn || H(), | |
duration: n.duration, | |
tweens: [], | |
createTween: function(t, n) { | |
var i = ut.Tween(e, l.opts, t, n, l.opts.specialEasing[t] || l.opts.easing); | |
return l.tweens.push(i), i | |
}, | |
stop: function(t) { | |
var n = 0, | |
i = t ? l.tweens.length : 0; | |
if (s) return this; | |
for (s = !0; i > n; n++) l.tweens[n].run(1); | |
return t ? a.resolveWith(e, [l, t]) : a.rejectWith(e, [l, t]), this | |
} | |
}), | |
u = l.props; | |
for (Y(u, l.opts.specialEasing); o > r; r++) | |
if (i = si[r].call(l, e, u, l.opts)) return i; | |
return ut.map(u, R, l), ut.isFunction(l.opts.start) && l.opts.start.call(e, l), ut.fx.timer(ut.extend(c, { | |
elem: e, | |
anim: l, | |
queue: l.opts.queue | |
})), l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always) | |
} | |
function Y(e, t) { | |
var n, i, s, r, o; | |
for (n in e) | |
if (i = ut.camelCase(n), s = t[i], r = e[n], ut.isArray(r) && (s = r[1], r = e[n] = r[0]), n !== i && (e[i] = r, delete e[n]), o = ut.cssHooks[i], o && "expand" in o) { | |
r = o.expand(r), delete e[i]; | |
for (n in r) n in e || (e[n] = r[n], t[n] = s) | |
} else t[i] = s | |
} | |
function U(e, t, n) { | |
var i, s, r, o, a, c, l = this, | |
u = {}, | |
h = e.style, | |
d = e.nodeType && C(e), | |
p = ut._data(e, "fxshow"); | |
n.queue || (a = ut._queueHooks(e, "fx"), null == a.unqueued && (a.unqueued = 0, c = a.empty.fire, a.empty.fire = function() { | |
a.unqueued || c() | |
}), a.unqueued++, l.always(function() { | |
l.always(function() { | |
a.unqueued--, ut.queue(e, "fx").length || a.empty.fire() | |
}) | |
})), 1 === e.nodeType && ("height" in t || "width" in t) && (n.overflow = [h.overflow, h.overflowX, h.overflowY], "inline" === ut.css(e, "display") && "none" === ut.css(e, "float") && (ut.support.inlineBlockNeedsLayout && "inline" !== _(e.nodeName) ? h.zoom = 1 : h.display = "inline-block")), n.overflow && (h.overflow = "hidden", ut.support.shrinkWrapBlocks || l.always(function() { | |
h.overflow = n.overflow[0], h.overflowX = n.overflow[1], h.overflowY = n.overflow[2] | |
})); | |
for (i in t) | |
if (s = t[i], ti.exec(s)) { | |
if (delete t[i], r = r || "toggle" === s, s === (d ? "hide" : "show")) continue; | |
u[i] = p && p[i] || ut.style(e, i) | |
} | |
if (!ut.isEmptyObject(u)) { | |
p ? "hidden" in p && (d = p.hidden) : p = ut._data(e, "fxshow", {}), r && (p.hidden = !d), d ? ut(e).show() : l.done(function() { | |
ut(e).hide() | |
}), l.done(function() { | |
var t; | |
ut._removeData(e, "fxshow"); | |
for (t in u) ut.style(e, t, u[t]) | |
}); | |
for (i in u) o = R(d ? p[i] : 0, i, l), i in p || (p[i] = o.start, d && (o.end = o.start, o.start = "width" === i || "height" === i ? 1 : 0)) | |
} | |
} | |
function P(e, t, n, i, s) { | |
return new P.prototype.init(e, t, n, i, s) | |
} | |
function W(e, t) { | |
var n, i = { | |
height: e | |
}, | |
s = 0; | |
for (t = t ? 1 : 0; 4 > s; s += 2 - t) n = En[s], i["margin" + n] = i["padding" + n] = e; | |
return t && (i.opacity = i.width = e), i | |
} | |
function G(e) { | |
return ut.isWindow(e) ? e : 9 === e.nodeType ? e.defaultView || e.parentWindow : !1 | |
} | |
var V, z, q = typeof t, | |
J = e.location, | |
K = e.document, | |
Z = K.documentElement, | |
$ = e.jQuery, | |
X = e.$, | |
et = {}, | |
tt = [], | |
nt = "1.10.2", | |
it = tt.concat, | |
st = tt.push, | |
rt = tt.slice, | |
ot = tt.indexOf, | |
at = et.toString, | |
ct = et.hasOwnProperty, | |
lt = nt.trim, | |
ut = function(e, t) { | |
return new ut.fn.init(e, t, z) | |
}, | |
ht = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, | |
dt = /\S+/g, | |
pt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, | |
ft = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, | |
gt = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, | |
At = /^[\],:{}\s]*$/, | |
mt = /(?:^|:|,)(?:\s*\[)+/g, | |
yt = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, | |
vt = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g, | |
bt = /^-ms-/, | |
wt = /-([\da-z])/gi, | |
xt = function(e, t) { | |
return t.toUpperCase() | |
}, | |
Ct = function(e) { | |
(K.addEventListener || "load" === e.type || "complete" === K.readyState) && (Et(), ut.ready()) | |
}, | |
Et = function() { | |
K.addEventListener ? (K.removeEventListener("DOMContentLoaded", Ct, !1), e.removeEventListener("load", Ct, !1)) : (K.detachEvent("onreadystatechange", Ct), e.detachEvent("onload", Ct)) | |
}; | |
ut.fn = ut.prototype = { | |
jquery: nt, | |
constructor: ut, | |
init: function(e, n, i) { | |
var s, r; | |
if (!e) return this; | |
if ("string" == typeof e) { | |
if (s = "<" === e.charAt(0) && ">" === e.charAt(e.length - 1) && e.length >= 3 ? [null, e, null] : ft.exec(e), !s || !s[1] && n) return !n || n.jquery ? (n || i).find(e) : this.constructor(n).find(e); | |
if (s[1]) { | |
if (n = n instanceof ut ? n[0] : n, ut.merge(this, ut.parseHTML(s[1], n && n.nodeType ? n.ownerDocument || n : K, !0)), gt.test(s[1]) && ut.isPlainObject(n)) | |
for (s in n) ut.isFunction(this[s]) ? this[s](n[s]) : this.attr(s, n[s]); | |
return this | |
} | |
if (r = K.getElementById(s[2]), r && r.parentNode) { | |
if (r.id !== s[2]) return i.find(e); | |
this.length = 1, this[0] = r | |
} | |
return this.context = K, this.selector = e, this | |
} | |
return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : ut.isFunction(e) ? i.ready(e) : (e.selector !== t && (this.selector = e.selector, this.context = e.context), ut.makeArray(e, this)) | |
}, | |
selector: "", | |
length: 0, | |
toArray: function() { | |
return rt.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(rt.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: st, | |
sort: [].sort, | |
splice: [].splice | |
}, ut.fn.init.prototype = ut.fn, ut.extend = ut.fn.extend = function() { | |
var e, n, i, s, r, o, a = arguments[0] || {}, | |
c = 1, | |
l = arguments.length, | |
u = !1; | |
for ("boolean" == typeof a && (u = a, a = arguments[1] || {}, c = 2), "object" == typeof a || ut.isFunction(a) || (a = {}), l === c && (a = this, --c); l > c; c++) | |
if (null != (r = arguments[c])) | |
for (s in r) e = a[s], i = r[s], a !== i && (u && i && (ut.isPlainObject(i) || (n = ut.isArray(i))) ? (n ? (n = !1, o = e && ut.isArray(e) ? e : []) : o = e && ut.isPlainObject(e) ? e : {}, a[s] = ut.extend(u, o, i)) : i !== t && (a[s] = i)); | |
return a | |
}, ut.extend({ | |
expando: "jQuery" + (nt + Math.random()).replace(/\D/g, ""), | |
noConflict: function(t) { | |
return e.$ === ut && (e.$ = X), t && e.jQuery === ut && (e.jQuery = $), 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 (!K.body) return setTimeout(ut.ready); | |
ut.isReady = !0, e !== !0 && --ut.readyWait > 0 || (V.resolveWith(K, [ut]), ut.fn.trigger && ut(K).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 ? String(e) : "object" == typeof e || "function" == typeof e ? et[at.call(e)] || "object" : typeof e | |
}, | |
isPlainObject: function(e) { | |
var n; | |
if (!e || "object" !== ut.type(e) || e.nodeType || ut.isWindow(e)) return !1; | |
try { | |
if (e.constructor && !ct.call(e, "constructor") && !ct.call(e.constructor.prototype, "isPrototypeOf")) return !1 | |
} catch (i) { | |
return !1 | |
} | |
if (ut.support.ownLast) | |
for (n in e) return ct.call(e, n); | |
for (n in e); | |
return n === t || ct.call(e, n) | |
}, | |
isEmptyObject: function(e) { | |
var t; | |
for (t in e) return !1; | |
return !0 | |
}, | |
error: function(e) { | |
throw new Error(e) | |
}, | |
parseHTML: function(e, t, n) { | |
if (!e || "string" != typeof e) return null; | |
"boolean" == typeof t && (n = t, t = !1), t = t || K; | |
var i = gt.exec(e), | |
s = !n && []; | |
return i ? [t.createElement(i[1])] : (i = ut.buildFragment([e], t, s), s && ut(s).remove(), ut.merge([], i.childNodes)) | |
}, | |
parseJSON: function(t) { | |
return e.JSON && e.JSON.parse ? e.JSON.parse(t) : null === t ? t : "string" == typeof t && (t = ut.trim(t), t && At.test(t.replace(yt, "@").replace(vt, "]").replace(mt, ""))) ? new Function("return " + t)() : void ut.error("Invalid JSON: " + t) | |
}, | |
parseXML: function(n) { | |
var i, s; | |
if (!n || "string" != typeof n) return null; | |
try { | |
e.DOMParser ? (s = new DOMParser, i = s.parseFromString(n, "text/xml")) : (i = new ActiveXObject("Microsoft.XMLDOM"), i.async = "false", i.loadXML(n)) | |
} catch (r) { | |
i = t | |
} | |
return i && i.documentElement && !i.getElementsByTagName("parsererror").length || ut.error("Invalid XML: " + n), i | |
}, | |
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(bt, "ms-").replace(wt, xt) | |
}, | |
nodeName: function(e, t) { | |
return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() | |
}, | |
each: function(e, t, i) { | |
var s, r = 0, | |
o = e.length, | |
a = n(e); | |
if (i) { | |
if (a) | |
for (; o > r && (s = t.apply(e[r], i), s !== !1); r++); | |
else | |
for (r in e) | |
if (s = t.apply(e[r], i), s === !1) break | |
} else if (a) | |
for (; o > r && (s = t.call(e[r], r, e[r]), s !== !1); r++); | |
else | |
for (r in e) | |
if (s = t.call(e[r], r, e[r]), s === !1) break; return e | |
}, | |
trim: lt && !lt.call(" ") ? function(e) { | |
return null == e ? "" : lt.call(e) | |
} : function(e) { | |
return null == e ? "" : (e + "").replace(pt, "") | |
}, | |
makeArray: function(e, t) { | |
var i = t || []; | |
return null != e && (n(Object(e)) ? ut.merge(i, "string" == typeof e ? [e] : e) : st.call(i, e)), i | |
}, | |
inArray: function(e, t, n) { | |
var i; | |
if (t) { | |
if (ot) return ot.call(t, e, n); | |
for (i = t.length, n = n ? 0 > n ? Math.max(0, i + n) : n : 0; i > n; n++) | |
if (n in t && t[n] === e) return n | |
} | |
return -1 | |
}, | |
merge: function(e, n) { | |
var i = n.length, | |
s = e.length, | |
r = 0; | |
if ("number" == typeof i) | |
for (; i > r; r++) e[s++] = n[r]; | |
else | |
for (; n[r] !== t;) e[s++] = n[r++]; | |
return e.length = s, e | |
}, | |
grep: function(e, t, n) { | |
var i, s = [], | |
r = 0, | |
o = e.length; | |
for (n = !!n; o > r; r++) i = !!t(e[r], r), n !== i && s.push(e[r]); | |
return s | |
}, | |
map: function(e, t, i) { | |
var s, r = 0, | |
o = e.length, | |
a = n(e), | |
c = []; | |
if (a) | |
for (; o > r; r++) s = t(e[r], r, i), null != s && (c[c.length] = s); | |
else | |
for (r in e) s = t(e[r], r, i), null != s && (c[c.length] = s); | |
return it.apply([], c) | |
}, | |
guid: 1, | |
proxy: function(e, n) { | |
var i, s, r; | |
return "string" == typeof n && (r = e[n], n = e, e = r), ut.isFunction(e) ? (i = rt.call(arguments, 2), s = function() { | |
return e.apply(n || this, i.concat(rt.call(arguments))) | |
}, s.guid = e.guid = e.guid || ut.guid++, s) : t | |
}, | |
access: function(e, n, i, s, r, o, a) { | |
var c = 0, | |
l = e.length, | |
u = null == i; | |
if ("object" === ut.type(i)) { | |
r = !0; | |
for (c in i) ut.access(e, n, c, i[c], !0, o, a) | |
} else if (s !== t && (r = !0, ut.isFunction(s) || (a = !0), u && (a ? (n.call(e, s), n = null) : (u = n, n = function(e, t, n) { | |
return u.call(ut(e), n) | |
})), n)) | |
for (; l > c; c++) n(e[c], i, a ? s : s.call(e[c], c, n(e[c], i))); | |
return r ? e : u ? n.call(e) : l ? n(e[0], i) : o | |
}, | |
now: function() { | |
return (new Date).getTime() | |
}, | |
swap: function(e, t, n, i) { | |
var s, r, o = {}; | |
for (r in t) o[r] = e.style[r], e.style[r] = t[r]; | |
s = n.apply(e, i || []); | |
for (r in t) e.style[r] = o[r]; | |
return s | |
} | |
}), ut.ready.promise = function(t) { | |
if (!V) | |
if (V = ut.Deferred(), "complete" === K.readyState) setTimeout(ut.ready); | |
else if (K.addEventListener) K.addEventListener("DOMContentLoaded", Ct, !1), e.addEventListener("load", Ct, !1); | |
else { | |
K.attachEvent("onreadystatechange", Ct), e.attachEvent("onload", Ct); | |
var n = !1; | |
try { | |
n = null == e.frameElement && K.documentElement | |
} catch (i) {} | |
n && n.doScroll && ! function s() { | |
if (!ut.isReady) { | |
try { | |
n.doScroll("left") | |
} catch (e) { | |
return setTimeout(s, 50) | |
} | |
Et(), ut.ready() | |
} | |
}() | |
} | |
return V.promise(t) | |
}, ut.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(e, t) { | |
et["[object " + t + "]"] = t.toLowerCase() | |
}), z = ut(K), | |
function(e, t) { | |
function n(e, t, n, i) { | |
var s, r, o, a, c, l, u, h, f, g; | |
if ((t ? t.ownerDocument || t : Q) !== N && M(t), t = t || N, n = n || [], !e || "string" != typeof e) return n; | |
if (1 !== (a = t.nodeType) && 9 !== a) return []; | |
if (j && !i) { | |
if (s = vt.exec(e)) | |
if (o = s[1]) { | |
if (9 === a) { | |
if (r = t.getElementById(o), !r || !r.parentNode) return n; | |
if (r.id === o) return n.push(r), n | |
} else if (t.ownerDocument && (r = t.ownerDocument.getElementById(o)) && H(t, r) && r.id === o) return n.push(r), n | |
} else { | |
if (s[2]) return et.apply(n, t.getElementsByTagName(e)), n; | |
if ((o = s[3]) && C.getElementsByClassName && t.getElementsByClassName) return et.apply(n, t.getElementsByClassName(o)), n | |
} | |
if (C.qsa && (!L || !L.test(e))) { | |
if (h = u = R, f = t, g = 9 === a && e, 1 === a && "object" !== t.nodeName.toLowerCase()) { | |
for (l = d(e), (u = t.getAttribute("id")) ? h = u.replace(xt, "\\$&") : t.setAttribute("id", h), h = "[id='" + h + "'] ", c = l.length; c--;) l[c] = h + p(l[c]); | |
f = pt.test(e) && t.parentNode || t, g = l.join(",") | |
} | |
if (g) try { | |
return et.apply(n, f.querySelectorAll(g)), n | |
} catch (A) {} finally { | |
u || t.removeAttribute("id") | |
} | |
} | |
} | |
return w(e.replace(lt, "$1"), t, n, i) | |
} | |
function i() { | |
function e(n, i) { | |
return t.push(n += " ") > k.cacheLength && delete e[t.shift()], e[n] = i | |
} | |
var t = []; | |
return e | |
} | |
function s(e) { | |
return e[R] = !0, e | |
} | |
function r(e) { | |
var t = N.createElement("div"); | |
try { | |
return !!e(t) | |
} catch (n) { | |
return !1 | |
} finally { | |
t.parentNode && t.parentNode.removeChild(t), t = null | |
} | |
} | |
function o(e, t) { | |
for (var n = e.split("|"), i = e.length; i--;) k.attrHandle[n[i]] = t | |
} | |
function a(e, t) { | |
var n = t && e, | |
i = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || J) - (~e.sourceIndex || J); | |
if (i) return i; | |
if (n) | |
for (; n = n.nextSibling;) | |
if (n === t) return -1; | |
return e ? 1 : -1 | |
} | |
function c(e) { | |
return function(t) { | |
var n = t.nodeName.toLowerCase(); | |
return "input" === n && t.type === e | |
} | |
} | |
function l(e) { | |
return function(t) { | |
var n = t.nodeName.toLowerCase(); | |
return ("input" === n || "button" === n) && t.type === e | |
} | |
} | |
function u(e) { | |
return s(function(t) { | |
return t = +t, s(function(n, i) { | |
for (var s, r = e([], n.length, t), o = r.length; o--;) n[s = r[o]] && (n[s] = !(i[s] = n[s])) | |
}) | |
}) | |
} | |
function h() {} | |
function d(e, t) { | |
var i, s, r, o, a, c, l, u = W[e + " "]; | |
if (u) return t ? 0 : u.slice(0); | |
for (a = e, c = [], l = k.preFilter; a;) { | |
(!i || (s = ht.exec(a))) && (s && (a = a.slice(s[0].length) || a), c.push(r = [])), i = !1, (s = dt.exec(a)) && (i = s.shift(), r.push({ | |
value: i, | |
type: s[0].replace(lt, " ") | |
}), a = a.slice(i.length)); | |
for (o in k.filter) !(s = mt[o].exec(a)) || l[o] && !(s = l[o](s)) || (i = s.shift(), r.push({ | |
value: i, | |
type: o, | |
matches: s | |
}), a = a.slice(i.length)); | |
if (!i) break | |
} | |
return t ? a.length : a ? n.error(e) : W(e, c).slice(0) | |
} | |
function p(e) { | |
for (var t = 0, n = e.length, i = ""; n > t; t++) i += e[t].value; | |
return i | |
} | |
function f(e, t, n) { | |
var i = t.dir, | |
s = n && "parentNode" === i, | |
r = U++; | |
return t.first ? function(t, n, r) { | |
for (; t = t[i];) | |
if (1 === t.nodeType || s) return e(t, n, r) | |
} : function(t, n, o) { | |
var a, c, l, u = Y + " " + r; | |
if (o) { | |
for (; t = t[i];) | |
if ((1 === t.nodeType || s) && e(t, n, o)) return !0 | |
} else | |
for (; t = t[i];) | |
if (1 === t.nodeType || s) | |
if (l = t[R] || (t[R] = {}), (c = l[i]) && c[0] === u) { | |
if ((a = c[1]) === !0 || a === E) return a === !0 | |
} else if (c = l[i] = [u], c[1] = e(t, n, o) || E, c[1] === !0) return !0 | |
} | |
} | |
function g(e) { | |
return e.length > 1 ? function(t, n, i) { | |
for (var s = e.length; s--;) | |
if (!e[s](t, n, i)) return !1; | |
return !0 | |
} : e[0] | |
} | |
function A(e, t, n, i, s) { | |
for (var r, o = [], a = 0, c = e.length, l = null != t; c > a; a++)(r = e[a]) && (!n || n(r, i, s)) && (o.push(r), l && t.push(a)); | |
return o | |
} | |
function m(e, t, n, i, r, o) { | |
return i && !i[R] && (i = m(i)), r && !r[R] && (r = m(r, o)), s(function(s, o, a, c) { | |
var l, u, h, d = [], | |
p = [], | |
f = o.length, | |
g = s || b(t || "*", a.nodeType ? [a] : a, []), | |
m = !e || !s && t ? g : A(g, d, e, a, c), | |
y = n ? r || (s ? e : f || i) ? [] : o : m; | |
if (n && n(m, y, a, c), i) | |
for (l = A(y, p), i(l, [], a, c), u = l.length; u--;)(h = l[u]) && (y[p[u]] = !(m[p[u]] = h)); | |
if (s) { | |
if (r || e) { | |
if (r) { | |
for (l = [], u = y.length; u--;)(h = y[u]) && l.push(m[u] = h); | |
r(null, y = [], l, c) | |
} | |
for (u = y.length; u--;)(h = y[u]) && (l = r ? nt.call(s, h) : d[u]) > -1 && (s[l] = !(o[l] = h)) | |
} | |
} else y = A(y === o ? y.splice(f, y.length) : y), r ? r(null, o, y, c) : et.apply(o, y) | |
}) | |
} | |
function y(e) { | |
for (var t, n, i, s = e.length, r = k.relative[e[0].type], o = r || k.relative[" "], a = r ? 1 : 0, c = f(function(e) { | |
return e === t | |
}, o, !0), l = f(function(e) { | |
return nt.call(t, e) > -1 | |
}, o, !0), u = [function(e, n, i) { | |
return !r && (i || n !== T) || ((t = n).nodeType ? c(e, n, i) : l(e, n, i)) | |
}]; s > a; a++) | |
if (n = k.relative[e[a].type]) u = [f(g(u), n)]; | |
else { | |
if (n = k.filter[e[a].type].apply(null, e[a].matches), n[R]) { | |
for (i = ++a; s > i && !k.relative[e[i].type]; i++); | |
return m(a > 1 && g(u), a > 1 && p(e.slice(0, a - 1).concat({ | |
value: " " === e[a - 2].type ? "*" : "" | |
})).replace(lt, "$1"), n, i > a && y(e.slice(a, i)), s > i && y(e = e.slice(i)), s > i && p(e)) | |
} | |
u.push(n) | |
} | |
return g(u) | |
} | |
function v(e, t) { | |
var i = 0, | |
r = t.length > 0, | |
o = e.length > 0, | |
a = function(s, a, c, l, u) { | |
var h, d, p, f = [], | |
g = 0, | |
m = "0", | |
y = s && [], | |
v = null != u, | |
b = T, | |
w = s || o && k.find.TAG("*", u && a.parentNode || a), | |
x = Y += null == b ? 1 : Math.random() || .1; | |
for (v && (T = a !== N && a, E = i); null != (h = w[m]); m++) { | |
if (o && h) { | |
for (d = 0; p = e[d++];) | |
if (p(h, a, c)) { | |
l.push(h); | |
break | |
} | |
v && (Y = x, E = ++i) | |
} | |
r && ((h = !p && h) && g--, s && y.push(h)) | |
} | |
if (g += m, r && m !== g) { | |
for (d = 0; p = t[d++];) p(y, f, a, c); | |
if (s) { | |
if (g > 0) | |
for (; m--;) y[m] || f[m] || (f[m] = $.call(l)); | |
f = A(f) | |
} | |
et.apply(l, f), v && !s && f.length > 0 && g + t.length > 1 && n.uniqueSort(l) | |
} | |
return v && (Y = x, T = b), y | |
}; | |
return r ? s(a) : a | |
} | |
function b(e, t, i) { | |
for (var s = 0, r = t.length; r > s; s++) n(e, t[s], i); | |
return i | |
} | |
function w(e, t, n, i) { | |
var s, r, o, a, c, l = d(e); | |
if (!i && 1 === l.length) { | |
if (r = l[0] = l[0].slice(0), r.length > 2 && "ID" === (o = r[0]).type && C.getById && 9 === t.nodeType && j && k.relative[r[1].type]) { | |
if (t = (k.find.ID(o.matches[0].replace(Ct, Et), t) || [])[0], !t) return n; | |
e = e.slice(r.shift().value.length) | |
} | |
for (s = mt.needsContext.test(e) ? 0 : r.length; s-- && (o = r[s], !k.relative[a = o.type]);) | |
if ((c = k.find[a]) && (i = c(o.matches[0].replace(Ct, Et), pt.test(r[0].type) && t.parentNode || t))) { | |
if (r.splice(s, 1), e = i.length && p(r), !e) return et.apply(n, i), n; | |
break | |
} | |
} | |
return _(e, l)(i, t, !j, n, pt.test(e)), n | |
} | |
var x, C, E, k, S, B, _, T, D, M, N, I, j, L, O, F, H, R = "sizzle" + -new Date, | |
Q = e.document, | |
Y = 0, | |
U = 0, | |
P = i(), | |
W = i(), | |
G = i(), | |
V = !1, | |
z = function(e, t) { | |
return e === t ? (V = !0, 0) : 0 | |
}, | |
q = typeof t, | |
J = 1 << 31, | |
K = {}.hasOwnProperty, | |
Z = [], | |
$ = Z.pop, | |
X = Z.push, | |
et = Z.push, | |
tt = Z.slice, | |
nt = Z.indexOf || function(e) { | |
for (var t = 0, n = this.length; n > t; t++) | |
if (this[t] === e) return t; | |
return -1 | |
}, | |
it = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", | |
st = "[\\x20\\t\\r\\n\\f]", | |
rt = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", | |
ot = rt.replace("w", "w#"), | |
at = "\\[" + st + "*(" + rt + ")" + st + "*(?:([*^$|!~]?=)" + st + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + ot + ")|)|)" + st + "*\\]", | |
ct = ":(" + rt + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + at.replace(3, 8) + ")*)|.*)\\)|)", | |
lt = new RegExp("^" + st + "+|((?:^|[^\\\\])(?:\\\\.)*)" + st + "+$", "g"), | |
ht = new RegExp("^" + st + "*," + st + "*"), | |
dt = new RegExp("^" + st + "*([>+~]|" + st + ")" + st + "*"), | |
pt = new RegExp(st + "*[+~]"), | |
ft = new RegExp("=" + st + "*([^\\]'\"]*)" + st + "*\\]", "g"), | |
gt = new RegExp(ct), | |
At = new RegExp("^" + ot + "$"), | |
mt = { | |
ID: new RegExp("^#(" + rt + ")"), | |
CLASS: new RegExp("^\\.(" + rt + ")"), | |
TAG: new RegExp("^(" + rt.replace("w", "w*") + ")"), | |
ATTR: new RegExp("^" + at), | |
PSEUDO: new RegExp("^" + ct), | |
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + st + "*(even|odd|(([+-]|)(\\d*)n|)" + st + "*(?:([+-]|)" + st + "*(\\d+)|))" + st + "*\\)|)", "i"), | |
bool: new RegExp("^(?:" + it + ")$", "i"), | |
needsContext: new RegExp("^" + st + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + st + "*((?:-\\d)?\\d*)" + st + "*\\)|)(?=[^-]|$)", "i") | |
}, | |
yt = /^[^{]+\{\s*\[native \w/, | |
vt = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, | |
bt = /^(?:input|select|textarea|button)$/i, | |
wt = /^h\d$/i, | |
xt = /'|\\/g, | |
Ct = new RegExp("\\\\([\\da-f]{1,6}" + st + "?|(" + st + ")|.)", "ig"), | |
Et = function(e, t, n) { | |
var i = "0x" + t - 65536; | |
return i !== i || n ? t : 0 > i ? String.fromCharCode(i + 65536) : String.fromCharCode(i >> 10 | 55296, 1023 & i | 56320) | |
}; | |
try { | |
et.apply(Z = tt.call(Q.childNodes), Q.childNodes), Z[Q.childNodes.length].nodeType | |
} catch (kt) { | |
et = { | |
apply: Z.length ? function(e, t) { | |
X.apply(e, tt.call(t)) | |
} : function(e, t) { | |
for (var n = e.length, i = 0; e[n++] = t[i++];); | |
e.length = n - 1 | |
} | |
} | |
} | |
B = n.isXML = function(e) { | |
var t = e && (e.ownerDocument || e).documentElement; | |
return t ? "HTML" !== t.nodeName : !1 | |
}, C = n.support = {}, M = n.setDocument = function(e) { | |
var t = e ? e.ownerDocument || e : Q, | |
n = t.defaultView; | |
return t !== N && 9 === t.nodeType && t.documentElement ? (N = t, I = t.documentElement, j = !B(t), n && n.attachEvent && n !== n.top && n.attachEvent("onbeforeunload", function() { | |
M() | |
}), C.attributes = r(function(e) { | |
return e.className = "i", !e.getAttribute("className") | |
}), C.getElementsByTagName = r(function(e) { | |
return e.appendChild(t.createComment("")), !e.getElementsByTagName("*").length | |
}), C.getElementsByClassName = r(function(e) { | |
return e.innerHTML = "<div class='a'></div><div class='a i'></div>", e.firstChild.className = "i", 2 === e.getElementsByClassName("i").length | |
}), C.getById = r(function(e) { | |
return I.appendChild(e).id = R, !t.getElementsByName || !t.getElementsByName(R).length | |
}), C.getById ? (k.find.ID = function(e, t) { | |
if (typeof t.getElementById !== q && j) { | |
var n = t.getElementById(e); | |
return n && n.parentNode ? [n] : [] | |
} | |
}, k.filter.ID = function(e) { | |
var t = e.replace(Ct, Et); | |
return function(e) { | |
return e.getAttribute("id") === t | |
} | |
}) : (delete k.find.ID, k.filter.ID = function(e) { | |
var t = e.replace(Ct, Et); | |
return function(e) { | |
var n = typeof e.getAttributeNode !== q && e.getAttributeNode("id"); | |
return n && n.value === t | |
} | |
}), k.find.TAG = C.getElementsByTagName ? function(e, t) { | |
return typeof t.getElementsByTagName !== q ? t.getElementsByTagName(e) : void 0 | |
} : function(e, t) { | |
var n, i = [], | |
s = 0, | |
r = t.getElementsByTagName(e); | |
if ("*" === e) { | |
for (; n = r[s++];) 1 === n.nodeType && i.push(n); | |
return i | |
} | |
return r | |
}, k.find.CLASS = C.getElementsByClassName && function(e, t) { | |
return typeof t.getElementsByClassName !== q && j ? t.getElementsByClassName(e) : void 0 | |
}, O = [], L = [], (C.qsa = yt.test(t.querySelectorAll)) && (r(function(e) { | |
e.innerHTML = "<select><option selected=''></option></select>", e.querySelectorAll("[selected]").length || L.push("\\[" + st + "*(?:value|" + it + ")"), e.querySelectorAll(":checked").length || L.push(":checked") | |
}), r(function(e) { | |
var n = t.createElement("input"); | |
n.setAttribute("type", "hidden"), e.appendChild(n).setAttribute("t", ""), e.querySelectorAll("[t^='']").length && L.push("[*^$]=" + st + "*(?:''|\"\")"), e.querySelectorAll(":enabled").length || L.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), L.push(",.*:") | |
})), (C.matchesSelector = yt.test(F = I.webkitMatchesSelector || I.mozMatchesSelector || I.oMatchesSelector || I.msMatchesSelector)) && r(function(e) { | |
C.disconnectedMatch = F.call(e, "div"), F.call(e, "[s!='']:x"), O.push("!=", ct) | |
}), L = L.length && new RegExp(L.join("|")), O = O.length && new RegExp(O.join("|")), H = yt.test(I.contains) || I.compareDocumentPosition ? function(e, t) { | |
var n = 9 === e.nodeType ? e.documentElement : e, | |
i = t && t.parentNode; | |
return e === i || !(!i || 1 !== i.nodeType || !(n.contains ? n.contains(i) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(i))) | |
} : function(e, t) { | |
if (t) | |
for (; t = t.parentNode;) | |
if (t === e) return !0; | |
return !1 | |
}, z = I.compareDocumentPosition ? function(e, n) { | |
if (e === n) return V = !0, 0; | |
var i = n.compareDocumentPosition && e.compareDocumentPosition && e.compareDocumentPosition(n); | |
return i ? 1 & i || !C.sortDetached && n.compareDocumentPosition(e) === i ? e === t || H(Q, e) ? -1 : n === t || H(Q, n) ? 1 : D ? nt.call(D, e) - nt.call(D, n) : 0 : 4 & i ? -1 : 1 : e.compareDocumentPosition ? -1 : 1 | |
} : function(e, n) { | |
var i, s = 0, | |
r = e.parentNode, | |
o = n.parentNode, | |
c = [e], | |
l = [n]; | |
if (e === n) return V = !0, 0; | |
if (!r || !o) return e === t ? -1 : n === t ? 1 : r ? -1 : o ? 1 : D ? nt.call(D, e) - nt.call(D, n) : 0; | |
if (r === o) return a(e, n); | |
for (i = e; i = i.parentNode;) c.unshift(i); | |
for (i = n; i = i.parentNode;) l.unshift(i); | |
for (; c[s] === l[s];) s++; | |
return s ? a(c[s], l[s]) : c[s] === Q ? -1 : l[s] === Q ? 1 : 0 | |
}, t) : N | |
}, n.matches = function(e, t) { | |
return n(e, null, null, t) | |
}, n.matchesSelector = function(e, t) { | |
if ((e.ownerDocument || e) !== N && M(e), t = t.replace(ft, "='$1']"), !(!C.matchesSelector || !j || O && O.test(t) || L && L.test(t))) try { | |
var i = F.call(e, t); | |
if (i || C.disconnectedMatch || e.document && 11 !== e.document.nodeType) return i | |
} catch (s) {} | |
return n(t, N, null, [e]).length > 0 | |
}, n.contains = function(e, t) { | |
return (e.ownerDocument || e) !== N && M(e), H(e, t) | |
}, n.attr = function(e, n) { | |
(e.ownerDocument || e) !== N && M(e); | |
var i = k.attrHandle[n.toLowerCase()], | |
s = i && K.call(k.attrHandle, n.toLowerCase()) ? i(e, n, !j) : t; | |
return s === t ? C.attributes || !j ? e.getAttribute(n) : (s = e.getAttributeNode(n)) && s.specified ? s.value : null : s | |
}, n.error = function(e) { | |
throw new Error("Syntax error, unrecognized expression: " + e) | |
}, n.uniqueSort = function(e) { | |
var t, n = [], | |
i = 0, | |
s = 0; | |
if (V = !C.detectDuplicates, D = !C.sortStable && e.slice(0), e.sort(z), V) { | |
for (; t = e[s++];) t === e[s] && (i = n.push(s)); | |
for (; i--;) e.splice(n[i], 1) | |
} | |
return e | |
}, S = n.getText = function(e) { | |
var t, n = "", | |
i = 0, | |
s = e.nodeType; | |
if (s) { | |
if (1 === s || 9 === s || 11 === s) { | |
if ("string" == typeof e.textContent) return e.textContent; | |
for (e = e.firstChild; e; e = e.nextSibling) n += S(e) | |
} else if (3 === s || 4 === s) return e.nodeValue | |
} else | |
for (; t = e[i]; i++) n += S(t); | |
return n | |
}, k = n.selectors = { | |
cacheLength: 50, | |
createPseudo: s, | |
match: mt, | |
attrHandle: {}, | |
find: {}, | |
relative: { | |
">": { | |
dir: "parentNode", | |
first: !0 | |
}, | |
" ": { | |
dir: "parentNode" | |
}, | |
"+": { | |
dir: "previousSibling", | |
first: !0 | |
}, | |
"~": { | |
dir: "previousSibling" | |
} | |
}, | |
preFilter: { | |
ATTR: function(e) { | |
return e[1] = e[1].replace(Ct, Et), e[3] = (e[4] || e[5] || "").replace(Ct, 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] || n.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] && n.error(e[0]), e | |
}, | |
PSEUDO: function(e) { | |
var n, i = !e[5] && e[2]; | |
return mt.CHILD.test(e[0]) ? null : (e[3] && e[4] !== t ? e[2] = e[4] : i && gt.test(i) && (n = d(i, !0)) && (n = i.indexOf(")", i.length - n) - i.length) && (e[0] = e[0].slice(0, n), e[2] = i.slice(0, n)), e.slice(0, 3)) | |
} | |
}, | |
filter: { | |
TAG: function(e) { | |
var t = e.replace(Ct, Et).toLowerCase(); | |
return "*" === e ? function() { | |
return !0 | |
} : function(e) { | |
return e.nodeName && e.nodeName.toLowerCase() === t | |
} | |
}, | |
CLASS: function(e) { | |
var t = P[e + " "]; | |
return t || (t = new RegExp("(^|" + st + ")" + e + "(" + st + "|$)")) && P(e, function(e) { | |
return t.test("string" == typeof e.className && e.className || typeof e.getAttribute !== q && e.getAttribute("class") || "") | |
}) | |
}, | |
ATTR: function(e, t, i) { | |
return function(s) { | |
var r = n.attr(s, e); | |
return null == r ? "!=" === t : t ? (r += "", "=" === t ? r === i : "!=" === t ? r !== i : "^=" === t ? i && 0 === r.indexOf(i) : "*=" === t ? i && r.indexOf(i) > -1 : "$=" === t ? i && r.slice(-i.length) === i : "~=" === t ? (" " + r + " ").indexOf(i) > -1 : "|=" === t ? r === i || r.slice(0, i.length + 1) === i + "-" : !1) : !0 | |
} | |
}, | |
CHILD: function(e, t, n, i, s) { | |
var r = "nth" !== e.slice(0, 3), | |
o = "last" !== e.slice(-4), | |
a = "of-type" === t; | |
return 1 === i && 0 === s ? function(e) { | |
return !!e.parentNode | |
} : function(t, n, c) { | |
var l, u, h, d, p, f, g = r !== o ? "nextSibling" : "previousSibling", | |
A = t.parentNode, | |
m = a && t.nodeName.toLowerCase(), | |
y = !c && !a; | |
if (A) { | |
if (r) { | |
for (; g;) { | |
for (h = t; h = h[g];) | |
if (a ? h.nodeName.toLowerCase() === m : 1 === h.nodeType) return !1; | |
f = g = "only" === e && !f && "nextSibling" | |
} | |
return !0 | |
} | |
if (f = [o ? A.firstChild : A.lastChild], o && y) { | |
for (u = A[R] || (A[R] = {}), l = u[e] || [], p = l[0] === Y && l[1], d = l[0] === Y && l[2], h = p && A.childNodes[p]; h = ++p && h && h[g] || (d = p = 0) || f.pop();) | |
if (1 === h.nodeType && ++d && h === t) { | |
u[e] = [Y, p, d]; | |
break | |
} | |
} else if (y && (l = (t[R] || (t[R] = {}))[e]) && l[0] === Y) d = l[1]; | |
else | |
for (; | |
(h = ++p && h && h[g] || (d = p = 0) || f.pop()) && ((a ? h.nodeName.toLowerCase() !== m : 1 !== h.nodeType) || !++d || (y && ((h[R] || (h[R] = {}))[e] = [Y, d]), h !== t));); | |
return d -= s, d === i || d % i === 0 && d / i >= 0 | |
} | |
} | |
}, | |
PSEUDO: function(e, t) { | |
var i, r = k.pseudos[e] || k.setFilters[e.toLowerCase()] || n.error("unsupported pseudo: " + e); | |
return r[R] ? r(t) : r.length > 1 ? (i = [e, e, "", t], k.setFilters.hasOwnProperty(e.toLowerCase()) ? s(function(e, n) { | |
for (var i, s = r(e, t), o = s.length; o--;) i = nt.call(e, s[o]), e[i] = !(n[i] = s[o]) | |
}) : function(e) { | |
return r(e, 0, i) | |
}) : r | |
} | |
}, | |
pseudos: { | |
not: s(function(e) { | |
var t = [], | |
n = [], | |
i = _(e.replace(lt, "$1")); | |
return i[R] ? s(function(e, t, n, s) { | |
for (var r, o = i(e, null, s, []), a = e.length; a--;)(r = o[a]) && (e[a] = !(t[a] = r)) | |
}) : function(e, s, r) { | |
return t[0] = e, i(t, null, r, n), !n.pop() | |
} | |
}), | |
has: s(function(e) { | |
return function(t) { | |
return n(e, t).length > 0 | |
} | |
}), | |
contains: s(function(e) { | |
return function(t) { | |
return (t.textContent || t.innerText || S(t)).indexOf(e) > -1 | |
} | |
}), | |
lang: s(function(e) { | |
return At.test(e || "") || n.error("unsupported lang: " + e), e = e.replace(Ct, Et).toLowerCase(), | |
function(t) { | |
var n; | |
do | |
if (n = j ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("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 === I | |
}, | |
focus: function(e) { | |
return e === N.activeElement && (!N.hasFocus || N.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 !k.pseudos.empty(e) | |
}, | |
header: function(e) { | |
return wt.test(e.nodeName) | |
}, | |
input: function(e) { | |
return bt.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: u(function() { | |
return [0] | |
}), | |
last: u(function(e, t) { | |
return [t - 1] | |
}), | |
eq: u(function(e, t, n) { | |
return [0 > n ? n + t : n] | |
}), | |
even: u(function(e, t) { | |
for (var n = 0; t > n; n += 2) e.push(n); | |
return e | |
}), | |
odd: u(function(e, t) { | |
for (var n = 1; t > n; n += 2) e.push(n); | |
return e | |
}), | |
lt: u(function(e, t, n) { | |
for (var i = 0 > n ? n + t : n; --i >= 0;) e.push(i); | |
return e | |
}), | |
gt: u(function(e, t, n) { | |
for (var i = 0 > n ? n + t : n; ++i < t;) e.push(i); | |
return e | |
}) | |
} | |
}, k.pseudos.nth = k.pseudos.eq; | |
for (x in { | |
radio: !0, | |
checkbox: !0, | |
file: !0, | |
password: !0, | |
image: !0 | |
}) k.pseudos[x] = c(x); | |
for (x in { | |
submit: !0, | |
reset: !0 | |
}) k.pseudos[x] = l(x); | |
h.prototype = k.filters = k.pseudos, k.setFilters = new h, _ = n.compile = function(e, t) { | |
var n, i = [], | |
s = [], | |
r = G[e + " "]; | |
if (!r) { | |
for (t || (t = d(e)), n = t.length; n--;) r = y(t[n]), r[R] ? i.push(r) : s.push(r); | |
r = G(e, v(s, i)) | |
} | |
return r | |
}, C.sortStable = R.split("").sort(z).join("") === R, C.detectDuplicates = V, M(), C.sortDetached = r(function(e) { | |
return 1 & e.compareDocumentPosition(N.createElement("div")) | |
}), r(function(e) { | |
return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href") | |
}) || o("type|href|height|width", function(e, t, n) { | |
return n ? void 0 : e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2) | |
}), C.attributes && r(function(e) { | |
return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value") | |
}) || o("value", function(e, t, n) { | |
return n || "input" !== e.nodeName.toLowerCase() ? void 0 : e.defaultValue | |
}), r(function(e) { | |
return null == e.getAttribute("disabled") | |
}) || o(it, function(e, t, n) { | |
var i; | |
return n ? void 0 : (i = e.getAttributeNode(t)) && i.specified ? i.value : e[t] === !0 ? t.toLowerCase() : null | |
}), ut.find = n, ut.expr = n.selectors, ut.expr[":"] = ut.expr.pseudos, ut.unique = n.uniqueSort, ut.text = n.getText, ut.isXMLDoc = n.isXML, ut.contains = n.contains | |
}(e); | |
var kt = {}; | |
ut.Callbacks = function(e) { | |
e = "string" == typeof e ? kt[e] || i(e) : ut.extend({}, e); | |
var n, s, r, o, a, c, l = [], | |
u = !e.once && [], | |
h = function(t) { | |
for (s = e.memory && t, r = !0, a = c || 0, c = 0, o = l.length, n = !0; l && o > a; a++) | |
if (l[a].apply(t[0], t[1]) === !1 && e.stopOnFalse) { | |
s = !1; | |
break | |
} | |
n = !1, l && (u ? u.length && h(u.shift()) : s ? l = [] : d.disable()) | |
}, | |
d = { | |
add: function() { | |
if (l) { | |
var t = l.length; | |
! function i(t) { | |
ut.each(t, function(t, n) { | |
var s = ut.type(n); | |
"function" === s ? e.unique && d.has(n) || l.push(n) : n && n.length && "string" !== s && i(n) | |
}) | |
}(arguments), n ? o = l.length : s && (c = t, h(s)) | |
} | |
return this | |
}, | |
remove: function() { | |
return l && ut.each(arguments, function(e, t) { | |
for (var i; | |
(i = ut.inArray(t, l, i)) > -1;) l.splice(i, 1), n && (o >= i && o--, a >= i && a--) | |
}), this | |
}, | |
has: function(e) { | |
return e ? ut.inArray(e, l) > -1 : !(!l || !l.length) | |
}, | |
empty: function() { | |
return l = [], o = 0, this | |
}, | |
disable: function() { | |
return l = u = s = t, this | |
}, | |
disabled: function() { | |
return !l | |
}, | |
lock: function() { | |
return u = t, s || d.disable(), this | |
}, | |
locked: function() { | |
return !u | |
}, | |
fireWith: function(e, t) { | |
return !l || r && !u || (t = t || [], t = [e, t.slice ? t.slice() : t], n ? u.push(t) : h(t)), this | |
}, | |
fire: function() { | |
return d.fireWith(this, arguments), this | |
}, | |
fired: function() { | |
return !!r | |
} | |
}; | |
return d | |
}, 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", | |
i = { | |
state: function() { | |
return n | |
}, | |
always: function() { | |
return s.done(arguments).fail(arguments), this | |
}, | |
then: function() { | |
var e = arguments; | |
return ut.Deferred(function(n) { | |
ut.each(t, function(t, r) { | |
var o = r[0], | |
a = ut.isFunction(e[t]) && e[t]; | |
s[r[1]](function() { | |
var e = a && a.apply(this, arguments); | |
e && ut.isFunction(e.promise) ? e.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[o + "With"](this === i ? n.promise() : this, a ? [e] : arguments) | |
}) | |
}), e = null | |
}).promise() | |
}, | |
promise: function(e) { | |
return null != e ? ut.extend(e, i) : i | |
} | |
}, | |
s = {}; | |
return i.pipe = i.then, ut.each(t, function(e, r) { | |
var o = r[2], | |
a = r[3]; | |
i[r[1]] = o.add, a && o.add(function() { | |
n = a | |
}, t[1 ^ e][2].disable, t[2][2].lock), s[r[0]] = function() { | |
return s[r[0] + "With"](this === s ? i : this, arguments), this | |
}, s[r[0] + "With"] = o.fireWith | |
}), i.promise(s), e && e.call(s, s), s | |
}, | |
when: function(e) { | |
var t, n, i, s = 0, | |
r = rt.call(arguments), | |
o = r.length, | |
a = 1 !== o || e && ut.isFunction(e.promise) ? o : 0, | |
c = 1 === a ? e : ut.Deferred(), | |
l = function(e, n, i) { | |
return function(s) { | |
n[e] = this, i[e] = arguments.length > 1 ? rt.call(arguments) : s, i === t ? c.notifyWith(n, i) : --a || c.resolveWith(n, i) | |
} | |
}; | |
if (o > 1) | |
for (t = new Array(o), n = new Array(o), i = new Array(o); o > s; s++) r[s] && ut.isFunction(r[s].promise) ? r[s].promise().done(l(s, i, r)).fail(c.reject).progress(l(s, n, t)) : --a; | |
return a || c.resolveWith(i, r), c.promise() | |
} | |
}), ut.support = function(t) { | |
var n, i, s, r, o, a, c, l, u, h = K.createElement("div"); | |
if (h.setAttribute("className", "t"), h.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", n = h.getElementsByTagName("*") || [], i = h.getElementsByTagName("a")[0], !i || !i.style || !n.length) return t; | |
r = K.createElement("select"), a = r.appendChild(K.createElement("option")), s = h.getElementsByTagName("input")[0], i.style.cssText = "top:1px;float:left;opacity:.5", t.getSetAttribute = "t" !== h.className, t.leadingWhitespace = 3 === h.firstChild.nodeType, t.tbody = !h.getElementsByTagName("tbody").length, t.htmlSerialize = !!h.getElementsByTagName("link").length, t.style = /top/.test(i.getAttribute("style")), t.hrefNormalized = "/a" === i.getAttribute("href"), t.opacity = /^0.5/.test(i.style.opacity), t.cssFloat = !!i.style.cssFloat, t.checkOn = !!s.value, t.optSelected = a.selected, t.enctype = !!K.createElement("form").enctype, t.html5Clone = "<:nav></:nav>" !== K.createElement("nav").cloneNode(!0).outerHTML, t.inlineBlockNeedsLayout = !1, t.shrinkWrapBlocks = !1, t.pixelPosition = !1, t.deleteExpando = !0, t.noCloneEvent = !0, t.reliableMarginRight = !0, t.boxSizingReliable = !0, s.checked = !0, t.noCloneChecked = s.cloneNode(!0).checked, r.disabled = !0, t.optDisabled = !a.disabled; | |
try { | |
delete h.test | |
} catch (d) { | |
t.deleteExpando = !1 | |
} | |
s = K.createElement("input"), s.setAttribute("value", ""), t.input = "" === s.getAttribute("value"), s.value = "t", s.setAttribute("type", "radio"), t.radioValue = "t" === s.value, s.setAttribute("checked", "t"), s.setAttribute("name", "t"), o = K.createDocumentFragment(), o.appendChild(s), t.appendChecked = s.checked, t.checkClone = o.cloneNode(!0).cloneNode(!0).lastChild.checked, h.attachEvent && (h.attachEvent("onclick", function() { | |
t.noCloneEvent = !1 | |
}), h.cloneNode(!0).click()); | |
for (u in { | |
submit: !0, | |
change: !0, | |
focusin: !0 | |
}) h.setAttribute(c = "on" + u, "t"), t[u + "Bubbles"] = c in e || h.attributes[c].expando === !1; | |
h.style.backgroundClip = "content-box", h.cloneNode(!0).style.backgroundClip = "", t.clearCloneStyle = "content-box" === h.style.backgroundClip; | |
for (u in ut(t)) break; | |
return t.ownLast = "0" !== u, ut(function() { | |
var n, i, s, r = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;", | |
o = K.getElementsByTagName("body")[0]; | |
o && (n = K.createElement("div"), n.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px", o.appendChild(n).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", t.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%;", ut.swap(o, null != o.style.zoom ? { | |
zoom: 1 | |
} : {}, function() { | |
t.boxSizing = 4 === h.offsetWidth | |
}), e.getComputedStyle && (t.pixelPosition = "1%" !== (e.getComputedStyle(h, null) || {}).top, t.boxSizingReliable = "4px" === (e.getComputedStyle(h, null) || { | |
width: "4px" | |
}).width, i = h.appendChild(K.createElement("div")), i.style.cssText = h.style.cssText = r, i.style.marginRight = i.style.width = "0", h.style.width = "1px", t.reliableMarginRight = !parseFloat((e.getComputedStyle(i, null) || {}).marginRight)), typeof h.style.zoom !== q && (h.innerHTML = "", h.style.cssText = r + "width:1px;padding:1px;display:inline;zoom:1", t.inlineBlockNeedsLayout = 3 === h.offsetWidth, h.style.display = "block", h.innerHTML = "<div></div>", h.firstChild.style.width = "5px", t.shrinkWrapBlocks = 3 !== h.offsetWidth, t.inlineBlockNeedsLayout && (o.style.zoom = 1)), o.removeChild(n), n = h = s = i = null) | |
}), n = r = o = a = i = s = null, t | |
}({}); | |
var St = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, | |
Bt = /([A-Z])/g; | |
ut.extend({ | |
cache: {}, | |
noData: { | |
applet: !0, | |
embed: !0, | |
object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" | |
}, | |
hasData: function(e) { | |
return e = e.nodeType ? ut.cache[e[ut.expando]] : e[ut.expando], !!e && !a(e) | |
}, | |
data: function(e, t, n) { | |
return s(e, t, n) | |
}, | |
removeData: function(e, t) { | |
return r(e, t) | |
}, | |
_data: function(e, t, n) { | |
return s(e, t, n, !0) | |
}, | |
_removeData: function(e, t) { | |
return r(e, t, !0) | |
}, | |
acceptData: function(e) { | |
if (e.nodeType && 1 !== e.nodeType && 9 !== e.nodeType) return !1; | |
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 i, s, r = null, | |
a = 0, | |
c = this[0]; | |
if (e === t) { | |
if (this.length && (r = ut.data(c), 1 === c.nodeType && !ut._data(c, "parsedAttrs"))) { | |
for (i = c.attributes; a < i.length; a++) s = i[a].name, 0 === s.indexOf("data-") && (s = ut.camelCase(s.slice(5)), o(c, s, r[s])); | |
ut._data(c, "parsedAttrs", !0) | |
} | |
return r | |
} | |
return "object" == typeof e ? this.each(function() { | |
ut.data(this, e) | |
}) : arguments.length > 1 ? this.each(function() { | |
ut.data(this, e, n) | |
}) : c ? o(c, e, ut.data(c, e)) : null | |
}, | |
removeData: function(e) { | |
return this.each(function() { | |
ut.removeData(this, e) | |
}) | |
} | |
}), ut.extend({ | |
queue: function(e, t, n) { | |
var i; | |
return e ? (t = (t || "fx") + "queue", i = ut._data(e, t), n && (!i || ut.isArray(n) ? i = ut._data(e, t, ut.makeArray(n)) : i.push(n)), i || []) : void 0 | |
}, | |
dequeue: function(e, t) { | |
t = t || "fx"; | |
var n = ut.queue(e, t), | |
i = n.length, | |
s = n.shift(), | |
r = ut._queueHooks(e, t), | |
o = function() { | |
ut.dequeue(e, t) | |
}; | |
"inprogress" === s && (s = n.shift(), i--), s && ("fx" === t && n.unshift("inprogress"), delete r.stop, s.call(e, o, r)), !i && r && r.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 i = 2; | |
return "string" != typeof e && (n = e, e = "fx", i--), arguments.length < i ? 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 i = setTimeout(t, e); | |
n.stop = function() { | |
clearTimeout(i) | |
} | |
}) | |
}, | |
clearQueue: function(e) { | |
return this.queue(e || "fx", []) | |
}, | |
promise: function(e, n) { | |
var i, s = 1, | |
r = ut.Deferred(), | |
o = this, | |
a = this.length, | |
c = function() { | |
--s || r.resolveWith(o, [o]) | |
}; | |
for ("string" != typeof e && (n = e, e = t), e = e || "fx"; a--;) i = ut._data(o[a], e + "queueHooks"), i && i.empty && (s++, i.empty.add(c)); | |
return c(), r.promise(n) | |
} | |
}); | |
var _t, Tt, Dt = /[\t\r\n\f]/g, | |
Mt = /\r/g, | |
Nt = /^(?:input|select|textarea|button|object)$/i, | |
It = /^(?:a|area)$/i, | |
jt = /^(?:checked|selected)$/i, | |
Lt = ut.support.getSetAttribute, | |
Ot = 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, i, s, r, o = 0, | |
a = this.length, | |
c = "string" == typeof e && e; | |
if (ut.isFunction(e)) return this.each(function(t) { | |
ut(this).addClass(e.call(this, t, this.className)) | |
}); | |
if (c) | |
for (t = (e || "").match(dt) || []; a > o; o++) | |
if (n = this[o], i = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(Dt, " ") : " ")) { | |
for (r = 0; s = t[r++];) i.indexOf(" " + s + " ") < 0 && (i += s + " "); | |
n.className = ut.trim(i) | |
} | |
return this | |
}, | |
removeClass: function(e) { | |
var t, n, i, s, r, o = 0, | |
a = this.length, | |
c = 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 (c) | |
for (t = (e || "").match(dt) || []; a > o; o++) | |
if (n = this[o], i = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(Dt, " ") : "")) { | |
for (r = 0; s = t[r++];) | |
for (; i.indexOf(" " + s + " ") >= 0;) i = i.replace(" " + s + " ", " "); | |
n.className = e ? ut.trim(i) : "" | |
} | |
return this | |
}, | |
toggleClass: function(e, t) { | |
var n = typeof e; | |
return "boolean" == typeof t && "string" === n ? t ? this.addClass(e) : this.removeClass(e) : this.each(ut.isFunction(e) ? function(n) { | |
ut(this).toggleClass(e.call(this, n, this.className, t), t) | |
} : function() { | |
if ("string" === n) | |
for (var t, i = 0, s = ut(this), r = e.match(dt) || []; t = r[i++];) s.hasClass(t) ? s.removeClass(t) : s.addClass(t); | |
else(n === q || "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, i = this.length; i > n; n++) | |
if (1 === this[n].nodeType && (" " + this[n].className + " ").replace(Dt, " ").indexOf(t) >= 0) return !0; | |
return !1 | |
}, | |
val: function(e) { | |
var n, i, s, r = this[0]; { | |
if (arguments.length) return s = ut.isFunction(e), this.each(function(n) { | |
var r; | |
1 === this.nodeType && (r = s ? e.call(this, n, ut(this).val()) : e, null == r ? r = "" : "number" == typeof r ? r += "" : ut.isArray(r) && (r = ut.map(r, function(e) { | |
return null == e ? "" : e + "" | |
})), i = ut.valHooks[this.type] || ut.valHooks[this.nodeName.toLowerCase()], i && "set" in i && i.set(this, r, "value") !== t || (this.value = r)) | |
}); | |
if (r) return i = ut.valHooks[r.type] || ut.valHooks[r.nodeName.toLowerCase()], i && "get" in i && (n = i.get(r, "value")) !== t ? n : (n = r.value, "string" == typeof n ? n.replace(Mt, "") : null == n ? "" : n) | |
} | |
} | |
}), ut.extend({ | |
valHooks: { | |
option: { | |
get: function(e) { | |
var t = ut.find.attr(e, "value"); | |
return null != t ? t : e.text | |
} | |
}, | |
select: { | |
get: function(e) { | |
for (var t, n, i = e.options, s = e.selectedIndex, r = "select-one" === e.type || 0 > s, o = r ? null : [], a = r ? s + 1 : i.length, c = 0 > s ? a : r ? s : 0; a > c; c++) | |
if (n = i[c], !(!n.selected && c !== s || (ut.support.optDisabled ? n.disabled : null !== n.getAttribute("disabled")) || n.parentNode.disabled && ut.nodeName(n.parentNode, "optgroup"))) { | |
if (t = ut(n).val(), r) return t; | |
o.push(t) | |
} | |
return o | |
}, | |
set: function(e, t) { | |
for (var n, i, s = e.options, r = ut.makeArray(t), o = s.length; o--;) i = s[o], (i.selected = ut.inArray(ut(i).val(), r) >= 0) && (n = !0); | |
return n || (e.selectedIndex = -1), r | |
} | |
} | |
}, | |
attr: function(e, n, i) { | |
var s, r, o = e.nodeType; | |
if (e && 3 !== o && 8 !== o && 2 !== o) return typeof e.getAttribute === q ? ut.prop(e, n, i) : (1 === o && ut.isXMLDoc(e) || (n = n.toLowerCase(), s = ut.attrHooks[n] || (ut.expr.match.bool.test(n) ? Tt : _t)), i === t ? s && "get" in s && null !== (r = s.get(e, n)) ? r : (r = ut.find.attr(e, n), null == r ? t : r) : null !== i ? s && "set" in s && (r = s.set(e, i, n)) !== t ? r : (e.setAttribute(n, i + ""), i) : void ut.removeAttr(e, n)) | |
}, | |
removeAttr: function(e, t) { | |
var n, i, s = 0, | |
r = t && t.match(dt); | |
if (r && 1 === e.nodeType) | |
for (; n = r[s++];) i = ut.propFix[n] || n, ut.expr.match.bool.test(n) ? Ot && Lt || !jt.test(n) ? e[i] = !1 : e[ut.camelCase("default-" + n)] = e[i] = !1 : ut.attr(e, n, ""), e.removeAttribute(Lt ? n : i) | |
}, | |
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: { | |
"for": "htmlFor", | |
"class": "className" | |
}, | |
prop: function(e, n, i) { | |
var s, r, o, a = e.nodeType; | |
if (e && 3 !== a && 8 !== a && 2 !== a) return o = 1 !== a || !ut.isXMLDoc(e), o && (n = ut.propFix[n] || n, r = ut.propHooks[n]), i !== t ? r && "set" in r && (s = r.set(e, i, n)) !== t ? s : e[n] = i : r && "get" in r && null !== (s = r.get(e, n)) ? s : e[n] | |
}, | |
propHooks: { | |
tabIndex: { | |
get: function(e) { | |
var t = ut.find.attr(e, "tabindex"); | |
return t ? parseInt(t, 10) : Nt.test(e.nodeName) || It.test(e.nodeName) && e.href ? 0 : -1 | |
} | |
} | |
} | |
}), Tt = { | |
set: function(e, t, n) { | |
return t === !1 ? ut.removeAttr(e, n) : Ot && Lt || !jt.test(n) ? e.setAttribute(!Lt && ut.propFix[n] || n, n) : e[ut.camelCase("default-" + n)] = e[n] = !0, n | |
} | |
}, ut.each(ut.expr.match.bool.source.match(/\w+/g), function(e, n) { | |
var i = ut.expr.attrHandle[n] || ut.find.attr; | |
ut.expr.attrHandle[n] = Ot && Lt || !jt.test(n) ? function(e, n, s) { | |
var r = ut.expr.attrHandle[n], | |
o = s ? t : (ut.expr.attrHandle[n] = t) != i(e, n, s) ? n.toLowerCase() : null; | |
return ut.expr.attrHandle[n] = r, o | |
} : function(e, n, i) { | |
return i ? t : e[ut.camelCase("default-" + n)] ? n.toLowerCase() : null | |
} | |
}), Ot && Lt || (ut.attrHooks.value = { | |
set: function(e, t, n) { | |
return ut.nodeName(e, "input") ? void(e.defaultValue = t) : _t && _t.set(e, t, n) | |
} | |
}), Lt || (_t = { | |
set: function(e, n, i) { | |
var s = e.getAttributeNode(i); | |
return s || e.setAttributeNode(s = e.ownerDocument.createAttribute(i)), s.value = n += "", "value" === i || n === e.getAttribute(i) ? n : t | |
} | |
}, ut.expr.attrHandle.id = ut.expr.attrHandle.name = ut.expr.attrHandle.coords = function(e, n, i) { | |
var s; | |
return i ? t : (s = e.getAttributeNode(n)) && "" !== s.value ? s.value : null | |
}, ut.valHooks.button = { | |
get: function(e, n) { | |
var i = e.getAttributeNode(n); | |
return i && i.specified ? i.value : t | |
}, | |
set: _t.set | |
}, ut.attrHooks.contenteditable = { | |
set: function(e, t, n) { | |
_t.set(e, "" === t ? !1 : t, n) | |
} | |
}, ut.each(["width", "height"], function(e, t) { | |
ut.attrHooks[t] = { | |
set: function(e, n) { | |
return "" === n ? (e.setAttribute(t, "auto"), n) : void 0 | |
} | |
} | |
})), ut.support.hrefNormalized || 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 = { | |
get: function(e) { | |
var t = e.parentNode; | |
return t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex), null | |
} | |
}), ut.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() { | |
ut.propFix[this.toLowerCase()] = this | |
}), ut.support.enctype || (ut.propFix.enctype = "encoding"), ut.each(["radio", "checkbox"], function() { | |
ut.valHooks[this] = { | |
set: function(e, t) { | |
return ut.isArray(t) ? e.checked = ut.inArray(ut(e).val(), t) >= 0 : void 0 | |
} | |
}, ut.support.checkOn || (ut.valHooks[this].get = function(e) { | |
return null === e.getAttribute("value") ? "on" : e.value | |
}) | |
}); | |
var Ft = /^(?:input|select|textarea)$/i, | |
Ht = /^key/, | |
Rt = /^(?:mouse|contextmenu)|click/, | |
Qt = /^(?:focusinfocus|focusoutblur)$/, | |
Yt = /^([^.]*)(?:\.(.+)|)$/; | |
ut.event = { | |
global: {}, | |
add: function(e, n, i, s, r) { | |
var o, a, c, l, u, h, d, p, f, g, A, m = ut._data(e); | |
if (m) { | |
for (i.handler && (l = i, i = l.handler, r = l.selector), i.guid || (i.guid = ut.guid++), (a = m.events) || (a = m.events = {}), (h = m.handle) || (h = m.handle = function(e) { | |
return typeof ut === q || e && ut.event.triggered === e.type ? t : ut.event.dispatch.apply(h.elem, arguments) | |
}, h.elem = e), n = (n || "").match(dt) || [""], c = n.length; c--;) o = Yt.exec(n[c]) || [], f = A = o[1], g = (o[2] || "").split(".").sort(), f && (u = ut.event.special[f] || {}, f = (r ? u.delegateType : u.bindType) || f, u = ut.event.special[f] || {}, d = ut.extend({ | |
type: f, | |
origType: A, | |
data: s, | |
handler: i, | |
guid: i.guid, | |
selector: r, | |
needsContext: r && ut.expr.match.needsContext.test(r), | |
namespace: g.join(".") | |
}, l), (p = a[f]) || (p = a[f] = [], p.delegateCount = 0, u.setup && u.setup.call(e, s, g, h) !== !1 || (e.addEventListener ? e.addEventListener(f, h, !1) : e.attachEvent && e.attachEvent("on" + f, h))), u.add && (u.add.call(e, d), d.handler.guid || (d.handler.guid = i.guid)), r ? p.splice(p.delegateCount++, 0, d) : p.push(d), ut.event.global[f] = !0); | |
e = null | |
} | |
}, | |
remove: function(e, t, n, i, s) { | |
var r, o, a, c, l, u, h, d, p, f, g, A = ut.hasData(e) && ut._data(e); | |
if (A && (u = A.events)) { | |
for (t = (t || "").match(dt) || [""], l = t.length; l--;) | |
if (a = Yt.exec(t[l]) || [], p = g = a[1], f = (a[2] || "").split(".").sort(), p) { | |
for (h = ut.event.special[p] || {}, p = (i ? h.delegateType : h.bindType) || p, d = u[p] || [], a = a[2] && new RegExp("(^|\\.)" + f.join("\\.(?:.*\\.|)") + "(\\.|$)"), c = r = d.length; r--;) o = d[r], !s && g !== o.origType || n && n.guid !== o.guid || a && !a.test(o.namespace) || i && i !== o.selector && ("**" !== i || !o.selector) || (d.splice(r, 1), o.selector && d.delegateCount--, h.remove && h.remove.call(e, o)); | |
c && !d.length && (h.teardown && h.teardown.call(e, f, A.handle) !== !1 || ut.removeEvent(e, p, A.handle), delete u[p]) | |
} else | |
for (p in u) ut.event.remove(e, p + t[l], n, i, !0); | |
ut.isEmptyObject(u) && (delete A.handle, ut._removeData(e, "events")) | |
} | |
}, | |
trigger: function(n, i, s, r) { | |
var o, a, c, l, u, h, d, p = [s || K], | |
f = ct.call(n, "type") ? n.type : n, | |
g = ct.call(n, "namespace") ? n.namespace.split(".") : []; | |
if (c = h = s = s || K, 3 !== s.nodeType && 8 !== s.nodeType && !Qt.test(f + ut.event.triggered) && (f.indexOf(".") >= 0 && (g = f.split("."), f = g.shift(), g.sort()), a = f.indexOf(":") < 0 && "on" + f, n = n[ut.expando] ? n : new ut.Event(f, "object" == typeof n && n), n.isTrigger = r ? 2 : 3, n.namespace = g.join("."), n.namespace_re = n.namespace ? new RegExp("(^|\\.)" + g.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, n.result = t, n.target || (n.target = s), i = null == i ? [n] : ut.makeArray(i, [n]), u = ut.event.special[f] || {}, r || !u.trigger || u.trigger.apply(s, i) !== !1)) { | |
if (!r && !u.noBubble && !ut.isWindow(s)) { | |
for (l = u.delegateType || f, Qt.test(l + f) || (c = c.parentNode); c; c = c.parentNode) p.push(c), h = c; | |
h === (s.ownerDocument || K) && p.push(h.defaultView || h.parentWindow || e) | |
} | |
for (d = 0; | |
(c = p[d++]) && !n.isPropagationStopped();) n.type = d > 1 ? l : u.bindType || f, o = (ut._data(c, "events") || {})[n.type] && ut._data(c, "handle"), o && o.apply(c, i), o = a && c[a], o && ut.acceptData(c) && o.apply && o.apply(c, i) === !1 && n.preventDefault(); | |
if (n.type = f, !r && !n.isDefaultPrevented() && (!u._default || u._default.apply(p.pop(), i) === !1) && ut.acceptData(s) && a && s[f] && !ut.isWindow(s)) { | |
h = s[a], h && (s[a] = null), ut.event.triggered = f; | |
try { | |
s[f]() | |
} catch (A) {} | |
ut.event.triggered = t, h && (s[a] = h) | |
} | |
return n.result | |
} | |
}, | |
dispatch: function(e) { | |
e = ut.event.fix(e); | |
var n, i, s, r, o, a = [], | |
c = rt.call(arguments), | |
l = (ut._data(this, "events") || {})[e.type] || [], | |
u = ut.event.special[e.type] || {}; | |
if (c[0] = e, e.delegateTarget = this, !u.preDispatch || u.preDispatch.call(this, e) !== !1) { | |
for (a = ut.event.handlers.call(this, e, l), n = 0; | |
(r = a[n++]) && !e.isPropagationStopped();) | |
for (e.currentTarget = r.elem, o = 0; | |
(s = r.handlers[o++]) && !e.isImmediatePropagationStopped();)(!e.namespace_re || e.namespace_re.test(s.namespace)) && (e.handleObj = s, e.data = s.data, i = ((ut.event.special[s.origType] || {}).handle || s.handler).apply(r.elem, c), i !== t && (e.result = i) === !1 && (e.preventDefault(), e.stopPropagation())); | |
return u.postDispatch && u.postDispatch.call(this, e), e.result | |
} | |
}, | |
handlers: function(e, n) { | |
var i, s, r, o, a = [], | |
c = n.delegateCount, | |
l = e.target; | |
if (c && l.nodeType && (!e.button || "click" !== e.type)) | |
for (; l != this; l = l.parentNode || this) | |
if (1 === l.nodeType && (l.disabled !== !0 || "click" !== e.type)) { | |
for (r = [], o = 0; c > o; o++) s = n[o], i = s.selector + " ", r[i] === t && (r[i] = s.needsContext ? ut(i, this).index(l) >= 0 : ut.find(i, this, null, [l]).length), r[i] && r.push(s); | |
r.length && a.push({ | |
elem: l, | |
handlers: r | |
}) | |
} | |
return c < n.length && a.push({ | |
elem: this, | |
handlers: n.slice(c) | |
}), a | |
}, | |
fix: function(e) { | |
if (e[ut.expando]) return e; | |
var t, n, i, s = e.type, | |
r = e, | |
o = this.fixHooks[s]; | |
for (o || (this.fixHooks[s] = o = Rt.test(s) ? this.mouseHooks : Ht.test(s) ? this.keyHooks : {}), i = o.props ? this.props.concat(o.props) : this.props, e = new ut.Event(r), t = i.length; t--;) n = i[t], e[n] = r[n]; | |
return e.target || (e.target = r.srcElement || K), 3 === e.target.nodeType && (e.target = e.target.parentNode), e.metaKey = !!e.metaKey, o.filter ? o.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 i, s, r, o = n.button, | |
a = n.fromElement; | |
return null == e.pageX && null != n.clientX && (s = e.target.ownerDocument || K, r = s.documentElement, i = s.body, e.pageX = n.clientX + (r && r.scrollLeft || i && i.scrollLeft || 0) - (r && r.clientLeft || i && i.clientLeft || 0), e.pageY = n.clientY + (r && r.scrollTop || i && i.scrollTop || 0) - (r && r.clientTop || i && i.clientTop || 0)), !e.relatedTarget && a && (e.relatedTarget = a === e.target ? n.toElement : a), e.which || o === t || (e.which = 1 & o ? 1 : 2 & o ? 3 : 4 & o ? 2 : 0), e | |
} | |
}, | |
special: { | |
load: { | |
noBubble: !0 | |
}, | |
focus: { | |
trigger: function() { | |
if (this !== u() && this.focus) try { | |
return this.focus(), !1 | |
} catch (e) {} | |
}, | |
delegateType: "focusin" | |
}, | |
blur: { | |
trigger: function() { | |
return this === u() && this.blur ? (this.blur(), !1) : void 0 | |
}, | |
delegateType: "focusout" | |
}, | |
click: { | |
trigger: function() { | |
return ut.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : void 0 | |
}, | |
_default: function(e) { | |
return ut.nodeName(e.target, "a") | |
} | |
}, | |
beforeunload: { | |
postDispatch: function(e) { | |
e.result !== t && (e.originalEvent.returnValue = e.result) | |
} | |
} | |
}, | |
simulate: function(e, t, n, i) { | |
var s = ut.extend(new ut.Event, n, { | |
type: e, | |
isSimulated: !0, | |
originalEvent: {} | |
}); | |
i ? ut.event.trigger(s, null, t) : ut.event.dispatch.call(t, s), s.isDefaultPrevented() && n.preventDefault() | |
} | |
}, ut.removeEvent = K.removeEventListener ? function(e, t, n) { | |
e.removeEventListener && e.removeEventListener(t, n, !1) | |
} : function(e, t, n) { | |
var i = "on" + t; | |
e.detachEvent && (typeof e[i] === q && (e[i] = null), e.detachEvent(i, n)) | |
}, ut.Event = function(e, t) { | |
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() ? c : l) : this.type = e, t && ut.extend(this, t), this.timeStamp = e && e.timeStamp || ut.now(), void(this[ut.expando] = !0)) : new ut.Event(e, t) | |
}, ut.Event.prototype = { | |
isDefaultPrevented: l, | |
isPropagationStopped: l, | |
isImmediatePropagationStopped: l, | |
preventDefault: function() { | |
var e = this.originalEvent; | |
this.isDefaultPrevented = c, e && (e.preventDefault ? e.preventDefault() : e.returnValue = !1) | |
}, | |
stopPropagation: function() { | |
var e = this.originalEvent; | |
this.isPropagationStopped = c, e && (e.stopPropagation && e.stopPropagation(), e.cancelBubble = !0) | |
}, | |
stopImmediatePropagation: function() { | |
this.isImmediatePropagationStopped = c, this.stopPropagation() | |
} | |
}, ut.each({ | |
mouseenter: "mouseover", | |
mouseleave: "mouseout" | |
}, function(e, t) { | |
ut.event.special[e] = { | |
delegateType: t, | |
bindType: t, | |
handle: function(e) { | |
var n, i = this, | |
s = e.relatedTarget, | |
r = e.handleObj; | |
return (!s || s !== i && !ut.contains(i, s)) && (e.type = r.origType, n = r.handler.apply(this, arguments), e.type = t), n | |
} | |
} | |
}), ut.support.submitBubbles || (ut.event.special.submit = { | |
setup: function() { | |
return ut.nodeName(this, "form") ? !1 : void ut.event.add(this, "click._submit keypress._submit", function(e) { | |
var n = e.target, | |
i = ut.nodeName(n, "input") || ut.nodeName(n, "button") ? n.form : t; | |
i && !ut._data(i, "submitBubbles") && (ut.event.add(i, "submit._submit", function(e) { | |
e._submit_bubble = !0 | |
}), ut._data(i, "submitBubbles", !0)) | |
}) | |
}, | |
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 : void ut.event.remove(this, "._submit") | |
} | |
}), ut.support.changeBubbles || (ut.event.special.change = { | |
setup: function() { | |
return Ft.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) : void ut.event.add(this, "beforeactivate._change", function(e) { | |
var t = e.target; | |
Ft.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)) | |
}) | |
}, | |
handle: function(e) { | |
var t = e.target; | |
return this !== t || e.isSimulated || e.isTrigger || "radio" !== t.type && "checkbox" !== t.type ? e.handleObj.handler.apply(this, arguments) : void 0 | |
}, | |
teardown: function() { | |
return ut.event.remove(this, "._change"), !Ft.test(this.nodeName) | |
} | |
}), ut.support.focusinBubbles || ut.each({ | |
focus: "focusin", | |
blur: "focusout" | |
}, function(e, t) { | |
var n = 0, | |
i = function(e) { | |
ut.event.simulate(t, e.target, ut.event.fix(e), !0) | |
}; | |
ut.event.special[t] = { | |
setup: function() { | |
0 === n++ && K.addEventListener(e, i, !0) | |
}, | |
teardown: function() { | |
0 === --n && K.removeEventListener(e, i, !0) | |
} | |
} | |
}), ut.fn.extend({ | |
on: function(e, n, i, s, r) { | |
var o, a; | |
if ("object" == typeof e) { | |
"string" != typeof n && (i = i || n, n = t); | |
for (o in e) this.on(o, n, i, e[o], r); | |
return this | |
} | |
if (null == i && null == s ? (s = n, i = n = t) : null == s && ("string" == typeof n ? (s = i, i = t) : (s = i, i = n, n = t)), s === !1) s = l; | |
else if (!s) return this; | |
return 1 === r && (a = s, s = function(e) { | |
return ut().off(e), a.apply(this, arguments) | |
}, s.guid = a.guid || (a.guid = ut.guid++)), this.each(function() { | |
ut.event.add(this, e, s, i, n) | |
}) | |
}, | |
one: function(e, t, n, i) { | |
return this.on(e, t, n, i, 1) | |
}, | |
off: function(e, n, i) { | |
var s, r; | |
if (e && e.preventDefault && e.handleObj) return s = e.handleObj, ut(e.delegateTarget).off(s.namespace ? s.origType + "." + s.namespace : s.origType, s.selector, s.handler), this; | |
if ("object" == typeof e) { | |
for (r in e) this.off(r, n, e[r]); | |
return this | |
} | |
return (n === !1 || "function" == typeof n) && (i = n, n = t), i === !1 && (i = l), this.each(function() { | |
ut.event.remove(this, e, i, n) | |
}) | |
}, | |
trigger: function(e, t) { | |
return this.each(function() { | |
ut.event.trigger(e, t, this) | |
}) | |
}, | |
triggerHandler: function(e, t) { | |
var n = this[0]; | |
return n ? ut.event.trigger(e, t, n, !0) : void 0 | |
} | |
}); | |
var Ut = /^.[^:#\[\.,]*$/, | |
Pt = /^(?:parents|prev(?:Until|All))/, | |
Wt = ut.expr.match.needsContext, | |
Gt = { | |
children: !0, | |
contents: !0, | |
next: !0, | |
prev: !0 | |
}; | |
ut.fn.extend({ | |
find: function(e) { | |
var t, n = [], | |
i = this, | |
s = i.length; | |
if ("string" != typeof e) return this.pushStack(ut(e).filter(function() { | |
for (t = 0; s > t; t++) | |
if (ut.contains(i[t], this)) return !0 | |
})); | |
for (t = 0; s > t; t++) ut.find(e, i[t], n); | |
return n = this.pushStack(s > 1 ? ut.unique(n) : n), n.selector = this.selector ? this.selector + " " + e : e, n | |
}, | |
has: function(e) { | |
var t, n = ut(e, this), | |
i = n.length; | |
return this.filter(function() { | |
for (t = 0; i > t; t++) | |
if (ut.contains(this, n[t])) return !0 | |
}) | |
}, | |
not: function(e) { | |
return this.pushStack(d(this, e || [], !0)) | |
}, | |
filter: function(e) { | |
return this.pushStack(d(this, e || [], !1)) | |
}, | |
is: function(e) { | |
return !!d(this, "string" == typeof e && Wt.test(e) ? ut(e) : e || [], !1).length | |
}, | |
closest: function(e, t) { | |
for (var n, i = 0, s = this.length, r = [], o = Wt.test(e) || "string" != typeof e ? ut(e, t || this.context) : 0; s > i; i++) | |
for (n = this[i]; n && n !== t; n = n.parentNode) | |
if (n.nodeType < 11 && (o ? o.index(n) > -1 : 1 === n.nodeType && ut.find.matchesSelector(n, e))) { | |
n = r.push(n); | |
break | |
} | |
return this.pushStack(r.length > 1 ? ut.unique(r) : r) | |
}, | |
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), | |
i = ut.merge(this.get(), n); | |
return this.pushStack(ut.unique(i)) | |
}, | |
addBack: function(e) { | |
return this.add(null == e ? this.prevObject : this.prevObject.filter(e)) | |
} | |
}), 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 h(e, "nextSibling") | |
}, | |
prev: function(e) { | |
return h(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, i) { | |
var s = ut.map(this, t, n); | |
return "Until" !== e.slice(-5) && (i = n), i && "string" == typeof i && (s = ut.filter(i, s)), this.length > 1 && (Gt[e] || (s = ut.unique(s)), Pt.test(e) && (s = s.reverse())), this.pushStack(s) | |
} | |
}), ut.extend({ | |
filter: function(e, t, n) { | |
var i = t[0]; | |
return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === i.nodeType ? ut.find.matchesSelector(i, e) ? [i] : [] : ut.find.matches(e, ut.grep(t, function(e) { | |
return 1 === e.nodeType | |
})) | |
}, | |
dir: function(e, n, i) { | |
for (var s = [], r = e[n]; r && 9 !== r.nodeType && (i === t || 1 !== r.nodeType || !ut(r).is(i));) 1 === r.nodeType && s.push(r), r = r[n]; | |
return s | |
}, | |
sibling: function(e, t) { | |
for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e); | |
return n | |
} | |
}); | |
var Vt = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", | |
zt = / jQuery\d+="(?:null|\d+)"/g, | |
qt = new RegExp("<(?:" + Vt + ")[\\s/>]", "i"), | |
Jt = /^\s+/, | |
Kt = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, | |
Zt = /<([\w:]+)/, | |
$t = /<tbody/i, | |
Xt = /<|&#?\w+;/, | |
en = /<(?:script|style|link)/i, | |
tn = /^(?:checkbox|radio)$/i, | |
nn = /checked\s*(?:[^=]|=\s*.checked.)/i, | |
sn = /^$|\/(?:java|ecma)script/i, | |
rn = /^true\/(.*)/, | |
on = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, | |
an = { | |
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>"] | |
}, | |
cn = p(K), | |
ln = cn.appendChild(K.createElement("div")); | |
an.optgroup = an.option, an.tbody = an.tfoot = an.colgroup = an.caption = an.thead, an.th = an.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 || K).createTextNode(e)) | |
}, null, e, arguments.length) | |
}, | |
append: function() { | |
return this.domManip(arguments, function(e) { | |
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { | |
var t = f(this, e); | |
t.appendChild(e) | |
} | |
}) | |
}, | |
prepend: function() { | |
return this.domManip(arguments, function(e) { | |
if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { | |
var t = f(this, e); | |
t.insertBefore(e, t.firstChild) | |
} | |
}) | |
}, | |
before: function() { | |
return this.domManip(arguments, function(e) { | |
this.parentNode && this.parentNode.insertBefore(e, this) | |
}) | |
}, | |
after: function() { | |
return this.domManip(arguments, function(e) { | |
this.parentNode && this.parentNode.insertBefore(e, this.nextSibling) | |
}) | |
}, | |
remove: function(e, t) { | |
for (var n, i = e ? ut.filter(e, this) : this, s = 0; null != (n = i[s]); s++) 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] || {}, | |
i = 0, | |
s = this.length; | |
if (e === t) return 1 === n.nodeType ? n.innerHTML.replace(zt, "") : t; | |
if (!("string" != typeof e || en.test(e) || !ut.support.htmlSerialize && qt.test(e) || !ut.support.leadingWhitespace && Jt.test(e) || an[(Zt.exec(e) || ["", ""])[1].toLowerCase()])) { | |
e = e.replace(Kt, "<$1></$2>"); | |
try { | |
for (; s > i; i++) n = this[i] || {}, 1 === n.nodeType && (ut.cleanData(b(n, !1)), n.innerHTML = e); | |
n = 0 | |
} catch (r) {} | |
} | |
n && this.empty().append(e) | |
}, null, e, arguments.length) | |
}, | |
replaceWith: function() { | |
var e = ut.map(this, function(e) { | |
return [e.nextSibling, e.parentNode] | |
}), | |
t = 0; | |
return this.domManip(arguments, function(n) { | |
var i = e[t++], | |
s = e[t++]; | |
s && (i && i.parentNode !== s && (i = this.nextSibling), ut(this).remove(), s.insertBefore(n, i)) | |
}, !0), t ? this : this.remove() | |
}, | |
detach: function(e) { | |
return this.remove(e, !0) | |
}, | |
domManip: function(e, t, n) { | |
e = it.apply([], e); | |
var i, s, r, o, a, c, l = 0, | |
u = this.length, | |
h = this, | |
d = u - 1, | |
p = e[0], | |
f = ut.isFunction(p); | |
if (f || !(1 >= u || "string" != typeof p || ut.support.checkClone) && nn.test(p)) return this.each(function(i) { | |
var s = h.eq(i); | |
f && (e[0] = p.call(this, i, s.html())), s.domManip(e, t, n) | |
}); | |
if (u && (c = ut.buildFragment(e, this[0].ownerDocument, !1, !n && this), i = c.firstChild, 1 === c.childNodes.length && (c = i), i)) { | |
for (o = ut.map(b(c, "script"), g), r = o.length; u > l; l++) s = c, l !== d && (s = ut.clone(s, !0, !0), r && ut.merge(o, b(s, "script"))), t.call(this[l], s, l); | |
if (r) | |
for (a = o[o.length - 1].ownerDocument, ut.map(o, A), l = 0; r > l; l++) s = o[l], sn.test(s.type || "") && !ut._data(s, "globalEval") && ut.contains(a, s) && (s.src ? ut._evalUrl(s.src) : ut.globalEval((s.text || s.textContent || s.innerHTML || "").replace(on, ""))); | |
c = i = 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, i = 0, s = [], r = ut(e), o = r.length - 1; o >= i; i++) n = i === o ? this : this.clone(!0), ut(r[i])[t](n), st.apply(s, n.get()); | |
return this.pushStack(s) | |
} | |
}), ut.extend({ | |
clone: function(e, t, n) { | |
var i, s, r, o, a, c = ut.contains(e.ownerDocument, e); | |
if (ut.support.html5Clone || ut.isXMLDoc(e) || !qt.test("<" + e.nodeName + ">") ? r = e.cloneNode(!0) : (ln.innerHTML = e.outerHTML, ln.removeChild(r = ln.firstChild)), !(ut.support.noCloneEvent && ut.support.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || ut.isXMLDoc(e))) | |
for (i = b(r), a = b(e), o = 0; null != (s = a[o]); ++o) i[o] && v(s, i[o]); | |
if (t) | |
if (n) | |
for (a = a || b(e), i = i || b(r), o = 0; null != (s = a[o]); o++) y(s, i[o]); | |
else y(e, r); | |
return i = b(r, "script"), i.length > 0 && m(i, !c && b(e, "script")), i = a = s = null, r | |
}, | |
buildFragment: function(e, t, n, i) { | |
for (var s, r, o, a, c, l, u, h = e.length, d = p(t), f = [], g = 0; h > g; g++) | |
if (r = e[g], r || 0 === r) | |
if ("object" === ut.type(r)) ut.merge(f, r.nodeType ? [r] : r); | |
else if (Xt.test(r)) { | |
for (a = a || d.appendChild(t.createElement("div")), c = (Zt.exec(r) || ["", ""])[1].toLowerCase(), u = an[c] || an._default, a.innerHTML = u[1] + r.replace(Kt, "<$1></$2>") + u[2], s = u[0]; s--;) a = a.lastChild; | |
if (!ut.support.leadingWhitespace && Jt.test(r) && f.push(t.createTextNode(Jt.exec(r)[0])), !ut.support.tbody) | |
for (r = "table" !== c || $t.test(r) ? "<table>" !== u[1] || $t.test(r) ? 0 : a : a.firstChild, s = r && r.childNodes.length; s--;) ut.nodeName(l = r.childNodes[s], "tbody") && !l.childNodes.length && r.removeChild(l); | |
for (ut.merge(f, a.childNodes), a.textContent = ""; a.firstChild;) a.removeChild(a.firstChild); | |
a = d.lastChild | |
} else f.push(t.createTextNode(r)); | |
for (a && d.removeChild(a), ut.support.appendChecked || ut.grep(b(f, "input"), w), g = 0; r = f[g++];) | |
if ((!i || -1 === ut.inArray(r, i)) && (o = ut.contains(r.ownerDocument, r), a = b(d.appendChild(r), "script"), o && m(a), n)) | |
for (s = 0; r = a[s++];) sn.test(r.type || "") && n.push(r); | |
return a = null, d | |
}, | |
cleanData: function(e, t) { | |
for (var n, i, s, r, o = 0, a = ut.expando, c = ut.cache, l = ut.support.deleteExpando, u = ut.event.special; null != (n = e[o]); o++) | |
if ((t || ut.acceptData(n)) && (s = n[a], r = s && c[s])) { | |
if (r.events) | |
for (i in r.events) u[i] ? ut.event.remove(n, i) : ut.removeEvent(n, i, r.handle); | |
c[s] && (delete c[s], l ? delete n[a] : typeof n.removeAttribute !== q ? n.removeAttribute(a) : n[a] = null, tt.push(s)) | |
} | |
}, | |
_evalUrl: function(e) { | |
return ut.ajax({ | |
url: e, | |
type: "GET", | |
dataType: "script", | |
async: !1, | |
global: !1, | |
"throws": !0 | |
}) | |
} | |
}), ut.fn.extend({ | |
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 this.each(ut.isFunction(e) ? function(t) { | |
ut(this).wrapInner(e.call(this, t)) | |
} : 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() | |
} | |
}); | |
var un, hn, dn, pn = /alpha\([^)]*\)/i, | |
fn = /opacity\s*=\s*([^)]*)/, | |
gn = /^(top|right|bottom|left)$/, | |
An = /^(none|table(?!-c[ea]).+)/, | |
mn = /^margin/, | |
yn = new RegExp("^(" + ht + ")(.*)$", "i"), | |
vn = new RegExp("^(" + ht + ")(?!px)[a-z%]+$", "i"), | |
bn = new RegExp("^([+-])=(" + ht + ")", "i"), | |
wn = { | |
BODY: "block" | |
}, | |
xn = { | |
position: "absolute", | |
visibility: "hidden", | |
display: "block" | |
}, | |
Cn = { | |
letterSpacing: 0, | |
fontWeight: 400 | |
}, | |
En = ["Top", "Right", "Bottom", "Left"], | |
kn = ["Webkit", "O", "Moz", "ms"]; | |
ut.fn.extend({ | |
css: function(e, n) { | |
return ut.access(this, function(e, n, i) { | |
var s, r, o = {}, | |
a = 0; | |
if (ut.isArray(n)) { | |
for (r = hn(e), s = n.length; s > a; a++) o[n[a]] = ut.css(e, n[a], !1, r); | |
return o | |
} | |
return i !== t ? ut.style(e, n, i) : ut.css(e, n) | |
}, e, n, arguments.length > 1) | |
}, | |
show: function() { | |
return E(this, !0) | |
}, | |
hide: function() { | |
return E(this) | |
}, | |
toggle: function(e) { | |
return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function() { | |
C(this) ? ut(this).show() : ut(this).hide() | |
}) | |
} | |
}), ut.extend({ | |
cssHooks: { | |
opacity: { | |
get: function(e, t) { | |
if (t) { | |
var n = dn(e, "opacity"); | |
return "" === n ? "1" : n | |
} | |
} | |
} | |
}, | |
cssNumber: { | |
columnCount: !0, | |
fillOpacity: !0, | |
fontWeight: !0, | |
lineHeight: !0, | |
opacity: !0, | |
order: !0, | |
orphans: !0, | |
widows: !0, | |
zIndex: !0, | |
zoom: !0 | |
}, | |
cssProps: { | |
"float": ut.support.cssFloat ? "cssFloat" : "styleFloat" | |
}, | |
style: function(e, n, i, s) { | |
if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { | |
var r, o, a, c = ut.camelCase(n), | |
l = e.style; | |
if (n = ut.cssProps[c] || (ut.cssProps[c] = x(l, c)), a = ut.cssHooks[n] || ut.cssHooks[c], i === t) return a && "get" in a && (r = a.get(e, !1, s)) !== t ? r : l[n]; | |
if (o = typeof i, "string" === o && (r = bn.exec(i)) && (i = (r[1] + 1) * r[2] + parseFloat(ut.css(e, n)), o = "number"), !(null == i || "number" === o && isNaN(i) || ("number" !== o || ut.cssNumber[c] || (i += "px"), ut.support.clearCloneStyle || "" !== i || 0 !== n.indexOf("background") || (l[n] = "inherit"), a && "set" in a && (i = a.set(e, i, s)) === t))) try { | |
l[n] = i | |
} catch (u) {} | |
} | |
}, | |
css: function(e, n, i, s) { | |
var r, o, a, c = ut.camelCase(n); | |
return n = ut.cssProps[c] || (ut.cssProps[c] = x(e.style, c)), a = ut.cssHooks[n] || ut.cssHooks[c], a && "get" in a && (o = a.get(e, !0, i)), o === t && (o = dn(e, n, s)), "normal" === o && n in Cn && (o = Cn[n]), "" === i || i ? (r = parseFloat(o), i === !0 || ut.isNumeric(r) ? r || 0 : o) : o | |
} | |
}), e.getComputedStyle ? (hn = function(t) { | |
return e.getComputedStyle(t, null) | |
}, dn = function(e, n, i) { | |
var s, r, o, a = i || hn(e), | |
c = a ? a.getPropertyValue(n) || a[n] : t, | |
l = e.style; | |
return a && ("" !== c || ut.contains(e.ownerDocument, e) || (c = ut.style(e, n)), vn.test(c) && mn.test(n) && (s = l.width, r = l.minWidth, o = l.maxWidth, l.minWidth = l.maxWidth = l.width = c, c = a.width, l.width = s, l.minWidth = r, l.maxWidth = o)), c | |
}) : K.documentElement.currentStyle && (hn = function(e) { | |
return e.currentStyle | |
}, dn = function(e, n, i) { | |
var s, r, o, a = i || hn(e), | |
c = a ? a[n] : t, | |
l = e.style; | |
return null == c && l && l[n] && (c = l[n]), vn.test(c) && !gn.test(n) && (s = l.left, r = e.runtimeStyle, o = r && r.left, o && (r.left = e.currentStyle.left), l.left = "fontSize" === n ? "1em" : c, c = l.pixelLeft + "px", l.left = s, o && (r.left = o)), "" === c ? "auto" : c | |
}), ut.each(["height", "width"], function(e, t) { | |
ut.cssHooks[t] = { | |
get: function(e, n, i) { | |
return n ? 0 === e.offsetWidth && An.test(ut.css(e, "display")) ? ut.swap(e, xn, function() { | |
return B(e, t, i) | |
}) : B(e, t, i) : void 0 | |
}, | |
set: function(e, n, i) { | |
var s = i && hn(e); | |
return k(e, n, i ? S(e, t, i, ut.support.boxSizing && "border-box" === ut.css(e, "boxSizing", !1, s), s) : 0) | |
} | |
} | |
}), ut.support.opacity || (ut.cssHooks.opacity = { | |
get: function(e, t) { | |
return fn.test((t && e.currentStyle ? e.currentStyle.filter : e.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : t ? "1" : "" | |
}, | |
set: function(e, t) { | |
var n = e.style, | |
i = e.currentStyle, | |
s = ut.isNumeric(t) ? "alpha(opacity=" + 100 * t + ")" : "", | |
r = i && i.filter || n.filter || ""; | |
n.zoom = 1, (t >= 1 || "" === t) && "" === ut.trim(r.replace(pn, "")) && n.removeAttribute && (n.removeAttribute("filter"), "" === t || i && !i.filter) || (n.filter = pn.test(r) ? r.replace(pn, s) : r + " " + s) | |
} | |
}), ut(function() { | |
ut.support.reliableMarginRight || (ut.cssHooks.marginRight = { | |
get: function(e, t) { | |
return t ? ut.swap(e, { | |
display: "inline-block" | |
}, dn, [e, "marginRight"]) : void 0 | |
} | |
}), !ut.support.pixelPosition && ut.fn.position && ut.each(["top", "left"], function(e, t) { | |
ut.cssHooks[t] = { | |
get: function(e, n) { | |
return n ? (n = dn(e, t), vn.test(n) ? ut(e).position()[t] + "px" : n) : void 0 | |
} | |
} | |
}) | |
}), ut.expr && ut.expr.filters && (ut.expr.filters.hidden = function(e) { | |
return e.offsetWidth <= 0 && e.offsetHeight <= 0 || !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 i = 0, s = {}, r = "string" == typeof n ? n.split(" ") : [n]; 4 > i; i++) s[e + En[i] + t] = r[i] || r[i - 2] || r[0]; | |
return s | |
} | |
}, mn.test(e) || (ut.cssHooks[e + t].set = k) | |
}); | |
var Sn = /%20/g, | |
Bn = /\[\]$/, | |
_n = /\r?\n/g, | |
Tn = /^(?:submit|button|image|reset|file)$/i, | |
Dn = /^(?: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") && Dn.test(this.nodeName) && !Tn.test(e) && (this.checked || !tn.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(_n, "\r\n") | |
} | |
}) : { | |
name: t.name, | |
value: n.replace(_n, "\r\n") | |
} | |
}).get() | |
} | |
}), ut.param = function(e, n) { | |
var i, s = [], | |
r = function(e, t) { | |
t = ut.isFunction(t) ? t() : null == t ? "" : t, s[s.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() { | |
r(this.name, this.value) | |
}); | |
else | |
for (i in e) D(i, e[i], n, r); | |
return s.join("&").replace(Sn, "+") | |
}, 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) | |
} | |
}), ut.fn.extend({ | |
hover: function(e, t) { | |
return this.mouseenter(e).mouseleave(t || e) | |
}, | |
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, i) { | |
return this.on(t, e, n, i) | |
}, | |
undelegate: function(e, t, n) { | |
return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n) | |
} | |
}); | |
var Mn, Nn, In = ut.now(), | |
jn = /\?/, | |
Ln = /#.*$/, | |
On = /([?&])_=[^&]*/, | |
Fn = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm, | |
Hn = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, | |
Rn = /^(?:GET|HEAD)$/, | |
Qn = /^\/\//, | |
Yn = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/, | |
Un = ut.fn.load, | |
Pn = {}, | |
Wn = {}, | |
Gn = "*/".concat("*"); | |
try { | |
Nn = J.href | |
} catch (Vn) { | |
Nn = K.createElement("a"), Nn.href = "", Nn = Nn.href | |
} | |
Mn = Yn.exec(Nn.toLowerCase()) || [], ut.fn.load = function(e, n, i) { | |
if ("string" != typeof e && Un) return Un.apply(this, arguments); | |
var s, r, o, a = this, | |
c = e.indexOf(" "); | |
return c >= 0 && (s = e.slice(c, e.length), e = e.slice(0, c)), ut.isFunction(n) ? (i = n, n = t) : n && "object" == typeof n && (o = "POST"), a.length > 0 && ut.ajax({ | |
url: e, | |
type: o, | |
dataType: "html", | |
data: n | |
}).done(function(e) { | |
r = arguments, a.html(s ? ut("<div>").append(ut.parseHTML(e)).find(s) : e) | |
}).complete(i && function(e, t) { | |
a.each(i, r || [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.extend({ | |
active: 0, | |
lastModified: {}, | |
etag: {}, | |
ajaxSettings: { | |
url: Nn, | |
type: "GET", | |
isLocal: Hn.test(Mn[1]), | |
global: !0, | |
processData: !0, | |
async: !0, | |
contentType: "application/x-www-form-urlencoded; charset=UTF-8", | |
accepts: { | |
"*": Gn, | |
text: "text/plain", | |
html: "text/html", | |
xml: "application/xml, text/xml", | |
json: "application/json, text/javascript" | |
}, | |
contents: { | |
xml: /xml/, | |
html: /html/, | |
json: /json/ | |
}, | |
responseFields: { | |
xml: "responseXML", | |
text: "responseText", | |
json: "responseJSON" | |
}, | |
converters: { | |
"* text": String, | |
"text html": !0, | |
"text json": ut.parseJSON, | |
"text xml": ut.parseXML | |
}, | |
flatOptions: { | |
url: !0, | |
context: !0 | |
} | |
}, | |
ajaxSetup: function(e, t) { | |
return t ? I(I(e, ut.ajaxSettings), t) : I(ut.ajaxSettings, e) | |
}, | |
ajaxPrefilter: M(Pn), | |
ajaxTransport: M(Wn), | |
ajax: function(e, n) { | |
function i(e, n, i, s) { | |
var r, h, y, v, w, C = n; | |
2 !== b && (b = 2, c && clearTimeout(c), u = t, a = s || "", x.readyState = e > 0 ? 4 : 0, r = e >= 200 && 300 > e || 304 === e, i && (v = j(d, x, i)), v = L(d, v, x, r), r ? (d.ifModified && (w = x.getResponseHeader("Last-Modified"), w && (ut.lastModified[o] = w), w = x.getResponseHeader("etag"), w && (ut.etag[o] = w)), 204 === e || "HEAD" === d.type ? C = "nocontent" : 304 === e ? C = "notmodified" : (C = v.state, h = v.data, y = v.error, r = !y)) : (y = C, (e || !C) && (C = "error", 0 > e && (e = 0))), x.status = e, x.statusText = (n || C) + "", r ? g.resolveWith(p, [h, C, x]) : g.rejectWith(p, [x, C, y]), x.statusCode(m), m = t, l && f.trigger(r ? "ajaxSuccess" : "ajaxError", [x, d, r ? h : y]), A.fireWith(p, [x, C]), l && (f.trigger("ajaxComplete", [x, d]), --ut.active || ut.event.trigger("ajaxStop"))) | |
} | |
"object" == typeof e && (n = e, e = t), n = n || {}; | |
var s, r, o, a, c, l, u, h, d = ut.ajaxSetup({}, n), | |
p = d.context || d, | |
f = d.context && (p.nodeType || p.jquery) ? ut(p) : ut.event, | |
g = ut.Deferred(), | |
A = ut.Callbacks("once memory"), | |
m = d.statusCode || {}, | |
y = {}, | |
v = {}, | |
b = 0, | |
w = "canceled", | |
x = { | |
readyState: 0, | |
getResponseHeader: function(e) { | |
var t; | |
if (2 === b) { | |
if (!h) | |
for (h = {}; t = Fn.exec(a);) h[t[1].toLowerCase()] = t[2]; | |
t = h[e.toLowerCase()] | |
} | |
return null == t ? null : t | |
}, | |
getAllResponseHeaders: function() { | |
return 2 === b ? a : null | |
}, | |
setRequestHeader: function(e, t) { | |
var n = e.toLowerCase(); | |
return b || (e = v[n] = v[n] || e, y[e] = t), this | |
}, | |
overrideMimeType: function(e) { | |
return b || (d.mimeType = e), this | |
}, | |
statusCode: function(e) { | |
var t; | |
if (e) | |
if (2 > b) | |
for (t in e) m[t] = [m[t], e[t]]; | |
else x.always(e[x.status]); | |
return this | |
}, | |
abort: function(e) { | |
var t = e || w; | |
return u && u.abort(t), i(0, t), this | |
} | |
}; | |
if (g.promise(x).complete = A.add, x.success = x.done, x.error = x.fail, d.url = ((e || d.url || Nn) + "").replace(Ln, "").replace(Qn, Mn[1] + "//"), d.type = n.method || n.type || d.method || d.type, d.dataTypes = ut.trim(d.dataType || "*").toLowerCase().match(dt) || [""], null == d.crossDomain && (s = Yn.exec(d.url.toLowerCase()), d.crossDomain = !(!s || s[1] === Mn[1] && s[2] === Mn[2] && (s[3] || ("http:" === s[1] ? "80" : "443")) === (Mn[3] || ("http:" === Mn[1] ? "80" : "443")))), d.data && d.processData && "string" != typeof d.data && (d.data = ut.param(d.data, d.traditional)), N(Pn, d, n, x), 2 === b) return x; | |
l = d.global, l && 0 === ut.active++ && ut.event.trigger("ajaxStart"), d.type = d.type.toUpperCase(), d.hasContent = !Rn.test(d.type), o = d.url, d.hasContent || (d.data && (o = d.url += (jn.test(o) ? "&" : "?") + d.data, delete d.data), d.cache === !1 && (d.url = On.test(o) ? o.replace(On, "$1_=" + In++) : o + (jn.test(o) ? "&" : "?") + "_=" + In++)), d.ifModified && (ut.lastModified[o] && x.setRequestHeader("If-Modified-Since", ut.lastModified[o]), ut.etag[o] && x.setRequestHeader("If-None-Match", ut.etag[o])), (d.data && d.hasContent && d.contentType !== !1 || n.contentType) && x.setRequestHeader("Content-Type", d.contentType), x.setRequestHeader("Accept", d.dataTypes[0] && d.accepts[d.dataTypes[0]] ? d.accepts[d.dataTypes[0]] + ("*" !== d.dataTypes[0] ? ", " + Gn + "; q=0.01" : "") : d.accepts["*"]); | |
for (r in d.headers) x.setRequestHeader(r, d.headers[r]); | |
if (d.beforeSend && (d.beforeSend.call(p, x, d) === !1 || 2 === b)) return x.abort(); | |
w = "abort"; | |
for (r in { | |
success: 1, | |
error: 1, | |
complete: 1 | |
}) x[r](d[r]); | |
if (u = N(Wn, d, n, x)) { | |
x.readyState = 1, l && f.trigger("ajaxSend", [x, d]), d.async && d.timeout > 0 && (c = setTimeout(function() { | |
x.abort("timeout") | |
}, d.timeout)); | |
try { | |
b = 1, u.send(y, i) | |
} catch (C) { | |
if (!(2 > b)) throw C; | |
i(-1, C) | |
} | |
} else i(-1, "No Transport"); | |
return x | |
}, | |
getJSON: function(e, t, n) { | |
return ut.get(e, t, n, "json") | |
}, | |
getScript: function(e, n) { | |
return ut.get(e, t, n, "script") | |
} | |
}), ut.each(["get", "post"], function(e, n) { | |
ut[n] = function(e, i, s, r) { | |
return ut.isFunction(i) && (r = r || s, s = i, i = t), ut.ajax({ | |
url: e, | |
type: n, | |
dataType: r, | |
data: i, | |
success: s | |
}) | |
} | |
}), 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, i = K.head || ut("head")[0] || K.documentElement; | |
return { | |
send: function(t, s) { | |
n = K.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 || s(200, "success")) | |
}, i.insertBefore(n, i.firstChild) | |
}, | |
abort: function() { | |
n && n.onload(t, !0) | |
} | |
} | |
} | |
}); | |
var zn = [], | |
qn = /(=)\?(?=&|$)|\?\?/; | |
ut.ajaxSetup({ | |
jsonp: "callback", | |
jsonpCallback: function() { | |
var e = zn.pop() || ut.expando + "_" + In++; | |
return this[e] = !0, e | |
} | |
}), ut.ajaxPrefilter("json jsonp", function(n, i, s) { | |
var r, o, a, c = n.jsonp !== !1 && (qn.test(n.url) ? "url" : "string" == typeof n.data && !(n.contentType || "").indexOf("application/x-www-form-urlencoded") && qn.test(n.data) && "data"); | |
return c || "jsonp" === n.dataTypes[0] ? (r = n.jsonpCallback = ut.isFunction(n.jsonpCallback) ? n.jsonpCallback() : n.jsonpCallback, c ? n[c] = n[c].replace(qn, "$1" + r) : n.jsonp !== !1 && (n.url += (jn.test(n.url) ? "&" : "?") + n.jsonp + "=" + r), n.converters["script json"] = function() { | |
return a || ut.error(r + " was not called"), a[0] | |
}, n.dataTypes[0] = "json", o = e[r], e[r] = function() { | |
a = arguments | |
}, s.always(function() { | |
e[r] = o, n[r] && (n.jsonpCallback = i.jsonpCallback, zn.push(r)), a && ut.isFunction(o) && o(a[0]), a = o = t | |
}), "script") : void 0 | |
}); | |
var Jn, Kn, Zn = 0, | |
$n = e.ActiveXObject && function() { | |
var e; | |
for (e in Jn) Jn[e](t, !0) | |
}; | |
ut.ajaxSettings.xhr = e.ActiveXObject ? function() { | |
return !this.isLocal && O() || F() | |
} : O, Kn = ut.ajaxSettings.xhr(), ut.support.cors = !!Kn && "withCredentials" in Kn, Kn = ut.support.ajax = !!Kn, Kn && ut.ajaxTransport(function(n) { | |
if (!n.crossDomain || ut.support.cors) { | |
var i; | |
return { | |
send: function(s, r) { | |
var o, a, c = n.xhr(); | |
if (n.username ? c.open(n.type, n.url, n.async, n.username, n.password) : c.open(n.type, n.url, n.async), n.xhrFields) | |
for (a in n.xhrFields) c[a] = n.xhrFields[a]; | |
n.mimeType && c.overrideMimeType && c.overrideMimeType(n.mimeType), n.crossDomain || s["X-Requested-With"] || (s["X-Requested-With"] = "XMLHttpRequest"); | |
try { | |
for (a in s) c.setRequestHeader(a, s[a]) | |
} catch (l) {} | |
c.send(n.hasContent && n.data || null), i = function(e, s) { | |
var a, l, u, h; | |
try { | |
if (i && (s || 4 === c.readyState)) | |
if (i = t, o && (c.onreadystatechange = ut.noop, $n && delete Jn[o]), s) 4 !== c.readyState && c.abort(); | |
else { | |
h = {}, a = c.status, l = c.getAllResponseHeaders(), "string" == typeof c.responseText && (h.text = c.responseText); | |
try { | |
u = c.statusText | |
} catch (d) { | |
u = "" | |
} | |
a || !n.isLocal || n.crossDomain ? 1223 === a && (a = 204) : a = h.text ? 200 : 404 | |
} | |
} catch (p) { | |
s || r(-1, p) | |
} | |
h && r(a, u, h, l) | |
}, n.async ? 4 === c.readyState ? setTimeout(i) : (o = ++Zn, $n && (Jn || (Jn = {}, ut(e).unload($n)), Jn[o] = i), c.onreadystatechange = i) : i() | |
}, | |
abort: function() { | |
i && i(t, !0) | |
} | |
} | |
} | |
}); | |
var Xn, ei, ti = /^(?:toggle|show|hide)$/, | |
ni = new RegExp("^(?:([+-])=|)(" + ht + ")([a-z%]*)$", "i"), | |
ii = /queueHooks$/, | |
si = [U], | |
ri = { | |
"*": [function(e, t) { | |
var n = this.createTween(e, t), | |
i = n.cur(), | |
s = ni.exec(t), | |
r = s && s[3] || (ut.cssNumber[e] ? "" : "px"), | |
o = (ut.cssNumber[e] || "px" !== r && +i) && ni.exec(ut.css(n.elem, e)), | |
a = 1, | |
c = 20; | |
if (o && o[3] !== r) { | |
r = r || o[3], s = s || [], o = +i || 1; | |
do a = a || ".5", o /= a, ut.style(n.elem, e, o + r); while (a !== (a = n.cur() / i) && 1 !== a && --c) | |
} | |
return s && (o = n.start = +o || +i || 0, n.unit = r, n.end = s[1] ? o + (s[1] + 1) * s[2] : +s[2]), n | |
}] | |
}; | |
ut.Animation = ut.extend(Q, { | |
tweener: function(e, t) { | |
ut.isFunction(e) ? (t = e, e = ["*"]) : e = e.split(" "); | |
for (var n, i = 0, s = e.length; s > i; i++) n = e[i], ri[n] = ri[n] || [], ri[n].unshift(t) | |
}, | |
prefilter: function(e, t) { | |
t ? si.unshift(e) : si.push(e) | |
} | |
}), ut.Tween = P, P.prototype = { | |
constructor: P, | |
init: function(e, t, n, i, s, r) { | |
this.elem = e, this.prop = n, this.easing = s || "swing", this.options = t, this.start = this.now = this.cur(), this.end = i, this.unit = r || (ut.cssNumber[n] ? "" : "px") | |
}, | |
cur: function() { | |
var e = P.propHooks[this.prop]; | |
return e && e.get ? e.get(this) : P.propHooks._default.get(this) | |
}, | |
run: function(e) { | |
var t, n = P.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) : P.propHooks._default.set(this), this | |
} | |
}, P.prototype.init.prototype = P.prototype, P.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, ""), 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 | |
} | |
} | |
}, P.propHooks.scrollTop = P.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, i, s) { | |
return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(W(t, !0), e, i, s) | |
} | |
}), ut.fn.extend({ | |
fadeTo: function(e, t, n, i) { | |
return this.filter(C).css("opacity", 0).show().end().animate({ | |
opacity: t | |
}, e, n, i) | |
}, | |
animate: function(e, t, n, i) { | |
var s = ut.isEmptyObject(e), | |
r = ut.speed(t, n, i), | |
o = function() { | |
var t = Q(this, ut.extend({}, e), r); | |
(s || ut._data(this, "finish")) && t.stop(!0) | |
}; | |
return o.finish = o, s || r.queue === !1 ? this.each(o) : this.queue(r.queue, o) | |
}, | |
stop: function(e, n, i) { | |
var s = function(e) { | |
var t = e.stop; | |
delete e.stop, t(i) | |
}; | |
return "string" != typeof e && (i = n, n = e, e = t), n && e !== !1 && this.queue(e || "fx", []), this.each(function() { | |
var t = !0, | |
n = null != e && e + "queueHooks", | |
r = ut.timers, | |
o = ut._data(this); | |
if (n) o[n] && o[n].stop && s(o[n]); | |
else | |
for (n in o) o[n] && o[n].stop && ii.test(n) && s(o[n]); | |
for (n = r.length; n--;) r[n].elem !== this || null != e && r[n].queue !== e || (r[n].anim.stop(i), t = !1, r.splice(n, 1)); | |
(t || !i) && ut.dequeue(this, e) | |
}) | |
}, | |
finish: function(e) { | |
return e !== !1 && (e = e || "fx"), this.each(function() { | |
var t, n = ut._data(this), | |
i = n[e + "queue"], | |
s = n[e + "queueHooks"], | |
r = ut.timers, | |
o = i ? i.length : 0; | |
for (n.finish = !0, ut.queue(this, e, []), s && s.stop && s.stop.call(this, !0), t = r.length; t--;) r[t].elem === this && r[t].queue === e && (r[t].anim.stop(!0), r.splice(t, 1)); | |
for (t = 0; o > t; t++) i[t] && i[t].finish && i[t].finish.call(this); | |
delete n.finish | |
}) | |
} | |
}), ut.each({ | |
slideDown: W("show"), | |
slideUp: W("hide"), | |
slideToggle: W("toggle"), | |
fadeIn: { | |
opacity: "show" | |
}, | |
fadeOut: { | |
opacity: "hide" | |
}, | |
fadeToggle: { | |
opacity: "toggle" | |
} | |
}, function(e, t) { | |
ut.fn[e] = function(e, n, i) { | |
return this.animate(t, e, n, i) | |
} | |
}), ut.speed = function(e, t, n) { | |
var i = 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 i.duration = ut.fx.off ? 0 : "number" == typeof i.duration ? i.duration : i.duration in ut.fx.speeds ? ut.fx.speeds[i.duration] : ut.fx.speeds._default, (null == i.queue || i.queue === !0) && (i.queue = "fx"), i.old = i.complete, i.complete = function() { | |
ut.isFunction(i.old) && i.old.call(this), i.queue && ut.dequeue(this, i.queue) | |
}, i | |
}, ut.easing = { | |
linear: function(e) { | |
return e | |
}, | |
swing: function(e) { | |
return .5 - Math.cos(e * Math.PI) / 2 | |
} | |
}, ut.timers = [], ut.fx = P.prototype.init, ut.fx.tick = function() { | |
var e, n = ut.timers, | |
i = 0; | |
for (Xn = ut.now(); i < n.length; i++) e = n[i], e() || n[i] !== e || n.splice(i--, 1); | |
n.length || ut.fx.stop(), Xn = t | |
}, ut.fx.timer = function(e) { | |
e() && ut.timers.push(e) && ut.fx.start() | |
}, ut.fx.interval = 13, ut.fx.start = function() { | |
ei || (ei = setInterval(ut.fx.tick, ut.fx.interval)) | |
}, ut.fx.stop = function() { | |
clearInterval(ei), ei = 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, i, s = { | |
top: 0, | |
left: 0 | |
}, | |
r = this[0], | |
o = r && r.ownerDocument; | |
if (o) return n = o.documentElement, ut.contains(n, r) ? (typeof r.getBoundingClientRect !== q && (s = r.getBoundingClientRect()), i = G(o), { | |
top: s.top + (i.pageYOffset || n.scrollTop) - (n.clientTop || 0), | |
left: s.left + (i.pageXOffset || n.scrollLeft) - (n.clientLeft || 0) | |
}) : s | |
}, ut.offset = { | |
setOffset: function(e, t, n) { | |
var i = ut.css(e, "position"); | |
"static" === i && (e.style.position = "relative"); | |
var s, r, o = ut(e), | |
a = o.offset(), | |
c = ut.css(e, "top"), | |
l = ut.css(e, "left"), | |
u = ("absolute" === i || "fixed" === i) && ut.inArray("auto", [c, l]) > -1, | |
h = {}, | |
d = {}; | |
u ? (d = o.position(), s = d.top, r = d.left) : (s = parseFloat(c) || 0, r = parseFloat(l) || 0), ut.isFunction(t) && (t = t.call(e, n, a)), null != t.top && (h.top = t.top - a.top + s), null != t.left && (h.left = t.left - a.left + r), "using" in t ? t.using.call(e, h) : o.css(h) | |
} | |
}, ut.fn.extend({ | |
position: function() { | |
if (this[0]) { | |
var e, t, n = { | |
top: 0, | |
left: 0 | |
}, | |
i = this[0]; | |
return "fixed" === ut.css(i, "position") ? t = i.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(i, "marginTop", !0), | |
left: t.left - n.left - ut.css(i, "marginLeft", !0) | |
} | |
} | |
}, | |
offsetParent: function() { | |
return this.map(function() { | |
for (var e = this.offsetParent || Z; e && !ut.nodeName(e, "html") && "static" === ut.css(e, "position");) e = e.offsetParent; | |
return e || Z | |
}) | |
} | |
}), ut.each({ | |
scrollLeft: "pageXOffset", | |
scrollTop: "pageYOffset" | |
}, function(e, n) { | |
var i = /Y/.test(n); | |
ut.fn[e] = function(s) { | |
return ut.access(this, function(e, s, r) { | |
var o = G(e); | |
return r === t ? o ? n in o ? o[n] : o.document.documentElement[s] : e[s] : void(o ? o.scrollTo(i ? ut(o).scrollLeft() : r, i ? r : ut(o).scrollTop()) : e[s] = r) | |
}, e, s, arguments.length, null) | |
} | |
}), ut.each({ | |
Height: "height", | |
Width: "width" | |
}, function(e, n) { | |
ut.each({ | |
padding: "inner" + e, | |
content: n, | |
"": "outer" + e | |
}, function(i, s) { | |
ut.fn[s] = function(s, r) { | |
var o = arguments.length && (i || "boolean" != typeof s), | |
a = i || (s === !0 || r === !0 ? "margin" : "border"); | |
return ut.access(this, function(n, i, s) { | |
var r; | |
return ut.isWindow(n) ? n.document.documentElement["client" + e] : 9 === n.nodeType ? (r = n.documentElement, Math.max(n.body["scroll" + e], r["scroll" + e], n.body["offset" + e], r["offset" + e], r["client" + e])) : s === t ? ut.css(n, i, a) : ut.style(n, i, s, a) | |
}, n, o ? s : t, o, null) | |
} | |
}) | |
}), ut.fn.size = function() { | |
return this.length | |
}, ut.fn.andSelf = ut.fn.addBack, "object" == typeof module && module && "object" == typeof module.exports ? module.exports = ut : (e.jQuery = e.$ = ut, "function" == typeof define && define.amd && define("jquery", [], function() { | |
return ut | |
})) | |
}(window), | |
function() { | |
var e = this, | |
t = e._, | |
n = {}, | |
i = Array.prototype, | |
s = Object.prototype, | |
r = Function.prototype, | |
o = i.push, | |
a = i.slice, | |
c = i.concat, | |
l = s.toString, | |
u = s.hasOwnProperty, | |
h = i.forEach, | |
d = i.map, | |
p = i.reduce, | |
f = i.reduceRight, | |
g = i.filter, | |
A = i.every, | |
m = i.some, | |
y = i.indexOf, | |
v = i.lastIndexOf, | |
b = Array.isArray, | |
w = Object.keys, | |
x = r.bind, | |
C = function(e) { | |
return e instanceof C ? e : this instanceof C ? void(this._wrapped = e) : new C(e) | |
}; | |
"undefined" != typeof exports ? ("undefined" != typeof module && module.exports && (exports = module.exports = C), exports._ = C) : e._ = C, C.VERSION = "1.5.2"; | |
var E = C.each = C.forEach = function(e, t, i) { | |
if (null != e) | |
if (h && e.forEach === h) e.forEach(t, i); | |
else if (e.length === +e.length) { | |
for (var s = 0, r = e.length; r > s; s++) | |
if (t.call(i, e[s], s, e) === n) return | |
} else | |
for (var o = C.keys(e), s = 0, r = o.length; r > s; s++) | |
if (t.call(i, e[o[s]], o[s], e) === n) return | |
}; | |
C.map = C.collect = function(e, t, n) { | |
var i = []; | |
return null == e ? i : d && e.map === d ? e.map(t, n) : (E(e, function(e, s, r) { | |
i.push(t.call(n, e, s, r)) | |
}), i) | |
}; | |
var k = "Reduce of empty array with no initial value"; | |
C.reduce = C.foldl = C.inject = function(e, t, n, i) { | |
var s = arguments.length > 2; | |
if (null == e && (e = []), p && e.reduce === p) return i && (t = C.bind(t, i)), s ? e.reduce(t, n) : e.reduce(t); | |
if (E(e, function(e, r, o) { | |
s ? n = t.call(i, n, e, r, o) : (n = e, s = !0) | |
}), !s) throw new TypeError(k); | |
return n | |
}, C.reduceRight = C.foldr = function(e, t, n, i) { | |
var s = arguments.length > 2; | |
if (null == e && (e = []), f && e.reduceRight === f) return i && (t = C.bind(t, i)), s ? e.reduceRight(t, n) : e.reduceRight(t); | |
var r = e.length; | |
if (r !== +r) { | |
var o = C.keys(e); | |
r = o.length | |
} | |
if (E(e, function(a, c, l) { | |
c = o ? o[--r] : --r, s ? n = t.call(i, n, e[c], c, l) : (n = e[c], s = !0) | |
}), !s) throw new TypeError(k); | |
return n | |
}, C.find = C.detect = function(e, t, n) { | |
var i; | |
return S(e, function(e, s, r) { | |
return t.call(n, e, s, r) ? (i = e, !0) : void 0 | |
}), i | |
}, C.filter = C.select = function(e, t, n) { | |
var i = []; | |
return null == e ? i : g && e.filter === g ? e.filter(t, n) : (E(e, function(e, s, r) { | |
t.call(n, e, s, r) && i.push(e) | |
}), i) | |
}, C.reject = function(e, t, n) { | |
return C.filter(e, function(e, i, s) { | |
return !t.call(n, e, i, s) | |
}, n) | |
}, C.every = C.all = function(e, t, i) { | |
t || (t = C.identity); | |
var s = !0; | |
return null == e ? s : A && e.every === A ? e.every(t, i) : (E(e, function(e, r, o) { | |
return (s = s && t.call(i, e, r, o)) ? void 0 : n | |
}), !!s) | |
}; | |
var S = C.some = C.any = function(e, t, i) { | |
t || (t = C.identity); | |
var s = !1; | |
return null == e ? s : m && e.some === m ? e.some(t, i) : (E(e, function(e, r, o) { | |
return s || (s = t.call(i, e, r, o)) ? n : void 0 | |
}), !!s) | |
}; | |
C.contains = C.include = function(e, t) { | |
return null == e ? !1 : y && e.indexOf === y ? -1 != e.indexOf(t) : S(e, function(e) { | |
return e === t | |
}) | |
}, C.invoke = function(e, t) { | |
var n = a.call(arguments, 2), | |
i = C.isFunction(t); | |
return C.map(e, function(e) { | |
return (i ? t : e[t]).apply(e, n) | |
}) | |
}, C.pluck = function(e, t) { | |
return C.map(e, function(e) { | |
return e[t] | |
}) | |
}, C.where = function(e, t, n) { | |
return C.isEmpty(t) ? n ? void 0 : [] : C[n ? "find" : "filter"](e, function(e) { | |
for (var n in t) | |
if (t[n] !== e[n]) return !1; | |
return !0 | |
}) | |
}, C.findWhere = function(e, t) { | |
return C.where(e, t, !0) | |
}, C.max = function(e, t, n) { | |
if (!t && C.isArray(e) && e[0] === +e[0] && e.length < 65535) return Math.max.apply(Math, e); | |
if (!t && C.isEmpty(e)) return -1 / 0; | |
var i = { | |
computed: -1 / 0, | |
value: -1 / 0 | |
}; | |
return E(e, function(e, s, r) { | |
var o = t ? t.call(n, e, s, r) : e; | |
o > i.computed && (i = { | |
value: e, | |
computed: o | |
}) | |
}), i.value | |
}, C.min = function(e, t, n) { | |
if (!t && C.isArray(e) && e[0] === +e[0] && e.length < 65535) return Math.min.apply(Math, e); | |
if (!t && C.isEmpty(e)) return 1 / 0; | |
var i = { | |
computed: 1 / 0, | |
value: 1 / 0 | |
}; | |
return E(e, function(e, s, r) { | |
var o = t ? t.call(n, e, s, r) : e; | |
o < i.computed && (i = { | |
value: e, | |
computed: o | |
}) | |
}), i.value | |
}, C.shuffle = function(e) { | |
var t, n = 0, | |
i = []; | |
return E(e, function(e) { | |
t = C.random(n++), i[n - 1] = i[t], i[t] = e | |
}), i | |
}, C.sample = function(e, t, n) { | |
return arguments.length < 2 || n ? e[C.random(e.length - 1)] : C.shuffle(e).slice(0, Math.max(0, t)) | |
}; | |
var B = function(e) { | |
return C.isFunction(e) ? e : function(t) { | |
return t[e] | |
} | |
}; | |
C.sortBy = function(e, t, n) { | |
var i = B(t); | |
return C.pluck(C.map(e, function(e, t, s) { | |
return { | |
value: e, | |
index: t, | |
criteria: i.call(n, e, t, s) | |
} | |
}).sort(function(e, t) { | |
var n = e.criteria, | |
i = t.criteria; | |
if (n !== i) { | |
if (n > i || void 0 === n) return 1; | |
if (i > n || void 0 === i) return -1 | |
} | |
return e.index - t.index | |
}), "value") | |
}; | |
var _ = function(e) { | |
return function(t, n, i) { | |
var s = {}, | |
r = null == n ? C.identity : B(n); | |
return E(t, function(n, o) { | |
var a = r.call(i, n, o, t); | |
e(s, a, n) | |
}), s | |
} | |
}; | |
C.groupBy = _(function(e, t, n) { | |
(C.has(e, t) ? e[t] : e[t] = []).push(n) | |
}), C.indexBy = _(function(e, t, n) { | |
e[t] = n | |
}), C.countBy = _(function(e, t) { | |
C.has(e, t) ? e[t]++ : e[t] = 1 | |
}), C.sortedIndex = function(e, t, n, i) { | |
n = null == n ? C.identity : B(n); | |
for (var s = n.call(i, t), r = 0, o = e.length; o > r;) { | |
var a = r + o >>> 1; | |
n.call(i, e[a]) < s ? r = a + 1 : o = a | |
} | |
return r | |
}, C.toArray = function(e) { | |
return e ? C.isArray(e) ? a.call(e) : e.length === +e.length ? C.map(e, C.identity) : C.values(e) : [] | |
}, C.size = function(e) { | |
return null == e ? 0 : e.length === +e.length ? e.length : C.keys(e).length | |
}, C.first = C.head = C.take = function(e, t, n) { | |
return null == e ? void 0 : null == t || n ? e[0] : a.call(e, 0, t) | |
}, C.initial = function(e, t, n) { | |
return a.call(e, 0, e.length - (null == t || n ? 1 : t)) | |
}, C.last = function(e, t, n) { | |
return null == e ? void 0 : null == t || n ? e[e.length - 1] : a.call(e, Math.max(e.length - t, 0)) | |
}, C.rest = C.tail = C.drop = function(e, t, n) { | |
return a.call(e, null == t || n ? 1 : t) | |
}, C.compact = function(e) { | |
return C.filter(e, C.identity) | |
}; | |
var T = function(e, t, n) { | |
return t && C.every(e, C.isArray) ? c.apply(n, e) : (E(e, function(e) { | |
C.isArray(e) || C.isArguments(e) ? t ? o.apply(n, e) : T(e, t, n) : n.push(e) | |
}), n) | |
}; | |
C.flatten = function(e, t) { | |
return T(e, t, []) | |
}, C.without = function(e) { | |
return C.difference(e, a.call(arguments, 1)) | |
}, C.uniq = C.unique = function(e, t, n, i) { | |
C.isFunction(t) && (i = n, n = t, t = !1); | |
var s = n ? C.map(e, n, i) : e, | |
r = [], | |
o = []; | |
return E(s, function(n, i) { | |
(t ? i && o[o.length - 1] === n : C.contains(o, n)) || (o.push(n), r.push(e[i])) | |
}), r | |
}, C.union = function() { | |
return C.uniq(C.flatten(arguments, !0)) | |
}, C.intersection = function(e) { | |
var t = a.call(arguments, 1); | |
return C.filter(C.uniq(e), function(e) { | |
return C.every(t, function(t) { | |
return C.indexOf(t, e) >= 0 | |
}) | |
}) | |
}, C.difference = function(e) { | |
var t = c.apply(i, a.call(arguments, 1)); | |
return C.filter(e, function(e) { | |
return !C.contains(t, e) | |
}) | |
}, C.zip = function() { | |
for (var e = C.max(C.pluck(arguments, "length").concat(0)), t = new Array(e), n = 0; e > n; n++) t[n] = C.pluck(arguments, "" + n); | |
return t | |
}, C.object = function(e, t) { | |
if (null == e) return {}; | |
for (var n = {}, i = 0, s = e.length; s > i; i++) t ? n[e[i]] = t[i] : n[e[i][0]] = e[i][1]; | |
return n | |
}, C.indexOf = function(e, t, n) { | |
if (null == e) return -1; | |
var i = 0, | |
s = e.length; | |
if (n) { | |
if ("number" != typeof n) return i = C.sortedIndex(e, t), e[i] === t ? i : -1; | |
i = 0 > n ? Math.max(0, s + n) : n | |
} | |
if (y && e.indexOf === y) return e.indexOf(t, n); | |
for (; s > i; i++) | |
if (e[i] === t) return i; | |
return -1 | |
}, C.lastIndexOf = function(e, t, n) { | |
if (null == e) return -1; | |
var i = null != n; | |
if (v && e.lastIndexOf === v) return i ? e.lastIndexOf(t, n) : e.lastIndexOf(t); | |
for (var s = i ? n : e.length; s--;) | |
if (e[s] === t) return s; | |
return -1 | |
}, C.range = function(e, t, n) { | |
arguments.length <= 1 && (t = e || 0, e = 0), n = arguments[2] || 1; | |
for (var i = Math.max(Math.ceil((t - e) / n), 0), s = 0, r = new Array(i); i > s;) r[s++] = e, e += n; | |
return r | |
}; | |
var D = function() {}; | |
C.bind = function(e, t) { | |
var n, i; | |
if (x && e.bind === x) return x.apply(e, a.call(arguments, 1)); | |
if (!C.isFunction(e)) throw new TypeError; | |
return n = a.call(arguments, 2), i = function() { | |
if (!(this instanceof i)) return e.apply(t, n.concat(a.call(arguments))); | |
D.prototype = e.prototype; | |
var s = new D; | |
D.prototype = null; | |
var r = e.apply(s, n.concat(a.call(arguments))); | |
return Object(r) === r ? r : s | |
} | |
}, C.partial = function(e) { | |
var t = a.call(arguments, 1); | |
return function() { | |
return e.apply(this, t.concat(a.call(arguments))) | |
} | |
}, C.bindAll = function(e) { | |
var t = a.call(arguments, 1); | |
if (0 === t.length) throw new Error("bindAll must be passed function names"); | |
return E(t, function(t) { | |
e[t] = C.bind(e[t], e) | |
}), e | |
}, C.memoize = function(e, t) { | |
var n = {}; | |
return t || (t = C.identity), | |
function() { | |
var i = t.apply(this, arguments); | |
return C.has(n, i) ? n[i] : n[i] = e.apply(this, arguments) | |
} | |
}, C.delay = function(e, t) { | |
var n = a.call(arguments, 2); | |
return setTimeout(function() { | |
return e.apply(null, n) | |
}, t) | |
}, C.defer = function(e) { | |
return C.delay.apply(C, [e, 1].concat(a.call(arguments, 1))) | |
}, C.throttle = function(e, t, n) { | |
var i, s, r, o = null, | |
a = 0; | |
n || (n = {}); | |
var c = function() { | |
a = n.leading === !1 ? 0 : new Date, o = null, r = e.apply(i, s) | |
}; | |
return function() { | |
var l = new Date; | |
a || n.leading !== !1 || (a = l); | |
var u = t - (l - a); | |
return i = this, s = arguments, 0 >= u ? (clearTimeout(o), o = null, a = l, r = e.apply(i, s)) : o || n.trailing === !1 || (o = setTimeout(c, u)), r | |
} | |
}, C.debounce = function(e, t, n) { | |
var i, s, r, o, a; | |
return function() { | |
r = this, s = arguments, o = new Date; | |
var c = function() { | |
var l = new Date - o; | |
t > l ? i = setTimeout(c, t - l) : (i = null, n || (a = e.apply(r, s))) | |
}, | |
l = n && !i; | |
return i || (i = setTimeout(c, t)), l && (a = e.apply(r, s)), a | |
} | |
}, C.once = function(e) { | |
var t, n = !1; | |
return function() { | |
return n ? t : (n = !0, t = e.apply(this, arguments), e = null, t) | |
} | |
}, C.wrap = function(e, t) { | |
return function() { | |
var n = [e]; | |
return o.apply(n, arguments), t.apply(this, n) | |
} | |
}, C.compose = function() { | |
var e = arguments; | |
return function() { | |
for (var t = arguments, n = e.length - 1; n >= 0; n--) t = [e[n].apply(this, t)]; | |
return t[0] | |
} | |
}, C.after = function(e, t) { | |
return function() { | |
return --e < 1 ? t.apply(this, arguments) : void 0 | |
} | |
}, C.keys = w || function(e) { | |
if (e !== Object(e)) throw new TypeError("Invalid object"); | |
var t = []; | |
for (var n in e) C.has(e, n) && t.push(n); | |
return t | |
}, C.values = function(e) { | |
for (var t = C.keys(e), n = t.length, i = new Array(n), s = 0; n > s; s++) i[s] = e[t[s]]; | |
return i | |
}, C.pairs = function(e) { | |
for (var t = C.keys(e), n = t.length, i = new Array(n), s = 0; n > s; s++) i[s] = [t[s], e[t[s]]]; | |
return i | |
}, C.invert = function(e) { | |
for (var t = {}, n = C.keys(e), i = 0, s = n.length; s > i; i++) t[e[n[i]]] = n[i]; | |
return t | |
}, C.functions = C.methods = function(e) { | |
var t = []; | |
for (var n in e) C.isFunction(e[n]) && t.push(n); | |
return t.sort() | |
}, C.extend = function(e) { | |
return E(a.call(arguments, 1), function(t) { | |
if (t) | |
for (var n in t) e[n] = t[n] | |
}), e | |
}, C.pick = function(e) { | |
var t = {}, | |
n = c.apply(i, a.call(arguments, 1)); | |
return E(n, function(n) { | |
n in e && (t[n] = e[n]) | |
}), t | |
}, C.omit = function(e) { | |
var t = {}, | |
n = c.apply(i, a.call(arguments, 1)); | |
for (var s in e) C.contains(n, s) || (t[s] = e[s]); | |
return t | |
}, C.defaults = function(e) { | |
return E(a.call(arguments, 1), function(t) { | |
if (t) | |
for (var n in t) void 0 === e[n] && (e[n] = t[n]) | |
}), e | |
}, C.clone = function(e) { | |
return C.isObject(e) ? C.isArray(e) ? e.slice() : C.extend({}, e) : e | |
}, C.tap = function(e, t) { | |
return t(e), e | |
}; | |
var M = function(e, t, n, i) { | |
if (e === t) return 0 !== e || 1 / e == 1 / t; | |
if (null == e || null == t) return e === t; | |
e instanceof C && (e = e._wrapped), t instanceof C && (t = t._wrapped); | |
var s = l.call(e); | |
if (s != l.call(t)) return !1; | |
switch (s) { | |
case "[object String]": | |
return e == String(t); | |
case "[object Number]": | |
return e != +e ? t != +t : 0 == e ? 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 ("object" != typeof e || "object" != typeof t) return !1; | |
for (var r = n.length; r--;) | |
if (n[r] == e) return i[r] == t; | |
var o = e.constructor, | |
a = t.constructor; | |
if (o !== a && !(C.isFunction(o) && o instanceof o && C.isFunction(a) && a instanceof a)) return !1; | |
n.push(e), i.push(t); | |
var c = 0, | |
u = !0; | |
if ("[object Array]" == s) { | |
if (c = e.length, u = c == t.length) | |
for (; c-- && (u = M(e[c], t[c], n, i));); | |
} else { | |
for (var h in e) | |
if (C.has(e, h) && (c++, !(u = C.has(t, h) && M(e[h], t[h], n, i)))) break; | |
if (u) { | |
for (h in t) | |
if (C.has(t, h) && !c--) break; | |
u = !c | |
} | |
} | |
return n.pop(), i.pop(), u | |
}; | |
C.isEqual = function(e, t) { | |
return M(e, t, [], []) | |
}, C.isEmpty = function(e) { | |
if (null == e) return !0; | |
if (C.isArray(e) || C.isString(e)) return 0 === e.length; | |
for (var t in e) | |
if (C.has(e, t)) return !1; | |
return !0 | |
}, C.isElement = function(e) { | |
return !(!e || 1 !== e.nodeType) | |
}, C.isArray = b || function(e) { | |
return "[object Array]" == l.call(e) | |
}, C.isObject = function(e) { | |
return e === Object(e) | |
}, E(["Arguments", "Function", "String", "Number", "Date", "RegExp"], function(e) { | |
C["is" + e] = function(t) { | |
return l.call(t) == "[object " + e + "]" | |
} | |
}), C.isArguments(arguments) || (C.isArguments = function(e) { | |
return !(!e || !C.has(e, "callee")) | |
}), "function" != typeof /./ && (C.isFunction = function(e) { | |
return "function" == typeof e | |
}), C.isFinite = function(e) { | |
return isFinite(e) && !isNaN(parseFloat(e)) | |
}, C.isNaN = function(e) { | |
return C.isNumber(e) && e != +e | |
}, C.isBoolean = function(e) { | |
return e === !0 || e === !1 || "[object Boolean]" == l.call(e) | |
}, C.isNull = function(e) { | |
return null === e | |
}, C.isUndefined = function(e) { | |
return void 0 === e | |
}, C.has = function(e, t) { | |
return u.call(e, t) | |
}, C.noConflict = function() { | |
return e._ = t, this | |
}, C.identity = function(e) { | |
return e | |
}, C.times = function(e, t, n) { | |
for (var i = Array(Math.max(0, e)), s = 0; e > s; s++) i[s] = t.call(n, s); | |
return i | |
}, C.random = function(e, t) { | |
return null == t && (t = e, e = 0), e + Math.floor(Math.random() * (t - e + 1)) | |
}; | |
var N = { | |
escape: { | |
"&": "&", | |
"<": "<", | |
">": ">", | |
'"': """, | |
"'": "'" | |
} | |
}; | |
N.unescape = C.invert(N.escape); | |
var I = { | |
escape: new RegExp("[" + C.keys(N.escape).join("") + "]", "g"), | |
unescape: new RegExp("(" + C.keys(N.unescape).join("|") + ")", "g") | |
}; | |
C.each(["escape", "unescape"], function(e) { | |
C[e] = function(t) { | |
return null == t ? "" : ("" + t).replace(I[e], function(t) { | |
return N[e][t] | |
}) | |
} | |
}), C.result = function(e, t) { | |
if (null == e) return void 0; | |
var n = e[t]; | |
return C.isFunction(n) ? n.call(e) : n | |
}, C.mixin = function(e) { | |
E(C.functions(e), function(t) { | |
var n = C[t] = e[t]; | |
C.prototype[t] = function() { | |
var e = [this._wrapped]; | |
return o.apply(e, arguments), H.call(this, n.apply(C, e)) | |
} | |
}) | |
}; | |
var j = 0; | |
C.uniqueId = function(e) { | |
var t = ++j + ""; | |
return e ? e + t : t | |
}, C.templateSettings = { | |
evaluate: /<%([\s\S]+?)%>/g, | |
interpolate: /<%=([\s\S]+?)%>/g, | |
escape: /<%-([\s\S]+?)%>/g | |
}; | |
var L = /(.)^/, | |
O = { | |
"'": "'", | |
"\\": "\\", | |
"\r": "r", | |
"\n": "n", | |
" ": "t", | |
"\u2028": "u2028", | |
"\u2029": "u2029" | |
}, | |
F = /\\|'|\r|\n|\t|\u2028|\u2029/g; | |
C.template = function(e, t, n) { | |
var i; | |
n = C.defaults({}, n, C.templateSettings); | |
var s = new RegExp([(n.escape || L).source, (n.interpolate || L).source, (n.evaluate || L).source].join("|") + "|$", "g"), | |
r = 0, | |
o = "__p+='"; | |
e.replace(s, function(t, n, i, s, a) { | |
return o += e.slice(r, a).replace(F, function(e) { | |
return "\\" + O[e] | |
}), n && (o += "'+\n((__t=(" + n + "))==null?'':_.escape(__t))+\n'"), i && (o += "'+\n((__t=(" + i + "))==null?'':__t)+\n'"), s && (o += "';\n" + s + "\n__p+='"), r = a + 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 { | |
i = new Function(n.variable || "obj", "_", o) | |
} catch (a) { | |
throw a.source = o, a | |
} | |
if (t) return i(t, C); | |
var c = function(e) { | |
return i.call(this, e, C) | |
}; | |
return c.source = "function(" + (n.variable || "obj") + "){\n" + o + "}", c | |
}, C.chain = function(e) { | |
return C(e).chain() | |
}; | |
var H = function(e) { | |
return this._chain ? C(e).chain() : e | |
}; | |
C.mixin(C), E(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function(e) { | |
var t = i[e]; | |
C.prototype[e] = function() { | |
var n = this._wrapped; | |
return t.apply(n, arguments), "shift" != e && "splice" != e || 0 !== n.length || delete n[0], H.call(this, n) | |
} | |
}), E(["concat", "join", "slice"], function(e) { | |
var t = i[e]; | |
C.prototype[e] = function() { | |
return H.call(this, t.apply(this._wrapped, arguments)) | |
} | |
}), C.extend(C.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 n = function() { | |
return this._.noConflict() | |
}, t = n.apply(e, arguments), t || e._ | |
} | |
}(this)), | |
function(e, t) { | |
if ("function" == typeof define && define.amd) define("backbone", ["underscore", "jquery", "exports"], function(n, i, s) { | |
e.Backbone = t(e, s, n, i) | |
}); | |
else if ("undefined" != typeof exports) { | |
var n = require("underscore"); | |
t(e, exports, n) | |
} else e.Backbone = t(e, {}, e._, e.jQuery || e.Zepto || e.ender || e.$) | |
}(this, function(e, t, n, i) { | |
{ | |
var s = e.Backbone, | |
r = [], | |
o = (r.push, r.slice); | |
r.splice | |
} | |
t.VERSION = "1.1.2", t.$ = i, t.noConflict = function() { | |
return e.Backbone = s, this | |
}, t.emulateHTTP = !1, t.emulateJSON = !1; | |
var a = t.Events = { | |
on: function(e, t, n) { | |
if (!l(this, "on", e, [t, n]) || !t) return this; | |
this._events || (this._events = {}); | |
var i = this._events[e] || (this._events[e] = []); | |
return i.push({ | |
callback: t, | |
context: n, | |
ctx: n || this | |
}), this | |
}, | |
once: function(e, t, i) { | |
if (!l(this, "once", e, [t, i]) || !t) return this; | |
var s = this, | |
r = n.once(function() { | |
s.off(e, r), t.apply(this, arguments) | |
}); | |
return r._callback = t, this.on(e, r, i) | |
}, | |
off: function(e, t, i) { | |
var s, r, o, a, c, u, h, d; | |
if (!this._events || !l(this, "off", e, [t, i])) return this; | |
if (!e && !t && !i) return this._events = void 0, this; | |
for (a = e ? [e] : n.keys(this._events), c = 0, u = a.length; u > c; c++) | |
if (e = a[c], o = this._events[e]) { | |
if (this._events[e] = s = [], t || i) | |
for (h = 0, d = o.length; d > h; h++) r = o[h], (t && t !== r.callback && t !== r.callback._callback || i && i !== r.context) && s.push(r); | |
s.length || delete this._events[e] | |
} | |
return this | |
}, | |
trigger: function(e) { | |
if (!this._events) return this; | |
var t = o.call(arguments, 1); | |
if (!l(this, "trigger", e, t)) return this; | |
var n = this._events[e], | |
i = this._events.all; | |
return n && u(n, t), i && u(i, arguments), this | |
}, | |
stopListening: function(e, t, i) { | |
var s = this._listeningTo; | |
if (!s) return this; | |
var r = !t && !i; | |
i || "object" != typeof t || (i = this), e && ((s = {})[e._listenId] = e); | |
for (var o in s) e = s[o], e.off(t, i, this), (r || n.isEmpty(e._events)) && delete this._listeningTo[o]; | |
return this | |
} | |
}, | |
c = /\s+/, | |
l = function(e, t, n, i) { | |
if (!n) return !0; | |
if ("object" == typeof n) { | |
for (var s in n) e[t].apply(e, [s, n[s]].concat(i)); | |
return !1 | |
} | |
if (c.test(n)) { | |
for (var r = n.split(c), o = 0, a = r.length; a > o; o++) e[t].apply(e, [r[o]].concat(i)); | |
return !1 | |
} | |
return !0 | |
}, | |
u = function(e, t) { | |
var n, i = -1, | |
s = e.length, | |
r = t[0], | |
o = t[1], | |
a = t[2]; | |
switch (t.length) { | |
case 0: | |
for (; ++i < s;)(n = e[i]).callback.call(n.ctx); | |
return; | |
case 1: | |
for (; ++i < s;)(n = e[i]).callback.call(n.ctx, r); | |
return; | |
case 2: | |
for (; ++i < s;)(n = e[i]).callback.call(n.ctx, r, o); | |
return; | |
case 3: | |
for (; ++i < s;)(n = e[i]).callback.call(n.ctx, r, o, a); | |
return; | |
default: | |
for (; ++i < s;)(n = e[i]).callback.apply(n.ctx, t); | |
return | |
} | |
}, | |
h = { | |
listenTo: "on", | |
listenToOnce: "once" | |
}; | |
n.each(h, function(e, t) { | |
a[t] = function(t, i, s) { | |
var r = this._listeningTo || (this._listeningTo = {}), | |
o = t._listenId || (t._listenId = n.uniqueId("l")); | |
return r[o] = t, s || "object" != typeof i || (s = this), t[e](i, s, this), this | |
} | |
}), a.bind = a.on, a.unbind = a.off, n.extend(t, a); | |
var d = t.Model = function(e, t) { | |
var i = e || {}; | |
t || (t = {}), this.cid = n.uniqueId("c"), this.attributes = {}, t.collection && (this.collection = t.collection), t.parse && (i = this.parse(i, t) || {}), i = n.defaults({}, i, n.result(this, "defaults")), this.set(i, t), this.changed = {}, this.initialize.apply(this, arguments) | |
}; | |
n.extend(d.prototype, a, { | |
changed: null, | |
validationError: null, | |
idAttribute: "id", | |
initialize: function() {}, | |
toJSON: function() { | |
return n.clone(this.attributes) | |
}, | |
sync: function() { | |
return t.sync.apply(this, arguments) | |
}, | |
get: function(e) { | |
return this.attributes[e] | |
}, | |
escape: function(e) { | |
return n.escape(this.get(e)) | |
}, | |
has: function(e) { | |
return null != this.get(e) | |
}, | |
set: function(e, t, i) { | |
var s, r, o, a, c, l, u, h; | |
if (null == e) return this; | |
if ("object" == typeof e ? (r = e, i = t) : (r = {})[e] = t, i || (i = {}), !this._validate(r, i)) return !1; | |
o = i.unset, c = i.silent, a = [], l = this._changing, this._changing = !0, l || (this._previousAttributes = n.clone(this.attributes), this.changed = {}), h = this.attributes, u = this._previousAttributes, this.idAttribute in r && (this.id = r[this.idAttribute]); | |
for (s in r) t = r[s], n.isEqual(h[s], t) || a.push(s), n.isEqual(u[s], t) ? delete this.changed[s] : this.changed[s] = t, o ? delete h[s] : h[s] = t; | |
if (!c) { | |
a.length && (this._pending = i); | |
for (var d = 0, p = a.length; p > d; d++) this.trigger("change:" + a[d], this, h[a[d]], i) | |
} | |
if (l) return this; | |
if (!c) | |
for (; this._pending;) i = this._pending, this._pending = !1, this.trigger("change", this, i); | |
return this._pending = !1, this._changing = !1, this | |
}, | |
unset: function(e, t) { | |
return this.set(e, void 0, n.extend({}, t, { | |
unset: !0 | |
})) | |
}, | |
clear: function(e) { | |
var t = {}; | |
for (var i in this.attributes) t[i] = void 0; | |
return this.set(t, n.extend({}, e, { | |
unset: !0 | |
})) | |
}, | |
hasChanged: function(e) { | |
return null == e ? !n.isEmpty(this.changed) : n.has(this.changed, e) | |
}, | |
changedAttributes: function(e) { | |
if (!e) return this.hasChanged() ? n.clone(this.changed) : !1; | |
var t, i = !1, | |
s = this._changing ? this._previousAttributes : this.attributes; | |
for (var r in e) n.isEqual(s[r], t = e[r]) || ((i || (i = {}))[r] = t); | |
return i | |
}, | |
previous: function(e) { | |
return null != e && this._previousAttributes ? this._previousAttributes[e] : null | |
}, | |
previousAttributes: function() { | |
return n.clone(this._previousAttributes) | |
}, | |
fetch: function(e) { | |
e = e ? n.clone(e) : {}, void 0 === e.parse && (e.parse = !0); | |
var t = this, | |
i = e.success; | |
return e.success = function(n) { | |
return t.set(t.parse(n, e), e) ? (i && i(t, n, e), void t.trigger("sync", t, n, e)) : !1 | |
}, F(this, e), this.sync("read", this, e) | |
}, | |
save: function(e, t, i) { | |
var s, r, o, a = this.attributes; | |
if (null == e || "object" == typeof e ? (s = e, i = t) : (s = {})[e] = t, i = n.extend({ | |
validate: !0 | |
}, i), s && !i.wait) { | |
if (!this.set(s, i)) return !1 | |
} else if (!this._validate(s, i)) return !1; | |
s && i.wait && (this.attributes = n.extend({}, a, s)), void 0 === i.parse && (i.parse = !0); | |
var c = this, | |
l = i.success; | |
return i.success = function(e) { | |
c.attributes = a; | |
var t = c.parse(e, i); | |
return i.wait && (t = n.extend(s || {}, t)), n.isObject(t) && !c.set(t, i) ? !1 : (l && l(c, e, i), void c.trigger("sync", c, e, i)) | |
}, F(this, i), r = this.isNew() ? "create" : i.patch ? "patch" : "update", "patch" === r && (i.attrs = s), o = this.sync(r, this, i), s && i.wait && (this.attributes = a), o | |
}, | |
destroy: function(e) { | |
e = e ? n.clone(e) : {}; | |
var t = this, | |
i = e.success, | |
s = function() { | |
t.trigger("destroy", t, t.collection, e) | |
}; | |
if (e.success = function(n) { | |
(e.wait || t.isNew()) && s(), i && i(t, n, e), t.isNew() || t.trigger("sync", t, n, e) | |
}, this.isNew()) return e.success(), !1; | |
F(this, e); | |
var r = this.sync("delete", this, e); | |
return e.wait || s(), r | |
}, | |
url: function() { | |
var e = n.result(this, "urlRoot") || n.result(this.collection, "url") || O(); | |
return this.isNew() ? e : e.replace(/([^\/])$/, "$1/") + encodeURIComponent(this.id) | |
}, | |
parse: function(e) { | |
return e | |
}, | |
clone: function() { | |
return new this.constructor(this.attributes) | |
}, | |
isNew: function() { | |
return !this.has(this.idAttribute) | |
}, | |
isValid: function(e) { | |
return this._validate({}, n.extend(e || {}, { | |
validate: !0 | |
})) | |
}, | |
_validate: function(e, t) { | |
if (!t.validate || !this.validate) return !0; | |
e = n.extend({}, this.attributes, e); | |
var i = this.validationError = this.validate(e, t) || null; | |
return i ? (this.trigger("invalid", this, i, n.extend(t, { | |
validationError: i | |
})), !1) : !0 | |
} | |
}); | |
var p = ["keys", "values", "pairs", "invert", "pick", "omit"]; | |
n.each(p, function(e) { | |
d.prototype[e] = function() { | |
var t = o.call(arguments); | |
return t.unshift(this.attributes), n[e].apply(n, t) | |
} | |
}); | |
var f = t.Collection = function(e, t) { | |
t || (t = {}), t.model && (this.model = t.model), void 0 !== t.comparator && (this.comparator = t.comparator), this._reset(), this.initialize.apply(this, arguments), e && this.reset(e, n.extend({ | |
silent: !0 | |
}, t)) | |
}, | |
g = { | |
add: !0, | |
remove: !0, | |
merge: !0 | |
}, | |
A = { | |
add: !0, | |
remove: !1 | |
}; | |
n.extend(f.prototype, a, { | |
model: d, | |
initialize: function() {}, | |
toJSON: function(e) { | |
return this.map(function(t) { | |
return t.toJSON(e) | |
}) | |
}, | |
sync: function() { | |
return t.sync.apply(this, arguments) | |
}, | |
add: function(e, t) { | |
return this.set(e, n.extend({ | |
merge: !1 | |
}, t, A)) | |
}, | |
remove: function(e, t) { | |
var i = !n.isArray(e); | |
e = i ? [e] : n.clone(e), t || (t = {}); | |
var s, r, o, a; | |
for (s = 0, r = e.length; r > s; s++) a = e[s] = this.get(e[s]), a && (delete this._byId[a.id], delete this._byId[a.cid], o = this.indexOf(a), this.models.splice(o, 1), this.length--, t.silent || (t.index = o, a.trigger("remove", a, this, t)), this._removeReference(a, t)); | |
return i ? e[0] : e | |
}, | |
set: function(e, t) { | |
t = n.defaults({}, t, g), t.parse && (e = this.parse(e, t)); | |
var i = !n.isArray(e); | |
e = i ? e ? [e] : [] : n.clone(e); | |
var s, r, o, a, c, l, u, h = t.at, | |
p = this.model, | |
f = this.comparator && null == h && t.sort !== !1, | |
A = n.isString(this.comparator) ? this.comparator : null, | |
m = [], | |
y = [], | |
v = {}, | |
b = t.add, | |
w = t.merge, | |
x = t.remove, | |
C = !f && b && x ? [] : !1; | |
for (s = 0, r = e.length; r > s; s++) { | |
if (c = e[s] || {}, o = c instanceof d ? a = c : c[p.prototype.idAttribute || "id"], l = this.get(o)) x && (v[l.cid] = !0), w && (c = c === a ? a.attributes : c, t.parse && (c = l.parse(c, t)), l.set(c, t), f && !u && l.hasChanged(A) && (u = !0)), e[s] = l; | |
else if (b) { | |
if (a = e[s] = this._prepareModel(c, t), !a) continue; | |
m.push(a), this._addReference(a, t) | |
} | |
a = l || a, !C || !a.isNew() && v[a.id] || C.push(a), v[a.id] = !0 | |
} | |
if (x) { | |
for (s = 0, r = this.length; r > s; ++s) v[(a = this.models[s]).cid] || y.push(a); | |
y.length && this.remove(y, t) | |
} | |
if (m.length || C && C.length) | |
if (f && (u = !0), this.length += m.length, null != h) | |
for (s = 0, r = m.length; r > s; s++) this.models.splice(h + s, 0, m[s]); | |
else { | |
C && (this.models.length = 0); | |
var E = C || m; | |
for (s = 0, r = E.length; r > s; s++) this.models.push(E[s]) | |
} | |
if (u && this.sort({ | |
silent: !0 | |
}), !t.silent) { | |
for (s = 0, r = m.length; r > s; s++)(a = m[s]).trigger("add", a, this, t); | |
(u || C && C.length) && this.trigger("sort", this, t) | |
} | |
return i ? e[0] : e | |
}, | |
reset: function(e, t) { | |
t || (t = {}); | |
for (var i = 0, s = this.models.length; s > i; i++) this._removeReference(this.models[i], t); | |
return t.previousModels = this.models, this._reset(), e = this.add(e, n.extend({ | |
silent: !0 | |
}, t)), t.silent || this.trigger("reset", this, t), e | |
}, | |
push: function(e, t) { | |
return this.add(e, n.extend({ | |
at: this.length | |
}, t)) | |
}, | |
pop: function(e) { | |
var t = this.at(this.length - 1); | |
return this.remove(t, e), t | |
}, | |
unshift: function(e, t) { | |
return this.add(e, n.extend({ | |
at: 0 | |
}, t)) | |
}, | |
shift: function(e) { | |
var t = this.at(0); | |
return this.remove(t, e), t | |
}, | |
slice: function() { | |
return o.apply(this.models, arguments) | |
}, | |
get: function(e) { | |
return null == e ? void 0 : this._byId[e] || this._byId[e.id] || this._byId[e.cid] | |
}, | |
at: function(e) { | |
return this.models[e] | |
}, | |
where: function(e, t) { | |
return n.isEmpty(e) ? t ? void 0 : [] : this[t ? "find" : "filter"](function(t) { | |
for (var n in e) | |
if (e[n] !== t.get(n)) return !1; | |
return !0 | |
}) | |
}, | |
findWhere: function(e) { | |
return this.where(e, !0) | |
}, | |
sort: function(e) { | |
if (!this.comparator) throw new Error("Cannot sort a set without a comparator"); | |
return e || (e = {}), n.isString(this.comparator) || 1 === this.comparator.length ? this.models = this.sortBy(this.comparator, this) : this.models.sort(n.bind(this.comparator, this)), e.silent || this.trigger("sort", this, e), this | |
}, | |
pluck: function(e) { | |
return n.invoke(this.models, "get", e) | |
}, | |
fetch: function(e) { | |
e = e ? n.clone(e) : {}, void 0 === e.parse && (e.parse = !0); | |
var t = e.success, | |
i = this; | |
return e.success = function(n) { | |
var s = e.reset ? "reset" : "set"; | |
i[s](n, e), t && t(i, n, e), i.trigger("sync", i, n, e) | |
}, F(this, e), this.sync("read", this, e) | |
}, | |
create: function(e, t) { | |
if (t = t ? n.clone(t) : {}, !(e = this._prepareModel(e, t))) return !1; | |
t.wait || this.add(e, t); | |
var i = this, | |
s = t.success; | |
return t.success = function(e, n) { | |
t.wait && i.add(e, t), s && s(e, n, t) | |
}, e.save(null, t), e | |
}, | |
parse: function(e) { | |
return e | |
}, | |
clone: function() { | |
return new this.constructor(this.models) | |
}, | |
_reset: function() { | |
this.length = 0, this.models = [], this._byId = {} | |
}, | |
_prepareModel: function(e, t) { | |
if (e instanceof d) return e; | |
t = t ? n.clone(t) : {}, t.collection = this; | |
var i = new this.model(e, t); | |
return i.validationError ? (this.trigger("invalid", this, i.validationError, t), !1) : i | |
}, | |
_addReference: function(e) { | |
this._byId[e.cid] = e, null != e.id && (this._byId[e.id] = e), e.collection || (e.collection = this), e.on("all", this._onModelEvent, this) | |
}, | |
_removeReference: function(e) { | |
this === e.collection && delete e.collection, e.off("all", this._onModelEvent, this) | |
}, | |
_onModelEvent: function(e, t, n, i) { | |
("add" !== e && "remove" !== e || n === this) && ("destroy" === e && this.remove(t, i), t && e === "change:" + t.idAttribute && (delete this._byId[t.previous(t.idAttribute)], null != t.id && (this._byId[t.id] = t)), this.trigger.apply(this, arguments)) | |
} | |
}); | |
var m = ["forEach", "each", "map", "collect", "reduce", "foldl", "inject", "reduceRight", "foldr", "find", "detect", "filter", "select", "reject", "every", "all", "some", "any", "include", "contains", "invoke", "max", "min", "toArray", "size", "first", "head", "take", "initial", "rest", "tail", "drop", "last", "without", "difference", "indexOf", "shuffle", "lastIndexOf", "isEmpty", "chain", "sample"]; | |
n.each(m, function(e) { | |
f.prototype[e] = function() { | |
var t = o.call(arguments); | |
return t.unshift(this.models), n[e].apply(n, t) | |
} | |
}); | |
var y = ["groupBy", "countBy", "sortBy", "indexBy"]; | |
n.each(y, function(e) { | |
f.prototype[e] = function(t, i) { | |
var s = n.isFunction(t) ? t : function(e) { | |
return e.get(t) | |
}; | |
return n[e](this.models, s, i) | |
} | |
}); | |
var v = t.View = function(e) { | |
this.cid = n.uniqueId("view"), e || (e = {}), n.extend(this, n.pick(e, w)), this._ensureElement(), this.initialize.apply(this, arguments), this.delegateEvents() | |
}, | |
b = /^(\S+)\s*(.*)$/, | |
w = ["model", "collection", "el", "id", "attributes", "className", "tagName", "events"]; | |
n.extend(v.prototype, a, { | |
tagName: "div", | |
$: function(e) { | |
return this.$el.find(e) | |
}, | |
initialize: function() {}, | |
render: function() { | |
return this | |
}, | |
remove: function() { | |
return this.$el.remove(), this.stopListening(), this | |
}, | |
setElement: function(e, n) { | |
return this.$el && this.undelegateEvents(), this.$el = e instanceof t.$ ? e : t.$(e), this.el = this.$el[0], n !== !1 && this.delegateEvents(), this | |
}, | |
delegateEvents: function(e) { | |
if (!e && !(e = n.result(this, "events"))) return this; | |
this.undelegateEvents(); | |
for (var t in e) { | |
var i = e[t]; | |
if (n.isFunction(i) || (i = this[e[t]]), i) { | |
var s = t.match(b), | |
r = s[1], | |
o = s[2]; | |
i = n.bind(i, this), r += ".delegateEvents" + this.cid, "" === o ? this.$el.on(r, i) : this.$el.on(r, o, i) | |
} | |
} | |
return this | |
}, | |
undelegateEvents: function() { | |
return this.$el.off(".delegateEvents" + this.cid), this | |
}, | |
_ensureElement: function() { | |
if (this.el) this.setElement(n.result(this, "el"), !1); | |
else { | |
var e = n.extend({}, n.result(this, "attributes")); | |
this.id && (e.id = n.result(this, "id")), this.className && (e["class"] = n.result(this, "className")); | |
var i = t.$("<" + n.result(this, "tagName") + ">").attr(e); | |
this.setElement(i, !1) | |
} | |
} | |
}), t.sync = function(e, i, s) { | |
var r = C[e]; | |
n.defaults(s || (s = {}), { | |
emulateHTTP: t.emulateHTTP, | |
emulateJSON: t.emulateJSON | |
}); | |
var o = { | |
type: r, | |
dataType: "json" | |
}; | |
if (s.url || (o.url = n.result(i, "url") || O()), null != s.data || !i || "create" !== e && "update" !== e && "patch" !== e || (o.contentType = "application/json", o.data = JSON.stringify(s.attrs || i.toJSON(s))), s.emulateJSON && (o.contentType = "application/x-www-form-urlencoded", o.data = o.data ? { | |
model: o.data | |
} : {}), s.emulateHTTP && ("PUT" === r || "DELETE" === r || "PATCH" === r)) { | |
o.type = "POST", s.emulateJSON && (o.data._method = r); | |
var a = s.beforeSend; | |
s.beforeSend = function(e) { | |
return e.setRequestHeader("X-HTTP-Method-Override", r), a ? a.apply(this, arguments) : void 0 | |
} | |
} | |
"GET" === o.type || s.emulateJSON || (o.processData = !1), "PATCH" === o.type && x && (o.xhr = function() { | |
return new ActiveXObject("Microsoft.XMLHTTP") | |
}); | |
var c = s.xhr = t.ajax(n.extend(o, s)); | |
return i.trigger("request", i, c, s), c | |
}; | |
var x = !("undefined" == typeof window || !window.ActiveXObject || window.XMLHttpRequest && (new XMLHttpRequest).dispatchEvent), | |
C = { | |
create: "POST", | |
update: "PUT", | |
patch: "PATCH", | |
"delete": "DELETE", | |
read: "GET" | |
}; | |
t.ajax = function() { | |
return t.$.ajax.apply(t.$, arguments) | |
}; | |
var E = t.Router = function(e) { | |
e || (e = {}), e.routes && (this.routes = e.routes), this._bindRoutes(), this.initialize.apply(this, arguments) | |
}, | |
k = /\((.*?)\)/g, | |
S = /(\(\?)?:\w+/g, | |
B = /\*\w+/g, | |
_ = /[\-{}\[\]+?.,\\\^$|#\s]/g; | |
n.extend(E.prototype, a, { | |
initialize: function() {}, | |
route: function(e, i, s) { | |
n.isRegExp(e) || (e = this._routeToRegExp(e)), n.isFunction(i) && (s = i, i = ""), s || (s = this[i]); | |
var r = this; | |
return t.history.route(e, function(n) { | |
var o = r._extractParameters(e, n); | |
r.execute(s, o), r.trigger.apply(r, ["route:" + i].concat(o)), r.trigger("route", i, o), t.history.trigger("route", r, i, o) | |
}), this | |
}, | |
execute: function(e, t) { | |
e && e.apply(this, t) | |
}, | |
navigate: function(e, n) { | |
return t.history.navigate(e, n), this | |
}, | |
_bindRoutes: function() { | |
if (this.routes) { | |
this.routes = n.result(this, "routes"); | |
for (var e, t = n.keys(this.routes); null != (e = t.pop());) this.route(e, this.routes[e]) | |
} | |
}, | |
_routeToRegExp: function(e) { | |
return e = e.replace(_, "\\$&").replace(k, "(?:$1)?").replace(S, function(e, t) { | |
return t ? e : "([^/?]+)" | |
}).replace(B, "([^?]*?)"), new RegExp("^" + e + "(?:\\?([\\s\\S]*))?$") | |
}, | |
_extractParameters: function(e, t) { | |
var i = e.exec(t).slice(1); | |
return n.map(i, function(e, t) { | |
return t === i.length - 1 ? e || null : e ? decodeURIComponent(e) : null | |
}) | |
} | |
}); | |
var T = t.History = function() { | |
this.handlers = [], n.bindAll(this, "checkUrl"), "undefined" != typeof window && (this.location = window.location, this.history = window.history) | |
}, | |
D = /^[#\/]|\s+$/g, | |
M = /^\/+|\/+$/g, | |
N = /msie [\w.]+/, | |
I = /\/$/, | |
j = /#.*$/; | |
T.started = !1, n.extend(T.prototype, a, { | |
interval: 50, | |
atRoot: function() { | |
return this.location.pathname.replace(/[^\/]$/, "$&/") === this.root | |
}, | |
getHash: function(e) { | |
var t = (e || this).location.href.match(/#(.*)$/); | |
return t ? t[1] : "" | |
}, | |
getFragment: function(e, t) { | |
if (null == e) | |
if (this._hasPushState || !this._wantsHashChange || t) { | |
e = decodeURI(this.location.pathname + this.location.search); | |
var n = this.root.replace(I, ""); | |
e.indexOf(n) || (e = e.slice(n.length)) | |
} else e = this.getHash(); | |
return e.replace(D, "") | |
}, | |
start: function(e) { | |
if (T.started) throw new Error("Backbone.history has already been started"); | |
T.started = !0, this.options = n.extend({ | |
root: "/" | |
}, this.options, e), this.root = this.options.root, this._wantsHashChange = this.options.hashChange !== !1, this._wantsPushState = !!this.options.pushState, this._hasPushState = !!(this.options.pushState && this.history && this.history.pushState); | |
var i = this.getFragment(), | |
s = document.documentMode, | |
r = N.exec(navigator.userAgent.toLowerCase()) && (!s || 7 >= s); | |
if (this.root = ("/" + this.root + "/").replace(M, "/"), r && this._wantsHashChange) { | |
var o = t.$('<iframe src="javascript:0" tabindex="-1">'); | |
this.iframe = o.hide().appendTo("body")[0].contentWindow, this.navigate(i) | |
} | |
this._hasPushState ? t.$(window).on("popstate", this.checkUrl) : this._wantsHashChange && "onhashchange" in window && !r ? t.$(window).on("hashchange", this.checkUrl) : this._wantsHashChange && (this._checkUrlInterval = setInterval(this.checkUrl, this.interval)), this.fragment = i; | |
var a = this.location; | |
if (this._wantsHashChange && this._wantsPushState) { | |
if (!this._hasPushState && !this.atRoot()) return this.fragment = this.getFragment(null, !0), this.location.replace(this.root + "#" + this.fragment), !0; | |
this._hasPushState && this.atRoot() && a.hash && (this.fragment = this.getHash().replace(D, ""), this.history.replaceState({}, document.title, this.root + this.fragment)) | |
} | |
return this.options.silent ? void 0 : this.loadUrl() | |
}, | |
stop: function() { | |
t.$(window).off("popstate", this.checkUrl).off("hashchange", this.checkUrl), this._checkUrlInterval && clearInterval(this._checkUrlInterval), T.started = !1 | |
}, | |
route: function(e, t) { | |
this.handlers.unshift({ | |
route: e, | |
callback: t | |
}) | |
}, | |
checkUrl: function() { | |
var e = this.getFragment(); | |
return e === this.fragment && this.iframe && (e = this.getFragment(this.getHash(this.iframe))), e === this.fragment ? !1 : (this.iframe && this.navigate(e), void this.loadUrl()) | |
}, | |
loadUrl: function(e) { | |
return e = this.fragment = this.getFragment(e), n.any(this.handlers, function(t) { | |
return t.route.test(e) ? (t.callback(e), !0) : void 0 | |
}) | |
}, | |
navigate: function(e, t) { | |
if (!T.started) return !1; | |
t && t !== !0 || (t = { | |
trigger: !!t | |
}); | |
var n = this.root + (e = this.getFragment(e || "")); | |
if (e = e.replace(j, ""), this.fragment !== e) { | |
if (this.fragment = e, "" === e && "/" !== n && (n = n.slice(0, -1)), this._hasPushState) this.history[t.replace ? "replaceState" : "pushState"]({}, document.title, n); | |
else { | |
if (!this._wantsHashChange) return this.location.assign(n); | |
this._updateHash(this.location, e, t.replace), this.iframe && e !== this.getFragment(this.getHash(this.iframe)) && (t.replace || this.iframe.document.open().close(), this._updateHash(this.iframe.location, e, t.replace)) | |
} | |
return t.trigger ? this.loadUrl(e) : void 0 | |
} | |
}, | |
_updateHash: function(e, t, n) { | |
if (n) { | |
var i = e.href.replace(/(javascript:|#).*$/, ""); | |
e.replace(i + "#" + t) | |
} else e.hash = "#" + t | |
} | |
}), t.history = new T; | |
var L = function(e, t) { | |
var i, s = this; | |
i = e && n.has(e, "constructor") ? e.constructor : function() { | |
return s.apply(this, arguments) | |
}, n.extend(i, s, t); | |
var r = function() { | |
this.constructor = i | |
}; | |
return r.prototype = s.prototype, i.prototype = new r, e && n.extend(i.prototype, e), i.__super__ = s.prototype, i | |
}; | |
d.extend = f.extend = E.extend = v.extend = T.extend = L; | |
var O = function() { | |
throw new Error('A "url" property or function must be specified') | |
}, | |
F = function(e, t) { | |
var n = t.error; | |
t.error = function(i) { | |
n && n(e, i, t), e.trigger("error", e, i, t) | |
} | |
}; | |
return t | |
}), define("utilities/triggermethod", ["underscore"], function(e) { | |
var t = /(^|:)(\w)/gi, | |
n = function(e, t, n) { | |
return n.toUpperCase() | |
}, | |
i = function(i) { | |
var s = "on" + i.replace(t, n), | |
r = this[s]; | |
return e.isFunction(this.trigger) && this.trigger.apply(this, arguments), e.isFunction(r) ? r.apply(this, e.tail(arguments)) : void 0 | |
}, | |
s = i; | |
return s | |
}), define("utilities/analytics", ["jquery"], function(e) { | |
for (var t, n = function(n, i) { | |
var s = this; | |
t = e.getScript("//static.getchute.com/js/analytics/1/analytics.min.js"), t.then(function() { | |
s.analytics = new window.Chute.Analytics(n, i) | |
}) | |
}, i = ["trigger", "pageview", "trackLink", "trackModel", "trackHover"], s = function(e) { | |
return function() { | |
var n = this, | |
i = arguments; | |
t.then(function() { | |
n.analytics[e].apply(n.analytics, i) | |
}) | |
} | |
}, r = 0; r < i.length; r++) { | |
var o = i[r]; | |
n.prototype[o] = s(o) | |
} | |
return n | |
}), define("core/view", ["underscore", "backbone", "utilities/triggermethod", "utilities/analytics"], function(e, t, n, i) { | |
var s = t.View.extend({ | |
constructor: function(e) { | |
return e || (e = {}), this.options = e, e.analytics || (e.analytics = new i), this.analytics = e.analytics, e.template && (this.template = e.template), t.View.apply(this, arguments) | |
}, | |
render: function() { | |
this.triggerMethod("before:render", this); | |
var e = this.serializeData(), | |
t = this.template(e); | |
return this.$el.html(t), this.triggerMethod("render", this), this | |
}, | |
template: function() {}, | |
serializeData: function() {}, | |
triggerMethod: n, | |
close: function() { | |
this.triggerMethod("close"), this.remove() | |
} | |
}), | |
r = s; | |
return r | |
}), define("core/region", ["jquery", "backbone", "underscore"], function(e, t, n) { | |
var i = function(e) { | |
if (e || (e = {}), !e.el) throw "Must specify an element for a region."; | |
this.el = e.el, this.options = n.clone(e), "function" == typeof this.initialize && this.initialize(e) | |
}; | |
n.extend(i.prototype, { | |
close: function() { | |
var e = this.currentView; | |
e && e.close && e.close(), delete this.currentView | |
}, | |
open: function() { | |
var t = this.currentView; | |
t.render(), e(this.el).append(t.el), t.triggerMethod && t.triggerMethod("show") | |
}, | |
show: function(e) { | |
this.close(), this.currentView = e, this.open() | |
} | |
}, t.Events), i.extend = t.View.extend; | |
var s = i; | |
return s | |
}), define("core/layout", ["underscore", "backbone", "core/view", "core/region"], function(e, t, n, i) { | |
var s = n.extend({ | |
regionType: i, | |
attributes: function() { | |
return { | |
"data-chute-component": this.id | |
} | |
}, | |
constructor: function() { | |
n.prototype.constructor.apply(this, arguments) | |
}, | |
render: function() { | |
return this.destroyRegions(), n.prototype.render.apply(this, arguments), this.initializeRegions(), this | |
}, | |
addRegion: function(e, t) { | |
"function" == typeof t && (t = t.call(this)), t.el = this.$(t.selector); | |
var n = t.regionType || this.regionType; | |
this[e] = new n(t) | |
}, | |
destroyRegion: function(e) { | |
this[e] && (this[e].close(), delete this[e]) | |
}, | |
initializeRegions: function() { | |
e.each(this.regions, function(e, t) { | |
this.addRegion(t, e) | |
}, this) | |
}, | |
destroyRegions: function() { | |
e.each(this.regions, function(e, t) { | |
this.destroyRegion(t) | |
}, this) | |
}, | |
close: function() { | |
this.destroyRegions(), n.prototype.close.apply(this, arguments) | |
} | |
}), | |
r = s; | |
return r | |
}), define("components/cssregion", ["jquery", "core/region"], function(e, t) { | |
var n = t.extend({ | |
constructor: function() { | |
this.container = document.getElementsByTagName("head")[0] | |
}, | |
open: function() { | |
var e = this.currentView; | |
this.container.appendChild(e.el), e.render(), e.triggerMethod && e.triggerMethod("show") | |
} | |
}), | |
i = n; | |
return i | |
}), define("components/cssview", ["core/view", "underscore", "jquery"], function(e, t, n) { | |
var i = e.extend({ | |
constructor: function(e) { | |
this.cid = t.uniqueId("view"), this.model = e.model, this.template = e.template, this.el = document.createElement("style"), this.el.type = "text/css" | |
}, | |
render: function() { | |
var e = this.model.toJSON(), | |
t = this.template(e), | |
n = this.el; | |
return n.styleSheet ? n.styleSheet.cssText = t : n.appendChild(document.createTextNode(t)), this.triggerMethod("render", this), this | |
}, | |
close: function() { | |
n(this.el).remove() | |
} | |
}), | |
s = i; | |
return s | |
}), define("utilities/jquery.xdr", ["jquery"], function(e) { | |
window.XDomainRequest && (e.ajaxSettings.xdr = function() { | |
try { | |
return new window.XDomainRequest | |
} catch (e) {} | |
}, e.ajaxTransport(function(t) { | |
if (t.crossDomain && t.async) { | |
t.timeout && (t.xdrTimeout = t.timeout, delete t.timeout); | |
var n; | |
return { | |
send: function(i, s) { | |
function r(t, i, r, o) { | |
n.onload = n.onerror = n.ontimeout = e.noop, n = void 0, s(t, i, r, o) | |
} | |
n = e.ajaxSettings.xdr(), t.data = t.data ? JSON.parse(t.data) : {}, ("PUT" === t.type || "DELETE" === t.type || "PATCH" === t.type) && (t.data._method = t.type, t.type = "POST"), "POST" === t.type && (t.data = e.param(t.data)), n.onload = function() { | |
r(200, "OK", { | |
text: n.responseText | |
}, "Content-Type: " + n.contentType) | |
}, n.onerror = function() { | |
r(404, "Not Found") | |
}, n.onprogress = function() {}, n.ontimeout = function() { | |
r(0, "timeout") | |
}, n.timeout = t.xdrTimeout || Number.MAX_VALUE, n.open(t.type, t.url), n.send(t.hasContent && t.data || null) | |
}, | |
abort: function() { | |
n && (n.onerror = e.noop, n.abort()) | |
} | |
} | |
} | |
})) | |
}), define("api/urls", ["utilities/jquery.xdr"], function() { | |
var e = {}; | |
return e.endpoint = /(^|\.)chute\.com/i.test(location.hostname) ? "http://chute.com:8989/v2/" : "//api.getchute.com/v2/", e | |
}), define("api/collection", ["backbone", "underscore", "jquery"], function(e, t, n) { | |
var i = e.Collection.extend({ | |
initialize: function(e, t) { | |
if (this.options = t || {}, this.url = this.options.url, delete this.options.url, !this.url) throw new Error("Collection URL must be specified.") | |
}, | |
parse: function(e) { | |
return e.pagination && (this.next_page = e.pagination.next_page), e.data | |
}, | |
fetch: function(i) { | |
if (this._fetching) return this._fetching; | |
if (this.length && !this.next_page) return n.Deferred().resolve([]); | |
i || (i = {}), t.defaults(i, { | |
data: {}, | |
remove: !1 | |
}), this.next_page && (i.url = this.next_page, delete this.next_page), this._fetching = e.Collection.prototype.fetch.call(this, i); | |
var s = this; | |
return this._fetching.done(function() { | |
delete s._fetching | |
}), this._fetching | |
} | |
}); | |
return i | |
}), define("utilities/storage", [], function() { | |
return { | |
getItem: function(e) { | |
return e = "Chute_" + e, window.localStorage && localStorage[e] ? localStorage.getItem(e) : decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(e).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null | |
}, | |
setItem: function(e, t) { | |
e = "Chute_" + e; | |
try { | |
window.localStorage.setItem(e, t) | |
} catch (n) { | |
document.cookie = encodeURIComponent(e) + "=" + encodeURIComponent(t) + "; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/" | |
} | |
}, | |
removeItem: function(e) { | |
e = "Chute_" + e, localStorage.removeItem(e), document.cookie = encodeURIComponent(e) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/" | |
} | |
} | |
}), define("api/asset", ["backbone", "underscore", "jquery", "utilities/storage", "api/urls"], function(e, t, n, i, s) { | |
var r = e.Model.extend({ | |
url: function() { | |
return this.get("album") ? s.endpoint + "albums/" + this.get("album") + "/assets/" + this.get("shortcut") : this.collection ? t.result(this.collection, "url") + "/" + this.get("shortcut") : s.endpoint + "assets/" + this.get("shortcut") | |
}, | |
defaults: { | |
dimensions: { | |
width: void 0, | |
height: void 0 | |
}, | |
url: void 0 | |
}, | |
initialize: function() { | |
this.listenTo(this, "change:hearted", this.onChangeHearted) | |
}, | |
heart: function() { | |
var e = this; | |
this._hearting || (this._hearting = !0, this.get("hearted") ? n.ajax({ | |
method: "DELETE", | |
url: this.url() + "/hearts/" + this.get("hearted") | |
}).done(function() { | |
e.set({ | |
hearts: e.get("hearts") - 1, | |
hearted: void 0 | |
}), e._hearting = !1 | |
}) : n.ajax({ | |
method: "POST", | |
contentType: "application/json", | |
url: this.url() + "/hearts" | |
}).done(function(t) { | |
e.set({ | |
hearts: e.get("hearts") + 1, | |
hearted: t.data.identifier | |
}), e._hearting = !1 | |
})) | |
}, | |
onChangeHearted: function(e, t) { | |
var n = "hearted:" + this.get("chute_asset_id"); | |
t ? i.setItem(n, t) : i.removeItem(n) | |
}, | |
parse: function(e) { | |
return e.data && (e = e.data), e.hearted = i.getItem("hearted:" + e.chute_asset_id), e | |
} | |
}), | |
o = r; | |
return o | |
}), define("api/assets", ["backbone", "underscore", "jquery", "api/collection", "api/asset", "api/urls"], function(e, t, n, i, s, r) { | |
var o = i.extend({ | |
model: s, | |
initialize: function(e, t) { | |
t || (t = {}), t.album && (t.url = r.endpoint + "albums/" + t.album + "/assets"), i.prototype.initialize.call(this, e, t) | |
}, | |
parse: function(e) { | |
e = i.prototype.parse.call(this, e); | |
var n = this.options.album; | |
return t.each(e, function(e) { | |
e.album = n | |
}), e | |
}, | |
fetch: function(e) { | |
return e || (e = {}), e.data = t.defaults(e.data || {}, t.pick(this.options, "type since_id max_id from_time to_time username tags source service lat lng radius sort page per_page".split(" "))), i.prototype.fetch.call(this, e) | |
} | |
}); | |
return o | |
}), define("utilities/intervalToFunction", ["backbone", "underscore", "jquery", "api/urls", "api/album", "api/asset"], function(e, t) { | |
var n = function(e) { | |
throw new Error("Interval " + e + " is not a valid format.") | |
}; | |
return function(e) { | |
if (t.isFunction(e)) return e; | |
var i, s; | |
if (e.indexOf("+") > 0) { | |
var r = e.split("+"); | |
i = r[0], i.match(/^\d+n$/) ? i = parseInt(i, 10) : n(e), s = r[1], s.match(/^\d+$/) ? s = parseInt(s, 10) : n(e) | |
} else if (e.match(/^\d+n?$/)) { | |
var o = parseInt(e, 10); | |
e.indexOf("n") > 0 ? (i = o, s = 0) : (i = 0, s = o) | |
} else n(e); | |
return function(e) { | |
return 0 === i ? e === s : e % i - s === 0 | |
} | |
} | |
}), define("api/util/multiCollection", ["backbone", "underscore", "jquery", "utilities/intervalToFunction"], function(e, t, n, i) { | |
function s(e, t) { | |
r(e, t), o(e, t) | |
} | |
function r(e, n) { | |
e && e.properties && n && t.each(t.keys(e.properties), function(t) { | |
n[t] = e.properties[t] | |
}) | |
} | |
function o(e, n) { | |
e && e.attributes && n && t.each(t.keys(e.attributes), function(t) { | |
n.set(t, e.attributes[t]) | |
}) | |
} | |
function a(e, t, n) { | |
e(function(i) { | |
return i ? n(i) : void(t() ? a(e, t, n) : n()) | |
}) | |
} | |
var c = e.Collection.extend({ | |
initialize: function(e, n) { | |
n || (n = {}), this.sources = [], t.each(n.sources, t.bind(function(e) { | |
e.currentIndex = 0, e.hasMore = !0, e.matchIndex = e.interval ? i(e.interval) : function() { | |
return !0 | |
}, this.sources.push(e) | |
}, this)), this.options = t.defaults(n, { | |
per_page: 20 | |
}) | |
}, | |
fetch: function(e) { | |
if (this._fetching) return this._fetching; | |
this._fetching = this._nextPage(e); | |
var t = this; | |
return this._fetching.done(function() { | |
delete t._fetching | |
}), this._fetching | |
}, | |
_nextPage: function(e) { | |
e || (e = {}); | |
var t = this, | |
i = n.Deferred(), | |
s = [], | |
r = {}, | |
o = [], | |
c = !0; | |
return a(function(e) { | |
t._nextItem(t.length + s.length).done(function(n) { | |
if (n) { | |
var i = n.id || n.cid || n.get("id") || n.get("cid"); | |
t.get(i) || r[i] ? o.push(n) : (s.push(n), r[i] = n) | |
} else c = !1; | |
e() | |
}) | |
}, function() { | |
return s.length < t.options.per_page && c | |
}, function() { | |
t.add(s), t.add(o), i.resolve(s), e.success && e.success(t, s, e), t.trigger("sync", t, s, e) | |
}), i | |
}, | |
_nextItem: function(e) { | |
var t = this, | |
i = n.Deferred(), | |
r = this._whichSource(e); | |
if (r) | |
if (r.currentIndex < r.collection.length) { | |
var o = r.collection.at(r.currentIndex++); | |
s(r, o), i.resolve(o) | |
} else { | |
var a = r.collection.length; | |
r.collection.fetch({ | |
reset: !1 | |
}).done(function() { | |
a === r.collection.length && (r.hasMore = !1), t._nextItem(e).done(function(e) { | |
i.resolve(e) | |
}) | |
}) | |
} else i.resolve(); | |
return i | |
}, | |
_whichSource: function(e) { | |
return t.find(this.sources, function(t) { | |
return t.hasMore && t.matchIndex(e + 1) ? !0 : void 0 | |
}) | |
} | |
}); | |
return c | |
}), define("api/playlistAssets", ["backbone", "underscore", "jquery", "api/asset", "api/urls"], function(e, t, n, i, s) { | |
function r(e) { | |
return e.asset_ids.slice(e.currentIndex, e.currentIndex + e.options.per_page || 50) | |
} | |
var o = e.Collection.extend({ | |
model: i, | |
initialize: function(e, t) { | |
if (!t.asset_ids) throw new Error("Playlist requires asset_ids options."); | |
t.album && (t.url = s.endpoint + "albums/" + t.album + "/assets"), this.currentIndex = 0, this.asset_ids = t.asset_ids, delete t.asset_ids, this.url = t.url, delete t.url, this.options = t | |
}, | |
parse: function(e) { | |
var n = this.options.album, | |
i = r(this), | |
s = /^\d+$/.test(i[0]) ? "id" : "shortcut", | |
o = []; | |
return t.each(i, function(i) { | |
var r = t.find(e.data, function(e) { | |
return e[s] === i | |
}); | |
r && (r.album = n, o.push(r)) | |
}), this.currentIndex += o.length, o | |
}, | |
fetch: function(i) { | |
if (this.length === this.asset_ids.length) return n.Deferred().resolve([]); | |
if (this._fetching) return this._fetching; | |
i || (i = {}), t.defaults(i, { | |
remove: !1 | |
}), i.data = t.defaults(i.data || {}, t.pick(this.options, "asset_ids", "per_page"), { | |
asset_ids: r(this).join(",") | |
}), this._fetching = e.Collection.prototype.fetch.call(this, i); | |
var s = this; | |
return this._fetching.done(function() { | |
delete s._fetching | |
}), this._fetching | |
} | |
}); | |
return o | |
}), define("api/playlist", ["backbone", "underscore", "jquery", "api/urls", "api/playlistAssets"], function(e, t, n, i, s) { | |
var r = e.Model.extend({ | |
urlRoot: i.endpoint + "albums/", | |
url: function() { | |
return this.urlRoot + this.get("shortcut") | |
}, | |
initialize: function(e, n) { | |
e || (e = {}), n || (n = {}), this.options = n, this.assets = new s([], t.extend({ | |
album: e.shortcut | |
}, n)) | |
}, | |
fetchAssets: function(e) { | |
return this.assets.fetch(e) | |
} | |
}); | |
return r | |
}), define("api/album", ["backbone", "underscore", "jquery", "api/urls", "api/assets", "api/asset", "api/util/multiCollection", "api/playlist"], function(e, t, n, i, s, r, o, a) { | |
var c = e.Model.extend({ | |
urlRoot: i.endpoint + "albums/", | |
url: function() { | |
return this.urlRoot + this.get("shortcut") | |
}, | |
initialize: function(e, n) { | |
n || (n = {}), e || (e = {}), this.options = n, e.shortcut && (this.id = e.shortcut), this.assets = new s([], t.extend({ | |
album: e.shortcut | |
}, n)), e.playlist && (this.assets = new o([], { | |
model: r, | |
sources: [{ | |
collection: new a({ | |
shortcut: e.shortcut | |
}, { | |
asset_ids: e.playlist | |
}).assets | |
}, { | |
collection: this.assets | |
}] | |
})) | |
}, | |
fetchAssets: function(e) { | |
return this.assets.fetch(e) | |
}, | |
pollAssets: function(e) { | |
window.setTimeout(t.bind(this.fetchAssets, this, { | |
success: t.bind(this.pollAssets, this, e) | |
}), e) | |
} | |
}); | |
return c | |
}), define("core/collectionview", ["underscore", "core/view"], function(e, t) { | |
var n = t.extend({ | |
constructor: function(n) { | |
n || (n = {}), n.itemViewOptions || (n.itemViewOptions = {}), t.prototype.constructor.apply(this, arguments), this.childViews = {}, this.bindCollectionEvents(), this.monitorChildViewLifecycle(), e.extend(this, e.pick(n, "itemViewOptions")) | |
}, | |
bindCollectionEvents: function() { | |
this.collection && (this.listenTo(this.collection, "add", this.addChildView, this), this.listenTo(this.collection, "remove", this.removeChildView, this), this.listenTo(this.collection, "reset", this.render, this)) | |
}, | |
monitorChildViewLifecycle: function() { | |
this.loadedViews = [], this.pendingViews = [], this.listenTo(this, "itemview:render", this.trackChildRender), this.listenTo(this, "itemview:load:success", this.trackChildLoadSuccess), this.listenTo(this, "itemview:load:error", this.trackChildLoadError) | |
}, | |
buildItemView: function(t) { | |
var n = e.extend({}, this.itemViewOptions, { | |
model: t | |
}); | |
return new this.itemViewType(n) | |
}, | |
addChildView: function(t) { | |
var n = this.buildItemView(t), | |
i = this; | |
this.listenTo(n, "all", function() { | |
var t = e.toArray(arguments).slice(0); | |
t[0] = "itemview:" + t[0], t.splice(1, 0, this), i.triggerMethod.apply(i, t) | |
}), this.childViews[t.cid] = n, this.$el.append(n.render().$el) | |
}, | |
removeChildView: function(e) { | |
var t = this.childViews[e.cid]; | |
t.close(), delete this.childViews[e.cid] | |
}, | |
removeChildren: function() { | |
var t = this, | |
n = this.collection; | |
e.each(this.childViews, function(e) { | |
t.removeChildView(e.model, n) | |
}), this.childViews = {} | |
}, | |
render: function(e) { | |
if (this.removeChildren(), this.$el.empty(), this.triggerMethod("before:render", this), this.collection) { | |
var t = this; | |
this.collection.each(function(n) { | |
t.addChildView(n, t.collection, e) | |
}) | |
} | |
return this.triggerMethod("render", this), this | |
}, | |
trackChildRender: function() { | |
var t = e.last(arguments); | |
e.contains(this.pendingViews, t) || this.pendingViews.push(t), this.onLastChildRender() | |
}, | |
onLastChildRender: e.debounce(function() { | |
this.triggerMethod("itemviews:render") | |
}, 10), | |
trackChildLoadSuccess: function() { | |
var t = e.last(arguments); | |
e.contains(this.loadedViews, t) || this.loadedViews.push(t), this.checkIfDone() | |
}, | |
trackChildLoadError: function() { | |
var t = e.last(arguments); | |
this.pendingViews = e.without(this.pendingViews, t), this.checkIfDone() | |
}, | |
checkIfDone: function() { | |
this.pendingViews.length == this.loadedViews.length && (this.triggerMethod("itemviews:load", this.pendingViews), this.loadedViews = [], this.pendingViews = []) | |
} | |
}), | |
i = n; | |
return i | |
}), define("components/modalregion", ["jquery", "underscore", "core/region"], function(e, t, n) { | |
var i = n.extend({ | |
constructor: function() { | |
this.el = e('<div class="chute-modal-container"/>'), this.backdrop = e('<div class="chute-modal-backdrop"/>'), t.bindAll(this, "open", "close", "closeOnEsc") | |
}, | |
open: function() { | |
this.backdrop.attr("data-chute-component", this.currentView.options.componentId), this.el.attr("data-chute-component", this.currentView.options.componentId), e("body").append(this.backdrop).append(this.el), this.backdrop.on("click", this.close), this.el.on("click", ".chute-close", this.close), e(document).on("keydown", this.closeOnEsc), n.prototype.open.apply(this, arguments) | |
}, | |
close: function() { | |
this.backdrop.off("click", this.close).detach().removeAttr("data-chute-component"), this.el.off("click", ".chute-close", this.close), e(document).off("keydown", this.closeOnEsc), this.el.detach().removeAttr("data-chute-component"), n.prototype.close.apply(this, arguments) | |
}, | |
closeOnEsc: function(e) { | |
27 == e.keyCode && this.close() | |
} | |
}), | |
s = new i; | |
return s | |
}), define("core/assetview", ["core/view", "components/modalregion", "underscore"], function(e, t, n) { | |
var i = e.extend({ | |
className: "chute-asset-view chute-component-loading", | |
events: { | |
"click .chute-asset-thumbnail": "clickThumbnail", | |
"click .chute-heart-widget": "heart" | |
}, | |
initialize: function() { | |
this.listenTo(this.model, "change:hearted", this.updateHeartCount), this.listenTo(this.model, "destroy", this.remove), n.bindAll(this, "showLightbox", "heart") | |
}, | |
serializeData: function() { | |
var e = this.model.toJSON(); | |
return e.enable = this.options.enable, e.asset_url = e.url + "/w/" + this.options.width, e | |
}, | |
updateHeartCount: function(e, t) { | |
this.$(".chute-heart-widget").toggleClass("chute-hearted", !!t), this.$(".chute-heart-count").text(e.get("hearts")) | |
}, | |
onRender: function() { | |
var e = this; | |
this.$("img.chute-asset-thumbnail").error(function() { | |
e.triggerMethod("load:error", e) | |
}), this.$("img.chute-asset-thumbnail").load(function() { | |
e.triggerMethod("load:success", e) | |
}) | |
}, | |
onLoadError: function() { | |
this.remove() | |
}, | |
clickThumbnail: function() { | |
this.analytics.trigger("click_thumbnail", { | |
lID: this.model.get("album"), | |
aID: this.model.get("shortcut") | |
}), this.showLightbox() | |
}, | |
showLightbox: function() { | |
if (this.options.enable.lightbox && this.options.lightboxOptions && this.lightboxViewType) { | |
var e = n.clone(this.options.lightboxOptions); | |
e.model = this.model, t.show(new this.lightboxViewType(e)) | |
} | |
}, | |
heart: function() { | |
var e = this.model.get("hearted") ? "click_unvote" : "click_vote"; | |
this.analytics.trigger(e, { | |
lID: this.model.get("album"), | |
aID: this.model.get("shortcut"), | |
eCx: "tile" | |
}), this.model.heart() | |
} | |
}), | |
s = i; | |
return s | |
}), | |
function() { | |
var e = {}; | |
! function(e) { | |
e.VERSION = "1.0.rc.1", e.helpers = {}, e.partials = {}, e.registerHelper = function(e, t, n) { | |
n && (t.not = n), this.helpers[e] = t | |
}, e.registerPartial = function(e, t) { | |
this.partials[e] = t | |
}, e.registerHelper("helperMissing", function(e) { | |
if (2 === arguments.length) return void 0; | |
throw new Error("Could not find property '" + e + "'") | |
}); | |
var t = Object.prototype.toString, | |
n = "[object Function]"; | |
e.registerHelper("blockHelperMissing", function(i, s) { | |
var r = s.inverse || function() {}, | |
o = s.fn, | |
a = t.call(i); | |
return a === n && (i = i.call(this)), i === !0 ? o(this) : i === !1 || null == i ? r(this) : "[object Array]" === a ? i.length > 0 ? e.helpers.each(i, s) : r(this) : o(i) | |
}), e.K = function() {}, e.createFrame = Object.create || function(t) { | |
e.K.prototype = t; | |
var n = new e.K; | |
return e.K.prototype = null, n | |
}, e.registerHelper("each", function(t, n) { | |
var i, s = n.fn, | |
r = n.inverse, | |
o = ""; | |
if (n.data && (i = e.createFrame(n.data)), t && t.length > 0) | |
for (var a = 0, c = t.length; c > a; a++) i && (i.index = a), o += s(t[a], { | |
data: i | |
}); | |
else o = r(this); | |
return o | |
}), e.registerHelper("if", function(i, s) { | |
var r = t.call(i); | |
return r === n && (i = i.call(this)), !i || e.Utils.isEmpty(i) ? s.inverse(this) : s.fn(this) | |
}), e.registerHelper("unless", function(t, n) { | |
var i = n.fn, | |
s = n.inverse; | |
return n.fn = s, n.inverse = i, e.helpers["if"].call(this, t, n) | |
}), e.registerHelper("with", function(e, t) { | |
return t.fn(e) | |
}), e.registerHelper("log", function(t) { | |
e.log(t) | |
}) | |
}(e); | |
var t = function() { | |
function e() { | |
this.yy = {} | |
} | |
var t = { | |
trace: function() {}, | |
yy: {}, | |
symbols_: { | |
error: 2, | |
root: 3, | |
program: 4, | |
EOF: 5, | |
statements: 6, | |
simpleInverse: 7, | |
statement: 8, | |
openInverse: 9, | |
closeBlock: 10, | |
openBlock: 11, | |
mustache: 12, | |
partial: 13, | |
CONTENT: 14, | |
COMMENT: 15, | |
OPEN_BLOCK: 16, | |
inMustache: 17, | |
CLOSE: 18, | |
OPEN_INVERSE: 19, | |
OPEN_ENDBLOCK: 20, | |
path: 21, | |
OPEN: 22, | |
OPEN_UNESCAPED: 23, | |
OPEN_PARTIAL: 24, | |
params: 25, | |
hash: 26, | |
DATA: 27, | |
param: 28, | |
STRING: 29, | |
INTEGER: 30, | |
BOOLEAN: 31, | |
hashSegments: 32, | |
hashSegment: 33, | |
ID: 34, | |
EQUALS: 35, | |
pathSegments: 36, | |
SEP: 37, | |
$accept: 0, | |
$end: 1 | |
}, | |
terminals_: { | |
2: "error", | |
5: "EOF", | |
14: "CONTENT", | |
15: "COMMENT", | |
16: "OPEN_BLOCK", | |
18: "CLOSE", | |
19: "OPEN_INVERSE", | |
20: "OPEN_ENDBLOCK", | |
22: "OPEN", | |
23: "OPEN_UNESCAPED", | |
24: "OPEN_PARTIAL", | |
27: "DATA", | |
29: "STRING", | |
30: "INTEGER", | |
31: "BOOLEAN", | |
34: "ID", | |
35: "EQUALS", | |
37: "SEP" | |
}, | |
productions_: [0, [3, 2], | |
[4, 3], | |
[4, 1], | |
[4, 0], | |
[6, 1], | |
[6, 2], | |
[8, 3], | |
[8, 3], | |
[8, 1], | |
[8, 1], | |
[8, 1], | |
[8, 1], | |
[11, 3], | |
[9, 3], | |
[10, 3], | |
[12, 3], | |
[12, 3], | |
[13, 3], | |
[13, 4], | |
[7, 2], | |
[17, 3], | |
[17, 2], | |
[17, 2], | |
[17, 1], | |
[17, 1], | |
[25, 2], | |
[25, 1], | |
[28, 1], | |
[28, 1], | |
[28, 1], | |
[28, 1], | |
[28, 1], | |
[26, 1], | |
[32, 2], | |
[32, 1], | |
[33, 3], | |
[33, 3], | |
[33, 3], | |
[33, 3], | |
[33, 3], | |
[21, 1], | |
[36, 3], | |
[36, 1] | |
], | |
performAction: function(e, t, n, i, s, r) { | |
var o = r.length - 1; | |
switch (s) { | |
case 1: | |
return r[o - 1]; | |
case 2: | |
this.$ = new i.ProgramNode(r[o - 2], r[o]); | |
break; | |
case 3: | |
this.$ = new i.ProgramNode(r[o]); | |
break; | |
case 4: | |
this.$ = new i.ProgramNode([]); | |
break; | |
case 5: | |
this.$ = [r[o]]; | |
break; | |
case 6: | |
r[o - 1].push(r[o]), this.$ = r[o - 1]; | |
break; | |
case 7: | |
this.$ = new i.BlockNode(r[o - 2], r[o - 1].inverse, r[o - 1], r[o]); | |
break; | |
case 8: | |
this.$ = new i.BlockNode(r[o - 2], r[o - 1], r[o - 1].inverse, r[o]); | |
break; | |
case 9: | |
this.$ = r[o]; | |
break; | |
case 10: | |
this.$ = r[o]; | |
break; | |
case 11: | |
this.$ = new i.ContentNode(r[o]); | |
break; | |
case 12: | |
this.$ = new i.CommentNode(r[o]); | |
break; | |
case 13: | |
this.$ = new i.MustacheNode(r[o - 1][0], r[o - 1][1]); | |
break; | |
case 14: | |
this.$ = new i.MustacheNode(r[o - 1][0], r[o - 1][1]); | |
break; | |
case 15: | |
this.$ = r[o - 1]; | |
break; | |
case 16: | |
this.$ = new i.MustacheNode(r[o - 1][0], r[o - 1][1]); | |
break; | |
case 17: | |
this.$ = new i.MustacheNode(r[o - 1][0], r[o - 1][1], !0); | |
break; | |
case 18: | |
this.$ = new i.PartialNode(r[o - 1]); | |
break; | |
case 19: | |
this.$ = new i.PartialNode(r[o - 2], r[o - 1]); | |
break; | |
case 20: | |
break; | |
case 21: | |
this.$ = [ | |
[r[o - 2]].concat(r[o - 1]), r[o] | |
]; | |
break; | |
case 22: | |
this.$ = [ | |
[r[o - 1]].concat(r[o]), null | |
]; | |
break; | |
case 23: | |
this.$ = [ | |
[r[o - 1]], r[o] | |
]; | |
break; | |
case 24: | |
this.$ = [ | |
[r[o]], null | |
]; | |
break; | |
case 25: | |
this.$ = [ | |
[new i.DataNode(r[o])], null | |
]; | |
break; | |
case 26: | |
r[o - 1].push(r[o]), this.$ = r[o - 1]; | |
break; | |
case 27: | |
this.$ = [r[o]]; | |
break; | |
case 28: | |
this.$ = r[o]; | |
break; | |
case 29: | |
this.$ = new i.StringNode(r[o]); | |
break; | |
case 30: | |
this.$ = new i.IntegerNode(r[o]); | |
break; | |
case 31: | |
this.$ = new i.BooleanNode(r[o]); | |
break; | |
case 32: | |
this.$ = new i.DataNode(r[o]); | |
break; | |
case 33: | |
this.$ = new i.HashNode(r[o]); | |
break; | |
case 34: | |
r[o - 1].push(r[o]), this.$ = r[o - 1]; | |
break; | |
case 35: | |
this.$ = [r[o]]; | |
break; | |
case 36: | |
this.$ = [r[o - 2], r[o]]; | |
break; | |
case 37: | |
this.$ = [r[o - 2], new i.StringNode(r[o])]; | |
break; | |
case 38: | |
this.$ = [r[o - 2], new i.IntegerNode(r[o])]; | |
break; | |
case 39: | |
this.$ = [r[o - 2], new i.BooleanNode(r[o])]; | |
break; | |
case 40: | |
this.$ = [r[o - 2], new i.DataNode(r[o])]; | |
break; | |
case 41: | |
this.$ = new i.IdNode(r[o]); | |
break; | |
case 42: | |
r[o - 2].push(r[o]), this.$ = r[o - 2]; | |
break; | |
case 43: | |
this.$ = [r[o]] | |
} | |
}, | |
table: [{ | |
3: 1, | |
4: 2, | |
5: [2, 4], | |
6: 3, | |
8: 4, | |
9: 5, | |
11: 6, | |
12: 7, | |
13: 8, | |
14: [1, 9], | |
15: [1, 10], | |
16: [1, 12], | |
19: [1, 11], | |
22: [1, 13], | |
23: [1, 14], | |
24: [1, 15] | |
}, { | |
1: [3] | |
}, { | |
5: [1, 16] | |
}, { | |
5: [2, 3], | |
7: 17, | |
8: 18, | |
9: 5, | |
11: 6, | |
12: 7, | |
13: 8, | |
14: [1, 9], | |
15: [1, 10], | |
16: [1, 12], | |
19: [1, 19], | |
20: [2, 3], | |
22: [1, 13], | |
23: [1, 14], | |
24: [1, 15] | |
}, { | |
5: [2, 5], | |
14: [2, 5], | |
15: [2, 5], | |
16: [2, 5], | |
19: [2, 5], | |
20: [2, 5], | |
22: [2, 5], | |
23: [2, 5], | |
24: [2, 5] | |
}, { | |
4: 20, | |
6: 3, | |
8: 4, | |
9: 5, | |
11: 6, | |
12: 7, | |
13: 8, | |
14: [1, 9], | |
15: [1, 10], | |
16: [1, 12], | |
19: [1, 11], | |
20: [2, 4], | |
22: [1, 13], | |
23: [1, 14], | |
24: [1, 15] | |
}, { | |
4: 21, | |
6: 3, | |
8: 4, | |
9: 5, | |
11: 6, | |
12: 7, | |
13: 8, | |
14: [1, 9], | |
15: [1, 10], | |
16: [1, 12], | |
19: [1, 11], | |
20: [2, 4], | |
22: [1, 13], | |
23: [1, 14], | |
24: [1, 15] | |
}, { | |
5: [2, 9], | |
14: [2, 9], | |
15: [2, 9], | |
16: [2, 9], | |
19: [2, 9], | |
20: [2, 9], | |
22: [2, 9], | |
23: [2, 9], | |
24: [2, 9] | |
}, { | |
5: [2, 10], | |
14: [2, 10], | |
15: [2, 10], | |
16: [2, 10], | |
19: [2, 10], | |
20: [2, 10], | |
22: [2, 10], | |
23: [2, 10], | |
24: [2, 10] | |
}, { | |
5: [2, 11], | |
14: [2, 11], | |
15: [2, 11], | |
16: [2, 11], | |
19: [2, 11], | |
20: [2, 11], | |
22: [2, 11], | |
23: [2, 11], | |
24: [2, 11] | |
}, { | |
5: [2, 12], | |
14: [2, 12], | |
15: [2, 12], | |
16: [2, 12], | |
19: [2, 12], | |
20: [2, 12], | |
22: [2, 12], | |
23: [2, 12], | |
24: [2, 12] | |
}, { | |
17: 22, | |
21: 23, | |
27: [1, 24], | |
34: [1, 26], | |
36: 25 | |
}, { | |
17: 27, | |
21: 23, | |
27: [1, 24], | |
34: [1, 26], | |
36: 25 | |
}, { | |
17: 28, | |
21: 23, | |
27: [1, 24], | |
34: [1, 26], | |
36: 25 | |
}, { | |
17: 29, | |
21: 23, | |
27: [1, 24], | |
34: [1, 26], | |
36: 25 | |
}, { | |
21: 30, | |
34: [1, 26], | |
36: 25 | |
}, { | |
1: [2, 1] | |
}, { | |
6: 31, | |
8: 4, | |
9: 5, | |
11: 6, | |
12: 7, | |
13: 8, | |
14: [1, 9], | |
15: [1, 10], | |
16: [1, 12], | |
19: [1, 11], | |
22: [1, 13], | |
23: [1, 14], | |
24: [1, 15] | |
}, { | |
5: [2, 6], | |
14: [2, 6], | |
15: [2, 6], | |
16: [2, 6], | |
19: [2, 6], | |
20: [2, 6], | |
22: [2, 6], | |
23: [2, 6], | |
24: [2, 6] | |
}, { | |
17: 22, | |
18: [1, 32], | |
21: 23, | |
27: [1, 24], | |
34: [1, 26], | |
36: 25 | |
}, { | |
10: 33, | |
20: [1, 34] | |
}, { | |
10: 35, | |
20: [1, 34] | |
}, { | |
18: [1, 36] | |
}, { | |
18: [2, 24], | |
21: 41, | |
25: 37, | |
26: 38, | |
27: [1, 45], | |
28: 39, | |
29: [1, 42], | |
30: [1, 43], | |
31: [1, 44], | |
32: 40, | |
33: 46, | |
34: [1, 47], | |
36: 25 | |
}, { | |
18: [2, 25] | |
}, { | |
18: [2, 41], | |
27: [2, 41], | |
29: [2, 41], | |
30: [2, 41], | |
31: [2, 41], | |
34: [2, 41], | |
37: [1, 48] | |
}, { | |
18: [2, 43], | |
27: [2, 43], | |
29: [2, 43], | |
30: [2, 43], | |
31: [2, 43], | |
34: [2, 43], | |
37: [2, 43] | |
}, { | |
18: [1, 49] | |
}, { | |
18: [1, 50] | |
}, { | |
18: [1, 51] | |
}, { | |
18: [1, 52], | |
21: 53, | |
34: [1, 26], | |
36: 25 | |
}, { | |
5: [2, 2], | |
8: 18, | |
9: 5, | |
11: 6, | |
12: 7, | |
13: 8, | |
14: [1, 9], | |
15: [1, 10], | |
16: [1, 12], | |
19: [1, 11], | |
20: [2, 2], | |
22: [1, 13], | |
23: [1, 14], | |
24: [1, 15] | |
}, { | |
14: [2, 20], | |
15: [2, 20], | |
16: [2, 20], | |
19: [2, 20], | |
22: [2, 20], | |
23: [2, 20], | |
24: [2, 20] | |
}, { | |
5: [2, 7], | |
14: [2, 7], | |
15: [2, 7], | |
16: [2, 7], | |
19: [2, 7], | |
20: [2, 7], | |
22: [2, 7], | |
23: [2, 7], | |
24: [2, 7] | |
}, { | |
21: 54, | |
34: [1, 26], | |
36: 25 | |
}, { | |
5: [2, 8], | |
14: [2, 8], | |
15: [2, 8], | |
16: [2, 8], | |
19: [2, 8], | |
20: [2, 8], | |
22: [2, 8], | |
23: [2, 8], | |
24: [2, 8] | |
}, { | |
14: [2, 14], | |
15: [2, 14], | |
16: [2, 14], | |
19: [2, 14], | |
20: [2, 14], | |
22: [2, 14], | |
23: [2, 14], | |
24: [2, 14] | |
}, { | |
18: [2, 22], | |
21: 41, | |
26: 55, | |
27: [1, 45], | |
28: 56, | |
29: [1, 42], | |
30: [1, 43], | |
31: [1, 44], | |
32: 40, | |
33: 46, | |
34: [1, 47], | |
36: 25 | |
}, { | |
18: [2, 23] | |
}, { | |
18: [2, 27], | |
27: [2, 27], | |
29: [2, 27], | |
30: [2, 27], | |
31: [2, 27], | |
34: [2, 27] | |
}, { | |
18: [2, 33], | |
33: 57, | |
34: [1, 58] | |
}, { | |
18: [2, 28], | |
27: [2, 28], | |
29: [2, 28], | |
30: [2, 28], | |
31: [2, 28], | |
34: [2, 28] | |
}, { | |
18: [2, 29], | |
27: [2, 29], | |
29: [2, 29], | |
30: [2, 29], | |
31: [2, 29], | |
34: [2, 29] | |
}, { | |
18: [2, 30], | |
27: [2, 30], | |
29: [2, 30], | |
30: [2, 30], | |
31: [2, 30], | |
34: [2, 30] | |
}, { | |
18: [2, 31], | |
27: [2, 31], | |
29: [2, 31], | |
30: [2, 31], | |
31: [2, 31], | |
34: [2, 31] | |
}, { | |
18: [2, 32], | |
27: [2, 32], | |
29: [2, 32], | |
30: [2, 32], | |
31: [2, 32], | |
34: [2, 32] | |
}, { | |
18: [2, 35], | |
34: [2, 35] | |
}, { | |
18: [2, 43], | |
27: [2, 43], | |
29: [2, 43], | |
30: [2, 43], | |
31: [2, 43], | |
34: [2, 43], | |
35: [1, 59], | |
37: [2, 43] | |
}, { | |
34: [1, 60] | |
}, { | |
14: [2, 13], | |
15: [2, 13], | |
16: [2, 13], | |
19: [2, 13], | |
20: [2, 13], | |
22: [2, 13], | |
23: [2, 13], | |
24: [2, 13] | |
}, { | |
5: [2, 16], | |
14: [2, 16], | |
15: [2, 16], | |
16: [2, 16], | |
19: [2, 16], | |
20: [2, 16], | |
22: [2, 16], | |
23: [2, 16], | |
24: [2, 16] | |
}, { | |
5: [2, 17], | |
14: [2, 17], | |
15: [2, 17], | |
16: [2, 17], | |
19: [2, 17], | |
20: [2, 17], | |
22: [2, 17], | |
23: [2, 17], | |
24: [2, 17] | |
}, { | |
5: [2, 18], | |
14: [2, 18], | |
15: [2, 18], | |
16: [2, 18], | |
19: [2, 18], | |
20: [2, 18], | |
22: [2, 18], | |
23: [2, 18], | |
24: [2, 18] | |
}, { | |
18: [1, 61] | |
}, { | |
18: [1, 62] | |
}, { | |
18: [2, 21] | |
}, { | |
18: [2, 26], | |
27: [2, 26], | |
29: [2, 26], | |
30: [2, 26], | |
31: [2, 26], | |
34: [2, 26] | |
}, { | |
18: [2, 34], | |
34: [2, 34] | |
}, { | |
35: [1, 59] | |
}, { | |
21: 63, | |
27: [1, 67], | |
29: [1, 64], | |
30: [1, 65], | |
31: [1, 66], | |
34: [1, 26], | |
36: 25 | |
}, { | |
18: [2, 42], | |
27: [2, 42], | |
29: [2, 42], | |
30: [2, 42], | |
31: [2, 42], | |
34: [2, 42], | |
37: [2, 42] | |
}, { | |
5: [2, 19], | |
14: [2, 19], | |
15: [2, 19], | |
16: [2, 19], | |
19: [2, 19], | |
20: [2, 19], | |
22: [2, 19], | |
23: [2, 19], | |
24: [2, 19] | |
}, { | |
5: [2, 15], | |
14: [2, 15], | |
15: [2, 15], | |
16: [2, 15], | |
19: [2, 15], | |
20: [2, 15], | |
22: [2, 15], | |
23: [2, 15], | |
24: [2, 15] | |
}, { | |
18: [2, 36], | |
34: [2, 36] | |
}, { | |
18: [2, 37], | |
34: [2, 37] | |
}, { | |
18: [2, 38], | |
34: [2, 38] | |
}, { | |
18: [2, 39], | |
34: [2, 39] | |
}, { | |
18: [2, 40], | |
34: [2, 40] | |
}], | |
defaultActions: { | |
16: [2, 1], | |
24: [2, 25], | |
38: [2, 23], | |
55: [2, 21] | |
}, | |
parseError: function(e) { | |
throw new Error(e) | |
}, | |
parse: function(e) { | |
function t() { | |
var e; | |
return e = n.lexer.lex() || 1, "number" != typeof e && (e = n.symbols_[e] || e), e | |
} | |
var n = this, | |
i = [0], | |
s = [null], | |
r = [], | |
o = this.table, | |
a = "", | |
c = 0, | |
l = 0, | |
u = 0; | |
this.lexer.setInput(e), this.lexer.yy = this.yy, this.yy.lexer = this.lexer, this.yy.parser = this, "undefined" == typeof this.lexer.yylloc && (this.lexer.yylloc = {}); | |
var h = this.lexer.yylloc; | |
r.push(h); | |
var d = this.lexer.options && this.lexer.options.ranges; | |
"function" == typeof this.yy.parseError && (this.parseError = this.yy.parseError); | |
for (var p, f, g, A, m, y, v, b, w, x = {};;) { | |
if (g = i[i.length - 1], this.defaultActions[g] ? A = this.defaultActions[g] : ((null === p || "undefined" == typeof p) && (p = t()), A = o[g] && o[g][p]), "undefined" == typeof A || !A.length || !A[0]) { | |
var C = ""; | |
if (!u) { | |
w = []; | |
for (y in o[g]) this.terminals_[y] && y > 2 && w.push("'" + this.terminals_[y] + "'"); | |
C = this.lexer.showPosition ? "Parse error on line " + (c + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + w.join(", ") + ", got '" + (this.terminals_[p] || p) + "'" : "Parse error on line " + (c + 1) + ": Unexpected " + (1 == p ? "end of input" : "'" + (this.terminals_[p] || p) + "'"), this.parseError(C, { | |
text: this.lexer.match, | |
token: this.terminals_[p] || p, | |
line: this.lexer.yylineno, | |
loc: h, | |
expected: w | |
}) | |
} | |
} | |
if (A[0] instanceof Array && A.length > 1) throw new Error("Parse Error: multiple actions possible at state: " + g + ", token: " + p); | |
switch (A[0]) { | |
case 1: | |
i.push(p), s.push(this.lexer.yytext), r.push(this.lexer.yylloc), i.push(A[1]), p = null, f ? (p = f, f = null) : (l = this.lexer.yyleng, a = this.lexer.yytext, c = this.lexer.yylineno, h = this.lexer.yylloc, u > 0 && u--); | |
break; | |
case 2: | |
if (v = this.productions_[A[1]][1], x.$ = s[s.length - v], x._$ = { | |
first_line: r[r.length - (v || 1)].first_line, | |
last_line: r[r.length - 1].last_line, | |
first_column: r[r.length - (v || 1)].first_column, | |
last_column: r[r.length - 1].last_column | |
}, d && (x._$.range = [r[r.length - (v || 1)].range[0], r[r.length - 1].range[1]]), m = this.performAction.call(x, a, l, c, this.yy, A[1], s, r), "undefined" != typeof m) return m; | |
v && (i = i.slice(0, -1 * v * 2), s = s.slice(0, -1 * v), r = r.slice(0, -1 * v)), i.push(this.productions_[A[1]][0]), s.push(x.$), r.push(x._$), b = o[i[i.length - 2]][i[i.length - 1]], i.push(b); | |
break; | |
case 3: | |
return !0 | |
} | |
} | |
return !0 | |
} | |
}, | |
n = function() { | |
var e = { | |
EOF: 1, | |
parseError: function(e, t) { | |
if (!this.yy.parser) throw new Error(e); | |
this.yy.parser.parseError(e, t) | |
}, | |
setInput: function(e) { | |
return this._input = e, this._more = this._less = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = { | |
first_line: 1, | |
first_column: 0, | |
last_line: 1, | |
last_column: 0 | |
}, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this | |
}, | |
input: function() { | |
var e = this._input[0]; | |
this.yytext += e, this.yyleng++, this.offset++, this.match += e, this.matched += e; | |
var t = e.match(/(?:\r\n?|\n).*/g); | |
return t ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), e | |
}, | |
unput: function(e) { | |
var t = e.length, | |
n = e.split(/(?:\r\n?|\n)/g); | |
this._input = e + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - t - 1), this.offset -= t; | |
var i = this.match.split(/(?:\r\n?|\n)/g); | |
this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), n.length - 1 && (this.yylineno -= n.length - 1); | |
var s = this.yylloc.range; | |
return this.yylloc = { | |
first_line: this.yylloc.first_line, | |
last_line: this.yylineno + 1, | |
first_column: this.yylloc.first_column, | |
last_column: n ? (n.length === i.length ? this.yylloc.first_column : 0) + i[i.length - n.length].length - n[0].length : this.yylloc.first_column - t | |
}, this.options.ranges && (this.yylloc.range = [s[0], s[0] + this.yyleng - t]), this | |
}, | |
more: function() { | |
return this._more = !0, this | |
}, | |
less: function(e) { | |
this.unput(this.match.slice(e)) | |
}, | |
pastInput: function() { | |
var e = this.matched.substr(0, this.matched.length - this.match.length); | |
return (e.length > 20 ? "..." : "") + e.substr(-20).replace(/\n/g, "") | |
}, | |
upcomingInput: function() { | |
var e = this.match; | |
return e.length < 20 && (e += this._input.substr(0, 20 - e.length)), (e.substr(0, 20) + (e.length > 20 ? "..." : "")).replace(/\n/g, "") | |
}, | |
showPosition: function() { | |
var e = this.pastInput(), | |
t = new Array(e.length + 1).join("-"); | |
return e + this.upcomingInput() + "\n" + t + "^" | |
}, | |
next: function() { | |
if (this.done) return this.EOF; | |
this._input || (this.done = !0); | |
var e, t, n, i, s; | |
this._more || (this.yytext = "", this.match = ""); | |
for (var r = this._currentRules(), o = 0; o < r.length && (n = this._input.match(this.rules[r[o]]), !n || t && !(n[0].length > t[0].length) || (t = n, i = o, this.options.flex)); o++); | |
return t ? (s = t[0].match(/(?:\r\n?|\n).*/g), s && (this.yylineno += s.length), this.yylloc = { | |
first_line: this.yylloc.last_line, | |
last_line: this.yylineno + 1, | |
first_column: this.yylloc.last_column, | |
last_column: s ? s[s.length - 1].length - s[s.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + t[0].length | |
}, this.yytext += t[0], this.match += t[0], this.matches = t, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._input = this._input.slice(t[0].length), this.matched += t[0], e = this.performAction.call(this, this.yy, this, r[i], this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), e ? e : void 0) : "" === this._input ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { | |
text: "", | |
token: null, | |
line: this.yylineno | |
}) | |
}, | |
lex: function() { | |
var e = this.next(); | |
return "undefined" != typeof e ? e : this.lex() | |
}, | |
begin: function(e) { | |
this.conditionStack.push(e) | |
}, | |
popState: function() { | |
return this.conditionStack.pop() | |
}, | |
_currentRules: function() { | |
return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules | |
}, | |
topState: function() { | |
return this.conditionStack[this.conditionStack.length - 2] | |
}, | |
pushState: function(e) { | |
this.begin(e) | |
} | |
}; | |
return e.options = {}, e.performAction = function(e, t, n, i) { | |
switch (n) { | |
case 0: | |
if ("\\" !== t.yytext.slice(-1) && this.begin("mu"), "\\" === t.yytext.slice(-1) && (t.yytext = t.yytext.substr(0, t.yyleng - 1), this.begin("emu")), t.yytext) return 14; | |
break; | |
case 1: | |
return 14; | |
case 2: | |
return "\\" !== t.yytext.slice(-1) && this.popState(), "\\" === t.yytext.slice(-1) && (t.yytext = t.yytext.substr(0, t.yyleng - 1)), 14; | |
case 3: | |
return 24; | |
case 4: | |
return 16; | |
case 5: | |
return 20; | |
case 6: | |
return 19; | |
case 7: | |
return 19; | |
case 8: | |
return 23; | |
case 9: | |
return 23; | |
case 10: | |
return t.yytext = t.yytext.substr(3, t.yyleng - 5), this.popState(), 15; | |
case 11: | |
return 22; | |
case 12: | |
return 35; | |
case 13: | |
return 34; | |
case 14: | |
return 34; | |
case 15: | |
return 37; | |
case 16: | |
break; | |
case 17: | |
return this.popState(), 18; | |
case 18: | |
return this.popState(), 18; | |
case 19: | |
return t.yytext = t.yytext.substr(1, t.yyleng - 2).replace(/\\"/g, '"'), 29; | |
case 20: | |
return t.yytext = t.yytext.substr(1, t.yyleng - 2).replace(/\\"/g, '"'), 29; | |
case 21: | |
return t.yytext = t.yytext.substr(1), 27; | |
case 22: | |
return 31; | |
case 23: | |
return 31; | |
case 24: | |
return 30; | |
case 25: | |
return 34; | |
case 26: | |
return t.yytext = t.yytext.substr(1, t.yyleng - 2), 34; | |
case 27: | |
return "INVALID"; | |
case 28: | |
return 5 | |
} | |
}, e.rules = [/^(?:[^\x00]*?(?=(\{\{)))/, /^(?:[^\x00]+)/, /^(?:[^\x00]{2,}?(?=(\{\{|$)))/, /^(?:\{\{>)/, /^(?:\{\{#)/, /^(?:\{\{\/)/, /^(?:\{\{\^)/, /^(?:\{\{\s*else\b)/, /^(?:\{\{\{)/, /^(?:\{\{&)/, /^(?:\{\{![\s\S]*?\}\})/, /^(?:\{\{)/, /^(?:=)/, /^(?:\.(?=[} ]))/, /^(?:\.\.)/, /^(?:[\/.])/, /^(?:\s+)/, /^(?:\}\}\})/, /^(?:\}\})/, /^(?:"(\\["]|[^"])*")/, /^(?:'(\\[']|[^'])*')/, /^(?:@[a-zA-Z]+)/, /^(?:true(?=[}\s]))/, /^(?:false(?=[}\s]))/, /^(?:[0-9]+(?=[}\s]))/, /^(?:[a-zA-Z0-9_$-]+(?=[=}\s\/.]))/, /^(?:\[[^\]]*\])/, /^(?:.)/, /^(?:$)/], e.conditions = { | |
mu: { | |
rules: [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], | |
inclusive: !1 | |
}, | |
emu: { | |
rules: [2], | |
inclusive: !1 | |
}, | |
INITIAL: { | |
rules: [0, 1, 28], | |
inclusive: !0 | |
} | |
}, e | |
}(); | |
return t.lexer = n, e.prototype = t, t.Parser = e, new e | |
}(); | |
e.Parser = t, e.parse = function(t) { | |
return e.Parser.yy = e.AST, e.Parser.parse(t) | |
}, e.print = function(t) { | |
return (new e.PrintVisitor).accept(t) | |
}, e.logger = { | |
DEBUG: 0, | |
INFO: 1, | |
WARN: 2, | |
ERROR: 3, | |
level: 3, | |
log: function() {} | |
}, e.log = function(t, n) { | |
e.logger.log(t, n) | |
}, | |
function() { | |
e.AST = {}, e.AST.ProgramNode = function(t, n) { | |
this.type = "program", this.statements = t, n && (this.inverse = new e.AST.ProgramNode(n)) | |
}, e.AST.MustacheNode = function(e, t, n) { | |
this.type = "mustache", this.escaped = !n, this.hash = t; | |
var i = this.id = e[0], | |
s = this.params = e.slice(1), | |
r = this.eligibleHelper = i.isSimple; | |
this.isHelper = r && (s.length || t) | |
}, e.AST.PartialNode = function(e, t) { | |
this.type = "partial", this.id = e, this.context = t | |
}; | |
var t = function(t, n) { | |
if (t.original !== n.original) throw new e.Exception(t.original + " doesn't match " + n.original) | |
}; | |
e.AST.BlockNode = function(e, n, i, s) { | |
t(e.id, s), this.type = "block", this.mustache = e, this.program = n, this.inverse = i, this.inverse && !this.program && (this.isInverse = !0) | |
}, e.AST.ContentNode = function(e) { | |
this.type = "content", this.string = e | |
}, e.AST.HashNode = function(e) { | |
this.type = "hash", this.pairs = e | |
}, e.AST.IdNode = function(e) { | |
this.type = "ID", this.original = e.join("."); | |
for (var t = [], n = 0, i = 0, s = e.length; s > i; i++) { | |
var r = e[i]; | |
".." === r ? n++ : "." === r || "this" === r ? this.isScoped = !0 : t.push(r) | |
} | |
this.parts = t, this.string = t.join("."), this.depth = n, this.isSimple = 1 === e.length && !this.isScoped && 0 === n | |
}, e.AST.DataNode = function(e) { | |
this.type = "DATA", this.id = e | |
}, e.AST.StringNode = function(e) { | |
this.type = "STRING", this.string = e | |
}, e.AST.IntegerNode = function(e) { | |
this.type = "INTEGER", this.integer = e | |
}, e.AST.BooleanNode = function(e) { | |
this.type = "BOOLEAN", this.bool = e | |
}, e.AST.CommentNode = function(e) { | |
this.type = "comment", this.comment = e | |
} | |
}(), e.Exception = function() { | |
var e = Error.prototype.constructor.apply(this, arguments); | |
for (var t in e) e.hasOwnProperty(t) && (this[t] = e[t]); | |
this.message = e.message | |
}, e.Exception.prototype = new Error, e.SafeString = function(e) { | |
this.string = e | |
}, e.SafeString.prototype.toString = function() { | |
return this.string.toString() | |
}, | |
function() { | |
var t = { | |
"&": "&", | |
"<": "<", | |
">": ">", | |
'"': """, | |
"'": "'", | |
"`": "`" | |
}, | |
n = /[&<>"'`]/g, | |
i = /[&<>"'`]/, | |
s = function(e) { | |
return t[e] || "&" | |
}; | |
e.Utils = { | |
escapeExpression: function(t) { | |
return t instanceof e.SafeString ? t.toString() : null == t || t === !1 ? "" : i.test(t) ? t.replace(n, s) : t | |
}, | |
isEmpty: function(e) { | |
return "undefined" == typeof e ? !0 : null === e ? !0 : e === !1 ? !0 : "[object Array]" === Object.prototype.toString.call(e) && 0 === e.length ? !0 : !1 | |
} | |
} | |
}(), e.Compiler = function() {}, e.JavaScriptCompiler = function() {}, | |
function(t, n) { | |
t.prototype = { | |
compiler: t, | |
disassemble: function() { | |
for (var e, t, n, i = this.opcodes, s = [], r = 0, o = i.length; o > r; r++) | |
if (e = i[r], "DECLARE" === e.opcode) s.push("DECLARE " + e.name + "=" + e.value); | |
else { | |
t = []; | |
for (var a = 0; a < e.args.length; a++) n = e.args[a], "string" == typeof n && (n = '"' + n.replace("\n", "\\n") + '"'), t.push(n); | |
s.push(e.opcode + " " + t.join(" ")) | |
} | |
return s.join("\n") | |
}, | |
guid: 0, | |
compile: function(e, t) { | |
this.children = [], this.depths = { | |
list: [] | |
}, this.options = t; | |
var n = this.options.knownHelpers; | |
if (this.options.knownHelpers = { | |
helperMissing: !0, | |
blockHelperMissing: !0, | |
each: !0, | |
"if": !0, | |
unless: !0, | |
"with": !0, | |
log: !0 | |
}, n) | |
for (var i in n) this.options.knownHelpers[i] = n[i]; | |
return this.program(e) | |
}, | |
accept: function(e) { | |
return this[e.type](e) | |
}, | |
program: function(e) { | |
var t, n = e.statements; | |
this.opcodes = []; | |
for (var i = 0, s = n.length; s > i; i++) t = n[i], this[t.type](t); | |
return this.isSimple = 1 === s, this.depths.list = this.depths.list.sort(function(e, t) { | |
return e - t | |
}), this | |
}, | |
compileProgram: function(e) { | |
var t, n = (new this.compiler).compile(e, this.options), | |
i = this.guid++; | |
this.usePartial = this.usePartial || n.usePartial, this.children[i] = n; | |
for (var s = 0, r = n.depths.list.length; r > s; s++) t = n.depths.list[s], 2 > t || this.addDepth(t - 1); | |
return i | |
}, | |
block: function(e) { | |
var t = e.mustache, | |
n = e.program, | |
i = e.inverse; | |
n && (n = this.compileProgram(n)), i && (i = this.compileProgram(i)); | |
var s = this.classifyMustache(t); | |
"helper" === s ? this.helperMustache(t, n, i) : "simple" === s ? (this.simpleMustache(t), this.opcode("pushProgram", n), this.opcode("pushProgram", i), this.opcode("pushLiteral", "{}"), this.opcode("blockValue")) : (this.ambiguousMustache(t, n, i), this.opcode("pushProgram", n), this.opcode("pushProgram", i), this.opcode("pushLiteral", "{}"), this.opcode("ambiguousBlockValue")), this.opcode("append") | |
}, | |
hash: function(e) { | |
var t, n, i = e.pairs; | |
this.opcode("push", "{}"); | |
for (var s = 0, r = i.length; r > s; s++) t = i[s], n = t[1], this.accept(n), this.opcode("assignToHash", t[0]) | |
}, | |
partial: function(e) { | |
var t = e.id; | |
this.usePartial = !0, e.context ? this.ID(e.context) : this.opcode("push", "depth0"), this.opcode("invokePartial", t.original), this.opcode("append") | |
}, | |
content: function(e) { | |
this.opcode("appendContent", e.string) | |
}, | |
mustache: function(e) { | |
var t = this.options, | |
n = this.classifyMustache(e); | |
"simple" === n ? this.simpleMustache(e) : "helper" === n ? this.helperMustache(e) : this.ambiguousMustache(e), this.opcode(e.escaped && !t.noEscape ? "appendEscaped" : "append") | |
}, | |
ambiguousMustache: function(e, t, n) { | |
var i = e.id, | |
s = i.parts[0]; | |
this.opcode("getContext", i.depth), this.opcode("pushProgram", t), this.opcode("pushProgram", n), this.opcode("invokeAmbiguous", s) | |
}, | |
simpleMustache: function(e) { | |
var t = e.id; | |
"DATA" === t.type ? this.DATA(t) : t.parts.length ? this.ID(t) : (this.addDepth(t.depth), this.opcode("getContext", t.depth), this.opcode("pushContext")), this.opcode("resolvePossibleLambda") | |
}, | |
helperMustache: function(e, t, n) { | |
var i = this.setupFullMustacheParams(e, t, n), | |
s = e.id.parts[0]; | |
if (this.options.knownHelpers[s]) this.opcode("invokeKnownHelper", i.length, s); | |
else { | |
if (this.knownHelpersOnly) throw new Error("You specified knownHelpersOnly, but used the unknown helper " + s); | |
this.opcode("invokeHelper", i.length, s) | |
} | |
}, | |
ID: function(e) { | |
this.addDepth(e.depth), this.opcode("getContext", e.depth); | |
var t = e.parts[0]; | |
t ? this.opcode("lookupOnContext", e.parts[0]) : this.opcode("pushContext"); | |
for (var n = 1, i = e.parts.length; i > n; n++) this.opcode("lookup", e.parts[n]) | |
}, | |
DATA: function(e) { | |
this.options.data = !0, this.opcode("lookupData", e.id) | |
}, | |
STRING: function(e) { | |
this.opcode("pushString", e.string) | |
}, | |
INTEGER: function(e) { | |
this.opcode("pushLiteral", e.integer) | |
}, | |
BOOLEAN: function(e) { | |
this.opcode("pushLiteral", e.bool) | |
}, | |
comment: function() {}, | |
opcode: function(e) { | |
this.opcodes.push({ | |
opcode: e, | |
args: [].slice.call(arguments, 1) | |
}) | |
}, | |
declare: function(e, t) { | |
this.opcodes.push({ | |
opcode: "DECLARE", | |
name: e, | |
value: t | |
}) | |
}, | |
addDepth: function(e) { | |
if (isNaN(e)) throw new Error("EWOT"); | |
0 !== e && (this.depths[e] || (this.depths[e] = !0, this.depths.list.push(e))) | |
}, | |
classifyMustache: function(e) { | |
var t = e.isHelper, | |
n = e.eligibleHelper, | |
i = this.options; | |
if (n && !t) { | |
var s = e.id.parts[0]; | |
i.knownHelpers[s] ? t = !0 : i.knownHelpersOnly && (n = !1) | |
} | |
return t ? "helper" : n ? "ambiguous" : "simple" | |
}, | |
pushParams: function(e) { | |
for (var t, n = e.length; n--;) t = e[n], this.options.stringParams ? (t.depth && this.addDepth(t.depth), this.opcode("getContext", t.depth || 0), this.opcode("pushStringParam", t.string)) : this[t.type](t) | |
}, | |
setupMustacheParams: function(e) { | |
var t = e.params; | |
return this.pushParams(t), e.hash ? this.hash(e.hash) : this.opcode("pushLiteral", "{}"), t | |
}, | |
setupFullMustacheParams: function(e, t, n) { | |
var i = e.params; | |
return this.pushParams(i), this.opcode("pushProgram", t), this.opcode("pushProgram", n), e.hash ? this.hash(e.hash) : this.opcode("pushLiteral", "{}"), i | |
} | |
}; | |
var i = function(e) { | |
this.value = e | |
}; | |
n.prototype = { | |
nameLookup: function(e, t) { | |
return /^[0-9]+$/.test(t) ? e + "[" + t + "]" : n.isValidJavaScriptVariableName(t) ? e + "." + t : e + "['" + t + "']" | |
}, | |
appendToBuffer: function(e) { | |
return this.environment.isSimple ? "return " + e + ";" : "buffer += " + e + ";" | |
}, | |
initializeBuffer: function() { | |
return this.quotedString("") | |
}, | |
namespace: "Handlebars", | |
compile: function(t, n, i, s) { | |
this.environment = t, this.options = n || {}, e.log(e.logger.DEBUG, this.environment.disassemble() + "\n\n"), this.name = this.environment.name, this.isChild = !!i, this.context = i || { | |
programs: [], | |
aliases: {} | |
}, this.preamble(), this.stackSlot = 0, this.stackVars = [], this.registers = { | |
list: [] | |
}, this.compileStack = [], this.compileChildren(t, n); | |
var r, o = t.opcodes; | |
for (this.i = 0, a = o.length; this.i < a; this.i++) r = o[this.i], "DECLARE" === r.opcode ? this[r.name] = r.value : this[r.opcode].apply(this, r.args); | |
return this.createFunctionContext(s) | |
}, | |
nextOpcode: function() { | |
{ | |
var e = this.environment.opcodes; | |
e[this.i + 1] | |
} | |
return e[this.i + 1] | |
}, | |
eat: function() { | |
this.i = this.i + 1 | |
}, | |
preamble: function() { | |
var e = []; | |
if (this.isChild) e.push(""); | |
else { | |
var t = this.namespace, | |
n = "helpers = helpers || " + t + ".helpers;"; | |
this.environment.usePartial && (n = n + " partials = partials || " + t + ".partials;"), this.options.data && (n += " data = data || {};"), e.push(n) | |
} | |
e.push(this.environment.isSimple ? "" : ", buffer = " + this.initializeBuffer()), this.lastContext = 0, this.source = e | |
}, | |
createFunctionContext: function(t) { | |
var n = this.stackVars.concat(this.registers.list); | |
if (n.length > 0 && (this.source[1] = this.source[1] + ", " + n.join(", ")), !this.isChild) { | |
for (var i in this.context.aliases) this.source[1] = this.source[1] + ", " + i + "=" + this.context.aliases[i] | |
} | |
this.source[1] && (this.source[1] = "var " + this.source[1].substring(2) + ";"), this.isChild || (this.source[1] += "\n" + this.context.programs.join("\n") + "\n"), this.environment.isSimple || this.source.push("return buffer;"); | |
for (var s = this.isChild ? ["depth0", "data"] : ["Handlebars", "depth0", "helpers", "partials", "data"], r = 0, o = this.environment.depths.list.length; o > r; r++) s.push("depth" + this.environment.depths.list[r]); | |
if (t) return s.push(this.source.join("\n ")), Function.apply(this, s); | |
var a = "function " + (this.name || "") + "(" + s.join(",") + ") {\n " + this.source.join("\n ") + "}"; | |
return e.log(e.logger.DEBUG, a + "\n\n"), a | |
}, | |
blockValue: function() { | |
this.context.aliases.blockHelperMissing = "helpers.blockHelperMissing"; | |
var e = ["depth0"]; | |
this.setupParams(0, e), this.replaceStack(function(t) { | |
return e.splice(1, 0, t), t + " = blockHelperMissing.call(" + e.join(", ") + ")" | |
}) | |
}, | |
ambiguousBlockValue: function() { | |
this.context.aliases.blockHelperMissing = "helpers.blockHelperMissing"; | |
var e = ["depth0"]; | |
this.setupParams(0, e); | |
var t = this.topStack(); | |
e.splice(1, 0, t), this.source.push("if (!" + this.lastHelper + ") { " + t + " = blockHelperMissing.call(" + e.join(", ") + "); }") | |
}, | |
appendContent: function(e) { | |
this.source.push(this.appendToBuffer(this.quotedString(e))) | |
}, | |
append: function() { | |
var e = this.popStack(); | |
this.source.push("if(" + e + " || " + e + " === 0) { " + this.appendToBuffer(e) + " }"), this.environment.isSimple && this.source.push("else { " + this.appendToBuffer("''") + " }") | |
}, | |
appendEscaped: function() { | |
var e = this.nextOpcode(), | |
t = ""; | |
this.context.aliases.escapeExpression = "this.escapeExpression", e && "appendContent" === e.opcode && (t = " + " + this.quotedString(e.args[0]), this.eat(e)), this.source.push(this.appendToBuffer("escapeExpression(" + this.popStack() + ")" + t)) | |
}, | |
getContext: function(e) { | |
this.lastContext !== e && (this.lastContext = e) | |
}, | |
lookupOnContext: function(e) { | |
this.pushStack(this.nameLookup("depth" + this.lastContext, e, "context")) | |
}, | |
pushContext: function() { | |
this.pushStackLiteral("depth" + this.lastContext) | |
}, | |
resolvePossibleLambda: function() { | |
this.context.aliases.functionType = '"function"', this.replaceStack(function(e) { | |
return "typeof " + e + " === functionType ? " + e + "() : " + e | |
}) | |
}, | |
lookup: function(e) { | |
this.replaceStack(function(t) { | |
return t + " == null || " + t + " === false ? " + t + " : " + this.nameLookup(t, e, "context") | |
}) | |
}, | |
lookupData: function(e) { | |
this.pushStack(this.nameLookup("data", e, "data")) | |
}, | |
pushStringParam: function(e) { | |
this.pushStackLiteral("depth" + this.lastContext), this.pushString(e) | |
}, | |
pushString: function(e) { | |
this.pushStackLiteral(this.quotedString(e)) | |
}, | |
push: function(e) { | |
this.pushStack(e) | |
}, | |
pushLiteral: function(e) { | |
this.pushStackLiteral(e) | |
}, | |
pushProgram: function(e) { | |
this.pushStackLiteral(null != e ? this.programExpression(e) : null) | |
}, | |
invokeHelper: function(e, t) { | |
this.context.aliases.helperMissing = "helpers.helperMissing"; | |
var n = this.lastHelper = this.setupHelper(e, t); | |
this.register("foundHelper", n.name), this.pushStack("foundHelper ? foundHelper.call(" + n.callParams + ") : helperMissing.call(" + n.helperMissingParams + ")") | |
}, | |
invokeKnownHelper: function(e, t) { | |
var n = this.setupHelper(e, t); | |
this.pushStack(n.name + ".call(" + n.callParams + ")") | |
}, | |
invokeAmbiguous: function(e) { | |
this.context.aliases.functionType = '"function"', this.pushStackLiteral("{}"); | |
var t = this.setupHelper(0, e), | |
n = this.lastHelper = this.nameLookup("helpers", e, "helper"); | |
this.register("foundHelper", n); | |
var i = this.nameLookup("depth" + this.lastContext, e, "context"), | |
s = this.nextStack(); | |
this.source.push("if (foundHelper) { " + s + " = foundHelper.call(" + t.callParams + "); }"), this.source.push("else { " + s + " = " + i + "; " + s + " = typeof " + s + " === functionType ? " + s + "() : " + s + "; }") | |
}, | |
invokePartial: function(e) { | |
var t = [this.nameLookup("partials", e, "partial"), "'" + e + "'", this.popStack(), "helpers", "partials"]; | |
this.options.data && t.push("data"), this.context.aliases.self = "this", this.pushStack("self.invokePartial(" + t.join(", ") + ");") | |
}, | |
assignToHash: function(e) { | |
var t = this.popStack(), | |
n = this.topStack(); | |
this.source.push(n + "['" + e + "'] = " + t + ";") | |
}, | |
compiler: n, | |
compileChildren: function(e, t) { | |
for (var n, i, s = e.children, r = 0, o = s.length; o > r; r++) { | |
n = s[r], i = new this.compiler, this.context.programs.push(""); | |
var a = this.context.programs.length; | |
n.index = a, n.name = "program" + a, this.context.programs[a] = i.compile(n, t, this.context) | |
} | |
}, | |
programExpression: function(e) { | |
if (this.context.aliases.self = "this", null == e) return "self.noop"; | |
for (var t, n = this.environment.children[e], i = n.depths.list, s = [n.index, n.name, "data"], r = 0, o = i.length; o > r; r++) t = i[r], s.push(1 === t ? "depth0" : "depth" + (t - 1)); | |
return 0 === i.length ? "self.program(" + s.join(", ") + ")" : (s.shift(), "self.programWithDepth(" + s.join(", ") + ")") | |
}, | |
register: function(e, t) { | |
this.useRegister(e), this.source.push(e + " = " + t + ";") | |
}, | |
useRegister: function(e) { | |
this.registers[e] || (this.registers[e] = !0, this.registers.list.push(e)) | |
}, | |
pushStackLiteral: function(e) { | |
return this.compileStack.push(new i(e)), e | |
}, | |
pushStack: function(e) { | |
return this.source.push(this.incrStack() + " = " + e + ";"), this.compileStack.push("stack" + this.stackSlot), "stack" + this.stackSlot | |
}, | |
replaceStack: function(e) { | |
var t = e.call(this, this.topStack()); | |
return this.source.push(this.topStack() + " = " + t + ";"), "stack" + this.stackSlot | |
}, | |
nextStack: function() { | |
var e = this.incrStack(); | |
return this.compileStack.push("stack" + this.stackSlot), e | |
}, | |
incrStack: function() { | |
return this.stackSlot++, this.stackSlot > this.stackVars.length && this.stackVars.push("stack" + this.stackSlot), "stack" + this.stackSlot | |
}, | |
popStack: function() { | |
var e = this.compileStack.pop(); | |
return e instanceof i ? e.value : (this.stackSlot--, e) | |
}, | |
topStack: function() { | |
var e = this.compileStack[this.compileStack.length - 1]; | |
return e instanceof i ? e.value : e | |
}, | |
quotedString: function(e) { | |
return '"' + e.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n").replace(/\r/g, "\\r") + '"' | |
}, | |
setupHelper: function(e, t) { | |
var n = []; | |
this.setupParams(e, n); | |
var i = this.nameLookup("helpers", t, "helper"); | |
return { | |
params: n, | |
name: i, | |
callParams: ["depth0"].concat(n).join(", "), | |
helperMissingParams: ["depth0", this.quotedString(t)].concat(n).join(", ") | |
} | |
}, | |
setupParams: function(e, t) { | |
var n, i, s, r = [], | |
o = []; | |
r.push("hash:" + this.popStack()), i = this.popStack(), s = this.popStack(), (s || i) && (s || (this.context.aliases.self = "this", s = "self.noop"), i || (this.context.aliases.self = "this", i = "self.noop"), r.push("inverse:" + i), r.push("fn:" + s)); | |
for (var a = 0; e > a; a++) n = this.popStack(), t.push(n), this.options.stringParams && o.push(this.popStack()); | |
return this.options.stringParams && r.push("contexts:[" + o.join(",") + "]"), this.options.data && r.push("data:data"), t.push("{" + r.join(",") + "}"), t.join(", ") | |
} | |
}; | |
for (var s = "break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield".split(" "), r = n.RESERVED_WORDS = {}, o = 0, a = s.length; a > o; o++) r[s[o]] = !0; | |
n.isValidJavaScriptVariableName = function(e) { | |
return !n.RESERVED_WORDS[e] && /^[a-zA-Z_$][0-9a-zA-Z_$]+$/.test(e) ? !0 : !1 | |
} | |
}(e.Compiler, e.JavaScriptCompiler), e.precompile = function(t, n) { | |
n = n || {}; | |
var i = e.parse(t), | |
s = (new e.Compiler).compile(i, n); | |
return (new e.JavaScriptCompiler).compile(s, n) | |
}, e.compile = function(t, n) { | |
function i() { | |
var i = e.parse(t), | |
s = (new e.Compiler).compile(i, n), | |
r = (new e.JavaScriptCompiler).compile(s, n, void 0, !0); | |
return e.template(r) | |
} | |
n = n || {}; | |
var s; | |
return function(e, t) { | |
return s || (s = i()), s.call(this, e, t) | |
} | |
}, e.VM = { | |
template: function(t) { | |
var n = { | |
escapeExpression: e.Utils.escapeExpression, | |
invokePartial: e.VM.invokePartial, | |
programs: [], | |
program: function(t, n, i) { | |
var s = this.programs[t]; | |
return i ? e.VM.program(n, i) : s ? s : s = this.programs[t] = e.VM.program(n) | |
}, | |
programWithDepth: e.VM.programWithDepth, | |
noop: e.VM.noop | |
}; | |
return function(i, s) { | |
return s = s || {}, t.call(n, e, i, s.helpers, s.partials, s.data) | |
} | |
}, | |
programWithDepth: function(e, t) { | |
var n = Array.prototype.slice.call(arguments, 2); | |
return function(i, s) { | |
return s = s || {}, e.apply(this, [i, s.data || t].concat(n)) | |
} | |
}, | |
program: function(e, t) { | |
return function(n, i) { | |
return i = i || {}, e(n, i.data || t) | |
} | |
}, | |
noop: function() { | |
return "" | |
}, | |
invokePartial: function(t, n, i, s, r, o) { | |
var a = { | |
helpers: s, | |
partials: r, | |
data: o | |
}; | |
if (void 0 === t) throw new e.Exception("The partial " + n + " could not be found"); | |
if (t instanceof Function) return t(i, a); | |
if (e.compile) return r[n] = e.compile(t, { | |
data: void 0 !== o | |
}), r[n](i, a); | |
throw new e.Exception("The partial " + n + " could not be compiled when running in runtime-only mode") | |
} | |
}, e.template = e.VM.template, define("handlebars", [], function() { | |
return e | |
}) | |
}(), define("i18nprecompile", ["handlebars", "underscore"], function(e, t) { | |
function n(i, s, r) { | |
return r = r || {}, s = s || {}, i && "program" === i.type && i.statements && (t(i.statements).forEach(function(t, o) { | |
var a = "<!-- i18n error -->"; | |
if ("mustache" == t.type && t.id && "$" == t.id.original) { | |
if (t.params.length && t.params[0].string) { | |
var c = t.params[0].string; | |
a = s[c] || (r.originalKeyFallback ? c : a) | |
} | |
i.statements[o] = new e.AST.ContentNode(a) | |
} else t.program && (t.program = n(t.program, s, r)) | |
}), i.inverse && n(i.inverse, s, r)), i | |
} | |
return function(t, i, s) { | |
s = s || {}; | |
var r, o; | |
return r = e.parse(t), i !== !1 && (r = n(r, i, s)), o = (new e.Compiler).compile(r, s), (new e.JavaScriptCompiler).compile(o, s) | |
} | |
}), | |
function(window) { | |
var JSON = window.JSON || {}; | |
! function() { | |
function f(e) { | |
return 10 > e ? "0" + e : e | |
} | |
function quote(e) { | |
return escapable.lastIndex = 0, escapable.test(e) ? '"' + e.replace(escapable, function(e) { | |
var t = meta[e]; | |
return "string" == typeof t ? t : "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice(-4) | |
}) + '"' : '"' + e + '"' | |
} | |
function str(e, t) { | |
var n, i, s, r, o, a = gap, | |
c = t[e]; | |
switch (c && "object" == typeof c && "function" == typeof c.toJSON && (c = c.toJSON(e)), "function" == typeof rep && (c = rep.call(t, e, c)), typeof c) { | |
case "string": | |
return quote(c); | |
case "number": | |
return isFinite(c) ? String(c) : "null"; | |
case "boolean": | |
case "null": | |
return String(c); | |
case "object": | |
if (!c) return "null"; | |
if (gap += indent, o = [], "[object Array]" === Object.prototype.toString.apply(c)) { | |
for (r = c.length, n = 0; r > n; n += 1) o[n] = str(n, c) || "null"; | |
return s = 0 === o.length ? "[]" : gap ? "[\n" + gap + o.join(",\n" + gap) + "\n" + a + "]" : "[" + o.join(",") + "]", gap = a, s | |
} | |
if (rep && "object" == typeof rep) | |
for (r = rep.length, n = 0; r > n; n += 1) "string" == typeof rep[n] && (i = rep[n], s = str(i, c), s && o.push(quote(i) + (gap ? ": " : ":") + s)); | |
else | |
for (i in c) Object.prototype.hasOwnProperty.call(c, i) && (s = str(i, c), s && o.push(quote(i) + (gap ? ": " : ":") + s)); | |
return s = 0 === o.length ? "{}" : gap ? "{\n" + gap + o.join(",\n" + gap) + "\n" + a + "}" : "{" + o.join(",") + "}", gap = a, s | |
} | |
} | |
"function" != typeof Date.prototype.toJSON && (Date.prototype.toJSON = function() { | |
return isFinite(this.valueOf()) ? this.getUTCFullYear() + "-" + f(this.getUTCMonth() + 1) + "-" + f(this.getUTCDate()) + "T" + f(this.getUTCHours()) + ":" + f(this.getUTCMinutes()) + ":" + f(this.getUTCSeconds()) + "Z" : null | |
}, String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function() { | |
return this.valueOf() | |
}); | |
var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, | |
escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, | |
gap, indent, meta = { | |
"\b": "\\b", | |
" ": "\\t", | |
"\n": "\\n", | |
"\f": "\\f", | |
"\r": "\\r", | |
'"': '\\"', | |
"\\": "\\\\" | |
}, | |
rep; | |
"function" != typeof JSON.stringify && (JSON.stringify = function(e, t, n) { | |
var i; | |
if (gap = "", indent = "", "number" == typeof n) | |
for (i = 0; n > i; i += 1) indent += " "; | |
else "string" == typeof n && (indent = n); | |
if (rep = t, t && "function" != typeof t && ("object" != typeof t || "number" != typeof t.length)) throw new Error("JSON.stringify"); | |
return str("", { | |
"": e | |
}) | |
}), "function" != typeof JSON.parse && (JSON.parse = function(text, reviver) { | |
function walk(e, t) { | |
var n, i, s = e[t]; | |
if (s && "object" == typeof s) | |
for (n in s) Object.prototype.hasOwnProperty.call(s, n) && (i = walk(s, n), void 0 !== i ? s[n] = i : delete s[n]); | |
return reviver.call(e, t, s) | |
} | |
var j; | |
if (text = String(text), cx.lastIndex = 0, cx.test(text) && (text = text.replace(cx, function(e) { | |
return "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice(-4) | |
})), /^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return j = eval("(" + text + ")"), "function" == typeof reviver ? walk({ | |
"": j | |
}, "") : j; | |
throw new SyntaxError("JSON.parse") | |
}) | |
}(), define("json2", [], function() { | |
return JSON | |
}) | |
}.call(this, this), define("hbs", ["handlebars", "underscore", "i18nprecompile", "json2"], function(e, t, n, i) { | |
var s, r, o = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP", "Msxml2.XMLHTTP.4.0"], | |
a = function() { | |
throw new Error("Environment unsupported.") | |
}, | |
c = [], | |
l = "w+", | |
u = "hbs", | |
h = "@hbs", | |
d = "/styles/", | |
p = "/demo-build/styles/", | |
f = "template/helpers/", | |
g = "template/i18n/", | |
A = "screen.build.css"; | |
"undefined" != typeof window && window.navigator && window.document && !window.navigator.userAgent.match(/Node.js/) ? (r = function() { | |
var e, t, n; | |
if ("undefined" != typeof XMLHttpRequest) return new XMLHttpRequest; | |
for (t = 0; 3 > t; t++) { | |
n = o[t]; | |
try { | |
e = new ActiveXObject(n) | |
} catch (i) {} | |
if (e) { | |
o = [n]; | |
break | |
} | |
} | |
if (!e) throw new Error("getXhr(): XMLHttpRequest not available"); | |
return e | |
}, a = function(e, t) { | |
var n = r(); | |
n.open("GET", e, !0), n.onreadystatechange = function() { | |
4 === n.readyState && t(n.responseText) | |
}, n.send(null) | |
}) : "undefined" != typeof process && process.versions && process.versions.node ? (s = require.nodeRequire("fs"), a = function(e, t) { | |
var n = s.readFileSync(e, "utf8") || ""; | |
n = n.replace(/^\uFEFF/, ""), t(n) | |
}) : "undefined" != typeof java && "undefined" != typeof java.io && (a = function(e, t) { | |
for (var n, i = new java.io.File(e), s = new java.io.FileReader(i), r = new java.io.BufferedReader(s), o = ""; null !== (n = r.readLine());) o += new String(n) + "\n"; | |
r.close(), t(o) | |
}); | |
var m = {}, | |
y = function(e, t) { | |
m[e] ? t(m[e]) : a(e, function(n) { | |
m[e] = n, t.call(this, n) | |
}) | |
}, | |
v = [], | |
b = {}; | |
return { | |
get: function() { | |
return e | |
}, | |
write: function(e, t, n) { | |
if (t + h in c) { | |
var i = c[t + h]; | |
n.asModule(e + "!" + t, i) | |
} | |
}, | |
version: "0.4.0", | |
load: function(r, o, m, w) { | |
function x(e, n) { | |
return t(e).forEach(function(e) { | |
e && e.type && "partial" === e.type && n.push(e.id.string), e && e.program && e.program.statements && x(e.program.statements, n), e && e.program && e.program.inverse && e.program.inverse.statements && x(e.program.inverse.statements, n) | |
}), n | |
} | |
function C(e) { | |
var n = []; | |
return e && e.statements && (n = x(e.statements, [])), t(n).unique() | |
} | |
function E(e) { | |
var t, n, s; | |
if (e && e.statements && (t = e.statements[0], t && "comment" === t.type)) try { | |
return n = t.comment.replace(new RegExp("^[\\s]+|[\\s]+$", "g"), ""), s = i.parse(n), n | |
} catch (r) { | |
return "{}" | |
} | |
return "{}" | |
} | |
function k(e) { | |
if (!e) return []; | |
var t, n = [e[0]], | |
i = e[0]; | |
for (t = 1; t < e.length; ++t) e.hasOwnProperty(t) && (i += "." + e[t], n.push(i)); | |
return n | |
} | |
function S(e, n, i, s) { | |
i = i ? i + "." : ""; | |
var r = ""; | |
return t(e).forEach(function(e) { | |
var o, a, c; | |
if (e && e.type && "mustache" === e.type) { | |
if (!e.params || !e.params.length) { | |
o = k(e.id.parts); | |
for (a in o) o[a] && (r = o[a] || r, n.push(i + o[a])); | |
n.push(i + e.id.string) | |
} | |
var l = ["this", ".", "..", "./..", "../..", "../../.."]; | |
e.params && t(e.params).forEach(function(a) { | |
t(l).contains(a.original) && s.push(e.id.string), o = k(a.parts); | |
for (var c in o) o[c] && (r = o[c] || r, s.push(e.id.string), n.push(i + o[c])) | |
}) | |
} | |
e && e.mustache && S([e.mustache], n, i + r, s), e && e.program && e.program.statements && (c = S([e.mustache], [], "", s)[0] || "", e.program.inverse && e.program.inverse.statements && S(e.program.inverse.statements, n, i + r + (c ? i + r ? "." + c : c : ""), s), S(e.program.statements, n, i + r + (c ? i + r ? "." + c : c : ""), s)) | |
}), n | |
} | |
function B(e) { | |
var n = [], | |
i = []; | |
e && e.statements && (n = S(e.statements, [], void 0, i)); | |
var s = ["helperMissing", "blockHelperMissing", "each", "if", "unless", "with"]; | |
return { | |
vars: t(n).chain().unique().map(function(e) { | |
return "" === e ? "." : e.length && "." === e[e.length - 1] ? e.substr(0, e.length - 1) + "[]" : e | |
}).value(), | |
helpers: t(i).chain().unique().map(function(e) { | |
return t(s).contains(e) ? void 0 : e | |
}).compact().value() | |
} | |
} | |
function _(u) { | |
a(M, function(a) { | |
var h, g, y, x = e.parse(a), | |
k = C(x), | |
S = E(x), | |
_ = B(x), | |
N = _.vars, | |
I = _.helpers || [], | |
j = k.join("', 'hbs!").replace(/_/g, "/"), | |
L = w.hbs && w.hbs.disableHelpers ? "" : function() { | |
var e, t = [], | |
n = w.hbs && w.hbs.helperPathCallback ? w.hbs.helperPathCallback : function(e) { | |
return (w.hbs && w.hbs.helperDirectory ? w.hbs.helperDirectory : f) + e | |
}; | |
for (e = 0; e < I.length; e++) t[e] = "'" + n(I[e]) + "'"; | |
return t | |
}().join(","), | |
O = "", | |
F = "", | |
H = ""; | |
if (j && (j = ",'hbs!" + j + "'"), L && (L = "," + L), "{}" !== S) try { | |
h = i.parse(S), h && h.styles && (v = t.union(v, h.styles), require.isBrowser && !w.isBuild ? (g = document.head || document.getElementsByTagName("head")[0], t(h.styles).forEach(function(e) { | |
b[e] || (y = document.createElement("link"), y.href = w.baseUrl + d + e + ".css", y.media = "all", y.rel = "stylesheet", y.type = "text/css", g.appendChild(y), b[e] = y) | |
})) : w.isBuild && ! function() { | |
var e = require.nodeRequire("fs"), | |
n = t(h.styles).map(function(e) { | |
return b[e] ? "" : (b[e] = !0, "@import url(" + e + ".css);\n") | |
}).join("\n"); | |
e.open(__dirname + p + A, l, "0666", function(t, i) { | |
e.writeSync(i, n, null, encoding = "utf8"), e.close(i) | |
}), l = "a" | |
}()) | |
} catch (R) { | |
console.log("error injecting styles") | |
} | |
w.isBuild || w.serverRender || (O = "<!-- START - " + r + " -->", F = "<!-- END - " + r + " -->", H = "t.meta = " + S + ";\nt.helpers = " + i.stringify(I) + ";\nt.deps = " + i.stringify(k) + ";\nt.vars = " + i.stringify(N) + ";\n"); | |
var Q = D ? !1 : t.extend(u, w.localeMapping), | |
Y = n(a, Q, { | |
originalKeyFallback: (w.hbs || {}).originalKeyFallback | |
}); | |
a = "/* START_TEMPLATE */\ndefine(['hbs','handlebars'" + j + L + "], function( hbs, Handlebars ){ \nvar t = Handlebars.template(" + Y + ");\nHandlebars.registerPartial('" + r.replace(/\//g, "_") + "', t);\n" + H + "return t;\n});\n/* END_TEMPLATE */\n", w.isBuild && (c[T] = a), w.isBuild || (a += "\r\n//@ sourceURL=" + M); | |
for (var U in k) k.hasOwnProperty(U) && (k[U] = "hbs!" + k[U].replace(/_/g, "/")); | |
w.isBuild ? (m.fromText(a), o([r], function(e) { | |
m(e) | |
})) : require(k, function() { | |
m.fromText(a), o([r], function(e) { | |
m(e) | |
}) | |
}), w.removeCombined && s.unlinkSync(M) | |
}) | |
} | |
var T = r + h, | |
D = w.hbs && w.hbs.disableI18n, | |
M = o.toUrl(r + "." + (w.hbs && w.hbs.templateExtension ? w.hbs.templateExtension : u)); | |
D ? _(!1) : y(o.toUrl((w.hbs && w.hbs.i18nDirectory ? w.hbs.i18nDirectory : g) + (w.locale || "en_us") + ".json"), function(e) { | |
_(i.parse(e)) | |
}) | |
} | |
} | |
}), define("hbs!templates/carousel/assetview", ["hbs", "handlebars"], function(e, t) { | |
var n = t.template(function(e, t, n) { | |
n = n || e.helpers; | |
var i, s, r = "", | |
o = "function", | |
a = this.escapeExpression; | |
return r += '<img src="', s = n.url, s ? i = s.call(t, { | |
hash: {} | |
}) : (i = t.url, i = typeof i === o ? i() : i), r += a(i) + '/w/200" class="chute-asset-thumbnail">' | |
}); | |
return t.registerPartial("templates_carousel_assetview", n), n | |
}), define("components/carousel/assetview", ["core/assetview", "hbs!templates/carousel/assetview"], function(e, t) { | |
return e.extend({ | |
template: t | |
}) | |
}), define("components/carousel", ["jquery", "underscore", "core/collectionview", "components/carousel/assetview"], function(e, t, n, i) { | |
var s = n.extend({ | |
className: "chute-carousel-view", | |
itemViewType: i, | |
initialize: function(e) { | |
e || (e = {}) | |
}, | |
onItemviewsLoad: function() { | |
this.$el.children().removeClass("chute-component-loading"), this.initCarousel() | |
}, | |
initCarousel: function() { | |
this.wrapperEl || (this.wrapperEl = e('<div class="chute-carousel-items-wrapper"></div>').css({ | |
width: 99999, | |
overflow: "hidden" | |
}), this.$el.append(this.wrapperEl)); | |
var t = this.wrapperEl; | |
this.$el.children().each(function() { | |
e(this).hasClass("chute-asset-view") && e(this).detach().appendTo(t) | |
}) | |
}, | |
page: 0, | |
visibleItems: function() { | |
var e = this.$el.find("div:first"), | |
t = e.children(), | |
n = this.$el.width(), | |
i = t.first().width(); | |
return Math.floor(n / i) | |
}, | |
actualWidth: function() { | |
for (var t = this.$el.find("div:first"), n = t.children(), i = this.visibleItems(), s = 0, r = 0; i > r; r++) { | |
var o = e(n.get(r)); | |
s += o.width(), s += parseInt(o.css("border-left-width"), 10) + parseInt(o.css("border-right-width"), 10), s += parseInt(o.css("margin-left"), 10) + parseInt(o.css("margin-right"), 10) | |
} | |
return s | |
}, | |
pages: function() { | |
var t = this.$el.find("div:first"), | |
n = t.children(), | |
i = 0; | |
return n.each(function() { | |
var t = e(this); | |
i += t.width(), i += parseInt(t.css("border-left-width"), 10) + parseInt(t.css("border-right-width"), 10), i += parseInt(t.css("margin-left"), 10) + parseInt(t.css("margin-right"), 10) | |
}), Math.ceil(i / this.actualWidth()) | |
}, | |
nextPage: function() { | |
this.page + 1 >= this.pages() || this.$el.animate({ | |
scrollLeft: ++this.page * this.actualWidth() | |
}, 300) | |
}, | |
prevPage: function() { | |
this.page - 1 < 0 || this.$el.animate({ | |
scrollLeft: --this.page * this.actualWidth() | |
}) | |
} | |
}); | |
return s | |
}), define("hbs!templates/navigation", ["hbs", "handlebars"], function(e, t) { | |
var n = t.template(function(e, t, n) { | |
return n = n || e.helpers, '<a href="#" class="chute-nav prev"><i class="icon-angle-left"></i></a>\n<a href="#" class="chute-nav next"><i class="icon-angle-right"></i></a>' | |
}); | |
return t.registerPartial("templates_navigation", n), n | |
}), define("components/navigationview", ["core/view", "hbs!templates/navigation"], function(e, t) { | |
return e.extend({ | |
template: t, | |
events: { | |
"click a.next": "next", | |
"click a.prev": "prev" | |
}, | |
onShow: function() { | |
this.undelegateEvents(), this.$el.before(this.$el.find("a.prev")), this.$el.before(this.$el.find("a.next")); | |
var e = this.$el; | |
this.setElement(this.$el.parent()), e.remove(), this.delegateEvents() | |
}, | |
next: function(e) { | |
e.preventDefault(), this.trigger("next") | |
}, | |
prev: function(e) { | |
e.preventDefault(), this.trigger("prev") | |
}, | |
close: function() { | |
this.$el.find("a.chute-nav").remove() | |
} | |
}) | |
}), define("utilities/eachDeepObject", ["underscore"], function(e) { | |
var t = function(n, i) { | |
e.each(n, function(n) { | |
e.isObject(n) && t(n, i) | |
}), i(n) | |
}; | |
return t | |
}), define("layouts/carousel", ["jquery", "underscore", "backbone", "core/layout", "components/cssregion", "components/cssview", "api/album", "components/carousel", "components/navigationview", "utilities/eachDeepObject"], function(e, t, n, i, s, r, o, a, c, l) { | |
var u = i.extend({ | |
template: t.template('<div class="chute-carousel-container"><div class="chute-carousel"></div><div class="chute-carousel-nav"></div></div>'), | |
regions: { | |
carousel: { | |
selector: ".chute-carousel" | |
}, | |
navigation: { | |
selector: ".chute-carousel-nav" | |
}, | |
mainCss: { | |
regionType: s | |
} | |
}, | |
carouselViewType: a, | |
navigationViewType: c, | |
cssTemplate: e.noop, | |
events: { | |
"click div.chute-asset-view": "itemClicked" | |
}, | |
initialize: function(e) { | |
if (e || (e = {}), l(e, function(t) { | |
t.componentId = e.id | |
}), e.album) { | |
var i = t.pick(e.album, "shortcut"), | |
s = t.omit(e.album, "shortcut"); | |
t.extend(s, e.albumOptions, { | |
componentId: e.id | |
}), e.model = new o(i, s), e.collection = e.model.assets | |
} | |
this.cssModel = new n.Model(e), this.triggerMethod("initialize", e) | |
}, | |
onShow: function() { | |
this.carousel.show(new this.carouselViewType(this.options)), this.setupNavigation(), this.mainCss.show(new r({ | |
model: this.cssModel, | |
template: this.cssTemplate | |
})), 0 === this.options.collection.length && this.options.collection.fetch(), this.analytics.pageview(), this.analytics.trackHover(this.el) | |
}, | |
itemClicked: function(t) { | |
var n, i = e(t.target); | |
i.parents("div.chute-carousel-items-wrapper").children().each(function(t) { | |
return e(this).find("img").attr("src") === i.attr("src") ? (n = t, !1) : void 0 | |
}), this.trigger("click", n, i) | |
}, | |
setupNavigation: function() { | |
this.navigation.show(new this.navigationViewType); | |
var e = this.navigation.currentView, | |
t = this.carousel.currentView; | |
e.on("next", function() { | |
t.nextPage() | |
}, this), e.on("prev", function() { | |
t.prevPage() | |
}, this) | |
} | |
}); | |
return u | |
}), define("hbs!src/templates/asset", ["hbs", "handlebars"], function(e, t) { | |
var n = t.template(function(e, t, n) { | |
n = n || e.helpers; | |
var i, s, r = "", | |
o = "function", | |
a = this.escapeExpression; | |
return r += '<img src="', s = n.asset_url, s ? i = s.call(t, { | |
hash: {} | |
}) : (i = t.asset_url, i = typeof i === o ? i() : i), r += a(i) + '" class="chute-asset-thumbnail">\n' | |
}); | |
return t.registerPartial("src_templates_asset", n), n | |
}), define("utilities/trunc", [], function() { | |
return function(e, t, n) { | |
var i = e.length > t, | |
s = i ? e.substr(0, t - 1) : e; | |
return s = n && i ? s.substr(0, s.lastIndexOf(" ")) : s, i ? s + "..." : s | |
} | |
}), define("utilities/compactWhiteSpace", ["underscore"], function(e) { | |
var t = function(e) { | |
return e.replace(/^\s+|\s+$/gm, "") | |
}, | |
n = function(n) { | |
return e.isString(n) && "" === t(n) | |
}; | |
return function(t, i) { | |
if (t) { | |
if (i && !e.isArray(i) && (i = e.rest(arguments, 1)), i || (i = e.keys(t)), e.isArray(t)) t = e.reject(t, function(e) { | |
return n(e) | |
}); | |
else | |
for (var s = 0; s < i.length; s++) n(t[i[s]]) && delete t[i[s]]; | |
return t | |
} | |
} | |
}), define("utilities/awesm", ["jquery", "underscore", "utilities/trunc", "utilities/compactWhiteSpace"], function(e, t, n, i) { | |
function s(t, n) { | |
window.open(t + "?" + e.param(n), "share_window", "width=500,height=500") | |
} | |
var r, o = /\{\{(.+?)\}\}/g, | |
a = { | |
_loaded: !1, | |
_loading: !1, | |
_config: null, | |
ensureAWESM: function(n, i) { | |
if (t.isFunction(n) && (i = n, n = void 0), this._config = t.defaults({}, n, { | |
api_key: "aa304cb7d4932240f190e1b3c0193537f7d986d5f9a02b445d9e259696600322", | |
caption: "Check this out!" | |
}), this._loaded) return void(i && i()); | |
if (this._loading) return void(i && r.push(i)); | |
i && (r = [i]); | |
var s = function() { | |
window.AWESM.share.facebook_share = function(e) { | |
"undefined" == typeof e && (e = {}); | |
var t = { | |
channel: "facebook-share", | |
windowSpecs: "width=600,height=350,resizable=0,scrollbars=0" | |
}; | |
e = window.AWESM.fillParams(e, t); | |
var n = "https://www.facebook.com/sharer.php?s=100&" + encodeURIComponent("p[url]") + "=AWESM_URL&" + encodeURIComponent("p[images][0]") + "=" + encodeURIComponent(e.picture) + "&" + encodeURIComponent("p[title]") + "=" + encodeURIComponent(e.name) + "&" + encodeURIComponent("p[summary]") + "=" + encodeURIComponent(e.description); | |
return e.destination = n, delete e.picture, delete e.caption, delete e.description, window.AWESM.shareTo(e) | |
} | |
}; | |
this._loading = !0, e.getScript("//widgets.awe.sm/v3/widgets.js?key=" + this._config.api_key + "&async=true", t.bind(function() { | |
this._loaded = !0, this._loading = !1, window.AWESM.api_key = this._config.api_key, s(), t.each(r, function(e) { | |
e() | |
}) | |
}, this)) | |
}, | |
share: function(e) { | |
if (!this._config) throw new Error("Sharing is not initialized. Need to call `ensureAWESM` first."); | |
if (!e.service) throw new Error("`service` is required."); | |
var n = this[e.service]; | |
if (!n) throw new Error('Service "' + e.service + '" is not supported.'); | |
var s = t.extend(t.pick(this._config, "url", "caption", "thumbnail"), this._config[e.service]); | |
i(s), t.each(t.keys(s), function(n) { | |
t.isString(s[n]) && s[n].match(o) && (s[n] = s[n].replace(o, "{{data.$1}}"), s[n] = t.template(s[n], e, { | |
variable: "data", | |
interpolate: o | |
})) | |
}), s = t.defaults(s, e), n.call(this, s) | |
}, | |
facebook: function(e) { | |
e = { | |
app_id: e.app_id, | |
redirect_uri: e.redirect_uri, | |
url: e.url, | |
picture: e.thumbnail, | |
name: e.caption, | |
caption: e.title, | |
description: e.description | |
}, e.app_id ? window.AWESM.share.facebook_post(e) : window.AWESM.share.facebook_share(e) | |
}, | |
twitter: function(e) { | |
window.AWESM.share.twitter({ | |
url: e.url, | |
text: e.caption ? n(e.caption, 115, "...") : "", | |
via: e.via, | |
hashtags: e.hashtags, | |
related: e.related | |
}) | |
}, | |
tumblr: function(e) { | |
window.AWESM.share.tumblr_photo({ | |
url: e.url, | |
source: e.thumbnail, | |
caption: e.caption | |
}) | |
}, | |
pinterest: function(e) { | |
window.AWESM.share.pinterest({ | |
url: e.url, | |
image: e.thumbnail, | |
description: e.caption | |
}) | |
}, | |
googleplus: function(e) { | |
window.AWESM.share.googleplus({ | |
url: e.url | |
}) | |
}, | |
linkedin: function(e) { | |
window.AWESM.share.linkedin({ | |
url: e.url | |
}) | |
}, | |
weibo: function(e) { | |
s("http://service.weibo.com/share/share.php", { | |
url: e.url, | |
title: e.caption | |
}) | |
} | |
}; | |
return a | |
}), define("utilities/withVideoJS", ["jquery", "underscore"], function(e, t) { | |
var n, i = !1, | |
s = !1, | |
r = [], | |
o = function() { | |
s = !0, e("head").append(e('<script type="text/javascript">document.createElement("video");document.createElement("audio");</script>')), e("head").append(e('<link href="//vjs.zencdn.net/4.4.3/video-js.css" rel="stylesheet">')), e.getScript("//vjs.zencdn.net/4.4.3/video.js", function() { | |
e.getScript("//static.getchute.com/js/vjs.youtube.js", a) | |
}) | |
}, | |
a = function() { | |
i = !0, n = window.videojs, t.each(r, function(e) { | |
e(n) | |
}) | |
}, | |
c = function(e) { | |
s || o(), i ? e(n) : r.push(e) | |
}; | |
return c | |
}), define("components/assetlightboxview", ["core/assetview", "components/modalregion", "utilities/awesm", "underscore", "jquery", "utilities/withVideoJS"], function(e, t, n, i, s, r) { | |
var o = e.extend({ | |
className: "chute-asset-lightbox-view", | |
events: { | |
"click .chute-next": "next", | |
"click .chute-previous": "prev", | |
"click [data-chute-shareto]": "share", | |
"click .chute-heart-widget": "heart" | |
}, | |
serializeData: function() { | |
var e = this.model.toJSON(); | |
return e.enable = this.options.enable, e.enable.sharing && (e.enable.sharing.length = i.chain(e.enable.sharing).omit("length", "analytics", "componentId").values().compact().value().length), e.asset_url = e.url + "/w/" + this.options.width, e.isYoutube = "youtube" === e.service, e | |
}, | |
initialize: function() { | |
e.prototype.initialize.apply(this, arguments), i.bindAll(this, "navigateByKeys", "share", "heart") | |
}, | |
onShow: function() { | |
this.analytics.trigger("view_lightbox", { | |
aID: this.model.get("shortcut") | |
}), s(window).on("keydown", this.navigateByKeys), this.model.has("video_url") && this.showVideo() | |
}, | |
showVideo: function() { | |
var e = this, | |
t = "chute-video-" + this.model.get("shortcut"); | |
r(function(n) { | |
e.video = "youtube" === e.model.get("service") ? n(t, { | |
techOrder: ["youtube"], | |
src: e.model.get("video_url"), | |
forceSSL: !0 | |
}) : n(t), e.video.ready(function() { | |
e.triggerMethod("load:success", e) | |
}) | |
}) | |
}, | |
onClose: function() { | |
s(window).off("keydown", this.navigateByKeys), this.video && this.video.dispose() | |
}, | |
next: function() { | |
this.analytics.trigger("click_next", { | |
lID: this.model.get("album"), | |
aID: this.model.get("shortcut"), | |
eCx: "lightbox" | |
}); | |
var e = this.model.collection.indexOf(this.model) + 1; | |
this.loadView(this.model.collection.at(e), "next") | |
}, | |
prev: function() { | |
this.analytics.trigger("click_previous", { | |
lID: this.model.get("album"), | |
aID: this.model.get("shortcut"), | |
eCx: "lightbox" | |
}); | |
var e = this.model.collection.indexOf(this.model) - 1; | |
this.loadView(this.model.collection.at(e), "prev") | |
}, | |
loadView: function(e, n) { | |
if (e) { | |
var s = i.omit(this.options, "model", "direction"); | |
s.model = e, s.direction = n; | |
var r = new this.constructor(s); | |
t.show(r) | |
} | |
}, | |
navigateByKeys: function(e) { | |
37 == e.keyCode ? this.prev() : 39 == e.keyCode && this.next() | |
}, | |
getSharingOptions: function(e) { | |
var t = s(e.currentTarget), | |
n = this.model.pick("caption"); | |
n.thumbnail = this.model.get("url"), n.service = t.data("chute-shareto"); | |
var i = this.lightboxUrl(); | |
return n.url = i ? window.location.href.replace(window.location.hash, "").replace(/#$/, "") + "#" + i + "/" + n.service : window.location.href, n | |
}, | |
lightboxUrl: function() { | |
var e = this.options.componentId; | |
if (e) { | |
var t = this.model.get("album"), | |
n = this.model.get("shortcut"); | |
return "/lightbox/" + e + "/" + t + "/" + n | |
} | |
}, | |
share: function(e) { | |
var t = this.getSharingOptions(e); | |
n.share(t); | |
var i = "share_" + t.service; | |
this.analytics.trigger(i, { | |
aID: this.model.get("shortcut"), | |
eCx: "lightbox" | |
}) | |
}, | |
heart: function() { | |
this.analytics.trigger("click_vote", { | |
aID: this.model.get("shortcut"), | |
eCx: "lightbox" | |
}), this.model.heart() | |
}, | |
onLoadSuccess: function() { | |
this.$(".chute-component-loading").removeClass("chute-component-loading") | |
}, | |
onLoadError: function() { | |
this.options.direction && this[this.options.direction] && this[this.options.direction](), this.model.destroy() | |
} | |
}), | |
a = o; | |
return a | |
}), | |
function(e) { | |
function t(e, t) { | |
return function(n) { | |
return c(e.call(this, n), t) | |
} | |
} | |
function n(e, t) { | |
return function(n) { | |
return this.lang().ordinal(e.call(this, n), t) | |
} | |
} | |
function i() {} | |
function s(e) { | |
o(this, e) | |
} | |
function r(e) { | |
var t = e.years || e.year || e.y || 0, | |
n = e.months || e.month || e.M || 0, | |
i = e.weeks || e.week || e.w || 0, | |
s = e.days || e.day || e.d || 0, | |
r = e.hours || e.hour || e.h || 0, | |
o = e.minutes || e.minute || e.m || 0, | |
a = e.seconds || e.second || e.s || 0, | |
c = e.milliseconds || e.millisecond || e.ms || 0; | |
this._input = e, this._milliseconds = +c + 1e3 * a + 6e4 * o + 36e5 * r, this._days = +s + 7 * i, this._months = +n + 12 * t, this._data = {}, this._bubble() | |
} | |
function o(e, t) { | |
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); | |
return e | |
} | |
function a(e) { | |
return 0 > e ? Math.ceil(e) : Math.floor(e) | |
} | |
function c(e, t) { | |
for (var n = e + ""; n.length < t;) n = "0" + n; | |
return n | |
} | |
function l(e, t, n, i) { | |
var s, r, o = t._milliseconds, | |
a = t._days, | |
c = t._months; | |
o && e._d.setTime(+e._d + o * n), (a || c) && (s = e.minute(), r = e.hour()), a && e.date(e.date() + a * n), c && e.month(e.month() + c * n), o && !i && F.updateOffset(e), (a || c) && (e.minute(s), e.hour(r)) | |
} | |
function u(e) { | |
return "[object Array]" === Object.prototype.toString.call(e) | |
} | |
function h(e, t) { | |
var n, i = Math.min(e.length, t.length), | |
s = Math.abs(e.length - t.length), | |
r = 0; | |
for (n = 0; i > n; n++) ~~e[n] !== ~~t[n] && r++; | |
return r + s | |
} | |
function d(e) { | |
return e ? ct[e] || e.toLowerCase().replace(/(.)s$/, "$1") : e | |
} | |
function p(e, t) { | |
return t.abbr = e, Y[e] || (Y[e] = new i), Y[e].set(t), Y[e] | |
} | |
function f(e) { | |
delete Y[e] | |
} | |
function g(e) { | |
if (!e) return F.fn._lang; | |
if (!Y[e] && U) try { | |
require("./lang/" + e) | |
} catch (t) { | |
return F.fn._lang | |
} | |
return Y[e] || F.fn._lang | |
} | |
function A(e) { | |
return e.match(/\[.*\]/) ? e.replace(/^\[|\]$/g, "") : e.replace(/\\/g, "") | |
} | |
function m(e) { | |
var t, n, i = e.match(G); | |
for (t = 0, n = i.length; n > t; t++) i[t] = dt[i[t]] ? dt[i[t]] : A(i[t]); | |
return function(s) { | |
var r = ""; | |
for (t = 0; n > t; t++) r += i[t] instanceof Function ? i[t].call(s, e) : i[t]; | |
return r | |
} | |
} | |
function y(e, t) { | |
return t = v(t, e.lang()), lt[t] || (lt[t] = m(t)), lt[t](e) | |
} | |
function v(e, t) { | |
function n(e) { | |
return t.longDateFormat(e) || e | |
} | |
for (var i = 5; i-- && (V.lastIndex = 0, V.test(e));) e = e.replace(V, n); | |
return e | |
} | |
function b(e, t) { | |
switch (e) { | |
case "DDDD": | |
return J; | |
case "YYYY": | |
return K; | |
case "YYYYY": | |
return Z; | |
case "S": | |
case "SS": | |
case "SSS": | |
case "DDD": | |
return q; | |
case "MMM": | |
case "MMMM": | |
case "dd": | |
case "ddd": | |
case "dddd": | |
return $; | |
case "a": | |
case "A": | |
return g(t._l)._meridiemParse; | |
case "X": | |
return tt; | |
case "Z": | |
case "ZZ": | |
return X; | |
case "T": | |
return et; | |
case "MM": | |
case "DD": | |
case "YY": | |
case "HH": | |
case "hh": | |
case "mm": | |
case "ss": | |
case "M": | |
case "D": | |
case "d": | |
case "H": | |
case "h": | |
case "m": | |
case "s": | |
return z; | |
default: | |
return new RegExp(e.replace("\\", "")) | |
} | |
} | |
function w(e) { | |
var t = (X.exec(e) || [])[0], | |
n = (t + "").match(rt) || ["-", 0, 0], | |
i = +(60 * n[1]) + ~~n[2]; | |
return "+" === n[0] ? -i : i | |
} | |
function x(e, t, n) { | |
var i, s = n._a; | |
switch (e) { | |
case "M": | |
case "MM": | |
null != t && (s[1] = ~~t - 1); | |
break; | |
case "MMM": | |
case "MMMM": | |
i = g(n._l).monthsParse(t), null != i ? s[1] = i : n._isValid = !1; | |
break; | |
case "D": | |
case "DD": | |
null != t && (s[2] = ~~t); | |
break; | |
case "DDD": | |
case "DDDD": | |
null != t && (s[1] = 0, s[2] = ~~t); | |
break; | |
case "YY": | |
s[0] = ~~t + (~~t > 68 ? 1900 : 2e3); | |
break; | |
case "YYYY": | |
case "YYYYY": | |
s[0] = ~~t; | |
break; | |
case "a": | |
case "A": | |
n._isPm = g(n._l).isPM(t); | |
break; | |
case "H": | |
case "HH": | |
case "h": | |
case "hh": | |
s[3] = ~~t; | |
break; | |
case "m": | |
case "mm": | |
s[4] = ~~t; | |
break; | |
case "s": | |
case "ss": | |
s[5] = ~~t; | |
break; | |
case "S": | |
case "SS": | |
case "SSS": | |
s[6] = ~~(1e3 * ("0." + t)); | |
break; | |
case "X": | |
n._d = new Date(1e3 * parseFloat(t)); | |
break; | |
case "Z": | |
case "ZZ": | |
n._useUTC = !0, n._tzm = w(t) | |
} | |
null == t && (n._isValid = !1) | |
} | |
function C(e) { | |
var t, n, i, s = []; | |
if (!e._d) { | |
for (i = k(e), t = 0; 3 > t && null == e._a[t]; ++t) e._a[t] = s[t] = i[t]; | |
for (; 7 > t; t++) e._a[t] = s[t] = null == e._a[t] ? 2 === t ? 1 : 0 : e._a[t]; | |
s[3] += ~~((e._tzm || 0) / 60), s[4] += ~~((e._tzm || 0) % 60), n = new Date(0), e._useUTC ? (n.setUTCFullYear(s[0], s[1], s[2]), n.setUTCHours(s[3], s[4], s[5], s[6])) : (n.setFullYear(s[0], s[1], s[2]), n.setHours(s[3], s[4], s[5], s[6])), e._d = n | |
} | |
} | |
function E(e) { | |
var t = e._i; | |
e._d || (e._a = [t.years || t.year || t.y, t.months || t.month || t.M, t.days || t.day || t.d, t.hours || t.hour || t.h, t.minutes || t.minute || t.m, t.seconds || t.second || t.s, t.milliseconds || t.millisecond || t.ms], C(e)) | |
} | |
function k(e) { | |
var t = new Date; | |
return e._useUTC ? [t.getUTCFullYear(), t.getUTCMonth(), t.getUTCDate()] : [t.getFullYear(), t.getMonth(), t.getDate()] | |
} | |
function S(e) { | |
var t, n, i, s = g(e._l), | |
r = "" + e._i; | |
for (i = v(e._f, s).match(G), e._a = [], t = 0; t < i.length; t++) n = (b(i[t], e).exec(r) || [])[0], n && (r = r.slice(r.indexOf(n) + n.length)), dt[i[t]] && x(i[t], n, e); | |
r && (e._il = r), e._isPm && e._a[3] < 12 && (e._a[3] += 12), e._isPm === !1 && 12 === e._a[3] && (e._a[3] = 0), C(e) | |
} | |
function B(e) { | |
var t, n, i, r, a, c = 99; | |
for (r = 0; r < e._f.length; r++) t = o({}, e), t._f = e._f[r], S(t), n = new s(t), a = h(t._a, n.toArray()), n._il && (a += n._il.length), c > a && (c = a, i = n); | |
o(e, i) | |
} | |
function _(e) { | |
var t, n = e._i, | |
i = nt.exec(n); | |
if (i) { | |
for (e._f = "YYYY-MM-DD" + (i[2] || " "), t = 0; 4 > t; t++) | |
if (st[t][1].exec(n)) { | |
e._f += st[t][0]; | |
break | |
} | |
X.exec(n) && (e._f += " Z"), S(e) | |
} else e._d = new Date(n) | |
} | |
function T(t) { | |
var n = t._i, | |
i = P.exec(n); | |
n === e ? t._d = new Date : i ? t._d = new Date(+i[1]) : "string" == typeof n ? _(t) : u(n) ? (t._a = n.slice(0), C(t)) : n instanceof Date ? t._d = new Date(+n) : "object" == typeof n ? E(t) : t._d = new Date(n) | |
} | |
function D(e, t, n, i, s) { | |
return s.relativeTime(t || 1, !!n, e, i) | |
} | |
function M(e, t, n) { | |
var i = Q(Math.abs(e) / 1e3), | |
s = Q(i / 60), | |
r = Q(s / 60), | |
o = Q(r / 24), | |
a = Q(o / 365), | |
c = 45 > i && ["s", i] || 1 === s && ["m"] || 45 > s && ["mm", s] || 1 === r && ["h"] || 22 > r && ["hh", r] || 1 === o && ["d"] || 25 >= o && ["dd", o] || 45 >= o && ["M"] || 345 > o && ["MM", Q(o / 30)] || 1 === a && ["y"] || ["yy", a]; | |
return c[2] = t, c[3] = e > 0, c[4] = n, D.apply({}, c) | |
} | |
function N(e, t, n) { | |
var i, s = n - t, | |
r = n - e.day(); | |
return r > s && (r -= 7), s - 7 > r && (r += 7), i = F(e).add("d", r), { | |
week: Math.ceil(i.dayOfYear() / 7), | |
year: i.year() | |
} | |
} | |
function I(e) { | |
var t = e._i, | |
n = e._f; | |
return null === t || "" === t ? null : ("string" == typeof t && (e._i = t = g().preparse(t)), F.isMoment(t) ? (e = o({}, t), e._d = new Date(+t._d)) : n ? u(n) ? B(e) : S(e) : T(e), new s(e)) | |
} | |
function j(e, t) { | |
F.fn[e] = F.fn[e + "s"] = function(e) { | |
var n = this._isUTC ? "UTC" : ""; | |
return null != e ? (this._d["set" + n + t](e), F.updateOffset(this), this) : this._d["get" + n + t]() | |
} | |
} | |
function L(e) { | |
F.duration.fn[e] = function() { | |
return this._data[e] | |
} | |
} | |
function O(e, t) { | |
F.duration.fn["as" + e] = function() { | |
return +this / t | |
} | |
} | |
for (var F, H, R = "2.2.1", Q = Math.round, Y = {}, U = "undefined" != typeof module && module.exports, P = /^\/?Date\((\-?\d+)/i, W = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)\:(\d+)\.?(\d{3})?/, G = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|SS?S?|X|zz?|ZZ?|.)/g, V = /(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g, z = /\d\d?/, q = /\d{1,3}/, J = /\d{3}/, K = /\d{1,4}/, Z = /[+\-]?\d{1,6}/, $ = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, X = /Z|[\+\-]\d\d:?\d\d/i, et = /T/i, tt = /[\+\-]?\d+(\.\d{1,3})?/, nt = /^\s*\d{4}-\d\d-\d\d((T| )(\d\d(:\d\d(:\d\d(\.\d\d?\d?)?)?)?)?([\+\-]\d\d:?\d\d)?)?/, it = "YYYY-MM-DDTHH:mm:ssZ", st = [ | |
["HH:mm:ss.S", /(T| )\d\d:\d\d:\d\d\.\d{1,3}/], | |
["HH:mm:ss", /(T| )\d\d:\d\d:\d\d/], | |
["HH:mm", /(T| )\d\d:\d\d/], | |
["HH", /(T| )\d\d/] | |
], rt = /([\+\-]|\d\d)/gi, ot = "Date|Hours|Minutes|Seconds|Milliseconds".split("|"), at = { | |
Milliseconds: 1, | |
Seconds: 1e3, | |
Minutes: 6e4, | |
Hours: 36e5, | |
Days: 864e5, | |
Months: 2592e6, | |
Years: 31536e6 | |
}, ct = { | |
ms: "millisecond", | |
s: "second", | |
m: "minute", | |
h: "hour", | |
d: "day", | |
w: "week", | |
W: "isoweek", | |
M: "month", | |
y: "year" | |
}, lt = {}, ut = "DDD w W M D d".split(" "), ht = "M D H h m s w W".split(" "), dt = { | |
M: function() { | |
return this.month() + 1 | |
}, | |
MMM: function(e) { | |
return this.lang().monthsShort(this, e) | |
}, | |
MMMM: function(e) { | |
return this.lang().months(this, e) | |
}, | |
D: function() { | |
return this.date() | |
}, | |
DDD: function() { | |
return this.dayOfYear() | |
}, | |
d: function() { | |
return this.day() | |
}, | |
dd: function(e) { | |
return this.lang().weekdaysMin(this, e) | |
}, | |
ddd: function(e) { | |
return this.lang().weekdaysShort(this, e) | |
}, | |
dddd: function(e) { | |
return this.lang().weekdays(this, e) | |
}, | |
w: function() { | |
return this.week() | |
}, | |
W: function() { | |
return this.isoWeek() | |
}, | |
YY: function() { | |
return c(this.year() % 100, 2) | |
}, | |
YYYY: function() { | |
return c(this.year(), 4) | |
}, | |
YYYYY: function() { | |
return c(this.year(), 5) | |
}, | |
gg: function() { | |
return c(this.weekYear() % 100, 2) | |
}, | |
gggg: function() { | |
return this.weekYear() | |
}, | |
ggggg: function() { | |
return c(this.weekYear(), 5) | |
}, | |
GG: function() { | |
return c(this.isoWeekYear() % 100, 2) | |
}, | |
GGGG: function() { | |
return this.isoWeekYear() | |
}, | |
GGGGG: function() { | |
return c(this.isoWeekYear(), 5) | |
}, | |
e: function() { | |
return this.weekday() | |
}, | |
E: function() { | |
return this.isoWeekday() | |
}, | |
a: function() { | |
return this.lang().meridiem(this.hours(), this.minutes(), !0) | |
}, | |
A: function() { | |
return this.lang().meridiem(this.hours(), this.minutes(), !1) | |
}, | |
H: function() { | |
return this.hours() | |
}, | |
h: function() { | |
return this.hours() % 12 || 12 | |
}, | |
m: function() { | |
return this.minutes() | |
}, | |
s: function() { | |
return this.seconds() | |
}, | |
S: function() { | |
return ~~(this.milliseconds() / 100) | |
}, | |
SS: function() { | |
return c(~~(this.milliseconds() / 10), 2) | |
}, | |
SSS: function() { | |
return c(this.milliseconds(), 3) | |
}, | |
Z: function() { | |
var e = -this.zone(), | |
t = "+"; | |
return 0 > e && (e = -e, t = "-"), t + c(~~(e / 60), 2) + ":" + c(~~e % 60, 2) | |
}, | |
ZZ: function() { | |
var e = -this.zone(), | |
t = "+"; | |
return 0 > e && (e = -e, t = "-"), t + c(~~(10 * e / 6), 4) | |
}, | |
z: function() { | |
return this.zoneAbbr() | |
}, | |
zz: function() { | |
return this.zoneName() | |
}, | |
X: function() { | |
return this.unix() | |
} | |
}; ut.length;) H = ut.pop(), dt[H + "o"] = n(dt[H], H); | |
for (; ht.length;) H = ht.pop(), dt[H + H] = t(dt[H], 2); | |
for (dt.DDDD = t(dt.DDD, 3), o(i.prototype, { | |
set: function(e) { | |
var t, n; | |
for (n in e) t = e[n], "function" == typeof t ? this[n] = t : this["_" + n] = t | |
}, | |
_months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), | |
months: function(e) { | |
return this._months[e.month()] | |
}, | |
_monthsShort: "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), | |
monthsShort: function(e) { | |
return this._monthsShort[e.month()] | |
}, | |
monthsParse: function(e) { | |
var t, n, i; | |
for (this._monthsParse || (this._monthsParse = []), t = 0; 12 > t; t++) | |
if (this._monthsParse[t] || (n = F.utc([2e3, t]), i = "^" + this.months(n, "") + "|^" + this.monthsShort(n, ""), this._monthsParse[t] = new RegExp(i.replace(".", ""), "i")), this._monthsParse[t].test(e)) return t | |
}, | |
_weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), | |
weekdays: function(e) { | |
return this._weekdays[e.day()] | |
}, | |
_weekdaysShort: "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), | |
weekdaysShort: function(e) { | |
return this._weekdaysShort[e.day()] | |
}, | |
_weekdaysMin: "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), | |
weekdaysMin: function(e) { | |
return this._weekdaysMin[e.day()] | |
}, | |
weekdaysParse: function(e) { | |
var t, n, i; | |
for (this._weekdaysParse || (this._weekdaysParse = []), t = 0; 7 > t; t++) | |
if (this._weekdaysParse[t] || (n = F([2e3, 1]).day(t), i = "^" + this.weekdays(n, "") + "|^" + this.weekdaysShort(n, "") + "|^" + this.weekdaysMin(n, ""), this._weekdaysParse[t] = new RegExp(i.replace(".", ""), "i")), this._weekdaysParse[t].test(e)) return t | |
}, | |
_longDateFormat: { | |
LT: "h:mm A", | |
L: "MM/DD/YYYY", | |
LL: "MMMM D YYYY", | |
LLL: "MMMM D YYYY LT", | |
LLLL: "dddd, MMMM D YYYY LT" | |
}, | |
longDateFormat: function(e) { | |
var t = this._longDateFormat[e]; | |
return !t && this._longDateFormat[e.toUpperCase()] && (t = this._longDateFormat[e.toUpperCase()].replace(/MMMM|MM|DD|dddd/g, function(e) { | |
return e.slice(1) | |
}), this._longDateFormat[e] = t), t | |
}, | |
isPM: function(e) { | |
return "p" === (e + "").toLowerCase().charAt(0) | |
}, | |
_meridiemParse: /[ap]\.?m?\.?/i, | |
meridiem: function(e, t, n) { | |
return e > 11 ? n ? "pm" : "PM" : n ? "am" : "AM" | |
}, | |
_calendar: { | |
sameDay: "[Today at] LT", | |
nextDay: "[Tomorrow at] LT", | |
nextWeek: "dddd [at] LT", | |
lastDay: "[Yesterday at] LT", | |
lastWeek: "[Last] dddd [at] LT", | |
sameElse: "L" | |
}, | |
calendar: function(e, t) { | |
var n = this._calendar[e]; | |
return "function" == typeof n ? n.apply(t) : n | |
}, | |
_relativeTime: { | |
future: "in %s", | |
past: "%s ago", | |
s: "a few seconds", | |
m: "a minute", | |
mm: "%d minutes", | |
h: "an hour", | |
hh: "%d hours", | |
d: "a day", | |
dd: "%d days", | |
M: "a month", | |
MM: "%d months", | |
y: "a year", | |
yy: "%d years" | |
}, | |
relativeTime: function(e, t, n, i) { | |
var s = this._relativeTime[n]; | |
return "function" == typeof s ? s(e, t, n, i) : s.replace(/%d/i, e) | |
}, | |
pastFuture: function(e, t) { | |
var n = this._relativeTime[e > 0 ? "future" : "past"]; | |
return "function" == typeof n ? n(t) : n.replace(/%s/i, t) | |
}, | |
ordinal: function(e) { | |
return this._ordinal.replace("%d", e) | |
}, | |
_ordinal: "%d", | |
preparse: function(e) { | |
return e | |
}, | |
postformat: function(e) { | |
return e | |
}, | |
week: function(e) { | |
return N(e, this._week.dow, this._week.doy).week | |
}, | |
_week: { | |
dow: 0, | |
doy: 6 | |
} | |
}), F = function(e, t, n) { | |
return I({ | |
_i: e, | |
_f: t, | |
_l: n, | |
_isUTC: !1 | |
}) | |
}, F.utc = function(e, t, n) { | |
return I({ | |
_useUTC: !0, | |
_isUTC: !0, | |
_l: n, | |
_i: e, | |
_f: t | |
}).utc() | |
}, F.unix = function(e) { | |
return F(1e3 * e) | |
}, F.duration = function(e, t) { | |
var n, i, s = F.isDuration(e), | |
o = "number" == typeof e, | |
a = s ? e._input : o ? {} : e, | |
c = W.exec(e); | |
return o ? t ? a[t] = e : a.milliseconds = e : c && (n = "-" === c[1] ? -1 : 1, a = { | |
y: 0, | |
d: ~~c[2] * n, | |
h: ~~c[3] * n, | |
m: ~~c[4] * n, | |
s: ~~c[5] * n, | |
ms: ~~c[6] * n | |
}), i = new r(a), s && e.hasOwnProperty("_lang") && (i._lang = e._lang), i | |
}, F.version = R, F.defaultFormat = it, F.updateOffset = function() {}, F.lang = function(e, t) { | |
return e ? (e = e.toLowerCase(), e = e.replace("_", "-"), t ? p(e, t) : null === t ? (f(e), e = "en") : Y[e] || g(e), void(F.duration.fn._lang = F.fn._lang = g(e))) : F.fn._lang._abbr | |
}, F.langData = function(e) { | |
return e && e._lang && e._lang._abbr && (e = e._lang._abbr), g(e) | |
}, F.isMoment = function(e) { | |
return e instanceof s | |
}, F.isDuration = function(e) { | |
return e instanceof r | |
}, o(F.fn = s.prototype, { | |
clone: function() { | |
return F(this) | |
}, | |
valueOf: function() { | |
return +this._d + 6e4 * (this._offset || 0) | |
}, | |
unix: function() { | |
return Math.floor(+this / 1e3) | |
}, | |
toString: function() { | |
return this.format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ") | |
}, | |
toDate: function() { | |
return this._offset ? new Date(+this) : this._d | |
}, | |
toISOString: function() { | |
return y(F(this).utc(), "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]") | |
}, | |
toArray: function() { | |
var e = this; | |
return [e.year(), e.month(), e.date(), e.hours(), e.minutes(), e.seconds(), e.milliseconds()] | |
}, | |
isValid: function() { | |
return null == this._isValid && (this._isValid = this._a ? !h(this._a, (this._isUTC ? F.utc(this._a) : F(this._a)).toArray()) : !isNaN(this._d.getTime())), !!this._isValid | |
}, | |
invalidAt: function() { | |
var e, t = this._a, | |
n = (this._isUTC ? F.utc(this._a) : F(this._a)).toArray(); | |
for (e = 6; e >= 0 && t[e] === n[e]; --e); | |
return e | |
}, | |
utc: function() { | |
return this.zone(0) | |
}, | |
local: function() { | |
return this.zone(0), this._isUTC = !1, this | |
}, | |
format: function(e) { | |
var t = y(this, e || F.defaultFormat); | |
return this.lang().postformat(t) | |
}, | |
add: function(e, t) { | |
var n; | |
return n = "string" == typeof e ? F.duration(+t, e) : F.duration(e, t), l(this, n, 1), this | |
}, | |
subtract: function(e, t) { | |
var n; | |
return n = "string" == typeof e ? F.duration(+t, e) : F.duration(e, t), l(this, n, -1), this | |
}, | |
diff: function(e, t, n) { | |
var i, s, r = this._isUTC ? F(e).zone(this._offset || 0) : F(e).local(), | |
o = 6e4 * (this.zone() - r.zone()); | |
return t = d(t), "year" === t || "month" === t ? (i = 432e5 * (this.daysInMonth() + r.daysInMonth()), s = 12 * (this.year() - r.year()) + (this.month() - r.month()), s += (this - F(this).startOf("month") - (r - F(r).startOf("month"))) / i, s -= 6e4 * (this.zone() - F(this).startOf("month").zone() - (r.zone() - F(r).startOf("month").zone())) / i, "year" === t && (s /= 12)) : (i = this - r, s = "second" === t ? i / 1e3 : "minute" === t ? i / 6e4 : "hour" === t ? i / 36e5 : "day" === t ? (i - o) / 864e5 : "week" === t ? (i - o) / 6048e5 : i), n ? s : a(s) | |
}, | |
from: function(e, t) { | |
return F.duration(this.diff(e)).lang(this.lang()._abbr).humanize(!t) | |
}, | |
fromNow: function(e) { | |
return this.from(F(), e) | |
}, | |
calendar: function() { | |
var e = this.diff(F().zone(this.zone()).startOf("day"), "days", !0), | |
t = -6 > e ? "sameElse" : -1 > e ? "lastWeek" : 0 > e ? "lastDay" : 1 > e ? "sameDay" : 2 > e ? "nextDay" : 7 > e ? "nextWeek" : "sameElse"; | |
return this.format(this.lang().calendar(t, this)) | |
}, | |
isLeapYear: function() { | |
var e = this.year(); | |
return e % 4 === 0 && e % 100 !== 0 || e % 400 === 0 | |
}, | |
isDST: function() { | |
return this.zone() < this.clone().month(0).zone() || this.zone() < this.clone().month(5).zone() | |
}, | |
day: function(e) { | |
var t = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); | |
return null != e ? "string" == typeof e && (e = this.lang().weekdaysParse(e), "number" != typeof e) ? this : this.add({ | |
d: e - t | |
}) : t | |
}, | |
month: function(e) { | |
var t, n = this._isUTC ? "UTC" : ""; | |
return null != e ? "string" == typeof e && (e = this.lang().monthsParse(e), "number" != typeof e) ? this : (t = this.date(), this.date(1), this._d["set" + n + "Month"](e), this.date(Math.min(t, this.daysInMonth())), F.updateOffset(this), this) : this._d["get" + n + "Month"]() | |
}, | |
startOf: function(e) { | |
switch (e = d(e)) { | |
case "year": | |
this.month(0); | |
case "month": | |
this.date(1); | |
case "week": | |
case "isoweek": | |
case "day": | |
this.hours(0); | |
case "hour": | |
this.minutes(0); | |
case "minute": | |
this.seconds(0); | |
case "second": | |
this.milliseconds(0) | |
} | |
return "week" === e ? this.weekday(0) : "isoweek" === e && this.isoWeekday(1), this | |
}, | |
endOf: function(e) { | |
return e = d(e), this.startOf(e).add("isoweek" === e ? "week" : e, 1).subtract("ms", 1) | |
}, | |
isAfter: function(e, t) { | |
return t = "undefined" != typeof t ? t : "millisecond", +this.clone().startOf(t) > +F(e).startOf(t) | |
}, | |
isBefore: function(e, t) { | |
return t = "undefined" != typeof t ? t : "millisecond", +this.clone().startOf(t) < +F(e).startOf(t) | |
}, | |
isSame: function(e, t) { | |
return t = "undefined" != typeof t ? t : "millisecond", +this.clone().startOf(t) === +F(e).startOf(t) | |
}, | |
min: function(e) { | |
return e = F.apply(null, arguments), this > e ? this : e | |
}, | |
max: function(e) { | |
return e = F.apply(null, arguments), e > this ? this : e | |
}, | |
zone: function(e) { | |
var t = this._offset || 0; | |
return null == e ? this._isUTC ? t : this._d.getTimezoneOffset() : ("string" == typeof e && (e = w(e)), Math.abs(e) < 16 && (e = 60 * e), this._offset = e, this._isUTC = !0, t !== e && l(this, F.duration(t - e, "m"), 1, !0), this) | |
}, | |
zoneAbbr: function() { | |
return this._isUTC ? "UTC" : "" | |
}, | |
zoneName: function() { | |
return this._isUTC ? "Coordinated Universal Time" : "" | |
}, | |
hasAlignedHourOffset: function(e) { | |
return e = e ? F(e).zone() : 0, (this.zone() - e) % 60 === 0 | |
}, | |
daysInMonth: function() { | |
return F.utc([this.year(), this.month() + 1, 0]).date() | |
}, | |
dayOfYear: function(e) { | |
var t = Q((F(this).startOf("day") - F(this).startOf("year")) / 864e5) + 1; | |
return null == e ? t : this.add("d", e - t) | |
}, | |
weekYear: function(e) { | |
var t = N(this, this.lang()._week.dow, this.lang()._week.doy).year; | |
return null == e ? t : this.add("y", e - t) | |
}, | |
isoWeekYear: function(e) { | |
var t = N(this, 1, 4).year; | |
return null == e ? t : this.add("y", e - t) | |
}, | |
week: function(e) { | |
var t = this.lang().week(this); | |
return null == e ? t : this.add("d", 7 * (e - t)) | |
}, | |
isoWeek: function(e) { | |
var t = N(this, 1, 4).week; | |
return null == e ? t : this.add("d", 7 * (e - t)) | |
}, | |
weekday: function(e) { | |
var t = (this._d.getDay() + 7 - this.lang()._week.dow) % 7; | |
return null == e ? t : this.add("d", e - t) | |
}, | |
isoWeekday: function(e) { | |
return null == e ? this.day() || 7 : this.day(this.day() % 7 ? e : e - 7) | |
}, | |
get: function(e) { | |
return e = d(e), this[e.toLowerCase()]() | |
}, | |
set: function(e, t) { | |
e = d(e), this[e.toLowerCase()](t) | |
}, | |
lang: function(t) { | |
return t === e ? this._lang : (this._lang = g(t), this) | |
} | |
}), H = 0; H < ot.length; H++) j(ot[H].toLowerCase().replace(/s$/, ""), ot[H]); | |
j("year", "FullYear"), F.fn.days = F.fn.day, F.fn.months = F.fn.month, F.fn.weeks = F.fn.week, F.fn.isoWeeks = F.fn.isoWeek, F.fn.toJSON = F.fn.toISOString, o(F.duration.fn = r.prototype, { | |
_bubble: function() { | |
var e, t, n, i, s = this._milliseconds, | |
r = this._days, | |
o = this._months, | |
c = this._data; | |
c.milliseconds = s % 1e3, e = a(s / 1e3), c.seconds = e % 60, t = a(e / 60), c.minutes = t % 60, n = a(t / 60), c.hours = n % 24, r += a(n / 24), c.days = r % 30, o += a(r / 30), c.months = o % 12, i = a(o / 12), c.years = i | |
}, | |
weeks: function() { | |
return a(this.days() / 7) | |
}, | |
valueOf: function() { | |
return this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * ~~(this._months / 12) | |
}, | |
humanize: function(e) { | |
var t = +this, | |
n = M(t, !e, this.lang()); | |
return e && (n = this.lang().pastFuture(t, n)), this.lang().postformat(n) | |
}, | |
add: function(e, t) { | |
var n = F.duration(e, t); | |
return this._milliseconds += n._milliseconds, this._days += n._days, this._months += n._months, this._bubble(), this | |
}, | |
subtract: function(e, t) { | |
var n = F.duration(e, t); | |
return this._milliseconds -= n._milliseconds, this._days -= n._days, this._months -= n._months, this._bubble(), this | |
}, | |
get: function(e) { | |
return e = d(e), this[e.toLowerCase() + "s"]() | |
}, | |
as: function(e) { | |
return e = d(e), this["as" + e.charAt(0).toUpperCase() + e.slice(1) + "s"]() | |
}, | |
lang: F.fn.lang | |
}); | |
for (H in at) at.hasOwnProperty(H) && (O(H, at[H]), L(H.toLowerCase())); | |
O("Weeks", 6048e5), F.duration.fn.asMonths = function() { | |
return (+this - 31536e6 * this.years()) / 2592e6 + 12 * this.years() | |
}, F.lang("en", { | |
ordinal: function(e) { | |
var t = e % 10, | |
n = 1 === ~~(e % 100 / 10) ? "th" : 1 === t ? "st" : 2 === t ? "nd" : 3 === t ? "rd" : "th"; | |
return e + n | |
} | |
}), U && (module.exports = F), "undefined" == typeof ender && (this.moment = F), "function" == typeof define && define.amd && define("moment", [], function() { | |
return F | |
}) | |
}.call(this), define("templates/helpers/timeAgo", ["handlebars", "moment"], function(e, t) { | |
e.registerHelper("timeAgo", function(e) { | |
return t(e).fromNow() | |
}) | |
}), define("hbs!src/templates/assetlightbox", ["hbs", "handlebars", "templates/helpers/timeAgo"], function(e, t) { | |
var n = t.template(function(e, t, n, i, s) { | |
function r(e, t) { | |
var i, s, r = ""; | |
return r += '\n <video id="chute-video-', s = n.shortcut, s ? i = s.call(e, { | |
hash: {} | |
}) : (i = e.shortcut, i = typeof i === M ? i() : i), r += N(i) + '" class="video-js vjs-default-skin chute-loaded"\n controls preload="auto" width="100%" height="100%"\n poster="', s = n.asset_url, s ? i = s.call(e, { | |
hash: {} | |
}) : (i = e.asset_url, i = typeof i === M ? i() : i), r += N(i) + '">\n ', i = e.isYoutube, i = n.unless.call(e, i, { | |
hash: {}, | |
inverse: I.noop, | |
fn: I.program(2, o, t) | |
}), (i || 0 === i) && (r += i), r += "\n </video>\n " | |
} | |
function o(e) { | |
var t, i, s = ""; | |
return s += '\n <source src="', i = n.video_url, i ? t = i.call(e, { | |
hash: {} | |
}) : (t = e.video_url, t = typeof t === M ? t() : t), s += N(t) + "\" type='video/mp4' />\n " | |
} | |
function a(e) { | |
var t, i, s = ""; | |
return s += '\n <img src="', i = n.asset_url, i ? t = i.call(e, { | |
hash: {} | |
}) : (t = e.asset_url, t = typeof t === M ? t() : t), s += N(t) + '" class="chute-asset-thumbnail chute-loaded" />\n ' | |
} | |
function c(e, t) { | |
var i, s = ""; | |
return s += "\n ", i = e.source, i = null == i || i === !1 ? i : i.import_url, i = n["if"].call(e, i, { | |
hash: {}, | |
inverse: I.program(9, u, t), | |
fn: I.program(7, l, t) | |
}), (i || 0 === i) && (s += i), s += "\n " | |
} | |
function l(e) { | |
var t, i, s = ""; | |
return s += '\n <a href="', t = e.source, t = null == t || t === !1 ? t : t.import_url, t = typeof t === M ? t() : t, s += N(t) + '" target="_blank">\n <img src="//avatars.io/', i = n.service, i ? t = i.call(e, { | |
hash: {} | |
}) : (t = e.service, t = typeof t === M ? t() : t), s += N(t) + "/", i = n.username, i ? t = i.call(e, { | |
hash: {} | |
}) : (t = e.username, t = typeof t === M ? t() : t), s += N(t) + '" class="chute-user-avatar" />\n </a>\n ' | |
} | |
function u(e) { | |
var t, i, s = ""; | |
return s += '\n <img src="//avatars.io/', i = n.service, i ? t = i.call(e, { | |
hash: {} | |
}) : (t = e.service, t = typeof t === M ? t() : t), s += N(t) + "/", i = n.username, i ? t = i.call(e, { | |
hash: {} | |
}) : (t = e.username, t = typeof t === M ? t() : t), s += N(t) + '" class="chute-user-avatar" />\n ' | |
} | |
function h(e, t) { | |
var i, s = ""; | |
return s += "\n ", i = e.source, i = null == i || i === !1 ? i : i.import_url, i = n["if"].call(e, i, { | |
hash: {}, | |
inverse: I.program(17, g, t), | |
fn: I.program(12, d, t) | |
}), (i || 0 === i) && (s += i), s += "\n " | |
} | |
function d(e, t) { | |
var i, s = ""; | |
return s += '\n <a href="', i = e.source, i = null == i || i === !1 ? i : i.import_url, i = typeof i === M ? i() : i, s += N(i) + '"\n target="_blank"\n class="chute-user-username">\n\n ', i = e.username, i = n["if"].call(e, i, { | |
hash: {}, | |
inverse: I.program(15, f, t), | |
fn: I.program(13, p, t) | |
}), (i || 0 === i) && (s += i), s += "\n </a>\n " | |
} | |
function p(e) { | |
var t, i; | |
return i = n.username, i ? t = i.call(e, { | |
hash: {} | |
}) : (t = e.username, t = typeof t === M ? t() : t), N(t) | |
} | |
function f() { | |
return "Anonymous" | |
} | |
function g(e, t) { | |
var i, s = ""; | |
return s += '\n <span class="chute-user-username">\n ', i = e.username, i = n["if"].call(e, i, { | |
hash: {}, | |
inverse: I.program(20, m, t), | |
fn: I.program(18, A, t) | |
}), (i || 0 === i) && (s += i), s += "\n </span>\n " | |
} | |
function A(e) { | |
var t, i; | |
return i = n.username, i ? t = i.call(e, { | |
hash: {} | |
}) : (t = e.username, t = typeof t === M ? t() : t), N(t) | |
} | |
function m() { | |
return "Anonymous" | |
} | |
function y(e) { | |
var t, i, s = ""; | |
return s += '\n <p class="chute-asset-timeago">', t = e.created_at, i = n.timeAgo, t = i ? i.call(e, t, { | |
hash: {} | |
}) : j.call(e, "timeAgo", t, { | |
hash: {} | |
}), s += N(t) + "</p>\n " | |
} | |
function v(e, t) { | |
var i, s, r = ""; | |
return r += '\n <div class="chute-heart-widget ', i = e.hearted, i = n["if"].call(e, i, { | |
hash: {}, | |
inverse: I.noop, | |
fn: I.program(25, b, t) | |
}), (i || 0 === i) && (r += i), r += '">\n <div class="chute-table">\n <div class="chute-table-vcenter">\n <i class="icon-ok-circled2"/>\n <p class="chute-inactive chute-heart-count">', s = n.hearts, s ? i = s.call(e, { | |
hash: {} | |
}) : (i = e.hearts, i = typeof i === M ? i() : i), r += N(i) + '</p>\n <p class="chute-active">VOTE</p>\n </div>\n </div>\n </div>\n ' | |
} | |
function b() { | |
return "chute-hearted" | |
} | |
function w(e, t) { | |
var i, s = ""; | |
return s += "\n ", i = e.enable, i = null == i || i === !1 ? i : i.caption, i = n["if"].call(e, i, { | |
hash: {}, | |
inverse: I.noop, | |
fn: I.program(28, x, t) | |
}), (i || 0 === i) && (s += i), s += "\n " | |
} | |
function x(e) { | |
var t, i, s = ""; | |
return s += '\n <p class="chute-asset-caption">', i = n.caption, i ? t = i.call(e, { | |
hash: {} | |
}) : (t = e.caption, t = typeof t === M ? t() : t), s += N(t) + "</p>\n " | |
} | |
function C(e, t) { | |
var i, s = ""; | |
return s += '\n <ul class="chute-sharing" data-chute-length="', i = e.enable, i = null == i || i === !1 ? i : i.sharing, i = null == i || i === !1 ? i : i.length, i = typeof i === M ? i() : i, s += N(i) + '">\n ', i = e.enable, i = null == i || i === !1 ? i : i.sharing, i = null == i || i === !1 ? i : i.facebook, i = n["if"].call(e, i, { | |
hash: {}, | |
inverse: I.noop, | |
fn: I.program(31, E, t) | |
}), (i || 0 === i) && (s += i), s += "\n ", i = e.enable, i = null == i || i === !1 ? i : i.sharing, i = null == i || i === !1 ? i : i.twitter, i = n["if"].call(e, i, { | |
hash: {}, | |
inverse: I.noop, | |
fn: I.program(33, k, t) | |
}), (i || 0 === i) && (s += i), s += "\n ", i = e.enable, i = null == i || i === !1 ? i : i.sharing, i = null == i || i === !1 ? i : i.tumblr, i = n["if"].call(e, i, { | |
hash: {}, | |
inverse: I.noop, | |
fn: I.program(35, S, t) | |
}), (i || 0 === i) && (s += i), s += "\n ", i = e.enable, i = null == i || i === !1 ? i : i.sharing, i = null == i || i === !1 ? i : i.pinterest, i = n["if"].call(e, i, { | |
hash: {}, | |
inverse: I.noop, | |
fn: I.program(37, B, t) | |
}), (i || 0 === i) && (s += i), s += "\n ", i = e.enable, i = null == i || i === !1 ? i : i.sharing, i = null == i || i === !1 ? i : i.googleplus, i = n["if"].call(e, i, { | |
hash: {}, | |
inverse: I.noop, | |
fn: I.program(39, _, t) | |
}), (i || 0 === i) && (s += i), s += "\n </ul>\n" | |
} | |
function E() { | |
return '\n <li class="facebook" data-chute-shareto="facebook">\n <i class="icon-facebook"/>\n </li>\n ' | |
} | |
function k() { | |
return '\n <li class="twitter" data-chute-shareto="twitter">\n <i class="icon-twitter"/>\n </li>\n ' | |
} | |
function S() { | |
return '\n <li class="tumblr" data-chute-shareto="tumblr">\n <i class="icon-tumblr"/>\n </li>\n ' | |
} | |
function B() { | |
return '\n <li class="pinterest" data-chute-shareto="pinterest">\n <i class="icon-pinterest-circled"/>\n </li>\n ' | |
} | |
function _() { | |
return '\n <li class="googleplus" data-chute-shareto="googleplus">\n <i class="icon-gplus"/>\n </li>\n ' | |
} | |
n = n || e.helpers; | |
var T, D = "", | |
M = "function", | |
N = this.escapeExpression, | |
I = this, | |
j = n.helperMissing; | |
return D += '<div class="chute-asset chute-component-loading">\n <i class="icon-cancel chute-close"/>\n <div class="chute-previous">\n <i class="icon-angle-left"/>\n </div>\n <div class="chute-next">\n <i class="icon-angle-right"/>\n </div>\n ', T = t.video_url, T = n["if"].call(t, T, { | |
hash: {}, | |
inverse: I.program(4, a, s), | |
fn: I.program(1, r, s) | |
}), (T || 0 === T) && (D += T), D += '\n</div>\n\n<div class="chute-detail">\n <div class="chute-detail-header">\n ', T = t.enable, T = null == T || T === !1 ? T : T.avatar, T = n["if"].call(t, T, { | |
hash: {}, | |
inverse: I.noop, | |
fn: I.program(6, c, s) | |
}), (T || 0 === T) && (D += T), D += '\n\n <div class="chute-header-contents">\n <div class="chute-table">\n <div class="chute-table-vcenter">\n ', T = t.enable, T = null == T || T === !1 ? T : T.username, T = n["if"].call(t, T, { | |
hash: {}, | |
inverse: I.noop, | |
fn: I.program(11, h, s) | |
}), (T || 0 === T) && (D += T), D += "\n ", T = t.enable, T = null == T || T === !1 ? T : T.time, T = n["if"].call(t, T, { | |
hash: {}, | |
inverse: I.noop, | |
fn: I.program(22, y, s) | |
}), (T || 0 === T) && (D += T), D += "\n </div>\n </div>\n </div>\n ", T = t.enable, T = null == T || T === !1 ? T : T.hearting, T = n["if"].call(t, T, { | |
hash: {}, | |
inverse: I.noop, | |
fn: I.program(24, v, s) | |
}), (T || 0 === T) && (D += T), D += '\n </div>\n\n <div class="chute-detail-footer">\n ', T = t.caption, T = n["if"].call(t, T, { | |
hash: {}, | |
inverse: I.noop, | |
fn: I.program(27, w, s) | |
}), (T || 0 === T) && (D += T), D += "\n </div>\n</div>\n\n", T = t.enable, T = null == T || T === !1 ? T : T.sharing, T = n["if"].call(t, T, { | |
hash: {}, | |
inverse: I.noop, | |
fn: I.program(30, C, s) | |
}), (T || 0 === T) && (D += T), D += "\n" | |
}); | |
return t.registerPartial("src_templates_assetlightbox", n), n | |
}), define("src/js/lightboxview", ["components/assetlightboxview", "hbs!src/templates/assetlightbox"], function(e, t) { | |
return e.extend({ | |
template: t | |
}) | |
}), define("src/js/itemview", ["core/assetview", "hbs!src/templates/asset", "src/js/lightboxview"], function(e, t, n) { | |
return e.extend({ | |
template: t, | |
lightboxViewType: n, | |
serializeData: function() { | |
var t = e.prototype.serializeData.apply(this, arguments); | |
return t.width = this.options.width, this.options.width && this.options.height ? t.asset_url = t.url + "/" + this.options.width + "x" + this.options.height : this.options.width && (t.asset_url = t.url + "/w/" + this.options.width), t | |
} | |
}) | |
}), define("src/js/carouselview", ["components/carousel", "src/js/itemview"], function(e, t) { | |
return e.extend({ | |
itemViewType: t | |
}) | |
}), define("templates/helpers/divideByTwo", ["handlebars"], function(e) { | |
e.registerHelper("divideByTwo", function(e) { | |
return "string" == typeof e && (e = parseInt(e, 10)), e / 2 | |
}) | |
}), define("src/templates/helpers/divideByFour", ["handlebars"], function(e) { | |
e.registerHelper("divideByFour", function(e) { | |
return "string" == typeof e && (e = parseInt(e, 10)), e / 4 | |
}) | |
}), define("src/templates/helpers/cssSize", ["handlebars"], function(e) { | |
e.registerHelper("cssSize", function(e) { | |
return /^\d+$/.test(e) ? e + "px" : e | |
}) | |
}), define("hbs!src/templates/main.css", ["hbs", "handlebars", "templates/helpers/divideByTwo", "src/templates/helpers/divideByFour", "src/templates/helpers/cssSize"], function(e, t) { | |
var n = t.template(function(e, t, n, i, s) { | |
function r() { | |
return "*/\n height: 45px;\n /*!" | |
} | |
function o(e, t) { | |
var i, s = ""; | |
return s += "*/\n /*!", i = e.itemViewOptions, i = null == i || i === !1 ? i : i.lightboxOptions, i = null == i || i === !1 ? i : i.enable, i = null == i || i === !1 ? i : i.hearting, i = n["if"].call(e, i, { | |
hash: {}, | |
inverse: A.noop, | |
fn: A.program(4, a, t) | |
}), (i || 0 === i) && (s += i), s += "*/\n /*!" | |
} | |
function a() { | |
return "*/\n height: 45px;\n /*!" | |
} | |
function c() { | |
return "*/\n position: absolute;\n /*!" | |
} | |
function l(e, t) { | |
var i, s = ""; | |
return s += "*/\n /*!", i = e.itemViewOptions, i = null == i || i === !1 ? i : i.lightboxOptions, i = null == i || i === !1 ? i : i.enable, i = null == i || i === !1 ? i : i.hearting, i = n["if"].call(e, i, { | |
hash: {}, | |
inverse: A.noop, | |
fn: A.program(9, u, t) | |
}), (i || 0 === i) && (s += i), s += "*/\n /*!" | |
} | |
function u() { | |
return "*/\n position: absolute;\n /*!" | |
} | |
function h() { | |
return "*/\n left: 55px;\n /*!" | |
} | |
function d() { | |
return "*/\n right: 36px;\n /*!" | |
} | |
n = n || e.helpers; | |
var p, f, g = "", | |
A = this, | |
m = "function", | |
y = this.escapeExpression, | |
v = n.helperMissing; | |
return g += '@charset "UTF-8";\n@import "//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,400,300,600,700";\n@font-face {\n font-family: \'chute-fontello\';\n src: url("data:application/octet-stream;base64,d09GRgABAAAAABFwAA4AAAAAG6gAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABRAAAAEQAAABWPihIh2NtYXAAAAGIAAAAOgAAAUrQHBm3Y3Z0IAAAAcQAAAAUAAAAHAbF/wZmcGdtAAAB2AAABPkAAAmRigp4O2dhc3AAAAbUAAAACAAAAAgAAAAQZ2x5ZgAABtwAAAdzAAAKcD03pvloZWFkAAAOUAAAADUAAAA2AG9lMmhoZWEAAA6IAAAAHgAAACQHlwNXaG10eAAADqgAAAAnAAAANCZ9AABsb2NhAAAO0AAAABwAAAAcEBgRrG1heHAAAA7sAAAAIAAAACABKwo0bmFtZQAADwwAAAGGAAADFUvwRL9wb3N0AAAQlAAAAIQAAACxmfVG7HByZXAAABEYAAAAVgAAAFaSoZr/eJxjYGT6xjiBgZWBg6mKaQ8DA0MPhGZ8wGDIyMTAwMTAysyAFQSkuaYwOLxgeMHNHPQ/iyGK2ZNhGlCYESQHABF5DCx4nGNgYGBmgGAZBkYGEHAB8hjBfBYGDSDNBqQZGZgYGF5w//8PUvCCAURLMELVAwEjG8OIBwBwBga5AAB4nGNgQANGDEbMnv+zQBgAEXYDz3icnVXZdtNWFJU8ZHASOmSgoA7X3DhQ68qEKRgwaSrFdiEdHAitBB2kDHTkncc+62uOQrtWH/m07n09JLR0rbYsls++R1tn2DrnRhwjKn0aiGvUoZKXA6msPZZK90lc13Uvj5UMBnFdthJPSZuonSRKat3sUC7xWOsqWSdYJ+PlIFZPVZ5noAziFB5lSUQbRBuplyZJ4onjJ4kWZxAfJUkgJaMQp9LIUEI1GsRS1aFM6dCr1xNx00DKRqMedVhU90PFJ8c1p9SsA0YqVznCFevVRr4bpwMve5DEOsGzrYcxHnisfpQqkIqR6cg/dkpOlIaBVHHUoVbi6DCTX/eRTCrNQKaMYkWl7oG43f102xYxPXQ6vi5KlUaqurnOKJrt0fGogygP2cbppNzQ2fbw5RlTVKtdcbPtQGYNXErJbHSfRAAdJlLj6QFONZwCqRn1R8XZ588BEslclKo8VTKHegOZMzt7cTHtbiersnCknwcyb3Z2452HQ6dXh3/R+hdM4cxHj+Jifj5C+lBqfiJOJKVGWMzyp4YfcVcgQrkxiAsXyuBThDl0RdrZZl3jtTH2hs/5SqlhPQna6KP4fgr9TiQrHGdRo/VInM1j13Wt3GdQS7W7Fzsyr0OVIu7vCwuuM+eEYZ4WC1VfnvneBTT/Bohn/EDeNIVL+5YpSrRvm6JMu2iKCu0SVKVdNsUU7YoppmnPmmKG9h1TzNKeMzLj/8vc55H7HN7xkJv2XeSmfQ+5ad9HbtoPkJtWITdtHblpLyA3rUZu2lWjOnYEGgZpF1IVQdA0svph3Fab9UDWjDR8aWDyLmLI+upER521tcofxX914gsHcmmip7siF5viLq/bFj483e6rj5pG3bDV+MaR8jAeRnocmtBZ+c3hv+1N3S6a7jKqMugBFUwKwABl7UAC0zrbCaT1mqf48gdgXIZ4zkpDtVSfO4am7+V5X/exOfG+x+3GLrdcd3kJWdYNcmP28N9SZKrrH+UtrVQnR6wrJ49VaxhDKrwour6SlHu0tRu/KKmy8l6U1srnk5CbPYMbQlu27mGwI0xpyiUeXlOlKD3UUo6yQyxvKco84JSLC1qGxLgOdQ9qa8TpoXoYGwshhqG0vRBwSCldFd+0ynfxHqtr2Oj4xRXh6XpyEhGf4ir7UfBU10b96A7avGbdMoMpVaqn+4xPsa/b9lFZaaSOsxe3VAfXNOsaORXTT+Rr4HRvOGjdAz1UfDRBI1U1x+jGKGM0ljXl3wR0MVZ+w2jVYvs93E+dpFWsuUuY7JsT9+C0u/0q+7WcW0bW/dcGvW3kip8jMb8tCvw7B2K3ZA3UO5OBGAvIWdAYxhYmdxiug23EbfY/Jqf/34aFRXJXOxq7eerD1ZNRJXfZ8rjLTXZZ16M2R9VOGvsIjS0PN+bY4XIstsRgQbb+wf8x7gF3aVEC4NDIZZiI2nShnurh6h6rsW04VxIBds2x43QAegAuQd8cu9bzCYD13CPnLsB9cgh2yCH4lByCz8i5BfA5OQRfkEMwIIdgl5w7AA/IIXhIDsEeOQSPyNkE+JIcgq/IIYjJIUjIuQ3wmByCJ+QQfE0OwTdGrk5k/pYH2QD6zqKbQKmdGhzaOGRGrk3Y+zxY9oFFZB9aROqRkesT6lMeLPV7i0j9wSJSfzRyY0L9iQdL/dkiUn+xiNRnxpeZIymvDp7zjg7+BJfqrV4AAAAAAQAB//8AD3icrZZdbBxXFcfPuffOnfWM99Mzs7Yz3ng/vLv+2rizs7u211mvN1vHcZw4za7SGFvrEKWL2TYhKQFCgCChyg1RSfoE6ksLKEWoElIqxAtCqIKqghTxlBdIXvKAlFIJJFoJIRGHM3bbVCEPgPDHnZk7d/7n3PPxmwEEePAmK3MdbChV3T5k6EfOAig4rwEgdAAVZBzZCnAh+DJwLpoguFgwU0PhcEiaoz15M28mTcOKWnmnZAYwmcixQjhZqLA/Xnz33aBlD81VJ48Vyiu13pazMMr1P2zeWRr2h0de3GUMTM3M4PhXQ3ufBs+Xv/PL7NewBw5VF3NjI4MMpCL7UShWhHGhIzJR86Y6oAil47nRAc54BxiyjieAy4AITc/zhZRlJcOJrGqNolRNI8AziYznYQ4/OuxFK5pDtxTDaLrgFktOtFiSapFfHiqMHLvw489+7xs9vZdOltciPcHe3tmj6bGhsb76W2eVzuJyYW/BKLvsTDETPfDy5qkqe4ofYvUSk/6TNWayvsMnRhqnFNM4uIFT3YPVlATY3t+bfI1ivQgL1ScrRSaULkQxJxkgRVsoqAjcAAmMS7YKnDbJldWH22p4GvsX9k9PTuRGsul0Uo2MouHFO1OcxRjmnQpm3BxdB7jqpWMWi6Vixttb3rGihlQT6VKFldy0mpCmEVUlbb/gVtCJIV95/p3zlZm4tlufTu7rzGD960fK7XnXwrGxEPnBeNfA+fVmCw+XKaTC0ljMTk4EShr/4tXzv/rLWxew9aW3z0fc7JetwaXNZvXMQsKdX0xPH4+okbBf+PWE07y4dmD9BZxI9tQmenalsfJE1n4vM5O/9S168vzbO/HBn/ADYMJYddhEkFjzMvusQOCUe8AVkFJpgKJosh5Phukn5KU3rybD9FvI007LaNL+MYg48HL4m79cXz9x5tKy1d+NjNmvbbn4u9fW2xuv+iKaTSkBQTY7/AeUkwHIwTNwDuXPVtHHsXbwhnbkePVJoCQJpmwA1306922AT9V9ahsUv1AOhYLM342a7tdWAl1MgE41ugIqpUmFNcqYbJC/uqzvOnhDJ7HKIyLUWH7Blv9jlf+TNysr1cF2u32ufe7sF86cfu7Zzuc3PvfMqdZas7EwH45k+obHw+bokLsHc2om7dWSacRY1Kkw7uYYVY5qxHjUKXKKOnWO4dVajEpdldT3vOCWKrxEJUd1RhPpEvVVMa8QH5IFL0F5E9/jCgvJXl+/1i+0SGy6MhHLVudT8Rl3sB5JTWbcSQz0ZnO7i87ih0sHsyPYn0r3YiSWStnGcvO78XrdTZiR+bWjI0kmBLPCjQvYOVRwWf3awrVrC3FdN7qMgOEzpMHQZww6yfRMIoSBmMuU+FLd4UvF/unpiX5Wx7nxvs88MVxLpQatgN1vJ7LF+Er9QHfvyGQ2MZxy7W7ck1IDMsLZc83DFyP6Vc/AtWs7vfwPfo9YtRuy1aE+H6MKpWIlUBIi6T6HVWAMG0BE3T9UKKREzyiGt4O0B01DJuOJdCFMjRl3rAGkEDlRi9+zVDWo3W3Vtr6yr9Xah9+ute5qQVW12NX73492ce3u2vb8ZW9cu6vxLtjhCg1L7Cnqm4Fqv46U69qj1LANFiZYqCjJftqdxYw3FJ0oWrgkt/6pBKQt5e3bUtpKSKCQOK1604otA/L2nZ3bdP2JvdbH9vhj7UX7tu0FMWrRIBMZMloie7vJXusjOwESlJLoHhK2ZAlVuXObjNmKQuYDNO+tIVP8wX3i5jr1qAFx6tJqda9/xyaFmzMipocHaFM3cxBt4idnkq8STxWxDEJ4wBDKftMye41oxOOF+nEQPH9K204ZUQJngMdYBUuEVHqDbWORfed93dav6/qUFtOOvqLb3ZN6/eiVH710hDUvv7F57GvPv3PvN2fkxV98+PNL+NL7Oi219Sldp6X6pB6bbFxpsiNXf3iVll9pbGPuz5+w7q/sFtuEFAxVE4m+kCoIdTWqHwC2TAcGDQomg/2GbRhUPEPbYdzz0PfMIxvwQs1uBZdCY6Hr12lYCnnH0MPrYPD69eBZyzt5/fXgvy8M5rwFABTzBy/w3/MZ0CENDpRhFuvVYD8qWhx9CqsRS3Hu4I0QIW0Kuugl3HUCuCZ4CzRFaEq7GxUCk+Jb9RN5JFMltYLXB8cpGdCg+gRNeEy0SGD60wJa+79U2E0K5R0FvvG/SFTnHv+0d190gVh9nAx6TU7N3fT0FlaIpyk3n80gzFb2zkyW8mW3nBvLOFknZvdaQb+qgI56IEifIaBaEC1CKQ09Zpy+Q6jY6I/ezTQSS036DyAGUKUTmsqhSt8nRccyJH1kJfFvN7c+oO7w37yJfkXZ+mBgq1xtMqw6YjYXHQn1PD114CQbKyIub93J1xHr+fw+xH355Pj4/Pi4dvo0n6Gnbn5K5f4isuZccdk/XsZIyJlFdnJRRg47lWM4TI87noiTr/8WPYH5cZwt7LDvDR7mPVQf8qcqw+xoF8ptmhFNDC7u7/JHIn72Jz8e2jqlakFeDHT76MyAfwECYaDvAHicY2BkYGAA4ltLll6M57f5ysDN/AIownBu65q3ELpk7f+//7OYXzB7ArkcDEwgUQC90Q/yAAAAeJxjYGRgYA76n8UQxfyCgeH/dyAJFEEBvACQrAX0AAB4nGN+wcDAZM3AwLwAiCMZGBjXQNlAccZUCAaJMwtCxEA0AMWPBp4AAAAAAABGALYBRgGAApwC4gMaA1IDvAQKBRoFOAABAAAADQByAAUAAAAAAAIAIgAvAG4AAACICZEAAAAAeJx9kM1OwkAUhU/50QgJiZq4cjErhRjKX9y4MiGBxJ0siNtSpj+kdHA6kLBy7VO49xWMr+KzeCijEY20mel3zz13eucCOMEHHGyfa64tO6gx2nIBh+hbLlK/s1wiP1guo4rA8gH1R8sVXOHJchWneOUJTumI0Qzvlh2cO5eWC6g5fctF6veWS+S55TLOnGfLB9RfLFcwdt4sV3FROO6rxVrHYWREvd8Q3XanJyZroSjFqZcIb2kipTNxKwKVGpkkyvXV3I+WRja/lJEMl4mnd8XdaCx1FqtUdNz2bmIoU6k9I6ebv2arsGtMIAKt5mJgHWKh1Uz6xo2MWdy0Wj/74MgVFlhDI0aICAYCdaoNfrtoo4MeaUKHoHPripHCQ0LFw5IVUZ7JGN9yBYxSqpKOhOzC5z7nHuVuieYfz4gUMpvwRL3XuS83Jm36iHNdsHeXN9hXMSSleZWXq9Pvu2ZYsaMuVcOqza10fguBwa8zBOe3yc2o+NTdfIqG6g1afP+Zxyeyh5feAAB4nG2Lyw6CMBAAd5GXRQ5+CBd+yJRlKQ0Lbcqi8e81Id6cy8xlIIMTA/9pATDDC+ZYYIkV1nhFgw3esC31WAdJlb68Kqd79NtXvGtHPpHwWE+WeAhhKVyUY6+ffuRAdm3s5oS75N2s5mzhSZuw/M6+JLsRi6H5UH5IcCGPYt8AHzRlKqNLuADIUlixAQGOWbkIAAgAYyCwASNEsAMjcLIEKAlFUkSyCgIHKrEGAUSxJAGIUViwQIhYsQYDRLEmAYhRWLgEAIhYsQYBRFlZWVm4Af+FsASNsQUARAAA") format("woff"), url("data:application/octet-stream;base64,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") format("truetype");\n}\n\n/* line 6, ../../components/displays/src/scss/fontello-embedded.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + "\"] {\n /* 'î Š' */\n /* 'î ˆ' */\n /* 'î ‰' */\n /* 'î ‡' */\n /* 'î †' */\n /* 'î …' */\n /* 'î ƒ' */\n /* 'î „' */\n /* 'î ‚' */\n /* 'î €' */\n /* 'î ' */\n /* 'î ‹' */\n}\n/* line 7, ../../components/displays/src/scss/fontello-embedded.scss */\n[data-chute-component=\"", f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] [class^="icon-"]:before, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] [class*=" icon-"]:before {\n font-family: "chute-fontello";\n font-style: normal;\n font-weight: normal;\n speak: none;\n display: inline-block;\n text-decoration: inherit;\n width: 1em;\n margin-right: .2em;\n text-align: center;\n /* opacity: .8; */\n /* For safety - reset parent styles, that can break glyph codes*/\n font-variant: normal;\n text-transform: none;\n /* fix buttons height, for twitter bootstrap */\n line-height: 1em;\n /* Animation center compensation - margins should be symmetric */\n /* remove if not needed */\n margin-left: .2em;\n /* you can be more comfortable with increased icons size */\n /* font-size: 120%; */\n /* Uncomment for 3D effect */\n /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */\n}\n/* line 37, ../../components/displays/src/scss/fontello-embedded.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + "\"] .icon-chute-logo:before {\n content: '\\e80a';\n}\n/* line 38, ../../components/displays/src/scss/fontello-embedded.scss */\n[data-chute-component=\"", f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + "\"] .icon-ok-circled2:before {\n content: '\\e808';\n}\n/* line 39, ../../components/displays/src/scss/fontello-embedded.scss */\n[data-chute-component=\"", f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + "\"] .icon-cancel:before {\n content: '\\e809';\n}\n/* line 40, ../../components/displays/src/scss/fontello-embedded.scss */\n[data-chute-component=\"", f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + "\"] .icon-angle-left:before {\n content: '\\e807';\n}\n/* line 41, ../../components/displays/src/scss/fontello-embedded.scss */\n[data-chute-component=\"", f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + "\"] .icon-angle-right:before {\n content: '\\e806';\n}\n/* line 42, ../../components/displays/src/scss/fontello-embedded.scss */\n[data-chute-component=\"", f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + "\"] .icon-videocam:before {\n content: '\\e805';\n}\n/* line 43, ../../components/displays/src/scss/fontello-embedded.scss */\n[data-chute-component=\"", f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + "\"] .icon-facebook:before {\n content: '\\e803';\n}\n/* line 44, ../../components/displays/src/scss/fontello-embedded.scss */\n[data-chute-component=\"", f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + "\"] .icon-gplus:before {\n content: '\\e804';\n}\n/* line 45, ../../components/displays/src/scss/fontello-embedded.scss */\n[data-chute-component=\"", f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + "\"] .icon-pinterest-circled:before {\n content: '\\e802';\n}\n/* line 46, ../../components/displays/src/scss/fontello-embedded.scss */\n[data-chute-component=\"", f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + "\"] .icon-tumblr:before {\n content: '\\e800';\n}\n/* line 47, ../../components/displays/src/scss/fontello-embedded.scss */\n[data-chute-component=\"", f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + "\"] .icon-twitter:before {\n content: '\\e801';\n}\n/* line 48, ../../components/displays/src/scss/fontello-embedded.scss */\n[data-chute-component=\"", f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + "\"] .icon-play:before {\n content: '\\e80b';\n}\n\n@-moz-keyframes chute-spin {\n /* line 4, ../../components/displays/src/scss/loadable.scss */\n from {\n -moz-transform: rotate(0deg);\n }\n\n /* line 5, ../../components/displays/src/scss/loadable.scss */\n to {\n -moz-transform: rotate(359deg);\n }\n}\n\n@-webkit-keyframes chute-spin {\n /* line 8, ../../components/displays/src/scss/loadable.scss */\n from {\n -webkit-transform: rotate(0deg);\n }\n\n /* line 9, ../../components/displays/src/scss/loadable.scss */\n to {\n -webkit-transform: rotate(359deg);\n }\n}\n\n@-ms-keyframes chute-spin {\n /* line 12, ../../components/displays/src/scss/loadable.scss */\n from {\n transform: rotate(0deg);\n }\n\n /* line 13, ../../components/displays/src/scss/loadable.scss */\n to {\n transform: rotate(359deg);\n }\n}\n\n@-o-keyframes chute-spin {\n /* line 16, ../../components/displays/src/scss/loadable.scss */\n from {\n transform: rotate(0deg);\n }\n\n /* line 17, ../../components/displays/src/scss/loadable.scss */\n to {\n transform: rotate(359deg);\n }\n}\n\n@keyframes chute-spin {\n /* line 20, ../../components/displays/src/scss/loadable.scss */\n from {\n transform: rotate(0deg);\n }\n\n /* line 21, ../../components/displays/src/scss/loadable.scss */\n to {\n transform: rotate(359deg);\n }\n}\n\n/* line 6, ../../src/scss/lightbox.scss */\n[data-chute-component=\"", f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1010;\n background-color: #000;\n filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);\n opacity: 0.8;\n}\n\n/* line 17, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1010;\n pointer-events: none;\n}\n/* line 26, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view {\n pointer-events: auto;\n position: absolute;\n top: 10%;\n left: 50%;\n width: ', p = t.itemViewOptions, p = null == p || p === !1 ? p : p.lightboxOptions, p = null == p || p === !1 ? p : p.width, p = typeof p === m ? p() : p, g += y(p) + "px;\n margin-left: -", p = t.itemViewOptions, p = null == p || p === !1 ? p : p.lightboxOptions, p = null == p || p === !1 ? p : p.width, f = n.divideByTwo, p = f ? f.call(t, p, { | |
hash: {} | |
}) : v.call(t, "divideByTwo", p, { | |
hash: {} | |
}), g += y(p) + 'px;\n background: white;\n max-height: 90%;\n overflow-x: hidden;\n overflow-y: auto;\n}\n/* line 37, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset {\n width: 100%;\n height: ', p = t.itemViewOptions, p = null == p || p === !1 ? p : p.lightboxOptions, p = null == p || p === !1 ? p : p.width, p = typeof p === m ? p() : p, g += y(p) + 'px;\n background: black;\n position: relative;\n}\n/* line 34, ../../components/displays/src/scss/loadable.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset:before, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset:after {\n content: " ";\n pointer-events: none;\n display: block;\n position: absolute;\n left: 0px;\n right: 0px;\n top: 0px;\n bottom: 0px;\n z-index: 1000;\n margin: auto;\n width: 80px;\n height: 80px;\n filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);\n opacity: 0;\n -webkit-transition: opacity 1s ease-in-out;\n -moz-transition: opacity 1s ease-in-out;\n -o-transition: opacity 1s ease-in-out;\n transition: opacity 1s ease-in-out;\n}\n/* line 65, ../../components/displays/src/scss/loadable.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset:after {\n -webkit-border-radius: 50%;\n -moz-border-radius: 50%;\n -ms-border-radius: 50%;\n -o-border-radius: 50%;\n border-radius: 50%;\n border-top: 2px solid white;\n border-bottom: 2px solid white;\n border-left: 2px solid transparent;\n border-right: 2px solid transparent;\n -webkit-animation: chute-spin 1s linear infinite;\n -moz-animation: chute-spin 1s linear infinite;\n -ms-animation: chute-spin 1s linear infinite;\n -o-animation: chute-spin 1s linear infinite;\n animation: chute-spin 1s linear infinite;\n}\n/* line 73, ../../components/displays/src/scss/loadable.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset:before {\n font-family: "chute-fontello";\n content: "\\e80a";\n font-size: 50px;\n color: white;\n line-height: 80px;\n text-align: center;\n}\n/* line 82, ../../components/displays/src/scss/loadable.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset .chute-loaded {\n filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);\n opacity: 1;\n -webkit-transition: opacity 1s ease-in-out;\n -moz-transition: opacity 1s ease-in-out;\n -o-transition: opacity 1s ease-in-out;\n transition: opacity 1s ease-in-out;\n}\n/* line 88, ../../components/displays/src/scss/loadable.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset.chute-component-loading:before, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset.chute-component-loading:after {\n filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);\n opacity: 1;\n}\n/* line 91, ../../components/displays/src/scss/loadable.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset.chute-component-loading .chute-loaded {\n position: absolute;\n top: 0;\n filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);\n opacity: 0;\n}\n/* line 44, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset .chute-previous, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset .chute-next {\n position: absolute;\n z-index: 1;\n height: ', p = t.itemViewOptions, p = null == p || p === !1 ? p : p.lightboxOptions, p = null == p || p === !1 ? p : p.width, f = n.divideByTwo, p = f ? f.call(t, p, { | |
hash: {} | |
}) : v.call(t, "divideByTwo", p, { | |
hash: {} | |
}), g += y(p) + "px;\n line-height: ", p = t.itemViewOptions, p = null == p || p === !1 ? p : p.lightboxOptions, p = null == p || p === !1 ? p : p.width, f = n.divideByTwo, p = f ? f.call(t, p, { | |
hash: {} | |
}) : v.call(t, "divideByTwo", p, { | |
hash: {} | |
}), g += y(p) + "px;\n width: 50px;\n top: ", p = t.itemViewOptions, p = null == p || p === !1 ? p : p.lightboxOptions, p = null == p || p === !1 ? p : p.width, f = n.divideByFour, p = f ? f.call(t, p, { | |
hash: {} | |
}) : v.call(t, "divideByFour", p, { | |
hash: {} | |
}), g += y(p) + 'px;\n cursor: pointer;\n font-size: 34px;\n color: #484848;\n}\n/* line 54, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset .chute-previous:hover, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset .chute-next:hover {\n color: #cccccc;\n}\n/* line 59, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset .vjs-big-play-button {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1001;\n margin: auto;\n}\n/* line 66, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset .vjs-big-play-button:before {\n font-size: inherit;\n}\n/* line 71, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset .vjs-control-bar {\n z-index: 2;\n}\n/* line 75, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset .chute-previous {\n left: 0;\n}\n/* line 77, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset .chute-previous i:before {\n text-align: left;\n}\n/* line 82, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset .chute-next {\n right: 0;\n}\n/* line 84, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset .chute-next i:before {\n text-align: right;\n}\n/* line 89, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset .chute-close {\n position: absolute;\n z-index: 1;\n right: 0;\n width: 17px;\n height: 17px;\n line-height: 17px;\n padding: 10px;\n display: block;\n cursor: pointer;\n font-size: 17px;\n color: #484848;\n}\n/* line 101, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset .chute-close:hover {\n color: #cccccc;\n}\n/* line 106, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset img.chute-asset-thumbnail {\n display: block;\n height: 100%;\n margin: 0 auto;\n}\n/* line 113, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-detail {\n padding: 10px;\n}\n/* line 117, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-detail-header {\n position: relative;\n width: 100%;\n line-height: 20px;\n /*!', p = t.itemViewOptions, p = null == p || p === !1 ? p : p.lightboxOptions, p = null == p || p === !1 ? p : p.enable, p = null == p || p === !1 ? p : p.avatar, p = n["if"].call(t, p, { | |
hash: {}, | |
inverse: A.program(3, o, s), | |
fn: A.program(1, r, s) | |
}), (p || 0 === p) && (g += p), g += '*/\n}\n/* line 129, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-detail-header .chute-user-avatar {\n width: 43px;\n height: 43px;\n border: 1px solid #bdc3c7;\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n}\n/* line 139, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-detail-header .chute-header-contents {\n /*!', p = t.itemViewOptions, p = null == p || p === !1 ? p : p.lightboxOptions, p = null == p || p === !1 ? p : p.enable, p = null == p || p === !1 ? p : p.avatar, p = n["if"].call(t, p, { | |
hash: {}, | |
inverse: A.program(8, l, s), | |
fn: A.program(6, c, s) | |
}), (p || 0 === p) && (g += p), g += "*/\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n /*!", p = t.itemViewOptions, p = null == p || p === !1 ? p : p.lightboxOptions, p = null == p || p === !1 ? p : p.enable, p = null == p || p === !1 ? p : p.avatar, p = n["if"].call(t, p, { | |
hash: {}, | |
inverse: A.noop, | |
fn: A.program(11, h, s) | |
}), (p || 0 === p) && (g += p), g += "*/\n /*!", p = t.itemViewOptions, p = null == p || p === !1 ? p : p.lightboxOptions, p = null == p || p === !1 ? p : p.enable, p = null == p || p === !1 ? p : p.hearting, p = n["if"].call(t, p, { | |
hash: {}, | |
inverse: A.noop, | |
fn: A.program(13, d, s) | |
}), (p || 0 === p) && (g += p), g += '*/\n overflow: hidden;\n}\n/* line 162, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-detail-header .chute-header-contents .chute-user-username, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-detail-header .chute-header-contents .chute-asset-timeago {\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n -ms-text-overflow: ellipsis;\n -o-text-overflow: ellipsis;\n text-overflow: ellipsis;\n}\n/* line 166, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-detail-header .chute-header-contents .chute-user-username {\n color: #272727;\n font-weight: bold;\n}\n/* line 170, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-detail-header .chute-header-contents .chute-asset-timeago {\n color: #95a5a5;\n}\n/* line 174, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-detail-header .chute-heart-widget {\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n width: 36px;\n cursor: pointer;\n text-align: center;\n color: #bdc3c7;\n}\n/* line 185, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-detail-header .chute-heart-widget i {\n font-size: 18px;\n}\n/* line 189, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-detail-header .chute-heart-widget:hover, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-detail-header .chute-heart-widget.chute-hearted {\n color: #2dcb71;\n}\n/* line 193, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-detail-header .chute-heart-widget .chute-active {\n display: none;\n}\n/* line 197, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-detail-header .chute-heart-widget:hover .chute-active {\n display: inline-block;\n}\n/* line 200, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-detail-header .chute-heart-widget:hover .chute-inactive {\n display: none;\n}\n/* line 207, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-asset-caption {\n color: #787e7f;\n margin-top: 10px;\n word-wrap: break-word;\n}\n/* line 213, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-sharing {\n border-top: 1px solid #f3f3f3;\n height: 31px;\n width: 100%;\n margin: 0;\n padding: 0;\n list-style: none;\n}\n/* line 220, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-sharing > li {\n border-left: 1px solid #f3f3f3;\n height: 30px;\n line-height: 30px;\n text-align: center;\n float: left;\n cursor: pointer;\n color: #c4c9cd;\n}\n/* line 229, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-sharing > li:hover.facebook {\n color: #3b5998;\n}\n/* line 232, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-sharing > li:hover.twitter {\n color: #00aced;\n}\n/* line 235, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-sharing > li:hover.tumblr {\n color: #32506d;\n}\n/* line 238, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-sharing > li:hover.pinterest {\n color: #cb2027;\n}\n/* line 241, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-sharing > li:hover.googleplus {\n color: #dd4b39;\n}\n/* line 245, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-sharing > li:first-child {\n border-left: none;\n}\n/* line 249, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-sharing[data-chute-length="0"] {\n display: none;\n}\n/* line 252, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-sharing[data-chute-length="1"] li {\n width: 100%;\n}\n/* line 255, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-sharing[data-chute-length="2"] li {\n width: 50%;\n}\n/* line 258, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-sharing[data-chute-length="3"] li {\n width: 33.3%;\n}\n/* line 261, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-sharing[data-chute-length="4"] li {\n width: 25.0%;\n}\n/* line 264, ../../src/scss/lightbox.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"].chute-modal-container > .chute-asset-lightbox-view .chute-sharing[data-chute-length="5"] li {\n width: 20.0%;\n}\n\n/* line 52, ../../../../../.rvm/gems/ruby-1.9.3-p392/gems/compass-0.12.6/frameworks/compass/stylesheets/compass/reset/_utilities.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] div, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] span, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] applet, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] object, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] iframe,\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] h1, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] h2, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] h3, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] h4, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] h5, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] h6, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] p, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] blockquote, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] pre,\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] a, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] abbr, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] acronym, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] address, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] big, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] cite, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] code,\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] del, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] dfn, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] em, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] img, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] ins, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] kbd, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] q, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] s, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] samp,\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] small, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] strike, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] strong, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] sub, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] sup, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] tt, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] var,\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] b, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] u, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] i, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] center,\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] dl, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] dt, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] dd, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] ol, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] ul, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] li,\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] fieldset, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] form, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] label, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] legend,\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] table, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] caption, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] tbody, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] tfoot, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] thead, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] tr, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] th, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] td,\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] article, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] aside, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] canvas, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] details, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] embed,\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] figure, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] figcaption, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] footer, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] header, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] hgroup,\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] menu, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] nav, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] output, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] ruby, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] section, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] summary,\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] time, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] mark, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] audio, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] video {\n margin: 0;\n padding: 0;\n border: 0;\n font: inherit;\n font-size: 100%;\n vertical-align: baseline;\n}\n/* line 55, ../../../../../.rvm/gems/ruby-1.9.3-p392/gems/compass-0.12.6/frameworks/compass/stylesheets/compass/reset/_utilities.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] table {\n border-collapse: collapse;\n border-spacing: 0;\n}\n/* line 57, ../../../../../.rvm/gems/ruby-1.9.3-p392/gems/compass-0.12.6/frameworks/compass/stylesheets/compass/reset/_utilities.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] caption, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] th, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] td {\n text-align: left;\n font-weight: normal;\n vertical-align: middle;\n}\n/* line 59, ../../../../../.rvm/gems/ruby-1.9.3-p392/gems/compass-0.12.6/frameworks/compass/stylesheets/compass/reset/_utilities.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] q, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] blockquote {\n quotes: none;\n}\n/* line 103, ../../../../../.rvm/gems/ruby-1.9.3-p392/gems/compass-0.12.6/frameworks/compass/stylesheets/compass/reset/_utilities.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] q:before, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] q:after, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] blockquote:before, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] blockquote:after {\n content: "";\n content: none;\n}\n/* line 61, ../../../../../.rvm/gems/ruby-1.9.3-p392/gems/compass-0.12.6/frameworks/compass/stylesheets/compass/reset/_utilities.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] a img {\n border: none;\n}\n/* line 11, ../../src/scss/main.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] * {\n max-width: none;\n}\n/* line 15, ../../src/scss/main.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + "\"] *:not(i) {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n font-family: 'Open Sans', sans-serif;\n font-size: 12px;\n}\n\n/* line 24, ../../src/scss/main.scss */\n[data-chute-component=\"", f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] div.responsive div.chute-carousel-view, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] div.responsive div.chute-carousel-container {\n width: 100%;\n}\n/* line 29, ../../src/scss/main.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] div.chute-carousel-container {\n background: ', p = t.carouselOptions, p = null == p || p === !1 ? p : p.background, p = typeof p === m ? p() : p, g += y(p) + ';\n}\n/* line 32, ../../src/scss/main.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] div.chute-carousel-container a.chute-nav {\n position: absolute;\n top: 50%;\n margin-top: -', p = t.navigationOptions, p = null == p || p === !1 ? p : p.height, f = n.divideByTwo, p = f ? f.call(t, p, { | |
hash: {} | |
}) : v.call(t, "divideByTwo", p, { | |
hash: {} | |
}), g += y(p) + "px;\n z-index: 100;\n display: block;\n width: ", p = t.navigationOptions, p = null == p || p === !1 ? p : p.width, f = n.cssSize, p = f ? f.call(t, p, { | |
hash: {} | |
}) : v.call(t, "cssSize", p, { | |
hash: {} | |
}), g += y(p) + ";\n height: ", p = t.navigationOptions, p = null == p || p === !1 ? p : p.height, f = n.cssSize, p = f ? f.call(t, p, { | |
hash: {} | |
}) : v.call(t, "cssSize", p, { | |
hash: {} | |
}), g += y(p) + ";\n background: ", p = t.navigationOptions, p = null == p || p === !1 ? p : p.background, p = typeof p === m ? p() : p, g += y(p) + ";\n text-decoration: none;\n font-size: ", p = t.navigationOptions, p = null == p || p === !1 ? p : p.fontSize, f = n.cssSize, p = f ? f.call(t, p, { | |
hash: {} | |
}) : v.call(t, "cssSize", p, { | |
hash: {} | |
}), g += y(p) + ";\n color: ", p = t.navigationOptions, p = null == p || p === !1 ? p : p.color, p = typeof p === m ? p() : p, g += y(p) + ";\n text-align: center;\n line-height: ", p = t.navigationOptions, p = null == p || p === !1 ? p : p.height, f = n.cssSize, p = f ? f.call(t, p, { | |
hash: {} | |
}) : v.call(t, "cssSize", p, { | |
hash: {} | |
}), g += y(p) + ';\n}\n/* line 47, ../../src/scss/main.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] div.chute-carousel-container a.chute-nav.prev {\n left: 0;\n}\n/* line 51, ../../src/scss/main.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] div.chute-carousel-container a.chute-nav.next {\n right: 0;\n}\n/* line 57, ../../src/scss/main.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] div.chute-carousel-container, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] div.chute-carousel-view {\n width: ', p = t.carouselOptions, p = null == p || p === !1 ? p : p.width, f = n.cssSize, p = f ? f.call(t, p, { | |
hash: {} | |
}) : v.call(t, "cssSize", p, { | |
hash: {} | |
}), g += y(p) + ';\n position: relative;\n}\n/* line 62, ../../src/scss/main.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] div.chute-carousel-view {\n overflow: hidden;\n *zoom: 1;\n z-index: 100;\n}\n/* line 67, ../../src/scss/main.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] div.chute-carousel-view div.chute-asset-view, [data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] div.chute-carousel-view div.chute-asset-view img {\n width: ', p = t.itemViewOptions, p = null == p || p === !1 ? p : p.width, f = n.cssSize, p = f ? f.call(t, p, { | |
hash: {} | |
}) : v.call(t, "cssSize", p, { | |
hash: {} | |
}), g += y(p) + ";\n height: ", p = t.itemViewOptions, p = null == p || p === !1 ? p : p.height, f = n.cssSize, p = f ? f.call(t, p, { | |
hash: {} | |
}) : v.call(t, "cssSize", p, { | |
hash: {} | |
}), g += y(p) + ';\n}\n/* line 72, ../../src/scss/main.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] div.chute-carousel-view div.chute-asset-view {\n float: left;\n margin: ', p = t.itemViewOptions, p = null == p || p === !1 ? p : p.margin, f = n.cssSize, p = f ? f.call(t, p, { | |
hash: {} | |
}) : v.call(t, "cssSize", p, { | |
hash: {} | |
}), g += y(p) + ";\n padding: ", p = t.itemViewOptions, p = null == p || p === !1 ? p : p.padding, f = n.cssSize, p = f ? f.call(t, p, { | |
hash: {} | |
}) : v.call(t, "cssSize", p, { | |
hash: {} | |
}), g += y(p) + ';\n overflow: hidden;\n border-right: 1px solid #eee;\n}\n/* line 79, ../../src/scss/main.scss */\n[data-chute-component="', f = n.id, f ? p = f.call(t, { | |
hash: {} | |
}) : (p = t.id, p = typeof p === m ? p() : p), g += y(p) + '"] div.chute-carousel-view div.chute-asset-view.chute-component-loading {\n display: none;\n}\n' | |
}); | |
return t.registerPartial("src_templates_main.css", n), n | |
}), define("src/js/layout", ["layouts/carousel", "src/js/carouselview", "hbs!src/templates/main.css", "utilities/awesm"], function(e, t, n, i) { | |
return e.extend({ | |
carouselViewType: t, | |
cssTemplate: n, | |
onInitialize: function(e) { | |
i.ensureAWESM(e.awesmOptions) | |
} | |
}) | |
}), define("text", ["module"], function(e) { | |
var t, n, i = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP", "Msxml2.XMLHTTP.4.0"], | |
s = /^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im, | |
r = /<body[^>]*>\s*([\s\S]+)\s*<\/body>/im, | |
o = "undefined" != typeof location && location.href, | |
a = o && location.protocol && location.protocol.replace(/\:/, ""), | |
c = o && location.hostname, | |
l = o && (location.port || void 0), | |
u = [], | |
h = e.config && e.config() || {}; | |
return t = { | |
version: "2.0.5", | |
strip: function(e) { | |
if (e) { | |
e = e.replace(s, ""); | |
var t = e.match(r); | |
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: h.createXhr || function() { | |
var e, t, n; | |
if ("undefined" != typeof XMLHttpRequest) return new XMLHttpRequest; | |
if ("undefined" != typeof ActiveXObject) | |
for (t = 0; 3 > t; t += 1) { | |
n = i[t]; | |
try { | |
e = new ActiveXObject(n) | |
} catch (s) {} | |
if (e) { | |
i = [n]; | |
break | |
} | |
} | |
return e | |
}, | |
parseName: function(e) { | |
var t, n, i, s = !1, | |
r = e.indexOf("."), | |
o = 0 === e.indexOf("./") || 0 === e.indexOf("../"); | |
return -1 !== r && (!o || r > 1) ? (t = e.substring(0, r), n = e.substring(r + 1, e.length)) : t = e, i = n || t, r = i.indexOf("!"), -1 !== r && (s = "strip" === i.substring(r + 1), i = i.substring(0, r), n ? n = i : t = i), { | |
moduleName: t, | |
ext: n, | |
strip: s | |
} | |
}, | |
xdRegExp: /^((\w+)\:)?\/\/([^\/\\]+)/, | |
useXhr: function(e, n, i, s) { | |
var r, o, a, c = t.xdRegExp.exec(e); | |
return c ? (r = c[2], o = c[3], o = o.split(":"), a = o[1], o = o[0], !(r && r !== n || o && o.toLowerCase() !== i.toLowerCase() || (a || o) && a !== s)) : !0 | |
}, | |
finishLoad: function(e, n, i, s) { | |
i = n ? t.strip(i) : i, h.isBuild && (u[e] = i), s(i) | |
}, | |
load: function(e, n, i, s) { | |
if (s.isBuild && !s.inlineText) return void i(); | |
h.isBuild = s.isBuild; | |
var r = t.parseName(e), | |
u = r.moduleName + (r.ext ? "." + r.ext : ""), | |
d = n.toUrl(u), | |
p = h.useXhr || t.useXhr; | |
!o || p(d, a, c, l) ? t.get(d, function(n) { | |
t.finishLoad(e, r.strip, n, i) | |
}, function(e) { | |
i.error && i.error(e) | |
}) : n([u], function(e) { | |
t.finishLoad(r.moduleName + "." + r.ext, r.strip, e, i) | |
}) | |
}, | |
write: function(e, n, i) { | |
if (u.hasOwnProperty(n)) { | |
var s = t.jsEscape(u[n]); | |
i.asModule(e + "!" + n, "define(function () { return '" + s + "';});\n") | |
} | |
}, | |
writeFile: function(e, n, i, s, r) { | |
var o = t.parseName(n), | |
a = o.ext ? "." + o.ext : "", | |
c = o.moduleName + a, | |
l = i.toUrl(o.moduleName + a) + ".js"; | |
t.load(c, i, function() { | |
var n = function(e) { | |
return s(l, e) | |
}; | |
n.asModule = function(e, t) { | |
return s.asModule(e, l, t) | |
}, t.write(e, c, n, r) | |
}, r) | |
} | |
}, "node" === h.env || !h.env && "undefined" != typeof process && process.versions && process.versions.node ? (n = require.nodeRequire("fs"), t.get = function(e, t) { | |
var i = n.readFileSync(e, "utf8"); | |
0 === i.indexOf("") && (i = i.substring(1)), t(i) | |
}) : "xhr" === h.env || !h.env && t.createXhr() ? t.get = function(e, n, i, s) { | |
var r, o = t.createXhr(); | |
if (o.open("GET", e, !0), s) | |
for (r in s) s.hasOwnProperty(r) && o.setRequestHeader(r.toLowerCase(), s[r]); | |
h.onXhr && h.onXhr(o, e), o.onreadystatechange = function() { | |
var t, s; | |
4 === o.readyState && (t = o.status, t > 399 && 600 > t ? (s = new Error(e + " HTTP status: " + t), s.xhr = o, i(s)) : n(o.responseText)) | |
}, o.send(null) | |
} : ("rhino" === h.env || !h.env && "undefined" != typeof Packages && "undefined" != typeof java) && (t.get = function(e, t) { | |
var n, i, s = "utf-8", | |
r = new java.io.File(e), | |
o = java.lang.System.getProperty("line.separator"), | |
a = new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(r), s)), | |
c = ""; | |
try { | |
for (n = new java.lang.StringBuffer, i = a.readLine(), i && i.length() && 65279 === i.charAt(0) && (i = i.substring(1)), n.append(i); null !== (i = a.readLine());) n.append(o), n.append(i); | |
c = String(n.toString()) | |
} finally { | |
a.close() | |
} | |
t(c) | |
}), t | |
}), define("json", ["text"], function(text) { | |
function cacheBust(e) { | |
return e = e.replace(CACHE_BUST_FLAG, ""), e += e.indexOf("?") < 0 ? "?" : "&", e + CACHE_BUST_QUERY_PARAM + "=" + Math.round(2147483647 * Math.random()) | |
} | |
var CACHE_BUST_QUERY_PARAM = "bust", | |
CACHE_BUST_FLAG = "!bust", | |
jsonParse = "undefined" != typeof JSON && "function" == typeof JSON.parse ? JSON.parse : function(val) { | |
return eval("(" + val + ")") | |
}, | |
buildMap = {}; | |
return { | |
load: function(e, t, n, i) { | |
!i.isBuild || i.inlineJSON !== !1 && -1 === e.indexOf(CACHE_BUST_QUERY_PARAM + "=") ? text.get(t.toUrl(e), function(t) { | |
i.isBuild ? (buildMap[e] = t, n(t)) : n(jsonParse(t)) | |
}, n.error, { | |
accept: "application/json" | |
}) : n(null) | |
}, | |
normalize: function(e) { | |
return -1 === e.indexOf(CACHE_BUST_FLAG) ? e : cacheBust(e) | |
}, | |
write: function(e, t, n) { | |
if (t in buildMap) { | |
var i = buildMap[t]; | |
n('define("' + e + "!" + t + '", function(){ return ' + i + ";});\n") | |
} | |
} | |
} | |
}), define("json!src/schema.json", function() { | |
return { | |
title: "Carousel", | |
type: "object", | |
properties: { | |
album: { | |
type: "object", | |
title: "Album Selector", | |
albumSelector: !0, | |
"default": { | |
shortcut: "9IZukfpi" | |
} | |
}, | |
albumOptions: { | |
title: "Album Options", | |
type: "object", | |
properties: { | |
sort: { | |
title: "Sorting", | |
type: "string", | |
"default": "id", | |
oneOf: [{ | |
pattern: "id", | |
title: "Newest First" | |
}, { | |
pattern: "hearts", | |
title: "Highest Rated" | |
}] | |
}, | |
per_page: { | |
title: "Number of Items", | |
type: "integer", | |
"default": 30 | |
} | |
} | |
}, | |
carouselOptions: { | |
title: "Carousel options", | |
type: "object", | |
properties: { | |
width: { | |
type: "string", | |
"default": "100%" | |
}, | |
infinite: { | |
type: "boolean", | |
"default": !0 | |
}, | |
circular: { | |
type: "boolean", | |
"default": !0 | |
}, | |
auto: { | |
type: "boolean", | |
"default": !0 | |
}, | |
background: { | |
type: "string", | |
"default": "transparent" | |
} | |
} | |
}, | |
itemViewOptions: { | |
title: "Item options", | |
type: "object", | |
properties: { | |
width: { | |
title: "Width", | |
type: "integer", | |
"default": 200 | |
}, | |
height: { | |
title: "Height", | |
type: "integer", | |
"default": 200 | |
}, | |
margin: { | |
title: "Margin", | |
type: "integer", | |
"default": 0 | |
}, | |
padding: { | |
title: "Padding", | |
type: "integer", | |
"default": 0 | |
}, | |
background: { | |
type: "string", | |
"default": "transparent" | |
}, | |
enable: { | |
title: "Enable", | |
type: "object", | |
properties: { | |
lightbox: { | |
type: "boolean", | |
"default": !0 | |
} | |
} | |
}, | |
lightboxOptions: { | |
title: "Lightbox Settings", | |
type: "object", | |
properties: { | |
width: { | |
type: "integer", | |
"default": 400 | |
}, | |
enable: { | |
title: "Show", | |
type: "object", | |
group: !0, | |
properties: { | |
avatar: { | |
type: "boolean", | |
"default": !0 | |
}, | |
username: { | |
type: "boolean", | |
"default": !0 | |
}, | |
caption: { | |
type: "boolean", | |
"default": !0 | |
}, | |
time: { | |
type: "boolean", | |
"default": !0 | |
}, | |
hearting: { | |
title: "Voting", | |
type: "boolean", | |
"default": !0 | |
}, | |
sharing: { | |
group: !0, | |
type: "object", | |
properties: { | |
facebook: { | |
type: "boolean", | |
"default": !0 | |
}, | |
twitter: { | |
type: "boolean", | |
"default": !0 | |
}, | |
tumblr: { | |
type: "boolean", | |
"default": !0 | |
}, | |
pinterest: { | |
type: "boolean", | |
"default": !0 | |
}, | |
googleplus: { | |
title: "Google+", | |
type: "boolean", | |
"default": !0 | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
}, | |
navigationOptions: { | |
title: "Navigation options", | |
type: "object", | |
properties: { | |
width: { | |
title: "Width", | |
type: "integer", | |
"default": 40 | |
}, | |
height: { | |
title: "Height", | |
type: "integer", | |
"default": 40 | |
}, | |
background: { | |
title: "Background", | |
type: "string", | |
"default": "rgba(0, 0, 0, .8)" | |
}, | |
color: { | |
title: "Color", | |
type: "string", | |
"default": "#fff" | |
}, | |
fontSize: { | |
title: "Font size", | |
type: "integer", | |
"default": 32 | |
} | |
} | |
}, | |
awesmOptions: { | |
title: "Sharing Options", | |
type: "object", | |
properties: { | |
facebook: { | |
type: "object", | |
properties: { | |
app_id: { | |
title: "Application ID", | |
type: "string", | |
"default": "418143708282236" | |
}, | |
redirect_uri: { | |
title: "Redirect URI", | |
type: "string", | |
"default": "http://getchute.com/" | |
}, | |
caption: { | |
type: "string", | |
"default": "{{caption}}" | |
}, | |
title: { | |
type: "string" | |
}, | |
description: { | |
type: "string" | |
} | |
} | |
}, | |
twitter: { | |
type: "object", | |
properties: { | |
caption: { | |
type: "string", | |
"default": "{{caption}}" | |
}, | |
via: { | |
type: "string" | |
}, | |
hashtags: { | |
type: "string" | |
}, | |
related: { | |
type: "string" | |
} | |
} | |
}, | |
pinterest: { | |
type: "object", | |
properties: { | |
caption: { | |
type: "string", | |
"default": "{{caption}}" | |
} | |
} | |
}, | |
tumblr: { | |
type: "object", | |
properties: { | |
caption: { | |
type: "string", | |
"default": "{{caption}}" | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
}), define("utilities/IEVersion", [], function() { | |
var e = function() { | |
var e, t = 3, | |
n = document.createElement("div"); | |
do n.innerHTML = "<!--[if gt IE " + ++t + "]><i></i><![endif]-->"; while (n.getElementsByTagName("i")[0]); | |
return t > 4 ? t : e | |
}(); | |
return e | |
}), define("core/runner", ["jquery", "backbone", "core/region", "underscore", "utilities/IEVersion", "utilities/eachDeepObject", "utilities/analytics"], function(e, t, n, i, s, r, o) { | |
var a = function(e, t, n) { | |
this.name = e, this.view = t, this.schema = n, this.attachToWindow(), this.enhance() | |
}; | |
return i.extend(a.prototype, { | |
attachToWindow: function() { | |
window.ChuteDisplay || (window.ChuteDisplay = {}), window.ChuteDisplay.Runners || (window.ChuteDisplay.Runners = {}); | |
var t = this; | |
window.ChuteDisplay.Runners[this.name] = { | |
view: this.view, | |
schema: this.schema, | |
inject: function(n) { | |
this.loadConfig(n.storeUrl).done(function(i) { | |
var s = t.makeContainer(); | |
e(n.el).append(s), t.inject(s, i) | |
}) | |
} | |
} | |
}, | |
inject: function(e, t) { | |
e.attr("data-chute-component", t.id); | |
var i = new n({ | |
el: e | |
}), | |
s = this.wrapAnalytics(t); | |
r(t, function(e) { | |
e.analytics = s | |
}), i.show(new this.view(t)) | |
}, | |
wrapAnalytics: function(e) { | |
return new o({ | |
dID: e.id, | |
dTp: this.name, | |
dVs: "2.1.2", | |
lID: e.album ? e.album.shortcut : "", | |
cID: e.cID | |
}, { | |
debug: e.debug | |
}) | |
}, | |
makeContainer: function() { | |
return e(s ? "<div data-chute-component data-ie-version=" + s + "/>" : "<div data-chute-component/>") | |
}, | |
enhance: function() { | |
this.loadFromUrl(); | |
var t = this; | |
e(function() { | |
t.enhanceScriptTags(), t.enhanceDivTags(), t.enhanceDemoTags() | |
}) | |
}, | |
getAttrSelector: function() { | |
return "[data-chute-" + this.name.toLowerCase() + "]" | |
}, | |
getSrcSelector: function() { | |
return '[src*="/' + this.name.toLowerCase() + '.js"]' | |
}, | |
loadFromUrl: function() { | |
var t = window.location.search, | |
n = t.match(/(^\?|&)storeUrl=(.*?)(&|$)/); | |
if (n) { | |
var i = this; | |
this.loadConfig(n[2]).done(function(t) { | |
var n = i.makeContainer(); | |
e("body").append(n), i.inject(n, t) | |
}) | |
} | |
}, | |
enhanceScriptTags: function() { | |
var t = this; | |
e("script" + this.getSrcSelector() + this.getAttrSelector() + ":not([data-chute-initialized])").each(function() { | |
var n = e(this); | |
n.attr("data-chute-initialized", "true"); | |
var i = n.data("chute-" + t.name.toLowerCase()); | |
i && t.loadConfig(i).done(function(e) { | |
var i = t.makeContainer(); | |
i.insertAfter(n), t.inject(i, e) | |
}) | |
}) | |
}, | |
enhanceDivTags: function() { | |
var t = this; | |
e(this.getAttrSelector() + ":not([data-chute-initialized])").each(function() { | |
var n = e(this); | |
n.attr("data-chute-initialized", "true"); | |
var i = n.data("chute-" + t.name.toLowerCase()); | |
i && t.loadConfig(i).done(function(e) { | |
var i = t.makeContainer(); | |
n.append(i), t.inject(i, e) | |
}) | |
}) | |
}, | |
enhanceDemoTags: function() { | |
var t = this, | |
n = "demo-" + this.name.toLowerCase(); | |
e("[data-chute-" + n + "]:not([data-chute-initialized])").each(function() { | |
var s = e(this); | |
s.attr("data-chute-initialized", "true"); | |
var r = t.makeContainer(); | |
s.append(r); | |
var o = i.defaults({ | |
id: n | |
}, t.schemaToDefaults()); | |
i.extend(o, { | |
debug: !0 | |
}), t.inject(r, o) | |
}) | |
}, | |
schemaToDefaults: function(e) { | |
var t = this; | |
return e || (e = this.schema), "undefined" != typeof e["default"] ? e["default"] : "object" === e.type ? e.properties ? (i.each(i.keys(e.properties), function(n) { | |
e.properties[n] = t.schemaToDefaults(e.properties[n]), "undefined" == typeof e.properties[n] && delete e.properties[n] | |
}), e.properties) : {} : "array" === e.type ? e.items ? [t.schemaToDefaults(e.items)] : [] : void 0 | |
}, | |
loadConfig: function(t) { | |
return e.ajax({ | |
url: t, | |
dataType: "json" | |
}) | |
} | |
}), a.extend = t.View.extend, a | |
}), define("src/main", ["src/js/layout", "json!src/schema.json", "core/runner"], function(e, t, n) { | |
new n("Carousel", e, t) | |
}), require(["src/main"]), $.noConflict(!0) | |
}); | |
//# sourceMappingURL=carousel.js.map |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment