Created
April 20, 2014 01:46
-
-
Save younata/11102763 to your computer and use it in GitHub Desktop.
lektur
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 CSSScanner(e) { | |
this.init(e) | |
} | |
function CSSParser(e) { | |
this.mToken = null, this.mLookAhead = null, this.mScanner = new CSSScanner(e), this.mPreserveWS = !0, this.mPreserveComments = !0, this.mPreservedTokens = [], this.mError = null | |
} | |
function jscsspToken(e, t, n) { | |
this.type = e, this.value = t, this.unit = n | |
} | |
function jscsspStylesheet() { | |
this.cssRules = [], this.variables = {} | |
} | |
function jscsspCharsetRule() { | |
this.type = kJscsspCHARSET_RULE, this.encoding = null, this.parsedCssText = null, this.parentStyleSheet = null, this.parentRule = null | |
} | |
function jscsspErrorRule(e) { | |
this.error = e ? e : "INVALID", this.type = kJscsspUNKNOWN_RULE, this.parsedCssText = null, this.parentStyleSheet = null, this.parentRule = null | |
} | |
function jscsspComment() { | |
this.type = kJscsspCOMMENT, this.parsedCssText = null, this.parentStyleSheet = null, this.parentRule = null | |
} | |
function jscsspWhitespace() { | |
this.type = kJscsspWHITE_SPACE, this.parsedCssText = null, this.parentStyleSheet = null, this.parentRule = null | |
} | |
function jscsspImportRule() { | |
this.type = kJscsspIMPORT_RULE, this.parsedCssText = null, this.href = null, this.media = [], this.parentStyleSheet = null, this.parentRule = null | |
} | |
function jscsspNamespaceRule() { | |
this.type = kJscsspNAMESPACE_RULE, this.parsedCssText = null, this.prefix = null, this.url = null, this.parentStyleSheet = null, this.parentRule = null | |
} | |
function jscsspDeclaration() { | |
this.type = kJscsspSTYLE_DECLARATION, this.property = null, this.values = [], this.valueText = null, this.priority = null, this.parsedCssText = null, this.parentStyleSheet = null, this.parentRule = null | |
} | |
function jscsspFontFaceRule() { | |
this.type = kJscsspFONT_FACE_RULE, this.parsedCssText = null, this.descriptors = [], this.parentStyleSheet = null, this.parentRule = null | |
} | |
function jscsspKeyframesRule() { | |
this.type = kJscsspKEYFRAMES_RULE, this.parsedCssText = null, this.cssRules = [], this.name = null, this.parentStyleSheet = null, this.parentRule = null | |
} | |
function jscsspKeyframeRule() { | |
this.type = kJscsspKEYFRAME_RULE, this.parsedCssText = null, this.declarations = [], this.keyText = null, this.parentStyleSheet = null, this.parentRule = null | |
} | |
function jscsspMediaRule() { | |
this.type = kJscsspMEDIA_RULE, this.parsedCssText = null, this.cssRules = [], this.media = [], this.parentStyleSheet = null, this.parentRule = null | |
} | |
function jscsspStyleRule() { | |
this.type = kJscsspSTYLE_RULE, this.parsedCssText = null, this.declarations = [], this.mSelectorText = null, this.parentStyleSheet = null, this.parentRule = null | |
} | |
function jscsspPageRule() { | |
this.type = kJscsspPAGE_RULE, this.parsedCssText = null, this.pageSelector = null, this.declarations = [], this.parentStyleSheet = null, this.parentRule = null | |
} | |
function jscsspVariablesRule() { | |
this.type = kJscsspVARIABLES_RULE, this.parsedCssText = null, this.declarations = [], this.parentStyleSheet = null, this.parentRule = null, this.media = null | |
} | |
function jscsspVariable(e, t) { | |
this.value = "", this.type = e, this.name = null, this.parentRule = null, this.parentStyleSheet = t | |
} | |
function ParseURL(e) { | |
var t = {}; | |
t.protocol = "", t.user = "", t.password = "", t.host = "", t.port = "", t.path = "", t.query = ""; | |
for (var n = "PROTOCOL", i = 0, r = !1; i < e.length;) | |
if ("PROTOCOL" == n) ":" == e.charAt(i) ? (n = "AFTER_PROTOCOL", i++) : "/" == e.charAt(i) && 0 == t.protocol.length() ? n = PATH : t.protocol += e.charAt(i++); | |
else if ("AFTER_PROTOCOL" == n) { | |
if ("/" != e.charAt(i)) throw new ParseException("Protocol shell be separated with 2 slashes"); | |
r ? (r = !1, n = "USER") : r = !0, i++ | |
} else "USER" == n ? "/" == e.charAt(i) ? (t.host = t.user, t.user = "", n = "PATH") : "?" == e.charAt(i) ? (t.host = t.user, t.user = "", n = "QUERY", i++) : ":" == e.charAt(i) ? (n = "PASSWORD", i++) : "@" == e.charAt(i) ? (n = "HOST", i++) : t.user += e.charAt(i++) : "PASSWORD" == n ? "/" == e.charAt(i) ? (t.host = t.user, t.port = t.password, t.user = "", t.password = "", n = "PATH") : "?" == e.charAt(i) ? (t.host = t.user, t.port = t.password, t.user = "", t.password = "", n = "QUERY", i++) : "@" == e.charAt(i) ? (n = "HOST", i++) : t.password += e.charAt(i++) : "HOST" == n ? "/" == e.charAt(i) ? n = "PATH" : ":" == e.charAt(i) ? (n = "PORT", i++) : "?" == e.charAt(i) ? (n = "QUERY", i++) : t.host += e.charAt(i++) : "PORT" == n ? "/" == e.charAt(i) ? n = "PATH" : "?" == e.charAt(i) ? (n = "QUERY", i++) : t.port += e.charAt(i++) : "PATH" == n ? "?" == e.charAt(i) ? (n = "QUERY", i++) : t.path += e.charAt(i++) : "QUERY" == n && (t.query += e.charAt(i++)); if ("PROTOCOL" == n) t.host = t.protocol, t.protocol = "http"; | |
else { | |
if ("AFTER_PROTOCOL" == n) throw new ParseException("Invalid url"); | |
"USER" == n ? (t.host = t.user, t.user = "") : "PASSWORD" == n && (t.host = t.user, t.port = t.password, t.user = "", t.password = "") | |
} | |
return t | |
} | |
function ParseException(e) { | |
this.description = e | |
} | |
function CountLF(e) { | |
var t = e.match(/\n/g); | |
return t ? t.length + 1 : 1 | |
} | |
function FilterLinearGradientForOutput(e, t) { | |
if ("generic" == t) return e.substr(5); | |
if ("webkit" == t) return e.replace(/\-moz\-/g, "-webkit-"); | |
if ("webkit20110101" != t) return ""; | |
var n = CssInspector.parseBackgroundImages(e)[0], | |
i = !1, | |
r = "-webkit-gradient(linear, ", | |
s = "position" in n.value ? n.value.position.toLowerCase() : "", | |
o = "angle" in n.value ? n.value.angle.toLowerCase() : ""; | |
if (o) { | |
var a = o.match(/^([0-9\-\.\\+]+)([a-z]*)/), | |
o = parseFloat(a[1]), | |
l = a[2]; | |
switch (l) { | |
case "grad": | |
o = 90 * o / 100; | |
break; | |
case "rad": | |
o = 180 * o / Math.PI | |
} | |
for (; 0 > o;) o += 360; | |
for (; o >= 360;) o -= 360 | |
} | |
var u = [], | |
c = []; | |
if ("" != s) | |
if ("center" == s && (s = "center center"), u = s.split(" "), "" == o && 0 != o) { | |
switch (u[0]) { | |
case "left": | |
c.push("right"); | |
break; | |
case "center": | |
c.push("center"); | |
break; | |
case "right": | |
c.push("left"); | |
break; | |
default: | |
var a = u[0].match(/^([0-9\-\.\\+]+)([a-z]*)/), | |
d = parseFloat(a[0]), | |
l = a[1]; | |
"%" == l ? c.push(100 - d + "%") : i = !0 | |
} | |
if (!i) switch (u[1]) { | |
case "top": | |
c.push("bottom"); | |
break; | |
case "center": | |
c.push("center"); | |
break; | |
case "bottom": | |
c.push("top"); | |
break; | |
default: | |
var a = u[1].match(/^([0-9\-\.\\+]+)([a-z]*)/), | |
d = parseFloat(a[0]), | |
l = a[1]; | |
"%" == l ? c.push(100 - d + "%") : i = !0 | |
} | |
} else switch (o) { | |
case 0: | |
c.push("right"), c.push(u[1]); | |
break; | |
case 90: | |
c.push(u[0]), c.push("top"); | |
break; | |
case 180: | |
c.push("left"), c.push(u[1]); | |
break; | |
case 270: | |
c.push(u[0]), c.push("bottom"); | |
break; | |
default: | |
i = !0 | |
} else switch ("" == o && (o = 270), o) { | |
case 0: | |
u = ["left", "center"], c = ["right", "center"]; | |
break; | |
case 90: | |
u = ["center", "bottom"], c = ["center", "top"]; | |
break; | |
case 180: | |
u = ["right", "center"], c = ["left", "center"]; | |
break; | |
case 270: | |
u = ["center", "top"], c = ["center", "bottom"]; | |
break; | |
default: | |
i = !0 | |
} | |
if (i) return ""; | |
r += u.join(" ") + ", " + c.join(" "), n.value.stops[0].position || (n.value.stops[0].position = "0%"), n.value.stops[n.value.stops.length - 1].position || (n.value.stops[n.value.stops.length - 1].position = "100%"); | |
for (var p = 0, f = 0; f < n.value.stops.length && !i; f++) { | |
var h = n.value.stops[f]; | |
if (h.position) { | |
if (-1 == h.position.indexOf("%")) { | |
i = !0; | |
break | |
} | |
} else { | |
for (var m = f + 1; m < n.value.stops.length && !n.value.stops[m].position;) m++; | |
for (var g = parseFloat(n.value.stops[m].position) - p, v = f; m > v; v++) n.value.stops[v].position = p + g * (v - f + 1) / (m - f + 1) + "%" | |
} | |
p = parseFloat(h.position), r += ", color-stop(" + parseFloat(p) / 100 + ", " + h.color + ")" | |
} | |
return i ? "" : r + ")" | |
} | |
function FilterRadialGradientForOutput(e, t) { | |
if ("generic" == t) return e.substr(5); | |
if ("webkit" == t) return e.replace(/\-moz\-/g, "-webkit-"); | |
if ("webkit20110101" != t) return ""; | |
var n = CssInspector.parseBackgroundImages(e)[0], | |
i = "shape" in n.value ? n.value.shape : "", | |
r = "size" in n.value ? n.value.size : ""; | |
if ("circle" != i || "farthest-corner" != r && "cover" != r) return ""; | |
if (!(!(n.value.stops.length < 2) && "position" in n.value.stops[0] && n.value.stops[n.value.stops.length - 1].position && "position" in n.value.stops[0] && n.value.stops[n.value.stops.length - 1].position)) return ""; | |
for (var s = 0; s < n.value.stops.length; s++) { | |
var o = n.value.stops[s]; | |
if ("position" in o && o.position && -1 == o.position.indexOf("px")) return "" | |
} | |
var a = "-webkit-gradient(radial, ", | |
l = "position" in n.value ? n.value.position : "center center"; | |
a += l + ", " + parseFloat(n.value.stops[0].position) + ", ", a += l + ", " + parseFloat(n.value.stops[n.value.stops.length - 1].position); | |
for (var u = parseFloat(n.value.stops[0].position), s = 0; s < n.value.stops.length; s++) { | |
var o = n.value.stops[s]; | |
if (!("position" in o && o.position)) { | |
for (var c = s + 1; c < n.value.stops.length && !n.value.stops[c].position;) c++; | |
for (var d = parseFloat(n.value.stops[c].position) - u, p = s; c > p; p++) n.value.stops[p].position = u + d * (p - s + 1) / (c - s + 1) + "px" | |
} | |
u = parseFloat(o.position); | |
var f = (u - parseFloat(n.value.stops[0].position)) / (parseFloat(n.value.stops[n.value.stops.length - 1].position) - parseFloat(n.value.stops[0].position)); | |
a += ", color-stop(" + f + ", " + o.color + ")" | |
} | |
return a += ")" | |
} | |
function FilterRepeatingGradientForOutput(e, t) { | |
return "generic" == t ? e.substr(5) : "webkit" == t ? e.replace(/\-moz\-/g, "-webkit-") : "" | |
} | |
function updateCountry() { | |
for (var e = select_dialect.options.length - 1; e >= 0; e--) select_dialect.remove(e); | |
for (var t = langs[select_language.selectedIndex], e = 1; e < t.length; e++) select_dialect.options.add(new Option(t[e][1], t[e][0])); | |
select_dialect.style.visibility = 1 == t[1].length ? "hidden" : "visible" | |
} | |
function trim1(e) { | |
return e.replace(/^\s\s*/, "").replace(/\s\s*$/, "") | |
} | |
function parseParagraph() { | |
output = "", sentences = $("#final_span li"); | |
for (var e = 0; e < sentences.length; e++) sentence = $(sentences[e]), output += "floatleft" == sentence.attr("class") ? "- " + trim1(sentence.text()) + "\n" : " - " + trim1(sentence.text()) + "\n"; | |
sentences = $("#final_temp li"); | |
for (var e = 0; e < sentences.length; e++) sentence = $(sentences[e]), output += "floatleft" == sentence.attr("class") ? "- " + trim1(sentence.text()) + "\n" : " - " + trim1(sentence.text()) + "\n"; | |
return output | |
} | |
function upgrade() { | |
start_button.style.visibility = "hidden", showInfo("info_upgrade") | |
} | |
function linebreak(e) { | |
return e.replace(two_line, "<p></p>").replace(one_line, "<br>") | |
} | |
function capitalize(e) { | |
return e.replace(first_char, function (e) { | |
return e.toUpperCase() | |
}) | |
} | |
function createEmail() { | |
var e = final_transcript.indexOf("\n"); | |
(0 > e || e >= 80) && (e = 40 + final_transcript.substring(40).indexOf(" ")); | |
var t = encodeURI(final_transcript.substring(0, e)), | |
n = encodeURI(final_transcript.substring(e + 1)); | |
window.location.href = "mailto:?subject=" + t + "&body=" + n | |
} | |
function copyButton() { | |
recognizing && (recognizing = !1, recognition.stop()), copy_info.style.display = "inline-block", showInfo("") | |
} | |
function emailButton() { | |
recognizing ? (create_email = !0, recognizing = !1, recognition.stop()) : createEmail(), email_button.style.display = "none", email_info.style.display = "inline-block", showInfo("") | |
} | |
function importButton() { | |
filepicker.pick({ | |
mimetype: "text/plain" | |
}, function (e) { | |
inkblob = e, filepicker.read(inkblob, function (e) { | |
final_span.innerHTML = e, all_text = e | |
}), fileselected = !0 | |
}) | |
} | |
function exportButton() { | |
inkblob ? filepicker.export(inkblob, { | |
service: "DROPBOX" | |
}, function () { | |
showInfo("info_saved") | |
}) : filepicker.store(parseParagraph(), { | |
filename: "lecture_notes", | |
location: "S3" | |
}, function (e) { | |
filepicker.export(e, { | |
service: "DROPBOX" | |
}, function (e) { | |
$("#filename-title").text(e.filename), inkblob = e | |
}) | |
}) | |
} | |
function startButton(e) { | |
return recognizing ? void recognition.stop() : (final_transcript = "", recognition.lang = select_dialect.value, recognition.start(), ignore_onend = !1, interim_span.innerHTML = "", start_img.src = "https://www.google.com/intl/en/chrome/assets/common/images/content/mic-slash.gif", showInfo("info_allow"), showButtons("none"), void(start_timestamp = e.timeStamp)) | |
} | |
function showInfo(e) { | |
if (e) { | |
for (var t = info.firstChild; t; t = t.nextSibling) t.style && (t.style.display = t.id == e ? "inline" : "none"); | |
info.style.visibility = "visible" | |
} else info.style.visibility = "hidden" | |
} | |
function showButtons(e) { | |
e != current_style && (current_style = e, email_button.style.display = e, copy_info.style.display = "none", email_info.style.display = "none") | |
}! function (e, t) { | |
"object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function (e) { | |
if (!e.document) throw new Error("jQuery requires a window with a document"); | |
return t(e) | |
} : t(e) | |
}("undefined" != typeof window ? window : this, function (e, t) { | |
function n(e) { | |
var t = e.length, | |
n = st.type(e); | |
return "function" === n || st.isWindow(e) ? !1 : 1 === e.nodeType && t ? !0 : "array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e | |
} | |
function i(e, t, n) { | |
if (st.isFunction(t)) return st.grep(e, function (e, i) { | |
return !!t.call(e, i, e) !== n | |
}); | |
if (t.nodeType) return st.grep(e, function (e) { | |
return e === t !== n | |
}); | |
if ("string" == typeof t) { | |
if (ft.test(t)) return st.filter(t, e, n); | |
t = st.filter(t, e) | |
} | |
return st.grep(e, function (e) { | |
return st.inArray(e, t) >= 0 !== n | |
}) | |
} | |
function r(e, t) { | |
do e = e[t]; while (e && 1 !== e.nodeType); | |
return e | |
} | |
function s(e) { | |
var t = wt[e] = {}; | |
return st.each(e.match(yt) || [], function (e, n) { | |
t[n] = !0 | |
}), t | |
} | |
function o() { | |
mt.addEventListener ? (mt.removeEventListener("DOMContentLoaded", a, !1), e.removeEventListener("load", a, !1)) : (mt.detachEvent("onreadystatechange", a), e.detachEvent("onload", a)) | |
} | |
function a() { | |
(mt.addEventListener || "load" === event.type || "complete" === mt.readyState) && (o(), st.ready()) | |
} | |
function l(e, t, n) { | |
if (void 0 === n && 1 === e.nodeType) { | |
var i = "data-" + t.replace(It, "-$1").toLowerCase(); | |
if (n = e.getAttribute(i), "string" == typeof n) { | |
try { | |
n = "true" === n ? !0 : "false" === n ? !1 : "null" === n ? null : +n + "" === n ? +n : Et.test(n) ? st.parseJSON(n) : n | |
} catch (r) {} | |
st.data(e, t, n) | |
} else n = void 0 | |
} | |
return n | |
} | |
function u(e) { | |
var t; | |
for (t in e) | |
if (("data" !== t || !st.isEmptyObject(e[t])) && "toJSON" !== t) return !1; | |
return !0 | |
} | |
function c(e, t, n, i) { | |
if (st.acceptData(e)) { | |
var r, s, o = st.expando, | |
a = e.nodeType, | |
l = a ? st.cache : e, | |
u = a ? e[o] : e[o] && o; | |
if (u && l[u] && (i || l[u].data) || void 0 !== n || "string" != typeof t) return u || (u = a ? e[o] = $.pop() || st.guid++ : o), l[u] || (l[u] = a ? {} : { | |
toJSON: st.noop | |
}), ("object" == typeof t || "function" == typeof t) && (i ? l[u] = st.extend(l[u], t) : l[u].data = st.extend(l[u].data, t)), s = l[u], i || (s.data || (s.data = {}), s = s.data), void 0 !== n && (s[st.camelCase(t)] = n), "string" == typeof t ? (r = s[t], null == r && (r = s[st.camelCase(t)])) : r = s, r | |
} | |
} | |
function d(e, t, n) { | |
if (st.acceptData(e)) { | |
var i, r, s = e.nodeType, | |
o = s ? st.cache : e, | |
a = s ? e[st.expando] : st.expando; | |
if (o[a]) { | |
if (t && (i = n ? o[a] : o[a].data)) { | |
st.isArray(t) ? t = t.concat(st.map(t, st.camelCase)) : t in i ? t = [t] : (t = st.camelCase(t), t = t in i ? [t] : t.split(" ")), r = t.length; | |
for (; r--;) delete i[t[r]]; | |
if (n ? !u(i) : !st.isEmptyObject(i)) return | |
}(n || (delete o[a].data, u(o[a]))) && (s ? st.cleanData([e], !0) : it.deleteExpando || o != o.window ? delete o[a] : o[a] = null) | |
} | |
} | |
} | |
function p() { | |
return !0 | |
} | |
function f() { | |
return !1 | |
} | |
function h() { | |
try { | |
return mt.activeElement | |
} catch (e) {} | |
} | |
function m(e) { | |
var t = Ft.split("|"), | |
n = e.createDocumentFragment(); | |
if (n.createElement) | |
for (; t.length;) n.createElement(t.pop()); | |
return n | |
} | |
function g(e, t) { | |
var n, i, r = 0, | |
s = typeof e.getElementsByTagName !== xt ? e.getElementsByTagName(t || "*") : typeof e.querySelectorAll !== xt ? e.querySelectorAll(t || "*") : void 0; | |
if (!s) | |
for (s = [], n = e.childNodes || e; null != (i = n[r]); r++)!t || st.nodeName(i, t) ? s.push(i) : st.merge(s, g(i, t)); | |
return void 0 === t || t && st.nodeName(e, t) ? st.merge([e], s) : s | |
} | |
function v(e) { | |
Dt.test(e.type) && (e.defaultChecked = e.checked) | |
} | |
function b(e, t) { | |
return st.nodeName(e, "table") && st.nodeName(11 !== t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e | |
} | |
function k(e) { | |
return e.type = (null !== st.find.attr(e, "type")) + "/" + e.type, e | |
} | |
function y(e) { | |
var t = $t.exec(e.type); | |
return t ? e.type = t[1] : e.removeAttribute("type"), e | |
} | |
function w(e, t) { | |
for (var n, i = 0; null != (n = e[i]); i++) st._data(n, "globalEval", !t || st._data(t[i], "globalEval")) | |
} | |
function T(e, t) { | |
if (1 === t.nodeType && st.hasData(e)) { | |
var n, i, r, s = st._data(e), | |
o = st._data(t, s), | |
a = s.events; | |
if (a) { | |
delete o.handle, o.events = {}; | |
for (n in a) | |
for (i = 0, r = a[n].length; r > i; i++) st.event.add(t, n, a[n][i]) | |
} | |
o.data && (o.data = st.extend({}, o.data)) | |
} | |
} | |
function S(e, t) { | |
var n, i, r; | |
if (1 === t.nodeType) { | |
if (n = t.nodeName.toLowerCase(), !it.noCloneEvent && t[st.expando]) { | |
r = st._data(t); | |
for (i in r.events) st.removeEvent(t, i, r.handle); | |
t.removeAttribute(st.expando) | |
} | |
"script" === n && t.text !== e.text ? (k(t).text = e.text, y(t)) : "object" === n ? (t.parentNode && (t.outerHTML = e.outerHTML), it.html5Clone && e.innerHTML && !st.trim(t.innerHTML) && (t.innerHTML = e.innerHTML)) : "input" === n && Dt.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 x(t, n) { | |
var i = st(n.createElement(t)).appendTo(n.body), | |
r = e.getDefaultComputedStyle ? e.getDefaultComputedStyle(i[0]).display : st.css(i[0], "display"); | |
return i.detach(), r | |
} | |
function E(e) { | |
var t = mt, | |
n = en[e]; | |
return n || (n = x(e, t), "none" !== n && n || (Zt = (Zt || st("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement), t = (Zt[0].contentWindow || Zt[0].contentDocument).document, t.write(), t.close(), n = x(e, t), Zt.detach()), en[e] = n), n | |
} | |
function I(e, t) { | |
return { | |
get: function () { | |
var n = e(); | |
if (null != n) return n ? void delete this.get : (this.get = t).apply(this, arguments) | |
} | |
} | |
} | |
function C(e, t) { | |
if (t in e) return t; | |
for (var n = t.charAt(0).toUpperCase() + t.slice(1), i = t, r = hn.length; r--;) | |
if (t = hn[r] + n, t in e) return t; | |
return i | |
} | |
function R(e, t) { | |
for (var n, i, r, s = [], o = 0, a = e.length; a > o; o++) i = e[o], i.style && (s[o] = st._data(i, "olddisplay"), n = i.style.display, t ? (s[o] || "none" !== n || (i.style.display = ""), "" === i.style.display && Nt(i) && (s[o] = st._data(i, "olddisplay", E(i.nodeName)))) : s[o] || (r = Nt(i), (n && "none" !== n || !r) && st._data(i, "olddisplay", r ? n : st.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 ? s[o] || "" : "none")); | |
return e | |
} | |
function N(e, t, n) { | |
var i = cn.exec(t); | |
return i ? Math.max(0, i[1] - (n || 0)) + (i[2] || "px") : t | |
} | |
function _(e, t, n, i, r) { | |
for (var s = n === (i ? "border" : "content") ? 4 : "width" === t ? 1 : 0, o = 0; 4 > s; s += 2) "margin" === n && (o += st.css(e, n + Rt[s], !0, r)), i ? ("content" === n && (o -= st.css(e, "padding" + Rt[s], !0, r)), "margin" !== n && (o -= st.css(e, "border" + Rt[s] + "Width", !0, r))) : (o += st.css(e, "padding" + Rt[s], !0, r), "padding" !== n && (o += st.css(e, "border" + Rt[s] + "Width", !0, r))); | |
return o | |
} | |
function D(e, t, n) { | |
var i = !0, | |
r = "width" === t ? e.offsetWidth : e.offsetHeight, | |
s = tn(e), | |
o = it.boxSizing() && "border-box" === st.css(e, "boxSizing", !1, s); | |
if (0 >= r || null == r) { | |
if (r = nn(e, t, s), (0 > r || null == r) && (r = e.style[t]), sn.test(r)) return r; | |
i = o && (it.boxSizingReliable() || r === e.style[t]), r = parseFloat(r) || 0 | |
} | |
return r + _(e, t, n || (o ? "border" : "content"), i, s) + "px" | |
} | |
function A(e, t, n, i, r) { | |
return new A.prototype.init(e, t, n, i, r) | |
} | |
function P() { | |
return setTimeout(function () { | |
mn = void 0 | |
}), mn = st.now() | |
} | |
function L(e, t) { | |
var n, i = { | |
height: e | |
}, r = 0; | |
for (t = t ? 1 : 0; 4 > r; r += 2 - t) n = Rt[r], i["margin" + n] = i["padding" + n] = e; | |
return t && (i.opacity = i.width = e), i | |
} | |
function O(e, t, n) { | |
for (var i, r = (wn[t] || []).concat(wn["*"]), s = 0, o = r.length; o > s; s++) | |
if (i = r[s].call(n, t, e)) return i | |
} | |
function j(e, t, n) { | |
var i, r, s, o, a, l, u, c, d = this, | |
p = {}, f = e.style, | |
h = e.nodeType && Nt(e), | |
m = st._data(e, "fxshow"); | |
n.queue || (a = st._queueHooks(e, "fx"), null == a.unqueued && (a.unqueued = 0, l = a.empty.fire, a.empty.fire = function () { | |
a.unqueued || l() | |
}), a.unqueued++, d.always(function () { | |
d.always(function () { | |
a.unqueued--, st.queue(e, "fx").length || a.empty.fire() | |
}) | |
})), 1 === e.nodeType && ("height" in t || "width" in t) && (n.overflow = [f.overflow, f.overflowX, f.overflowY], u = st.css(e, "display"), c = E(e.nodeName), "none" === u && (u = c), "inline" === u && "none" === st.css(e, "float") && (it.inlineBlockNeedsLayout && "inline" !== c ? f.zoom = 1 : f.display = "inline-block")), n.overflow && (f.overflow = "hidden", it.shrinkWrapBlocks() || d.always(function () { | |
f.overflow = n.overflow[0], f.overflowX = n.overflow[1], f.overflowY = n.overflow[2] | |
})); | |
for (i in t) | |
if (r = t[i], vn.exec(r)) { | |
if (delete t[i], s = s || "toggle" === r, r === (h ? "hide" : "show")) { | |
if ("show" !== r || !m || void 0 === m[i]) continue; | |
h = !0 | |
} | |
p[i] = m && m[i] || st.style(e, i) | |
} | |
if (!st.isEmptyObject(p)) { | |
m ? "hidden" in m && (h = m.hidden) : m = st._data(e, "fxshow", {}), s && (m.hidden = !h), h ? st(e).show() : d.done(function () { | |
st(e).hide() | |
}), d.done(function () { | |
var t; | |
st._removeData(e, "fxshow"); | |
for (t in p) st.style(e, t, p[t]) | |
}); | |
for (i in p) o = O(h ? m[i] : 0, i, d), i in m || (m[i] = o.start, h && (o.end = o.start, o.start = "width" === i || "height" === i ? 1 : 0)) | |
} | |
} | |
function F(e, t) { | |
var n, i, r, s, o; | |
for (n in e) | |
if (i = st.camelCase(n), r = t[i], s = e[n], st.isArray(s) && (r = s[1], s = e[n] = s[0]), n !== i && (e[i] = s, delete e[n]), o = st.cssHooks[i], o && "expand" in o) { | |
s = o.expand(s), delete e[i]; | |
for (n in s) n in e || (e[n] = s[n], t[n] = r) | |
} else t[i] = r | |
} | |
function M(e, t, n) { | |
var i, r, s = 0, | |
o = yn.length, | |
a = st.Deferred().always(function () { | |
delete l.elem | |
}), | |
l = function () { | |
if (r) return !1; | |
for (var t = mn || P(), n = Math.max(0, u.startTime + u.duration - t), i = n / u.duration || 0, s = 1 - i, o = 0, l = u.tweens.length; l > o; o++) u.tweens[o].run(s); | |
return a.notifyWith(e, [u, s, n]), 1 > s && l ? n : (a.resolveWith(e, [u]), !1) | |
}, u = a.promise({ | |
elem: e, | |
props: st.extend({}, t), | |
opts: st.extend(!0, { | |
specialEasing: {} | |
}, n), | |
originalProperties: t, | |
originalOptions: n, | |
startTime: mn || P(), | |
duration: n.duration, | |
tweens: [], | |
createTween: function (t, n) { | |
var i = st.Tween(e, u.opts, t, n, u.opts.specialEasing[t] || u.opts.easing); | |
return u.tweens.push(i), i | |
}, | |
stop: function (t) { | |
var n = 0, | |
i = t ? u.tweens.length : 0; | |
if (r) return this; | |
for (r = !0; i > n; n++) u.tweens[n].run(1); | |
return t ? a.resolveWith(e, [u, t]) : a.rejectWith(e, [u, t]), this | |
} | |
}), | |
c = u.props; | |
for (F(c, u.opts.specialEasing); o > s; s++) | |
if (i = yn[s].call(u, e, c, u.opts)) return i; | |
return st.map(c, O, u), st.isFunction(u.opts.start) && u.opts.start.call(e, u), st.fx.timer(st.extend(l, { | |
elem: e, | |
anim: u, | |
queue: u.opts.queue | |
})), u.progress(u.opts.progress).done(u.opts.done, u.opts.complete).fail(u.opts.fail).always(u.opts.always) | |
} | |
function z(e) { | |
return function (t, n) { | |
"string" != typeof t && (n = t, t = "*"); | |
var i, r = 0, | |
s = t.toLowerCase().match(yt) || []; | |
if (st.isFunction(n)) | |
for (; i = s[r++];) "+" === i.charAt(0) ? (i = i.slice(1) || "*", (e[i] = e[i] || []).unshift(n)) : (e[i] = e[i] || []).push(n) | |
} | |
} | |
function H(e, t, n, i) { | |
function r(a) { | |
var l; | |
return s[a] = !0, st.each(e[a] || [], function (e, a) { | |
var u = a(t, n, i); | |
return "string" != typeof u || o || s[u] ? o ? !(l = u) : void 0 : (t.dataTypes.unshift(u), r(u), !1) | |
}), l | |
} | |
var s = {}, o = e === Xn; | |
return r(t.dataTypes[0]) || !s["*"] && r("*") | |
} | |
function U(e, t) { | |
var n, i, r = st.ajaxSettings.flatOptions || {}; | |
for (i in t) void 0 !== t[i] && ((r[i] ? e : n || (n = {}))[i] = t[i]); | |
return n && st.extend(!0, e, n), e | |
} | |
function W(e, t, n) { | |
for (var i, r, s, o, a = e.contents, l = e.dataTypes; | |
"*" === l[0];) l.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type")); | |
if (r) | |
for (o in a) | |
if (a[o] && a[o].test(r)) { | |
l.unshift(o); | |
break | |
} | |
if (l[0] in n) s = l[0]; | |
else { | |
for (o in n) { | |
if (!l[0] || e.converters[o + " " + l[0]]) { | |
s = o; | |
break | |
} | |
i || (i = o) | |
} | |
s = s || i | |
} | |
return s ? (s !== l[0] && l.unshift(s), n[s]) : void 0 | |
} | |
function B(e, t, n, i) { | |
var r, s, o, a, l, u = {}, c = e.dataTypes.slice(); | |
if (c[1]) | |
for (o in e.converters) u[o.toLowerCase()] = e.converters[o]; | |
for (s = c.shift(); s;) | |
if (e.responseFields[s] && (n[e.responseFields[s]] = t), !l && i && e.dataFilter && (t = e.dataFilter(t, e.dataType)), l = s, s = c.shift()) | |
if ("*" === s) s = l; | |
else if ("*" !== l && l !== s) { | |
if (o = u[l + " " + s] || u["* " + s], !o) | |
for (r in u) | |
if (a = r.split(" "), a[1] === s && (o = u[l + " " + a[0]] || u["* " + a[0]])) { | |
o === !0 ? o = u[r] : u[r] !== !0 && (s = a[0], c.unshift(a[1])); | |
break | |
} | |
if (o !== !0) | |
if (o && e["throws"]) t = o(t); | |
else try { | |
t = o(t) | |
} catch (d) { | |
return { | |
state: "parsererror", | |
error: o ? d : "No conversion from " + l + " to " + s | |
} | |
} | |
} | |
return { | |
state: "success", | |
data: t | |
} | |
} | |
function q(e, t, n, i) { | |
var r; | |
if (st.isArray(t)) st.each(t, function (t, r) { | |
n || Jn.test(e) ? i(e, r) : q(e + "[" + ("object" == typeof r ? t : "") + "]", r, n, i) | |
}); | |
else if (n || "object" !== st.type(t)) i(e, t); | |
else | |
for (r in t) q(e + "[" + r + "]", t[r], n, i) | |
} | |
function X() { | |
try { | |
return new e.XMLHttpRequest | |
} catch (t) {} | |
} | |
function V() { | |
try { | |
return new e.ActiveXObject("Microsoft.XMLHTTP") | |
} catch (t) {} | |
} | |
function Y(e) { | |
return st.isWindow(e) ? e : 9 === e.nodeType ? e.defaultView || e.parentWindow : !1 | |
} | |
var $ = [], | |
J = $.slice, | |
G = $.concat, | |
K = $.push, | |
Q = $.indexOf, | |
Z = {}, et = Z.toString, | |
tt = Z.hasOwnProperty, | |
nt = "".trim, | |
it = {}, rt = "1.11.0", | |
st = function (e, t) { | |
return new st.fn.init(e, t) | |
}, ot = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, | |
at = /^-ms-/, | |
lt = /-([\da-z])/gi, | |
ut = function (e, t) { | |
return t.toUpperCase() | |
}; | |
st.fn = st.prototype = { | |
jquery: rt, | |
constructor: st, | |
selector: "", | |
length: 0, | |
toArray: function () { | |
return J.call(this) | |
}, | |
get: function (e) { | |
return null != e ? 0 > e ? this[e + this.length] : this[e] : J.call(this) | |
}, | |
pushStack: function (e) { | |
var t = st.merge(this.constructor(), e); | |
return t.prevObject = this, t.context = this.context, t | |
}, | |
each: function (e, t) { | |
return st.each(this, e, t) | |
}, | |
map: function (e) { | |
return this.pushStack(st.map(this, function (t, n) { | |
return e.call(t, n, t) | |
})) | |
}, | |
slice: function () { | |
return this.pushStack(J.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]] : []) | |
}, | |
end: function () { | |
return this.prevObject || this.constructor(null) | |
}, | |
push: K, | |
sort: $.sort, | |
splice: $.splice | |
}, st.extend = st.fn.extend = function () { | |
var e, t, n, i, r, s, o = arguments[0] || {}, a = 1, | |
l = arguments.length, | |
u = !1; | |
for ("boolean" == typeof o && (u = o, o = arguments[a] || {}, a++), "object" == typeof o || st.isFunction(o) || (o = {}), a === l && (o = this, a--); l > a; a++) | |
if (null != (r = arguments[a])) | |
for (i in r) e = o[i], n = r[i], o !== n && (u && n && (st.isPlainObject(n) || (t = st.isArray(n))) ? (t ? (t = !1, s = e && st.isArray(e) ? e : []) : s = e && st.isPlainObject(e) ? e : {}, o[i] = st.extend(u, s, n)) : void 0 !== n && (o[i] = n)); | |
return o | |
}, st.extend({ | |
expando: "jQuery" + (rt + Math.random()).replace(/\D/g, ""), | |
isReady: !0, | |
error: function (e) { | |
throw new Error(e) | |
}, | |
noop: function () {}, | |
isFunction: function (e) { | |
return "function" === st.type(e) | |
}, | |
isArray: Array.isArray || function (e) { | |
return "array" === st.type(e) | |
}, | |
isWindow: function (e) { | |
return null != e && e == e.window | |
}, | |
isNumeric: function (e) { | |
return e - parseFloat(e) >= 0 | |
}, | |
isEmptyObject: function (e) { | |
var t; | |
for (t in e) return !1; | |
return !0 | |
}, | |
isPlainObject: function (e) { | |
var t; | |
if (!e || "object" !== st.type(e) || e.nodeType || st.isWindow(e)) return !1; | |
try { | |
if (e.constructor && !tt.call(e, "constructor") && !tt.call(e.constructor.prototype, "isPrototypeOf")) return !1 | |
} catch (n) { | |
return !1 | |
} | |
if (it.ownLast) | |
for (t in e) return tt.call(e, t); | |
for (t in e); | |
return void 0 === t || tt.call(e, t) | |
}, | |
type: function (e) { | |
return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? Z[et.call(e)] || "object" : typeof e | |
}, | |
globalEval: function (t) { | |
t && st.trim(t) && (e.execScript || function (t) { | |
e.eval.call(e, t) | |
})(t) | |
}, | |
camelCase: function (e) { | |
return e.replace(at, "ms-").replace(lt, ut) | |
}, | |
nodeName: function (e, t) { | |
return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() | |
}, | |
each: function (e, t, i) { | |
var r, s = 0, | |
o = e.length, | |
a = n(e); | |
if (i) { | |
if (a) | |
for (; o > s && (r = t.apply(e[s], i), r !== !1); s++); | |
else | |
for (s in e) | |
if (r = t.apply(e[s], i), r === !1) break | |
} else if (a) | |
for (; o > s && (r = t.call(e[s], s, e[s]), r !== !1); s++); | |
else | |
for (s in e) | |
if (r = t.call(e[s], s, e[s]), r === !1) break; return e | |
}, | |
trim: nt && !nt.call("\ufeff\xa0") ? function (e) { | |
return null == e ? "" : nt.call(e) | |
} : function (e) { | |
return null == e ? "" : (e + "").replace(ot, "") | |
}, | |
makeArray: function (e, t) { | |
var i = t || []; | |
return null != e && (n(Object(e)) ? st.merge(i, "string" == typeof e ? [e] : e) : K.call(i, e)), i | |
}, | |
inArray: function (e, t, n) { | |
var i; | |
if (t) { | |
if (Q) return Q.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, t) { | |
for (var n = +t.length, i = 0, r = e.length; n > i;) e[r++] = t[i++]; | |
if (n !== n) | |
for (; void 0 !== t[i];) e[r++] = t[i++]; | |
return e.length = r, e | |
}, | |
grep: function (e, t, n) { | |
for (var i, r = [], s = 0, o = e.length, a = !n; o > s; s++) i = !t(e[s], s), i !== a && r.push(e[s]); | |
return r | |
}, | |
map: function (e, t, i) { | |
var r, s = 0, | |
o = e.length, | |
a = n(e), | |
l = []; | |
if (a) | |
for (; o > s; s++) r = t(e[s], s, i), null != r && l.push(r); | |
else | |
for (s in e) r = t(e[s], s, i), null != r && l.push(r); | |
return G.apply([], l) | |
}, | |
guid: 1, | |
proxy: function (e, t) { | |
var n, i, r; | |
return "string" == typeof t && (r = e[t], t = e, e = r), st.isFunction(e) ? (n = J.call(arguments, 2), i = function () { | |
return e.apply(t || this, n.concat(J.call(arguments))) | |
}, i.guid = e.guid = e.guid || st.guid++, i) : void 0 | |
}, | |
now: function () { | |
return +new Date | |
}, | |
support: it | |
}), st.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function (e, t) { | |
Z["[object " + t + "]"] = t.toLowerCase() | |
}); | |
var ct = function (e) { | |
function t(e, t, n, i) { | |
var r, s, o, a, l, u, d, h, m, g; | |
if ((t ? t.ownerDocument || t : H) !== A && D(t), t = t || A, n = n || [], !e || "string" != typeof e) return n; | |
if (1 !== (a = t.nodeType) && 9 !== a) return []; | |
if (L && !i) { | |
if (r = bt.exec(e)) | |
if (o = r[1]) { | |
if (9 === a) { | |
if (s = t.getElementById(o), !s || !s.parentNode) return n; | |
if (s.id === o) return n.push(s), n | |
} else if (t.ownerDocument && (s = t.ownerDocument.getElementById(o)) && M(t, s) && s.id === o) return n.push(s), n | |
} else { | |
if (r[2]) return Z.apply(n, t.getElementsByTagName(e)), n; | |
if ((o = r[3]) && S.getElementsByClassName && t.getElementsByClassName) return Z.apply(n, t.getElementsByClassName(o)), n | |
} | |
if (S.qsa && (!O || !O.test(e))) { | |
if (h = d = z, m = t, g = 9 === a && e, 1 === a && "object" !== t.nodeName.toLowerCase()) { | |
for (u = p(e), (d = t.getAttribute("id")) ? h = d.replace(yt, "\\$&") : t.setAttribute("id", h), h = "[id='" + h + "'] ", l = u.length; l--;) u[l] = h + f(u[l]); | |
m = kt.test(e) && c(t.parentNode) || t, g = u.join(",") | |
} | |
if (g) try { | |
return Z.apply(n, m.querySelectorAll(g)), n | |
} catch (v) {} finally { | |
d || t.removeAttribute("id") | |
} | |
} | |
} | |
return w(e.replace(lt, "$1"), t, n, i) | |
} | |
function n() { | |
function e(n, i) { | |
return t.push(n + " ") > x.cacheLength && delete e[t.shift()], e[n + " "] = i | |
} | |
var t = []; | |
return e | |
} | |
function i(e) { | |
return e[z] = !0, e | |
} | |
function r(e) { | |
var t = A.createElement("div"); | |
try { | |
return !!e(t) | |
} catch (n) { | |
return !1 | |
} finally { | |
t.parentNode && t.parentNode.removeChild(t), t = null | |
} | |
} | |
function s(e, t) { | |
for (var n = e.split("|"), i = e.length; i--;) x.attrHandle[n[i]] = t | |
} | |
function o(e, t) { | |
var n = t && e, | |
i = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || $) - (~e.sourceIndex || $); | |
if (i) return i; | |
if (n) | |
for (; n = n.nextSibling;) | |
if (n === t) return -1; | |
return e ? 1 : -1 | |
} | |
function a(e) { | |
return function (t) { | |
var n = t.nodeName.toLowerCase(); | |
return "input" === n && t.type === e | |
} | |
} | |
function l(e) { | |
return function (t) { | |
var n = t.nodeName.toLowerCase(); | |
return ("input" === n || "button" === n) && t.type === e | |
} | |
} | |
function u(e) { | |
return i(function (t) { | |
return t = +t, i(function (n, i) { | |
for (var r, s = e([], n.length, t), o = s.length; o--;) n[r = s[o]] && (n[r] = !(i[r] = n[r])) | |
}) | |
}) | |
} | |
function c(e) { | |
return e && typeof e.getElementsByTagName !== Y && e | |
} | |
function d() {} | |
function p(e, n) { | |
var i, r, s, o, a, l, u, c = q[e + " "]; | |
if (c) return n ? 0 : c.slice(0); | |
for (a = e, l = [], u = x.preFilter; a;) { | |
(!i || (r = ut.exec(a))) && (r && (a = a.slice(r[0].length) || a), l.push(s = [])), i = !1, (r = ct.exec(a)) && (i = r.shift(), s.push({ | |
value: i, | |
type: r[0].replace(lt, " ") | |
}), a = a.slice(i.length)); | |
for (o in x.filter)!(r = ht[o].exec(a)) || u[o] && !(r = u[o](r)) || (i = r.shift(), s.push({ | |
value: i, | |
type: o, | |
matches: r | |
}), a = a.slice(i.length)); | |
if (!i) break | |
} | |
return n ? a.length : a ? t.error(e) : q(e, l).slice(0) | |
} | |
function f(e) { | |
for (var t = 0, n = e.length, i = ""; n > t; t++) i += e[t].value; | |
return i | |
} | |
function h(e, t, n) { | |
var i = t.dir, | |
r = n && "parentNode" === i, | |
s = W++; | |
return t.first ? function (t, n, s) { | |
for (; t = t[i];) | |
if (1 === t.nodeType || r) return e(t, n, s) | |
} : function (t, n, o) { | |
var a, l, u = [U, s]; | |
if (o) { | |
for (; t = t[i];) | |
if ((1 === t.nodeType || r) && e(t, n, o)) return !0 | |
} else | |
for (; t = t[i];) | |
if (1 === t.nodeType || r) { | |
if (l = t[z] || (t[z] = {}), (a = l[i]) && a[0] === U && a[1] === s) return u[2] = a[2]; | |
if (l[i] = u, u[2] = e(t, n, o)) return !0 | |
} | |
} | |
} | |
function m(e) { | |
return e.length > 1 ? function (t, n, i) { | |
for (var r = e.length; r--;) | |
if (!e[r](t, n, i)) return !1; | |
return !0 | |
} : e[0] | |
} | |
function g(e, t, n, i, r) { | |
for (var s, o = [], a = 0, l = e.length, u = null != t; l > a; a++)(s = e[a]) && (!n || n(s, i, r)) && (o.push(s), u && t.push(a)); | |
return o | |
} | |
function v(e, t, n, r, s, o) { | |
return r && !r[z] && (r = v(r)), s && !s[z] && (s = v(s, o)), i(function (i, o, a, l) { | |
var u, c, d, p = [], | |
f = [], | |
h = o.length, | |
m = i || y(t || "*", a.nodeType ? [a] : a, []), | |
v = !e || !i && t ? m : g(m, p, e, a, l), | |
b = n ? s || (i ? e : h || r) ? [] : o : v; | |
if (n && n(v, b, a, l), r) | |
for (u = g(b, f), r(u, [], a, l), c = u.length; c--;)(d = u[c]) && (b[f[c]] = !(v[f[c]] = d)); | |
if (i) { | |
if (s || e) { | |
if (s) { | |
for (u = [], c = b.length; c--;)(d = b[c]) && u.push(v[c] = d); | |
s(null, b = [], u, l) | |
} | |
for (c = b.length; c--;)(d = b[c]) && (u = s ? tt.call(i, d) : p[c]) > -1 && (i[u] = !(o[u] = d)) | |
} | |
} else b = g(b === o ? b.splice(h, b.length) : b), s ? s(null, o, b, l) : Z.apply(o, b) | |
}) | |
} | |
function b(e) { | |
for (var t, n, i, r = e.length, s = x.relative[e[0].type], o = s || x.relative[" "], a = s ? 1 : 0, l = h(function (e) { | |
return e === t | |
}, o, !0), u = h(function (e) { | |
return tt.call(t, e) > -1 | |
}, o, !0), c = [ | |
function (e, n, i) { | |
return !s && (i || n !== R) || ((t = n).nodeType ? l(e, n, i) : u(e, n, i)) | |
} | |
]; r > a; a++) | |
if (n = x.relative[e[a].type]) c = [h(m(c), n)]; | |
else { | |
if (n = x.filter[e[a].type].apply(null, e[a].matches), n[z]) { | |
for (i = ++a; r > i && !x.relative[e[i].type]; i++); | |
return v(a > 1 && m(c), a > 1 && f(e.slice(0, a - 1).concat({ | |
value: " " === e[a - 2].type ? "*" : "" | |
})).replace(lt, "$1"), n, i > a && b(e.slice(a, i)), r > i && b(e = e.slice(i)), r > i && f(e)) | |
} | |
c.push(n) | |
} | |
return m(c) | |
} | |
function k(e, n) { | |
var r = n.length > 0, | |
s = e.length > 0, | |
o = function (i, o, a, l, u) { | |
var c, d, p, f = 0, | |
h = "0", | |
m = i && [], | |
v = [], | |
b = R, | |
k = i || s && x.find.TAG("*", u), | |
y = U += null == b ? 1 : Math.random() || .1, | |
w = k.length; | |
for (u && (R = o !== A && o); h !== w && null != (c = k[h]); h++) { | |
if (s && c) { | |
for (d = 0; p = e[d++];) | |
if (p(c, o, a)) { | |
l.push(c); | |
break | |
} | |
u && (U = y) | |
} | |
r && ((c = !p && c) && f--, i && m.push(c)) | |
} | |
if (f += h, r && h !== f) { | |
for (d = 0; p = n[d++];) p(m, v, o, a); | |
if (i) { | |
if (f > 0) | |
for (; h--;) m[h] || v[h] || (v[h] = K.call(l)); | |
v = g(v) | |
} | |
Z.apply(l, v), u && !i && v.length > 0 && f + n.length > 1 && t.uniqueSort(l) | |
} | |
return u && (U = y, R = b), m | |
}; | |
return r ? i(o) : o | |
} | |
function y(e, n, i) { | |
for (var r = 0, s = n.length; s > r; r++) t(e, n[r], i); | |
return i | |
} | |
function w(e, t, n, i) { | |
var r, s, o, a, l, u = p(e); | |
if (!i && 1 === u.length) { | |
if (s = u[0] = u[0].slice(0), s.length > 2 && "ID" === (o = s[0]).type && S.getById && 9 === t.nodeType && L && x.relative[s[1].type]) { | |
if (t = (x.find.ID(o.matches[0].replace(wt, Tt), t) || [])[0], !t) return n; | |
e = e.slice(s.shift().value.length) | |
} | |
for (r = ht.needsContext.test(e) ? 0 : s.length; r-- && (o = s[r], !x.relative[a = o.type]);) | |
if ((l = x.find[a]) && (i = l(o.matches[0].replace(wt, Tt), kt.test(s[0].type) && c(t.parentNode) || t))) { | |
if (s.splice(r, 1), e = i.length && f(s), !e) return Z.apply(n, i), n; | |
break | |
} | |
} | |
return C(e, u)(i, t, !L, n, kt.test(e) && c(t.parentNode) || t), n | |
} | |
var T, S, x, E, I, C, R, N, _, D, A, P, L, O, j, F, M, z = "sizzle" + -new Date, | |
H = e.document, | |
U = 0, | |
W = 0, | |
B = n(), | |
q = n(), | |
X = n(), | |
V = function (e, t) { | |
return e === t && (_ = !0), 0 | |
}, Y = "undefined", | |
$ = 1 << 31, | |
J = {}.hasOwnProperty, | |
G = [], | |
K = G.pop, | |
Q = G.push, | |
Z = G.push, | |
et = G.slice, | |
tt = G.indexOf || function (e) { | |
for (var t = 0, n = this.length; n > t; t++) | |
if (this[t] === e) return t; | |
return -1 | |
}, nt = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", | |
it = "[\\x20\\t\\r\\n\\f]", | |
rt = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", | |
st = rt.replace("w", "w#"), | |
ot = "\\[" + it + "*(" + rt + ")" + it + "*(?:([*^$|!~]?=)" + it + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + st + ")|)|)" + it + "*\\]", | |
at = ":(" + rt + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + ot.replace(3, 8) + ")*)|.*)\\)|)", | |
lt = new RegExp("^" + it + "+|((?:^|[^\\\\])(?:\\\\.)*)" + it + "+$", "g"), | |
ut = new RegExp("^" + it + "*," + it + "*"), | |
ct = new RegExp("^" + it + "*([>+~]|" + it + ")" + it + "*"), | |
dt = new RegExp("=" + it + "*([^\\]'\"]*?)" + it + "*\\]", "g"), | |
pt = new RegExp(at), | |
ft = new RegExp("^" + st + "$"), | |
ht = { | |
ID: new RegExp("^#(" + rt + ")"), | |
CLASS: new RegExp("^\\.(" + rt + ")"), | |
TAG: new RegExp("^(" + rt.replace("w", "w*") + ")"), | |
ATTR: new RegExp("^" + ot), | |
PSEUDO: new RegExp("^" + at), | |
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + it + "*(even|odd|(([+-]|)(\\d*)n|)" + it + "*(?:([+-]|)" + it + "*(\\d+)|))" + it + "*\\)|)", "i"), | |
bool: new RegExp("^(?:" + nt + ")$", "i"), | |
needsContext: new RegExp("^" + it + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + it + "*((?:-\\d)?\\d*)" + it + "*\\)|)(?=[^-]|$)", "i") | |
}, mt = /^(?:input|select|textarea|button)$/i, | |
gt = /^h\d$/i, | |
vt = /^[^{]+\{\s*\[native \w/, | |
bt = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, | |
kt = /[+~]/, | |
yt = /'|\\/g, | |
wt = new RegExp("\\\\([\\da-f]{1,6}" + it + "?|(" + it + ")|.)", "ig"), | |
Tt = 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 { | |
Z.apply(G = et.call(H.childNodes), H.childNodes), G[H.childNodes.length].nodeType | |
} catch (St) { | |
Z = { | |
apply: G.length ? function (e, t) { | |
Q.apply(e, et.call(t)) | |
} : function (e, t) { | |
for (var n = e.length, i = 0; e[n++] = t[i++];); | |
e.length = n - 1 | |
} | |
} | |
} | |
S = t.support = {}, I = t.isXML = function (e) { | |
var t = e && (e.ownerDocument || e).documentElement; | |
return t ? "HTML" !== t.nodeName : !1 | |
}, D = t.setDocument = function (e) { | |
var t, n = e ? e.ownerDocument || e : H, | |
i = n.defaultView; | |
return n !== A && 9 === n.nodeType && n.documentElement ? (A = n, P = n.documentElement, L = !I(n), i && i !== i.top && (i.addEventListener ? i.addEventListener("unload", function () { | |
D() | |
}, !1) : i.attachEvent && i.attachEvent("onunload", function () { | |
D() | |
})), S.attributes = r(function (e) { | |
return e.className = "i", !e.getAttribute("className") | |
}), S.getElementsByTagName = r(function (e) { | |
return e.appendChild(n.createComment("")), !e.getElementsByTagName("*").length | |
}), S.getElementsByClassName = vt.test(n.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 | |
}), S.getById = r(function (e) { | |
return P.appendChild(e).id = z, !n.getElementsByName || !n.getElementsByName(z).length | |
}), S.getById ? (x.find.ID = function (e, t) { | |
if (typeof t.getElementById !== Y && L) { | |
var n = t.getElementById(e); | |
return n && n.parentNode ? [n] : [] | |
} | |
}, x.filter.ID = function (e) { | |
var t = e.replace(wt, Tt); | |
return function (e) { | |
return e.getAttribute("id") === t | |
} | |
}) : (delete x.find.ID, x.filter.ID = function (e) { | |
var t = e.replace(wt, Tt); | |
return function (e) { | |
var n = typeof e.getAttributeNode !== Y && e.getAttributeNode("id"); | |
return n && n.value === t | |
} | |
}), x.find.TAG = S.getElementsByTagName ? function (e, t) { | |
return typeof t.getElementsByTagName !== Y ? t.getElementsByTagName(e) : void 0 | |
} : function (e, t) { | |
var n, i = [], | |
r = 0, | |
s = t.getElementsByTagName(e); | |
if ("*" === e) { | |
for (; n = s[r++];) 1 === n.nodeType && i.push(n); | |
return i | |
} | |
return s | |
}, x.find.CLASS = S.getElementsByClassName && function (e, t) { | |
return typeof t.getElementsByClassName !== Y && L ? t.getElementsByClassName(e) : void 0 | |
}, j = [], O = [], (S.qsa = vt.test(n.querySelectorAll)) && (r(function (e) { | |
e.innerHTML = "<select t=''><option selected=''></option></select>", e.querySelectorAll("[t^='']").length && O.push("[*^$]=" + it + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || O.push("\\[" + it + "*(?:value|" + nt + ")"), e.querySelectorAll(":checked").length || O.push(":checked") | |
}), r(function (e) { | |
var t = n.createElement("input"); | |
t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && O.push("name" + it + "*[*^$|!~]?="), e.querySelectorAll(":enabled").length || O.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), O.push(",.*:") | |
})), (S.matchesSelector = vt.test(F = P.webkitMatchesSelector || P.mozMatchesSelector || P.oMatchesSelector || P.msMatchesSelector)) && r(function (e) { | |
S.disconnectedMatch = F.call(e, "div"), F.call(e, "[s!='']:x"), j.push("!=", at) | |
}), O = O.length && new RegExp(O.join("|")), j = j.length && new RegExp(j.join("|")), t = vt.test(P.compareDocumentPosition), M = t || vt.test(P.contains) ? 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 | |
}, V = t ? function (e, t) { | |
if (e === t) return _ = !0, 0; | |
var i = !e.compareDocumentPosition - !t.compareDocumentPosition; | |
return i ? i : (i = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1, 1 & i || !S.sortDetached && t.compareDocumentPosition(e) === i ? e === n || e.ownerDocument === H && M(H, e) ? -1 : t === n || t.ownerDocument === H && M(H, t) ? 1 : N ? tt.call(N, e) - tt.call(N, t) : 0 : 4 & i ? -1 : 1) | |
} : function (e, t) { | |
if (e === t) return _ = !0, 0; | |
var i, r = 0, | |
s = e.parentNode, | |
a = t.parentNode, | |
l = [e], | |
u = [t]; | |
if (!s || !a) return e === n ? -1 : t === n ? 1 : s ? -1 : a ? 1 : N ? tt.call(N, e) - tt.call(N, t) : 0; | |
if (s === a) return o(e, t); | |
for (i = e; i = i.parentNode;) l.unshift(i); | |
for (i = t; i = i.parentNode;) u.unshift(i); | |
for (; l[r] === u[r];) r++; | |
return r ? o(l[r], u[r]) : l[r] === H ? -1 : u[r] === H ? 1 : 0 | |
}, n) : A | |
}, t.matches = function (e, n) { | |
return t(e, null, null, n) | |
}, t.matchesSelector = function (e, n) { | |
if ((e.ownerDocument || e) !== A && D(e), n = n.replace(dt, "='$1']"), !(!S.matchesSelector || !L || j && j.test(n) || O && O.test(n))) try { | |
var i = F.call(e, n); | |
if (i || S.disconnectedMatch || e.document && 11 !== e.document.nodeType) return i | |
} catch (r) {} | |
return t(n, A, null, [e]).length > 0 | |
}, t.contains = function (e, t) { | |
return (e.ownerDocument || e) !== A && D(e), M(e, t) | |
}, t.attr = function (e, t) { | |
(e.ownerDocument || e) !== A && D(e); | |
var n = x.attrHandle[t.toLowerCase()], | |
i = n && J.call(x.attrHandle, t.toLowerCase()) ? n(e, t, !L) : void 0; | |
return void 0 !== i ? i : S.attributes || !L ? e.getAttribute(t) : (i = e.getAttributeNode(t)) && i.specified ? i.value : null | |
}, t.error = function (e) { | |
throw new Error("Syntax error, unrecognized expression: " + e) | |
}, t.uniqueSort = function (e) { | |
var t, n = [], | |
i = 0, | |
r = 0; | |
if (_ = !S.detectDuplicates, N = !S.sortStable && e.slice(0), e.sort(V), _) { | |
for (; t = e[r++];) t === e[r] && (i = n.push(r)); | |
for (; i--;) e.splice(n[i], 1) | |
} | |
return N = null, e | |
}, E = t.getText = function (e) { | |
var t, n = "", | |
i = 0, | |
r = e.nodeType; | |
if (r) { | |
if (1 === r || 9 === r || 11 === r) { | |
if ("string" == typeof e.textContent) return e.textContent; | |
for (e = e.firstChild; e; e = e.nextSibling) n += E(e) | |
} else if (3 === r || 4 === r) return e.nodeValue | |
} else | |
for (; t = e[i++];) n += E(t); | |
return n | |
}, x = t.selectors = { | |
cacheLength: 50, | |
createPseudo: i, | |
match: ht, | |
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(wt, Tt), e[3] = (e[4] || e[5] || "").replace(wt, Tt), "~=" === 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] || t.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] && t.error(e[0]), e | |
}, | |
PSEUDO: function (e) { | |
var t, n = !e[5] && e[2]; | |
return ht.CHILD.test(e[0]) ? null : (e[3] && void 0 !== e[4] ? e[2] = e[4] : n && pt.test(n) && (t = p(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3)) | |
} | |
}, | |
filter: { | |
TAG: function (e) { | |
var t = e.replace(wt, Tt).toLowerCase(); | |
return "*" === e ? function () { | |
return !0 | |
} : function (e) { | |
return e.nodeName && e.nodeName.toLowerCase() === t | |
} | |
}, | |
CLASS: function (e) { | |
var t = B[e + " "]; | |
return t || (t = new RegExp("(^|" + it + ")" + e + "(" + it + "|$)")) && B(e, function (e) { | |
return t.test("string" == typeof e.className && e.className || typeof e.getAttribute !== Y && e.getAttribute("class") || "") | |
}) | |
}, | |
ATTR: function (e, n, i) { | |
return function (r) { | |
var s = t.attr(r, e); | |
return null == s ? "!=" === n : n ? (s += "", "=" === n ? s === i : "!=" === n ? s !== i : "^=" === n ? i && 0 === s.indexOf(i) : "*=" === n ? i && s.indexOf(i) > -1 : "$=" === n ? i && s.slice(-i.length) === i : "~=" === n ? (" " + s + " ").indexOf(i) > -1 : "|=" === n ? s === i || s.slice(0, i.length + 1) === i + "-" : !1) : !0 | |
} | |
}, | |
CHILD: function (e, t, n, i, r) { | |
var s = "nth" !== e.slice(0, 3), | |
o = "last" !== e.slice(-4), | |
a = "of-type" === t; | |
return 1 === i && 0 === r ? function (e) { | |
return !!e.parentNode | |
} : function (t, n, l) { | |
var u, c, d, p, f, h, m = s !== o ? "nextSibling" : "previousSibling", | |
g = t.parentNode, | |
v = a && t.nodeName.toLowerCase(), | |
b = !l && !a; | |
if (g) { | |
if (s) { | |
for (; m;) { | |
for (d = t; d = d[m];) | |
if (a ? d.nodeName.toLowerCase() === v : 1 === d.nodeType) return !1; | |
h = m = "only" === e && !h && "nextSibling" | |
} | |
return !0 | |
} | |
if (h = [o ? g.firstChild : g.lastChild], o && b) { | |
for (c = g[z] || (g[z] = {}), u = c[e] || [], f = u[0] === U && u[1], p = u[0] === U && u[2], d = f && g.childNodes[f]; d = ++f && d && d[m] || (p = f = 0) || h.pop();) | |
if (1 === d.nodeType && ++p && d === t) { | |
c[e] = [U, f, p]; | |
break | |
} | |
} else if (b && (u = (t[z] || (t[z] = {}))[e]) && u[0] === U) p = u[1]; | |
else | |
for (; | |
(d = ++f && d && d[m] || (p = f = 0) || h.pop()) && ((a ? d.nodeName.toLowerCase() !== v : 1 !== d.nodeType) || !++p || (b && ((d[z] || (d[z] = {}))[e] = [U, p]), d !== t));); | |
return p -= r, p === i || p % i === 0 && p / i >= 0 | |
} | |
} | |
}, | |
PSEUDO: function (e, n) { | |
var r, s = x.pseudos[e] || x.setFilters[e.toLowerCase()] || t.error("unsupported pseudo: " + e); | |
return s[z] ? s(n) : s.length > 1 ? (r = [e, e, "", n], x.setFilters.hasOwnProperty(e.toLowerCase()) ? i(function (e, t) { | |
for (var i, r = s(e, n), o = r.length; o--;) i = tt.call(e, r[o]), e[i] = !(t[i] = r[o]) | |
}) : function (e) { | |
return s(e, 0, r) | |
}) : s | |
} | |
}, | |
pseudos: { | |
not: i(function (e) { | |
var t = [], | |
n = [], | |
r = C(e.replace(lt, "$1")); | |
return r[z] ? i(function (e, t, n, i) { | |
for (var s, o = r(e, null, i, []), a = e.length; a--;)(s = o[a]) && (e[a] = !(t[a] = s)) | |
}) : function (e, i, s) { | |
return t[0] = e, r(t, null, s, n), !n.pop() | |
} | |
}), | |
has: i(function (e) { | |
return function (n) { | |
return t(e, n).length > 0 | |
} | |
}), | |
contains: i(function (e) { | |
return function (t) { | |
return (t.textContent || t.innerText || E(t)).indexOf(e) > -1 | |
} | |
}), | |
lang: i(function (e) { | |
return ft.test(e || "") || t.error("unsupported lang: " + e), e = e.replace(wt, Tt).toLowerCase(), | |
function (t) { | |
var n; | |
do | |
if (n = L ? 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 === P | |
}, | |
focus: function (e) { | |
return e === A.activeElement && (!A.hasFocus || A.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.nodeType < 6) return !1; | |
return !0 | |
}, | |
parent: function (e) { | |
return !x.pseudos.empty(e) | |
}, | |
header: function (e) { | |
return gt.test(e.nodeName) | |
}, | |
input: function (e) { | |
return mt.test(e.nodeName) | |
}, | |
button: function (e) { | |
var t = e.nodeName.toLowerCase(); | |
return "input" === t && "button" === e.type || "button" === t | |
}, | |
text: function (e) { | |
var t; | |
return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase()) | |
}, | |
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 | |
}) | |
} | |
}, x.pseudos.nth = x.pseudos.eq; | |
for (T in { | |
radio: !0, | |
checkbox: !0, | |
file: !0, | |
password: !0, | |
image: !0 | |
}) x.pseudos[T] = a(T); | |
for (T in { | |
submit: !0, | |
reset: !0 | |
}) x.pseudos[T] = l(T); | |
return d.prototype = x.filters = x.pseudos, x.setFilters = new d, C = t.compile = function (e, t) { | |
var n, i = [], | |
r = [], | |
s = X[e + " "]; | |
if (!s) { | |
for (t || (t = p(e)), n = t.length; n--;) s = b(t[n]), s[z] ? i.push(s) : r.push(s); | |
s = X(e, k(r, i)) | |
} | |
return s | |
}, S.sortStable = z.split("").sort(V).join("") === z, S.detectDuplicates = !! _, D(), S.sortDetached = r(function (e) { | |
return 1 & e.compareDocumentPosition(A.createElement("div")) | |
}), r(function (e) { | |
return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href") | |
}) || s("type|href|height|width", function (e, t, n) { | |
return n ? void 0 : e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2) | |
}), S.attributes && r(function (e) { | |
return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value") | |
}) || s("value", function (e, t, n) { | |
return n || "input" !== e.nodeName.toLowerCase() ? void 0 : e.defaultValue | |
}), r(function (e) { | |
return null == e.getAttribute("disabled") | |
}) || s(nt, function (e, t, n) { | |
var i; | |
return n ? void 0 : e[t] === !0 ? t.toLowerCase() : (i = e.getAttributeNode(t)) && i.specified ? i.value : null | |
}), t | |
}(e); | |
st.find = ct, st.expr = ct.selectors, st.expr[":"] = st.expr.pseudos, st.unique = ct.uniqueSort, st.text = ct.getText, st.isXMLDoc = ct.isXML, st.contains = ct.contains; | |
var dt = st.expr.match.needsContext, | |
pt = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, | |
ft = /^.[^:#\[\.,]*$/; | |
st.filter = function (e, t, n) { | |
var i = t[0]; | |
return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === i.nodeType ? st.find.matchesSelector(i, e) ? [i] : [] : st.find.matches(e, st.grep(t, function (e) { | |
return 1 === e.nodeType | |
})) | |
}, st.fn.extend({ | |
find: function (e) { | |
var t, n = [], | |
i = this, | |
r = i.length; | |
if ("string" != typeof e) return this.pushStack(st(e).filter(function () { | |
for (t = 0; r > t; t++) | |
if (st.contains(i[t], this)) return !0 | |
})); | |
for (t = 0; r > t; t++) st.find(e, i[t], n); | |
return n = this.pushStack(r > 1 ? st.unique(n) : n), n.selector = this.selector ? this.selector + " " + e : e, n | |
}, | |
filter: function (e) { | |
return this.pushStack(i(this, e || [], !1)) | |
}, | |
not: function (e) { | |
return this.pushStack(i(this, e || [], !0)) | |
}, | |
is: function (e) { | |
return !!i(this, "string" == typeof e && dt.test(e) ? st(e) : e || [], !1).length | |
} | |
}); | |
var ht, mt = e.document, | |
gt = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, | |
vt = st.fn.init = function (e, t) { | |
var n, i; | |
if (!e) return this; | |
if ("string" == typeof e) { | |
if (n = "<" === e.charAt(0) && ">" === e.charAt(e.length - 1) && e.length >= 3 ? [null, e, null] : gt.exec(e), !n || !n[1] && t) return !t || t.jquery ? (t || ht).find(e) : this.constructor(t).find(e); | |
if (n[1]) { | |
if (t = t instanceof st ? t[0] : t, st.merge(this, st.parseHTML(n[1], t && t.nodeType ? t.ownerDocument || t : mt, !0)), pt.test(n[1]) && st.isPlainObject(t)) | |
for (n in t) st.isFunction(this[n]) ? this[n](t[n]) : this.attr(n, t[n]); | |
return this | |
} | |
if (i = mt.getElementById(n[2]), i && i.parentNode) { | |
if (i.id !== n[2]) return ht.find(e); | |
this.length = 1, this[0] = i | |
} | |
return this.context = mt, this.selector = e, this | |
} | |
return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : st.isFunction(e) ? "undefined" != typeof ht.ready ? ht.ready(e) : e(st) : (void 0 !== e.selector && (this.selector = e.selector, this.context = e.context), st.makeArray(e, this)) | |
}; | |
vt.prototype = st.fn, ht = st(mt); | |
var bt = /^(?:parents|prev(?:Until|All))/, | |
kt = { | |
children: !0, | |
contents: !0, | |
next: !0, | |
prev: !0 | |
}; | |
st.extend({ | |
dir: function (e, t, n) { | |
for (var i = [], r = e[t]; r && 9 !== r.nodeType && (void 0 === n || 1 !== r.nodeType || !st(r).is(n));) 1 === r.nodeType && i.push(r), r = r[t]; | |
return i | |
}, | |
sibling: function (e, t) { | |
for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e); | |
return n | |
} | |
}), st.fn.extend({ | |
has: function (e) { | |
var t, n = st(e, this), | |
i = n.length; | |
return this.filter(function () { | |
for (t = 0; i > t; t++) | |
if (st.contains(this, n[t])) return !0 | |
}) | |
}, | |
closest: function (e, t) { | |
for (var n, i = 0, r = this.length, s = [], o = dt.test(e) || "string" != typeof e ? st(e, t || this.context) : 0; r > i; i++) | |
for (n = this[i]; n && n !== t; n = n.parentNode) | |
if (n.nodeType < 11 && (o ? o.index(n) > -1 : 1 === n.nodeType && st.find.matchesSelector(n, e))) { | |
s.push(n); | |
break | |
} | |
return this.pushStack(s.length > 1 ? st.unique(s) : s) | |
}, | |
index: function (e) { | |
return e ? "string" == typeof e ? st.inArray(this[0], st(e)) : st.inArray(e.jquery ? e[0] : e, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 | |
}, | |
add: function (e, t) { | |
return this.pushStack(st.unique(st.merge(this.get(), st(e, t)))) | |
}, | |
addBack: function (e) { | |
return this.add(null == e ? this.prevObject : this.prevObject.filter(e)) | |
} | |
}), st.each({ | |
parent: function (e) { | |
var t = e.parentNode; | |
return t && 11 !== t.nodeType ? t : null | |
}, | |
parents: function (e) { | |
return st.dir(e, "parentNode") | |
}, | |
parentsUntil: function (e, t, n) { | |
return st.dir(e, "parentNode", n) | |
}, | |
next: function (e) { | |
return r(e, "nextSibling") | |
}, | |
prev: function (e) { | |
return r(e, "previousSibling") | |
}, | |
nextAll: function (e) { | |
return st.dir(e, "nextSibling") | |
}, | |
prevAll: function (e) { | |
return st.dir(e, "previousSibling") | |
}, | |
nextUntil: function (e, t, n) { | |
return st.dir(e, "nextSibling", n) | |
}, | |
prevUntil: function (e, t, n) { | |
return st.dir(e, "previousSibling", n) | |
}, | |
siblings: function (e) { | |
return st.sibling((e.parentNode || {}).firstChild, e) | |
}, | |
children: function (e) { | |
return st.sibling(e.firstChild) | |
}, | |
contents: function (e) { | |
return st.nodeName(e, "iframe") ? e.contentDocument || e.contentWindow.document : st.merge([], e.childNodes) | |
} | |
}, function (e, t) { | |
st.fn[e] = function (n, i) { | |
var r = st.map(this, t, n); | |
return "Until" !== e.slice(-5) && (i = n), i && "string" == typeof i && (r = st.filter(i, r)), this.length > 1 && (kt[e] || (r = st.unique(r)), bt.test(e) && (r = r.reverse())), this.pushStack(r) | |
} | |
}); | |
var yt = /\S+/g, | |
wt = {}; | |
st.Callbacks = function (e) { | |
e = "string" == typeof e ? wt[e] || s(e) : st.extend({}, e); | |
var t, n, i, r, o, a, l = [], | |
u = !e.once && [], | |
c = function (s) { | |
for (n = e.memory && s, i = !0, o = a || 0, a = 0, r = l.length, t = !0; l && r > o; o++) | |
if (l[o].apply(s[0], s[1]) === !1 && e.stopOnFalse) { | |
n = !1; | |
break | |
} | |
t = !1, l && (u ? u.length && c(u.shift()) : n ? l = [] : d.disable()) | |
}, d = { | |
add: function () { | |
if (l) { | |
var i = l.length; | |
! function s(t) { | |
st.each(t, function (t, n) { | |
var i = st.type(n); | |
"function" === i ? e.unique && d.has(n) || l.push(n) : n && n.length && "string" !== i && s(n) | |
}) | |
}(arguments), t ? r = l.length : n && (a = i, c(n)) | |
} | |
return this | |
}, | |
remove: function () { | |
return l && st.each(arguments, function (e, n) { | |
for (var i; | |
(i = st.inArray(n, l, i)) > -1;) l.splice(i, 1), t && (r >= i && r--, o >= i && o--) | |
}), this | |
}, | |
has: function (e) { | |
return e ? st.inArray(e, l) > -1 : !(!l || !l.length) | |
}, | |
empty: function () { | |
return l = [], r = 0, this | |
}, | |
disable: function () { | |
return l = u = n = void 0, this | |
}, | |
disabled: function () { | |
return !l | |
}, | |
lock: function () { | |
return u = void 0, n || d.disable(), this | |
}, | |
locked: function () { | |
return !u | |
}, | |
fireWith: function (e, n) { | |
return !l || i && !u || (n = n || [], n = [e, n.slice ? n.slice() : n], t ? u.push(n) : c(n)), this | |
}, | |
fire: function () { | |
return d.fireWith(this, arguments), this | |
}, | |
fired: function () { | |
return !!i | |
} | |
}; | |
return d | |
}, st.extend({ | |
Deferred: function (e) { | |
var t = [ | |
["resolve", "done", st.Callbacks("once memory"), "resolved"], | |
["reject", "fail", st.Callbacks("once memory"), "rejected"], | |
["notify", "progress", st.Callbacks("memory")] | |
], | |
n = "pending", | |
i = { | |
state: function () { | |
return n | |
}, | |
always: function () { | |
return r.done(arguments).fail(arguments), this | |
}, | |
then: function () { | |
var e = arguments; | |
return st.Deferred(function (n) { | |
st.each(t, function (t, s) { | |
var o = st.isFunction(e[t]) && e[t]; | |
r[s[1]](function () { | |
var e = o && o.apply(this, arguments); | |
e && st.isFunction(e.promise) ? e.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[s[0] + "With"](this === i ? n.promise() : this, o ? [e] : arguments) | |
}) | |
}), e = null | |
}).promise() | |
}, | |
promise: function (e) { | |
return null != e ? st.extend(e, i) : i | |
} | |
}, r = {}; | |
return i.pipe = i.then, st.each(t, function (e, s) { | |
var o = s[2], | |
a = s[3]; | |
i[s[1]] = o.add, a && o.add(function () { | |
n = a | |
}, t[1 ^ e][2].disable, t[2][2].lock), r[s[0]] = function () { | |
return r[s[0] + "With"](this === r ? i : this, arguments), this | |
}, r[s[0] + "With"] = o.fireWith | |
}), i.promise(r), e && e.call(r, r), r | |
}, | |
when: function (e) { | |
var t, n, i, r = 0, | |
s = J.call(arguments), | |
o = s.length, | |
a = 1 !== o || e && st.isFunction(e.promise) ? o : 0, | |
l = 1 === a ? e : st.Deferred(), | |
u = function (e, n, i) { | |
return function (r) { | |
n[e] = this, i[e] = arguments.length > 1 ? J.call(arguments) : r, i === t ? l.notifyWith(n, i) : --a || l.resolveWith(n, i) | |
} | |
}; | |
if (o > 1) | |
for (t = new Array(o), n = new Array(o), i = new Array(o); o > r; r++) s[r] && st.isFunction(s[r].promise) ? s[r].promise().done(u(r, i, s)).fail(l.reject).progress(u(r, n, t)) : --a; | |
return a || l.resolveWith(i, s), l.promise() | |
} | |
}); | |
var Tt; | |
st.fn.ready = function (e) { | |
return st.ready.promise().done(e), this | |
}, st.extend({ | |
isReady: !1, | |
readyWait: 1, | |
holdReady: function (e) { | |
e ? st.readyWait++ : st.ready(!0) | |
}, | |
ready: function (e) { | |
if (e === !0 ? !--st.readyWait : !st.isReady) { | |
if (!mt.body) return setTimeout(st.ready); | |
st.isReady = !0, e !== !0 && --st.readyWait > 0 || (Tt.resolveWith(mt, [st]), st.fn.trigger && st(mt).trigger("ready").off("ready")) | |
} | |
} | |
}), st.ready.promise = function (t) { | |
if (!Tt) | |
if (Tt = st.Deferred(), "complete" === mt.readyState) setTimeout(st.ready); | |
else if (mt.addEventListener) mt.addEventListener("DOMContentLoaded", a, !1), e.addEventListener("load", a, !1); | |
else { | |
mt.attachEvent("onreadystatechange", a), e.attachEvent("onload", a); | |
var n = !1; | |
try { | |
n = null == e.frameElement && mt.documentElement | |
} catch (i) {} | |
n && n.doScroll && ! function r() { | |
if (!st.isReady) { | |
try { | |
n.doScroll("left") | |
} catch (e) { | |
return setTimeout(r, 50) | |
} | |
o(), st.ready() | |
} | |
}() | |
} | |
return Tt.promise(t) | |
}; | |
var St, xt = "undefined"; | |
for (St in st(it)) break; | |
it.ownLast = "0" !== St, it.inlineBlockNeedsLayout = !1, st(function () { | |
var e, t, n = mt.getElementsByTagName("body")[0]; | |
n && (e = mt.createElement("div"), e.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px", t = mt.createElement("div"), n.appendChild(e).appendChild(t), typeof t.style.zoom !== xt && (t.style.cssText = "border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1", (it.inlineBlockNeedsLayout = 3 === t.offsetWidth) && (n.style.zoom = 1)), n.removeChild(e), e = t = null) | |
}), | |
function () { | |
var e = mt.createElement("div"); | |
if (null == it.deleteExpando) { | |
it.deleteExpando = !0; | |
try { | |
delete e.test | |
} catch (t) { | |
it.deleteExpando = !1 | |
} | |
} | |
e = null | |
}(), st.acceptData = function (e) { | |
var t = st.noData[(e.nodeName + " ").toLowerCase()], | |
n = +e.nodeType || 1; | |
return 1 !== n && 9 !== n ? !1 : !t || t !== !0 && e.getAttribute("classid") === t | |
}; | |
var Et = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, | |
It = /([A-Z])/g; | |
st.extend({ | |
cache: {}, | |
noData: { | |
"applet ": !0, | |
"embed ": !0, | |
"object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" | |
}, | |
hasData: function (e) { | |
return e = e.nodeType ? st.cache[e[st.expando]] : e[st.expando], !! e && !u(e) | |
}, | |
data: function (e, t, n) { | |
return c(e, t, n) | |
}, | |
removeData: function (e, t) { | |
return d(e, t) | |
}, | |
_data: function (e, t, n) { | |
return c(e, t, n, !0) | |
}, | |
_removeData: function (e, t) { | |
return d(e, t, !0) | |
} | |
}), st.fn.extend({ | |
data: function (e, t) { | |
var n, i, r, s = this[0], | |
o = s && s.attributes; | |
if (void 0 === e) { | |
if (this.length && (r = st.data(s), 1 === s.nodeType && !st._data(s, "parsedAttrs"))) { | |
for (n = o.length; n--;) i = o[n].name, 0 === i.indexOf("data-") && (i = st.camelCase(i.slice(5)), l(s, i, r[i])); | |
st._data(s, "parsedAttrs", !0) | |
} | |
return r | |
} | |
return "object" == typeof e ? this.each(function () { | |
st.data(this, e) | |
}) : arguments.length > 1 ? this.each(function () { | |
st.data(this, e, t) | |
}) : s ? l(s, e, st.data(s, e)) : void 0 | |
}, | |
removeData: function (e) { | |
return this.each(function () { | |
st.removeData(this, e) | |
}) | |
} | |
}), st.extend({ | |
queue: function (e, t, n) { | |
var i; | |
return e ? (t = (t || "fx") + "queue", i = st._data(e, t), n && (!i || st.isArray(n) ? i = st._data(e, t, st.makeArray(n)) : i.push(n)), i || []) : void 0 | |
}, | |
dequeue: function (e, t) { | |
t = t || "fx"; | |
var n = st.queue(e, t), | |
i = n.length, | |
r = n.shift(), | |
s = st._queueHooks(e, t), | |
o = function () { | |
st.dequeue(e, t) | |
}; | |
"inprogress" === r && (r = n.shift(), i--), r && ("fx" === t && n.unshift("inprogress"), delete s.stop, r.call(e, o, s)), !i && s && s.empty.fire() | |
}, | |
_queueHooks: function (e, t) { | |
var n = t + "queueHooks"; | |
return st._data(e, n) || st._data(e, n, { | |
empty: st.Callbacks("once memory").add(function () { | |
st._removeData(e, t + "queue"), st._removeData(e, n) | |
}) | |
}) | |
} | |
}), st.fn.extend({ | |
queue: function (e, t) { | |
var n = 2; | |
return "string" != typeof e && (t = e, e = "fx", n--), arguments.length < n ? st.queue(this[0], e) : void 0 === t ? this : this.each(function () { | |
var n = st.queue(this, e, t); | |
st._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && st.dequeue(this, e) | |
}) | |
}, | |
dequeue: function (e) { | |
return this.each(function () { | |
st.dequeue(this, e) | |
}) | |
}, | |
clearQueue: function (e) { | |
return this.queue(e || "fx", []) | |
}, | |
promise: function (e, t) { | |
var n, i = 1, | |
r = st.Deferred(), | |
s = this, | |
o = this.length, | |
a = function () { | |
--i || r.resolveWith(s, [s]) | |
}; | |
for ("string" != typeof e && (t = e, e = void 0), e = e || "fx"; o--;) n = st._data(s[o], e + "queueHooks"), n && n.empty && (i++, n.empty.add(a)); | |
return a(), r.promise(t) | |
} | |
}); | |
var Ct = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, | |
Rt = ["Top", "Right", "Bottom", "Left"], | |
Nt = function (e, t) { | |
return e = t || e, "none" === st.css(e, "display") || !st.contains(e.ownerDocument, e) | |
}, _t = st.access = function (e, t, n, i, r, s, o) { | |
var a = 0, | |
l = e.length, | |
u = null == n; | |
if ("object" === st.type(n)) { | |
r = !0; | |
for (a in n) st.access(e, t, a, n[a], !0, s, o) | |
} else if (void 0 !== i && (r = !0, st.isFunction(i) || (o = !0), u && (o ? (t.call(e, i), t = null) : (u = t, t = function (e, t, n) { | |
return u.call(st(e), n) | |
})), t)) | |
for (; l > a; a++) t(e[a], n, o ? i : i.call(e[a], a, t(e[a], n))); | |
return r ? e : u ? t.call(e) : l ? t(e[0], n) : s | |
}, Dt = /^(?:checkbox|radio)$/i; | |
! function () { | |
var e = mt.createDocumentFragment(), | |
t = mt.createElement("div"), | |
n = mt.createElement("input"); | |
if (t.setAttribute("className", "t"), t.innerHTML = " <link/><table></table><a href='/a'>a</a>", it.leadingWhitespace = 3 === t.firstChild.nodeType, it.tbody = !t.getElementsByTagName("tbody").length, it.htmlSerialize = !! t.getElementsByTagName("link").length, it.html5Clone = "<:nav></:nav>" !== mt.createElement("nav").cloneNode(!0).outerHTML, n.type = "checkbox", n.checked = !0, e.appendChild(n), it.appendChecked = n.checked, t.innerHTML = "<textarea>x</textarea>", it.noCloneChecked = !! t.cloneNode(!0).lastChild.defaultValue, e.appendChild(t), t.innerHTML = "<input type='radio' checked='checked' name='t'/>", it.checkClone = t.cloneNode(!0).cloneNode(!0).lastChild.checked, it.noCloneEvent = !0, t.attachEvent && (t.attachEvent("onclick", function () { | |
it.noCloneEvent = !1 | |
}), t.cloneNode(!0).click()), null == it.deleteExpando) { | |
it.deleteExpando = !0; | |
try { | |
delete t.test | |
} catch (i) { | |
it.deleteExpando = !1 | |
} | |
} | |
e = t = n = null | |
}(), | |
function () { | |
var t, n, i = mt.createElement("div"); | |
for (t in { | |
submit: !0, | |
change: !0, | |
focusin: !0 | |
}) n = "on" + t, (it[t + "Bubbles"] = n in e) || (i.setAttribute(n, "t"), it[t + "Bubbles"] = i.attributes[n].expando === !1); | |
i = null | |
}(); | |
var At = /^(?:input|select|textarea)$/i, | |
Pt = /^key/, | |
Lt = /^(?:mouse|contextmenu)|click/, | |
Ot = /^(?:focusinfocus|focusoutblur)$/, | |
jt = /^([^.]*)(?:\.(.+)|)$/; | |
st.event = { | |
global: {}, | |
add: function (e, t, n, i, r) { | |
var s, o, a, l, u, c, d, p, f, h, m, g = st._data(e); | |
if (g) { | |
for (n.handler && (l = n, n = l.handler, r = l.selector), n.guid || (n.guid = st.guid++), (o = g.events) || (o = g.events = {}), (c = g.handle) || (c = g.handle = function (e) { | |
return typeof st === xt || e && st.event.triggered === e.type ? void 0 : st.event.dispatch.apply(c.elem, arguments) | |
}, c.elem = e), t = (t || "").match(yt) || [""], a = t.length; a--;) s = jt.exec(t[a]) || [], f = m = s[1], h = (s[2] || "").split(".").sort(), f && (u = st.event.special[f] || {}, f = (r ? u.delegateType : u.bindType) || f, u = st.event.special[f] || {}, d = st.extend({ | |
type: f, | |
origType: m, | |
data: i, | |
handler: n, | |
guid: n.guid, | |
selector: r, | |
needsContext: r && st.expr.match.needsContext.test(r), | |
namespace: h.join(".") | |
}, l), (p = o[f]) || (p = o[f] = [], p.delegateCount = 0, u.setup && u.setup.call(e, i, h, c) !== !1 || (e.addEventListener ? e.addEventListener(f, c, !1) : e.attachEvent && e.attachEvent("on" + f, c))), u.add && (u.add.call(e, d), d.handler.guid || (d.handler.guid = n.guid)), r ? p.splice(p.delegateCount++, 0, d) : p.push(d), st.event.global[f] = !0); | |
e = null | |
} | |
}, | |
remove: function (e, t, n, i, r) { | |
var s, o, a, l, u, c, d, p, f, h, m, g = st.hasData(e) && st._data(e); | |
if (g && (c = g.events)) { | |
for (t = (t || "").match(yt) || [""], u = t.length; u--;) | |
if (a = jt.exec(t[u]) || [], f = m = a[1], h = (a[2] || "").split(".").sort(), f) { | |
for (d = st.event.special[f] || {}, f = (i ? d.delegateType : d.bindType) || f, p = c[f] || [], a = a[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), l = s = p.length; s--;) o = p[s], !r && m !== o.origType || n && n.guid !== o.guid || a && !a.test(o.namespace) || i && i !== o.selector && ("**" !== i || !o.selector) || (p.splice(s, 1), o.selector && p.delegateCount--, d.remove && d.remove.call(e, o)); | |
l && !p.length && (d.teardown && d.teardown.call(e, h, g.handle) !== !1 || st.removeEvent(e, f, g.handle), delete c[f]) | |
} else | |
for (f in c) st.event.remove(e, f + t[u], n, i, !0); | |
st.isEmptyObject(c) && (delete g.handle, st._removeData(e, "events")) | |
} | |
}, | |
trigger: function (t, n, i, r) { | |
var s, o, a, l, u, c, d, p = [i || mt], | |
f = tt.call(t, "type") ? t.type : t, | |
h = tt.call(t, "namespace") ? t.namespace.split(".") : []; | |
if (a = c = i = i || mt, 3 !== i.nodeType && 8 !== i.nodeType && !Ot.test(f + st.event.triggered) && (f.indexOf(".") >= 0 && (h = f.split("."), f = h.shift(), h.sort()), o = f.indexOf(":") < 0 && "on" + f, t = t[st.expando] ? t : new st.Event(f, "object" == typeof t && t), t.isTrigger = r ? 2 : 3, t.namespace = h.join("."), t.namespace_re = t.namespace ? new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, t.result = void 0, t.target || (t.target = i), n = null == n ? [t] : st.makeArray(n, [t]), u = st.event.special[f] || {}, r || !u.trigger || u.trigger.apply(i, n) !== !1)) { | |
if (!r && !u.noBubble && !st.isWindow(i)) { | |
for (l = u.delegateType || f, Ot.test(l + f) || (a = a.parentNode); a; a = a.parentNode) p.push(a), c = a; | |
c === (i.ownerDocument || mt) && p.push(c.defaultView || c.parentWindow || e) | |
} | |
for (d = 0; | |
(a = p[d++]) && !t.isPropagationStopped();) t.type = d > 1 ? l : u.bindType || f, s = (st._data(a, "events") || {})[t.type] && st._data(a, "handle"), s && s.apply(a, n), s = o && a[o], s && s.apply && st.acceptData(a) && (t.result = s.apply(a, n), t.result === !1 && t.preventDefault()); | |
if (t.type = f, !r && !t.isDefaultPrevented() && (!u._default || u._default.apply(p.pop(), n) === !1) && st.acceptData(i) && o && i[f] && !st.isWindow(i)) { | |
c = i[o], c && (i[o] = null), st.event.triggered = f; | |
try { | |
i[f]() | |
} catch (m) {} | |
st.event.triggered = void 0, c && (i[o] = c) | |
} | |
return t.result | |
} | |
}, | |
dispatch: function (e) { | |
e = st.event.fix(e); | |
var t, n, i, r, s, o = [], | |
a = J.call(arguments), | |
l = (st._data(this, "events") || {})[e.type] || [], | |
u = st.event.special[e.type] || {}; | |
if (a[0] = e, e.delegateTarget = this, !u.preDispatch || u.preDispatch.call(this, e) !== !1) { | |
for (o = st.event.handlers.call(this, e, l), t = 0; | |
(r = o[t++]) && !e.isPropagationStopped();) | |
for (e.currentTarget = r.elem, s = 0; | |
(i = r.handlers[s++]) && !e.isImmediatePropagationStopped();)(!e.namespace_re || e.namespace_re.test(i.namespace)) && (e.handleObj = i, e.data = i.data, n = ((st.event.special[i.origType] || {}).handle || i.handler).apply(r.elem, a), void 0 !== n && (e.result = n) === !1 && (e.preventDefault(), e.stopPropagation())); | |
return u.postDispatch && u.postDispatch.call(this, e), e.result | |
} | |
}, | |
handlers: function (e, t) { | |
var n, i, r, s, o = [], | |
a = t.delegateCount, | |
l = e.target; | |
if (a && 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 = [], s = 0; a > s; s++) i = t[s], n = i.selector + " ", void 0 === r[n] && (r[n] = i.needsContext ? st(n, this).index(l) >= 0 : st.find(n, this, null, [l]).length), r[n] && r.push(i); | |
r.length && o.push({ | |
elem: l, | |
handlers: r | |
}) | |
} | |
return a < t.length && o.push({ | |
elem: this, | |
handlers: t.slice(a) | |
}), o | |
}, | |
fix: function (e) { | |
if (e[st.expando]) return e; | |
var t, n, i, r = e.type, | |
s = e, | |
o = this.fixHooks[r]; | |
for (o || (this.fixHooks[r] = o = Lt.test(r) ? this.mouseHooks : Pt.test(r) ? this.keyHooks : {}), i = o.props ? this.props.concat(o.props) : this.props, e = new st.Event(s), t = i.length; t--;) n = i[t], e[n] = s[n]; | |
return e.target || (e.target = s.srcElement || mt), 3 === e.target.nodeType && (e.target = e.target.parentNode), e.metaKey = !! e.metaKey, o.filter ? o.filter(e, s) : 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, t) { | |
var n, i, r, s = t.button, | |
o = t.fromElement; | |
return null == e.pageX && null != t.clientX && (i = e.target.ownerDocument || mt, r = i.documentElement, n = i.body, e.pageX = t.clientX + (r && r.scrollLeft || n && n.scrollLeft || 0) - (r && r.clientLeft || n && n.clientLeft || 0), e.pageY = t.clientY + (r && r.scrollTop || n && n.scrollTop || 0) - (r && r.clientTop || n && n.clientTop || 0)), !e.relatedTarget && o && (e.relatedTarget = o === e.target ? t.toElement : o), e.which || void 0 === s || (e.which = 1 & s ? 1 : 2 & s ? 3 : 4 & s ? 2 : 0), e | |
} | |
}, | |
special: { | |
load: { | |
noBubble: !0 | |
}, | |
focus: { | |
trigger: function () { | |
if (this !== h() && this.focus) try { | |
return this.focus(), !1 | |
} catch (e) {} | |
}, | |
delegateType: "focusin" | |
}, | |
blur: { | |
trigger: function () { | |
return this === h() && this.blur ? (this.blur(), !1) : void 0 | |
}, | |
delegateType: "focusout" | |
}, | |
click: { | |
trigger: function () { | |
return st.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : void 0 | |
}, | |
_default: function (e) { | |
return st.nodeName(e.target, "a") | |
} | |
}, | |
beforeunload: { | |
postDispatch: function (e) { | |
void 0 !== e.result && (e.originalEvent.returnValue = e.result) | |
} | |
} | |
}, | |
simulate: function (e, t, n, i) { | |
var r = st.extend(new st.Event, n, { | |
type: e, | |
isSimulated: !0, | |
originalEvent: {} | |
}); | |
i ? st.event.trigger(r, null, t) : st.event.dispatch.call(t, r), r.isDefaultPrevented() && n.preventDefault() | |
} | |
}, st.removeEvent = mt.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] === xt && (e[i] = null), e.detachEvent(i, n)) | |
}, st.Event = function (e, t) { | |
return this instanceof st.Event ? (e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && (e.returnValue === !1 || e.getPreventDefault && e.getPreventDefault()) ? p : f) : this.type = e, t && st.extend(this, t), this.timeStamp = e && e.timeStamp || st.now(), void(this[st.expando] = !0)) : new st.Event(e, t) | |
}, st.Event.prototype = { | |
isDefaultPrevented: f, | |
isPropagationStopped: f, | |
isImmediatePropagationStopped: f, | |
preventDefault: function () { | |
var e = this.originalEvent; | |
this.isDefaultPrevented = p, e && (e.preventDefault ? e.preventDefault() : e.returnValue = !1) | |
}, | |
stopPropagation: function () { | |
var e = this.originalEvent; | |
this.isPropagationStopped = p, e && (e.stopPropagation && e.stopPropagation(), e.cancelBubble = !0) | |
}, | |
stopImmediatePropagation: function () { | |
this.isImmediatePropagationStopped = p, this.stopPropagation() | |
} | |
}, st.each({ | |
mouseenter: "mouseover", | |
mouseleave: "mouseout" | |
}, function (e, t) { | |
st.event.special[e] = { | |
delegateType: t, | |
bindType: t, | |
handle: function (e) { | |
var n, i = this, | |
r = e.relatedTarget, | |
s = e.handleObj; | |
return (!r || r !== i && !st.contains(i, r)) && (e.type = s.origType, n = s.handler.apply(this, arguments), e.type = t), n | |
} | |
} | |
}), it.submitBubbles || (st.event.special.submit = { | |
setup: function () { | |
return st.nodeName(this, "form") ? !1 : void st.event.add(this, "click._submit keypress._submit", function (e) { | |
var t = e.target, | |
n = st.nodeName(t, "input") || st.nodeName(t, "button") ? t.form : void 0; | |
n && !st._data(n, "submitBubbles") && (st.event.add(n, "submit._submit", function (e) { | |
e._submit_bubble = !0 | |
}), st._data(n, "submitBubbles", !0)) | |
}) | |
}, | |
postDispatch: function (e) { | |
e._submit_bubble && (delete e._submit_bubble, this.parentNode && !e.isTrigger && st.event.simulate("submit", this.parentNode, e, !0)) | |
}, | |
teardown: function () { | |
return st.nodeName(this, "form") ? !1 : void st.event.remove(this, "._submit") | |
} | |
}), it.changeBubbles || (st.event.special.change = { | |
setup: function () { | |
return At.test(this.nodeName) ? (("checkbox" === this.type || "radio" === this.type) && (st.event.add(this, "propertychange._change", function (e) { | |
"checked" === e.originalEvent.propertyName && (this._just_changed = !0) | |
}), st.event.add(this, "click._change", function (e) { | |
this._just_changed && !e.isTrigger && (this._just_changed = !1), st.event.simulate("change", this, e, !0) | |
})), !1) : void st.event.add(this, "beforeactivate._change", function (e) { | |
var t = e.target; | |
At.test(t.nodeName) && !st._data(t, "changeBubbles") && (st.event.add(t, "change._change", function (e) { | |
!this.parentNode || e.isSimulated || e.isTrigger || st.event.simulate("change", this.parentNode, e, !0) | |
}), st._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 st.event.remove(this, "._change"), !At.test(this.nodeName) | |
} | |
}), it.focusinBubbles || st.each({ | |
focus: "focusin", | |
blur: "focusout" | |
}, function (e, t) { | |
var n = function (e) { | |
st.event.simulate(t, e.target, st.event.fix(e), !0) | |
}; | |
st.event.special[t] = { | |
setup: function () { | |
var i = this.ownerDocument || this, | |
r = st._data(i, t); | |
r || i.addEventListener(e, n, !0), st._data(i, t, (r || 0) + 1) | |
}, | |
teardown: function () { | |
var i = this.ownerDocument || this, | |
r = st._data(i, t) - 1; | |
r ? st._data(i, t, r) : (i.removeEventListener(e, n, !0), st._removeData(i, t)) | |
} | |
} | |
}), st.fn.extend({ | |
on: function (e, t, n, i, r) { | |
var s, o; | |
if ("object" == typeof e) { | |
"string" != typeof t && (n = n || t, t = void 0); | |
for (s in e) this.on(s, t, n, e[s], r); | |
return this | |
} | |
if (null == n && null == i ? (i = t, n = t = void 0) : null == i && ("string" == typeof t ? (i = n, n = void 0) : (i = n, n = t, t = void 0)), i === !1) i = f; | |
else if (!i) return this; | |
return 1 === r && (o = i, i = function (e) { | |
return st().off(e), o.apply(this, arguments) | |
}, i.guid = o.guid || (o.guid = st.guid++)), this.each(function () { | |
st.event.add(this, e, i, n, t) | |
}) | |
}, | |
one: function (e, t, n, i) { | |
return this.on(e, t, n, i, 1) | |
}, | |
off: function (e, t, n) { | |
var i, r; | |
if (e && e.preventDefault && e.handleObj) return i = e.handleObj, st(e.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler), this; | |
if ("object" == typeof e) { | |
for (r in e) this.off(r, t, e[r]); | |
return this | |
} | |
return (t === !1 || "function" == typeof t) && (n = t, t = void 0), n === !1 && (n = f), this.each(function () { | |
st.event.remove(this, e, n, t) | |
}) | |
}, | |
trigger: function (e, t) { | |
return this.each(function () { | |
st.event.trigger(e, t, this) | |
}) | |
}, | |
triggerHandler: function (e, t) { | |
var n = this[0]; | |
return n ? st.event.trigger(e, t, n, !0) : void 0 | |
} | |
}); | |
var Ft = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", | |
Mt = / jQuery\d+="(?:null|\d+)"/g, | |
zt = new RegExp("<(?:" + Ft + ")[\\s/>]", "i"), | |
Ht = /^\s+/, | |
Ut = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, | |
Wt = /<([\w:]+)/, | |
Bt = /<tbody/i, | |
qt = /<|&#?\w+;/, | |
Xt = /<(?:script|style|link)/i, | |
Vt = /checked\s*(?:[^=]|=\s*.checked.)/i, | |
Yt = /^$|\/(?:java|ecma)script/i, | |
$t = /^true\/(.*)/, | |
Jt = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, | |
Gt = { | |
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: it.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"] | |
}, Kt = m(mt), | |
Qt = Kt.appendChild(mt.createElement("div")); | |
Gt.optgroup = Gt.option, Gt.tbody = Gt.tfoot = Gt.colgroup = Gt.caption = Gt.thead, Gt.th = Gt.td, st.extend({ | |
clone: function (e, t, n) { | |
var i, r, s, o, a, l = st.contains(e.ownerDocument, e); | |
if (it.html5Clone || st.isXMLDoc(e) || !zt.test("<" + e.nodeName + ">") ? s = e.cloneNode(!0) : (Qt.innerHTML = e.outerHTML, Qt.removeChild(s = Qt.firstChild)), !(it.noCloneEvent && it.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || st.isXMLDoc(e))) | |
for (i = g(s), a = g(e), o = 0; null != (r = a[o]); ++o) i[o] && S(r, i[o]); | |
if (t) | |
if (n) | |
for (a = a || g(e), i = i || g(s), o = 0; null != (r = a[o]); o++) T(r, i[o]); | |
else T(e, s); | |
return i = g(s, "script"), i.length > 0 && w(i, !l && g(e, "script")), i = a = r = null, s | |
}, | |
buildFragment: function (e, t, n, i) { | |
for (var r, s, o, a, l, u, c, d = e.length, p = m(t), f = [], h = 0; d > h; h++) | |
if (s = e[h], s || 0 === s) | |
if ("object" === st.type(s)) st.merge(f, s.nodeType ? [s] : s); | |
else if (qt.test(s)) { | |
for (a = a || p.appendChild(t.createElement("div")), l = (Wt.exec(s) || ["", ""])[1].toLowerCase(), c = Gt[l] || Gt._default, a.innerHTML = c[1] + s.replace(Ut, "<$1></$2>") + c[2], r = c[0]; r--;) a = a.lastChild; | |
if (!it.leadingWhitespace && Ht.test(s) && f.push(t.createTextNode(Ht.exec(s)[0])), !it.tbody) | |
for (s = "table" !== l || Bt.test(s) ? "<table>" !== c[1] || Bt.test(s) ? 0 : a : a.firstChild, r = s && s.childNodes.length; r--;) st.nodeName(u = s.childNodes[r], "tbody") && !u.childNodes.length && s.removeChild(u); | |
for (st.merge(f, a.childNodes), a.textContent = ""; a.firstChild;) a.removeChild(a.firstChild); | |
a = p.lastChild | |
} else f.push(t.createTextNode(s)); | |
for (a && p.removeChild(a), it.appendChecked || st.grep(g(f, "input"), v), h = 0; s = f[h++];) | |
if ((!i || -1 === st.inArray(s, i)) && (o = st.contains(s.ownerDocument, s), a = g(p.appendChild(s), "script"), o && w(a), n)) | |
for (r = 0; s = a[r++];) Yt.test(s.type || "") && n.push(s); | |
return a = null, p | |
}, | |
cleanData: function (e, t) { | |
for (var n, i, r, s, o = 0, a = st.expando, l = st.cache, u = it.deleteExpando, c = st.event.special; null != (n = e[o]); o++) | |
if ((t || st.acceptData(n)) && (r = n[a], s = r && l[r])) { | |
if (s.events) | |
for (i in s.events) c[i] ? st.event.remove(n, i) : st.removeEvent(n, i, s.handle); | |
l[r] && (delete l[r], u ? delete n[a] : typeof n.removeAttribute !== xt ? n.removeAttribute(a) : n[a] = null, $.push(r)) | |
} | |
} | |
}), st.fn.extend({ | |
text: function (e) { | |
return _t(this, function (e) { | |
return void 0 === e ? st.text(this) : this.empty().append((this[0] && this[0].ownerDocument || mt).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 = b(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 = b(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 ? st.filter(e, this) : this, r = 0; null != (n = i[r]); r++) t || 1 !== n.nodeType || st.cleanData(g(n)), n.parentNode && (t && st.contains(n.ownerDocument, n) && w(g(n, "script")), n.parentNode.removeChild(n)); | |
return this | |
}, | |
empty: function () { | |
for (var e, t = 0; null != (e = this[t]); t++) { | |
for (1 === e.nodeType && st.cleanData(g(e, !1)); e.firstChild;) e.removeChild(e.firstChild); | |
e.options && st.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 st.clone(this, e, t) | |
}) | |
}, | |
html: function (e) { | |
return _t(this, function (e) { | |
var t = this[0] || {}, n = 0, | |
i = this.length; | |
if (void 0 === e) return 1 === t.nodeType ? t.innerHTML.replace(Mt, "") : void 0; | |
if (!("string" != typeof e || Xt.test(e) || !it.htmlSerialize && zt.test(e) || !it.leadingWhitespace && Ht.test(e) || Gt[(Wt.exec(e) || ["", ""])[1].toLowerCase()])) { | |
e = e.replace(Ut, "<$1></$2>"); | |
try { | |
for (; i > n; n++) t = this[n] || {}, 1 === t.nodeType && (st.cleanData(g(t, !1)), t.innerHTML = e); | |
t = 0 | |
} catch (r) {} | |
} | |
t && this.empty().append(e) | |
}, null, e, arguments.length) | |
}, | |
replaceWith: function () { | |
var e = arguments[0]; | |
return this.domManip(arguments, function (t) { | |
e = this.parentNode, st.cleanData(g(this)), e && e.replaceChild(t, this) | |
}), e && (e.length || e.nodeType) ? this : this.remove() | |
}, | |
detach: function (e) { | |
return this.remove(e, !0) | |
}, | |
domManip: function (e, t) { | |
e = G.apply([], e); | |
var n, i, r, s, o, a, l = 0, | |
u = this.length, | |
c = this, | |
d = u - 1, | |
p = e[0], | |
f = st.isFunction(p); | |
if (f || u > 1 && "string" == typeof p && !it.checkClone && Vt.test(p)) return this.each(function (n) { | |
var i = c.eq(n); | |
f && (e[0] = p.call(this, n, i.html())), i.domManip(e, t) | |
}); | |
if (u && (a = st.buildFragment(e, this[0].ownerDocument, !1, this), n = a.firstChild, 1 === a.childNodes.length && (a = n), n)) { | |
for (s = st.map(g(a, "script"), k), r = s.length; u > l; l++) i = a, l !== d && (i = st.clone(i, !0, !0), r && st.merge(s, g(i, "script"))), t.call(this[l], i, l); | |
if (r) | |
for (o = s[s.length - 1].ownerDocument, st.map(s, y), l = 0; r > l; l++) i = s[l], Yt.test(i.type || "") && !st._data(i, "globalEval") && st.contains(o, i) && (i.src ? st._evalUrl && st._evalUrl(i.src) : st.globalEval((i.text || i.textContent || i.innerHTML || "").replace(Jt, ""))); | |
a = n = null | |
} | |
return this | |
} | |
}), st.each({ | |
appendTo: "append", | |
prependTo: "prepend", | |
insertBefore: "before", | |
insertAfter: "after", | |
replaceAll: "replaceWith" | |
}, function (e, t) { | |
st.fn[e] = function (e) { | |
for (var n, i = 0, r = [], s = st(e), o = s.length - 1; o >= i; i++) n = i === o ? this : this.clone(!0), st(s[i])[t](n), K.apply(r, n.get()); | |
return this.pushStack(r) | |
} | |
}); | |
var Zt, en = {}; | |
! function () { | |
var e, t, n = mt.createElement("div"), | |
i = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0"; | |
n.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", e = n.getElementsByTagName("a")[0], e.style.cssText = "float:left;opacity:.5", it.opacity = /^0.5/.test(e.style.opacity), it.cssFloat = !! e.style.cssFloat, n.style.backgroundClip = "content-box", n.cloneNode(!0).style.backgroundClip = "", it.clearCloneStyle = "content-box" === n.style.backgroundClip, e = n = null, it.shrinkWrapBlocks = function () { | |
var e, n, r, s; | |
if (null == t) { | |
if (e = mt.getElementsByTagName("body")[0], !e) return; | |
s = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px", n = mt.createElement("div"), r = mt.createElement("div"), e.appendChild(n).appendChild(r), t = !1, typeof r.style.zoom !== xt && (r.style.cssText = i + ";width:1px;padding:1px;zoom:1", r.innerHTML = "<div></div>", r.firstChild.style.width = "5px", t = 3 !== r.offsetWidth), e.removeChild(n), e = n = r = null | |
} | |
return t | |
} | |
}(); | |
var tn, nn, rn = /^margin/, | |
sn = new RegExp("^(" + Ct + ")(?!px)[a-z%]+$", "i"), | |
on = /^(top|right|bottom|left)$/; | |
e.getComputedStyle ? (tn = function (e) { | |
return e.ownerDocument.defaultView.getComputedStyle(e, null) | |
}, nn = function (e, t, n) { | |
var i, r, s, o, a = e.style; | |
return n = n || tn(e), o = n ? n.getPropertyValue(t) || n[t] : void 0, n && ("" !== o || st.contains(e.ownerDocument, e) || (o = st.style(e, t)), sn.test(o) && rn.test(t) && (i = a.width, r = a.minWidth, s = a.maxWidth, a.minWidth = a.maxWidth = a.width = o, o = n.width, a.width = i, a.minWidth = r, a.maxWidth = s)), void 0 === o ? o : o + "" | |
}) : mt.documentElement.currentStyle && (tn = function (e) { | |
return e.currentStyle | |
}, nn = function (e, t, n) { | |
var i, r, s, o, a = e.style; | |
return n = n || tn(e), o = n ? n[t] : void 0, null == o && a && a[t] && (o = a[t]), sn.test(o) && !on.test(t) && (i = a.left, r = e.runtimeStyle, s = r && r.left, s && (r.left = e.currentStyle.left), a.left = "fontSize" === t ? "1em" : o, o = a.pixelLeft + "px", a.left = i, s && (r.left = s)), void 0 === o ? o : o + "" || "auto" | |
}), | |
function () { | |
function t() { | |
var t, n, i = mt.getElementsByTagName("body")[0]; | |
i && (t = mt.createElement("div"), n = mt.createElement("div"), t.style.cssText = u, i.appendChild(t).appendChild(n), n.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;display:block;padding:1px;border:1px;width:4px;margin-top:1%;top:1%", st.swap(i, null != i.style.zoom ? { | |
zoom: 1 | |
} : {}, function () { | |
r = 4 === n.offsetWidth | |
}), s = !0, o = !1, a = !0, e.getComputedStyle && (o = "1%" !== (e.getComputedStyle(n, null) || {}).top, s = "4px" === (e.getComputedStyle(n, null) || { | |
width: "4px" | |
}).width), i.removeChild(t), n = i = null) | |
} | |
var n, i, r, s, o, a, l = mt.createElement("div"), | |
u = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px", | |
c = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0"; | |
l.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", n = l.getElementsByTagName("a")[0], n.style.cssText = "float:left;opacity:.5", it.opacity = /^0.5/.test(n.style.opacity), it.cssFloat = !! n.style.cssFloat, l.style.backgroundClip = "content-box", l.cloneNode(!0).style.backgroundClip = "", it.clearCloneStyle = "content-box" === l.style.backgroundClip, n = l = null, st.extend(it, { | |
reliableHiddenOffsets: function () { | |
if (null != i) return i; | |
var e, t, n, r = mt.createElement("div"), | |
s = mt.getElementsByTagName("body")[0]; | |
if (s) return r.setAttribute("className", "t"), r.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", e = mt.createElement("div"), e.style.cssText = u, s.appendChild(e).appendChild(r), r.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", t = r.getElementsByTagName("td"), t[0].style.cssText = "padding:0;margin:0;border:0;display:none", n = 0 === t[0].offsetHeight, t[0].style.display = "", t[1].style.display = "none", i = n && 0 === t[0].offsetHeight, s.removeChild(e), r = s = null, i | |
}, | |
boxSizing: function () { | |
return null == r && t(), r | |
}, | |
boxSizingReliable: function () { | |
return null == s && t(), s | |
}, | |
pixelPosition: function () { | |
return null == o && t(), o | |
}, | |
reliableMarginRight: function () { | |
var t, n, i, r; | |
if (null == a && e.getComputedStyle) { | |
if (t = mt.getElementsByTagName("body")[0], !t) return; | |
n = mt.createElement("div"), i = mt.createElement("div"), n.style.cssText = u, t.appendChild(n).appendChild(i), r = i.appendChild(mt.createElement("div")), r.style.cssText = i.style.cssText = c, r.style.marginRight = r.style.width = "0", i.style.width = "1px", a = !parseFloat((e.getComputedStyle(r, null) || {}).marginRight), t.removeChild(n) | |
} | |
return a | |
} | |
}) | |
}(), st.swap = function (e, t, n, i) { | |
var r, s, o = {}; | |
for (s in t) o[s] = e.style[s], e.style[s] = t[s]; | |
r = n.apply(e, i || []); | |
for (s in t) e.style[s] = o[s]; | |
return r | |
}; | |
var an = /alpha\([^)]*\)/i, | |
ln = /opacity\s*=\s*([^)]*)/, | |
un = /^(none|table(?!-c[ea]).+)/, | |
cn = new RegExp("^(" + Ct + ")(.*)$", "i"), | |
dn = new RegExp("^([+-])=(" + Ct + ")", "i"), | |
pn = { | |
position: "absolute", | |
visibility: "hidden", | |
display: "block" | |
}, fn = { | |
letterSpacing: 0, | |
fontWeight: 400 | |
}, hn = ["Webkit", "O", "Moz", "ms"]; | |
st.extend({ | |
cssHooks: { | |
opacity: { | |
get: function (e, t) { | |
if (t) { | |
var n = nn(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": it.cssFloat ? "cssFloat" : "styleFloat" | |
}, | |
style: function (e, t, n, i) { | |
if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { | |
var r, s, o, a = st.camelCase(t), | |
l = e.style; | |
if (t = st.cssProps[a] || (st.cssProps[a] = C(l, a)), o = st.cssHooks[t] || st.cssHooks[a], void 0 === n) return o && "get" in o && void 0 !== (r = o.get(e, !1, i)) ? r : l[t]; | |
if (s = typeof n, "string" === s && (r = dn.exec(n)) && (n = (r[1] + 1) * r[2] + parseFloat(st.css(e, t)), s = "number"), null != n && n === n && ("number" !== s || st.cssNumber[a] || (n += "px"), it.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), !(o && "set" in o && void 0 === (n = o.set(e, n, i))))) try { | |
l[t] = "", l[t] = n | |
} catch (u) {} | |
} | |
}, | |
css: function (e, t, n, i) { | |
var r, s, o, a = st.camelCase(t); | |
return t = st.cssProps[a] || (st.cssProps[a] = C(e.style, a)), o = st.cssHooks[t] || st.cssHooks[a], o && "get" in o && (s = o.get(e, !0, n)), void 0 === s && (s = nn(e, t, i)), "normal" === s && t in fn && (s = fn[t]), "" === n || n ? (r = parseFloat(s), n === !0 || st.isNumeric(r) ? r || 0 : s) : s | |
} | |
}), st.each(["height", "width"], function (e, t) { | |
st.cssHooks[t] = { | |
get: function (e, n, i) { | |
return n ? 0 === e.offsetWidth && un.test(st.css(e, "display")) ? st.swap(e, pn, function () { | |
return D(e, t, i) | |
}) : D(e, t, i) : void 0 | |
}, | |
set: function (e, n, i) { | |
var r = i && tn(e); | |
return N(e, n, i ? _(e, t, i, it.boxSizing() && "border-box" === st.css(e, "boxSizing", !1, r), r) : 0) | |
} | |
} | |
}), it.opacity || (st.cssHooks.opacity = { | |
get: function (e, t) { | |
return ln.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, | |
r = st.isNumeric(t) ? "alpha(opacity=" + 100 * t + ")" : "", | |
s = i && i.filter || n.filter || ""; | |
n.zoom = 1, (t >= 1 || "" === t) && "" === st.trim(s.replace(an, "")) && n.removeAttribute && (n.removeAttribute("filter"), "" === t || i && !i.filter) || (n.filter = an.test(s) ? s.replace(an, r) : s + " " + r) | |
} | |
}), st.cssHooks.marginRight = I(it.reliableMarginRight, function (e, t) { | |
return t ? st.swap(e, { | |
display: "inline-block" | |
}, nn, [e, "marginRight"]) : void 0 | |
}), st.each({ | |
margin: "", | |
padding: "", | |
border: "Width" | |
}, function (e, t) { | |
st.cssHooks[e + t] = { | |
expand: function (n) { | |
for (var i = 0, r = {}, s = "string" == typeof n ? n.split(" ") : [n]; 4 > i; i++) r[e + Rt[i] + t] = s[i] || s[i - 2] || s[0]; | |
return r | |
} | |
}, rn.test(e) || (st.cssHooks[e + t].set = N) | |
}), st.fn.extend({ | |
css: function (e, t) { | |
return _t(this, function (e, t, n) { | |
var i, r, s = {}, o = 0; | |
if (st.isArray(t)) { | |
for (i = tn(e), r = t.length; r > o; o++) s[t[o]] = st.css(e, t[o], !1, i); | |
return s | |
} | |
return void 0 !== n ? st.style(e, t, n) : st.css(e, t) | |
}, e, t, arguments.length > 1) | |
}, | |
show: function () { | |
return R(this, !0) | |
}, | |
hide: function () { | |
return R(this) | |
}, | |
toggle: function (e) { | |
return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function () { | |
Nt(this) ? st(this).show() : st(this).hide() | |
}) | |
} | |
}), st.Tween = A, A.prototype = { | |
constructor: A, | |
init: function (e, t, n, i, r, s) { | |
this.elem = e, this.prop = n, this.easing = r || "swing", this.options = t, this.start = this.now = this.cur(), this.end = i, this.unit = s || (st.cssNumber[n] ? "" : "px") | |
}, | |
cur: function () { | |
var e = A.propHooks[this.prop]; | |
return e && e.get ? e.get(this) : A.propHooks._default.get(this) | |
}, | |
run: function (e) { | |
var t, n = A.propHooks[this.prop]; | |
return this.pos = t = this.options.duration ? st.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) : A.propHooks._default.set(this), this | |
} | |
}, A.prototype.init.prototype = A.prototype, A.propHooks = { | |
_default: { | |
get: function (e) { | |
var t; | |
return null == e.elem[e.prop] || e.elem.style && null != e.elem.style[e.prop] ? (t = st.css(e.elem, e.prop, ""), t && "auto" !== t ? t : 0) : e.elem[e.prop] | |
}, | |
set: function (e) { | |
st.fx.step[e.prop] ? st.fx.step[e.prop](e) : e.elem.style && (null != e.elem.style[st.cssProps[e.prop]] || st.cssHooks[e.prop]) ? st.style(e.elem, e.prop, e.now + e.unit) : e.elem[e.prop] = e.now | |
} | |
} | |
}, A.propHooks.scrollTop = A.propHooks.scrollLeft = { | |
set: function (e) { | |
e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now) | |
} | |
}, st.easing = { | |
linear: function (e) { | |
return e | |
}, | |
swing: function (e) { | |
return .5 - Math.cos(e * Math.PI) / 2 | |
} | |
}, st.fx = A.prototype.init, st.fx.step = {}; | |
var mn, gn, vn = /^(?:toggle|show|hide)$/, | |
bn = new RegExp("^(?:([+-])=|)(" + Ct + ")([a-z%]*)$", "i"), | |
kn = /queueHooks$/, | |
yn = [j], | |
wn = { | |
"*": [ | |
function (e, t) { | |
var n = this.createTween(e, t), | |
i = n.cur(), | |
r = bn.exec(t), | |
s = r && r[3] || (st.cssNumber[e] ? "" : "px"), | |
o = (st.cssNumber[e] || "px" !== s && +i) && bn.exec(st.css(n.elem, e)), | |
a = 1, | |
l = 20; | |
if (o && o[3] !== s) { | |
s = s || o[3], r = r || [], o = +i || 1; | |
do a = a || ".5", o /= a, st.style(n.elem, e, o + s); while (a !== (a = n.cur() / i) && 1 !== a && --l) | |
} | |
return r && (o = n.start = +o || +i || 0, n.unit = s, n.end = r[1] ? o + (r[1] + 1) * r[2] : +r[2]), n | |
} | |
] | |
}; | |
st.Animation = st.extend(M, { | |
tweener: function (e, t) { | |
st.isFunction(e) ? (t = e, e = ["*"]) : e = e.split(" "); | |
for (var n, i = 0, r = e.length; r > i; i++) n = e[i], wn[n] = wn[n] || [], wn[n].unshift(t) | |
}, | |
prefilter: function (e, t) { | |
t ? yn.unshift(e) : yn.push(e) | |
} | |
}), st.speed = function (e, t, n) { | |
var i = e && "object" == typeof e ? st.extend({}, e) : { | |
complete: n || !n && t || st.isFunction(e) && e, | |
duration: e, | |
easing: n && t || t && !st.isFunction(t) && t | |
}; | |
return i.duration = st.fx.off ? 0 : "number" == typeof i.duration ? i.duration : i.duration in st.fx.speeds ? st.fx.speeds[i.duration] : st.fx.speeds._default, (null == i.queue || i.queue === !0) && (i.queue = "fx"), i.old = i.complete, i.complete = function () { | |
st.isFunction(i.old) && i.old.call(this), i.queue && st.dequeue(this, i.queue) | |
}, i | |
}, st.fn.extend({ | |
fadeTo: function (e, t, n, i) { | |
return this.filter(Nt).css("opacity", 0).show().end().animate({ | |
opacity: t | |
}, e, n, i) | |
}, | |
animate: function (e, t, n, i) { | |
var r = st.isEmptyObject(e), | |
s = st.speed(t, n, i), | |
o = function () { | |
var t = M(this, st.extend({}, e), s); | |
(r || st._data(this, "finish")) && t.stop(!0) | |
}; | |
return o.finish = o, r || s.queue === !1 ? this.each(o) : this.queue(s.queue, o) | |
}, | |
stop: function (e, t, n) { | |
var i = function (e) { | |
var t = e.stop; | |
delete e.stop, t(n) | |
}; | |
return "string" != typeof e && (n = t, t = e, e = void 0), t && e !== !1 && this.queue(e || "fx", []), this.each(function () { | |
var t = !0, | |
r = null != e && e + "queueHooks", | |
s = st.timers, | |
o = st._data(this); | |
if (r) o[r] && o[r].stop && i(o[r]); | |
else | |
for (r in o) o[r] && o[r].stop && kn.test(r) && i(o[r]); | |
for (r = s.length; r--;) s[r].elem !== this || null != e && s[r].queue !== e || (s[r].anim.stop(n), t = !1, s.splice(r, 1)); | |
(t || !n) && st.dequeue(this, e) | |
}) | |
}, | |
finish: function (e) { | |
return e !== !1 && (e = e || "fx"), this.each(function () { | |
var t, n = st._data(this), | |
i = n[e + "queue"], | |
r = n[e + "queueHooks"], | |
s = st.timers, | |
o = i ? i.length : 0; | |
for (n.finish = !0, st.queue(this, e, []), r && r.stop && r.stop.call(this, !0), t = s.length; t--;) s[t].elem === this && s[t].queue === e && (s[t].anim.stop(!0), s.splice(t, 1)); | |
for (t = 0; o > t; t++) i[t] && i[t].finish && i[t].finish.call(this); | |
delete n.finish | |
}) | |
} | |
}), st.each(["toggle", "show", "hide"], function (e, t) { | |
var n = st.fn[t]; | |
st.fn[t] = function (e, i, r) { | |
return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(L(t, !0), e, i, r) | |
} | |
}), st.each({ | |
slideDown: L("show"), | |
slideUp: L("hide"), | |
slideToggle: L("toggle"), | |
fadeIn: { | |
opacity: "show" | |
}, | |
fadeOut: { | |
opacity: "hide" | |
}, | |
fadeToggle: { | |
opacity: "toggle" | |
} | |
}, function (e, t) { | |
st.fn[e] = function (e, n, i) { | |
return this.animate(t, e, n, i) | |
} | |
}), st.timers = [], st.fx.tick = function () { | |
var e, t = st.timers, | |
n = 0; | |
for (mn = st.now(); n < t.length; n++) e = t[n], e() || t[n] !== e || t.splice(n--, 1); | |
t.length || st.fx.stop(), mn = void 0 | |
}, st.fx.timer = function (e) { | |
st.timers.push(e), e() ? st.fx.start() : st.timers.pop() | |
}, st.fx.interval = 13, st.fx.start = function () { | |
gn || (gn = setInterval(st.fx.tick, st.fx.interval)) | |
}, st.fx.stop = function () { | |
clearInterval(gn), gn = null | |
}, st.fx.speeds = { | |
slow: 600, | |
fast: 200, | |
_default: 400 | |
}, st.fn.delay = function (e, t) { | |
return e = st.fx ? st.fx.speeds[e] || e : e, t = t || "fx", this.queue(t, function (t, n) { | |
var i = setTimeout(t, e); | |
n.stop = function () { | |
clearTimeout(i) | |
} | |
}) | |
}, | |
function () { | |
var e, t, n, i, r = mt.createElement("div"); | |
r.setAttribute("className", "t"), r.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", e = r.getElementsByTagName("a")[0], n = mt.createElement("select"), i = n.appendChild(mt.createElement("option")), t = r.getElementsByTagName("input")[0], e.style.cssText = "top:1px", it.getSetAttribute = "t" !== r.className, it.style = /top/.test(e.getAttribute("style")), it.hrefNormalized = "/a" === e.getAttribute("href"), it.checkOn = !! t.value, it.optSelected = i.selected, it.enctype = !! mt.createElement("form").enctype, n.disabled = !0, it.optDisabled = !i.disabled, t = mt.createElement("input"), t.setAttribute("value", ""), it.input = "" === t.getAttribute("value"), t.value = "t", t.setAttribute("type", "radio"), it.radioValue = "t" === t.value, e = t = n = i = r = null | |
}(); | |
var Tn = /\r/g; | |
st.fn.extend({ | |
val: function (e) { | |
var t, n, i, r = this[0]; { | |
if (arguments.length) return i = st.isFunction(e), this.each(function (n) { | |
var r; | |
1 === this.nodeType && (r = i ? e.call(this, n, st(this).val()) : e, null == r ? r = "" : "number" == typeof r ? r += "" : st.isArray(r) && (r = st.map(r, function (e) { | |
return null == e ? "" : e + "" | |
})), t = st.valHooks[this.type] || st.valHooks[this.nodeName.toLowerCase()], t && "set" in t && void 0 !== t.set(this, r, "value") || (this.value = r)) | |
}); | |
if (r) return t = st.valHooks[r.type] || st.valHooks[r.nodeName.toLowerCase()], t && "get" in t && void 0 !== (n = t.get(r, "value")) ? n : (n = r.value, "string" == typeof n ? n.replace(Tn, "") : null == n ? "" : n) | |
} | |
} | |
}), st.extend({ | |
valHooks: { | |
option: { | |
get: function (e) { | |
var t = st.find.attr(e, "value"); | |
return null != t ? t : st.text(e) | |
} | |
}, | |
select: { | |
get: function (e) { | |
for (var t, n, i = e.options, r = e.selectedIndex, s = "select-one" === e.type || 0 > r, o = s ? null : [], a = s ? r + 1 : i.length, l = 0 > r ? a : s ? r : 0; a > l; l++) | |
if (n = i[l], !(!n.selected && l !== r || (it.optDisabled ? n.disabled : null !== n.getAttribute("disabled")) || n.parentNode.disabled && st.nodeName(n.parentNode, "optgroup"))) { | |
if (t = st(n).val(), s) return t; | |
o.push(t) | |
} | |
return o | |
}, | |
set: function (e, t) { | |
for (var n, i, r = e.options, s = st.makeArray(t), o = r.length; o--;) | |
if (i = r[o], st.inArray(st.valHooks.option.get(i), s) >= 0) try { | |
i.selected = n = !0 | |
} catch (a) { | |
i.scrollHeight | |
} else i.selected = !1; | |
return n || (e.selectedIndex = -1), r | |
} | |
} | |
} | |
}), st.each(["radio", "checkbox"], function () { | |
st.valHooks[this] = { | |
set: function (e, t) { | |
return st.isArray(t) ? e.checked = st.inArray(st(e).val(), t) >= 0 : void 0 | |
} | |
}, it.checkOn || (st.valHooks[this].get = function (e) { | |
return null === e.getAttribute("value") ? "on" : e.value | |
}) | |
}); | |
var Sn, xn, En = st.expr.attrHandle, | |
In = /^(?:checked|selected)$/i, | |
Cn = it.getSetAttribute, | |
Rn = it.input; | |
st.fn.extend({ | |
attr: function (e, t) { | |
return _t(this, st.attr, e, t, arguments.length > 1) | |
}, | |
removeAttr: function (e) { | |
return this.each(function () { | |
st.removeAttr(this, e) | |
}) | |
} | |
}), st.extend({ | |
attr: function (e, t, n) { | |
var i, r, s = e.nodeType; | |
if (e && 3 !== s && 8 !== s && 2 !== s) return typeof e.getAttribute === xt ? st.prop(e, t, n) : (1 === s && st.isXMLDoc(e) || (t = t.toLowerCase(), i = st.attrHooks[t] || (st.expr.match.bool.test(t) ? xn : Sn)), void 0 === n ? i && "get" in i && null !== (r = i.get(e, t)) ? r : (r = st.find.attr(e, t), null == r ? void 0 : r) : null !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""), n) : void st.removeAttr(e, t)) | |
}, | |
removeAttr: function (e, t) { | |
var n, i, r = 0, | |
s = t && t.match(yt); | |
if (s && 1 === e.nodeType) | |
for (; n = s[r++];) i = st.propFix[n] || n, st.expr.match.bool.test(n) ? Rn && Cn || !In.test(n) ? e[i] = !1 : e[st.camelCase("default-" + n)] = e[i] = !1 : st.attr(e, n, ""), e.removeAttribute(Cn ? n : i) | |
}, | |
attrHooks: { | |
type: { | |
set: function (e, t) { | |
if (!it.radioValue && "radio" === t && st.nodeName(e, "input")) { | |
var n = e.value; | |
return e.setAttribute("type", t), n && (e.value = n), t | |
} | |
} | |
} | |
} | |
}), xn = { | |
set: function (e, t, n) { | |
return t === !1 ? st.removeAttr(e, n) : Rn && Cn || !In.test(n) ? e.setAttribute(!Cn && st.propFix[n] || n, n) : e[st.camelCase("default-" + n)] = e[n] = !0, n | |
} | |
}, st.each(st.expr.match.bool.source.match(/\w+/g), function (e, t) { | |
var n = En[t] || st.find.attr; | |
En[t] = Rn && Cn || !In.test(t) ? function (e, t, i) { | |
var r, s; | |
return i || (s = En[t], En[t] = r, r = null != n(e, t, i) ? t.toLowerCase() : null, En[t] = s), r | |
} : function (e, t, n) { | |
return n ? void 0 : e[st.camelCase("default-" + t)] ? t.toLowerCase() : null | |
} | |
}), Rn && Cn || (st.attrHooks.value = { | |
set: function (e, t, n) { | |
return st.nodeName(e, "input") ? void(e.defaultValue = t) : Sn && Sn.set(e, t, n) | |
} | |
}), Cn || (Sn = { | |
set: function (e, t, n) { | |
var i = e.getAttributeNode(n); | |
return i || e.setAttributeNode(i = e.ownerDocument.createAttribute(n)), i.value = t += "", "value" === n || t === e.getAttribute(n) ? t : void 0 | |
} | |
}, En.id = En.name = En.coords = function (e, t, n) { | |
var i; | |
return n ? void 0 : (i = e.getAttributeNode(t)) && "" !== i.value ? i.value : null | |
}, st.valHooks.button = { | |
get: function (e, t) { | |
var n = e.getAttributeNode(t); | |
return n && n.specified ? n.value : void 0 | |
}, | |
set: Sn.set | |
}, st.attrHooks.contenteditable = { | |
set: function (e, t, n) { | |
Sn.set(e, "" === t ? !1 : t, n) | |
} | |
}, st.each(["width", "height"], function (e, t) { | |
st.attrHooks[t] = { | |
set: function (e, n) { | |
return "" === n ? (e.setAttribute(t, "auto"), n) : void 0 | |
} | |
} | |
})), it.style || (st.attrHooks.style = { | |
get: function (e) { | |
return e.style.cssText || void 0 | |
}, | |
set: function (e, t) { | |
return e.style.cssText = t + "" | |
} | |
}); | |
var Nn = /^(?:input|select|textarea|button|object)$/i, | |
_n = /^(?:a|area)$/i; | |
st.fn.extend({ | |
prop: function (e, t) { | |
return _t(this, st.prop, e, t, arguments.length > 1) | |
}, | |
removeProp: function (e) { | |
return e = st.propFix[e] || e, this.each(function () { | |
try { | |
this[e] = void 0, delete this[e] | |
} catch (t) {} | |
}) | |
} | |
}), st.extend({ | |
propFix: { | |
"for": "htmlFor", | |
"class": "className" | |
}, | |
prop: function (e, t, n) { | |
var i, r, s, o = e.nodeType; | |
if (e && 3 !== o && 8 !== o && 2 !== o) return s = 1 !== o || !st.isXMLDoc(e), s && (t = st.propFix[t] || t, r = st.propHooks[t]), void 0 !== n ? r && "set" in r && void 0 !== (i = r.set(e, n, t)) ? i : e[t] = n : r && "get" in r && null !== (i = r.get(e, t)) ? i : e[t] | |
}, | |
propHooks: { | |
tabIndex: { | |
get: function (e) { | |
var t = st.find.attr(e, "tabindex"); | |
return t ? parseInt(t, 10) : Nn.test(e.nodeName) || _n.test(e.nodeName) && e.href ? 0 : -1 | |
} | |
} | |
} | |
}), it.hrefNormalized || st.each(["href", "src"], function (e, t) { | |
st.propHooks[t] = { | |
get: function (e) { | |
return e.getAttribute(t, 4) | |
} | |
} | |
}), it.optSelected || (st.propHooks.selected = { | |
get: function (e) { | |
var t = e.parentNode; | |
return t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex), null | |
} | |
}), st.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () { | |
st.propFix[this.toLowerCase()] = this | |
}), it.enctype || (st.propFix.enctype = "encoding"); | |
var Dn = /[\t\r\n\f]/g; | |
st.fn.extend({ | |
addClass: function (e) { | |
var t, n, i, r, s, o, a = 0, | |
l = this.length, | |
u = "string" == typeof e && e; | |
if (st.isFunction(e)) return this.each(function (t) { | |
st(this).addClass(e.call(this, t, this.className)) | |
}); | |
if (u) | |
for (t = (e || "").match(yt) || []; l > a; a++) | |
if (n = this[a], i = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(Dn, " ") : " ")) { | |
for (s = 0; r = t[s++];) i.indexOf(" " + r + " ") < 0 && (i += r + " "); | |
o = st.trim(i), n.className !== o && (n.className = o) | |
} | |
return this | |
}, | |
removeClass: function (e) { | |
var t, n, i, r, s, o, a = 0, | |
l = this.length, | |
u = 0 === arguments.length || "string" == typeof e && e; | |
if (st.isFunction(e)) return this.each(function (t) { | |
st(this).removeClass(e.call(this, t, this.className)) | |
}); | |
if (u) | |
for (t = (e || "").match(yt) || []; l > a; a++) | |
if (n = this[a], i = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(Dn, " ") : "")) { | |
for (s = 0; r = t[s++];) | |
for (; i.indexOf(" " + r + " ") >= 0;) i = i.replace(" " + r + " ", " "); | |
o = e ? st.trim(i) : "", n.className !== o && (n.className = o) | |
} | |
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(st.isFunction(e) ? function (n) { | |
st(this).toggleClass(e.call(this, n, this.className, t), t) | |
} : function () { | |
if ("string" === n) | |
for (var t, i = 0, r = st(this), s = e.match(yt) || []; t = s[i++];) r.hasClass(t) ? r.removeClass(t) : r.addClass(t); | |
else(n === xt || "boolean" === n) && (this.className && st._data(this, "__className__", this.className), this.className = this.className || e === !1 ? "" : st._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(Dn, " ").indexOf(t) >= 0) return !0; | |
return !1 | |
} | |
}), st.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) { | |
st.fn[t] = function (e, n) { | |
return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t) | |
} | |
}), st.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 An = st.now(), | |
Pn = /\?/, | |
Ln = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g; | |
st.parseJSON = function (t) { | |
if (e.JSON && e.JSON.parse) return e.JSON.parse(t + ""); | |
var n, i = null, | |
r = st.trim(t + ""); | |
return r && !st.trim(r.replace(Ln, function (e, t, r, s) { | |
return n && t && (i = 0), 0 === i ? e : (n = r || t, i += !s - !r, "") | |
})) ? Function("return " + r)() : st.error("Invalid JSON: " + t) | |
}, st.parseXML = function (t) { | |
var n, i; | |
if (!t || "string" != typeof t) return null; | |
try { | |
e.DOMParser ? (i = new DOMParser, n = i.parseFromString(t, "text/xml")) : (n = new ActiveXObject("Microsoft.XMLDOM"), n.async = "false", n.loadXML(t)) | |
} catch (r) { | |
n = void 0 | |
} | |
return n && n.documentElement && !n.getElementsByTagName("parsererror").length || st.error("Invalid XML: " + t), n | |
}; | |
var On, jn, Fn = /#.*$/, | |
Mn = /([?&])_=[^&]*/, | |
zn = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm, | |
Hn = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, | |
Un = /^(?:GET|HEAD)$/, | |
Wn = /^\/\//, | |
Bn = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, | |
qn = {}, Xn = {}, Vn = "*/".concat("*"); | |
try { | |
jn = location.href | |
} catch (Yn) { | |
jn = mt.createElement("a"), jn.href = "", jn = jn.href | |
} | |
On = Bn.exec(jn.toLowerCase()) || [], st.extend({ | |
active: 0, | |
lastModified: {}, | |
etag: {}, | |
ajaxSettings: { | |
url: jn, | |
type: "GET", | |
isLocal: Hn.test(On[1]), | |
global: !0, | |
processData: !0, | |
async: !0, | |
contentType: "application/x-www-form-urlencoded; charset=UTF-8", | |
accepts: { | |
"*": Vn, | |
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": st.parseJSON, | |
"text xml": st.parseXML | |
}, | |
flatOptions: { | |
url: !0, | |
context: !0 | |
} | |
}, | |
ajaxSetup: function (e, t) { | |
return t ? U(U(e, st.ajaxSettings), t) : U(st.ajaxSettings, e) | |
}, | |
ajaxPrefilter: z(qn), | |
ajaxTransport: z(Xn), | |
ajax: function (e, t) { | |
function n(e, t, n, i) { | |
var r, c, v, b, y, T = t; | |
2 !== k && (k = 2, a && clearTimeout(a), u = void 0, o = i || "", w.readyState = e > 0 ? 4 : 0, r = e >= 200 && 300 > e || 304 === e, n && (b = W(d, w, n)), b = B(d, b, w, r), r ? (d.ifModified && (y = w.getResponseHeader("Last-Modified"), y && (st.lastModified[s] = y), y = w.getResponseHeader("etag"), y && (st.etag[s] = y)), 204 === e || "HEAD" === d.type ? T = "nocontent" : 304 === e ? T = "notmodified" : (T = b.state, c = b.data, v = b.error, r = !v)) : (v = T, (e || !T) && (T = "error", 0 > e && (e = 0))), w.status = e, w.statusText = (t || T) + "", r ? h.resolveWith(p, [c, T, w]) : h.rejectWith(p, [w, T, v]), w.statusCode(g), g = void 0, l && f.trigger(r ? "ajaxSuccess" : "ajaxError", [w, d, r ? c : v]), m.fireWith(p, [w, T]), l && (f.trigger("ajaxComplete", [w, d]), --st.active || st.event.trigger("ajaxStop"))) | |
} | |
"object" == typeof e && (t = e, e = void 0), t = t || {}; | |
var i, r, s, o, a, l, u, c, d = st.ajaxSetup({}, t), | |
p = d.context || d, | |
f = d.context && (p.nodeType || p.jquery) ? st(p) : st.event, | |
h = st.Deferred(), | |
m = st.Callbacks("once memory"), | |
g = d.statusCode || {}, v = {}, b = {}, k = 0, | |
y = "canceled", | |
w = { | |
readyState: 0, | |
getResponseHeader: function (e) { | |
var t; | |
if (2 === k) { | |
if (!c) | |
for (c = {}; t = zn.exec(o);) c[t[1].toLowerCase()] = t[2]; | |
t = c[e.toLowerCase()] | |
} | |
return null == t ? null : t | |
}, | |
getAllResponseHeaders: function () { | |
return 2 === k ? o : null | |
}, | |
setRequestHeader: function (e, t) { | |
var n = e.toLowerCase(); | |
return k || (e = b[n] = b[n] || e, v[e] = t), this | |
}, | |
overrideMimeType: function (e) { | |
return k || (d.mimeType = e), this | |
}, | |
statusCode: function (e) { | |
var t; | |
if (e) | |
if (2 > k) | |
for (t in e) g[t] = [g[t], e[t]]; | |
else w.always(e[w.status]); | |
return this | |
}, | |
abort: function (e) { | |
var t = e || y; | |
return u && u.abort(t), n(0, t), this | |
} | |
}; | |
if (h.promise(w).complete = m.add, w.success = w.done, w.error = w.fail, d.url = ((e || d.url || jn) + "").replace(Fn, "").replace(Wn, On[1] + "//"), d.type = t.method || t.type || d.method || d.type, d.dataTypes = st.trim(d.dataType || "*").toLowerCase().match(yt) || [""], null == d.crossDomain && (i = Bn.exec(d.url.toLowerCase()), d.crossDomain = !(!i || i[1] === On[1] && i[2] === On[2] && (i[3] || ("http:" === i[1] ? "80" : "443")) === (On[3] || ("http:" === On[1] ? "80" : "443")))), d.data && d.processData && "string" != typeof d.data && (d.data = st.param(d.data, d.traditional)), H(qn, d, t, w), 2 === k) return w; | |
l = d.global, l && 0 === st.active++ && st.event.trigger("ajaxStart"), d.type = d.type.toUpperCase(), d.hasContent = !Un.test(d.type), s = d.url, d.hasContent || (d.data && (s = d.url += (Pn.test(s) ? "&" : "?") + d.data, delete d.data), d.cache === !1 && (d.url = Mn.test(s) ? s.replace(Mn, "$1_=" + An++) : s + (Pn.test(s) ? "&" : "?") + "_=" + An++)), d.ifModified && (st.lastModified[s] && w.setRequestHeader("If-Modified-Since", st.lastModified[s]), st.etag[s] && w.setRequestHeader("If-None-Match", st.etag[s])), (d.data && d.hasContent && d.contentType !== !1 || t.contentType) && w.setRequestHeader("Content-Type", d.contentType), w.setRequestHeader("Accept", d.dataTypes[0] && d.accepts[d.dataTypes[0]] ? d.accepts[d.dataTypes[0]] + ("*" !== d.dataTypes[0] ? ", " + Vn + "; q=0.01" : "") : d.accepts["*"]); | |
for (r in d.headers) w.setRequestHeader(r, d.headers[r]); | |
if (d.beforeSend && (d.beforeSend.call(p, w, d) === !1 || 2 === k)) return w.abort(); | |
y = "abort"; | |
for (r in { | |
success: 1, | |
error: 1, | |
complete: 1 | |
}) w[r](d[r]); | |
if (u = H(Xn, d, t, w)) { | |
w.readyState = 1, l && f.trigger("ajaxSend", [w, d]), d.async && d.timeout > 0 && (a = setTimeout(function () { | |
w.abort("timeout") | |
}, d.timeout)); | |
try { | |
k = 1, u.send(v, n) | |
} catch (T) { | |
if (!(2 > k)) throw T; | |
n(-1, T) | |
} | |
} else n(-1, "No Transport"); | |
return w | |
}, | |
getJSON: function (e, t, n) { | |
return st.get(e, t, n, "json") | |
}, | |
getScript: function (e, t) { | |
return st.get(e, void 0, t, "script") | |
} | |
}), st.each(["get", "post"], function (e, t) { | |
st[t] = function (e, n, i, r) { | |
return st.isFunction(n) && (r = r || i, i = n, n = void 0), st.ajax({ | |
url: e, | |
type: t, | |
dataType: r, | |
data: n, | |
success: i | |
}) | |
} | |
}), st.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (e, t) { | |
st.fn[t] = function (e) { | |
return this.on(t, e) | |
} | |
}), st._evalUrl = function (e) { | |
return st.ajax({ | |
url: e, | |
type: "GET", | |
dataType: "script", | |
async: !1, | |
global: !1, | |
"throws": !0 | |
}) | |
}, st.fn.extend({ | |
wrapAll: function (e) { | |
if (st.isFunction(e)) return this.each(function (t) { | |
st(this).wrapAll(e.call(this, t)) | |
}); | |
if (this[0]) { | |
var t = st(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(st.isFunction(e) ? function (t) { | |
st(this).wrapInner(e.call(this, t)) | |
} : function () { | |
var t = st(this), | |
n = t.contents(); | |
n.length ? n.wrapAll(e) : t.append(e) | |
}) | |
}, | |
wrap: function (e) { | |
var t = st.isFunction(e); | |
return this.each(function (n) { | |
st(this).wrapAll(t ? e.call(this, n) : e) | |
}) | |
}, | |
unwrap: function () { | |
return this.parent().each(function () { | |
st.nodeName(this, "body") || st(this).replaceWith(this.childNodes) | |
}).end() | |
} | |
}), st.expr.filters.hidden = function (e) { | |
return e.offsetWidth <= 0 && e.offsetHeight <= 0 || !it.reliableHiddenOffsets() && "none" === (e.style && e.style.display || st.css(e, "display")) | |
}, st.expr.filters.visible = function (e) { | |
return !st.expr.filters.hidden(e) | |
}; | |
var $n = /%20/g, | |
Jn = /\[\]$/, | |
Gn = /\r?\n/g, | |
Kn = /^(?:submit|button|image|reset|file)$/i, | |
Qn = /^(?:input|select|textarea|keygen)/i; | |
st.param = function (e, t) { | |
var n, i = [], | |
r = function (e, t) { | |
t = st.isFunction(t) ? t() : null == t ? "" : t, i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t) | |
}; | |
if (void 0 === t && (t = st.ajaxSettings && st.ajaxSettings.traditional), st.isArray(e) || e.jquery && !st.isPlainObject(e)) st.each(e, function () { | |
r(this.name, this.value) | |
}); | |
else | |
for (n in e) q(n, e[n], t, r); | |
return i.join("&").replace($n, "+") | |
}, st.fn.extend({ | |
serialize: function () { | |
return st.param(this.serializeArray()) | |
}, | |
serializeArray: function () { | |
return this.map(function () { | |
var e = st.prop(this, "elements"); | |
return e ? st.makeArray(e) : this | |
}).filter(function () { | |
var e = this.type; | |
return this.name && !st(this).is(":disabled") && Qn.test(this.nodeName) && !Kn.test(e) && (this.checked || !Dt.test(e)) | |
}).map(function (e, t) { | |
var n = st(this).val(); | |
return null == n ? null : st.isArray(n) ? st.map(n, function (e) { | |
return { | |
name: t.name, | |
value: e.replace(Gn, "\r\n") | |
} | |
}) : { | |
name: t.name, | |
value: n.replace(Gn, "\r\n") | |
} | |
}).get() | |
} | |
}), st.ajaxSettings.xhr = void 0 !== e.ActiveXObject ? function () { | |
return !this.isLocal && /^(get|post|head|put|delete|options)$/i.test(this.type) && X() || V() | |
} : X; | |
var Zn = 0, | |
ei = {}, ti = st.ajaxSettings.xhr(); | |
e.ActiveXObject && st(e).on("unload", function () { | |
for (var e in ei) ei[e](void 0, !0) | |
}), it.cors = !! ti && "withCredentials" in ti, ti = it.ajax = !! ti, ti && st.ajaxTransport(function (e) { | |
if (!e.crossDomain || it.cors) { | |
var t; | |
return { | |
send: function (n, i) { | |
var r, s = e.xhr(), | |
o = ++Zn; | |
if (s.open(e.type, e.url, e.async, e.username, e.password), e.xhrFields) | |
for (r in e.xhrFields) s[r] = e.xhrFields[r]; | |
e.mimeType && s.overrideMimeType && s.overrideMimeType(e.mimeType), e.crossDomain || n["X-Requested-With"] || (n["X-Requested-With"] = "XMLHttpRequest"); | |
for (r in n) void 0 !== n[r] && s.setRequestHeader(r, n[r] + ""); | |
s.send(e.hasContent && e.data || null), t = function (n, r) { | |
var a, l, u; | |
if (t && (r || 4 === s.readyState)) | |
if (delete ei[o], t = void 0, s.onreadystatechange = st.noop, r) 4 !== s.readyState && s.abort(); | |
else { | |
u = {}, a = s.status, "string" == typeof s.responseText && (u.text = s.responseText); | |
try { | |
l = s.statusText | |
} catch (c) { | |
l = "" | |
} | |
a || !e.isLocal || e.crossDomain ? 1223 === a && (a = 204) : a = u.text ? 200 : 404 | |
} | |
u && i(a, l, u, s.getAllResponseHeaders()) | |
}, e.async ? 4 === s.readyState ? setTimeout(t) : s.onreadystatechange = ei[o] = t : t() | |
}, | |
abort: function () { | |
t && t(void 0, !0) | |
} | |
} | |
} | |
}), st.ajaxSetup({ | |
accepts: { | |
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" | |
}, | |
contents: { | |
script: /(?:java|ecma)script/ | |
}, | |
converters: { | |
"text script": function (e) { | |
return st.globalEval(e), e | |
} | |
} | |
}), st.ajaxPrefilter("script", function (e) { | |
void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET", e.global = !1) | |
}), st.ajaxTransport("script", function (e) { | |
if (e.crossDomain) { | |
var t, n = mt.head || st("head")[0] || mt.documentElement; | |
return { | |
send: function (i, r) { | |
t = mt.createElement("script"), t.async = !0, e.scriptCharset && (t.charset = e.scriptCharset), t.src = e.url, t.onload = t.onreadystatechange = function (e, n) { | |
(n || !t.readyState || /loaded|complete/.test(t.readyState)) && (t.onload = t.onreadystatechange = null, t.parentNode && t.parentNode.removeChild(t), t = null, n || r(200, "success")) | |
}, n.insertBefore(t, n.firstChild) | |
}, | |
abort: function () { | |
t && t.onload(void 0, !0) | |
} | |
} | |
} | |
}); | |
var ni = [], | |
ii = /(=)\?(?=&|$)|\?\?/; | |
st.ajaxSetup({ | |
jsonp: "callback", | |
jsonpCallback: function () { | |
var e = ni.pop() || st.expando + "_" + An++; | |
return this[e] = !0, e | |
} | |
}), st.ajaxPrefilter("json jsonp", function (t, n, i) { | |
var r, s, o, a = t.jsonp !== !1 && (ii.test(t.url) ? "url" : "string" == typeof t.data && !(t.contentType || "").indexOf("application/x-www-form-urlencoded") && ii.test(t.data) && "data"); | |
return a || "jsonp" === t.dataTypes[0] ? (r = t.jsonpCallback = st.isFunction(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback, a ? t[a] = t[a].replace(ii, "$1" + r) : t.jsonp !== !1 && (t.url += (Pn.test(t.url) ? "&" : "?") + t.jsonp + "=" + r), t.converters["script json"] = function () { | |
return o || st.error(r + " was not called"), o[0] | |
}, t.dataTypes[0] = "json", s = e[r], e[r] = function () { | |
o = arguments | |
}, i.always(function () { | |
e[r] = s, t[r] && (t.jsonpCallback = n.jsonpCallback, ni.push(r)), o && st.isFunction(s) && s(o[0]), o = s = void 0 | |
}), "script") : void 0 | |
}), st.parseHTML = function (e, t, n) { | |
if (!e || "string" != typeof e) return null; | |
"boolean" == typeof t && (n = t, t = !1), t = t || mt; | |
var i = pt.exec(e), | |
r = !n && []; | |
return i ? [t.createElement(i[1])] : (i = st.buildFragment([e], t, r), r && r.length && st(r).remove(), st.merge([], i.childNodes)) | |
}; | |
var ri = st.fn.load; | |
st.fn.load = function (e, t, n) { | |
if ("string" != typeof e && ri) return ri.apply(this, arguments); | |
var i, r, s, o = this, | |
a = e.indexOf(" "); | |
return a >= 0 && (i = e.slice(a, e.length), e = e.slice(0, a)), st.isFunction(t) ? (n = t, t = void 0) : t && "object" == typeof t && (s = "POST"), o.length > 0 && st.ajax({ | |
url: e, | |
type: s, | |
dataType: "html", | |
data: t | |
}).done(function (e) { | |
r = arguments, o.html(i ? st("<div>").append(st.parseHTML(e)).find(i) : e) | |
}).complete(n && function (e, t) { | |
o.each(n, r || [e.responseText, t, e]) | |
}), this | |
}, st.expr.filters.animated = function (e) { | |
return st.grep(st.timers, function (t) { | |
return e === t.elem | |
}).length | |
}; | |
var si = e.document.documentElement; | |
st.offset = { | |
setOffset: function (e, t, n) { | |
var i, r, s, o, a, l, u, c = st.css(e, "position"), | |
d = st(e), | |
p = {}; | |
"static" === c && (e.style.position = "relative"), a = d.offset(), s = st.css(e, "top"), l = st.css(e, "left"), u = ("absolute" === c || "fixed" === c) && st.inArray("auto", [s, l]) > -1, u ? (i = d.position(), o = i.top, r = i.left) : (o = parseFloat(s) || 0, r = parseFloat(l) || 0), st.isFunction(t) && (t = t.call(e, n, a)), null != t.top && (p.top = t.top - a.top + o), null != t.left && (p.left = t.left - a.left + r), "using" in t ? t.using.call(e, p) : d.css(p) | |
} | |
}, st.fn.extend({ | |
offset: function (e) { | |
if (arguments.length) return void 0 === e ? this : this.each(function (t) { | |
st.offset.setOffset(this, e, t) | |
}); | |
var t, n, i = { | |
top: 0, | |
left: 0 | |
}, r = this[0], | |
s = r && r.ownerDocument; | |
if (s) return t = s.documentElement, st.contains(t, r) ? (typeof r.getBoundingClientRect !== xt && (i = r.getBoundingClientRect()), n = Y(s), { | |
top: i.top + (n.pageYOffset || t.scrollTop) - (t.clientTop || 0), | |
left: i.left + (n.pageXOffset || t.scrollLeft) - (t.clientLeft || 0) | |
}) : i | |
}, | |
position: function () { | |
if (this[0]) { | |
var e, t, n = { | |
top: 0, | |
left: 0 | |
}, i = this[0]; | |
return "fixed" === st.css(i, "position") ? t = i.getBoundingClientRect() : (e = this.offsetParent(), t = this.offset(), st.nodeName(e[0], "html") || (n = e.offset()), n.top += st.css(e[0], "borderTopWidth", !0), n.left += st.css(e[0], "borderLeftWidth", !0)), { | |
top: t.top - n.top - st.css(i, "marginTop", !0), | |
left: t.left - n.left - st.css(i, "marginLeft", !0) | |
} | |
} | |
}, | |
offsetParent: function () { | |
return this.map(function () { | |
for (var e = this.offsetParent || si; e && !st.nodeName(e, "html") && "static" === st.css(e, "position");) e = e.offsetParent; | |
return e || si | |
}) | |
} | |
}), st.each({ | |
scrollLeft: "pageXOffset", | |
scrollTop: "pageYOffset" | |
}, function (e, t) { | |
var n = /Y/.test(t); | |
st.fn[e] = function (i) { | |
return _t(this, function (e, i, r) { | |
var s = Y(e); | |
return void 0 === r ? s ? t in s ? s[t] : s.document.documentElement[i] : e[i] : void(s ? s.scrollTo(n ? st(s).scrollLeft() : r, n ? r : st(s).scrollTop()) : e[i] = r) | |
}, e, i, arguments.length, null) | |
} | |
}), st.each(["top", "left"], function (e, t) { | |
st.cssHooks[t] = I(it.pixelPosition, function (e, n) { | |
return n ? (n = nn(e, t), sn.test(n) ? st(e).position()[t] + "px" : n) : void 0 | |
}) | |
}), st.each({ | |
Height: "height", | |
Width: "width" | |
}, function (e, t) { | |
st.each({ | |
padding: "inner" + e, | |
content: t, | |
"": "outer" + e | |
}, function (n, i) { | |
st.fn[i] = function (i, r) { | |
var s = arguments.length && (n || "boolean" != typeof i), | |
o = n || (i === !0 || r === !0 ? "margin" : "border"); | |
return _t(this, function (t, n, i) { | |
var r; | |
return st.isWindow(t) ? t.document.documentElement["client" + e] : 9 === t.nodeType ? (r = t.documentElement, Math.max(t.body["scroll" + e], r["scroll" + e], t.body["offset" + e], r["offset" + e], r["client" + e])) : void 0 === i ? st.css(t, n, o) : st.style(t, n, i, o) | |
}, t, s ? i : void 0, s, null) | |
} | |
}) | |
}), st.fn.size = function () { | |
return this.length | |
}, st.fn.andSelf = st.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function () { | |
return st | |
}); | |
var oi = e.jQuery, | |
ai = e.$; | |
return st.noConflict = function (t) { | |
return e.$ === st && (e.$ = ai), t && e.jQuery === st && (e.jQuery = oi), st | |
}, typeof t === xt && (e.jQuery = e.$ = st), st | |
}), | |
function (e, t) { | |
e.rails !== t && e.error("jquery-ujs has already been loaded!"); | |
var n, i = e(document); | |
e.rails = n = { | |
linkClickSelector: "a[data-confirm], a[data-method], a[data-remote], a[data-disable-with]", | |
buttonClickSelector: "button[data-remote]", | |
inputChangeSelector: "select[data-remote], input[data-remote], textarea[data-remote]", | |
formSubmitSelector: "form", | |
formInputClickSelector: "form input[type=submit], form input[type=image], form button[type=submit], form button:not([type])", | |
disableSelector: "input[data-disable-with], button[data-disable-with], textarea[data-disable-with]", | |
enableSelector: "input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled", | |
requiredInputSelector: "input[name][required]:not([disabled]),textarea[name][required]:not([disabled])", | |
fileInputSelector: "input[type=file]", | |
linkDisableSelector: "a[data-disable-with]", | |
CSRFProtection: function (t) { | |
var n = e('meta[name="csrf-token"]').attr("content"); | |
n && t.setRequestHeader("X-CSRF-Token", n) | |
}, | |
refreshCSRFTokens: function () { | |
var t = e("meta[name=csrf-token]").attr("content"), | |
n = e("meta[name=csrf-param]").attr("content"); | |
e('form input[name="' + n + '"]').val(t) | |
}, | |
fire: function (t, n, i) { | |
var r = e.Event(n); | |
return t.trigger(r, i), r.result !== !1 | |
}, | |
confirm: function (e) { | |
return confirm(e) | |
}, | |
ajax: function (t) { | |
return e.ajax(t) | |
}, | |
href: function (e) { | |
return e.attr("href") | |
}, | |
handleRemote: function (i) { | |
var r, s, o, a, l, u, c, d; | |
if (n.fire(i, "ajax:before")) { | |
if (a = i.data("cross-domain"), l = a === t ? null : a, u = i.data("with-credentials") || null, c = i.data("type") || e.ajaxSettings && e.ajaxSettings.dataType, i.is("form")) { | |
r = i.attr("method"), s = i.attr("action"), o = i.serializeArray(); | |
var p = i.data("ujs:submit-button"); | |
p && (o.push(p), i.data("ujs:submit-button", null)) | |
} else i.is(n.inputChangeSelector) ? (r = i.data("method"), s = i.data("url"), o = i.serialize(), i.data("params") && (o = o + "&" + i.data("params"))) : i.is(n.buttonClickSelector) ? (r = i.data("method") || "get", s = i.data("url"), o = i.serialize(), i.data("params") && (o = o + "&" + i.data("params"))) : (r = i.data("method"), s = n.href(i), o = i.data("params") || null); | |
d = { | |
type: r || "GET", | |
data: o, | |
dataType: c, | |
beforeSend: function (e, r) { | |
return r.dataType === t && e.setRequestHeader("accept", "*/*;q=0.5, " + r.accepts.script), n.fire(i, "ajax:beforeSend", [e, r]) | |
}, | |
success: function (e, t, n) { | |
i.trigger("ajax:success", [e, t, n]) | |
}, | |
complete: function (e, t) { | |
i.trigger("ajax:complete", [e, t]) | |
}, | |
error: function (e, t, n) { | |
i.trigger("ajax:error", [e, t, n]) | |
}, | |
crossDomain: l | |
}, u && (d.xhrFields = { | |
withCredentials: u | |
}), s && (d.url = s); | |
var f = n.ajax(d); | |
return i.trigger("ajax:send", f), f | |
} | |
return !1 | |
}, | |
handleMethod: function (i) { | |
var r = n.href(i), | |
s = i.data("method"), | |
o = i.attr("target"), | |
a = e("meta[name=csrf-token]").attr("content"), | |
l = e("meta[name=csrf-param]").attr("content"), | |
u = e('<form method="post" action="' + r + '"></form>'), | |
c = '<input name="_method" value="' + s + '" type="hidden" />'; | |
l !== t && a !== t && (c += '<input name="' + l + '" value="' + a + '" type="hidden" />'), o && u.attr("target", o), u.hide().append(c).appendTo("body"), u.submit() | |
}, | |
disableFormElements: function (t) { | |
t.find(n.disableSelector).each(function () { | |
var t = e(this), | |
n = t.is("button") ? "html" : "val"; | |
t.data("ujs:enable-with", t[n]()), t[n](t.data("disable-with")), t.prop("disabled", !0) | |
}) | |
}, | |
enableFormElements: function (t) { | |
t.find(n.enableSelector).each(function () { | |
var t = e(this), | |
n = t.is("button") ? "html" : "val"; | |
t.data("ujs:enable-with") && t[n](t.data("ujs:enable-with")), t.prop("disabled", !1) | |
}) | |
}, | |
allowAction: function (e) { | |
var t, i = e.data("confirm"), | |
r = !1; | |
return i ? (n.fire(e, "confirm") && (r = n.confirm(i), t = n.fire(e, "confirm:complete", [r])), r && t) : !0 | |
}, | |
blankInputs: function (t, n, i) { | |
var r, s, o = e(), | |
a = n || "input,textarea", | |
l = t.find(a); | |
return l.each(function () { | |
if (r = e(this), s = r.is("input[type=checkbox],input[type=radio]") ? r.is(":checked") : r.val(), !s == !i) { | |
if (r.is("input[type=radio]") && l.filter('input[type=radio]:checked[name="' + r.attr("name") + '"]').length) return !0; | |
o = o.add(r) | |
} | |
}), o.length ? o : !1 | |
}, | |
nonBlankInputs: function (e, t) { | |
return n.blankInputs(e, t, !0) | |
}, | |
stopEverything: function (t) { | |
return e(t.target).trigger("ujs:everythingStopped"), t.stopImmediatePropagation(), !1 | |
}, | |
disableElement: function (e) { | |
e.data("ujs:enable-with", e.html()), e.html(e.data("disable-with")), e.bind("click.railsDisable", function (e) { | |
return n.stopEverything(e) | |
}) | |
}, | |
enableElement: function (e) { | |
e.data("ujs:enable-with") !== t && (e.html(e.data("ujs:enable-with")), e.removeData("ujs:enable-with")), e.unbind("click.railsDisable") | |
} | |
}, n.fire(i, "rails:attachBindings") && (e.ajaxPrefilter(function (e, t, i) { | |
e.crossDomain || n.CSRFProtection(i) | |
}), i.delegate(n.linkDisableSelector, "ajax:complete", function () { | |
n.enableElement(e(this)) | |
}), i.delegate(n.linkClickSelector, "click.rails", function (i) { | |
var r = e(this), | |
s = r.data("method"), | |
o = r.data("params"), | |
a = i.metaKey || i.ctrlKey; | |
if (!n.allowAction(r)) return n.stopEverything(i); | |
if (!a && r.is(n.linkDisableSelector) && n.disableElement(r), r.data("remote") !== t) { | |
if (a && (!s || "GET" === s) && !o) return !0; | |
var l = n.handleRemote(r); | |
return l === !1 ? n.enableElement(r) : l.error(function () { | |
n.enableElement(r) | |
}), !1 | |
} | |
return r.data("method") ? (n.handleMethod(r), !1) : void 0 | |
}), i.delegate(n.buttonClickSelector, "click.rails", function (t) { | |
var i = e(this); | |
return n.allowAction(i) ? (n.handleRemote(i), !1) : n.stopEverything(t) | |
}), i.delegate(n.inputChangeSelector, "change.rails", function (t) { | |
var i = e(this); | |
return n.allowAction(i) ? (n.handleRemote(i), !1) : n.stopEverything(t) | |
}), i.delegate(n.formSubmitSelector, "submit.rails", function (i) { | |
var r = e(this), | |
s = r.data("remote") !== t, | |
o = n.blankInputs(r, n.requiredInputSelector), | |
a = n.nonBlankInputs(r, n.fileInputSelector); | |
if (!n.allowAction(r)) return n.stopEverything(i); | |
if (o && r.attr("novalidate") == t && n.fire(r, "ajax:aborted:required", [o])) return n.stopEverything(i); | |
if (s) { | |
if (a) { | |
setTimeout(function () { | |
n.disableFormElements(r) | |
}, 13); | |
var l = n.fire(r, "ajax:aborted:file", [a]); | |
return l || setTimeout(function () { | |
n.enableFormElements(r) | |
}, 13), l | |
} | |
return n.handleRemote(r), !1 | |
} | |
setTimeout(function () { | |
n.disableFormElements(r) | |
}, 13) | |
}), i.delegate(n.formInputClickSelector, "click.rails", function (t) { | |
var i = e(this); | |
if (!n.allowAction(i)) return n.stopEverything(t); | |
var r = i.attr("name"), | |
s = r ? { | |
name: r, | |
value: i.val() | |
} : null; | |
i.closest("form").data("ujs:submit-button", s) | |
}), i.delegate(n.formSubmitSelector, "ajax:beforeSend.rails", function (t) { | |
this == t.target && n.disableFormElements(e(this)) | |
}), i.delegate(n.formSubmitSelector, "ajax:complete.rails", function (t) { | |
this == t.target && n.enableFormElements(e(this)) | |
}), e(function () { | |
n.refreshCSRFTokens() | |
})) | |
}(jQuery), | |
function () { | |
var e, t, n, i, r, s, o, a, l, u, c, d, p, f, h, m, g, v, b, k, y, w, T, S, x, E, I, C, R, N, _, D, A, P, L, O, j, F, M, z, H, U, W, B, q, X, V, Y, $, J, G, K, Q, Z, et, tt, nt, it, rt, st, ot = [].indexOf || function (e) { | |
for (var t = 0, n = this.length; n > t; t++) | |
if (t in this && this[t] === e) return t; | |
return -1 | |
}, at = [].slice; | |
j = {}, c = 10, et = !1, m = null, A = null, E = ["html"], W = null, f = null, rt = null, y = function (e) { | |
var t; | |
return Y(), u(), B(e), et && (t = tt(e)) ? (w(t), T(e)) : T(e, Q) | |
}, tt = function (e) { | |
var t; | |
return t = j[e], t && !t.transitionCacheDisabled ? t : void 0 | |
}, g = function (e) { | |
return null == e && (e = !0), et = e | |
}, T = function (e, t) { | |
return null == t && (t = function () { | |
return function () {} | |
}(this)), nt("page:fetch", { | |
url: e | |
}), null != rt && rt.abort(), rt = new XMLHttpRequest, rt.open("GET", J(e), !0), rt.setRequestHeader("Accept", "text/html, application/xhtml+xml, application/xml"), rt.setRequestHeader("X-XHR-Referer", W), rt.onload = function () { | |
var n; | |
return nt("page:receive"), (n = H()) ? (d.apply(null, k(n)), q(), t(), nt("page:load")) : document.location.href = e | |
}, rt.onloadend = function () { | |
return rt = null | |
}, rt.onerror = function () { | |
return document.location.href = e | |
}, rt.send() | |
}, w = function (e) { | |
return null != rt && rt.abort(), d(e.title, e.body), U(e), nt("page:restore") | |
}, u = function () { | |
return j[m.url] = { | |
url: document.location.href, | |
body: document.body, | |
title: document.title, | |
positionY: window.pageYOffset, | |
positionX: window.pageXOffset, | |
cachedAt: (new Date).getTime(), | |
transitionCacheDisabled: null != document.querySelector("[data-no-transition-cache]") | |
}, p(c) | |
}, M = function (e) { | |
return null == e && (e = c), /^[\d]+$/.test(e) ? c = parseInt(e) : void 0 | |
}, p = function (e) { | |
var t, n, i, r, s, o; | |
for (i = Object.keys(j), t = i.map(function (e) { | |
return j[e].cachedAt | |
}).sort(function (e, t) { | |
return t - e | |
}), o = [], r = 0, s = i.length; s > r; r++) n = i[r], j[n].cachedAt <= t[e] && (nt("page:expire", j[n]), o.push(delete j[n])); | |
return o | |
}, d = function (t, n, i, r) { | |
return document.title = t, document.documentElement.replaceChild(n, document.body), null != i && e.update(i), r && v(), m = window.history.state, nt("page:change"), nt("page:update") | |
}, v = function () { | |
var e, t, n, i, r, s, o, a, l, u, c, d; | |
for (s = Array.prototype.slice.call(document.body.querySelectorAll('script:not([data-turbolinks-eval="false"])')), o = 0, l = s.length; l > o; o++) | |
if (r = s[o], "" === (c = r.type) || "text/javascript" === c) { | |
for (t = document.createElement("script"), d = r.attributes, a = 0, u = d.length; u > a; a++) e = d[a], t.setAttribute(e.name, e.value); | |
t.appendChild(document.createTextNode(r.innerHTML)), i = r.parentNode, n = r.nextSibling, i.removeChild(r), i.insertBefore(t, n) | |
} | |
}, G = function (e) { | |
return e.innerHTML = e.innerHTML.replace(/<noscript[\S\s]*?<\/noscript>/gi, ""), e | |
}, B = function (e) { | |
return e !== W ? window.history.pushState({ | |
turbolinks: !0, | |
url: e | |
}, "", e) : void 0 | |
}, q = function () { | |
var e, t; | |
return (e = rt.getResponseHeader("X-XHR-Redirected-To")) ? (t = $(e) === e ? document.location.hash : "", window.history.replaceState(m, "", e + t)) : void 0 | |
}, Y = function () { | |
return W = document.location.href | |
}, V = function () { | |
return window.history.replaceState({ | |
turbolinks: !0, | |
url: document.location.href | |
}, "", document.location.href) | |
}, X = function () { | |
return m = window.history.state | |
}, U = function (e) { | |
return window.scrollTo(e.positionX, e.positionY) | |
}, Q = function () { | |
return document.location.hash ? document.location.href = document.location.href : window.scrollTo(0, 0) | |
}, J = function (e) { | |
return $(e) | |
}, $ = function (e) { | |
var t; | |
return t = e, null == e.href && (t = document.createElement("A"), t.href = e), t.href.replace(t.hash, "") | |
}, z = function (e) { | |
var t, n; | |
return t = (null != (n = document.cookie.match(new RegExp(e + "=(\\w+)"))) ? n[1].toUpperCase() : void 0) || "", document.cookie = e + "=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/", t | |
}, nt = function (e, t) { | |
var n; | |
return n = document.createEvent("Events"), t && (n.data = t), n.initEvent(e, !0, !0), document.dispatchEvent(n) | |
}, F = function () { | |
return !nt("page:before-change") | |
}, H = function () { | |
var e, t, n, i, r, s; | |
return t = function () { | |
var e; | |
return 400 <= (e = rt.status) && 600 > e | |
}, s = function () { | |
return rt.getResponseHeader("Content-Type").match(/^(?:text\/html|application\/xhtml\+xml|application\/xml)(?:;|$)/) | |
}, i = function (e) { | |
var t, n, i, r, s; | |
for (r = e.head.childNodes, s = [], n = 0, i = r.length; i > n; n++) t = r[n], null != ("function" == typeof t.getAttribute ? t.getAttribute("data-turbolinks-track") : void 0) && s.push(t.getAttribute("src") || t.getAttribute("href")); | |
return s | |
}, e = function (e) { | |
var t; | |
return A || (A = i(document)), t = i(e), t.length !== A.length || r(t, A).length !== A.length | |
}, r = function (e, t) { | |
var n, i, r, s, o; | |
for (e.length > t.length && (s = [t, e], e = s[0], t = s[1]), o = [], i = 0, r = e.length; r > i; i++) n = e[i], ot.call(t, n) >= 0 && o.push(n); | |
return o | |
}, !t() && s() && (n = f(rt.responseText), n && !e(n)) ? n : void 0 | |
}, k = function (t) { | |
var n; | |
return n = t.querySelector("title"), [null != n ? n.textContent : void 0, G(t.body), e.get(t).token, "runScripts"] | |
}, e = { | |
get: function (e) { | |
var t; | |
return null == e && (e = document), { | |
node: t = e.querySelector('meta[name="csrf-token"]'), | |
token: null != t && "function" == typeof t.getAttribute ? t.getAttribute("content") : void 0 | |
} | |
}, | |
update: function (e) { | |
var t; | |
return t = this.get(), null != t.token && null != e && t.token !== e ? t.node.setAttribute("content", e) : void 0 | |
} | |
}, i = function () { | |
var e, t, n, i, r, s; | |
t = function (e) { | |
return (new DOMParser).parseFromString(e, "text/html") | |
}, e = function (e) { | |
var t; | |
return t = document.implementation.createHTMLDocument(""), t.documentElement.innerHTML = e, t | |
}, n = function (e) { | |
var t; | |
return t = document.implementation.createHTMLDocument(""), t.open("replace"), t.write(e), t.close(), t | |
}; | |
try { | |
if (window.DOMParser) return r = t("<html><body><p>test"), t | |
} catch (o) { | |
return i = o, r = e("<html><body><p>test"), e | |
} finally { | |
if (1 !== (null != r && null != (s = r.body) ? s.childNodes.length : void 0)) return n | |
} | |
}, R = function (e) { | |
return e.defaultPrevented ? void 0 : (document.removeEventListener("click", S, !1), document.addEventListener("click", S, !1)) | |
}, S = function (e) { | |
var t; | |
return e.defaultPrevented || (t = b(e), "A" !== t.nodeName || I(e, t)) ? void 0 : (F() || it(t.href), e.preventDefault()) | |
}, b = function (e) { | |
var t; | |
for (t = e.target; t.parentNode && "A" !== t.nodeName;) t = t.parentNode; | |
return t | |
}, h = function (e) { | |
return location.protocol !== e.protocol || location.host !== e.host | |
}, n = function (e) { | |
return (e.hash && $(e)) === $(location) || e.href === location.href + "#" | |
}, L = function (e) { | |
var t; | |
return t = $(e), t.match(/\.[a-z]+(\?.*)?$/g) && !t.match(new RegExp("\\.(?:" + E.join("|") + ")?(\\?.*)?$", "g")) | |
}, P = function (e) { | |
for (var t; !t && e !== document;) t = null != e.getAttribute("data-no-turbolink"), e = e.parentNode; | |
return t | |
}, Z = function (e) { | |
return 0 !== e.target.length | |
}, O = function (e) { | |
return e.which > 1 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey | |
}, I = function (e, t) { | |
return h(t) || n(t) || L(t) || P(t) || Z(t) || O(e) | |
}, t = function () { | |
var e, t, n, i; | |
for (t = 1 <= arguments.length ? at.call(arguments, 0) : [], n = 0, i = t.length; i > n; n++) e = t[n], E.push(e); | |
return E | |
}, l = function (e) { | |
return setTimeout(e, 500) | |
}, N = function () { | |
return document.addEventListener("DOMContentLoaded", function () { | |
return nt("page:change"), nt("page:update") | |
}, !0) | |
}, D = function () { | |
return "undefined" != typeof jQuery ? jQuery(document).on("ajaxSuccess", function (e, t) { | |
return jQuery.trim(t.responseText) ? nt("page:update") : void 0 | |
}) : void 0 | |
}, _ = function (e) { | |
var t, n; | |
return (null != (n = e.state) ? n.turbolinks : void 0) ? (t = j[e.state.url]) ? (u(), w(t)) : it(e.target.location.href) : void 0 | |
}, C = function () { | |
return V(), X(), f = i(), document.addEventListener("click", R, !0), l(function () { | |
return window.addEventListener("popstate", _, !1) | |
}) | |
}, x = void 0 !== window.history.state || navigator.userAgent.match(/Firefox\/2[6|7]/), o = window.history && window.history.pushState && window.history.replaceState && x, r = !navigator.userAgent.match(/CriOS\//), K = "GET" === (st = z("request_method")) || "" === st, a = o && r && K, s = document.addEventListener && document.createEvent, s && (N(), D()), a ? (it = y, C()) : it = function (e) { | |
return document.location.href = e | |
}, this.Turbolinks = { | |
visit: it, | |
pagesCached: M, | |
enableTransitionCache: g, | |
allowLinkExtensions: t, | |
supported: a | |
} | |
}.call(this), | |
function (e) { | |
"use strict"; | |
function t(e) { | |
return new RegExp("(^|\\s+)" + e + "(\\s+|$)") | |
} | |
function n(e, t) { | |
var n = i(e, t) ? s : r; | |
n(e, t) | |
} | |
var i, r, s; | |
"classList" in document.documentElement ? (i = function (e, t) { | |
return e.classList.contains(t) | |
}, r = function (e, t) { | |
e.classList.add(t) | |
}, s = function (e, t) { | |
e.classList.remove(t) | |
}) : (i = function (e, n) { | |
return t(n).test(e.className) | |
}, r = function (e, t) { | |
i(e, t) || (e.className = e.className + " " + t) | |
}, s = function (e, n) { | |
e.className = e.className.replace(t(n), " ") | |
}); | |
var o = { | |
hasClass: i, | |
addClass: r, | |
removeClass: s, | |
toggleClass: n, | |
has: i, | |
add: r, | |
remove: s, | |
toggle: n | |
}; | |
"function" == typeof define && define.amd ? define(o) : e.classie = o | |
}(window); | |
var kCHARSET_RULE_MISSING_SEMICOLON = "Missing semicolon at the end of @charset rule", | |
kCHARSET_RULE_CHARSET_IS_STRING = "The charset in the @charset rule should be a string", | |
kCHARSET_RULE_MISSING_WS = "Missing mandatory whitespace after @charset", | |
kIMPORT_RULE_MISSING_URL = "Missing URL in @import rule", | |
kURL_EOF = "Unexpected end of stylesheet", | |
kURL_WS_INSIDE = "Multiple tokens inside a url() notation", | |
kVARIABLES_RULE_POSITION = "@variables rule invalid at this position in the stylesheet", | |
kIMPORT_RULE_POSITION = "@import rule invalid at this position in the stylesheet", | |
kNAMESPACE_RULE_POSITION = "@namespace rule invalid at this position in the stylesheet", | |
kCHARSET_RULE_CHARSET_SOF = "@charset rule invalid at this position in the stylesheet", | |
kUNKNOWN_AT_RULE = "Unknow @-rule", | |
kENGINES = ["webkit", "presto", "trident", "generic"], | |
kCSS_VENDOR_VALUES = { | |
"-moz-box": { | |
webkit: "-webkit-box", | |
presto: "", | |
trident: "", | |
generic: "box" | |
}, | |
"-moz-inline-box": { | |
webkit: "-webkit-inline-box", | |
presto: "", | |
trident: "", | |
generic: "inline-box" | |
}, | |
"-moz-initial": { | |
webkit: "", | |
presto: "", | |
trident: "", | |
generic: "initial" | |
}, | |
"-moz-linear-gradient": { | |
webkit20110101: FilterLinearGradientForOutput, | |
webkit: FilterLinearGradientForOutput, | |
presto: "", | |
trident: "", | |
generic: FilterLinearGradientForOutput | |
}, | |
"-moz-radial-gradient": { | |
webkit20110101: FilterRadialGradientForOutput, | |
webkit: FilterRadialGradientForOutput, | |
presto: "", | |
trident: "", | |
generic: FilterRadialGradientForOutput | |
}, | |
"-moz-repeating-linear-gradient": { | |
webkit20110101: "", | |
webkit: FilterRepeatingGradientForOutput, | |
presto: "", | |
trident: "", | |
generic: FilterRepeatingGradientForOutput | |
}, | |
"-moz-repeating-radial-gradient": { | |
webkit20110101: "", | |
webkit: FilterRepeatingGradientForOutput, | |
presto: "", | |
trident: "", | |
generic: FilterRepeatingGradientForOutput | |
} | |
}, kCSS_VENDOR_PREFIXES = { | |
lastUpdate: 1304175007, | |
properties: [{ | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-accelerator", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-wap-accesskey", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-animation", | |
webkit: "-webkit-animation", | |
presto: "", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "-moz-animation-delay", | |
webkit: "-webkit-animation-delay", | |
presto: "", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "-moz-animation-direction", | |
webkit: "-webkit-animation-direction", | |
presto: "", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "-moz-animation-duration", | |
webkit: "-webkit-animation-duration", | |
presto: "", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "-moz-animation-fill-mode", | |
webkit: "-webkit-animation-fill-mode", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "-moz-animation-iteration-count", | |
webkit: "-webkit-animation-iteration-count", | |
presto: "", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "-moz-animation-name", | |
webkit: "-webkit-animation-name", | |
presto: "", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "-moz-animation-play-state", | |
webkit: "-webkit-animation-play-state", | |
presto: "", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "-moz-animation-timing-function", | |
webkit: "-webkit-animation-timing-function", | |
presto: "", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "-moz-appearance", | |
webkit: "-webkit-appearance", | |
presto: "", | |
trident: "", | |
status: "CR" | |
}, { | |
gecko: "", | |
webkit: "-webkit-backface-visibility", | |
presto: "", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "background-clip", | |
webkit: "-webkit-background-clip", | |
presto: "background-clip", | |
trident: "background-clip", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-background-composite", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-background-inline-policy", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "background-origin", | |
webkit: "-webkit-background-origin", | |
presto: "background-origin", | |
trident: "background-origin", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "background-position-x", | |
presto: "", | |
trident: "-ms-background-position-x", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "background-position-y", | |
presto: "", | |
trident: "-ms-background-position-y", | |
status: "" | |
}, { | |
gecko: "background-size", | |
webkit: "-webkit-background-size", | |
presto: "background-size", | |
trident: "background-size", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-behavior", | |
status: "" | |
}, { | |
gecko: "-moz-binding", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-block-progression", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-border-after", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "-webkit-border-after-color", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "-webkit-border-after-style", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "-webkit-border-after-width", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "-webkit-border-before", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "-webkit-border-before-color", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "-webkit-border-before-style", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "-webkit-border-before-width", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "-moz-border-bottom-colors", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "border-bottom-left-radius", | |
webkit: "-webkit-border-bottom-left-radius", | |
presto: "border-bottom-left-radius", | |
trident: "border-bottom-left-radius", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-border-bottom-left-radius = border-bottom-left-radius", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "border-bottom-right-radius", | |
webkit: "-webkit-border-bottom-right-radius", | |
presto: "border-bottom-right-radius", | |
trident: "border-bottom-right-radius", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-border-bottom-right-radius = border-bottom-right-radius", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-border-end", | |
webkit: "-webkit-border-end", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "-moz-border-end-color", | |
webkit: "-webkit-border-end-color", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "-moz-border-end-style", | |
webkit: "-webkit-border-end-style", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "-moz-border-end-width", | |
webkit: "-webkit-border-end-width", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "-webkit-border-fit", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-border-horizontal-spacing", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-border-image", | |
webkit: "-webkit-border-image", | |
presto: "-o-border-image", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "-moz-border-left-colors", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "border-radius", | |
webkit: "-webkit-border-radius", | |
presto: "border-radius", | |
trident: "border-radius", | |
status: "WD" | |
}, { | |
gecko: "-moz-border-right-colors", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "-moz-border-start", | |
webkit: "-webkit-border-start", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "-moz-border-start-color", | |
webkit: "-webkit-border-start-color", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "-moz-border-start-style", | |
webkit: "-webkit-border-start-style", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "-moz-border-start-width", | |
webkit: "-webkit-border-start-width", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "-moz-border-top-colors", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "border-top-left-radius", | |
webkit: "-webkit-border-top-left-radius", | |
presto: "border-top-left-radius", | |
trident: "border-top-left-radius", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-border-top-left-radius = border-top-left-radius", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "border-top-right-radius", | |
webkit: "-webkit-border-top-right-radius", | |
presto: "border-top-right-radius", | |
trident: "border-top-right-radius", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-border-top-right-radius = border-top-right-radius", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-border-vertical-spacing", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-box-align", | |
webkit: "-webkit-box-align", | |
presto: "", | |
trident: "-ms-box-align", | |
status: "WD" | |
}, { | |
gecko: "-moz-box-direction", | |
webkit: "-webkit-box-direction", | |
presto: "", | |
trident: "-ms-box-direction", | |
status: "WD" | |
}, { | |
gecko: "-moz-box-flex", | |
webkit: "-webkit-box-flex", | |
presto: "", | |
trident: "-ms-box-flex", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-box-flex-group", | |
presto: "", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-box-line-progression", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-box-lines", | |
presto: "", | |
trident: "-ms-box-lines", | |
status: "WD" | |
}, { | |
gecko: "-moz-box-ordinal-group", | |
webkit: "-webkit-box-ordinal-group", | |
presto: "", | |
trident: "-ms-box-ordinal-group", | |
status: "WD" | |
}, { | |
gecko: "-moz-box-orient", | |
webkit: "-webkit-box-orient", | |
presto: "", | |
trident: "-ms-box-orient", | |
status: "WD" | |
}, { | |
gecko: "-moz-box-pack", | |
webkit: "-webkit-box-pack", | |
presto: "", | |
trident: "-ms-box-pack", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-box-reflect", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "box-shadow", | |
webkit: "-webkit-box-shadow", | |
presto: "box-shadow", | |
trident: "box-shadow", | |
status: "WD" | |
}, { | |
gecko: "-moz-box-sizing", | |
webkit: "box-sizing", | |
presto: "box-sizing", | |
trident: "", | |
status: "CR" | |
}, { | |
gecko: "", | |
webkit: "-webkit-box-sizing = box-sizing", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-epub-caption-side = caption-side", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-color-correction", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-column-break-after", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-column-break-before", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-column-break-inside", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-column-count", | |
webkit: "-webkit-column-count", | |
presto: "column-count", | |
trident: "column-count", | |
status: "CR" | |
}, { | |
gecko: "-moz-column-gap", | |
webkit: "-webkit-column-gap", | |
presto: "column-gap", | |
trident: "column-gap", | |
status: "CR" | |
}, { | |
gecko: "-moz-column-rule", | |
webkit: "-webkit-column-rule", | |
presto: "column-rule", | |
trident: "column-rule", | |
status: "CR" | |
}, { | |
gecko: "-moz-column-rule-color", | |
webkit: "-webkit-column-rule-color", | |
presto: "column-rule-color", | |
trident: "column-rule-color", | |
status: "CR" | |
}, { | |
gecko: "-moz-column-rule-style", | |
webkit: "-webkit-column-rule-style", | |
presto: "column-rule-style", | |
trident: "column-rule-style", | |
status: "CR" | |
}, { | |
gecko: "-moz-column-rule-width", | |
webkit: "-webkit-column-rule-width", | |
presto: "column-rule-width", | |
trident: "column-rule-width", | |
status: "CR" | |
}, { | |
gecko: "", | |
webkit: "-webkit-column-span", | |
presto: "column-span", | |
trident: "column-span", | |
status: "CR" | |
}, { | |
gecko: "-moz-column-width", | |
webkit: "-webkit-column-width", | |
presto: "column-width", | |
trident: "column-width", | |
status: "CR" | |
}, { | |
gecko: "", | |
webkit: "-webkit-columns", | |
presto: "columns", | |
trident: "columns", | |
status: "CR" | |
}, { | |
gecko: "", | |
webkit: "-webkit-dashboard-region", | |
presto: "-apple-dashboard-region", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "filter", | |
webkit: "", | |
presto: "filter", | |
trident: "-ms-filter", | |
status: "" | |
}, { | |
gecko: "-moz-float-edge", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-o-focus-opacity", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-font-feature-settings", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-font-language-override", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-font-size-delta", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-font-smoothing", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-force-broken-image-icon", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-grid-column", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-grid-column-align", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-grid-column-span", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-grid-columns", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-grid-layer", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-grid-row", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-grid-row-align", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-grid-row-span", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-grid-rows", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-highlight", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-hyphenate-character", | |
presto: "", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-hyphenate-limit-after", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-hyphenate-limit-before", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-hyphens", | |
presto: "", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-epub-hyphens = -webkit-hyphens", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-image-region", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "ime-mode", | |
webkit: "", | |
presto: "", | |
trident: "-ms-ime-mode", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-wap-input-format", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-wap-input-required", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-interpolation-mode", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-xv-interpret-as", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-layout-flow", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-layout-grid", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-layout-grid-char", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-layout-grid-line", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-layout-grid-mode", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-layout-grid-type", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-line-box-contain", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-line-break", | |
presto: "", | |
trident: "-ms-line-break", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-line-clamp", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-line-grid-mode", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-o-link", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-o-link-source", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-locale", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-logical-height", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "-webkit-logical-width", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "-webkit-margin-after", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "-webkit-margin-after-collapse", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-margin-before", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "-webkit-margin-before-collapse", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-margin-bottom-collapse", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-margin-collapse", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-margin-end", | |
webkit: "-webkit-margin-end", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "-moz-margin-start", | |
webkit: "-webkit-margin-start", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "-webkit-margin-top-collapse", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-marquee", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-wap-marquee-dir", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-marquee-direction", | |
presto: "", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-marquee-increment", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-wap-marquee-loop", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-marquee-repetition", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-marquee-speed", | |
presto: "-wap-marquee-speed", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-marquee-style", | |
presto: "-wap-marquee-style", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "mask", | |
webkit: "-webkit-mask", | |
presto: "mask", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-mask-attachment", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-mask-box-image", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-mask-clip", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-mask-composite", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-mask-image", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-mask-origin", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-mask-position", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-mask-position-x", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-mask-position-y", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-mask-repeat", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-mask-repeat-x", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-mask-repeat-y", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-mask-size", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-match-nearest-mail-blockquote-color", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-max-logical-height", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-max-logical-width", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "-webkit-min-logical-height", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "-webkit-min-logical-width", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-o-mini-fold", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-nbsp-mode", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-o-object-fit", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-o-object-position", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "opacity", | |
webkit: "-webkit-opacity", | |
presto: "opacity", | |
trident: "opacity", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-opacity = opacity", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-outline-radius", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "-moz-outline-radius-bottomleft", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "-moz-outline-radius-bottomright", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "-moz-outline-radius-topleft", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "-moz-outline-radius-topright", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "overflow-x", | |
webkit: "overflow-x", | |
presto: "overflow-x", | |
trident: "-ms-overflow-x", | |
status: "WD" | |
}, { | |
gecko: "overflow-y", | |
webkit: "overflow-y", | |
presto: "overflow-y", | |
trident: "-ms-overflow-y", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-padding-after", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "-webkit-padding-before", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "-moz-padding-end", | |
webkit: "-webkit-padding-end", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "-moz-padding-start", | |
webkit: "-webkit-padding-start", | |
presto: "", | |
trident: "", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "-webkit-perspective", | |
presto: "", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-perspective-origin", | |
presto: "", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-perspective-origin-x", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-perspective-origin-y", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-xv-phonemes", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-rtl-ordering", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "-moz-script-level", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-script-min-size", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-script-size-multiplier", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "scrollbar-3dlight-color", | |
trident: "-ms-scrollbar-3dlight-color", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "scrollbar-arrow-color", | |
trident: "-ms-scrollbar-arrow-color", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "scrollbar-base-color", | |
trident: "-ms-scrollbar-base-color", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "scrollbar-darkshadow-color", | |
trident: "-ms-scrollbar-darkshadow-color", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "scrollbar-face-color", | |
trident: "-ms-scrollbar-face-color", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "scrollbar-highlight-color", | |
trident: "-ms-scrollbar-highlight-color", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "scrollbar-shadow-color", | |
trident: "-ms-scrollbar-shadow-color", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "scrollbar-track-color", | |
trident: "-ms-scrollbar-track-color", | |
status: "P" | |
}, { | |
gecko: "-moz-stack-sizing", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "-webkit-svg-shadow", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-tab-size", | |
webkit: "", | |
presto: "-o-tab-size", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-o-table-baseline", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-tap-highlight-color", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-text-align-last", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-text-autospace", | |
status: "WD" | |
}, { | |
gecko: "-moz-text-blink", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-text-combine", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-epub-text-combine = -webkit-text-combine", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-text-decoration-color", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-text-decoration-line", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-text-decoration-style", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-text-decorations-in-effect", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-text-emphasis", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-epub-text-emphasis = -webkit-text-emphasis", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-text-emphasis-color", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-epub-text-emphasis-color = -webkit-text-emphasis-color", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-text-emphasis-position", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-text-emphasis-style", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-epub-text-emphasis-style = -webkit-text-emphasis-style", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-text-fill-color", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-text-justify", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-text-kashida-space", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "-webkit-text-orientation", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-epub-text-orientation = -webkit-text-orientation", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "text-overflow", | |
presto: "text-overflow", | |
trident: "-ms-text-overflow", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-text-security", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "-webkit-text-size-adjust", | |
presto: "", | |
trident: "-ms-text-size-adjust", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "-webkit-text-stroke", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "-webkit-text-stroke-color", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "-webkit-text-stroke-width", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "-epub-text-transform = text-transform", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "", | |
trident: "-ms-text-underline-position", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "-webkit-touch-callout", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "-moz-transform", | |
webkit: "-webkit-transform", | |
presto: "-o-transform", | |
trident: "-ms-transform", | |
status: "WD" | |
}, { | |
gecko: "-moz-transform-origin", | |
webkit: "-webkit-transform-origin", | |
presto: "-o-transform-origin", | |
trident: "-ms-transform-origin", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-transform-origin-x", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "-webkit-transform-origin-y", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "-webkit-transform-origin-z", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "-webkit-transform-style", | |
presto: "", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "-moz-transition", | |
webkit: "-webkit-transition", | |
presto: "-o-transition", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "-moz-transition-delay", | |
webkit: "-webkit-transition-delay", | |
presto: "-o-transition-delay", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "-moz-transition-duration", | |
webkit: "-webkit-transition-duration", | |
presto: "-o-transition-duration", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "-moz-transition-property", | |
webkit: "-webkit-transition-property", | |
presto: "-o-transition-property", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "-moz-transition-timing-function", | |
webkit: "-webkit-transition-timing-function", | |
presto: "-o-transition-timing-function", | |
trident: "", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-user-drag", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "-moz-user-focus", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "-moz-user-input", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "-moz-user-modify", | |
webkit: "-webkit-user-modify", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "-moz-user-select", | |
webkit: "-webkit-user-select", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-xv-voice-balance", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-xv-voice-duration", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-xv-voice-pitch", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-xv-voice-pitch-range", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-xv-voice-rate", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-xv-voice-stress", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "", | |
presto: "-xv-voice-volume", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "-moz-window-shadow", | |
webkit: "", | |
presto: "", | |
trident: "", | |
status: "P" | |
}, { | |
gecko: "", | |
webkit: "word-break", | |
presto: "", | |
trident: "-ms-word-break", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-epub-word-break = word-break", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "word-wrap", | |
webkit: "word-wrap", | |
presto: "word-wrap", | |
trident: "-ms-word-wrap", | |
status: "WD" | |
}, { | |
gecko: "", | |
webkit: "-webkit-writing-mode", | |
presto: "writing-mode", | |
trident: "-ms-writing-mode", | |
status: "ED" | |
}, { | |
gecko: "", | |
webkit: "-epub-writing-mode = -webkit-writing-mode", | |
presto: "", | |
trident: "", | |
status: "" | |
}, { | |
gecko: "", | |
webkit: "zoom", | |
presto: "", | |
trident: "-ms-zoom", | |
status: "" | |
}] | |
}, kCSS_PREFIXED_VALUE = [{ | |
gecko: "-moz-box", | |
webkit: "-moz-box", | |
presto: "", | |
trident: "", | |
generic: "box" | |
}], | |
CssInspector = { | |
mVENDOR_PREFIXES: null, | |
kEXPORTS_FOR_GECKO: !0, | |
kEXPORTS_FOR_WEBKIT: !0, | |
kEXPORTS_FOR_PRESTO: !0, | |
kEXPORTS_FOR_TRIDENT: !0, | |
cleanPrefixes: function () { | |
this.mVENDOR_PREFIXES = null | |
}, | |
prefixesForProperty: function (e) { | |
if (!this.mVENDOR_PREFIXES) { | |
this.mVENDOR_PREFIXES = {}; | |
for (var t = 0; t < kCSS_VENDOR_PREFIXES.properties.length; t++) { | |
var n = kCSS_VENDOR_PREFIXES.properties[t]; | |
if (n.gecko && (n.webkit || n.presto || n.trident)) { | |
var i = {}; | |
this.kEXPORTS_FOR_GECKO && (i[n.gecko] = !0), this.kEXPORTS_FOR_WEBKIT && n.webkit && (i[n.webkit] = !0), this.kEXPORTS_FOR_PRESTO && n.presto && (i[n.presto] = !0), this.kEXPORTS_FOR_TRIDENT && n.trident && (i[n.trident] = !0), this.mVENDOR_PREFIXES[n.gecko] = []; | |
for (var r in i) this.mVENDOR_PREFIXES[n.gecko].push(r) | |
} | |
} | |
} | |
return e in this.mVENDOR_PREFIXES ? this.mVENDOR_PREFIXES[e].sort() : null | |
}, | |
parseColorStop: function (e, t) { | |
var n = e.parseColor(t), | |
i = ""; | |
return n ? (t = e.getToken(!0, !0), (t.isPercentage() || t.isDimensionOfUnit("cm") || t.isDimensionOfUnit("mm") || t.isDimensionOfUnit("in") || t.isDimensionOfUnit("pc") || t.isDimensionOfUnit("px") || t.isDimensionOfUnit("em") || t.isDimensionOfUnit("ex") || t.isDimensionOfUnit("pt")) && (i = t.value, t = e.getToken(!0, !0)), { | |
color: n, | |
position: i | |
}) : null | |
}, | |
parseGradient: function (e, t) { | |
var n = { | |
isRepeating: !1 | |
}; | |
if (t.isNotNull() && (t.isFunction("-moz-linear-gradient(") || t.isFunction("-moz-radial-gradient(") || t.isFunction("-moz-repeating-linear-gradient(") || t.isFunction("-moz-repeating-radial-gradient("))) { | |
(t.isFunction("-moz-radial-gradient(") || t.isFunction("-moz-repeating-radial-gradient(")) && (n.isRadial = !0), (t.isFunction("-moz-repeating-linear-gradient(") || t.isFunction("-moz-repeating-radial-gradient(")) && (n.isRepeating = !0), t = e.getToken(!0, !0); | |
var i = !1, | |
r = !1, | |
s = !1; | |
if (t.isAngle() && (n.angle = t.value, i = !0, s = !0, t = e.getToken(!0, !0)), (t.isLength() || t.isIdent("top") || t.isIdent("center") || t.isIdent("bottom") || t.isIdent("left") || t.isIdent("right")) && (i = !0, (t.isLength() || t.isIdent("left") || t.isIdent("right")) && (r = !0), n.position = t.value, t = e.getToken(!0, !0)), i) { | |
if (!s && t.isAngle() ? (n.angle = t.value, s = !0, t = e.getToken(!0, !0)) : (t.isLength() || r && (t.isIdent("top") || t.isIdent("center") || t.isIdent("bottom")) || !r && (t.isLength() || t.isIdent("top") || t.isIdent("center") || t.isIdent("bottom") || t.isIdent("left") || t.isIdent("right"))) && (n.position = "position" in n ? n.position + " " : "", n.position += t.value, t = e.getToken(!0, !0)), !s && t.isAngle() && (n.angle = t.value, s = !0, t = e.getToken(!0, !0)), !t.isSymbol(",")) return null; | |
t = e.getToken(!0, !0) | |
} | |
if (n.isRadial) { | |
if ((t.isIdent("circle") || t.isIdent("ellipse")) && (n.shape = t.value, t = e.getToken(!0, !0)), (t.isIdent("closest-side") || t.isIdent("closest-corner") || t.isIdent("farthest-side") || t.isIdent("farthest-corner") || t.isIdent("contain") || t.isIdent("cover")) && (n.size = t.value, t = e.getToken(!0, !0)), "shape" in n || !t.isIdent("circle") && !t.isIdent("ellipse") || (n.shape = t.value, t = e.getToken(!0, !0)), ("shape" in n || "size" in n) && !t.isSymbol(",")) return null; | |
("shape" in n || "size" in n) && (t = e.getToken(!0, !0)) | |
} | |
var o = this.parseColorStop(e, t); | |
if (!o) return null; | |
if (t = e.currentToken(), !t.isSymbol(",")) return null; | |
t = e.getToken(!0, !0); | |
var a = this.parseColorStop(e, t); | |
if (!a) return null; | |
for (t = e.currentToken(), t.isSymbol(",") && (t = e.getToken(!0, !0)), n.stops = [o, a]; !t.isSymbol(")");) { | |
var l = this.parseColorStop(e, t); | |
if (!l) return null; | |
if (t = e.currentToken(), !t.isSymbol(")") && !t.isSymbol(",")) return null; | |
t.isSymbol(",") && (t = e.getToken(!0, !0)), n.stops.push(l) | |
} | |
return n | |
} | |
return null | |
}, | |
parseBoxShadows: function (e) { | |
var t = new CSSParser; | |
t._init(), t.mPreserveWS = !1, t.mPreserveComments = !1, t.mPreservedTokens = [], t.mScanner.init(e); | |
for (var n = [], i = t.getToken(!0, !0), r = "", s = "0px", o = "0px", a = "0px", l = "0px", u = !1; i.isNotNull();) | |
if (i.isIdent("none")) n.push({ | |
none: !0 | |
}), i = t.getToken(!0, !0); | |
else { | |
if (i.isIdent("inset") && (u = !0, i = t.getToken(!0, !0)), !(i.isPercentage() || i.isDimensionOfUnit("cm") || i.isDimensionOfUnit("mm") || i.isDimensionOfUnit("in") || i.isDimensionOfUnit("pc") || i.isDimensionOfUnit("px") || i.isDimensionOfUnit("em") || i.isDimensionOfUnit("ex") || i.isDimensionOfUnit("pt"))) return []; | |
var o = i.value; | |
if (i = t.getToken(!0, !0), !u && i.isIdent("inset") && (u = !0, i = t.getToken(!0, !0)), !(i.isPercentage() || i.isDimensionOfUnit("cm") || i.isDimensionOfUnit("mm") || i.isDimensionOfUnit("in") || i.isDimensionOfUnit("pc") || i.isDimensionOfUnit("px") || i.isDimensionOfUnit("em") || i.isDimensionOfUnit("ex") || i.isDimensionOfUnit("pt"))) return []; | |
var o = i.value; | |
if (i = t.getToken(!0, !0), !u && i.isIdent("inset") && (u = !0, i = t.getToken(!0, !0)), i.isPercentage() || i.isDimensionOfUnit("cm") || i.isDimensionOfUnit("mm") || i.isDimensionOfUnit("in") || i.isDimensionOfUnit("pc") || i.isDimensionOfUnit("px") || i.isDimensionOfUnit("em") || i.isDimensionOfUnit("ex") || i.isDimensionOfUnit("pt")) { | |
var s = i.value; | |
i = t.getToken(!0, !0) | |
} | |
if (!u && i.isIdent("inset") && (u = !0, i = t.getToken(!0, !0)), i.isPercentage() || i.isDimensionOfUnit("cm") || i.isDimensionOfUnit("mm") || i.isDimensionOfUnit("in") || i.isDimensionOfUnit("pc") || i.isDimensionOfUnit("px") || i.isDimensionOfUnit("em") || i.isDimensionOfUnit("ex") || i.isDimensionOfUnit("pt")) { | |
var l = i.value; | |
i = t.getToken(!0, !0) | |
} | |
if (!u && i.isIdent("inset") && (u = !0, i = t.getToken(!0, !0)), i.isFunction("rgb(") || i.isFunction("rgba(") || i.isFunction("hsl(") || i.isFunction("hsla(") || i.isSymbol("#") || i.isIdent()) { | |
var r = t.parseColor(i); | |
i = t.getToken(!0, !0) | |
} | |
if (!u && i.isIdent("inset") && (u = !0, i = t.getToken(!0, !0)), n.push({ | |
none: !1, | |
color: r, | |
offsetX: o, | |
offsetY: a, | |
blurRadius: s, | |
spreadRadius: l | |
}), !i.isSymbol(",")) return i.isNotNull() ? [] : n; | |
u = !1, r = "", s = "0px", l = "0px", o = "0px", a = "0px", i = t.getToken(!0, !0) | |
} | |
return n | |
}, | |
parseTextShadows: function (e) { | |
var t = new CSSParser; | |
t._init(), t.mPreserveWS = !1, t.mPreserveComments = !1, t.mPreservedTokens = [], t.mScanner.init(e); | |
for (var n = [], i = t.getToken(!0, !0), r = "", s = "0px", o = "0px", a = "0px"; i.isNotNull();) | |
if (i.isIdent("none")) n.push({ | |
none: !0 | |
}), i = t.getToken(!0, !0); | |
else { | |
if (i.isFunction("rgb(") || i.isFunction("rgba(") || i.isFunction("hsl(") || i.isFunction("hsla(") || i.isSymbol("#") || i.isIdent()) { | |
var r = t.parseColor(i); | |
i = t.getToken(!0, !0) | |
} | |
if (!(i.isPercentage() || i.isDimensionOfUnit("cm") || i.isDimensionOfUnit("mm") || i.isDimensionOfUnit("in") || i.isDimensionOfUnit("pc") || i.isDimensionOfUnit("px") || i.isDimensionOfUnit("em") || i.isDimensionOfUnit("ex") || i.isDimensionOfUnit("pt"))) return []; | |
var o = i.value; | |
if (i = t.getToken(!0, !0), !(i.isPercentage() || i.isDimensionOfUnit("cm") || i.isDimensionOfUnit("mm") || i.isDimensionOfUnit("in") || i.isDimensionOfUnit("pc") || i.isDimensionOfUnit("px") || i.isDimensionOfUnit("em") || i.isDimensionOfUnit("ex") || i.isDimensionOfUnit("pt"))) return []; | |
var a = i.value; | |
if (i = t.getToken(!0, !0), i.isPercentage() || i.isDimensionOfUnit("cm") || i.isDimensionOfUnit("mm") || i.isDimensionOfUnit("in") || i.isDimensionOfUnit("pc") || i.isDimensionOfUnit("px") || i.isDimensionOfUnit("em") || i.isDimensionOfUnit("ex") || i.isDimensionOfUnit("pt")) { | |
var s = i.value; | |
i = t.getToken(!0, !0) | |
} | |
if (!r && (i.isFunction("rgb(") || i.isFunction("rgba(") || i.isFunction("hsl(") || i.isFunction("hsla(") || i.isSymbol("#") || i.isIdent())) { | |
var r = t.parseColor(i); | |
i = t.getToken(!0, !0) | |
} | |
if (n.push({ | |
none: !1, | |
color: r, | |
offsetX: o, | |
offsetY: a, | |
blurRadius: s | |
}), !i.isSymbol(",")) return i.isNotNull() ? [] : n; | |
r = "", s = "0px", o = "0px", a = "0px", i = t.getToken(!0, !0) | |
} | |
return n | |
}, | |
parseBackgroundImages: function (e) { | |
var t = new CSSParser; | |
t._init(), t.mPreserveWS = !1, t.mPreserveComments = !1, t.mPreservedTokens = [], t.mScanner.init(e); | |
for (var n = [], i = t.getToken(!0, !0); i.isNotNull();) { | |
if (i.isFunction("url(")) { | |
i = t.getToken(!0, !0); | |
var r = t.parseURL(i); | |
n.push({ | |
type: "image", | |
value: "url(" + r | |
}), i = t.getToken(!0, !0) | |
} else { | |
if (!(i.isFunction("-moz-linear-gradient(") || i.isFunction("-moz-radial-gradient(") || i.isFunction("-moz-repeating-linear-gradient(") || i.isFunction("-moz-repeating-radial-gradient("))) return null; | |
var s = this.parseGradient(t, i); | |
n.push({ | |
type: s.isRadial ? "radial-gradient" : "linear-gradient", | |
value: s | |
}), i = t.getToken(!0, !0) | |
} if (i.isSymbol(",") && (i = t.getToken(!0, !0), !i.isNotNull())) return null | |
} | |
return n | |
}, | |
serializeGradient: function (e) { | |
var t = e.isRadial ? e.isRepeating ? "-moz-repeating-radial-gradient(" : "-moz-radial-gradient(" : e.isRepeating ? "-moz-repeating-linear-gradient(" : "-moz-linear-gradient("; | |
(e.angle || e.position) && (t += (e.angle ? e.angle + " " : "") + (e.position ? e.position : "") + ", "), e.isRadial && (e.shape || e.size) && (t += (e.shape ? e.shape : "") + " " + (e.size ? e.size : "") + ", "); | |
for (var n = 0; n < e.stops.length; n++) { | |
var i = e.stops[n]; | |
t += i.color + (i.position ? " " + i.position : ""), n != e.stops.length - 1 && (t += ", ") | |
} | |
return t += ")" | |
}, | |
parseBorderImage: function (e) { | |
var t = new CSSParser; | |
t._init(), t.mPreserveWS = !1, t.mPreserveComments = !1, t.mPreservedTokens = [], t.mScanner.init(e); | |
var n = { | |
url: "", | |
offsets: [], | |
widths: [], | |
sizes: [] | |
}, i = t.getToken(!0, !0); | |
if (!i.isFunction("url(")) return null; | |
i = t.getToken(!0, !0); | |
var r = t.parseURL(i); | |
if (!r) return null; | |
if (n.url = r.substr(0, r.length - 1).trim(), ('"' == n.url[0] && '"' == n.url[n.url.length - 1] || "'" == n.url[0] && "'" == n.url[n.url.length - 1]) && (n.url = n.url.substr(1, n.url.length - 2)), i = t.getToken(!0, !0), !i.isNumber() && !i.isPercentage()) return null; | |
n.offsets.push(i.value); | |
var s; | |
for (s = 0; 3 > s && (i = t.getToken(!0, !0), i.isNumber() || i.isPercentage()); s++) n.offsets.push(i.value); | |
if (3 == s && (i = t.getToken(!0, !0)), i.isSymbol("/")) { | |
if (i = t.getToken(!0, !0), !(i.isDimension() || i.isNumber("0") || i.isIdent() && i.value in t.kBORDER_WIDTH_NAMES)) return null; | |
n.widths.push(i.value); | |
for (var s = 0; 3 > s && (i = t.getToken(!0, !0), i.isDimension() || i.isNumber("0") || i.isIdent() && i.value in t.kBORDER_WIDTH_NAMES); s++) n.widths.push(i.value); | |
3 == s && (i = t.getToken(!0, !0)) | |
} | |
for (var s = 0; 2 > s; s++) { | |
if (!(i.isIdent("stretch") || i.isIdent("repeat") || i.isIdent("round"))) return i.isNotNull() ? null : n; | |
n.sizes.push(i.value), i = t.getToken(!0, !0) | |
} | |
return i.isNotNull() ? null : n | |
}, | |
parseMediaQuery: function (e) { | |
var t = { | |
width: !0, | |
"min-width": !0, | |
"max-width": !0, | |
height: !0, | |
"min-height": !0, | |
"max-height": !0, | |
"device-width": !0, | |
"min-device-width": !0, | |
"max-device-width": !0, | |
"device-height": !0, | |
"min-device-height": !0, | |
"max-device-height": !0, | |
orientation: !0, | |
"aspect-ratio": !0, | |
"min-aspect-ratio": !0, | |
"max-aspect-ratio": !0, | |
"device-aspect-ratio": !0, | |
"min-device-aspect-ratio": !0, | |
"max-device-aspect-ratio": !0, | |
color: !0, | |
"min-color": !0, | |
"max-color": !0, | |
"color-index": !0, | |
"min-color-index": !0, | |
"max-color-index": !0, | |
monochrome: !0, | |
"min-monochrome": !0, | |
"max-monochrome": !0, | |
resolution: !0, | |
"min-resolution": !0, | |
"max-resolution": !0, | |
scan: !0, | |
grid: !0 | |
}, n = new CSSParser; | |
n._init(), n.mPreserveWS = !1, n.mPreserveComments = !1, n.mPreservedTokens = [], n.mScanner.init(e); | |
var i = { | |
amplifier: "", | |
medium: "", | |
constraints: [] | |
}, r = n.getToken(!0, !0); | |
if (r.isIdent("all") || r.isIdent("aural") || r.isIdent("braille") || r.isIdent("handheld") || r.isIdent("print") || r.isIdent("projection") || r.isIdent("screen") || r.isIdent("tty") || r.isIdent("tv")) i.medium = r.value, r = n.getToken(!0, !0); | |
else if (r.isIdent("not") || r.isIdent("only")) { | |
if (i.amplifier = r.value, r = n.getToken(!0, !0), !(r.isIdent("all") || r.isIdent("aural") || r.isIdent("braille") || r.isIdent("handheld") || r.isIdent("print") || r.isIdent("projection") || r.isIdent("screen") || r.isIdent("tty") || r.isIdent("tv"))) return null; | |
i.medium = r.value, r = n.getToken(!0, !0) | |
} | |
if (i.medium) { | |
if (!r.isNotNull()) return i; | |
if (!r.isIdent("and")) return null; | |
r = n.getToken(!0, !0) | |
} | |
for (; r.isSymbol("(");) { | |
if (r = n.getToken(!0, !0), !(r.isIdent() && r.value in t)) return null; | |
var s = r.value; | |
if (r = n.getToken(!0, !0), r.isSymbol(":")) { | |
r = n.getToken(!0, !0); | |
for (var o = []; !r.isSymbol(")");) o.push(r.value), r = n.getToken(!0, !0); | |
if (!r.isSymbol(")")) return null; | |
if (i.constraints.push({ | |
constraint: s, | |
value: o | |
}), r = n.getToken(!0, !0), !r.isNotNull()) return i; | |
if (!r.isIdent("and")) return null; | |
r = n.getToken(!0, !0) | |
} else { | |
if (!r.isSymbol(")")) return null; | |
if (i.constraints.push({ | |
constraint: s, | |
value: null | |
}), r = n.getToken(!0, !0), !r.isNotNull()) return i; | |
if (!r.isIdent("and")) return null; | |
r = n.getToken(!0, !0) | |
} | |
} | |
return i | |
} | |
}, CSS_ESCAPE = "\\", | |
IS_HEX_DIGIT = 1, | |
START_IDENT = 2, | |
IS_IDENT = 4, | |
IS_WHITESPACE = 8, | |
W = IS_WHITESPACE, | |
I = IS_IDENT, | |
S = START_IDENT, | |
SI = IS_IDENT | START_IDENT, | |
XI = IS_IDENT | IS_HEX_DIGIT, | |
XSI = IS_IDENT | START_IDENT | IS_HEX_DIGIT; | |
CSSScanner.prototype = { | |
kLexTable: [0, 0, 0, 0, 0, 0, 0, 0, 0, W, W, 0, W, W, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, W, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, I, 0, 0, XI, XI, XI, XI, XI, XI, XI, XI, XI, XI, 0, 0, 0, 0, 0, 0, 0, XSI, XSI, XSI, XSI, XSI, XSI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, 0, S, 0, 0, SI, 0, XSI, XSI, XSI, XSI, XSI, XSI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI, SI], | |
kHexValues: { | |
0: 0, | |
1: 1, | |
2: 2, | |
3: 3, | |
4: 4, | |
5: 5, | |
6: 6, | |
7: 7, | |
8: 8, | |
9: 9, | |
a: 10, | |
b: 11, | |
c: 12, | |
d: 13, | |
e: 14, | |
f: 15 | |
}, | |
mString: "", | |
mPos: 0, | |
mPreservedPos: [], | |
init: function (e) { | |
this.mString = e, this.mPos = 0, this.mPreservedPos = [] | |
}, | |
getCurrentPos: function () { | |
return this.mPos | |
}, | |
getAlreadyScanned: function () { | |
return this.mString.substr(0, this.mPos) | |
}, | |
preserveState: function () { | |
this.mPreservedPos.push(this.mPos) | |
}, | |
restoreState: function () { | |
this.mPreservedPos.length && (this.mPos = this.mPreservedPos.pop()) | |
}, | |
forgetState: function () { | |
this.mPreservedPos.length && this.mPreservedPos.pop() | |
}, | |
read: function () { | |
return this.mPos < this.mString.length ? this.mString.charAt(this.mPos++) : -1 | |
}, | |
peek: function () { | |
return this.mPos < this.mString.length ? this.mString.charAt(this.mPos) : -1 | |
}, | |
isHexDigit: function (e) { | |
var t = e.charCodeAt(0); | |
return 256 > t && 0 != (this.kLexTable[t] & IS_HEX_DIGIT) | |
}, | |
isIdentStart: function (e) { | |
var t = e.charCodeAt(0); | |
return t >= 256 || 0 != (this.kLexTable[t] & START_IDENT) | |
}, | |
startsWithIdent: function (e, t) { | |
e.charCodeAt(0); | |
return this.isIdentStart(e) || "-" == e && this.isIdentStart(t) | |
}, | |
isIdent: function (e) { | |
var t = e.charCodeAt(0); | |
return t >= 256 || 0 != (this.kLexTable[t] & IS_IDENT) | |
}, | |
isSymbol: function (e) { | |
var t = e.charCodeAt(0); | |
return 1 != (this.kLexTable[t] & IS_IDENT) | |
}, | |
pushback: function () { | |
this.mPos-- | |
}, | |
nextHexValue: function () { | |
var e = this.read(); | |
if (-1 == e || !this.isHexDigit(e)) return new jscsspToken(jscsspToken.NULL_TYPE, null); | |
var t = e; | |
for (e = this.read(); - 1 != e && this.isHexDigit(e);) t += e, e = this.read(); | |
return -1 != e && this.pushback(), new jscsspToken(jscsspToken.HEX_TYPE, t) | |
}, | |
gatherEscape: function () { | |
var e = this.peek(); | |
if (-1 == e) return ""; | |
if (this.isHexDigit(e)) { | |
for (var t = 0, n = 0; 6 > n; n++) { | |
if (e = this.read(), !this.isHexDigit(e)) { | |
if (this.isHexDigit(e) || this.isWhiteSpace(e)) break; | |
this.pushback(); | |
break | |
} | |
t = 16 * t + this.kHexValues[e.toLowerCase()] | |
} | |
return 6 == n && (e = this.peek(), this.isWhiteSpace(e) && this.read()), String.fromCharCode(t) | |
} | |
return e = this.read(), "\n" != e ? e : "" | |
}, | |
gatherIdent: function (e) { | |
var t = ""; | |
if (t += e == CSS_ESCAPE ? this.gatherEscape() : e, e = this.read(), this.mMediaQueryMode) | |
for (; - 1 != e && "{" != e && "," != e;) t += e, e = this.read(); | |
else | |
for (; - 1 != e && (this.isIdent(e) || e == CSS_ESCAPE);) t += e == CSS_ESCAPE ? this.gatherEscape() : e, e = this.read(); | |
return -1 != e && this.pushback(), this.mMediaQueryMode = !1, t | |
}, | |
parseIdent: function (e) { | |
var t = this.gatherIdent(e), | |
n = this.peek(); | |
return "(" == n ? (t += this.read(), new jscsspToken(jscsspToken.FUNCTION_TYPE, t)) : new jscsspToken(jscsspToken.IDENT_TYPE, t) | |
}, | |
isDigit: function (e) { | |
return e >= "0" && "9" >= e | |
}, | |
parseComment: function (e) { | |
for (var t = e; - 1 != (e = this.read());) | |
if (t += e, "*" == e) { | |
if (e = this.read(), -1 == e) break; | |
if ("/" == e) { | |
t += e; | |
break | |
} | |
this.pushback() | |
} | |
return new jscsspToken(jscsspToken.COMMENT_TYPE, t) | |
}, | |
parseNumber: function (e) { | |
for (var t = e, n = !1; - 1 != (e = this.read());) | |
if ("." == e) { | |
if (n) break; | |
t += e, n = !0 | |
} else { | |
if (!this.isDigit(e)) break; | |
t += e | |
} | |
if (-1 != e && this.startsWithIdent(e, this.peek())) { | |
var i = this.gatherIdent(e); | |
return t += i, new jscsspToken(jscsspToken.DIMENSION_TYPE, t, i) | |
} | |
return "%" == e ? (t += "%", new jscsspToken(jscsspToken.PERCENTAGE_TYPE, t)) : (-1 != e && this.pushback(), new jscsspToken(jscsspToken.NUMBER_TYPE, t)) | |
}, | |
parseString: function (e) { | |
for (var t, n = e, i = e; - 1 != (t = this.read());) { | |
if (t == e && i != CSS_ESCAPE) { | |
n += t; | |
break | |
} | |
if (t == CSS_ESCAPE) { | |
if (t = this.peek(), -1 == t) break; | |
"\n" == t || "\r" == t || "\f" == t ? (d = t, t = this.read(), "\r" == d && (t = this.peek(), "\n" == t && (t = this.read()))) : (n += this.gatherEscape(), t = this.peek()) | |
} else { | |
if ("\n" == t || "\r" == t || "\f" == t) break; | |
n += t | |
} | |
i = t | |
} | |
return new jscsspToken(jscsspToken.STRING_TYPE, n) | |
}, | |
isWhiteSpace: function (e) { | |
var t = e.charCodeAt(0); | |
return 256 > t && 0 != (this.kLexTable[t] & IS_WHITESPACE) | |
}, | |
eatWhiteSpace: function (e) { | |
for (var t = e; - 1 != (e = this.read()) && this.isWhiteSpace(e);) t += e; | |
return -1 != e && this.pushback(), t | |
}, | |
parseAtKeyword: function (e) { | |
return new jscsspToken(jscsspToken.ATRULE_TYPE, this.gatherIdent(e)) | |
}, | |
nextToken: function () { | |
var e = this.read(); | |
if (-1 == e) return new jscsspToken(jscsspToken.NULL_TYPE, null); | |
if (this.startsWithIdent(e, this.peek())) return this.parseIdent(e); | |
if ("@" == e) { | |
var t = this.read(); | |
if (-1 != t) { | |
var n = this.peek(); | |
if (this.pushback(), this.startsWithIdent(t, n)) return this.parseAtKeyword(e) | |
} | |
} | |
if ("." == e || "+" == e || "-" == e) { | |
var t = this.peek(); | |
if (this.isDigit(t)) return this.parseNumber(e); | |
if ("." == t && "." != e) { | |
firstChar = this.read(); | |
var i = this.peek(); | |
if (this.pushback(), this.isDigit(i)) return this.parseNumber(e) | |
} | |
} | |
if (this.isDigit(e)) return this.parseNumber(e); | |
if ("'" == e || '"' == e) return this.parseString(e); | |
if (this.isWhiteSpace(e)) { | |
var r = this.eatWhiteSpace(e); | |
return new jscsspToken(jscsspToken.WHITESPACE_TYPE, r) | |
} | |
if ("|" == e || "~" == e || "^" == e || "$" == e || "*" == e) { | |
var t = this.read(); | |
if ("=" == t) switch (e) { | |
case "~": | |
return new jscsspToken(jscsspToken.INCLUDES_TYPE, "~="); | |
case "|": | |
return new jscsspToken(jscsspToken.DASHMATCH_TYPE, "|="); | |
case "^": | |
return new jscsspToken(jscsspToken.BEGINSMATCH_TYPE, "^="); | |
case "$": | |
return new jscsspToken(jscsspToken.ENDSMATCH_TYPE, "$="); | |
case "*": | |
return new jscsspToken(jscsspToken.CONTAINSMATCH_TYPE, "*=") | |
} else -1 != t && this.pushback() | |
} | |
return "/" == e && "*" == this.peek() ? this.parseComment(e) : new jscsspToken(jscsspToken.SYMBOL_TYPE, e) | |
} | |
}, CSSParser.prototype = { | |
_init: function () { | |
this.mToken = null, this.mLookAhead = null, this.mMediaQueryMode = !1 | |
}, | |
kINHERIT: "inherit", | |
kBORDER_WIDTH_NAMES: { | |
thin: !0, | |
medium: !0, | |
thick: !0 | |
}, | |
kBORDER_STYLE_NAMES: { | |
none: !0, | |
hidden: !0, | |
dotted: !0, | |
dashed: !0, | |
solid: !0, | |
"double": !0, | |
groove: !0, | |
ridge: !0, | |
inset: !0, | |
outset: !0 | |
}, | |
kCOLOR_NAMES: { | |
transparent: !0, | |
black: !0, | |
silver: !0, | |
gray: !0, | |
white: !0, | |
maroon: !0, | |
red: !0, | |
purple: !0, | |
fuchsia: !0, | |
green: !0, | |
lime: !0, | |
olive: !0, | |
yellow: !0, | |
navy: !0, | |
blue: !0, | |
teal: !0, | |
aqua: !0, | |
aliceblue: !0, | |
antiquewhite: !0, | |
aqua: !0, | |
aquamarine: !0, | |
azure: !0, | |
beige: !0, | |
bisque: !0, | |
black: !0, | |
blanchedalmond: !0, | |
blue: !0, | |
blueviolet: !0, | |
brown: !0, | |
burlywood: !0, | |
cadetblue: !0, | |
chartreuse: !0, | |
chocolate: !0, | |
coral: !0, | |
cornflowerblue: !0, | |
cornsilk: !0, | |
crimson: !0, | |
cyan: !0, | |
darkblue: !0, | |
darkcyan: !0, | |
darkgoldenrod: !0, | |
darkgray: !0, | |
darkgreen: !0, | |
darkgrey: !0, | |
darkkhaki: !0, | |
darkmagenta: !0, | |
darkolivegreen: !0, | |
darkorange: !0, | |
darkorchid: !0, | |
darkred: !0, | |
darksalmon: !0, | |
darkseagreen: !0, | |
darkslateblue: !0, | |
darkslategray: !0, | |
darkslategrey: !0, | |
darkturquoise: !0, | |
darkviolet: !0, | |
deeppink: !0, | |
deepskyblue: !0, | |
dimgray: !0, | |
dimgrey: !0, | |
dodgerblue: !0, | |
firebrick: !0, | |
floralwhite: !0, | |
forestgreen: !0, | |
fuchsia: !0, | |
gainsboro: !0, | |
ghostwhite: !0, | |
gold: !0, | |
goldenrod: !0, | |
gray: !0, | |
green: !0, | |
greenyellow: !0, | |
grey: !0, | |
honeydew: !0, | |
hotpink: !0, | |
indianred: !0, | |
indigo: !0, | |
ivory: !0, | |
khaki: !0, | |
lavender: !0, | |
lavenderblush: !0, | |
lawngreen: !0, | |
lemonchiffon: !0, | |
lightblue: !0, | |
lightcoral: !0, | |
lightcyan: !0, | |
lightgoldenrodyellow: !0, | |
lightgray: !0, | |
lightgreen: !0, | |
lightgrey: !0, | |
lightpink: !0, | |
lightsalmon: !0, | |
lightseagreen: !0, | |
lightskyblue: !0, | |
lightslategray: !0, | |
lightslategrey: !0, | |
lightsteelblue: !0, | |
lightyellow: !0, | |
lime: !0, | |
limegreen: !0, | |
linen: !0, | |
magenta: !0, | |
maroon: !0, | |
mediumaquamarine: !0, | |
mediumblue: !0, | |
mediumorchid: !0, | |
mediumpurple: !0, | |
mediumseagreen: !0, | |
mediumslateblue: !0, | |
mediumspringgreen: !0, | |
mediumturquoise: !0, | |
mediumvioletred: !0, | |
midnightblue: !0, | |
mintcream: !0, | |
mistyrose: !0, | |
moccasin: !0, | |
navajowhite: !0, | |
navy: !0, | |
oldlace: !0, | |
olive: !0, | |
olivedrab: !0, | |
orange: !0, | |
orangered: !0, | |
orchid: !0, | |
palegoldenrod: !0, | |
palegreen: !0, | |
paleturquoise: !0, | |
palevioletred: !0, | |
papayawhip: !0, | |
peachpuff: !0, | |
peru: !0, | |
pink: !0, | |
plum: !0, | |
powderblue: !0, | |
purple: !0, | |
red: !0, | |
rosybrown: !0, | |
royalblue: !0, | |
saddlebrown: !0, | |
salmon: !0, | |
sandybrown: !0, | |
seagreen: !0, | |
seashell: !0, | |
sienna: !0, | |
silver: !0, | |
skyblue: !0, | |
slateblue: !0, | |
slategray: !0, | |
slategrey: !0, | |
snow: !0, | |
springgreen: !0, | |
steelblue: !0, | |
tan: !0, | |
teal: !0, | |
thistle: !0, | |
tomato: !0, | |
turquoise: !0, | |
violet: !0, | |
wheat: !0, | |
white: !0, | |
whitesmoke: !0, | |
yellow: !0, | |
yellowgreen: !0, | |
activeborder: !0, | |
activecaption: !0, | |
appworkspace: !0, | |
background: !0, | |
buttonface: !0, | |
buttonhighlight: !0, | |
buttonshadow: !0, | |
buttontext: !0, | |
captiontext: !0, | |
graytext: !0, | |
highlight: !0, | |
highlighttext: !0, | |
inactiveborder: !0, | |
inactivecaption: !0, | |
inactivecaptiontext: !0, | |
infobackground: !0, | |
infotext: !0, | |
menu: !0, | |
menutext: !0, | |
scrollbar: !0, | |
threeddarkshadow: !0, | |
threedface: !0, | |
threedhighlight: !0, | |
threedlightshadow: !0, | |
threedshadow: !0, | |
window: !0, | |
windowframe: !0, | |
windowtext: !0 | |
}, | |
kLIST_STYLE_TYPE_NAMES: { | |
decimal: !0, | |
"decimal-leading-zero": !0, | |
"lower-roman": !0, | |
"upper-roman": !0, | |
georgian: !0, | |
armenian: !0, | |
"lower-latin": !0, | |
"lower-alpha": !0, | |
"upper-latin": !0, | |
"upper-alpha": !0, | |
"lower-greek": !0, | |
disc: !0, | |
circle: !0, | |
square: !0, | |
none: !0, | |
box: !0, | |
check: !0, | |
diamond: !0, | |
hyphen: !0, | |
"lower-armenian": !0, | |
"cjk-ideographic": !0, | |
"ethiopic-numeric": !0, | |
hebrew: !0, | |
"japanese-formal": !0, | |
"japanese-informal": !0, | |
"simp-chinese-formal": !0, | |
"simp-chinese-informal": !0, | |
syriac: !0, | |
tamil: !0, | |
"trad-chinese-formal": !0, | |
"trad-chinese-informal": !0, | |
"upper-armenian": !0, | |
"arabic-indic": !0, | |
binary: !0, | |
bengali: !0, | |
cambodian: !0, | |
khmer: !0, | |
devanagari: !0, | |
gujarati: !0, | |
gurmukhi: !0, | |
kannada: !0, | |
"lower-hexadecimal": !0, | |
lao: !0, | |
malayalam: !0, | |
mongolian: !0, | |
myanmar: !0, | |
octal: !0, | |
oriya: !0, | |
persian: !0, | |
urdu: !0, | |
telugu: !0, | |
tibetan: !0, | |
"upper-hexadecimal": !0, | |
afar: !0, | |
"ethiopic-halehame-aa-et": !0, | |
"ethiopic-halehame-am-et": !0, | |
"amharic-abegede": !0, | |
"ehiopic-abegede-am-et": !0, | |
"cjk-earthly-branch": !0, | |
"cjk-heavenly-stem": !0, | |
ethiopic: !0, | |
"ethiopic-abegede": !0, | |
"ethiopic-abegede-gez": !0, | |
"hangul-consonant": !0, | |
hangul: !0, | |
"hiragana-iroha": !0, | |
hiragana: !0, | |
"katakana-iroha": !0, | |
katakana: !0, | |
"lower-norwegian": !0, | |
oromo: !0, | |
"ethiopic-halehame-om-et": !0, | |
sidama: !0, | |
"ethiopic-halehame-sid-et": !0, | |
somali: !0, | |
"ethiopic-halehame-so-et": !0, | |
tigre: !0, | |
"ethiopic-halehame-tig": !0, | |
"tigrinya-er-abegede": !0, | |
"ethiopic-abegede-ti-er": !0, | |
"tigrinya-et": !0, | |
"ethiopic-halehame-ti-et": !0, | |
"upper-greek": !0, | |
asterisks: !0, | |
footnotes: !0, | |
"circled-decimal": !0, | |
"circled-lower-latin": !0, | |
"circled-upper-latin": !0, | |
"dotted-decimal": !0, | |
"double-circled-decimal": !0, | |
"filled-circled-decimal": !0, | |
"parenthesised-decimal": !0, | |
"parenthesised-lower-latin": !0 | |
}, | |
reportError: function (e) { | |
this.mError = e | |
}, | |
consumeError: function () { | |
var e = this.mError; | |
return this.mError = null, e | |
}, | |
currentToken: function () { | |
return this.mToken | |
}, | |
getHexValue: function () { | |
return this.mToken = this.mScanner.nextHexValue(), this.mToken | |
}, | |
getToken: function (e, t) { | |
if (this.mLookAhead) return this.mToken = this.mLookAhead, this.mLookAhead = null, this.mToken; | |
for (this.mToken = this.mScanner.nextToken(); this.mToken && (e && this.mToken.isWhiteSpace() || t && this.mToken.isComment());) this.mToken = this.mScanner.nextToken(); | |
return this.mToken | |
}, | |
lookAhead: function (e, t) { | |
var n = this.mToken; | |
this.mScanner.preserveState(); | |
var i = this.getToken(e, t); | |
return this.mScanner.restoreState(), this.mToken = n, i | |
}, | |
ungetToken: function () { | |
this.mLookAhead = this.mToken | |
}, | |
addUnknownAtRule: function (e, t) { | |
for (var n = CountLF(this.mScanner.getAlreadyScanned()), i = [], r = this.getToken(!1, !1); r.isNotNull() && (t += r.value, !r.isSymbol(";") || i.length);) { | |
if (r.isSymbol("{") || r.isSymbol("(") || r.isSymbol("[") || "function" == r.type) i.push(r.isFunction() ? "(" : r.value); | |
else if ((r.isSymbol("}") || r.isSymbol(")") || r.isSymbol("]")) && i.length) { | |
var s = i[i.length - 1]; | |
if ((r.isSymbol("}") && "{" == s || r.isSymbol(")") && "(" == s || r.isSymbol("]") && "[" == s) && (i.pop(), !i.length && r.isSymbol("}"))) break | |
} | |
r = this.getToken(!1, !1) | |
} | |
this.addUnknownRule(e, t, n) | |
}, | |
addUnknownRule: function (e, t, n) { | |
var i = this.consumeError(), | |
r = new jscsspErrorRule(i); | |
r.currentLine = n, r.parsedCssText = t, r.parentStyleSheet = e, e.cssRules.push(r) | |
}, | |
addWhitespace: function (e, t) { | |
var n = new jscsspWhitespace; | |
n.parsedCssText = t, n.parentStyleSheet = e, e.cssRules.push(n) | |
}, | |
addComment: function (e, t) { | |
var n = new jscsspComment; | |
n.parsedCssText = t, n.parentStyleSheet = e, e.cssRules.push(n) | |
}, | |
parseCharsetRule: function (e, t) { | |
var n = e.value, | |
i = this.getToken(!1, !1); | |
if (n += i.value, i.isWhiteSpace(" ")) | |
if (i = this.getToken(!1, !1), n += i.value, i.isString()) { | |
var r = i.value; | |
if (i = this.getToken(!1, !1), n += i.value, i.isSymbol(";")) { | |
var s = new jscsspCharsetRule; | |
return s.encoding = r, s.parsedCssText = n, s.parentStyleSheet = t, t.cssRules.push(s), !0 | |
} | |
this.reportError(kCHARSET_RULE_MISSING_SEMICOLON) | |
} else this.reportError(kCHARSET_RULE_CHARSET_IS_STRING); | |
else this.reportError(kCHARSET_RULE_MISSING_WS); | |
return this.addUnknownAtRule(t, n), !1 | |
}, | |
parseImportRule: function (e, t) { | |
var n = CountLF(this.mScanner.getAlreadyScanned()), | |
i = e.value; | |
this.preserveState(); | |
var r = this.getToken(!0, !0), | |
s = [], | |
o = ""; | |
if (r.isString()) o = r.value, i += " " + o; | |
else if (r.isFunction("url(")) { | |
r = this.getToken(!0, !0); | |
var a = this.parseURL(r); | |
a && (o = "url(" + a, i += " " + o) | |
} else this.reportError(kIMPORT_RULE_MISSING_URL); if (o) { | |
for (r = this.getToken(!0, !0); r.isIdent() && (i += " " + r.value, s.push(r.value), r = this.getToken(!0, !0));) { | |
if (!r.isSymbol(",")) { | |
if (r.isSymbol(";")) break; | |
break | |
} | |
i += ",", r = this.getToken(!0, !0) | |
} | |
if (s.length || s.push("all"), r.isSymbol(";")) { | |
i += ";", this.forgetState(); | |
var l = new jscsspImportRule; | |
return l.currentLine = n, l.parsedCssText = i, l.href = o, l.media = s, l.parentStyleSheet = t, t.cssRules.push(l), !0 | |
} | |
} | |
return this.restoreState(), this.addUnknownAtRule(t, "@import"), !1 | |
}, | |
parseVariablesRule: function (e, t) { | |
var n = CountLF(this.mScanner.getAlreadyScanned()), | |
i = e.value, | |
r = [], | |
s = !1; | |
this.preserveState(), e = this.getToken(!0, !0); | |
for (var o = [], a = !1; e.isNotNull();) { | |
if (e.isIdent()) | |
if (a = !0, i += " " + e.value, o.push(e.value), e = this.getToken(!0, !0), e.isSymbol(",")) i += ","; | |
else { | |
if (!e.isSymbol("{")) { | |
e.type = jscsspToken.NULL_TYPE; | |
break | |
} | |
this.ungetToken() | |
} else { | |
if (e.isSymbol("{")) break; | |
if (a) { | |
e.type = jscsspToken.NULL_TYPE; | |
break | |
} | |
} | |
e = this.getToken(!0, !0) | |
} | |
if (e.isSymbol("{")) | |
for (i += " {", e = this.getToken(!0, !0);;) { | |
if (!e.isNotNull()) { | |
s = !0; | |
break | |
} | |
if (e.isSymbol("}")) { | |
i += "}", s = !0; | |
break | |
} | |
var l = this.parseDeclaration(e, r, !0, !1, t); | |
i += (l && r.length ? " " : "") + l, e = this.getToken(!0, !1) | |
} | |
if (s) { | |
this.forgetState(); | |
var u = new jscsspVariablesRule; | |
return u.currentLine = n, u.parsedCssText = i, u.declarations = r, u.media = o, u.parentStyleSheet = t, t.cssRules.push(u), !0 | |
} | |
return this.restoreState(), !1 | |
}, | |
parseNamespaceRule: function (e, t) { | |
var n = CountLF(this.mScanner.getAlreadyScanned()), | |
i = e.value; | |
this.preserveState(); | |
var r = this.getToken(!0, !0); | |
if (r.isNotNull()) { | |
var s = "", | |
o = ""; | |
if (r.isIdent() && (s = r.value, i += " " + s, r = this.getToken(!0, !0)), r) { | |
var a = !1; | |
if (r.isString()) a = !0, o = r.value, i += " " + o; | |
else if (r.isFunction("url(")) { | |
r = this.getToken(!0, !0); | |
var l = this.parseURL(r); | |
l && (o += "url(" + l, a = !0, i += " " + l) | |
} | |
} | |
if (a && (r = this.getToken(!0, !0), r.isSymbol(";"))) { | |
i += ";", this.forgetState(); | |
var u = new jscsspNamespaceRule; | |
return u.currentLine = n, u.parsedCssText = i, u.prefix = s, u.url = o, u.parentStyleSheet = t, t.cssRules.push(u), !0 | |
} | |
} | |
return this.restoreState(), this.addUnknownAtRule(t, "@namespace"), !1 | |
}, | |
parseFontFaceRule: function (e, t) { | |
var n = CountLF(this.mScanner.getAlreadyScanned()), | |
i = e.value, | |
r = !1, | |
s = []; | |
this.preserveState(); | |
var o = this.getToken(!0, !0); | |
if (o.isNotNull() && o.isSymbol("{")) { | |
i += " " + o.value; | |
for (var o = this.getToken(!0, !1);;) { | |
if (o.isSymbol("}")) { | |
i += "}", r = !0; | |
break | |
} | |
var a = this.parseDeclaration(o, s, !1, !1, t); | |
i += (a && s.length ? " " : "") + a, o = this.getToken(!0, !1) | |
} | |
} | |
if (r) { | |
this.forgetState(); | |
var l = new jscsspFontFaceRule; | |
return l.currentLine = n, l.parsedCssText = i, l.descriptors = s, l.parentStyleSheet = t, t.cssRules.push(l), !0 | |
} | |
return this.restoreState(), !1 | |
}, | |
parsePageRule: function (e, t) { | |
var n = CountLF(this.mScanner.getAlreadyScanned()), | |
i = e.value, | |
r = !1, | |
s = []; | |
this.preserveState(); | |
var o = this.getToken(!0, !0), | |
a = ""; | |
if ((o.isSymbol(":") || o.isIdent()) && (o.isSymbol(":") && (a = ":", o = this.getToken(!1, !1)), o.isIdent() && (a += o.value, i += " " + a, o = this.getToken(!0, !0))), o.isNotNull() && o.isSymbol("{")) { | |
i += " " + o.value; | |
for (var o = this.getToken(!0, !1);;) { | |
if (o.isSymbol("}")) { | |
i += "}", r = !0; | |
break | |
} | |
var l = this.parseDeclaration(o, s, !0, !0, t); | |
i += (l && s.length ? " " : "") + l, o = this.getToken(!0, !1) | |
} | |
} | |
if (r) { | |
this.forgetState(); | |
var u = new jscsspPageRule; | |
return u.currentLine = n, u.parsedCssText = i, u.pageSelector = a, u.declarations = s, u.parentStyleSheet = t, t.cssRules.push(u), !0 | |
} | |
return this.restoreState(), !1 | |
}, | |
parseDefaultPropertyValue: function (e, t, n, i, r) { | |
for (var s = "", o = [], a = []; e.isNotNull();) { | |
if ((e.isSymbol(";") || e.isSymbol("}") || e.isSymbol("!")) && !o.length) { | |
e.isSymbol("}") && this.ungetToken(); | |
break | |
} | |
if (e.isIdent(this.kINHERIT)) { | |
if (a.length) return ""; | |
s = this.kINHERIT; | |
var l = new jscsspVariable(kJscsspINHERIT_VALUE, r); | |
a.push(l), e = this.getToken(!0, !0); | |
break | |
} | |
if (e.isSymbol("{") || e.isSymbol("(") || e.isSymbol("[")) o.push(e.value); | |
else if ((e.isSymbol("}") || e.isSymbol("]")) && o.length) { | |
var u = o[o.length - 1]; | |
(e.isSymbol("}") && "{" == u || e.isSymbol(")") && "(" == u || e.isSymbol("]") && "[" == u) && o.pop() | |
} | |
if (e.isFunction()) | |
if (e.isFunction("var(")) { | |
if (e = this.getToken(!0, !0), !e.isIdent()) return ""; | |
var c = e.value; | |
if (e = this.getToken(!0, !0), !e.isSymbol(")")) return ""; | |
var l = new jscsspVariable(kJscsspVARIABLE_VALUE, r); | |
s += "var(" + c + ")", l.name = c, a.push(l) | |
} else { | |
var d = e.value; | |
e = this.getToken(!1, !0); | |
var p = this.parseFunctionArgument(e); | |
if (!p) return ""; | |
s += d + p; | |
var l = new jscsspVariable(kJscsspPRIMITIVE_VALUE, r); | |
l.value = d + p, a.push(l) | |
} else if (e.isSymbol("#")) { | |
var f = this.parseColor(e); | |
if (!f) return ""; | |
s += f; | |
var l = new jscsspVariable(kJscsspPRIMITIVE_VALUE, r); | |
l.value = f, a.push(l) | |
} else if (e.isWhiteSpace() || e.isSymbol(",")) s += e.value; | |
else { | |
var l = new jscsspVariable(kJscsspPRIMITIVE_VALUE, r); | |
l.value = e.value, a.push(l), s += e.value | |
} | |
e = this.getToken(!1, !0) | |
} | |
return a.length && s ? (this.forgetState(), t.push(this._createJscsspDeclarationFromValuesArray(i, a, s)), s) : "" | |
}, | |
parseMarginOrPaddingShorthand: function (e, t, n, i) { | |
for (var r = null, s = null, o = null, a = null, l = [];;) { | |
if (!e.isNotNull()) break; | |
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) { | |
e.isSymbol("}") && this.ungetToken(); | |
break | |
} | |
if (!l.length && e.isIdent(this.kINHERIT)) { | |
l.push(e.value), e = this.getToken(!0, !0); | |
break | |
} | |
if (!(e.isDimension() || e.isNumber("0") || e.isPercentage() || e.isIdent("auto"))) return ""; | |
l.push(e.value), e = this.getToken(!0, !0) | |
} | |
var u = l.length; | |
switch (u) { | |
case 1: | |
r = l[0], s = r, o = r, a = r; | |
break; | |
case 2: | |
r = l[0], s = r, o = l[1], a = o; | |
break; | |
case 3: | |
r = l[0], o = l[1], a = o, s = l[2]; | |
break; | |
case 4: | |
r = l[0], a = l[1], s = l[2], o = l[3]; | |
break; | |
default: | |
return "" | |
} | |
return this.forgetState(), t.push(this._createJscsspDeclarationFromValue(i + "-top", r)), t.push(this._createJscsspDeclarationFromValue(i + "-right", a)), t.push(this._createJscsspDeclarationFromValue(i + "-bottom", s)), t.push(this._createJscsspDeclarationFromValue(i + "-left", o)), r + " " + a + " " + s + " " + o | |
}, | |
parseBorderColorShorthand: function (e, t, n) { | |
for (var i = null, r = null, s = null, o = null, a = [];;) { | |
if (!e.isNotNull()) break; | |
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) { | |
e.isSymbol("}") && this.ungetToken(); | |
break | |
} | |
if (!a.length && e.isIdent(this.kINHERIT)) { | |
a.push(e.value), e = this.getToken(!0, !0); | |
break | |
} | |
var l = this.parseColor(e); | |
if (!l) return ""; | |
a.push(l), e = this.getToken(!0, !0) | |
} | |
var u = a.length; | |
switch (u) { | |
case 1: | |
i = a[0], r = i, s = i, o = i; | |
break; | |
case 2: | |
i = a[0], r = i, s = a[1], o = s; | |
break; | |
case 3: | |
i = a[0], s = a[1], o = s, r = a[2]; | |
break; | |
case 4: | |
i = a[0], o = a[1], r = a[2], s = a[3]; | |
break; | |
default: | |
return "" | |
} | |
return this.forgetState(), t.push(this._createJscsspDeclarationFromValue("border-top-color", i)), t.push(this._createJscsspDeclarationFromValue("border-right-color", o)), t.push(this._createJscsspDeclarationFromValue("border-bottom-color", r)), t.push(this._createJscsspDeclarationFromValue("border-left-color", s)), i + " " + o + " " + r + " " + s | |
}, | |
parseCueShorthand: function (e, t, n) { | |
for (var i = "", r = "", s = [], s = [];;) { | |
if (!e.isNotNull()) break; | |
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) { | |
e.isSymbol("}") && this.ungetToken(); | |
break | |
} | |
if (!s.length && e.isIdent(this.kINHERIT)) s.push(e.value); | |
else if (e.isIdent("none")) s.push(e.value); | |
else { | |
if (!e.isFunction("url(")) return ""; | |
var e = this.getToken(!0, !0), | |
o = this.parseURL(e); | |
if (!o) return ""; | |
s.push("url(" + o) | |
} | |
e = this.getToken(!0, !0) | |
} | |
var a = s.length; | |
switch (a) { | |
case 1: | |
i = s[0], r = i; | |
break; | |
case 2: | |
i = s[0], r = s[1]; | |
break; | |
default: | |
return "" | |
} | |
return this.forgetState(), aDecl.push(this._createJscsspDeclarationFromValue("cue-before", i)), aDecl.push(this._createJscsspDeclarationFromValue("cue-after", r)), i + " " + r | |
}, | |
parsePauseShorthand: function (e, t, n) { | |
for (var i = "", r = "", s = [], s = [];;) { | |
if (!e.isNotNull()) break; | |
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) { | |
e.isSymbol("}") && this.ungetToken(); | |
break | |
} | |
if (!s.length && e.isIdent(this.kINHERIT)) s.push(e.value); | |
else { | |
if (!(e.isDimensionOfUnit("ms") || e.isDimensionOfUnit("s") || e.isPercentage() || e.isNumber("0"))) return ""; | |
s.push(e.value) | |
} | |
e = this.getToken(!0, !0) | |
} | |
var o = s.length; | |
switch (o) { | |
case 1: | |
i = s[0], r = i; | |
break; | |
case 2: | |
i = s[0], r = s[1]; | |
break; | |
default: | |
return "" | |
} | |
return this.forgetState(), aDecl.push(this._createJscsspDeclarationFromValue("pause-before", i)), aDecl.push(this._createJscsspDeclarationFromValue("pause-after", r)), i + " " + r | |
}, | |
parseBorderWidthShorthand: function (e, t, n) { | |
for (var i = null, r = null, s = null, o = null, a = [];;) { | |
if (!e.isNotNull()) break; | |
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) { | |
e.isSymbol("}") && this.ungetToken(); | |
break | |
} | |
if (!a.length && e.isIdent(this.kINHERIT)) a.push(e.value); | |
else { | |
if (!(e.isDimension() || e.isNumber("0") || e.isIdent() && e.value in this.kBORDER_WIDTH_NAMES)) return ""; | |
a.push(e.value) | |
} | |
e = this.getToken(!0, !0) | |
} | |
var l = a.length; | |
switch (l) { | |
case 1: | |
i = a[0], r = i, s = i, o = i; | |
break; | |
case 2: | |
i = a[0], r = i, s = a[1], o = s; | |
break; | |
case 3: | |
i = a[0], s = a[1], o = s, r = a[2]; | |
break; | |
case 4: | |
i = a[0], o = a[1], r = a[2], s = a[3]; | |
break; | |
default: | |
return "" | |
} | |
return this.forgetState(), t.push(this._createJscsspDeclarationFromValue("border-top-width", i)), t.push(this._createJscsspDeclarationFromValue("border-right-width", o)), t.push(this._createJscsspDeclarationFromValue("border-bottom-width", r)), t.push(this._createJscsspDeclarationFromValue("border-left-width", s)), i + " " + o + " " + r + " " + s | |
}, | |
parseBorderStyleShorthand: function (e, t, n) { | |
for (var i = null, r = null, s = null, o = null, a = [];;) { | |
if (!e.isNotNull()) break; | |
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) { | |
e.isSymbol("}") && this.ungetToken(); | |
break | |
} | |
if (!a.length && e.isIdent(this.kINHERIT)) a.push(e.value); | |
else { | |
if (!(e.isIdent() && e.value in this.kBORDER_STYLE_NAMES)) return ""; | |
a.push(e.value) | |
} | |
e = this.getToken(!0, !0) | |
} | |
var l = a.length; | |
switch (l) { | |
case 1: | |
i = a[0], r = i, s = i, o = i; | |
break; | |
case 2: | |
i = a[0], r = i, s = a[1], o = s; | |
break; | |
case 3: | |
i = a[0], s = a[1], o = s, r = a[2]; | |
break; | |
case 4: | |
i = a[0], o = a[1], r = a[2], s = a[3]; | |
break; | |
default: | |
return "" | |
} | |
return this.forgetState(), t.push(this._createJscsspDeclarationFromValue("border-top-style", i)), t.push(this._createJscsspDeclarationFromValue("border-right-style", o)), t.push(this._createJscsspDeclarationFromValue("border-bottom-style", r)), t.push(this._createJscsspDeclarationFromValue("border-left-style", s)), i + " " + o + " " + r + " " + s | |
}, | |
parseBorderEdgeOrOutlineShorthand: function (e, t, n, i) { | |
function r(e, t, n, i, r, s) { | |
t.push(e._createJscsspDeclarationFromValue(n + "-width", i)), t.push(e._createJscsspDeclarationFromValue(n + "-style", r)), t.push(e._createJscsspDeclarationFromValue(n + "-color", s)) | |
} | |
for (var s = null, o = null, a = null;;) { | |
if (!e.isNotNull()) break; | |
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) { | |
e.isSymbol("}") && this.ungetToken(); | |
break | |
} | |
if (s || o || a || !e.isIdent(this.kINHERIT)) | |
if (!s && (e.isDimension() || e.isIdent() && e.value in this.kBORDER_WIDTH_NAMES || e.isNumber("0"))) s = e.value; | |
else if (!o && e.isIdent() && e.value in this.kBORDER_STYLE_NAMES) o = e.value; | |
else { | |
var l = "outline" == i && e.isIdent("invert") ? "invert" : this.parseColor(e); | |
if (a || !l) return ""; | |
a = l | |
} else s = this.kINHERIT, o = this.kINHERIT, a = this.kINHERIT; | |
e = this.getToken(!0, !0) | |
} | |
return this.forgetState(), s = s ? s : "medium", o = o ? o : "none", a = a ? a : "-moz-initial", "border" == i ? (r(this, t, "border-top", s, o, a), r(this, t, "border-right", s, o, a), r(this, t, "border-bottom", s, o, a), r(this, t, "border-left", s, o, a)) : r(this, t, i, s, o, a), s + " " + o + " " + a | |
}, | |
parseBackgroundShorthand: function (e, t, n) { | |
for (var i = { | |
left: !0, | |
right: !0 | |
}, r = { | |
top: !0, | |
bottom: !0 | |
}, s = { | |
left: !0, | |
right: !0, | |
top: !0, | |
bottom: !0, | |
center: !0 | |
}, o = null, a = null, l = null, u = null, c = null;;) { | |
if (!e.isNotNull()) break; | |
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) { | |
e.isSymbol("}") && this.ungetToken(); | |
break | |
} | |
if (o || a || l || u || c || !e.isIdent(this.kINHERIT)) | |
if (l || !e.isIdent("scroll") && !e.isIdent("fixed")) { | |
if (!c && (e.isIdent() && e.value in s || e.isDimension() || e.isNumber("0") || e.isPercentage())) | |
if (c = e.value, e = this.getToken(!0, !0), e.isDimension() || e.isNumber("0") || e.isPercentage()) c += " " + e.value; | |
else if (e.isIdent() && e.value in s) { | |
if (c in i && e.value in i || c in r && e.value in r) return ""; | |
c += " " + e.value | |
} else this.ungetToken(), c += " center"; | |
else if (!a && (e.isIdent("repeat") || e.isIdent("repeat-x") || e.isIdent("repeat-y") || e.isIdent("no-repeat"))) a = e.value; | |
else if (u || !e.isFunction("url(") && !e.isIdent("none")) | |
if (!u && (e.isFunction("-moz-linear-gradient(") || e.isFunction("-moz-radial-gradient(") || e.isFunction("-moz-repeating-linear-gradient(") || e.isFunction("-moz-repeating-radial-gradient("))) { | |
var d = CssInspector.parseGradient(this, e); | |
if (!d) return ""; | |
u = CssInspector.serializeGradient(d) | |
} else { | |
var p = this.parseColor(e); | |
if (o || !p) return ""; | |
o = p | |
} else if (u = e.value, e.isFunction("url(")) { | |
e = this.getToken(!0, !0); | |
var f = this.parseURL(e); | |
if (!f) return ""; | |
u += f | |
} | |
} else l = e.value; | |
else o = this.kINHERIT, a = this.kINHERIT, l = this.kINHERIT, u = this.kINHERIT, c = this.kINHERIT; | |
e = this.getToken(!0, !0) | |
} | |
return this.forgetState(), o = o ? o : "transparent", u = u ? u : "none", a = a ? a : "repeat", l = l ? l : "scroll", c = c ? c : "top left", t.push(this._createJscsspDeclarationFromValue("background-color", o)), t.push(this._createJscsspDeclarationFromValue("background-image", u)), t.push(this._createJscsspDeclarationFromValue("background-repeat", a)), t.push(this._createJscsspDeclarationFromValue("background-attachment", l)), t.push(this._createJscsspDeclarationFromValue("background-position", c)), o + " " + u + " " + a + " " + l + " " + c | |
}, | |
parseListStyleShorthand: function (e, t, n) { | |
for (var i = { | |
inside: !0, | |
outside: !0 | |
}, r = null, s = null, o = null;;) { | |
if (!e.isNotNull()) break; | |
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) { | |
e.isSymbol("}") && this.ungetToken(); | |
break | |
} | |
if (r || s || o || !e.isIdent(this.kINHERIT)) { | |
if (!r && e.isIdent() && e.value in this.kLIST_STYLE_TYPE_NAMES) r = e.value; | |
else if (!s && e.isIdent() && e.value in i) s = e.value; | |
else if (!o && e.isFunction("url")) { | |
e = this.getToken(!0, !0); | |
var a = this.parseURL(e); | |
if (!a) return ""; | |
o = "url(" + a | |
} else if (!e.isIdent("none")) return "" | |
} else r = this.kINHERIT, s = this.kINHERIT, o = this.kINHERIT; | |
e = this.getToken(!0, !0) | |
} | |
return this.forgetState(), r = r ? r : "none", o = o ? o : "none", s = s ? s : "outside", t.push(this._createJscsspDeclarationFromValue("list-style-type", r)), t.push(this._createJscsspDeclarationFromValue("list-style-position", s)), t.push(this._createJscsspDeclarationFromValue("list-style-image", o)), r + " " + s + " " + o | |
}, | |
parseFontShorthand: function (e, t, n) { | |
for (var i = { | |
italic: !0, | |
oblique: !0 | |
}, r = { | |
"small-caps": !0 | |
}, s = { | |
bold: !0, | |
bolder: !0, | |
lighter: !0, | |
100: !0, | |
200: !0, | |
300: !0, | |
400: !0, | |
500: !0, | |
600: !0, | |
700: !0, | |
800: !0, | |
900: !0 | |
}, o = { | |
"xx-small": !0, | |
"x-small": !0, | |
small: !0, | |
medium: !0, | |
large: !0, | |
"x-large": !0, | |
"xx-large": !0, | |
larger: !0, | |
smaller: !0 | |
}, a = { | |
caption: !0, | |
icon: !0, | |
menu: !0, | |
"message-box": !0, | |
"small-caption": !0, | |
"status-bar": !0 | |
}, l = { | |
serif: !0, | |
"sans-serif": !0, | |
cursive: !0, | |
fantasy: !0, | |
monospace: !0 | |
}, u = null, c = null, d = null, p = null, f = null, h = "", m = null, g = [], v = 0;;) { | |
if (!e.isNotNull()) break; | |
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) { | |
e.isSymbol("}") && this.ungetToken(); | |
break | |
} | |
if (u || c || d || p || f || h || m || !e.isIdent(this.kINHERIT)) { | |
if (!m && e.isIdent() && e.value in a) { | |
m = e.value; | |
break | |
} | |
if (!u && e.isIdent() && e.value in i) u = e.value; | |
else if (!c && e.isIdent() && e.value in r) c = e.value; | |
else if (!d && (e.isIdent() || e.isNumber()) && e.value in s) d = e.value; | |
else if (!p && (e.isIdent() && e.value in o || e.isDimension() || e.isPercentage())) { | |
p = e.value; | |
var e = this.getToken(!1, !1); | |
if (e.isSymbol("/")) { | |
if (e = this.getToken(!1, !1), f || !(e.isDimension() || e.isNumber() || e.isPercentage())) return ""; | |
f = e.value | |
} else this.ungetToken() | |
} else if (e.isIdent("normal")) { | |
if (v++, v > 3) return "" | |
} else { | |
if (h || !e.isString() && !e.isIdent()) return ""; | |
for (var b = !1;;) { | |
if (!e.isNotNull()) break; | |
if (e.isSymbol(";") || n && e.isSymbol("!") || e.isSymbol("}")) { | |
this.ungetToken(); | |
break | |
} | |
if (e.isIdent() && e.value in l) { | |
var k = new jscsspVariable(kJscsspPRIMITIVE_VALUE, null); | |
k.value = e.value, g.push(k), h += e.value; | |
break | |
} | |
if (e.isString() || e.isIdent()) { | |
var k = new jscsspVariable(kJscsspPRIMITIVE_VALUE, null); | |
k.value = e.value, g.push(k), h += e.value, b = !1 | |
} else { | |
if (b || !e.isSymbol(",")) return ""; | |
h += ", ", b = !0 | |
} | |
e = this.getToken(!0, !0) | |
} | |
} | |
} else u = this.kINHERIT, c = this.kINHERIT, d = this.kINHERIT, p = this.kINHERIT, f = this.kINHERIT, h = this.kINHERIT, m = this.kINHERIT; | |
e = this.getToken(!0, !0) | |
} | |
return this.forgetState(), m ? (t.push(this._createJscsspDeclarationFromValue("font", m)), m) : (u = u ? u : "normal", c = c ? c : "normal", d = d ? d : "normal", p = p ? p : "medium", f = f ? f : "normal", h = h ? h : "-moz-initial", t.push(this._createJscsspDeclarationFromValue("font-style", u)), t.push(this._createJscsspDeclarationFromValue("font-variant", c)), t.push(this._createJscsspDeclarationFromValue("font-weight", d)), t.push(this._createJscsspDeclarationFromValue("font-size", p)), t.push(this._createJscsspDeclarationFromValue("line-height", f)), t.push(this._createJscsspDeclarationFromValuesArray("font-family", g, h)), u + " " + c + " " + d + " " + p + "/" + f + " " + h) | |
}, | |
_createJscsspDeclaration: function (e, t) { | |
var n = new jscsspDeclaration; | |
return n.property = e, n.value = this.trim11(t), n.parsedCssText = e + ": " + t + ";", n | |
}, | |
_createJscsspDeclarationFromValue: function (e, t) { | |
var n = new jscsspDeclaration; | |
n.property = e; | |
var i = new jscsspVariable(kJscsspPRIMITIVE_VALUE, null); | |
return i.value = t, n.values = [i], n.valueText = t, n.parsedCssText = e + ": " + t + ";", n | |
}, | |
_createJscsspDeclarationFromValuesArray: function (e, t, n) { | |
var i = new jscsspDeclaration; | |
return i.property = e, i.values = t, i.valueText = n, i.parsedCssText = e + ": " + n + ";", i | |
}, | |
parseURL: function (e) { | |
var t = ""; | |
if (e.isString()) t += e.value, e = this.getToken(!0, !0); | |
else | |
for (;;) { | |
if (!e.isNotNull()) return this.reportError(kURL_EOF), ""; | |
if (e.isWhiteSpace() && (nextToken = this.lookAhead(!0, !0), !nextToken.isSymbol(")"))) { | |
this.reportError(kURL_WS_INSIDE), e = this.currentToken(); | |
break | |
} | |
if (e.isSymbol(")")) break; | |
t += e.value, e = this.getToken(!1, !1) | |
} | |
return e.isSymbol(")") ? t + ")" : "" | |
}, | |
parseFunctionArgument: function (e) { | |
var t = ""; | |
if (e.isString()) t += e.value, e = this.getToken(!0, !0); | |
else | |
for (var n = 1;;) { | |
if (!e.isNotNull()) return ""; | |
if ((e.isFunction() || e.isSymbol("(")) && n++, e.isSymbol(")") && (n--, !n)) break; | |
t += e.value, e = this.getToken(!1, !1) | |
} | |
return e.isSymbol(")") ? t + ")" : "" | |
}, | |
parseColor: function (e) { | |
var t = ""; | |
if (e.isFunction("rgb(") || e.isFunction("rgba(")) { | |
t = e.value; | |
var n = e.isFunction("rgba("); | |
if (e = this.getToken(!0, !0), !e.isNumber() && !e.isPercentage()) return ""; | |
if (t += e.value, e = this.getToken(!0, !0), !e.isSymbol(",")) return ""; | |
if (t += ", ", e = this.getToken(!0, !0), !e.isNumber() && !e.isPercentage()) return ""; | |
if (t += e.value, e = this.getToken(!0, !0), !e.isSymbol(",")) return ""; | |
if (t += ", ", e = this.getToken(!0, !0), !e.isNumber() && !e.isPercentage()) return ""; | |
if (t += e.value, n) { | |
if (e = this.getToken(!0, !0), !e.isSymbol(",")) return ""; | |
if (t += ", ", e = this.getToken(!0, !0), !e.isNumber()) return ""; | |
t += e.value | |
} | |
if (e = this.getToken(!0, !0), !e.isSymbol(")")) return ""; | |
t += e.value | |
} else if (e.isFunction("hsl(") || e.isFunction("hsla(")) { | |
t = e.value; | |
var i = e.isFunction("hsla("); | |
if (e = this.getToken(!0, !0), !e.isNumber()) return ""; | |
if (t += e.value, e = this.getToken(!0, !0), !e.isSymbol(",")) return ""; | |
if (t += ", ", e = this.getToken(!0, !0), !e.isPercentage()) return ""; | |
if (t += e.value, e = this.getToken(!0, !0), !e.isSymbol(",")) return ""; | |
if (t += ", ", e = this.getToken(!0, !0), !e.isPercentage()) return ""; | |
if (t += e.value, i) { | |
if (e = this.getToken(!0, !0), !e.isSymbol(",")) return ""; | |
if (t += ", ", e = this.getToken(!0, !0), !e.isNumber()) return ""; | |
t += e.value | |
} | |
if (e = this.getToken(!0, !0), !e.isSymbol(")")) return ""; | |
t += e.value | |
} else if (e.isIdent() && e.value in this.kCOLOR_NAMES) t = e.value; | |
else if (e.isSymbol("#")) { | |
if (e = this.getHexValue(), !e.isHex()) return ""; | |
var r = e.value.length; | |
if (3 != r && 6 != r) return ""; | |
if (e.value.match(/[a-fA-F0-9]/g).length != r) return ""; | |
t = "#" + e.value | |
} | |
return t | |
}, | |
parseDeclaration: function (e, t, n, i, r) { | |
this.preserveState(); | |
var s = []; | |
if (e.isIdent()) { | |
var o = e.value.toLowerCase(), | |
a = this.getToken(!0, !0); | |
if (a.isSymbol(":")) { | |
var a = this.getToken(!0, !0), | |
l = "", | |
u = []; | |
if (i) switch (o) { | |
case "background": | |
l = this.parseBackgroundShorthand(a, u, n); | |
break; | |
case "margin": | |
case "padding": | |
l = this.parseMarginOrPaddingShorthand(a, u, n, o); | |
break; | |
case "border-color": | |
l = this.parseBorderColorShorthand(a, u, n); | |
break; | |
case "border-style": | |
l = this.parseBorderStyleShorthand(a, u, n); | |
break; | |
case "border-width": | |
l = this.parseBorderWidthShorthand(a, u, n); | |
break; | |
case "border-top": | |
case "border-right": | |
case "border-bottom": | |
case "border-left": | |
case "border": | |
case "outline": | |
l = this.parseBorderEdgeOrOutlineShorthand(a, u, n, o); | |
break; | |
case "cue": | |
l = this.parseCueShorthand(a, u, n); | |
break; | |
case "pause": | |
l = this.parsePauseShorthand(a, u, n); | |
break; | |
case "font": | |
l = this.parseFontShorthand(a, u, n); | |
break; | |
case "list-style": | |
l = this.parseListStyleShorthand(a, u, n); | |
break; | |
default: | |
l = this.parseDefaultPropertyValue(a, u, n, o, r) | |
} else l = this.parseDefaultPropertyValue(a, u, n, o, r); | |
if (a = this.currentToken(), l) { | |
var c = !1; | |
if (a.isSymbol("!")) { | |
if (a = this.getToken(!0, !0), !a.isIdent("important")) return ""; | |
if (c = !0, a = this.getToken(!0, !0), !a.isSymbol(";") && !a.isSymbol("}")) return ""; | |
a.isSymbol("}") && this.ungetToken() | |
} else if (a.isNotNull() && !a.isSymbol(";") && !a.isSymbol("}")) return ""; | |
for (var d = 0; d < u.length; d++) u[d].priority = c, t.push(u[d]); | |
return o + ": " + l + ";" | |
} | |
} | |
} else if (e.isComment()) { | |
if (this.mPreserveComments) { | |
this.forgetState(); | |
var p = new jscsspComment; | |
p.parsedCssText = e.value, t.push(p) | |
} | |
return e.value | |
} | |
this.restoreState(); | |
var f = e.value; | |
s = []; | |
for (var a = this.getToken(!1, !1); a.isNotNull();) { | |
if (f += a.value, (a.isSymbol(";") || a.isSymbol("}")) && !s.length) { | |
a.isSymbol("}") && this.ungetToken(); | |
break | |
} | |
if (a.isSymbol("{") || a.isSymbol("(") || a.isSymbol("[") || a.isFunction()) s.push(a.isFunction() ? "(" : a.value); | |
else if ((a.isSymbol("}") || a.isSymbol(")") || a.isSymbol("]")) && s.length) { | |
var h = s[s.length - 1]; | |
(a.isSymbol("}") && "{" == h || a.isSymbol(")") && "(" == h || a.isSymbol("]") && "[" == h) && s.pop() | |
} | |
a = this.getToken(!1, !1) | |
} | |
return "" | |
}, | |
parseKeyframesRule: function (e, t) { | |
var n = CountLF(this.mScanner.getAlreadyScanned()), | |
i = e.value, | |
r = !1, | |
s = new jscsspKeyframesRule; | |
s.currentLine = n, this.preserveState(); | |
for (var o = this.getToken(!0, !0), a = !1; o.isNotNull();) { | |
if (!o.isIdent()) { | |
if (o.isSymbol("{")) { | |
a || (o.type = jscsspToken.NULL_TYPE); | |
break | |
} | |
o.type = jscsspToken.NULL_TYPE; | |
break | |
} | |
if (a = !0, i += " " + o.value, s.name = o.value, o = this.getToken(!0, !0), !o.isSymbol("{")) { | |
o.type = jscsspToken.NULL_TYPE; | |
break | |
} | |
this.ungetToken(), o = this.getToken(!0, !0) | |
} | |
if (o.isSymbol("{") && s.name) | |
for (i += " { ", o = this.getToken(!0, !1); o.isNotNull();) { | |
if (o.isComment() && this.mPreserveComments) { | |
i += " " + o.value; | |
var l = new jscsspComment; | |
l.parsedCssText = o.value, s.cssRules.push(l) | |
} else { | |
if (o.isSymbol("}")) { | |
r = !0; | |
break | |
} | |
var u = this.parseKeyframeRule(o, s, !0); | |
u && (i += u) | |
} | |
o = this.getToken(!0, !1) | |
} | |
return r ? (this.forgetState(), s.currentLine = n, s.parsedCssText = i, t.cssRules.push(s), !0) : (this.restoreState(), !1) | |
}, | |
parseKeyframeRule: function (e, t) { | |
var n = CountLF(this.mScanner.getAlreadyScanned()); | |
this.preserveState(); | |
for (var i = e, r = ""; i.isNotNull();) { | |
if (!i.isIdent() && !i.isPercentage()) { | |
r = ""; | |
break | |
} | |
if (i.isIdent() && !i.isIdent("from") && !i.isIdent("to")) { | |
r = ""; | |
break | |
} | |
if (r += i.value, i = this.getToken(!0, !0), i.isSymbol("{")) { | |
this.ungetToken(); | |
break | |
} | |
if (!i.isSymbol(",")) { | |
r = ""; | |
break | |
} | |
r += ", ", i = this.getToken(!0, !0) | |
} | |
var s = !1, | |
o = []; | |
if (r) { | |
var a = r; | |
if (i = this.getToken(!0, !0), i.isSymbol("{")) | |
for (a += " { ", i = this.getToken(!0, !1);;) { | |
if (!i.isNotNull()) { | |
s = !0; | |
break | |
} | |
if (i.isSymbol("}")) { | |
a += "}", s = !0; | |
break | |
} | |
var l = this.parseDeclaration(i, o, !0, !0, t); | |
a += (l && o.length ? " " : "") + l, i = this.getToken(!0, !1) | |
} | |
} | |
if (s) { | |
var u = new jscsspKeyframeRule; | |
return u.currentLine = n, u.parsedCssText = a, u.declarations = o, u.keyText = r, u.parentRule = t, t.cssRules.push(u), a | |
} | |
return this.restoreState(), a = this.currentToken().value, this.addUnknownAtRule(t, a), "" | |
}, | |
parseMediaRule: function (e, t) { | |
this.mScanner.mMediaQueryMode = !0; | |
var n = CountLF(this.mScanner.getAlreadyScanned()), | |
i = e.value, | |
r = !1, | |
s = new jscsspMediaRule; | |
s.currentLine = n, this.preserveState(); | |
for (var o = this.getToken(!0, !0), a = !1; o.isNotNull();) { | |
if (o.isIdent()) | |
if (a = !0, i += " " + o.value, s.media.push(o.value), o = this.getToken(!0, !0), o.isSymbol(",")) i += ","; | |
else { | |
if (!o.isSymbol("{")) { | |
o.type = jscsspToken.NULL_TYPE; | |
break | |
} | |
this.ungetToken() | |
} else { | |
if (o.isSymbol("{")) break; | |
if (a) { | |
o.type = jscsspToken.NULL_TYPE; | |
break | |
} | |
} | |
o = this.getToken(!0, !0) | |
} | |
if (o.isSymbol("{") && s.media.length) | |
for (i += " { ", o = this.getToken(!0, !1); o.isNotNull();) { | |
if (o.isComment() && this.mPreserveComments) { | |
i += " " + o.value; | |
var l = new jscsspComment; | |
l.parsedCssText = o.value, s.cssRules.push(l) | |
} else { | |
if (o.isSymbol("}")) { | |
r = !0; | |
break | |
} | |
var u = this.parseStyleRule(o, s, !0); | |
u && (i += u) | |
} | |
o = this.getToken(!0, !1) | |
} | |
return r ? (this.forgetState(), s.parsedCssText = i, t.cssRules.push(s), !0) : (this.restoreState(), !1) | |
}, | |
trim11: function (e) { | |
e = e.replace(/^\s+/, ""); | |
for (var t = e.length - 1; t >= 0; t--) | |
if (/\S/.test(e.charAt(t))) { | |
e = e.substring(0, t + 1); | |
break | |
} | |
return e | |
}, | |
parseStyleRule: function (e, t, n) { | |
var i = CountLF(this.mScanner.getAlreadyScanned()); | |
this.preserveState(); | |
var r = this.parseSelector(e, !1), | |
s = !1, | |
o = []; | |
if (r) { | |
r = this.trim11(r.selector); | |
var a = r, | |
l = this.getToken(!0, !0); | |
if (l.isSymbol("{")) { | |
a += " { "; | |
for (var l = this.getToken(!0, !1);;) { | |
if (!l.isNotNull()) { | |
s = !0; | |
break | |
} | |
if (l.isSymbol("}")) { | |
a += "}", s = !0; | |
break | |
} | |
var u = this.parseDeclaration(l, o, !0, !0, t); | |
a += (u && o.length ? " " : "") + u, l = this.getToken(!0, !1) | |
} | |
} | |
} | |
if (s) { | |
var c = new jscsspStyleRule; | |
return c.currentLine = i, c.parsedCssText = a, c.declarations = o, c.mSelectorText = r, n ? c.parentRule = t : c.parentStyleSheet = t, t.cssRules.push(c), a | |
} | |
return this.restoreState(), a = this.currentToken().value, this.addUnknownAtRule(t, a), "" | |
}, | |
parseSelector: function (e, t) { | |
for (var n = "", i = { | |
a: 0, | |
b: 0, | |
c: 0, | |
d: 0 | |
}, r = !0, s = e, o = !1, a = !1;;) { | |
if (!s.isNotNull()) return t ? { | |
selector: n, | |
specificity: i | |
} : ""; | |
if (!t && s.isSymbol("{")) { | |
o = !a, o && this.ungetToken(); | |
break | |
} | |
if (s.isSymbol(",")) n += s.value, r = !0, a = !1, s = this.getToken(!1, !0); | |
else if (a || !(s.isWhiteSpace() || s.isSymbol(">") || s.isSymbol("+") || s.isSymbol("~"))) { | |
var l = this.parseSimpleSelector(s, r, !0); | |
if (!l) break; | |
n += l.selector, i.b += l.specificity.b, i.c += l.specificity.c, i.d += l.specificity.d, r = !1, a = !1, s = this.getToken(!1, !0) | |
} else { | |
if (s.isWhiteSpace()) { | |
n += " "; | |
var u = this.lookAhead(!0, !0); | |
if (!u.isNotNull()) return t ? { | |
selector: n, | |
specificity: i | |
} : ""; | |
(u.isSymbol(">") || u.isSymbol("+") || u.isSymbol("~")) && (s = this.getToken(!0, !0), n += s.value + " ", a = !0) | |
} else n += s.value, a = !0; | |
r = !0, s = this.getToken(!0, !0) | |
} | |
} | |
return o ? { | |
selector: n, | |
specificity: i | |
} : "" | |
}, | |
isPseudoElement: function (e) { | |
switch (e) { | |
case "first-letter": | |
case "first-line": | |
case "before": | |
case "after": | |
case "marker": | |
return !0; | |
default: | |
return !1 | |
} | |
}, | |
parseSimpleSelector: function (e, t, n) { | |
var i = "", | |
r = { | |
a: 0, | |
b: 0, | |
c: 0, | |
d: 0 | |
}; | |
if (t && (e.isSymbol("*") || e.isSymbol("|") || e.isIdent())) { | |
if (e.isSymbol("*") || e.isIdent()) { | |
i += e.value; | |
var s = e.isIdent(); | |
if (e = this.getToken(!1, !0), e.isSymbol("|")) { | |
if (i += e.value, e = this.getToken(!1, !0), !e.isIdent() && !e.isSymbol("*")) return null; | |
i += e.value, e.isIdent() && r.d++ | |
} else this.ungetToken(), s && r.d++ | |
} else if (e.isSymbol("|")) { | |
if (i += e.value, e = this.getToken(!1, !0), !e.isIdent() && !e.isSymbol("*")) return null; | |
i += e.value, e.isIdent() && r.d++ | |
} | |
} else if (e.isSymbol(".") || e.isSymbol("#")) { | |
var o = e.isSymbol("."); | |
if (i += e.value, e = this.getToken(!1, !0), !e.isIdent()) return null; | |
i += e.value, o ? r.c++ : r.b++ | |
} else if (e.isSymbol(":")) | |
if (i += e.value, e = this.getToken(!1, !0), e.isSymbol(":") && (i += e.value, e = this.getToken(!1, !0)), e.isIdent()) i += e.value, this.isPseudoElement(e.value) ? r.d++ : r.c++; | |
else { | |
if (!e.isFunction()) return null; | |
if (i += e.value, e.isFunction(":not(")) { | |
if (!n) return null; | |
e = this.getToken(!0, !0); | |
var a = this.parseSimpleSelector(e, t, !1); | |
if (!a) return null; | |
if (i += a.selector, e = this.getToken(!0, !0), !e.isSymbol(")")) return null; | |
i += ")", r.c++ | |
} else { | |
for (;;) { | |
if (e = this.getToken(!1, !0), e.isSymbol(")")) { | |
i += ")"; | |
break | |
} | |
i += e.value | |
} | |
r.c++ | |
} | |
} else if (e.isSymbol("[")) { | |
if (i += "[", e = this.getToken(!0, !0), e.isIdent() || e.isSymbol("*")) { | |
i += e.value; { | |
this.getToken(!0, !0) | |
} | |
if (e.isSymbol("|")) { | |
if (i += "|", e = this.getToken(!0, !0), !e.isIdent()) return null; | |
i += e.value | |
} else this.ungetToken() | |
} else { | |
if (!e.isSymbol("|")) return null; | |
if (i += "|", e = this.getToken(!0, !0), !e.isIdent()) return null; | |
i += e.value | |
} if (e = this.getToken(!0, !0), e.isIncludes() || e.isDashmatch() || e.isBeginsmatch() || e.isEndsmatch() || e.isContainsmatch() || e.isSymbol("=")) { | |
if (i += e.value, e = this.getToken(!0, !0), !e.isString() && !e.isIdent()) return null; | |
if (i += e.value, e = this.getToken(!0, !0), !e.isSymbol("]")) return null; | |
i += e.value, r.c++ | |
} else { | |
if (!e.isSymbol("]")) return null; | |
i += e.value, r.c++ | |
} | |
} else if (e.isWhiteSpace()) { | |
var l = this.lookAhead(!0, !0); | |
if (l.isSymbol("{")) return "" | |
} | |
return i ? { | |
selector: i, | |
specificity: r | |
} : null | |
}, | |
preserveState: function () { | |
this.mPreservedTokens.push(this.currentToken()), this.mScanner.preserveState() | |
}, | |
restoreState: function () { | |
this.mPreservedTokens.length && (this.mScanner.restoreState(), this.mToken = this.mPreservedTokens.pop()) | |
}, | |
forgetState: function () { | |
this.mPreservedTokens.length && (this.mScanner.forgetState(), this.mPreservedTokens.pop()) | |
}, | |
parse: function (e, t, n) { | |
if (!e) return null; | |
this.mPreserveWS = t, this.mPreserveComments = n, this.mPreservedTokens = [], this.mScanner.init(e); | |
var i = new jscsspStylesheet, | |
r = this.getToken(!1, !1); | |
if (r.isNotNull()) { | |
r.isAtRule("@charset") && (this.parseCharsetRule(r, i), r = this.getToken(!1, !1)); | |
for (var s = !1, o = !1, a = !1;;) { | |
if (!r.isNotNull()) break; | |
if (r.isWhiteSpace()) t && this.addWhitespace(i, r.value); | |
else if (r.isComment()) this.mPreserveComments && this.addComment(i, r.value); | |
else if (r.isAtRule()) r.isAtRule("@variables") ? o || s ? (this.reportError(kVARIABLES_RULE_POSITION), this.addUnknownAtRule(i, r.value)) : this.parseVariablesRule(r, i) : r.isAtRule("@import") ? s || a ? (this.reportError(kIMPORT_RULE_POSITION), this.addUnknownAtRule(i, r.value)) : o = this.parseImportRule(r, i) : r.isAtRule("@namespace") ? s ? (this.reportError(kNAMESPACE_RULE_POSITION), this.addUnknownAtRule(i, r.value)) : a = this.parseNamespaceRule(r, i) : r.isAtRule("@font-face") ? this.parseFontFaceRule(r, i) ? s = !0 : this.addUnknownAtRule(i, r.value) : r.isAtRule("@page") ? this.parsePageRule(r, i) ? s = !0 : this.addUnknownAtRule(i, r.value) : r.isAtRule("@media") ? this.parseMediaRule(r, i) ? s = !0 : this.addUnknownAtRule(i, r.value) : r.isAtRule("@keyframes") ? this.parseKeyframesRule(r, i) || this.addUnknownAtRule(i, r.value) : r.isAtRule("@charset") ? (this.reportError(kCHARSET_RULE_CHARSET_SOF), this.addUnknownAtRule(i, r.value)) : (this.reportError(kUNKNOWN_AT_RULE), this.addUnknownAtRule(i, r.value)); | |
else { | |
var l = this.parseStyleRule(r, i, !1); | |
l && (s = !0) | |
} | |
r = this.getToken(!1) | |
} | |
return i | |
} | |
} | |
}, jscsspToken.NULL_TYPE = 0, jscsspToken.WHITESPACE_TYPE = 1, jscsspToken.STRING_TYPE = 2, jscsspToken.COMMENT_TYPE = 3, jscsspToken.NUMBER_TYPE = 4, jscsspToken.IDENT_TYPE = 5, jscsspToken.FUNCTION_TYPE = 6, jscsspToken.ATRULE_TYPE = 7, jscsspToken.INCLUDES_TYPE = 8, jscsspToken.DASHMATCH_TYPE = 9, jscsspToken.BEGINSMATCH_TYPE = 10, jscsspToken.ENDSMATCH_TYPE = 11, jscsspToken.CONTAINSMATCH_TYPE = 12, jscsspToken.SYMBOL_TYPE = 13, jscsspToken.DIMENSION_TYPE = 14, jscsspToken.PERCENTAGE_TYPE = 15, jscsspToken.HEX_TYPE = 16, jscsspToken.prototype = { | |
isNotNull: function () { | |
return this.type | |
}, | |
_isOfType: function (e, t) { | |
return this.type == e && (!t || this.value.toLowerCase() == t) | |
}, | |
isWhiteSpace: function (e) { | |
return this._isOfType(jscsspToken.WHITESPACE_TYPE, e) | |
}, | |
isString: function () { | |
return this._isOfType(jscsspToken.STRING_TYPE) | |
}, | |
isComment: function () { | |
return this._isOfType(jscsspToken.COMMENT_TYPE) | |
}, | |
isNumber: function (e) { | |
return this._isOfType(jscsspToken.NUMBER_TYPE, e) | |
}, | |
isSymbol: function (e) { | |
return this._isOfType(jscsspToken.SYMBOL_TYPE, e) | |
}, | |
isIdent: function (e) { | |
return this._isOfType(jscsspToken.IDENT_TYPE, e) | |
}, | |
isFunction: function (e) { | |
return this._isOfType(jscsspToken.FUNCTION_TYPE, e) | |
}, | |
isAtRule: function (e) { | |
return this._isOfType(jscsspToken.ATRULE_TYPE, e) | |
}, | |
isIncludes: function () { | |
return this._isOfType(jscsspToken.INCLUDES_TYPE) | |
}, | |
isDashmatch: function () { | |
return this._isOfType(jscsspToken.DASHMATCH_TYPE) | |
}, | |
isBeginsmatch: function () { | |
return this._isOfType(jscsspToken.BEGINSMATCH_TYPE) | |
}, | |
isEndsmatch: function () { | |
return this._isOfType(jscsspToken.ENDSMATCH_TYPE) | |
}, | |
isContainsmatch: function () { | |
return this._isOfType(jscsspToken.CONTAINSMATCH_TYPE) | |
}, | |
isSymbol: function (e) { | |
return this._isOfType(jscsspToken.SYMBOL_TYPE, e) | |
}, | |
isDimension: function () { | |
return this._isOfType(jscsspToken.DIMENSION_TYPE) | |
}, | |
isPercentage: function () { | |
return this._isOfType(jscsspToken.PERCENTAGE_TYPE) | |
}, | |
isHex: function () { | |
return this._isOfType(jscsspToken.HEX_TYPE) | |
}, | |
isDimensionOfUnit: function (e) { | |
return this.isDimension() && this.unit == e | |
}, | |
isLength: function () { | |
return this.isPercentage() || this.isDimensionOfUnit("cm") || this.isDimensionOfUnit("mm") || this.isDimensionOfUnit("in") || this.isDimensionOfUnit("pc") || this.isDimensionOfUnit("px") || this.isDimensionOfUnit("em") || this.isDimensionOfUnit("ex") || this.isDimensionOfUnit("pt") | |
}, | |
isAngle: function () { | |
return this.isDimensionOfUnit("deg") || this.isDimensionOfUnit("rad") || this.isDimensionOfUnit("grad") | |
} | |
}; | |
var kJscsspUNKNOWN_RULE = 0, | |
kJscsspSTYLE_RULE = 1, | |
kJscsspCHARSET_RULE = 2, | |
kJscsspIMPORT_RULE = 3, | |
kJscsspMEDIA_RULE = 4, | |
kJscsspFONT_FACE_RULE = 5, | |
kJscsspPAGE_RULE = 6, | |
kJscsspKEYFRAMES_RULE = 7, | |
kJscsspKEYFRAME_RULE = 8, | |
kJscsspNAMESPACE_RULE = 100, | |
kJscsspCOMMENT = 101, | |
kJscsspWHITE_SPACE = 102, | |
kJscsspVARIABLES_RULE = 200, | |
kJscsspSTYLE_DECLARATION = 1e3, | |
gTABS = ""; | |
jscsspStylesheet.prototype = { | |
insertRule: function (e, t) { | |
try { | |
this.cssRules.splice(t, 1, e) | |
} catch (n) {} | |
}, | |
deleteRule: function (e) { | |
try { | |
this.cssRules.splice(e) | |
} catch (t) {} | |
}, | |
cssText: function () { | |
for (var e = "", t = 0; t < this.cssRules.length; t++) e += this.cssRules[t].cssText() + "\n"; | |
return e | |
}, | |
resolveVariables: function (e) { | |
function t(e, t) { | |
for (var n = 0; n < e.length; n++) | |
if (t == e[n]) return !0; | |
return !1 | |
} | |
for (var n = 0; n < this.cssRules.length; n++) { | |
var i = this.cssRules[n]; | |
if (i.type == kJscsspSTYLE_RULE || i.type == kJscsspIMPORT_RULE) break; | |
if (i.type == kJscsspVARIABLES_RULE && (!i.media.length || t(i.media, e))) | |
for (var r = 0; r < i.declarations.length; r++) { | |
for (var s = "", o = 0; o < i.declarations[r].values.length; o++) s += (o ? " " : "") + i.declarations[r].values[o].value; | |
this.variables[i.declarations[r].property] = s | |
} | |
} | |
} | |
}, jscsspCharsetRule.prototype = { | |
cssText: function () { | |
return "@charset " + this.encoding + ";" | |
}, | |
setCssText: function (e) { | |
var t = { | |
cssRules: [] | |
}, n = new CSSParser(e), | |
i = n.getToken(!1, !1); | |
if (i.isAtRule("@charset") && n.parseCharsetRule(i, t)) { | |
var r = t.cssRules[0]; | |
return this.encoding = r.encoding, void(this.parsedCssText = r.parsedCssText) | |
} | |
throw DOMException.SYNTAX_ERR | |
} | |
}, jscsspErrorRule.prototype = { | |
cssText: function () { | |
return this.parsedCssText | |
} | |
}, jscsspComment.prototype = { | |
cssText: function () { | |
return this.parsedCssText | |
}, | |
setCssText: function (e) { | |
var t = new CSSParser(e), | |
n = t.getToken(!0, !1); | |
if (!n.isComment()) throw DOMException.SYNTAX_ERR; | |
this.parsedCssText = n.value | |
} | |
}, jscsspWhitespace.prototype = { | |
cssText: function () { | |
return this.parsedCssText | |
} | |
}, jscsspImportRule.prototype = { | |
cssText: function () { | |
var e = this.media.join(", "); | |
return "@import " + this.href + (e && "all" != e ? e + " " : "") + ";" | |
}, | |
setCssText: function (e) { | |
var t = { | |
cssRules: [] | |
}, n = new CSSParser(e), | |
i = n.getToken(!0, !0); | |
if (i.isAtRule("@import") && n.parseImportRule(i, t)) { | |
var r = t.cssRules[0]; | |
return this.href = r.href, this.media = r.media, void(this.parsedCssText = r.parsedCssText) | |
} | |
throw DOMException.SYNTAX_ERR | |
} | |
}, jscsspNamespaceRule.prototype = { | |
cssText: function () { | |
return "@namespace " + (this.prefix ? this.prefix + " " : "") + this.url + ";" | |
}, | |
setCssText: function (e) { | |
var t = { | |
cssRules: [] | |
}, n = new CSSParser(e), | |
i = n.getToken(!0, !0); | |
if (i.isAtRule("@namespace") && n.parseNamespaceRule(i, t)) { | |
var r = t.cssRules[0]; | |
return this.url = r.url, this.prefix = r.prefix, void(this.parsedCssText = r.parsedCssText) | |
} | |
throw DOMException.SYNTAX_ERR | |
} | |
}, jscsspDeclaration.prototype = { | |
kCOMMA_SEPARATED: { | |
cursor: !0, | |
"font-family": !0, | |
"voice-family": !0, | |
"background-image": !0 | |
}, | |
kUNMODIFIED_COMMA_SEPARATED_PROPERTIES: { | |
"text-shadow": !0, | |
"box-shadow": !0, | |
"-moz-transition": !0, | |
"-moz-transition-property": !0, | |
"-moz-transition-duration": !0, | |
"-moz-transition-timing-function": !0, | |
"-moz-transition-delay": !0 | |
}, | |
cssText: function () { | |
var e = CssInspector.prefixesForProperty(this.property); | |
if (this.property in this.kUNMODIFIED_COMMA_SEPARATED_PROPERTIES) { | |
if (e) { | |
for (var t = "", n = 0; n < e.length; n++) { | |
var i = e[n]; | |
t += (n ? gTABS : "") + i + ": ", t += this.valueText + (this.priority ? " !important" : "") + ";", t += e.length > 1 && n != e.length - 1 ? "\n" : "" | |
} | |
return t | |
} | |
return this.property + ": " + this.valueText + (this.priority ? " !important" : "") + ";" | |
} | |
if (e) { | |
for (var t = "", n = 0; n < e.length; n++) { | |
var i = e[n]; | |
t += (n ? gTABS : "") + i + ": "; | |
for (var r = (i in this.kCOMMA_SEPARATED ? ", " : " "), s = 0; s < this.values.length; s++) { | |
if (null == this.values[s].cssText()) return null; | |
t += (s ? r : "") + this.values[s].cssText() | |
} | |
t += (this.priority ? " !important" : "") + ";" + (e.length > 1 && n != e.length - 1 ? "\n" : "") | |
} | |
return t | |
} | |
for (var t = this.property + ": ", r = (this.property in this.kCOMMA_SEPARATED ? ", " : " "), o = { | |
webkit: !1, | |
presto: !1, | |
trident: !1, | |
generic: !1 | |
}, s = 0; s < this.values.length; s++) { | |
var a = this.values[s].cssText(); | |
if (null == a) return null; | |
var l = a.indexOf("("), | |
u = a; | |
if (-1 != l && (u = a.substr(0, l)), u in kCSS_VENDOR_VALUES) | |
for (var c in kCSS_VENDOR_VALUES[u]) o[c] = o[c] || "" != kCSS_VENDOR_VALUES[u][c]; | |
t += (s ? r : "") + a | |
} | |
t += (this.priority ? " !important" : "") + ";"; | |
for (var c in o) | |
if (o[c]) { | |
for (var d = "\n" + gTABS + this.property + ": ", s = 0; s < this.values.length; s++) { | |
var a = this.values[s].cssText(); | |
if (null == a) return null; | |
var l = a.indexOf("("), | |
u = a; | |
if (-1 != l && (u = a.substr(0, l)), u in kCSS_VENDOR_VALUES && (functor = kCSS_VENDOR_VALUES[u][c], functor && (a = "string" == typeof functor ? functor : functor(a, c), !a))) { | |
d = null; | |
break | |
} | |
d += (s ? r : "") + a | |
} | |
t += d ? d + ";" : "\n" + gTABS + "/* Impossible to translate property " + this.property + " for " + c + " */" | |
} | |
return t | |
}, | |
setCssText: function (e) { | |
var t = [], | |
n = new CSSParser(e), | |
i = n.getToken(!0, !0); | |
if (n.parseDeclaration(i, t, !0, !0, null) && t.length && t[0].type == kJscsspSTYLE_DECLARATION) { | |
var r = t.cssRules[0]; | |
return this.property = r.property, this.value = r.value, this.priority = r.priority, void(this.parsedCssText = newRule.parsedCssText) | |
} | |
throw DOMException.SYNTAX_ERR | |
} | |
}, jscsspFontFaceRule.prototype = { | |
cssText: function () { | |
var e = gTABS + "@font-face {\n", | |
t = gTABS; | |
gTABS += " "; | |
for (var n = 0; n < this.descriptors.length; n++) e += gTABS + this.descriptors[n].cssText() + "\n"; | |
return gTABS = t, e + gTABS + "}" | |
}, | |
setCssText: function (e) { | |
var t = { | |
cssRules: [] | |
}, n = new CSSParser(e), | |
i = n.getToken(!0, !0); | |
if (i.isAtRule("@font-face") && n.parseFontFaceRule(i, t)) { | |
var r = t.cssRules[0]; | |
return this.descriptors = r.descriptors, void(this.parsedCssText = r.parsedCssText) | |
} | |
throw DOMException.SYNTAX_ERR | |
} | |
}, jscsspKeyframesRule.prototype = { | |
cssText: function () { | |
var e = gTABS + "@keyframes " + this.name + " {\n", | |
t = gTABS; | |
gTABS += " "; | |
for (var n = 0; n < this.cssRules.length; n++) e += gTABS + this.cssRules[n].cssText() + "\n"; | |
return gTABS = t, e += gTABS + "}\n" | |
}, | |
setCssText: function (e) { | |
var t = { | |
cssRules: [] | |
}, n = new CSSParser(e), | |
i = n.getToken(!0, !0); | |
if (i.isAtRule("@keyframes") && n.parseKeyframesRule(i, t)) { | |
var r = t.cssRules[0]; | |
return this.cssRules = r.cssRules, this.name = r.name, void(this.parsedCssText = r.parsedCssText) | |
} | |
throw DOMException.SYNTAX_ERR | |
} | |
}, jscsspKeyframeRule.prototype = { | |
cssText: function () { | |
var e = this.keyText + " {\n", | |
t = gTABS; | |
gTABS += " "; | |
for (var n = 0; n < this.declarations.length; n++) { | |
var i = this.declarations[n].cssText(); | |
i && (e += gTABS + this.declarations[n].cssText() + "\n") | |
} | |
return gTABS = t, e + gTABS + "}" | |
}, | |
setCssText: function (e) { | |
var t = { | |
cssRules: [] | |
}, n = new CSSParser(e), | |
i = n.getToken(!0, !0); | |
if (!i.isNotNull() && n.parseKeyframeRule(i, t, !1)) { | |
var r = t.cssRules[0]; | |
return this.keyText = r.keyText, this.declarations = r.declarations, void(this.parsedCssText = r.parsedCssText) | |
} | |
throw DOMException.SYNTAX_ERR | |
} | |
}, jscsspMediaRule.prototype = { | |
cssText: function () { | |
var e = gTABS + "@media " + this.media.join(", ") + " {\n", | |
t = gTABS; | |
gTABS += " "; | |
for (var n = 0; n < this.cssRules.length; n++) e += gTABS + this.cssRules[n].cssText() + "\n"; | |
return gTABS = t, e + gTABS + "}" | |
}, | |
setCssText: function (e) { | |
var t = { | |
cssRules: [] | |
}, n = new CSSParser(e), | |
i = n.getToken(!0, !0); | |
if (i.isAtRule("@media") && n.parseMediaRule(i, t)) { | |
var r = t.cssRules[0]; | |
return this.cssRules = r.cssRules, this.media = r.media, void(this.parsedCssText = r.parsedCssText) | |
} | |
throw DOMException.SYNTAX_ERR | |
} | |
}, jscsspStyleRule.prototype = { | |
cssText: function () { | |
var e = this.mSelectorText + " {\n", | |
t = gTABS; | |
gTABS += " "; | |
for (var n = 0; n < this.declarations.length; n++) { | |
var i = this.declarations[n].cssText(); | |
i && (e += gTABS + this.declarations[n].cssText() + "\n") | |
} | |
return gTABS = t, e + gTABS + "}" | |
}, | |
setCssText: function (e) { | |
var t = { | |
cssRules: [] | |
}, n = new CSSParser(e), | |
i = n.getToken(!0, !0); | |
if (!i.isNotNull() && n.parseStyleRule(i, t, !1)) { | |
var r = t.cssRules[0]; | |
return this.mSelectorText = r.mSelectorText, this.declarations = r.declarations, void(this.parsedCssText = r.parsedCssText) | |
} | |
throw DOMException.SYNTAX_ERR | |
}, | |
selectorText: function () { | |
return this.mSelectorText | |
}, | |
setSelectorText: function (e) { | |
var t = new CSSParser(e), | |
n = t.getToken(!0, !0); | |
if (!n.isNotNull()) { | |
var i = t.parseSelector(n, !0); | |
if (i) return void(this.mSelectorText = i.selector) | |
} | |
throw DOMException.SYNTAX_ERR | |
} | |
}, jscsspPageRule.prototype = { | |
cssText: function () { | |
var e = gTABS + "@page " + (this.pageSelector ? this.pageSelector + " " : "") + "{\n", | |
t = gTABS; | |
gTABS += " "; | |
for (var n = 0; n < this.declarations.length; n++) e += gTABS + this.declarations[n].cssText() + "\n"; | |
return gTABS = t, e + gTABS + "}" | |
}, | |
setCssText: function (e) { | |
var t = { | |
cssRules: [] | |
}, n = new CSSParser(e), | |
i = n.getToken(!0, !0); | |
if (i.isAtRule("@page") && n.parsePageRule(i, t)) { | |
var r = t.cssRules[0]; | |
return this.pageSelector = r.pageSelector, this.declarations = r.declarations, void(this.parsedCssText = r.parsedCssText) | |
} | |
throw DOMException.SYNTAX_ERR | |
} | |
}, jscsspVariablesRule.prototype = { | |
cssText: function () { | |
var e = gTABS + "@variables " + (this.media.length ? this.media.join(", ") + " " : "") + "{\n", | |
t = gTABS; | |
gTABS += " "; | |
for (var n = 0; n < this.declarations.length; n++) e += gTABS + this.declarations[n].cssText() + "\n"; | |
return gTABS = t, e + gTABS + "}" | |
}, | |
setCssText: function (e) { | |
var t = { | |
cssRules: [] | |
}, n = new CSSParser(e), | |
i = n.getToken(!0, !0); | |
if (i.isAtRule("@variables") && n.parseVariablesRule(i, t)) { | |
var r = t.cssRules[0]; | |
return this.declarations = r.declarations, void(this.parsedCssText = r.parsedCssText) | |
} | |
throw DOMException.SYNTAX_ERR | |
} | |
}; | |
var kJscsspINHERIT_VALUE = 0, | |
kJscsspPRIMITIVE_VALUE = 1, | |
kJscsspVARIABLE_VALUE = 4; | |
jscsspVariable.prototype = { | |
cssText: function () { | |
return this.type == kJscsspVARIABLE_VALUE ? this.resolveVariable(this.name, this.parentRule, this.parentStyleSheet) : this.value | |
}, | |
setCssText: function (e) { | |
if (this.type == kJscsspVARIABLE_VALUE) throw DOMException.SYNTAX_ERR; | |
this.value = e | |
}, | |
resolveVariable: function (e, t, n) { | |
return e.toLowerCase() in n.variables ? n.variables[e.toLowerCase()] : null | |
} | |
}; | |
var inkblob; | |
writefile = function () { | |
stuff = parseParagraph(), console.log("Writing to " + inkblob.filename + "..."), filepicker.write(inkblob, stuff, function () { | |
console.log("write success") | |
}, function (e) { | |
console.log(e.toString()) | |
}) | |
}, filepicker.setKey("A3UKsLvhQj6x7lvSjJGWQz"); | |
var ModalEffects = function () { | |
function e() { | |
var e = document.querySelector(".md-overlay"); | |
[].slice.call(document.querySelectorAll(".md-trigger")).forEach(function (t) { | |
function n(e) { | |
classie.remove(r, "md-show"), e && classie.remove(document.documentElement, "md-perspective") | |
} | |
function i() { | |
n(classie.has(t, "md-setperspective")) | |
} | |
var r = document.querySelector("#" + t.getAttribute("data-modal")), | |
s = r.querySelector(".md-close"); | |
t.addEventListener("click", function () { | |
classie.add(r, "md-show"), e.removeEventListener("click", i), e.addEventListener("click", i), classie.has(t, "md-setperspective") && setTimeout(function () { | |
classie.add(document.documentElement, "md-perspective") | |
}, 25) | |
}), s.addEventListener("click", function (e) { | |
e.stopPropagation(), i() | |
}) | |
}) | |
} | |
e() | |
}(); | |
window.Modernizr = function (e, t, n) { | |
function i(e) { | |
h.cssText = e | |
} | |
function r(e, t) { | |
return typeof e === t | |
} | |
var s, o, a, l = "2.6.2", | |
u = {}, c = !0, | |
d = t.documentElement, | |
p = "modernizr", | |
f = t.createElement(p), | |
h = f.style, | |
m = ({}.toString, " -webkit- -moz- -o- -ms- ".split(" ")), | |
g = {}, v = [], | |
b = v.slice, | |
k = function (e, n, i, r) { | |
var s, o, a, l, u = t.createElement("div"), | |
c = t.body, | |
f = c || t.createElement("body"); | |
if (parseInt(i, 10)) | |
for (; i--;) a = t.createElement("div"), a.id = r ? r[i] : p + (i + 1), u.appendChild(a); | |
return s = ["­", '<style id="s', p, '">', e, "</style>"].join(""), u.id = p, (c ? u : f).innerHTML += s, f.appendChild(u), c || (f.style.background = "", f.style.overflow = "hidden", l = d.style.overflow, d.style.overflow = "hidden", d.appendChild(f)), o = n(u, e), c ? u.parentNode.removeChild(u) : (f.parentNode.removeChild(f), d.style.overflow = l), !! o | |
}, y = {}.hasOwnProperty; | |
a = r(y, "undefined") || r(y.call, "undefined") ? function (e, t) { | |
return t in e && r(e.constructor.prototype[t], "undefined") | |
} : function (e, t) { | |
return y.call(e, t) | |
}, Function.prototype.bind || (Function.prototype.bind = function (e) { | |
var t = this; | |
if ("function" != typeof t) throw new TypeError; | |
var n = b.call(arguments, 1), | |
i = function () { | |
if (this instanceof i) { | |
var r = function () {}; | |
r.prototype = t.prototype; | |
var s = new r, | |
o = t.apply(s, n.concat(b.call(arguments))); | |
return Object(o) === o ? o : s | |
} | |
return t.apply(e, n.concat(b.call(arguments))) | |
}; | |
return i | |
}), g.touch = function () { | |
var n; | |
return "ontouchstart" in e || e.DocumentTouch && t instanceof DocumentTouch ? n = !0 : k(["@media (", m.join("touch-enabled),("), p, ")", "{#modernizr{top:9px;position:absolute}}"].join(""), function (e) { | |
n = 9 === e.offsetTop | |
}), n | |
}; | |
for (var w in g) a(g, w) && (o = w.toLowerCase(), u[o] = g[w](), v.push((u[o] ? "" : "no-") + o)); | |
return u.addTest = function (e, t) { | |
if ("object" == typeof e) | |
for (var i in e) a(e, i) && u.addTest(i, e[i]); | |
else { | |
if (e = e.toLowerCase(), u[e] !== n) return u; | |
t = "function" == typeof t ? t() : t, "undefined" != typeof c && c && (d.className += " " + (t ? "" : "no-") + e), u[e] = t | |
} | |
return u | |
}, i(""), f = s = null, | |
function (e, t) { | |
function n(e, t) { | |
var n = e.createElement("p"), | |
i = e.getElementsByTagName("head")[0] || e.documentElement; | |
return n.innerHTML = "x<style>" + t + "</style>", i.insertBefore(n.lastChild, i.firstChild) | |
} | |
function i() { | |
var e = v.elements; | |
return "string" == typeof e ? e.split(" ") : e | |
} | |
function r(e) { | |
var t = g[e[h]]; | |
return t || (t = {}, m++, e[h] = m, g[m] = t), t | |
} | |
function s(e, n, i) { | |
if (n || (n = t), c) return n.createElement(e); | |
i || (i = r(n)); | |
var s; | |
return s = i.cache[e] ? i.cache[e].cloneNode() : f.test(e) ? (i.cache[e] = i.createElem(e)).cloneNode() : i.createElem(e), s.canHaveChildren && !p.test(e) ? i.frag.appendChild(s) : s | |
} | |
function o(e, n) { | |
if (e || (e = t), c) return e.createDocumentFragment(); | |
n = n || r(e); | |
for (var s = n.frag.cloneNode(), o = 0, a = i(), l = a.length; l > o; o++) s.createElement(a[o]); | |
return s | |
} | |
function a(e, t) { | |
t.cache || (t.cache = {}, t.createElem = e.createElement, t.createFrag = e.createDocumentFragment, t.frag = t.createFrag()), e.createElement = function (n) { | |
return v.shivMethods ? s(n, e, t) : t.createElem(n) | |
}, e.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + i().join().replace(/\w+/g, function (e) { | |
return t.createElem(e), t.frag.createElement(e), 'c("' + e + '")' | |
}) + ");return n}")(v, t.frag) | |
} | |
function l(e) { | |
e || (e = t); | |
var i = r(e); | |
return v.shivCSS && !u && !i.hasCSS && (i.hasCSS = !! n(e, "article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")), c || a(e, i), e | |
} | |
var u, c, d = e.html5 || {}, p = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i, | |
f = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i, | |
h = "_html5shiv", | |
m = 0, | |
g = {}; | |
! function () { | |
try { | |
var e = t.createElement("a"); | |
e.innerHTML = "<xyz></xyz>", u = "hidden" in e, c = 1 == e.childNodes.length || function () { | |
t.createElement("a"); | |
var e = t.createDocumentFragment(); | |
return "undefined" == typeof e.cloneNode || "undefined" == typeof e.createDocumentFragment || "undefined" == typeof e.createElement | |
}() | |
} catch (n) { | |
u = !0, c = !0 | |
} | |
}(); | |
var v = { | |
elements: d.elements || "abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video", | |
shivCSS: d.shivCSS !== !1, | |
supportsUnknownElements: c, | |
shivMethods: d.shivMethods !== !1, | |
type: "default", | |
shivDocument: l, | |
createElement: s, | |
createDocumentFragment: o | |
}; | |
e.html5 = v, l(t) | |
}(this, t), u._version = l, u._prefixes = m, u.testStyles = k, d.className = d.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + (c ? " js " + v.join(" ") : ""), u | |
}(this, this.document), | |
function (e, t, n) { | |
function i(e) { | |
return "[object Function]" == g.call(e) | |
} | |
function r(e) { | |
return "string" == typeof e | |
} | |
function s() {} | |
function o(e) { | |
return !e || "loaded" == e || "complete" == e || "uninitialized" == e | |
} | |
function a() { | |
var e = v.shift(); | |
b = 1, e ? e.t ? h(function () { | |
("c" == e.t ? p.injectCss : p.injectJs)(e.s, 0, e.a, e.x, e.e, 1) | |
}, 0) : (e(), a()) : b = 0 | |
} | |
function l(e, n, i, r, s, l, u) { | |
function c(t) { | |
if (!f && o(d.readyState) && (k.r = f = 1, !b && a(), d.onload = d.onreadystatechange = null, t)) { | |
"img" != e && h(function () { | |
w.removeChild(d) | |
}, 50); | |
for (var i in I[n]) I[n].hasOwnProperty(i) && I[n][i].onload() | |
} | |
} | |
var u = u || p.errorTimeout, | |
d = t.createElement(e), | |
f = 0, | |
g = 0, | |
k = { | |
t: i, | |
s: n, | |
e: s, | |
a: l, | |
x: u | |
}; | |
1 === I[n] && (g = 1, I[n] = []), "object" == e ? d.data = n : (d.src = n, d.type = e), d.width = d.height = "0", d.onerror = d.onload = d.onreadystatechange = function () { | |
c.call(this, g) | |
}, v.splice(r, 0, k), "img" != e && (g || 2 === I[n] ? (w.insertBefore(d, y ? null : m), h(c, u)) : I[n].push(d)) | |
} | |
function u(e, t, n, i, s) { | |
return b = 0, t = t || "j", r(e) ? l("c" == t ? S : T, e, t, this.i++, n, i, s) : (v.splice(this.i++, 0, e), 1 == v.length && a()), this | |
} | |
function c() { | |
var e = p; | |
return e.loader = { | |
load: u, | |
i: 0 | |
}, e | |
} | |
var d, p, f = t.documentElement, | |
h = e.setTimeout, | |
m = t.getElementsByTagName("script")[0], | |
g = {}.toString, | |
v = [], | |
b = 0, | |
k = "MozAppearance" in f.style, | |
y = k && !! t.createRange().compareNode, | |
w = y ? f : m.parentNode, | |
f = e.opera && "[object Opera]" == g.call(e.opera), | |
f = !! t.attachEvent && !f, | |
T = k ? "object" : f ? "script" : "img", | |
S = f ? "script" : T, | |
x = Array.isArray || function (e) { | |
return "[object Array]" == g.call(e) | |
}, E = [], | |
I = {}, C = { | |
timeout: function (e, t) { | |
return t.length && (e.timeout = t[0]), e | |
} | |
}; | |
p = function (e) { | |
function t(e) { | |
var t, n, i, e = e.split("!"), | |
r = E.length, | |
s = e.pop(), | |
o = e.length, | |
s = { | |
url: s, | |
origUrl: s, | |
prefixes: e | |
}; | |
for (n = 0; o > n; n++) i = e[n].split("="), (t = C[i.shift()]) && (s = t(s, i)); | |
for (n = 0; r > n; n++) s = E[n](s); | |
return s | |
} | |
function o(e, r, s, o, a) { | |
var l = t(e), | |
u = l.autoCallback; | |
l.url.split(".").pop().split("?").shift(), l.bypass || (r && (r = i(r) ? r : r[e] || r[o] || r[e.split("/").pop().split("?")[0]]), l.instead ? l.instead(e, r, s, o, a) : (I[l.url] ? l.noexec = !0 : I[l.url] = 1, s.load(l.url, l.forceCSS || !l.forceJS && "css" == l.url.split(".").pop().split("?").shift() ? "c" : n, l.noexec, l.attrs, l.timeout), (i(r) || i(u)) && s.load(function () { | |
c(), r && r(l.origUrl, a, o), u && u(l.origUrl, a, o), I[l.url] = 2 | |
}))) | |
} | |
function a(e, t) { | |
function n(e, n) { | |
if (e) { | |
if (r(e)) n || (d = function () { | |
var e = [].slice.call(arguments); | |
p.apply(this, e), f() | |
}), o(e, d, t, 0, u); | |
else if (Object(e) === e) | |
for (l in a = function () { | |
var t, n = 0; | |
for (t in e) e.hasOwnProperty(t) && n++; | |
return n | |
}(), e) e.hasOwnProperty(l) && (!n && !--a && (i(d) ? d = function () { | |
var e = [].slice.call(arguments); | |
p.apply(this, e), f() | |
} : d[l] = function (e) { | |
return function () { | |
var t = [].slice.call(arguments); | |
e && e.apply(this, t), f() | |
} | |
}(p[l])), o(e[l], d, t, l, u)) | |
} else !n && f() | |
} | |
var a, l, u = !! e.test, | |
c = e.load || e.both, | |
d = e.callback || s, | |
p = d, | |
f = e.complete || s; | |
n(u ? e.yep : e.nope, !! c), c && n(c) | |
} | |
var l, u, d = this.yepnope.loader; | |
if (r(e)) o(e, 0, d, 0); | |
else if (x(e)) | |
for (l = 0; l < e.length; l++) u = e[l], r(u) ? o(u, 0, d, 0) : x(u) ? p(u) : Object(u) === u && a(u, d); | |
else Object(e) === e && a(e, d) | |
}, p.addPrefix = function (e, t) { | |
C[e] = t | |
}, p.addFilter = function (e) { | |
E.push(e) | |
}, p.errorTimeout = 1e4, null == t.readyState && t.addEventListener && (t.readyState = "loading", t.addEventListener("DOMContentLoaded", d = function () { | |
t.removeEventListener("DOMContentLoaded", d, 0), t.readyState = "complete" | |
}, 0)), e.yepnope = c(), e.yepnope.executeStack = a, e.yepnope.injectJs = function (e, n, i, r, l, u) { | |
var c, d, f = t.createElement("script"), | |
r = r || p.errorTimeout; | |
f.src = e; | |
for (d in i) f.setAttribute(d, i[d]); | |
n = u ? a : n || s, f.onreadystatechange = f.onload = function () { | |
!c && o(f.readyState) && (c = 1, n(), f.onload = f.onreadystatechange = null) | |
}, h(function () { | |
c || (c = 1, n(1)) | |
}, r), l ? f.onload() : m.parentNode.insertBefore(f, m) | |
}, e.yepnope.injectCss = function (e, n, i, r, o, l) { | |
var u, r = t.createElement("link"), | |
n = l ? a : n || s; | |
r.href = e, r.rel = "stylesheet", r.type = "text/css"; | |
for (u in i) r.setAttribute(u, i[u]); | |
o || (m.parentNode.insertBefore(r, m), h(n, 0)) | |
} | |
}(this, document), Modernizr.load = function () { | |
yepnope.apply(window, [].slice.call(arguments, 0)) | |
}, window.Modernizr = function (e, t, n) { | |
function i(e) { | |
h.cssText = e | |
} | |
function r(e, t) { | |
return typeof e === t | |
} | |
var s, o, a, l = "2.7.1", | |
u = {}, c = !0, | |
d = t.documentElement, | |
p = "modernizr", | |
f = t.createElement(p), | |
h = f.style, | |
m = ({}.toString, " -webkit- -moz- -o- -ms- ".split(" ")), | |
g = {}, v = [], | |
b = v.slice, | |
k = function (e, n, i, r) { | |
var s, o, a, l, u = t.createElement("div"), | |
c = t.body, | |
f = c || t.createElement("body"); | |
if (parseInt(i, 10)) | |
for (; i--;) a = t.createElement("div"), a.id = r ? r[i] : p + (i + 1), u.appendChild(a); | |
return s = ["­", '<style id="s', p, '">', e, "</style>"].join(""), u.id = p, (c ? u : f).innerHTML += s, f.appendChild(u), c || (f.style.background = "", f.style.overflow = "hidden", l = d.style.overflow, d.style.overflow = "hidden", d.appendChild(f)), o = n(u, e), c ? u.parentNode.removeChild(u) : (f.parentNode.removeChild(f), d.style.overflow = l), !! o | |
}, y = {}.hasOwnProperty; | |
a = r(y, "undefined") || r(y.call, "undefined") ? function (e, t) { | |
return t in e && r(e.constructor.prototype[t], "undefined") | |
} : function (e, t) { | |
return y.call(e, t) | |
}, Function.prototype.bind || (Function.prototype.bind = function (e) { | |
var t = this; | |
if ("function" != typeof t) throw new TypeError; | |
var n = b.call(arguments, 1), | |
i = function () { | |
if (this instanceof i) { | |
var r = function () {}; | |
r.prototype = t.prototype; | |
var s = new r, | |
o = t.apply(s, n.concat(b.call(arguments))); | |
return Object(o) === o ? o : s | |
} | |
return t.apply(e, n.concat(b.call(arguments))) | |
}; | |
return i | |
}), g.touch = function () { | |
var n; | |
return "ontouchstart" in e || e.DocumentTouch && t instanceof DocumentTouch ? n = !0 : k(["@media (", m.join("touch-enabled),("), p, ")", "{#modernizr{top:9px;position:absolute}}"].join(""), function (e) { | |
n = 9 === e.offsetTop | |
}), n | |
}, g.video = function () { | |
var e = t.createElement("video"), | |
n = !1; | |
try { | |
(n = !! e.canPlayType) && (n = new Boolean(n), n.ogg = e.canPlayType('video/ogg; codecs="theora"').replace(/^no$/, ""), n.h264 = e.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, ""), n.webm = e.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/, "")) | |
} catch (i) {} | |
return n | |
}; | |
for (var w in g) a(g, w) && (o = w.toLowerCase(), u[o] = g[w](), v.push((u[o] ? "" : "no-") + o)); | |
return u.addTest = function (e, t) { | |
if ("object" == typeof e) | |
for (var i in e) a(e, i) && u.addTest(i, e[i]); | |
else { | |
if (e = e.toLowerCase(), u[e] !== n) return u; | |
t = "function" == typeof t ? t() : t, "undefined" != typeof c && c && (d.className += " w-mod-" + (t ? "" : "no-") + e), u[e] = t | |
} | |
return u | |
}, i(""), f = s = null, | |
function (e, t) { | |
function n(e, t) { | |
var n = e.createElement("p"), | |
i = e.getElementsByTagName("head")[0] || e.documentElement; | |
return n.innerHTML = "x<style>" + t + "</style>", i.insertBefore(n.lastChild, i.firstChild) | |
} | |
function i() { | |
var e = b.elements; | |
return "string" == typeof e ? e.split(" ") : e | |
} | |
function r(e) { | |
var t = v[e[m]]; | |
return t || (t = {}, g++, e[m] = g, v[g] = t), t | |
} | |
function s(e, n, i) { | |
if (n || (n = t), c) return n.createElement(e); | |
i || (i = r(n)); | |
var s; | |
return s = i.cache[e] ? i.cache[e].cloneNode() : h.test(e) ? (i.cache[e] = i.createElem(e)).cloneNode() : i.createElem(e), !s.canHaveChildren || f.test(e) || s.tagUrn ? s : i.frag.appendChild(s) | |
} | |
function o(e, n) { | |
if (e || (e = t), c) return e.createDocumentFragment(); | |
n = n || r(e); | |
for (var s = n.frag.cloneNode(), o = 0, a = i(), l = a.length; l > o; o++) s.createElement(a[o]); | |
return s | |
} | |
function a(e, t) { | |
t.cache || (t.cache = {}, t.createElem = e.createElement, t.createFrag = e.createDocumentFragment, t.frag = t.createFrag()), e.createElement = function (n) { | |
return b.shivMethods ? s(n, e, t) : t.createElem(n) | |
}, e.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + i().join().replace(/[\w\-]+/g, function (e) { | |
return t.createElem(e), t.frag.createElement(e), 'c("' + e + '")' | |
}) + ");return n}")(b, t.frag) | |
} | |
function l(e) { | |
e || (e = t); | |
var i = r(e); | |
return b.shivCSS && !u && !i.hasCSS && (i.hasCSS = !! n(e, "article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")), c || a(e, i), e | |
} | |
var u, c, d = "3.7.0", | |
p = e.html5 || {}, f = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i, | |
h = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i, | |
m = "_html5shiv", | |
g = 0, | |
v = {}; | |
! function () { | |
try { | |
var e = t.createElement("a"); | |
e.innerHTML = "<xyz></xyz>", u = "hidden" in e, c = 1 == e.childNodes.length || function () { | |
t.createElement("a"); | |
var e = t.createDocumentFragment(); | |
return "undefined" == typeof e.cloneNode || "undefined" == typeof e.createDocumentFragment || "undefined" == typeof e.createElement | |
}() | |
} catch (n) { | |
u = !0, c = !0 | |
} | |
}(); | |
var b = { | |
elements: p.elements || "abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video", | |
version: d, | |
shivCSS: p.shivCSS !== !1, | |
supportsUnknownElements: c, | |
shivMethods: p.shivMethods !== !1, | |
type: "default", | |
shivDocument: l, | |
createElement: s, | |
createDocumentFragment: o | |
}; | |
e.html5 = b, l(t) | |
}(this, t), u._version = l, u._prefixes = m, u.testStyles = k, d.className = d.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + (c ? " w-mod-js w-mod-" + v.join(" w-mod-") : ""), u | |
}(this, this.document); | |
for (var langs = [ | |
["Afrikaans", ["af-ZA"]], | |
["Bahasa Indonesia", ["id-ID"]], | |
["Bahasa Melayu", ["ms-MY"]], | |
["Catal\xe0", ["ca-ES"]], | |
["\u010ce\u0161tina", ["cs-CZ"]], | |
["Deutsch", ["de-DE"]], | |
["English", ["en-AU", "Australia"], | |
["en-CA", "Canada"], | |
["en-IN", "India"], | |
["en-NZ", "New Zealand"], | |
["en-ZA", "South Africa"], | |
["en-GB", "United Kingdom"], | |
["en-US", "United States"] | |
], | |
["Espa\xf1ol", ["es-AR", "Argentina"], | |
["es-BO", "Bolivia"], | |
["es-CL", "Chile"], | |
["es-CO", "Colombia"], | |
["es-CR", "Costa Rica"], | |
["es-EC", "Ecuador"], | |
["es-SV", "El Salvador"], | |
["es-ES", "Espa\xf1a"], | |
["es-US", "Estados Unidos"], | |
["es-GT", "Guatemala"], | |
["es-HN", "Honduras"], | |
["es-MX", "M\xe9xico"], | |
["es-NI", "Nicaragua"], | |
["es-PA", "Panam\xe1"], | |
["es-PY", "Paraguay"], | |
["es-PE", "Per\xfa"], | |
["es-PR", "Puerto Rico"], | |
["es-DO", "Rep\xfablica Dominicana"], | |
["es-UY", "Uruguay"], | |
["es-VE", "Venezuela"] | |
], | |
["Euskara", ["eu-ES"]], | |
["Fran\xe7ais", ["fr-FR"]], | |
["Galego", ["gl-ES"]], | |
["Hrvatski", ["hr_HR"]], | |
["IsiZulu", ["zu-ZA"]], | |
["\xcdslenska", ["is-IS"]], | |
["Italiano", ["it-IT", "Italia"], | |
["it-CH", "Svizzera"] | |
], | |
["Magyar", ["hu-HU"]], | |
["Nederlands", ["nl-NL"]], | |
["Norsk bokm\xe5l", ["nb-NO"]], | |
["Polski", ["pl-PL"]], | |
["Portugu\xeas", ["pt-BR", "Brasil"], | |
["pt-PT", "Portugal"] | |
], | |
["Rom\xe2n\u0103", ["ro-RO"]], | |
["Sloven\u010dina", ["sk-SK"]], | |
["Suomi", ["fi-FI"]], | |
["Svenska", ["sv-SE"]], | |
["T\xfcrk\xe7e", ["tr-TR"]], | |
["\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438", ["bg-BG"]], | |
["P\u0443\u0441\u0441\u043a\u0438\u0439", ["ru-RU"]], | |
["\u0421\u0440\u043f\u0441\u043a\u0438", ["sr-RS"]], | |
["\ud55c\uad6d\uc5b4", ["ko-KR"]], | |
["\u4e2d\u6587", ["cmn-Hans-CN", "\u666e\u901a\u8bdd (\u4e2d\u56fd\u5927\u9646)"], | |
["cmn-Hans-HK", "\u666e\u901a\u8bdd (\u9999\u6e2f)"], | |
["cmn-Hant-TW", "\u4e2d\u6587 (\u53f0\u7063)"], | |
["yue-Hant-HK", "\u7cb5\u8a9e (\u9999\u6e2f)"] | |
], | |
["\u65e5\u672c\u8a9e", ["ja-JP"]], | |
["Lingua lat\u012bna", ["la"]] | |
], i = 0; i < langs.length; i++) select_language.options[i] = new Option(langs[i][0], i); | |
select_language.selectedIndex = 6, updateCountry(), select_dialect.selectedIndex = 6, showInfo("info_start"); | |
var create_email = !1, | |
final_transcript = "", | |
counter = 0, | |
all_text = "", | |
four_sentences = "", | |
recognizing = !1, | |
fileselected = !1, | |
ignore_onend, start_timestamp, prevTopics = []; | |
if ("webkitSpeechRecognition" in window) { | |
start_button.style.display = "inline-block"; | |
var recognition = new webkitSpeechRecognition; | |
recognition.continuous = !0, recognition.interimResults = !0, recognition.onstart = function () { | |
recognizing = !0, showInfo("info_speak_now"), start_img.src = "https://www.google.com/intl/en/chrome/assets/common/images/content/mic-animate.gif" | |
}, recognition.onerror = function (e) { | |
"no-speech" == e.error && (start_img.src = "https://www.google.com/intl/en/chrome/assets/common/images/content/mic.gif", showInfo("info_no_speech"), ignore_onend = !0), "audio-capture" == e.error && (start_img.src = "https://www.google.com/intl/en/chrome/assets/common/images/content/mic.gif", showInfo("info_no_microphone"), ignore_onend = !0), "not-allowed" == e.error && (showInfo(e.timeStamp - start_timestamp < 100 ? "info_blocked" : "info_denied"), ignore_onend = !0) | |
}, recognition.onend = function () { | |
if (recognizing = !1, !ignore_onend) { | |
if (start_img.src = "https://www.google.com/intl/en/chrome/assets/common/images/content/mic.gif", !final_transcript) return void showInfo("info_start"); | |
if (showInfo(""), window.getSelection) { | |
window.getSelection().removeAllRanges(); | |
var e = document.createRange(); | |
e.selectNode(document.getElementById("final_span")), window.getSelection().addRange(e) | |
} | |
create_email && (create_email = !1, createEmail()) | |
} | |
}, recognition.onresult = function (e) { | |
var t = ""; | |
final_transcript = ""; | |
var n; | |
if ("undefined" == typeof e.results) return recognition.onend = null, recognition.stop(), void upgrade(); | |
for (var i = e.resultIndex; i < e.results.length; ++i) e.results[i].isFinal ? (console.log(e.results[i][0].confidence + "for : " + e.results[i][0]), n = e.results[i][0].confidence > .75 ? "rgb(" + Math.round(150 - 600 * (e.results[i][0].confidence - .75)) + ",255," + Math.round(150 - 600 * (e.results[i][0].confidence - .75)) + ")" : "rgb(255, " + Math.round(200 * e.results[i][0].confidence) + "," + Math.round(200 * e.results[i][0].confidence) + ")", final_transcript += e.results[i][0].transcript) : t += e.results[i][0].transcript; | |
final_transcript = capitalize(final_transcript), final_transcript && (counter++, four_sentences += final_transcript, all_text += final_transcript, counter % 4 == 0 && (counter = 0, $.ajax({ | |
type: "GET", | |
crossDomain: !0, | |
dataType: "jsonp", | |
jsonp: "jsonp", | |
url: "http://access.alchemyapi.com/calls/text/TextGetRankedConcepts", | |
success: function (e) { | |
console.log(e), e.concepts.length > 0 && e.concepts[0].relevance > .75 && (final_span.innerHTML += "<li class='floatleft' style='color:blue;'>" + e.concepts[0].text + "</li>", inkblob && writefile(all_text)), four_sentences = "", temp = $("#final_temp"), final_span.innerHTML += temp[0].innerHTML, inkblob && writefile(all_text), temp[0].innerHTML = "" | |
}, | |
data: { | |
outputMode: "json", | |
text: four_sentences, | |
apikey: "12c03efad5071dc17762332480c35cf703a3315b" | |
} | |
})), final_temp.innerHTML += "<li style='color:" + n + ";' class='bullet-point'>" + linebreak(final_transcript) + "</li>", $(".bullet-point").hover(function () { | |
$(this).css("color", "black") | |
})), interim_span.innerHTML = linebreak(t), (final_transcript || t) && showButtons("inline-block") | |
} | |
} else upgrade(); | |
var two_line = /\n\n/g, | |
one_line = /\n/g, | |
first_char = /\S/, | |
current_style; | |
(function () {}).call(this); | |
var Webflow = { | |
w: Webflow | |
}; | |
Webflow.init = function () { | |
"use strict"; | |
function e(e, t) { | |
var n = [], | |
i = {}; | |
return i.up = l.throttle(function (e) { | |
l.each(n, function (t) { | |
t(e) | |
}) | |
}), e.on(t, i.up), i.on = function (e) { | |
"function" == typeof e && (l.contains(n, e) || n.push(e)) | |
}, i.off = function (e) { | |
n = l.filter(n, function (t) { | |
return t !== e | |
}) | |
}, i | |
} | |
function t() { | |
var e = {}; | |
e.VERSION = "1.5.2-Webflow"; | |
var t = {}, n = Array.prototype, | |
i = Object.prototype, | |
r = Function.prototype, | |
s = (n.push, n.slice), | |
o = (n.concat, i.toString, i.hasOwnProperty), | |
a = n.forEach, | |
l = n.map, | |
u = (n.reduce, n.reduceRight, n.filter), | |
c = (n.every, n.some), | |
d = n.indexOf, | |
p = (n.lastIndexOf, Array.isArray, Object.keys), | |
f = (r.bind, e.each = e.forEach = function (n, i, r) { | |
if (null != n) | |
if (a && n.forEach === a) n.forEach(i, r); | |
else if (n.length === +n.length) { | |
for (var s = 0, o = n.length; o > s; s++) | |
if (i.call(r, n[s], s, n) === t) return | |
} else | |
for (var l = e.keys(n), s = 0, o = l.length; o > s; s++) | |
if (i.call(r, n[l[s]], l[s], n) === t) return | |
}); | |
e.map = e.collect = function (e, t, n) { | |
var i = []; | |
return null == e ? i : l && e.map === l ? e.map(t, n) : (f(e, function (e, r, s) { | |
i.push(t.call(n, e, r, s)) | |
}), i) | |
}, e.filter = e.select = function (e, t, n) { | |
var i = []; | |
return null == e ? i : u && e.filter === u ? e.filter(t, n) : (f(e, function (e, r, s) { | |
t.call(n, e, r, s) && i.push(e) | |
}), i) | |
}; | |
var h = e.some = e.any = function (n, i, r) { | |
i || (i = e.identity); | |
var s = !1; | |
return null == n ? s : c && n.some === c ? n.some(i, r) : (f(n, function (e, n, o) { | |
return s || (s = i.call(r, e, n, o)) ? t : void 0 | |
}), !! s) | |
}; | |
return e.contains = e.include = function (e, t) { | |
return null == e ? !1 : d && e.indexOf === d ? -1 != e.indexOf(t) : h(e, function (e) { | |
return e === t | |
}) | |
}, e.delay = function (e, t) { | |
var n = s.call(arguments, 2); | |
return setTimeout(function () { | |
return e.apply(null, n) | |
}, t) | |
}, e.defer = function (t) { | |
return e.delay.apply(e, [t, 1].concat(s.call(arguments, 1))) | |
}, e.throttle = function (e) { | |
var t, n, i; | |
return function () { | |
t || (t = !0, n = arguments, i = this, window.tram.frame(function () { | |
t = !1, e.apply(i, n) | |
})) | |
} | |
}, e.debounce = function (e, t, n) { | |
var i, r, s, o, a; | |
return function () { | |
s = this, r = arguments, o = new Date; | |
var l = function () { | |
var u = new Date - o; | |
t > u ? i = setTimeout(l, t - u) : (i = null, n || (a = e.apply(s, r))) | |
}, u = n && !i; | |
return i || (i = setTimeout(l, t)), u && (a = e.apply(s, r)), a | |
} | |
}, e.keys = p || function (t) { | |
if (t !== Object(t)) throw new TypeError("Invalid object"); | |
var n = []; | |
for (var i in t) e.has(t, i) && n.push(i); | |
return n | |
}, e.has = function (e, t) { | |
return o.call(e, t) | |
}, e | |
} | |
var n = window.$, | |
i = {}, r = {}, s = [], | |
o = this.w || [], | |
a = n(window), | |
l = i._ = t(), | |
u = !1; | |
i.define = function (e, t) { | |
var o = r[e] = t(n, l); | |
o && (i.env() && (n.isFunction(o.design) && window.addEventListener("__wf_design", o.design), n.isFunction(o.preview) && window.addEventListener("__wf_preview", o.preview)), o.ready && n.isFunction(o.ready) && (u ? o.ready() : s.push(o.ready))) | |
}, i.require = function (e) { | |
return r[e] | |
}, i.push = function (e) { | |
return u ? void(n.isFunction(e) && e()) : void o.push(e) | |
}, i.env = function (e) { | |
var t = window.__wf_design, | |
n = "undefined" != typeof t; | |
return e ? "design" == e ? n && t : "preview" == e ? n && !t : "slug" == e ? n && window.__wf_slug : void 0 : n | |
}; | |
var c = navigator.userAgent; | |
i.env.touch = "ontouchstart" in window || window.DocumentTouch && document instanceof window.DocumentTouch, i.env.chrome = /chrome|crios/i.test(c), i.script = function (e) { | |
var t = document, | |
n = t.createElement("script"); | |
n.type = "text/javascript", n.src = e, t.getElementsByTagName("head")[0].appendChild(n) | |
}; | |
var d = "resize.webflow orientationchange.webflow load.webflow", | |
p = "scroll.webflow " + d; | |
if (i.resize = e(a, d), i.scroll = e(a, p), i.location = function (e) { | |
window.location = e | |
}, i.env()) { | |
var f = window.Event, | |
h = new f("__wf_redraw"); | |
n.fn.redraw = function () { | |
return this.each(function () { | |
this.dispatchEvent(h) | |
}) | |
}, i.location = function (e) { | |
window.dispatchEvent(new CustomEvent("__wf_location", { | |
detail: e | |
})) | |
} | |
} | |
n(function () { | |
u = !0, n.each(s.concat(o), function (e, t) { | |
n.isFunction(t) && t() | |
}), i.resize.up() | |
}), Webflow = i | |
}, window.tram = function (e) { | |
function t(e, t) { | |
var n = new O.Bare; | |
return n.init(e, t) | |
} | |
function n(e) { | |
return e.replace(/[A-Z]/g, function (e) { | |
return "-" + e.toLowerCase() | |
}) | |
} | |
function i(e) { | |
var t = parseInt(e.slice(1), 16), | |
n = 255 & t >> 16, | |
i = 255 & t >> 8, | |
r = 255 & t; | |
return [n, i, r] | |
} | |
function r(e, t, n) { | |
return "#" + (1 << 24 | e << 16 | t << 8 | n).toString(16).slice(1) | |
} | |
function s() {} | |
function o(e, t) { | |
K("Type warning: Expected: [" + e + "] Got: [" + typeof t + "] " + t) | |
} | |
function a(e, t, n) { | |
K("Units do not match [" + e + "]: " + t + ", " + n) | |
} | |
function l(e, t, n) { | |
if (void 0 !== t && (n = t), void 0 === e) return n; | |
var i = n; | |
return J.test(e) || !G.test(e) ? i = parseInt(e, 10) : G.test(e) && (i = 1e3 * parseFloat(e)), 0 > i && (i = 0), i === i ? i : n | |
} | |
function u(e) { | |
for (var t = -1, n = e ? e.length : 0, i = []; n > ++t;) { | |
var r = e[t]; | |
r && i.push(r) | |
} | |
return i | |
} | |
var c = function (e, t, n) { | |
function i(e) { | |
return "object" == typeof e | |
} | |
function r(e) { | |
return "function" == typeof e | |
} | |
function s() {} | |
function o(a, l) { | |
function u() { | |
var e = new c; | |
return r(e.init) && e.init.apply(e, arguments), e | |
} | |
function c() {} | |
l === n && (l = a, a = Object), u.Bare = c; | |
var d, p = s[e] = a[e], | |
f = c[e] = u[e] = new s; | |
return f.constructor = u, u.mixin = function (t) { | |
return c[e] = u[e] = o(u, t)[e], u | |
}, u.open = function (e) { | |
if (d = {}, r(e) ? d = e.call(u, f, p, u, a) : i(e) && (d = e), i(d)) | |
for (var n in d) t.call(d, n) && (f[n] = d[n]); | |
return r(f.init) || (f.init = a), u | |
}, u.open(l) | |
} | |
return o | |
}("prototype", {}.hasOwnProperty), | |
d = { | |
ease: ["ease", | |
function (e, t, n, i) { | |
var r = (e /= i) * e, | |
s = r * e; | |
return t + n * (-2.75 * s * r + 11 * r * r + -15.5 * s + 8 * r + .25 * e) | |
} | |
], | |
"ease-in": ["ease-in", | |
function (e, t, n, i) { | |
var r = (e /= i) * e, | |
s = r * e; | |
return t + n * (-1 * s * r + 3 * r * r + -3 * s + 2 * r) | |
} | |
], | |
"ease-out": ["ease-out", | |
function (e, t, n, i) { | |
var r = (e /= i) * e, | |
s = r * e; | |
return t + n * (.3 * s * r + -1.6 * r * r + 2.2 * s + -1.8 * r + 1.9 * e) | |
} | |
], | |
"ease-in-out": ["ease-in-out", | |
function (e, t, n, i) { | |
var r = (e /= i) * e, | |
s = r * e; | |
return t + n * (2 * s * r + -5 * r * r + 2 * s + 2 * r) | |
} | |
], | |
linear: ["linear", | |
function (e, t, n, i) { | |
return n * e / i + t | |
} | |
], | |
"ease-in-quad": ["cubic-bezier(0.550, 0.085, 0.680, 0.530)", | |
function (e, t, n, i) { | |
return n * (e /= i) * e + t | |
} | |
], | |
"ease-out-quad": ["cubic-bezier(0.250, 0.460, 0.450, 0.940)", | |
function (e, t, n, i) { | |
return -n * (e /= i) * (e - 2) + t | |
} | |
], | |
"ease-in-out-quad": ["cubic-bezier(0.455, 0.030, 0.515, 0.955)", | |
function (e, t, n, i) { | |
return 1 > (e /= i / 2) ? n / 2 * e * e + t : -n / 2 * (--e * (e - 2) - 1) + t | |
} | |
], | |
"ease-in-cubic": ["cubic-bezier(0.550, 0.055, 0.675, 0.190)", | |
function (e, t, n, i) { | |
return n * (e /= i) * e * e + t | |
} | |
], | |
"ease-out-cubic": ["cubic-bezier(0.215, 0.610, 0.355, 1)", | |
function (e, t, n, i) { | |
return n * ((e = e / i - 1) * e * e + 1) + t | |
} | |
], | |
"ease-in-out-cubic": ["cubic-bezier(0.645, 0.045, 0.355, 1)", | |
function (e, t, n, i) { | |
return 1 > (e /= i / 2) ? n / 2 * e * e * e + t : n / 2 * ((e -= 2) * e * e + 2) + t | |
} | |
], | |
"ease-in-quart": ["cubic-bezier(0.895, 0.030, 0.685, 0.220)", | |
function (e, t, n, i) { | |
return n * (e /= i) * e * e * e + t | |
} | |
], | |
"ease-out-quart": ["cubic-bezier(0.165, 0.840, 0.440, 1)", | |
function (e, t, n, i) { | |
return -n * ((e = e / i - 1) * e * e * e - 1) + t | |
} | |
], | |
"ease-in-out-quart": ["cubic-bezier(0.770, 0, 0.175, 1)", | |
function (e, t, n, i) { | |
return 1 > (e /= i / 2) ? n / 2 * e * e * e * e + t : -n / 2 * ((e -= 2) * e * e * e - 2) + t | |
} | |
], | |
"ease-in-quint": ["cubic-bezier(0.755, 0.050, 0.855, 0.060)", | |
function (e, t, n, i) { | |
return n * (e /= i) * e * e * e * e + t | |
} | |
], | |
"ease-out-quint": ["cubic-bezier(0.230, 1, 0.320, 1)", | |
function (e, t, n, i) { | |
return n * ((e = e / i - 1) * e * e * e * e + 1) + t | |
} | |
], | |
"ease-in-out-quint": ["cubic-bezier(0.860, 0, 0.070, 1)", | |
function (e, t, n, i) { | |
return 1 > (e /= i / 2) ? n / 2 * e * e * e * e * e + t : n / 2 * ((e -= 2) * e * e * e * e + 2) + t | |
} | |
], | |
"ease-in-sine": ["cubic-bezier(0.470, 0, 0.745, 0.715)", | |
function (e, t, n, i) { | |
return -n * Math.cos(e / i * (Math.PI / 2)) + n + t | |
} | |
], | |
"ease-out-sine": ["cubic-bezier(0.390, 0.575, 0.565, 1)", | |
function (e, t, n, i) { | |
return n * Math.sin(e / i * (Math.PI / 2)) + t | |
} | |
], | |
"ease-in-out-sine": ["cubic-bezier(0.445, 0.050, 0.550, 0.950)", | |
function (e, t, n, i) { | |
return -n / 2 * (Math.cos(Math.PI * e / i) - 1) + t | |
} | |
], | |
"ease-in-expo": ["cubic-bezier(0.950, 0.050, 0.795, 0.035)", | |
function (e, t, n, i) { | |
return 0 === e ? t : n * Math.pow(2, 10 * (e / i - 1)) + t | |
} | |
], | |
"ease-out-expo": ["cubic-bezier(0.190, 1, 0.220, 1)", | |
function (e, t, n, i) { | |
return e === i ? t + n : n * (-Math.pow(2, -10 * e / i) + 1) + t | |
} | |
], | |
"ease-in-out-expo": ["cubic-bezier(1, 0, 0, 1)", | |
function (e, t, n, i) { | |
return 0 === e ? t : e === i ? t + n : 1 > (e /= i / 2) ? n / 2 * Math.pow(2, 10 * (e - 1)) + t : n / 2 * (-Math.pow(2, -10 * --e) + 2) + t | |
} | |
], | |
"ease-in-circ": ["cubic-bezier(0.600, 0.040, 0.980, 0.335)", | |
function (e, t, n, i) { | |
return -n * (Math.sqrt(1 - (e /= i) * e) - 1) + t | |
} | |
], | |
"ease-out-circ": ["cubic-bezier(0.075, 0.820, 0.165, 1)", | |
function (e, t, n, i) { | |
return n * Math.sqrt(1 - (e = e / i - 1) * e) + t | |
} | |
], | |
"ease-in-out-circ": ["cubic-bezier(0.785, 0.135, 0.150, 0.860)", | |
function (e, t, n, i) { | |
return 1 > (e /= i / 2) ? -n / 2 * (Math.sqrt(1 - e * e) - 1) + t : n / 2 * (Math.sqrt(1 - (e -= 2) * e) + 1) + t | |
} | |
], | |
"ease-in-back": ["cubic-bezier(0.600, -0.280, 0.735, 0.045)", | |
function (e, t, n, i, r) { | |
return void 0 === r && (r = 1.70158), n * (e /= i) * e * ((r + 1) * e - r) + t | |
} | |
], | |
"ease-out-back": ["cubic-bezier(0.175, 0.885, 0.320, 1.275)", | |
function (e, t, n, i, r) { | |
return void 0 === r && (r = 1.70158), n * ((e = e / i - 1) * e * ((r + 1) * e + r) + 1) + t | |
} | |
], | |
"ease-in-out-back": ["cubic-bezier(0.680, -0.550, 0.265, 1.550)", | |
function (e, t, n, i, r) { | |
return void 0 === r && (r = 1.70158), 1 > (e /= i / 2) ? n / 2 * e * e * (((r *= 1.525) + 1) * e - r) + t : n / 2 * ((e -= 2) * e * (((r *= 1.525) + 1) * e + r) + 2) + t | |
} | |
] | |
}, p = { | |
"ease-in-back": "cubic-bezier(0.600, 0, 0.735, 0.045)", | |
"ease-out-back": "cubic-bezier(0.175, 0.885, 0.320, 1)", | |
"ease-in-out-back": "cubic-bezier(0.680, 0, 0.265, 1)" | |
}, f = document, | |
h = window, | |
m = "bkwld-tram", | |
g = /[\-\.0-9]/g, | |
v = /[A-Z]/, | |
b = "number", | |
k = /^(rgb|#)/, | |
y = /(em|cm|mm|in|pt|pc|px)$/, | |
w = /(em|cm|mm|in|pt|pc|px|%)$/, | |
T = /(deg|rad|turn)$/, | |
S = "unitless", | |
x = " ", | |
E = f.createElement("a"), | |
I = ["Webkit", "Moz", "O", "ms"], | |
C = ["-webkit-", "-moz-", "-o-", "-ms-"], | |
R = function (e) { | |
if (e in E.style) return { | |
dom: e, | |
css: e | |
}; | |
var t, n, i = "", | |
r = e.split("-"); | |
for (t = 0; r.length > t; t++) i += r[t].charAt(0).toUpperCase() + r[t].slice(1); | |
for (t = 0; I.length > t; t++) | |
if (n = I[t] + i, n in E.style) return { | |
dom: n, | |
css: C[t] + e | |
} | |
}, N = t.support = { | |
bind: Function.prototype.bind, | |
transform: R("transform"), | |
transition: R("transition"), | |
backface: R("backface-visibility"), | |
timing: R("transition-timing-function") | |
}; | |
if (N.transition) { | |
var _ = N.timing.dom; | |
if (E.style[_] = d["ease-in-back"][0], !E.style[_]) | |
for (var D in p) d[D][0] = p[D] | |
} | |
var A = t.frame = function () { | |
var e = h.requestAnimationFrame || h.webkitRequestAnimationFrame || h.mozRequestAnimationFrame || h.oRequestAnimationFrame || h.msRequestAnimationFrame; | |
return e && N.bind ? e.bind(h) : function (e) { | |
h.setTimeout(e, 16) | |
} | |
}(), | |
P = t.now = function () { | |
var e = h.performance, | |
t = e && (e.now || e.webkitNow || e.msNow || e.mozNow); | |
return t && N.bind ? t.bind(e) : Date.now || function () { | |
return +new Date | |
} | |
}(), | |
L = c(function (t) { | |
function i(e, t) { | |
var n = u(("" + e).split(x)), | |
i = n[0]; | |
t = t || {}; | |
var r = Y[i]; | |
if (!r) return K("Unsupported property: " + i); | |
if (!t.weak || !this.props[i]) { | |
var s = r[0], | |
o = this.props[i]; | |
return o || (o = this.props[i] = new s.Bare), o.init(this.$el, n, r, t), o | |
} | |
} | |
function r(e, t, n) { | |
if (e) { | |
var r = typeof e; | |
if (t || (this.timer && this.timer.destroy(), this.queue = [], this.active = !1), "number" == r && t) return this.timer = new U({ | |
duration: e, | |
context: this, | |
complete: a | |
}), void(this.active = !0); | |
if ("string" == r && t) { | |
switch (e) { | |
case "hide": | |
f.call(this); | |
break; | |
case "stop": | |
c.call(this); | |
break; | |
case "redraw": | |
h.call(this); | |
break; | |
default: | |
i.call(this, e, n && n[1]) | |
} | |
return a.call(this) | |
} | |
if ("function" == r) return void e.call(this, this); | |
if ("object" == r) { | |
var s = 0; | |
g.call(this, e, function (e, t) { | |
e.span > s && (s = e.span), e.stop(), e.animate(t) | |
}, function (e) { | |
"wait" in e && (s = l(e.wait, 0)) | |
}), m.call(this), s > 0 && (this.timer = new U({ | |
duration: s, | |
context: this | |
}), this.active = !0, t && (this.timer.complete = a)); | |
var o = this, | |
u = !1, | |
d = {}; | |
A(function () { | |
g.call(o, e, function (e) { | |
e.active && (u = !0, d[e.name] = e.nextStyle) | |
}), u && o.$el.css(d) | |
}) | |
} | |
} | |
} | |
function s(e) { | |
e = l(e, 0), this.active ? this.queue.push({ | |
options: e | |
}) : (this.timer = new U({ | |
duration: e, | |
context: this, | |
complete: a | |
}), this.active = !0) | |
} | |
function o(e) { | |
return this.active ? (this.queue.push({ | |
options: e, | |
args: arguments | |
}), void(this.timer.complete = a)) : K("No active transition timer. Use start() or wait() before then().") | |
} | |
function a() { | |
if (this.timer && this.timer.destroy(), this.active = !1, this.queue.length) { | |
var e = this.queue.shift(); | |
r.call(this, e.options, !0, e.args) | |
} | |
} | |
function c(e, t) { | |
this.timer && this.timer.destroy(), this.queue = [], this.active = !1; | |
var n; | |
"string" == typeof e ? (n = {}, n[e] = 1) : n = "object" == typeof e && null != e ? e : this.props, t ? (g.call(this, n, k), m.call(this), g.call(this, n, y)) : (g.call(this, n, b), m.call(this)) | |
} | |
function d(e) { | |
c.call(this, e), g.call(this, e, w, T) | |
} | |
function p(e) { | |
"string" != typeof e && (e = "block"), this.el.style.display = e | |
} | |
function f() { | |
c.call(this), this.el.style.display = "none" | |
} | |
function h() { | |
this.el.offsetHeight | |
} | |
function m() { | |
var e, t, n = []; | |
for (e in this.props) t = this.props[e], t.active && n.push(t.string); | |
n = n.join(","), this.style !== n && (this.style = n, this.el.style[N.transition.dom] = n) | |
} | |
function g(e, t, r) { | |
var s, o, a, l, u = t !== b && t !== k && t !== y, | |
c = {}; | |
for (s in e) a = e[s], s in $ ? (c.transform || (c.transform = {}), c.transform[s] = a) : (v.test(s) && (s = n(s)), s in Y ? c[s] = a : (l || (l = {}), l[s] = a)); | |
for (s in c) { | |
if (a = c[s], o = this.props[s], !o) { | |
if (!u) continue; | |
o = i.call(this, s) | |
} | |
t.call(this, o, a) | |
} | |
r && l && r.call(this, l) | |
} | |
function b(e) { | |
e.stop() | |
} | |
function k(e) { | |
e.pause() | |
} | |
function y(e) { | |
e.stop(!0) | |
} | |
function w(e, t) { | |
e.set(t) | |
} | |
function T(e) { | |
this.$el.css(e) | |
} | |
function S(e, n) { | |
t[e] = function () { | |
return this.children ? E.call(this, n, arguments) : (this.el && n.apply(this, arguments), this) | |
} | |
} | |
function E(e, t) { | |
var n, i = this.children.length; | |
for (n = 0; i > n; n++) e.apply(this.children[n], t); | |
return this | |
} | |
t.init = function (t) { | |
this.$el = e(t), this.el = this.$el[0], this.props = {}, this.queue = [], this.style = "", this.active = !1, N.backface && B.hideBackface && q(this.el, N.backface.css, "hidden") | |
}, S("add", i), S("start", r), S("wait", s), S("then", o), S("next", a), S("stop", c), S("set", d), S("show", p), S("hide", f), S("redraw", h) | |
}), | |
O = c(L, function (t) { | |
function n(t, n) { | |
var i = e.data(t, m) || e.data(t, m, new L.Bare); | |
return i.el || i.init(t), n ? i.start(n) : i | |
} | |
t.init = function (t, i) { | |
var r = e(t); | |
if (!r.length) return this; | |
if (1 === r.length) return n(r[0], i); | |
var s = []; | |
return r.each(function (e, t) { | |
s.push(n(t, i)) | |
}), this.children = s, this | |
} | |
}), | |
j = c(function (e) { | |
function t(e, t, n) { | |
return void 0 !== t && (n = t), e in d ? e : n | |
} | |
function n(e) { | |
var t = /rgba?\((\d+),\s*(\d+),\s*(\d+)/.exec(e); | |
return (t ? r(t[1], t[2], t[3]) : e).replace(/#(\w)(\w)(\w)$/, "#$1$1$2$2$3$3") | |
} | |
var i = { | |
duration: 500, | |
ease: "ease", | |
delay: 0 | |
}; | |
e.init = function (e, n, r, s) { | |
this.$el = e, this.el = e[0]; | |
var o = n[0]; | |
r[2] && (o = r[2]), V[o] && (o = V[o]), this.name = o, this.type = r[1], this.duration = l(n[1], this.duration, i.duration), this.ease = t(n[2], this.ease, i.ease), this.delay = l(n[3], this.delay, i.delay), this.span = this.duration + this.delay, this.active = !1, this.nextStyle = null, this.unit = s.unit || this.unit || B.defaultUnit, this.angle = s.angle || this.angle || B.defaultAngle, B.fallback || s.fallback ? this.animate = this.fallback : (this.animate = this.transition, this.string = this.name + x + this.duration + "ms" + ("ease" != this.ease ? x + d[this.ease][0] : "") + (this.delay ? x + this.delay + "ms" : "")) | |
}, e.set = function (e) { | |
e = this.convert(e, this.type), this.update(e), this.redraw() | |
}, e.transition = function (e) { | |
this.active = !0, this.nextStyle = this.convert(e, this.type) | |
}, e.fallback = function (e) { | |
this.tween = new H({ | |
from: this.convert(this.get(), this.type), | |
to: this.convert(e, this.type), | |
duration: this.duration, | |
delay: this.delay, | |
ease: this.ease, | |
update: this.update, | |
context: this | |
}) | |
}, e.get = function () { | |
return X(this.el, this.name) | |
}, e.update = function (e) { | |
q(this.el, this.name, e) | |
}, e.pause = function () { | |
this.active && (this.active = !1, this.update(this.get()), this.redraw()) | |
}, e.stop = function (e) { | |
var t = this.nextStyle; | |
(this.active || t) && (this.active = !1, this.nextStyle = null, this.update(e ? t : this.get())); | |
var n = this.tween; | |
n && n.active && (e && n.render(n.start + n.delay + n.duration), n.destroy()) | |
}, e.convert = function (e, t) { | |
var i, r = "number" == typeof e, | |
s = "string" == typeof e; | |
switch (t) { | |
case b: | |
if (r) return e; | |
if (s && "" === e.replace(g, "")) return +e; | |
i = "number(unitless)"; | |
break; | |
case k: | |
if (s) { | |
if ("" === e && this.original) return this.original; | |
if (t.test(e)) return "#" == e.charAt(0) && 7 == e.length ? e : n(e) | |
} | |
i = "hex or rgb string"; | |
break; | |
case y: | |
if (r) return e + this.unit; | |
if (s && t.test(e)) return e; | |
i = "number(px) or string(unit)"; | |
break; | |
case w: | |
if (r) return e + this.unit; | |
if (s && t.test(e)) return e; | |
i = "number(px) or string(unit or %)"; | |
break; | |
case T: | |
if (r) return e + this.angle; | |
if (s && t.test(e)) return e; | |
i = "number(deg) or string(angle)"; | |
break; | |
case S: | |
if (r) return e; | |
if (s && w.test(e)) return e; | |
i = "number(unitless) or string(unit or %)" | |
} | |
return o(i, e), e | |
}, e.redraw = function () { | |
this.el.offsetHeight | |
} | |
}), | |
F = c(j, function (e, t) { | |
e.init = function () { | |
t.init.apply(this, arguments), this.original || (this.original = this.convert(this.get(), k)) | |
} | |
}), | |
M = c(j, function (e, t) { | |
e.init = function () { | |
t.init.apply(this, arguments), this.animate = this.fallback | |
}, e.get = function () { | |
return this.$el[this.name]() | |
}, e.update = function (e) { | |
this.$el[this.name](e) | |
} | |
}), | |
z = c(j, function (e, t) { | |
function n(e, t) { | |
var n, i, r, s, o; | |
for (n in e) s = $[n], r = s[0], i = s[1] || n, o = this.convert(e[n], r), t.call(this, i, o, r) | |
} | |
e.init = function () { | |
t.init.apply(this, arguments), this.current || (this.current = {}, $.perspective && B.perspective && (this.current.perspective = B.perspective, q(this.el, this.name, this.style(this.current)), this.redraw())) | |
}, e.set = function (e) { | |
n.call(this, e, function (e, t) { | |
this.current[e] = t | |
}), q(this.el, this.name, this.style(this.current)), this.redraw() | |
}, e.transition = function (e) { | |
var t = this.values(e); | |
this.tween = new W({ | |
current: this.current, | |
values: t, | |
duration: this.duration, | |
delay: this.delay, | |
ease: this.ease | |
}); | |
var n, i = {}; | |
for (n in this.current) i[n] = n in t ? t[n] : this.current[n]; | |
this.active = !0, this.nextStyle = this.style(i) | |
}, e.fallback = function (e) { | |
var t = this.values(e); | |
this.tween = new W({ | |
current: this.current, | |
values: t, | |
duration: this.duration, | |
delay: this.delay, | |
ease: this.ease, | |
update: this.update, | |
context: this | |
}) | |
}, e.update = function () { | |
q(this.el, this.name, this.style(this.current)) | |
}, e.style = function (e) { | |
var t, n = ""; | |
for (t in e) n += t + "(" + e[t] + ") "; | |
return n | |
}, e.values = function (e) { | |
var t, i = {}; | |
return n.call(this, e, function (e, n, r) { | |
i[e] = n, void 0 === this.current[e] && (t = 0, ~e.indexOf("scale") && (t = 1), this.current[e] = this.convert(t, r)) | |
}), i | |
} | |
}), | |
H = c(function (t) { | |
function n(e) { | |
1 === f.push(e) && A(o) | |
} | |
function o() { | |
var e, t, n, i = f.length; | |
if (i) | |
for (A(o), t = P(), e = i; e--;) n = f[e], n && n.render(t) | |
} | |
function l(t) { | |
var n, i = e.inArray(t, f); | |
i >= 0 && (n = f.slice(i + 1), f.length = i, n.length && (f = f.concat(n))) | |
} | |
function u(e) { | |
return Math.round(e * h) / h | |
} | |
function c(e, t, n) { | |
return r(e[0] + n * (t[0] - e[0]), e[1] + n * (t[1] - e[1]), e[2] + n * (t[2] - e[2])) | |
} | |
var p = { | |
ease: d.ease[1], | |
from: 0, | |
to: 1 | |
}; | |
t.init = function (e) { | |
this.duration = e.duration || 0, this.delay = e.delay || 0; | |
var t = e.ease || p.ease; | |
d[t] && (t = d[t][1]), "function" != typeof t && (t = p.ease), this.ease = t, this.update = e.update || s, this.complete = e.complete || s, this.context = e.context || this, this.name = e.name; | |
var n = e.from, | |
i = e.to; | |
void 0 === n && (n = p.from), void 0 === i && (i = p.to), this.unit = e.unit || "", "number" == typeof n && "number" == typeof i ? (this.begin = n, this.change = i - n) : this.format(i, n), this.value = this.begin + this.unit, this.start = P(), e.autoplay !== !1 && this.play() | |
}, t.play = function () { | |
this.active || (this.start || (this.start = P()), this.active = !0, n(this)) | |
}, t.stop = function () { | |
this.active && (this.active = !1, l(this)) | |
}, t.render = function (e) { | |
var t, n = e - this.start; | |
if (this.delay) { | |
if (this.delay >= n) return; | |
n -= this.delay | |
} | |
if (this.duration > n) { | |
var i = this.ease(n, 0, 1, this.duration); | |
return t = this.startRGB ? c(this.startRGB, this.endRGB, i) : u(this.begin + i * this.change), this.value = t + this.unit, void this.update.call(this.context, t) | |
} | |
t = this.endHex || this.begin + this.change, this.value = t + this.unit, this.update.call(this.context, t), this.complete.call(this.context), this.destroy() | |
}, t.format = function (e, t) { | |
if (t += "", e += "", "#" == e.charAt(0)) return this.startRGB = i(t), this.endRGB = i(e), this.endHex = e, this.begin = 0, void(this.change = 1); | |
if (!this.unit) { | |
var n = t.replace(g, ""), | |
r = e.replace(g, ""); | |
n !== r && a("tween", t, e), this.unit = n | |
} | |
t = parseFloat(t), e = parseFloat(e), this.begin = this.value = t, this.change = e - t | |
}, t.destroy = function () { | |
this.stop(), this.context = null, this.ease = this.update = this.complete = s | |
}; | |
var f = [], | |
h = 1e3 | |
}), | |
U = c(H, function (e) { | |
e.init = function (e) { | |
this.duration = e.duration || 0, this.complete = e.complete || s, this.context = e.context, this.play() | |
}, e.render = function (e) { | |
var t = e - this.start; | |
this.duration > t || (this.complete.call(this.context), this.destroy()) | |
} | |
}), | |
W = c(H, function (e, t) { | |
e.init = function (e) { | |
this.context = e.context, this.update = e.update, this.tweens = [], this.current = e.current; | |
var t, n; | |
for (t in e.values) n = e.values[t], this.current[t] !== n && this.tweens.push(new H({ | |
name: t, | |
from: this.current[t], | |
to: n, | |
duration: e.duration, | |
delay: e.delay, | |
ease: e.ease, | |
autoplay: !1 | |
})); | |
this.play() | |
}, e.render = function (e) { | |
var t, n, i = this.tweens.length, | |
r = !1; | |
for (t = i; t--;) n = this.tweens[t], n.ease && (n.render(e), this.current[n.name] = n.value, r = !0); | |
return r ? void(this.update && this.update.call(this.context)) : this.destroy() | |
}, e.destroy = function () { | |
if (t.destroy.call(this), this.tweens) { | |
var e, n = this.tweens.length; | |
for (e = n; e--;) this.tweens[e].destroy(); | |
this.tweens = null, this.current = null | |
} | |
} | |
}), | |
B = t.config = { | |
defaultUnit: "px", | |
defaultAngle: "deg", | |
hideBackface: !0, | |
perspective: "", | |
fallback: !N.transition, | |
agentTests: [] | |
}; | |
t.fallback = function (e) { | |
if (!N.transition) return B.fallback = !0; | |
B.agentTests.push("(" + e + ")"); | |
var t = RegExp(B.agentTests.join("|"), "i"); | |
B.fallback = t.test(navigator.userAgent) | |
}, t.fallback("6.0.[2-5] Safari"), t.tween = function (e) { | |
return new H(e) | |
}, t.delay = function (e, t, n) { | |
return new U({ | |
complete: t, | |
duration: e, | |
context: n | |
}) | |
}, e.fn.tram = function (e) { | |
return t.call(null, this, e) | |
}; | |
var q = e.style, | |
X = e.css, | |
V = { | |
transform: N.transform && N.transform.css | |
}, Y = { | |
color: [F, k], | |
background: [F, k, "background-color"], | |
"outline-color": [F, k], | |
"border-color": [F, k], | |
"border-top-color": [F, k], | |
"border-right-color": [F, k], | |
"border-bottom-color": [F, k], | |
"border-left-color": [F, k], | |
"border-width": [j, y], | |
"border-top-width": [j, y], | |
"border-right-width": [j, y], | |
"border-bottom-width": [j, y], | |
"border-left-width": [j, y], | |
"border-spacing": [j, y], | |
"letter-spacing": [j, y], | |
margin: [j, y], | |
"margin-top": [j, y], | |
"margin-right": [j, y], | |
"margin-bottom": [j, y], | |
"margin-left": [j, y], | |
padding: [j, y], | |
"padding-top": [j, y], | |
"padding-right": [j, y], | |
"padding-bottom": [j, y], | |
"padding-left": [j, y], | |
"outline-width": [j, y], | |
opacity: [j, b], | |
top: [j, w], | |
right: [j, w], | |
bottom: [j, w], | |
left: [j, w], | |
"font-size": [j, w], | |
"text-indent": [j, w], | |
"word-spacing": [j, w], | |
width: [j, w], | |
"min-width": [j, w], | |
"max-width": [j, w], | |
height: [j, w], | |
"min-height": [j, w], | |
"max-height": [j, w], | |
"line-height": [j, S], | |
"scroll-top": [M, b, "scrollTop"], | |
"scroll-left": [M, b, "scrollLeft"] | |
}, $ = {}; | |
N.transform && (Y.transform = [z], $ = { | |
x: [w, "translateX"], | |
y: [w, "translateY"], | |
rotate: [T], | |
rotateX: [T], | |
rotateY: [T], | |
scale: [b], | |
scaleX: [b], | |
scaleY: [b], | |
skew: [T], | |
skewX: [T], | |
skewY: [T] | |
}), N.transform && N.backface && ($.z = [w, "translateZ"], $.rotateZ = [T], $.scaleZ = [b], $.perspective = [y]); | |
var J = /ms/, | |
G = /s|\./, | |
K = function () { | |
var e = "warn", | |
t = window.console; | |
return t && t[e] ? function (n) { | |
t[e](n) | |
} : s | |
}(); | |
return e.tram = t | |
}(window.jQuery), | |
function (e) { | |
if (!e.support.cors && e.ajaxTransport && window.XDomainRequest) { | |
var t = /^https?:\/\//i, | |
n = /^get|post$/i, | |
i = new RegExp("^" + location.protocol, "i"), | |
r = /text\/html/i, | |
s = /\/json/i, | |
o = /\/xml/i; | |
e.ajaxTransport("* text html xml json", function (a, l) { | |
if (a.crossDomain && a.async && n.test(a.type) && t.test(a.url) && i.test(a.url)) { | |
var u = null, | |
c = (l.dataType || "").toLowerCase(); | |
return { | |
send: function (t, n) { | |
u = new XDomainRequest, /^\d+$/.test(l.timeout) && (u.timeout = l.timeout), u.ontimeout = function () { | |
n(500, "timeout") | |
}, u.onload = function () { | |
var t = "Content-Length: " + u.responseText.length + "\r\nContent-Type: " + u.contentType, | |
i = { | |
code: 200, | |
message: "success" | |
}, a = { | |
text: u.responseText | |
}; | |
try { | |
if ("html" === c || r.test(u.contentType)) a.html = u.responseText; | |
else if ("json" === c || "text" !== c && s.test(u.contentType)) try { | |
a.json = e.parseJSON(u.responseText) | |
} catch (l) { | |
i.code = 500, i.message = "parseerror" | |
} else if ("xml" === c || "text" !== c && o.test(u.contentType)) { | |
var d = new ActiveXObject("Microsoft.XMLDOM"); | |
d.async = !1; | |
try { | |
d.loadXML(u.responseText) | |
} catch (l) { | |
d = void 0 | |
} | |
if (!d || !d.documentElement || d.getElementsByTagName("parsererror").length) throw i.code = 500, i.message = "parseerror", "Invalid XML: " + u.responseText; | |
a.xml = d | |
} | |
} catch (p) { | |
throw p | |
} finally { | |
n(i.code, i.message, a, t) | |
} | |
}, u.onprogress = function () {}, u.onerror = function () { | |
n(500, "error", { | |
text: u.responseText | |
}) | |
}; | |
var i = ""; | |
l.data && (i = "string" === e.type(l.data) ? l.data : e.param(l.data)), u.open(a.type, a.url), u.send(i) | |
}, | |
abort: function () { | |
u && u.abort() | |
} | |
} | |
} | |
}) | |
} | |
}(jQuery), | |
function (e, t) { | |
"use strict"; | |
function n(e) { | |
e = "object" == typeof e ? e : t.getElementById(e), this.element = e, this.moved = !1, this.startX = 0, this.startY = 0, this.hasTouchEventOccured = !1, e.addEventListener("touchstart", this, !1), e.addEventListener("touchmove", this, !1), e.addEventListener("touchend", this, !1), e.addEventListener("touchcancel", this, !1), e.addEventListener("mousedown", this, !1), e.addEventListener("mouseup", this, !1) | |
} | |
n.prototype.start = function (e) { | |
"touchstart" === e.type && (this.hasTouchEventOccured = !0), this.moved = !1, this.startX = "touchstart" === e.type ? e.touches[0].clientX : e.clientX, this.startY = "touchstart" === e.type ? e.touches[0].clientY : e.clientY | |
}, n.prototype.move = function (e) { | |
(Math.abs(e.touches[0].clientX - this.startX) > 10 || Math.abs(e.touches[0].clientY - this.startY) > 10) && (this.moved = !0) | |
}, n.prototype.end = function (e) { | |
var n; | |
return this.hasTouchEventOccured && "mouseup" === e.type ? (e.preventDefault(), e.stopPropagation(), void(this.hasTouchEventOccured = !1)) : void(this.moved || ("undefined" != typeof t.CustomEvent ? n = new t.CustomEvent("tap", { | |
bubbles: !0, | |
cancelable: !0 | |
}) : (n = t.createEvent("Event"), n.initEvent("tap", !0, !0)), e.target.dispatchEvent(n))) | |
}, n.prototype.cancel = function () { | |
this.hasTouchEventOccured = !1, this.moved = !1, this.startX = 0, this.startY = 0 | |
}, n.prototype.destroy = function () { | |
var e = this.element; | |
e.removeEventListener("touchstart", this, !1), e.removeEventListener("touchmove", this, !1), e.removeEventListener("touchend", this, !1), e.removeEventListener("touchcancel", this, !1), e.removeEventListener("mousedown", this, !1), e.removeEventListener("mouseup", this, !1), this.element = null | |
}, n.prototype.handleEvent = function (e) { | |
switch (e.type) { | |
case "touchstart": | |
this.start(e); | |
break; | |
case "touchmove": | |
this.move(e); | |
break; | |
case "touchend": | |
this.end(e); | |
break; | |
case "touchcancel": | |
this.cancel(e); | |
break; | |
case "mousedown": | |
this.start(e); | |
break; | |
case "mouseup": | |
this.end(e) | |
} | |
}, e.Tap = n | |
}(window, document), Webflow.init(), Webflow.define("touch", function (e, t) { | |
"use strict"; | |
function n(e) { | |
i.call(this, e) | |
} | |
var i = window.Tap, | |
r = ".w-events-", | |
s = r + "tap", | |
o = !document.addEventListener; | |
e.event.special.tap = o || !Webflow.env.touch ? { | |
bindType: "click", | |
delegateType: "click" | |
} : { | |
setup: function () { | |
e.data(this, s, new i(this)) | |
}, | |
teardown: function () { | |
var t = e.data(this, s); | |
t && t.destroy && (t.destroy(), e.removeData(this, s)) | |
}, | |
add: function (e) { | |
this.addEventListener("tap", e.handler, !1) | |
}, | |
remove: function (e) { | |
this.removeEventListener("tap", e.handler, !1) | |
} | |
}, !o && Object.create && (s = r + "swipe", e.event.special.swipe = { | |
setup: function () { | |
e.data(this, s, new n(this)) | |
}, | |
teardown: function () { | |
var t = e.data(this, s); | |
t && t.destroy && (t.destroy(), e.removeData(this, s)) | |
}, | |
add: function (e) { | |
this.addEventListener("swipe", e.handler, !1) | |
}, | |
remove: function (e) { | |
this.removeEventListener("swipe", e.handler, !1) | |
} | |
}, function () { | |
var r = i.prototype, | |
s = n.prototype = Object.create(r), | |
o = Math.round(.04 * screen.width) || 20; | |
o > 40 && (o = 40), s.start = function (e) { | |
r.start.call(this, e), this.element.addEventListener("mousemove", this, !1), document.addEventListener("mouseup", this, !1), this.velocityX = 0, this.lastX = this.startX, this.enabled = !0 | |
}, s.move = t.throttle(function (e) { | |
if (this.enabled) { | |
var t = e.touches ? e.touches[0].clientX : e.clientX; | |
this.velocityX = t - this.lastX, this.lastX = t, Math.abs(this.velocityX) > o && this.end(e) | |
} | |
}), s.end = function () { | |
if (this.enabled) { | |
var t = this.velocityX; | |
this.cancel(), Math.abs(t) > o && e(this.element).triggerHandler("swipe", { | |
direction: t > 0 ? "right" : "left" | |
}) | |
} | |
}, s.destroy = function () { | |
this.cancel(), r.destroy.call(this) | |
}, s.cancel = function () { | |
this.enabled = !1, this.element.removeEventListener("mousemove", this, !1), document.removeEventListener("mouseup", this, !1), r.cancel.call(this) | |
}, s.handleEvent = function (e) { | |
return "mousemove" == e.type ? this.move(e) : void r.handleEvent.call(this, e) | |
} | |
}()) | |
}), Webflow.define("forms", function (e, t) { | |
"use strict"; | |
function n() { | |
h = e("html").attr("data-wf-site"), f = e(k + " form"), f.each(i) | |
} | |
function i(t, n) { | |
var i = e(n), | |
r = e.data(n, k); | |
r || (r = e.data(n, k, { | |
form: i | |
})), s(r); | |
var o = i.closest("div.w-form"); | |
r.done = o.find("> .w-form-done"), r.fail = o.find("> .w-form-fail"); | |
var a = r.action = i.attr("action"); | |
return r.handler = null, r.redirect = i.attr("data-redirect"), S.test(a) ? void(r.handler = c) : a ? void 0 : h ? void(r.handler = u) : void disconnected() | |
} | |
function r() { | |
g.on("submit", k + " form", function (t) { | |
var n = e.data(this, k); | |
n.handler && (n.evt = t, n.handler(n)) | |
}) | |
} | |
function s(e) { | |
var t = e.btn = e.form.find(':input[type="submit"]'); | |
e.wait = e.btn.attr("data-wait") || null, e.success = !1, t.prop("disabled", !1), e.label && t.val(e.label) | |
} | |
function o(e) { | |
var t = e.btn, | |
n = e.wait; | |
t.prop("disabled", !0), n && (e.label = t.val(), t.val(n)) | |
} | |
function a(t, n) { | |
var i = null; | |
return n = n || {}, t.find(':input:not([type="submit"])').each(function (t, r) { | |
var s = e(r), | |
o = s.attr("data-name") || s.attr("name") || "Field " + (t + 1), | |
a = s.val(); | |
"string" == typeof a && (a = e.trim(a)), n[o] = a, i = i || l(s, o, a) | |
}), i | |
} | |
function l(e, t, n) { | |
var i = null; | |
return e.attr("required") ? (n ? (y.test(t) || y.test(e.attr("type"))) && (w.test(n) || (i = "Please enter a valid email address for: " + t)) : i = "Please fill out the required field: " + t, i) : null | |
} | |
function u(t) { | |
s(t); | |
var n = t.form, | |
i = { | |
name: n.attr("data-name") || n.attr("name") || "Untitled Form", | |
source: v.href, | |
test: Webflow.env(), | |
fields: {} | |
}; | |
p(t); | |
var r = a(n, i.fields); | |
if (r) return T(r); | |
if (o(t), !h) return void d(t); | |
var l = "https://webflow.com/api/v1/form/" + h; | |
b && l.indexOf("https://webflow.com") >= 0 && (l = l.replace("https://webflow.com/", "http://data.webflow.com/")), e.ajax({ | |
url: l, | |
type: "POST", | |
data: i, | |
dataType: "json", | |
crossDomain: !0 | |
}).done(function () { | |
t.success = !0, d(t) | |
}).fail(function () { | |
d(t) | |
}) | |
} | |
function c(n) { | |
s(n); | |
var i = n.form, | |
r = {}; | |
if (/^https/.test(v.href) && !/^https/.test(n.action)) return void i.attr("method", "post"); | |
p(n); | |
var l = a(i, r); | |
if (l) return T(l); | |
o(n); | |
var u; | |
t.each(r, function (e, t) { | |
y.test(t) && (r.EMAIL = e), /^(name|full(\-)?name)$/i.test(t) && (u = e), /^(first(\-)?name)$/i.test(t) && (r.FNAME = e), /^(last(\-)?name)$/i.test(t) && (r.LNAME = e) | |
}), u && !r.FNAME && (u = u.split(" "), r.FNAME = u[0], r.LNAME = r.LNAME || u[1]); | |
var c = n.action.replace("/post?", "/post-json?") + "&c=?", | |
f = c.indexOf("u=") + 2; | |
f = c.substring(f, c.indexOf("&", f)); | |
var h = c.indexOf("id=") + 3; | |
h = c.substring(h, c.indexOf("&", h)), r["b_" + f + "_" + h] = "", e.ajax({ | |
url: c, | |
data: r, | |
dataType: "jsonp" | |
}).done(function (e) { | |
n.success = "success" == e.result || /already/.test(e.msg), n.success || console.info("MailChimp error: " + e.msg), d(n) | |
}).fail(function () { | |
d(n) | |
}) | |
} | |
function d(e) { | |
var t = e.form, | |
n = (t.closest("div.w-form"), e.redirect), | |
i = e.success; | |
return i && n ? void Webflow.location(n) : (e.done.toggle(i), e.fail.toggle(!i), t.toggle(!i), void s(e)) | |
} | |
function p(e) { | |
e.evt && e.evt.preventDefault(), e.evt = null | |
} | |
var f, h, m = {}, g = e(document), | |
v = window.location, | |
b = window.XDomainRequest && !window.atob, | |
k = ".w-form", | |
y = /e(\-)?mail/i, | |
w = /^\S+@\S+$/, | |
T = window.alert, | |
S = /list-manage[1-9]?.com/i; | |
return m.ready = function () { | |
n(), r && r(), r = null | |
}, m.preview = m.design = function () { | |
n() | |
}, m | |
}), Webflow.define("maps", function (e, t) { | |
"use strict"; | |
function n() { | |
l.length && l.redraw() | |
} | |
function i() { | |
l = c.find(d), l.length && (Webflow.script("https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&callback=_wf_maps_loaded"), window._wf_maps_loaded = function () { | |
window._wf_maps_loaded = function () {}, a = window.google, l.each(r), Webflow.resize.on(function () { | |
l.each(s) | |
}) | |
}) | |
} | |
function r(t, n) { | |
var i = e(n).data(); | |
o(n, i) | |
} | |
function s(e, t) { | |
var n = o(t); | |
a.maps.event.trigger(n.map, "resize"), n.setMapPosition() | |
} | |
function o(t, n) { | |
var i = e.data(t, p); | |
if (i) return i; | |
var r = e(t); | |
i = e.data(t, p, { | |
latLng: "51.511214,-0.119824", | |
tooltip: "", | |
style: "roadmap", | |
zoom: 12, | |
marker: new a.maps.Marker({ | |
draggable: !1 | |
}), | |
infowindow: new a.maps.InfoWindow({ | |
disableAutoPan: !0 | |
}) | |
}); | |
var s = n.widgetLatlng || i.latLng; | |
i.latLng = s; | |
var o = s.split(","), | |
l = new a.maps.LatLng(o[0], o[1]); | |
i.latLngObj = l; | |
var u = Webflow.env.touch && n.disableTouch ? !1 : !0; | |
i.map = new a.maps.Map(t, { | |
center: i.latLngObj, | |
zoom: i.zoom, | |
maxZoom: 18, | |
mapTypeControl: !1, | |
panControl: !1, | |
streetViewControl: !1, | |
scrollwheel: !n.disableScroll, | |
draggable: u, | |
zoomControl: !0, | |
zoomControlOptions: { | |
style: a.maps.ZoomControlStyle.SMALL | |
}, | |
mapTypeId: i.style | |
}), i.marker.setMap(i.map), i.setMapPosition = function () { | |
i.map.setCenter(i.latLngObj); | |
var e = 0, | |
t = 0, | |
n = r.css(["paddingTop", "paddingRight", "paddingBottom", "paddingLeft"]); | |
e -= parseInt(n.paddingLeft, 10), e += parseInt(n.paddingRight, 10), t -= parseInt(n.paddingTop, 10), t += parseInt(n.paddingBottom, 10), (e || t) && i.map.panBy(e, t), r.css("position", "") | |
}, a.maps.event.addListener(i.map, "tilesloaded", function () { | |
a.maps.event.clearListeners(i.map, "tilesloaded"), i.setMapPosition() | |
}), i.setMapPosition(), i.marker.setPosition(i.latLngObj), i.infowindow.setPosition(i.latLngObj); | |
var c = n.widgetTooltip; | |
c && (i.tooltip = c, i.infowindow.setContent(c), i.infowindowOpen || (i.infowindow.open(i.map, i.marker), i.infowindowOpen = !0)); | |
var d = n.widgetStyle; | |
d && i.map.setMapTypeId(d); | |
var f = n.widgetZoom; | |
return null != f && (i.zoom = f, i.map.setZoom(+f)), a.maps.event.addListener(i.marker, "click", function () { | |
window.open("https://maps.google.com/?z=" + i.zoom + "&daddr=" + i.latLng) | |
}), i | |
} | |
var a, l, u = {}, c = e(document), | |
d = ".w-widget-map"; | |
u.preview = function () { | |
l = c.find(d), Webflow.resize.off(n), l.length && (Webflow.resize.on(n), n()) | |
}, u.design = function () { | |
l = c.find(d), Webflow.resize.off(n), l.length && t.defer(n) | |
}, u.ready = function () { | |
Webflow.env() || i() | |
}; | |
var p = "w-widget-map"; | |
return u | |
}), Webflow.define("gplus", function (e) { | |
"use strict"; | |
function t() { | |
n.find(".w-widget-gplus") && Webflow.script("https://apis.google.com/js/plusone.js") | |
} | |
var n = e(document), | |
i = {}; | |
return i.ready = function () { | |
Webflow.env() || t() | |
}, i | |
}), Webflow.define("scroll", function (e) { | |
"use strict"; | |
function t() { | |
l.hash && n(l.hash.substring(1)), o.on("click", "a", function (t) { | |
if (!(Webflow.env("design") || window.$.mobile && e(t.currentTarget).hasClass("ui-link"))) { | |
var i = this.hash ? this.hash.substring(1) : null; | |
i && n(i, t) | |
} | |
}) | |
} | |
function n(t, n) { | |
if (u.test(t)) { | |
var r = e("#" + t); | |
if (r.length) { | |
n && (n.preventDefault(), n.stopPropagation()), l.hash !== t && a.history && a.history.pushState && a.history.pushState(null, null, "#" + t); | |
var s = e("header, body > .header, body > .w-nav"), | |
o = "fixed" === s.css("position") ? s.outerHeight() : 0; | |
a.setTimeout(function () { | |
i(r, o) | |
}, n ? 0 : 300) | |
} | |
} | |
} | |
function i(t, n) { | |
var i = e(a).scrollTop(), | |
s = t.offset().top - n; | |
if ("mid" == t.data("scroll")) { | |
var o = e(a).height() - n, | |
l = t.outerHeight(); | |
o > l && (s -= Math.round((o - l) / 2)) | |
} | |
var u = 1; | |
e("body").add(t).each(function () { | |
var t = parseFloat(e(this).attr("data-scroll-time"), 10); | |
!isNaN(t) && (0 === t || t > 0) && (u = t) | |
}), Date.now || (Date.now = function () { | |
return (new Date).getTime() | |
}); | |
var c = Date.now(), | |
d = a.requestAnimationFrame || a.mozRequestAnimationFrame || a.webkitRequestAnimationFrame || function (e) { | |
a.setTimeout(e, 15) | |
}, p = (472.143 * Math.log(Math.abs(i - s) + 125) - 2e3) * u, | |
f = function () { | |
var e = Date.now() - c; | |
a.scroll(0, r(i, s, e, p)), p >= e && d(f) | |
}; | |
f() | |
} | |
function r(e, t, n, i) { | |
return n > i ? t : e + (t - e) * s(n / i) | |
} | |
function s(e) { | |
return .5 > e ? 4 * e * e * e : (e - 1) * (2 * e - 2) * (2 * e - 2) + 1 | |
} | |
var o = e(document), | |
a = window, | |
l = a.location, | |
u = /^[a-zA-Z][\w:.-]*$/; | |
return { | |
ready: t | |
} | |
}), Webflow.define("links", function (e, t) { | |
"use strict"; | |
function n() { | |
o = c && Webflow.env("design"), Webflow.scroll.off(r), a = []; | |
for (var e = document.links, t = 0; t < e.length; ++t) i(e[t]); | |
a.length && (Webflow.scroll.on(r), r()) | |
} | |
function i(t) { | |
var n = t.getAttribute("href"); | |
if (!(n.indexOf(":") >= 0)) { | |
var i = e(t); | |
if (0 === n.indexOf("#") && f.test(n)) { | |
var r = e(n); | |
return void(r.length && a.push({ | |
link: i, | |
sec: r, | |
active: !1 | |
})) | |
} | |
var o = (c ? Webflow.env("slug") : d.pathname) || "", | |
l = t.href === d.href || n === o || h.test(n) && m.test(o); | |
s(i, p, l) | |
} | |
} | |
function r() { | |
var e = u.scrollTop(), | |
n = u.height(); | |
t.each(a, function (t) { | |
var i = t.link, | |
r = t.sec, | |
a = r.offset().top, | |
l = r.outerHeight(), | |
u = .5 * n, | |
c = r.is(":visible") && a + l - u >= e && e + n >= a + u; | |
t.active !== c && (t.active = c, s(i, p, c), o && (i[0].__wf_current = c)) | |
}) | |
} | |
function s(e, t, n) { | |
var i = e.hasClass(t); | |
n && i || (n || i) && (n ? e.addClass(t) : e.removeClass(t)) | |
} | |
var o, a, l = {}, u = e(window), | |
c = Webflow.env(), | |
d = window.location, | |
p = "w--current", | |
f = /^#[a-zA-Z][\w:.-]*$/, | |
h = /index\.(html|php)$/, | |
m = /\/$/; | |
return l.ready = l.design = l.preview = n, l | |
}), Webflow.define("slider", function (e, t) { | |
"use strict"; | |
function n() { | |
y = I.find(R), y.each(r), S = null, T || (i && i(), i = null) | |
} | |
function i() { | |
Webflow.resize.on(function () { | |
y.each(h) | |
}) | |
} | |
function r(t, n) { | |
var i = e(n), | |
r = e.data(n, R); | |
return r || (r = e.data(n, R, { | |
index: 0, | |
el: i, | |
config: {} | |
})), r.mask = i.children(".w-slider-mask"), r.left = i.children(".w-slider-arrow-left"), r.right = i.children(".w-slider-arrow-right"), r.nav = i.children(".w-slider-nav"), r.slides = r.mask.children(".w-slide"), S && (r.maskWidth = 0), E.support.transform ? (Webflow.env.chrome && k(r), r.el.off(R), r.left.off(R), r.right.off(R), r.nav.off(R), s(r), w ? (i.on("setting" + R, p(r)), d(r)) : (r.el.on("swipe" + R, p(r)), r.left.on("tap" + R, o(r)), r.right.on("tap" + R, a(r)), r.config.autoplay && u(r)), r.nav.on("tap" + R, "> div", p(r)), C || r.mask.contents().filter(function () { | |
return 3 === this.nodeType | |
}).remove(), void h(t, n)) : (r.left.hide(), r.right.hide(), r.nav.hide(), void(T = !0)) | |
} | |
function s(e) { | |
var t = {}; | |
t.depth = 1, t.crossOver = 0, t.animation = e.el.attr("data-animation") || "slide", "outin" == t.animation && (t.animation = "cross", t.crossOver = .5), t.easing = e.el.attr("data-easing") || "ease"; | |
var n = e.el.attr("data-duration"); | |
if (t.duration = null != n ? +n : 500, +e.el.attr("data-infinite") && (t.infinite = !0), +e.el.attr("data-hide-arrows") ? t.hideArrows = !0 : e.config.hideArrows && (e.left.show(), e.right.show()), +e.el.attr("data-autoplay")) { | |
t.autoplay = !0, t.delay = +e.el.attr("data-delay") || 2e3; | |
var i = "mousedown" + R + " touchstart" + R; | |
w || e.el.off(i).one(i, function () { | |
d(e) | |
}) | |
} | |
var r = e.right.width(); | |
t.edge = r ? r + 40 : 100, e.config = t | |
} | |
function o(e) { | |
return function () { | |
f(e, { | |
index: e.index - 1, | |
vector: -1 | |
}) | |
} | |
} | |
function a(e) { | |
return function () { | |
f(e, { | |
index: e.index + 1, | |
vector: 1 | |
}) | |
} | |
} | |
function l(i, r) { | |
var s = null; | |
r === i.slides.length && (n(), m(i)), t.each(i.anchors, function (t, n) { | |
e(t.els).each(function (t, i) { | |
e(i).index() === r && (s = n) | |
}) | |
}), null != s && f(i, { | |
index: s, | |
immediate: !0 | |
}) | |
} | |
function u(e) { | |
var t = e.config; | |
c(e), t.timer = window.setTimeout(function () { | |
t.autoplay && !w && (a(e)(), u(e)) | |
}, t.delay) | |
} | |
function c(e) { | |
var t = e.config; | |
window.clearTimeout(t.timer), t.timer = null | |
} | |
function d(e) { | |
var t = e.config; | |
t.autoplay = !1, c(e) | |
} | |
function p(t) { | |
return function (n, i) { | |
if (i = i || {}, w && "setting" == n.type) { | |
if ("prev" == i.select) return o(t)(); | |
if ("next" == i.select) return a(t)(); | |
if (s(t), m(t), null == i.select) return; | |
return void l(t, i.select) | |
} | |
if ("swipe" != n.type) t.nav.has(n.target).length && f(t, { | |
index: e(n.target).index() | |
}); | |
else { | |
if ("left" == i.direction) return a(t)(); | |
if ("right" == i.direction) return o(t)() | |
} | |
} | |
} | |
function f(t, n) { | |
function i() { | |
var n = e(s[t.index].els), | |
i = t.slides.not(n); | |
"slide" != h && (d.visibility = "hidden"), E(i).set(d) | |
} | |
n = n || {}; | |
var r = t.config, | |
s = t.anchors; | |
t.previous = t.index; | |
var o = n.index, | |
a = {}; | |
0 > o ? (o = s.length - 1, r.infinite && (a.x = -t.endX, a.from = 0, a.to = s[0].width)) : o >= s.length && (o = 0, r.infinite && (a.x = s[s.length - 1].width, a.from = -s[s.length - 1].x, a.to = a.from - a.x)), t.index = o; | |
var l = t.nav.children().eq(t.index).addClass("w-active"); | |
t.nav.children().not(l).removeClass("w-active"), r.hideArrows && (t.index === s.length - 1 ? t.right.hide() : t.right.show(), 0 === t.index ? t.left.hide() : t.left.show()); | |
var u = t.offsetX || 0, | |
c = t.offsetX = -s[t.index].x, | |
d = { | |
x: c, | |
opacity: 1, | |
visibility: "" | |
}, p = e(s[t.index].els), | |
f = e(s[t.previous] && s[t.previous].els), | |
h = (t.slides.not(p), r.animation), | |
m = r.easing, | |
g = Math.round(r.duration), | |
v = n.vector || (t.index > t.previous ? 1 : -1), | |
b = "opacity " + g + "ms " + m, | |
k = "transform " + g + "ms " + m; | |
if (n.immediate) return E(p).set(d), void i(); | |
if (t.index != t.previous) { | |
if ("cross" == h) { | |
var y = Math.round(g - g * r.crossOver), | |
w = Math.round(g - y); | |
return b = "opacity " + y + "ms " + m, E(f).set({ | |
visibility: "" | |
}).add(b).start({ | |
opacity: 0 | |
}), void E(p).set({ | |
visibility: "", | |
x: c, | |
opacity: 0, | |
zIndex: r.depth++ | |
}).add(b).wait(w).then({ | |
opacity: 1 | |
}).then(i) | |
} | |
return "fade" == h ? (E(f).set({ | |
visibility: "" | |
}).stop(), void E(p).set({ | |
visibility: "", | |
x: c, | |
opacity: 0, | |
zIndex: r.depth++ | |
}).add(b).start({ | |
opacity: 1 | |
}).then(i)) : "over" == h ? (d = { | |
x: t.endX | |
}, E(f).set({ | |
visibility: "" | |
}).stop(), void E(p).set({ | |
visibility: "", | |
zIndex: r.depth++, | |
x: c + s[t.index].width * v | |
}).add(k).start({ | |
x: c | |
}).then(i)) : void(r.infinite && a.x ? (E(t.slides.not(f)).set({ | |
visibility: "", | |
x: a.x | |
}).add(k).start({ | |
x: c | |
}), E(f).set({ | |
visibility: "", | |
x: a.from | |
}).add(k).start({ | |
x: a.to | |
}), t.shifted = f) : (r.infinite && t.shifted && (E(t.shifted).set({ | |
visibility: "", | |
x: u | |
}), t.shifted = null), E(t.slides).set({ | |
visibility: "" | |
}).add(k).start({ | |
x: c | |
}))) | |
} | |
} | |
function h(t, n) { | |
var i = e.data(n, R); | |
return v(i) ? m(i) : void(w && b(i) && m(i)) | |
} | |
function m(t) { | |
var n = 1, | |
i = 0, | |
r = 0, | |
s = 0; | |
t.anchors = [{ | |
els: [], | |
x: 0, | |
width: 0 | |
}], t.slides.each(function (o, a) { | |
r - i > t.maskWidth - t.config.edge && (n++, i += t.maskWidth, t.anchors[n - 1] = { | |
els: [], | |
x: r, | |
width: 0 | |
}), s = e(a).outerWidth(!0), r += s, t.anchors[n - 1].width += s, t.anchors[n - 1].els.push(a) | |
}), t.endX = r, w && (t.pages = null), t.nav.length && t.pages !== n && (t.pages = n, g(t)); | |
var o = t.index; | |
o >= n && (o = n - 1), f(t, { | |
immediate: !0, | |
index: o | |
}) | |
} | |
function g(t) { | |
var n, i = [], | |
r = t.el.attr("data-nav-spacing"); | |
r && (r = parseFloat(r) + "px"); | |
for (var s = 0; s < t.pages; s++) n = e(N), t.nav.hasClass("w-num") && n.text(s + 1), null != r && n.css({ | |
"margin-left": r, | |
"margin-right": r | |
}), i.push(n); | |
t.nav.empty().append(i) | |
} | |
function v(e) { | |
var t = e.mask.width(); | |
return e.maskWidth !== t ? (e.maskWidth = t, !0) : !1 | |
} | |
function b(t) { | |
var n = 0; | |
return t.slides.each(function (t, i) { | |
n += e(i).outerWidth(!0) | |
}), t.slidesWidth !== n ? (t.slidesWidth = n, !0) : !1 | |
} | |
function k(t) { | |
t.slides.each(function (t, n) { | |
"fixed" == e(n).css("background-attachment") && (E.config.hideBackface = !1) | |
}) | |
} | |
var y, w, T, S, x = {}, E = window.tram, | |
I = e(document), | |
C = Webflow.env(), | |
R = ".w-slider", | |
N = '<div class="w-slider-dot" data-wf-ignore />'; | |
return x.ready = function () { | |
n() | |
}, x.design = function () { | |
w = !0, n() | |
}, x.preview = function () { | |
w = !1, n() | |
}, x.redraw = function () { | |
S = !0, n() | |
}, x | |
}), Webflow.define("navbar", function (e, t) { | |
"use strict"; | |
function n() { | |
w = I && Webflow.env("design"), k = e(document.body), y = E.find(R), y.each(r), i && i(), i = null | |
} | |
function i() { | |
Webflow.resize.on(function () { | |
y.each(f) | |
}) | |
} | |
function r(t, n) { | |
var i = e(n), | |
r = e.data(n, R); | |
r || (r = e.data(n, R, { | |
open: !1, | |
el: i, | |
config: {} | |
})), r.menu = i.find(".w-nav-menu"), r.links = r.menu.find(".w-nav-link"), r.button = i.find(".w-nav-button"), r.container = i.find(".w-container"), r.outside = p(r), r.button.off(R), r.menu.off(R), a(r), w ? (s(r), i.on("setting" + R, l(r))) : (o(r), r.button.on("click" + R, c(r)), r.menu.on("click" + R, "> a", d(r))), f(t, n) | |
} | |
function s(e) { | |
e.overlay && (b(e, !0), e.overlay.remove(), e.overlay = null) | |
} | |
function o(t) { | |
t.overlay || (t.overlay = e(C).appendTo(t.el), t.parent = t.menu.parent(), b(t, !0)) | |
} | |
function a(e) { | |
var n = {}, i = e.config || {}; | |
n.animation = e.el.attr("data-animation") || "default", i.animation != n.animation && e.open && t.defer(u, e), n.easing = e.el.attr("data-easing") || "ease", n.easing2 = e.el.attr("data-easing2") || "ease"; | |
var r = e.el.attr("data-duration"); | |
n.duration = null != r ? +r : 400, n.docHeight = e.el.attr("data-doc-height"), e.config = n | |
} | |
function l(e) { | |
return function (n, i) { | |
if (i = i || {}, w && "setting" == n.type) { | |
var r = x.width(); | |
return a(e), i.open === !0 && m(e, !0), i.open === !1 && b(e, !0), void(e.open && t.defer(function () { | |
r != x.width() && u(e) | |
})) | |
} | |
} | |
} | |
function u(e) { | |
e.open && (b(e, !0), m(e, !0)) | |
} | |
function c(e) { | |
return t.debounce(function () { | |
e.open ? b(e) : m(e) | |
}) | |
} | |
function d(t) { | |
return function (n) { | |
var i = e(this), | |
r = i.attr("href"); | |
r && 0 === r.indexOf("#") && t.open && (1 === r.length && n.preventDefault(), b(t)) | |
} | |
} | |
function p(e) { | |
return function (t) { | |
var n = t.target; | |
e.el.has(n).length || e.el.is(n) || b(e) | |
} | |
} | |
function f(t, n) { | |
var i = e.data(n, R), | |
r = i.collapsed = "none" != i.button.css("display"); | |
!i.open || r || w || b(i, !0), i.container.length && i.links.each(h(i)), i.open && /^over/.test(i.config.animation) && (g(i), v(i)) | |
} | |
function h(t) { | |
var n = t.container.css(A); | |
return "none" == n && (n = ""), | |
function (t, i) { | |
i = e(i), i.css(A, ""), "none" == i.css(A) && i.css(A, n) | |
} | |
} | |
function m(e, t) { | |
if (!e.open) { | |
e.open = !0, e.menu.addClass(_), e.links.addClass(D), e.button.addClass(N); | |
var n = e.config, | |
i = n.animation; | |
"none" != i && S.support.transform || (t = !0); | |
var r = /^over/.test(i), | |
s = g(e), | |
o = e.menu.outerHeight(!0), | |
a = e.menu.outerWidth(!0), | |
l = e.el.height(), | |
u = /left$/.test(i) ? -1 : 1; | |
if (f(0, e.el[0]), w || E.on("click" + R, e.outside), r && v(e), !t) { | |
var c = "transform " + n.duration + "ms " + n.easing; | |
if (e.overlay && e.overlay.show().append(e.menu).height(o), r) return S(e.menu).add(c).set({ | |
x: u * a, | |
height: s | |
}).start({ | |
x: 0 | |
}), void(e.overlay && e.overlay.css({ | |
width: a, | |
height: s | |
})); | |
var d = l + o; | |
S(e.menu).add(c).set({ | |
y: -d | |
}).start({ | |
y: 0 | |
}) | |
} | |
} | |
} | |
function g(e) { | |
return e.bodyHeight = e.config.docHeight ? E.height() : k.height() | |
} | |
function v(e) { | |
var t = e.bodyHeight, | |
n = "fixed" == e.el.css("position"); | |
n || (t -= e.el.offset().top), e.menu.height(t) | |
} | |
function b(e, t) { | |
function n() { | |
e.menu.height(""), S(e.menu).set({ | |
x: 0, | |
y: 0 | |
}), e.menu.removeClass(_), e.links.removeClass(D), e.overlay && e.overlay.children().length && (e.menu.appendTo(e.parent), e.overlay.attr("style", "").hide()) | |
} | |
e.open = !1, e.button.removeClass(N); | |
var i = e.config; | |
"none" != i.animation && S.support.transform || (t = !0); | |
var r = i.animation; | |
if (E.off("click" + R, e.outside), t) return S(e.menu).stop(), void n(); | |
var s = "transform " + i.duration + "ms " + i.easing2, | |
o = e.menu.outerHeight(!0), | |
a = e.menu.outerWidth(!0), | |
l = e.el.height(), | |
u = /left$/.test(r) ? -1 : 1, | |
c = /^over/.test(r); | |
if (c) return void S(e.menu).add(s).start({ | |
x: a * u | |
}).then(n); | |
var d = l + o; | |
S(e.menu).add(s).start({ | |
y: -d | |
}).then(n) | |
} | |
var k, y, w, T = {}, S = window.tram, | |
x = e(window), | |
E = e(document), | |
I = Webflow.env(), | |
C = '<div class="w-nav-overlay" data-wf-ignore />', | |
R = ".w-nav", | |
N = "w--open", | |
_ = "w--nav-menu-open", | |
D = "w--nav-link-open"; | |
T.ready = T.design = T.preview = n; | |
var A = "max-width"; | |
return T | |
}), Webflow.define("ix", function (e, t) { | |
"use strict"; | |
function n(n) { | |
if (n) { | |
c = {}, b = {}, t.each(n, function (e) { | |
b[e.slug] = e.value.triggers | |
}); | |
var r = e("[data-ix]"); | |
r.each(s), r.each(i), k.length && (Webflow.scroll.on(o), o()) | |
} | |
} | |
function i(n, i) { | |
i = e(i); | |
var s = i.attr("data-ix"), | |
o = b[s]; | |
if (o) { | |
var l = c[s] || (c[s] = {}); | |
y++, t.each(o, function (e) { | |
var t = e.type, | |
n = e.stepsB && e.stepsB.length; | |
if ("load" == t && a(e, i), "click" == t) { | |
var s = "click:"; | |
e.descend && (s += y + ":"), s += e.selector, i.on("click" + f, function () { | |
a(e, i, { | |
group: l[s] ? "B" : "A" | |
}), n && (l[s] = !l[s]) | |
}) | |
} | |
g || ("hover" == t && (i.on("mouseover" + f, function () { | |
a(e, i, { | |
group: "A" | |
}) | |
}), i.on("mouseleave" + f, function () { | |
a(e, i, { | |
group: "B" | |
}) | |
})), "scroll" == t && (k.push({ | |
el: i, | |
trigger: e, | |
state: { | |
active: !1 | |
} | |
}), e._offsetTop = r(e.offsetTop), e._offsetBot = r(e.offsetBot))) | |
}) | |
} | |
} | |
function r(e) { | |
if (!e) return 0; | |
e += ""; | |
var t = parseInt(e, 10); | |
return e.indexOf("%") > 0 && (t /= 100, t >= 1 && (t = .999)), t | |
} | |
function s(t, n) { | |
n = e(n), n.off(f) | |
} | |
function o() { | |
var e = p.scrollTop(), | |
n = p.height(); | |
t.each(k, function (t) { | |
var i = t.el, | |
r = t.trigger, | |
s = r.stepsB && r.stepsB.length, | |
o = t.state, | |
l = i.offset().top, | |
u = i.outerHeight(), | |
c = r._offsetTop || 0, | |
d = r._offsetBot || 0; | |
1 > c && c > 0 && (c *= n), 1 > d && d > 0 && (d *= n); | |
var p = l + u - c >= e && e + n >= l + d; | |
p !== o.active && (p !== !1 || s) && (o.active = p, a(r, i, { | |
group: p ? "A" : "B" | |
})) | |
}) | |
} | |
function a(n, i, r) { | |
if (r = r || {}, !u || r.force) { | |
var s = r.group || "A", | |
o = n["steps" + s]; | |
if (o && o.length) { | |
var a = n.selector; | |
a && (i = n.descend ? i.find(a) : e(a), v && i.attr("data-ix-affect", 1)); | |
var c = h(i), | |
d = {}; | |
t.each(o, function (e, t) { | |
l(c, e, t, d) | |
}), d.start ? c.then(function () { | |
this.stop(null, !0), r.done && r.done() | |
}) : r.done && r.done() | |
} | |
} | |
} | |
function l(e, n, i, r) { | |
var s = "add", | |
o = "start"; | |
r.start && (s = o = "then"); | |
var a = n.transition; | |
a && t.each(a.split(","), function (t) { | |
e[s](t) | |
}); | |
var l = {}; | |
if (t.each(n, function (e, t) { | |
"transition" !== t && (l[t] = e) | |
}), null == a) { | |
r.start ? e.then(function () { | |
var t = this.queue; | |
this.set(l), l.display && e.redraw(), this.queue = t, this.next() | |
}) : (e.set(l), l.display && e.redraw()); | |
var u = l.wait; | |
null != u && (e.wait(u), r.start = !0) | |
} else { | |
if (l.display) { | |
var c = l.display; | |
delete l.display, r.start ? e.then(function () { | |
var e = this.queue; | |
this.set({ | |
display: c | |
}).redraw(), this.queue = e, this.next() | |
}) : e.set({ | |
display: c | |
}).redraw() | |
} | |
e[o](l), r.start = !0 | |
} | |
} | |
var u, c, d = {}, p = e(window), | |
f = ".w-ix", | |
h = window.tram, | |
m = window.Modernizr, | |
g = m && m.touch, | |
v = Webflow.env(), | |
b = {}, k = [], | |
y = 0; | |
return d.init = function (e) { | |
n(e) | |
}, d.preview = function () { | |
u = !1, t.delay(function () { | |
n(window.__wf_ix) | |
}, 100) | |
}, d.design = function () { | |
u = !0, e("[data-ix]").each(s), Webflow.scroll.off(o), k = [] | |
}, d.run = a, d | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment