vendor: 35,957 bytes, lines 1-2
1/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ 2!function (e, t) { "use strict"; "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) { "use strict"; var n = [], r = e.document, i = Object.getPrototypeOf, o = n.slice, a = n.concat, s = n.push, u = n.indexOf, l = {}, c = l.toString, f = l.hasOwnProperty, p = f.toString, d = p.call(Object), h = {}, g = function e(t) { return "function" == typeof t && "number" != typeof t.nodeType }, y = function e(t) { return null != t && t === t.window }, v = { type: !0, src: !0, noModule: !0 }; function m(e, t, n) { var i, o = (t = t || r).createElement("script"); if (o.text = e, n) for (i in v) n[i] && (o[i] = n[i]); t.head.appendChild(o).parentNode.removeChild(o) } function x(e) { return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? l[c.call(e)] || "object" : typeof e } var b = "3.3.1", w = function (e, t) { return new w.fn.init(e, t) }, T = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; w.fn = w.prototype = { jquery: "3.3.1", constructor: w, length: 0, toArray: function () { return o.call(this) }, get: function (e) { return null == e ? o.call(this) : e < 0 ? this[e + this.length] : this[e] }, pushStack: function (e) { var t = w.merge(this.constructor(), e); return t.prevObject = this, t }, each: function (e) { return w.each(this, e) }, map: function (e) { return this.pushStack(w.map(this, function (t, n) { return e.call(t, n, t) })) }, slice: function () { return this.pushStack(o.apply(this, arguments)) }, first: function () { return this.eq(0) }, last: function () { return this.eq(-1) }, eq: function (e) { var t = this.length, n = +e + (e < 0 ? t : 0); return this.pushStack(n >= 0 && n < t ? [this[n]] : []) }, end: function () { return this.prevObject || this.constructor() }, push: s, sort: n.sort, splice: n.splice }, w.extend = w.fn.extend = function () { var e, t, n, r, i, o, a = arguments[0] || {}, s = 1, u = arguments.length, l = !1; for ("boolean" == typeof a && (l = a, a = arguments[s] || {}, s++), "object" == typeof a || g(a) || (a = {}), s === u && (a = this, s--); s < u; s++)if (null != (e = arguments[s])) for (t in e) n = a[t], a !== (r = e[t]) && (l && r && (w.isPlainObject(r) || (i = Array.isArray(r))) ? (i ? (i = !1, o = n && Array.isArray(n) ? n : []) : o = n && w.isPlainObject(n) ? n : {}, a[t] = w.extend(l, o, r)) : void 0 !== r && (a[t] = r)); return a }, w.extend({ expando: "jQuery" + ("3.3.1" + Math.random()).replace(/\D/g, ""), isReady: !0, error: function (e) { throw new Error(e) }, noop: function () { }, isPlainObject: function (e) { var t, n; return !(!e || "[object Object]" !== c.call(e)) && (!(t = i(e)) || "function" == typeof (n = f.call(t, "constructor") && t.constructor) && p.call(n) === d) }, isEmptyObject: function (e) { var t; for (t in e) return !1; return !0 }, globalEval: function (e) { m(e) }, each: function (e, t) { var n, r = 0; if (C(e)) { for (n = e.length; r < n; r++)if (!1 === t.call(e[r], r, e[r])) break } else for (r in e) if (!1 === t.call(e[r], r, e[r])) break; return e }, trim: function (e) { return null == e ? "" : (e + "").replace(T, "") }, makeArray: function (e, t) { var n = t || []; return null != e && (C(Object(e)) ? w.merge(n, "string" == typeof e ? [e] : e) : s.call(n, e)), n }, inArray: function (e, t, n) { return null == t ? -1 : u.call(t, e, n) }, merge: function (e, t) { for (var n = +t.length, r = 0, i = e.length; r < n; r++)e[i++] = t[r]; return e.length = i, e }, grep: function (e, t, n) { for (var r, i = [], o = 0, a = e.length, s = !n; o < a; o++)(r = !t(e[o], o)) !== s && i.push(e[o]); return i }, map: function (e, t, n) { var r, i, o = 0, s = []; if (C(e)) for (r = e.length; o < r; o++)null != (i = t(e[o], o, n)) && s.push(i); else for (o in e) null != (i = t(e[o], o, n)) && s.push(i); return a.apply([], s) }, guid: 1, support: h }), "function" == typeof Symbol && (w.fn[Symbol.iterator] = n[Symbol.iterator]), w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) { l["[object " + t + "]"] = t.toLowerCase() }); function C(e) { var t = !!e && "length" in e && e.length, n = x(e); return !g(e) && !y(e) && ("array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e) } var E = function (e) { var t, n, r, i, o, a, s, u, l, c, f, p, d, h, g, y, v, m, x, b = "sizzle" + 1 * new Date, w = e.document, T = 0, C = 0, E = ae(), k = ae(), S = ae(), D = function (e, t) { return e === t && (f = !0), 0 }, N = {}.hasOwnProperty, A = [], j = A.pop, q = A.push, L = A.push, H = A.slice, O = function (e, t) { for (var n = 0, r = e.length; n < r; n++)if (e[n] === t) return n; return -1 }, P = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", M = "[\\x20\\t\\r\\n\\f]", R = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", I = "\\[" + M + "*(" + R + ")(?:" + M + "*([*^$|!~]?=)" + M + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + R + "))|)" + M + "*\\]", W = ":(" + R + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + I + ")*)|.*)\\)|)", $ = new RegExp(M + "+", "g"), B = new RegExp("^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$", "g"), F = new RegExp("^" + M + "*," + M + "*"), _ = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"), z = new RegExp("=" + M + "*([^\\]'\"]*?)" + M + "*\\]", "g"), X = new RegExp(W), U = new RegExp("^" + R + "$"), V = { ID: new RegExp("^#(" + R + ")"), CLASS: new RegExp("^\\.(" + R + ")"), TAG: new RegExp("^(" + R + "|[*])"), ATTR: new RegExp("^" + I), PSEUDO: new RegExp("^" + W), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + M + "*(even|odd|(([+-]|)(\\d*)n|)" + M + "*(?:([+-]|)" + M + "*(\\d+)|))" + M + "*\\)|)", "i"), bool: new RegExp("^(?:" + P + ")$", "i"), needsContext: new RegExp("^" + M + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + M + "*((?:-\\d)?\\d*)" + M + "*\\)|)(?=[^-]|$)", "i") }, G = /^(?:input|select|textarea|button)$/i, Y = /^h\d$/i, Q = /^[^{]+\{\s*\[native \w/, J = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, K = /[+~]/, Z = new RegExp("\\\\([\\da-f]{1,6}" + M + "?|(" + M + ")|.)", "ig"), ee = function (e, t, n) { var r = "0x" + t - 65536; return r !== r || n ? t : r < 0 ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320) }, te = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, ne = function (e, t) { return t ? "\0" === e ? "\ufffd" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e }, re = function () { p() }, ie = me(function (e) { return !0 === e.disabled && ("form" in e || "label" in e) }, { dir: "parentNode", next: "legend" }); try { L.apply(A = H.call(w.childNodes), w.childNodes), A[w.childNodes.length].nodeType } catch (e) { L = { apply: A.length ? function (e, t) { q.apply(e, H.call(t)) } : function (e, t) { var n = e.length, r = 0; while (e[n++] = t[r++]); e.length = n - 1 } } } function oe(e, t, r, i) { var o, s, l, c, f, h, v, m = t && t.ownerDocument, T = t ? t.nodeType : 9; if (r = r || [], "string" != typeof e || !e || 1 !== T && 9 !== T && 11 !== T) return r; if (!i && ((t ? t.ownerDocument || t : w) !== d && p(t), t = t || d, g)) { if (11 !== T && (f = J.exec(e))) if (o = f[1]) { if (9 === T) { if (!(l = t.getElementById(o))) return r; if (l.id === o) return r.push(l), r } else if (m && (l = m.getElementById(o)) && x(t, l) && l.id === o) return r.push(l), r } else { if (f[2]) return L.apply(r, t.getElementsByTagName(e)), r; if ((o = f[3]) && n.getElementsByClassName && t.getElementsByClassName) return L.apply(r, t.getElementsByClassName(o)), r } if (n.qsa && !S[e + " "] && (!y || !y.test(e))) { if (1 !== T) m = t, v = e; else if ("object" !== t.nodeName.toLowerCase()) { (c = t.getAttribute("id")) ? c = c.replace(te, ne) : t.setAttribute("id", c = b), s = (h = a(e)).length; while (s--) h[s] = "#" + c + " " + ve(h[s]); v = h.join(","), m = K.test(e) && ge(t.parentNode) || t } if (v) try { return L.apply(r, m.querySelectorAll(v)), r } catch (e) { } finally { c === b && t.removeAttribute("id") } } } return u(e.replace(B, "$1"), t, r, i) } function ae() { var e = []; function t(n, i) { return e.push(n + " ") > r.cacheLength && delete t[e.shift()], t[n + " "] = i } return t } function se(e) { return e[b] = !0, e } function ue(e) { var t = d.createElement("fieldset"); try { return !!e(t) } catch (e) { return !1 } finally { t.parentNode && t.parentNode.removeChild(t), t = null } } function le(e, t) { var n = e.split("|"), i = n.length; while (i--) r.attrHandle[n[i]] = t } function ce(e, t) { var n = t && e, r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex; if (r) return r; if (n) while (n = n.nextSibling) if (n === t) return -1; return e ? 1 : -1 } function fe(e) { return function (t) { return "input" === t.nodeName.toLowerCase() && t.type === e } } function pe(e) { return function (t) { var n = t.nodeName.toLowerCase(); return ("input" === n || "button" === n) && t.type === e } } function de(e) { return function (t) { return "form" in t ? t.parentNode && !1 === t.disabled ? "label" in t ? "label" in t.parentNode ? t.parentNode.disabled === e : t.disabled === e : t.isDisabled === e || t.isDisabled !== !e && ie(t) === e : t.disabled === e : "label" in t && t.disabled === e } } function he(e) { return se(function (t) { return t = +t, se(function (n, r) { var i, o = e([], n.length, t), a = o.length; while (a--) n[i = o[a]] && (n[i] = !(r[i] = n[i])) }) }) } function ge(e) { return e && "undefined" != typeof e.getElementsByTagName && e } n = oe.support = {}, o = oe.isXML = function (e) { var t = e && (e.ownerDocument || e).documentElement; return !!t && "HTML" !== t.nodeName }, p = oe.setDocument = function (e) { var t, i, a = e ? e.ownerDocument || e : w; return a !== d && 9 === a.nodeType && a.documentElement ? (d = a, h = d.documentElement, g = !o(d), w !== d && (i = d.defaultView) && i.top !== i && (i.addEventListener ? i.addEventListener("unload", re, !1) : i.attachEvent && i.attachEvent("onunload", re)), n.attributes = ue(function (e) { return e.className = "i", !e.getAttribute("className") }), n.getElementsByTagName = ue(function (e) { return e.appendChild(d.createComment("")), !e.getElementsByTagName("*").length }), n.getElementsByClassName = Q.test(d.getElementsByClassName), n.getById = ue(function (e) { return h.appendChild(e).id = b, !d.getElementsByName || !d.getElementsByName(b).length }), n.getById ? (r.filter.ID = function (e) { var t = e.replace(Z, ee); return function (e) { return e.getAttribute("id") === t } }, r.find.ID = function (e, t) { if ("undefined" != typeof t.getElementById && g) { var n = t.getElementById(e); return n ? [n] : [] } }) : (r.filter.ID = function (e) { var t = e.replace(Z, ee); return function (e) { var n = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id"); return n && n.value === t } }, r.find.ID = function (e, t) { if ("undefined" != typeof t.getElementById && g) { var n, r, i, o = t.getElementById(e); if (o) { if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; i = t.getElementsByName(e), r = 0; while (o = i[r++]) if ((n = o.getAttributeNode("id")) && n.value === e) return [o] } return [] } }), r.find.TAG = n.getElementsByTagName ? function (e, t) { return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : n.qsa ? t.querySelectorAll(e) : void 0 } : function (e, t) { var n, r = [], i = 0, o = t.getElementsByTagName(e); if ("*" === e) { while (n = o[i++]) 1 === n.nodeType && r.push(n); return r } return o }, r.find.CLASS = n.getElementsByClassName && function (e, t) { if ("undefined" != typeof t.getElementsByClassName && g) return t.getElementsByClassName(e) }, v = [], y = [], (n.qsa = Q.test(d.querySelectorAll)) && (ue(function (e) { h.appendChild(e).innerHTML = "<a id='" + b + "'></a><select id='" + b + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && y.push("[*^$]=" + M + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || y.push("\\[" + M + "*(?:value|" + P + ")"), e.querySelectorAll("[id~=" + b + "-]").length || y.push("~="), e.querySelectorAll(":checked").length || y.push(":checked"), e.querySelectorAll("a#" + b + "+*").length || y.push(".#.+[+~]") }), ue(function (e) { e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>"; var t = d.createElement("input"); t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && y.push("name" + M + "*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && y.push(":enabled", ":disabled"), h.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && y.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), y.push(",.*:") })), (n.matchesSelector = Q.test(m = h.matches || h.webkitMatchesSelector || h.mozMatchesSelector || h.oMatchesSelector || h.msMatchesSelector)) && ue(function (e) { n.disconnectedMatch = m.call(e, "*"), m.call(e, "[s!='']:x"), v.push("!=", W) }), y = y.length && new RegExp(y.join("|")), v = v.length && new RegExp(v.join("|")), t = Q.test(h.compareDocumentPosition), x = t || Q.test(h.contains) ? function (e, t) { var n = 9 === e.nodeType ? e.documentElement : e, r = t && t.parentNode; return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r))) } : function (e, t) { if (t) while (t = t.parentNode) if (t === e) return !0; return !1 }, D = t ? function (e, t) { if (e === t) return f = !0, 0; var r = !e.compareDocumentPosition - !t.compareDocumentPosition; return r || (1 & (r = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !n.sortDetached && t.compareDocumentPosition(e) === r ? e === d || e.ownerDocument === w && x(w, e) ? -1 : t === d || t.ownerDocument === w && x(w, t) ? 1 : c ? O(c, e) - O(c, t) : 0 : 4 & r ? -1 : 1) } : function (e, t) { if (e === t) return f = !0, 0; var n, r = 0, i = e.parentNode, o = t.parentNode, a = [e], s = [t]; if (!i || !o) return e === d ? -1 : t === d ? 1 : i ? -1 : o ? 1 : c ? O(c, e) - O(c, t) : 0; if (i === o) return ce(e, t); n = e; while (n = n.parentNode) a.unshift(n); n = t; while (n = n.parentNode) s.unshift(n); while (a[r] === s[r]) r++; return r ? ce(a[r], s[r]) : a[r] === w ? -1 : s[r] === w ? 1 : 0 }, d) : d }, oe.matches = function (e, t) { return oe(e, null, null, t) }, oe.matchesSelector = function (e, t) { if ((e.ownerDocument || e) !== d && p(e), t = t.replace(z, "='$1']"), n.matchesSelector && g && !S[t + " "] && (!v || !v.test(t)) && (!y || !y.test(t))) try { var r = m.call(e, t); if (r || n.disconnectedMatch || e.document && 11 !== e.document.nodeType) return r } catch (e) { } return oe(t, d, null, [e]).length > 0 }, oe.contains = function (e, t) { return (e.ownerDocument || e) !== d && p(e), x(e, t) }, oe.attr = function (e, t) { (e.ownerDocument || e) !== d && p(e); var i = r.attrHandle[t.toLowerCase()], o = i && N.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !g) : void 0; return void 0 !== o ? o : n.attributes || !g ? e.getAttribute(t) : (o = e.getAttributeNode(t)) && o.specified ? o.value : null }, oe.escape = function (e) { return (e + "").replace(te, ne) }, oe.error = function (e) { throw new Error("Syntax error, unrecognized expression: " + e) }, oe.uniqueSort = function (e) { var t, r = [], i = 0, o = 0; if (f = !n.detectDuplicates, c = !n.sortStable && e.slice(0), e.sort(D), f) { while (t = e[o++]) t === e[o] && (i = r.push(o)); while (i--) e.splice(r[i], 1) } return c = null, e }, i = oe.getText = function (e) { var t, n = "", r = 0, o = e.nodeType; if (o) { if (1 === o || 9 === o || 11 === o) { if ("string" == typeof e.textContent) return e.textContent; for (e = e.firstChild; e; e = e.nextSibling)n += i(e) } else if (3 === o || 4 === o) return e.nodeValue } else while (t = e[r++]) n += i(t); return n }, (r = oe.selectors = { cacheLength: 50, createPseudo: se, match: V, 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(Z, ee), e[3] = (e[3] || e[4] || e[5] || "").replace(Z, ee), "~=" === 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] || oe.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] && oe.error(e[0]), e }, PSEUDO: function (e) { var t, n = !e[6] && e[2]; return V.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && X.test(n) && (t = a(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(Z, ee).toLowerCase(); return "*" === e ? function () { return !0 } : function (e) { return e.nodeName && e.nodeName.toLowerCase() === t } }, CLASS: function (e) { var t = E[e + " "]; return t || (t = new RegExp("(^|" + M + ")" + e + "(" + M + "|$)")) && E(e, function (e) { return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || "") }) }, ATTR: function (e, t, n) { return function (r) { var i = oe.attr(r, e); return null == i ? "!=" === t : !t || (i += "", "=" === t ? i === n : "!=" === t ? i !== n : "^=" === t ? n && 0 === i.indexOf(n) : "*=" === t ? n && i.indexOf(n) > -1 : "$=" === t ? n && i.slice(-n.length) === n : "~=" === t ? (" " + i.replace($, " ") + " ").indexOf(n) > -1 : "|=" === t && (i === n || i.slice(0, n.length + 1) === n + "-")) } }, CHILD: function (e, t, n, r, i) { var o = "nth" !== e.slice(0, 3), a = "last" !== e.slice(-4), s = "of-type" === t; return 1 === r && 0 === i ? function (e) { return !!e.parentNode } : function (t, n, u) { var l, c, f, p, d, h, g = o !== a ? "nextSibling" : "previousSibling", y = t.parentNode, v = s && t.nodeName.toLowerCase(), m = !u && !s, x = !1; if (y) { if (o) { while (g) { p = t; while (p = p[g]) if (s ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) return !1; h = g = "only" === e && !h && "nextSibling" } return !0 } if (h = [a ? y.firstChild : y.lastChild], a && m) { x = (d = (l = (c = (f = (p = y)[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] || [])[0] === T && l[1]) && l[2], p = d && y.childNodes[d]; while (p = ++d && p && p[g] || (x = d = 0) || h.pop()) if (1 === p.nodeType && ++x && p === t) { c[e] = [T, d, x]; break } } else if (m && (x = d = (l = (c = (f = (p = t)[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] || [])[0] === T && l[1]), !1 === x) while (p = ++d && p && p[g] || (x = d = 0) || h.pop()) if ((s ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) && ++x && (m && ((c = (f = p[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] = [T, x]), p === t)) break; return (x -= i) === r || x % r == 0 && x / r >= 0 } } }, PSEUDO: function (e, t) { var n, i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || oe.error("unsupported pseudo: " + e); return i[b] ? i(t) : i.length > 1 ? (n = [e, e, "", t], r.setFilters.hasOwnProperty(e.toLowerCase()) ? se(function (e, n) { var r, o = i(e, t), a = o.length; while (a--) e[r = O(e, o[a])] = !(n[r] = o[a]) }) : function (e) { return i(e, 0, n) }) : i } }, pseudos: { not: se(function (e) { var t = [], n = [], r = s(e.replace(B, "$1")); return r[b] ? se(function (e, t, n, i) { var o, a = r(e, null, i, []), s = e.length; while (s--) (o = a[s]) && (e[s] = !(t[s] = o)) }) : function (e, i, o) { return t[0] = e, r(t, null, o, n), t[0] = null, !n.pop() } }), has: se(function (e) { return function (t) { return oe(e, t).length > 0 } }), contains: se(function (e) { return e = e.replace(Z, ee), function (t) { return (t.textContent || t.innerText || i(t)).indexOf(e) > -1 } }), lang: se(function (e) { return U.test(e || "") || oe.error("unsupported lang: " + e), e = e.replace(Z, ee).toLowerCase(), function (t) { var n; do { if (n = g ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return (n = n.toLowerCase()) === 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 === h }, focus: function (e) { return e === d.activeElement && (!d.hasFocus || d.hasFocus()) && !!(e.type || e.href || ~e.tabIndex) }, enabled: de(!1), disabled: de(!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, !0 === e.selected }, empty: function (e) { for (e = e.firstChild; e; e = e.nextSibling)if (e.nodeType < 6) return !1; return !0 }, parent: function (e) { return !r.pseudos.empty(e) }, header: function (e) { return Y.test(e.nodeName) }, input: function (e) { return G.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: he(function () { return [0] }), last: he(function (e, t) { return [t - 1] }), eq: he(function (e, t, n) { return [n < 0 ? n + t : n] }), even: he(function (e, t) { for (var n = 0; n < t; n += 2)e.push(n); return e }), odd: he(function (e, t) { for (var n = 1; n < t; n += 2)e.push(n); return e }), lt: he(function (e, t, n) { for (var r = n < 0 ? n + t : n; --r >= 0;)e.push(r); return e }), gt: he(function (e, t, n) { for (var r = n < 0 ? n + t : n; ++r < t;)e.push(r); return e }) } }).pseudos.nth = r.pseudos.eq; for (t in { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) r.pseudos[t] = fe(t); for (t in { submit: !0, reset: !0 }) r.pseudos[t] = pe(t); function ye() { } ye.prototype = r.filters = r.pseudos, r.setFilters = new ye, a = oe.tokenize = function (e, t) { var n, i, o, a, s, u, l, c = k[e + " "]; if (c) return t ? 0 : c.slice(0); s = e, u = [], l = r.preFilter; while (s) { n && !(i = F.exec(s)) || (i && (s = s.slice(i[0].length) || s), u.push(o = [])), n = !1, (i = _.exec(s)) && (n = i.shift(), o.push({ value: n, type: i[0].replace(B, " ") }), s = s.slice(n.length)); for (a in r.filter) !(i = V[a].exec(s)) || l[a] && !(i = l[a](i)) || (n = i.shift(), o.push({ value: n, type: a, matches: i }), s = s.slice(n.length)); if (!n) break } return t ? s.length : s ? oe.error(e) : k(e, u).slice(0) }; function ve(e) { for (var t = 0, n = e.length, r = ""; t < n; t++)r += e[t].value; return r } function me(e, t, n) { var r = t.dir, i = t.next, o = i || r, a = n && "parentNode" === o, s = C++; return t.first ? function (t, n, i) { while (t = t[r]) if (1 === t.nodeType || a) return e(t, n, i); return !1 } : function (t, n, u) { var l, c, f, p = [T, s]; if (u) { while (t = t[r]) if ((1 === t.nodeType || a) && e(t, n, u)) return !0 } else while (t = t[r]) if (1 === t.nodeType || a) if (f = t[b] || (t[b] = {}), c = f[t.uniqueID] || (f[t.uniqueID] = {}), i && i === t.nodeName.toLowerCase()) t = t[r] || t; else { if ((l = c[o]) && l[0] === T && l[1] === s) return p[2] = l[2]; if (c[o] = p, p[2] = e(t, n, u)) return !0 } return !1 } } function xe(e) { return e.length > 1 ? function (t, n, r) { var i = e.length; while (i--) if (!e[i](t, n, r)) return !1; return !0 } : e[0] } function be(e, t, n) { for (var r = 0, i = t.length; r < i; r++)oe(e, t[r], n); return n } function we(e, t, n, r, i) { for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++)(o = e[s]) && (n && !n(o, r, i) || (a.push(o), l && t.push(s))); return a } function Te(e, t, n, r, i, o) { return r && !r[b] && (r = Te(r)), i && !i[b] && (i = Te(i, o)), se(function (o, a, s, u) { var l, c, f, p = [], d = [], h = a.length, g = o || be(t || "*", s.nodeType ? [s] : s, []), y = !e || !o && t ? g : we(g, p, e, s, u), v = n ? i || (o ? e : h || r) ? [] : a : y; if (n && n(y, v, s, u), r) { l = we(v, d), r(l, [], s, u), c = l.length; while (c--) (f = l[c]) && (v[d[c]] = !(y[d[c]] = f)) } if (o) { if (i || e) { if (i) { l = [], c = v.length; while (c--) (f = v[c]) && l.push(y[c] = f); i(null, v = [], l, u) } c = v.length; while (c--) (f = v[c]) && (l = i ? O(o, f) : p[c]) > -1 && (o[l] = !(a[l] = f)) } } else v = we(v === a ? v.splice(h, v.length) : v), i ? i(null, a, v, u) : L.apply(a, v) }) } function Ce(e) { for (var t, n, i, o = e.length, a = r.relative[e[0].type], s = a || r.relative[" "], u = a ? 1 : 0, c = me(function (e) { return e === t }, s, !0), f = me(function (e) { return O(t, e) > -1 }, s, !0), p = [function (e, n, r) { var i = !a && (r || n !== l) || ((t = n).nodeType ? c(e, n, r) : f(e, n, r)); return t = null, i }]; u < o; u++)if (n = r.relative[e[u].type]) p = [me(xe(p), n)]; else { if ((n = r.filter[e[u].type].apply(null, e[u].matches))[b]) { for (i = ++u; i < o; i++)if (r.relative[e[i].type]) break; return Te(u > 1 && xe(p), u > 1 && ve(e.slice(0, u - 1).concat({ value: " " === e[u - 2].type ? "*" : "" })).replace(B, "$1"), n, u < i && Ce(e.slice(u, i)), i < o && Ce(e = e.slice(i)), i < o && ve(e)) } p.push(n) } return xe(p) } function Ee(e, t) { var n = t.length > 0, i = e.length > 0, o = function (o, a, s, u, c) { var f, h, y, v = 0, m = "0", x = o && [], b = [], w = l, C = o || i && r.find.TAG("*", c), E = T += null == w ? 1 : Math.random() || .1, k = C.length; for (c && (l = a === d || a || c); m !== k && null != (f = C[m]); m++) { if (i && f) { h = 0, a || f.ownerDocument === d || (p(f), s = !g); while (y = e[h++]) if (y(f, a || d, s)) { u.push(f); break } c && (T = E) } n && ((f = !y && f) && v-- , o && x.push(f)) } if (v += m, n && m !== v) { h = 0; while (y = t[h++]) y(x, b, a, s); if (o) { if (v > 0) while (m--) x[m] || b[m] || (b[m] = j.call(u)); b = we(b) } L.apply(u, b), c && !o && b.length > 0 && v + t.length > 1 && oe.uniqueSort(u) } return c && (T = E, l = w), x }; return n ? se(o) : o } return s = oe.compile = function (e, t) { var n, r = [], i = [], o = S[e + " "]; if (!o) { t || (t = a(e)), n = t.length; while (n--) (o = Ce(t[n]))[b] ? r.push(o) : i.push(o); (o = S(e, Ee(i, r))).selector = e } return o }, u = oe.select = function (e, t, n, i) { var o, u, l, c, f, p = "function" == typeof e && e, d = !i && a(e = p.selector || e); if (n = n || [], 1 === d.length) { if ((u = d[0] = d[0].slice(0)).length > 2 && "ID" === (l = u[0]).type && 9 === t.nodeType && g && r.relative[u[1].type]) { if (!(t = (r.find.ID(l.matches[0].replace(Z, ee), t) || [])[0])) return n; p && (t = t.parentNode), e = e.slice(u.shift().value.length) } o = V.needsContext.test(e) ? 0 : u.length; while (o--) { if (l = u[o], r.relative[c = l.type]) break; if ((f = r.find[c]) && (i = f(l.matches[0].replace(Z, ee), K.test(u[0].type) && ge(t.parentNode) || t))) { if (u.splice(o, 1), !(e = i.length && ve(u))) return L.apply(n, i), n; break } } } return (p || s(e, d))(i, t, !g, n, !t || K.test(e) && ge(t.parentNode) || t), n }, n.sortStable = b.split("").sort(D).join("") === b, n.detectDuplicates = !!f, p(), n.sortDetached = ue(function (e) { return 1 & e.compareDocumentPosition(d.createElement("fieldset")) }), ue(function (e) { return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href") }) || le("type|href|height|width", function (e, t, n) { if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2) }), n.attributes && ue(function (e) { return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value") }) || le("value", function (e, t, n) { if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue }), ue(function (e) { return null == e.getAttribute("disabled") }) || le(P, function (e, t, n) { var r; if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null }), oe }(e); w.find = E, w.expr = E.selectors, w.expr[":"] = w.expr.pseudos, w.uniqueSort = w.unique = E.uniqueSort, w.text = E.getText, w.isXMLDoc = E.isXML, w.contains = E.contains, w.escapeSelector = E.escape; var k = function (e, t, n) { var r = [], i = void 0 !== n; while ((e = e[t]) && 9 !== e.nodeType) if (1 === e.nodeType) { if (i && w(e).is(n)) break; r.push(e) } return r }, S = function (e, t) { for (var n = []; e; e = e.nextSibling)1 === e.nodeType && e !== t && n.push(e); return n }, D = w.expr.match.needsContext; function N(e, t) { return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() } var A = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; function j(e, t, n) { return g(t) ? w.grep(e, function (e, r) { return !!t.call(e, r, e) !== n }) : t.nodeType ? w.grep(e, function (e) { return e === t !== n }) : "string" != typeof t ? w.grep(e, function (e) { return u.call(t, e) > -1 !== n }) : w.filter(t, e, n) } w.filter = function (e, t, n) { var r = t[0]; return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? w.find.matchesSelector(r, e) ? [r] : [] : w.find.matches(e, w.grep(t, function (e) { return 1 === e.nodeType })) }, w.fn.extend({ find: function (e) { var t, n, r = this.length, i = this; if ("string" != typeof e) return this.pushStack(w(e).filter(function () { for (t = 0; t < r; t++)if (w.contains(i[t], this)) return !0 })); for (n = this.pushStack([]), t = 0; t < r; t++)w.find(e, i[t], n); return r > 1 ? w.uniqueSort(n) : n }, filter: function (e) { return this.pushStack(j(this, e || [], !1)) }, not: function (e) { return this.pushStack(j(this, e || [], !0)) }, is: function (e) { return !!j(this, "string" == typeof e && D.test(e) ? w(e) : e || [], !1).length } }); var q, L = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; (w.fn.init = function (e, t, n) { var i, o; if (!e) return this; if (n = n || q, "string" == typeof e) { if (!(i = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : L.exec(e)) || !i[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e); if (i[1]) { if (t = t instanceof w ? t[0] : t, w.merge(this, w.parseHTML(i[1], t && t.nodeType ? t.ownerDocument || t : r, !0)), A.test(i[1]) && w.isPlainObject(t)) for (i in t) g(this[i]) ? this[i](t[i]) : this.attr(i, t[i]); return this } return (o = r.getElementById(i[2])) && (this[0] = o, this.length = 1), this } return e.nodeType ? (this[0] = e, this.length = 1, this) : g(e) ? void 0 !== n.ready ? n.ready(e) : e(w) : w.makeArray(e, this) }).prototype = w.fn, q = w(r); var H = /^(?:parents|prev(?:Until|All))/, O = { children: !0, contents: !0, next: !0, prev: !0 }; w.fn.extend({ has: function (e) { var t = w(e, this), n = t.length; return this.filter(function () { for (var e = 0; e < n; e++)if (w.contains(this, t[e])) return !0 }) }, closest: function (e, t) { var n, r = 0, i = this.length, o = [], a = "string" != typeof e && w(e); if (!D.test(e)) for (; r < i; r++)for (n = this[r]; n && n !== t; n = n.parentNode)if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && w.find.matchesSelector(n, e))) { o.push(n); break } return this.pushStack(o.length > 1 ? w.uniqueSort(o) : o) }, index: function (e) { return e ? "string" == typeof e ? u.call(w(e), this[0]) : u.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 }, add: function (e, t) { return this.pushStack(w.uniqueSort(w.merge(this.get(), w(e, t)))) }, addBack: function (e) { return this.add(null == e ? this.prevObject : this.prevObject.filter(e)) } }); function P(e, t) { while ((e = e[t]) && 1 !== e.nodeType); return e } w.each({ parent: function (e) { var t = e.parentNode; return t && 11 !== t.nodeType ? t : null }, parents: function (e) { return k(e, "parentNode") }, parentsUntil: function (e, t, n) { return k(e, "parentNode", n) }, next: function (e) { return P(e, "nextSibling") }, prev: function (e) { return P(e, "previousSibling") }, nextAll: function (e) { return k(e, "nextSibling") }, prevAll: function (e) { return k(e, "previousSibling") }, nextUntil: function (e, t, n) { return k(e, "nextSibling", n) }, prevUntil: function (e, t, n) { return k(e, "previousSibling", n) }, siblings: function (e) { return S((e.parentNode || {}).firstChild, e) }, children: function (e) { return S(e.firstChild) }, contents: function (e) { return N(e, "iframe") ? e.contentDocument : (N(e, "template") && (e = e.content || e), w.merge([], e.childNodes)) } }, function (e, t) { w.fn[e] = function (n, r) { var i = w.map(this, t, n); return "Until" !== e.slice(-5) && (r = n), r && "string" == typeof r && (i = w.filter(r, i)), this.length > 1 && (O[e] || w.uniqueSort(i), H.test(e) && i.reverse()), this.pushStack(i) } }); var M = /[^\x20\t\r\n\f]+/g; function R(e) { var t = {}; return w.each(e.match(M) || [], function (e, n) { t[n] = !0 }), t } w.Callbacks = function (e) { e = "string" == typeof e ? R(e) : w.extend({}, e); var t, n, r, i, o = [], a = [], s = -1, u = function () { for (i = i || e.once, r = t = !0; a.length; s = -1) { n = a.shift(); while (++s < o.length) !1 === o[s].apply(n[0], n[1]) && e.stopOnFalse && (s = o.length, n = !1) } e.memory || (n = !1), t = !1, i && (o = n ? [] : "") }, l = { add: function () { return o && (n && !t && (s = o.length - 1, a.push(n)), function t(n) { w.each(n, function (n, r) { g(r) ? e.unique && l.has(r) || o.push(r) : r && r.length && "string" !== x(r) && t(r) }) }(arguments), n && !t && u()), this }, remove: function () { return w.each(arguments, function (e, t) { var n; while ((n = w.inArray(t, o, n)) > -1) o.splice(n, 1), n <= s && s-- }), this }, has: function (e) { return e ? w.inArray(e, o) > -1 : o.length > 0 }, empty: function () { return o && (o = []), this }, disable: function () { return i = a = [], o = n = "", this }, disabled: function () { return !o }, lock: function () { return i = a = [], n || t || (o = n = ""), this }, locked: function () { return !!i }, fireWith: function (e, n) { return i || (n = [e, (n = n || []).slice ? n.slice() : n], a.push(n), t || u()), this }, fire: function () { return l.fireWith(this, arguments), this }, fired: function () { return !!r } }; return l }; function I(e) { return e } function W(e) { throw e } function $(e, t, n, r) { var i; try { e && g(i = e.promise) ? i.call(e).done(t).fail(n) : e && g(i = e.then) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r)) } catch (e) { n.apply(void 0, [e]) } } w.extend({ Deferred: function (t) { var n = [["notify", "progress", w.Callbacks("memory"), w.Callbacks("memory"), 2], ["resolve", "done", w.Callbacks("once memory"), w.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", w.Callbacks("once memory"), w.Callbacks("once memory"), 1, "rejected"]], r = "pending", i = { state: function () { return r }, always: function () { return o.done(arguments).fail(arguments), this }, "catch": function (e) { return i.then(null, e) }, pipe: function () { var e = arguments; return w.Deferred(function (t) { w.each(n, function (n, r) { var i = g(e[r[4]]) && e[r[4]]; o[r[1]](function () { var e = i && i.apply(this, arguments); e && g(e.promise) ? e.promise().progress(t.notify).done(t.resolve).fail(t.reject) : t[r[0] + "With"](this, i ? [e] : arguments) }) }), e = null }).promise() }, then: function (t, r, i) { var o = 0; function a(t, n, r, i) { return function () { var s = this, u = arguments, l = function () { var e, l; if (!(t < o)) { if ((e = r.apply(s, u)) === n.promise()) throw new TypeError("Thenable self
2-resolution"); l = e && ("object" == typeof e || "function" == typeof e) && e.then, g(l) ? i ? l.call(e, a(o, n, I, i), a(o, n, W, i)) : (o++ , l.call(e, a(o, n, I, i), a(o, n, W, i), a(o, n, I, n.notifyWith))) : (r !== I && (s = void 0, u = [e]), (i || n.resolveWith)(s, u)) } }, c = i ? l : function () { try { l() } catch (e) { w.Deferred.exceptionHook && w.Deferred.exceptionHook(e, c.stackTrace), t + 1 >= o && (r !== W && (s = void 0, u = [e]), n.rejectWith(s, u)) } }; t ? c() : (w.Deferred.getStackHook && (c.stackTrace = w.Deferred.getStackHook()), e.setTimeout(c)) } } return w.Deferred(function (e) { n[0][3].add(a(0, e, g(i) ? i : I, e.notifyWith)), n[1][3].add(a(0, e, g(t) ? t : I)), n[2][3].add(a(0, e, g(r) ? r : W)) }).promise() }, promise: function (e) { return null != e ? w.extend(e, i) : i } }, o = {}; return w.each(n, function (e, t) { var a = t[2], s = t[5]; i[t[1]] = a.add, s && a.add(function () { r = s }, n[3 - e][2].disable, n[3 - e][3].disable, n[0][2].lock, n[0][3].lock), a.add(t[3].fire), o[t[0]] = function () { return o[t[0] + "With"](this === o ? void 0 : this, arguments), this }, o[t[0] + "With"] = a.fireWith }), i.promise(o), t && t.call(o, o), o }, when: function (e) { var t = arguments.length, n = t, r = Array(n), i = o.call(arguments), a = w.Deferred(), s = function (e) { return function (n) { r[e] = this, i[e] = arguments.length > 1 ? o.call(arguments) : n, --t || a.resolveWith(r, i) } }; if (t <= 1 && ($(e, a.done(s(n)).resolve, a.reject, !t), "pending" === a.state() || g(i[n] && i[n].then))) return a.then(); while (n--) $(i[n], s(n), a.reject); return a.promise() } }); var B = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; w.Deferred.exceptionHook = function (t, n) { e.console && e.console.warn && t && B.test(t.name) && e.console.warn("jQuery.Deferred exception: " + t.message, t.stack, n) }, w.readyException = function (t) { e.setTimeout(function () { throw t }) }; var F = w.Deferred(); w.fn.ready = function (e) { return F.then(e)["catch"](function (e) { w.readyException(e) }), this }, w.extend({ isReady: !1, readyWait: 1, ready: function (e) { (!0 === e ? --w.readyWait : w.isReady) || (w.isReady = !0, !0 !== e && --w.readyWait > 0 || F.resolveWith(r, [w])) } }), w.ready.then = F.then; function _() { r.removeEventListener("DOMContentLoaded", _), e.removeEventListener("load", _), w.ready() } "complete" === r.readyState || "loading" !== r.readyState && !r.documentElement.doScroll ? e.setTimeout(w.ready) : (r.addEventListener("DOMContentLoaded", _), e.addEventListener("load", _)); var z = function (e, t, n, r, i, o, a) { var s = 0, u = e.length, l = null == n; if ("object" === x(n)) { i = !0; for (s in n) z(e, t, s, n[s], !0, o, a) } else if (void 0 !== r && (i = !0, g(r) || (a = !0), l && (a ? (t.call(e, r), t = null) : (l = t, t = function (e, t, n) { return l.call(w(e), n) })), t)) for (; s < u; s++)t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n))); return i ? e : l ? t.call(e) : u ? t(e[0], n) : o }, X = /^-ms-/, U = /-([a-z])/g; function V(e, t) { return t.toUpperCase() } function G(e) { return e.replace(X, "ms-").replace(U, V) } var Y = function (e) { return 1 === e.nodeType || 9 === e.nodeType || !+e.n
vendor: 4,148 bytes, line 2
2odeType }; function Q() { this.expando = w.expando + Q.uid++ } Q.uid = 1, Q.prototype = { cache: function (e) { var t = e[this.expando]; return t || (t = {}, Y(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, { value: t, configurable: !0 }))), t }, set: function (e, t, n) { var r, i = this.cache(e); if ("string" == typeof t) i[G(t)] = n; else for (r in t) i[G(r)] = t[r]; return i }, get: function (e, t) { return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][G(t)] }, access: function (e, t, n) { return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t) }, remove: function (e, t) { var n, r = e[this.expando]; if (void 0 !== r) { if (void 0 !== t) { n = (t = Array.isArray(t) ? t.map(G) : (t = G(t)) in r ? [t] : t.match(M) || []).length; while (n--) delete r[t[n]] } (void 0 === t || w.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando]) } }, hasData: function (e) { var t = e[this.expando]; return void 0 !== t && !w.isEmptyObject(t) } }; var J = new Q, K = new Q, Z = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, ee = /[A-Z]/g; function te(e) { return "true" === e || "false" !== e && ("null" === e ? null : e === +e + "" ? +e : Z.test(e) ? JSON.parse(e) : e) } function ne(e, t, n) { var r; if (void 0 === n && 1 === e.nodeType) if (r = "data-" + t.replace(ee, "-$&").toLowerCase(), "string" == typeof (n = e.getAttribute(r))) { try { n = te(n) } catch (e) { } K.set(e, t, n) } else n = void 0; return n } w.extend({ hasData: function (e) { return K.hasData(e) || J.hasData(e) }, data: function (e, t, n) { return K.access(e, t, n) }, removeData: function (e, t) { K.remove(e, t) }, _data: function (e, t, n) { return J.access(e, t, n) }, _removeData: function (e, t) { J.remove(e, t) } }), w.fn.extend({ data: function (e, t) { var n, r, i, o = this[0], a = o && o.attributes; if (void 0 === e) { if (this.length && (i = K.get(o), 1 === o.nodeType && !J.get(o, "hasDataAttrs"))) { n = a.length; while (n--) a[n] && 0 === (r = a[n].name).indexOf("data-") && (r = G(r.slice(5)), ne(o, r, i[r])); J.set(o, "hasDataAttrs", !0) } return i } return "object" == typeof e ? this.each(function () { K.set(this, e) }) : z(this, function (t) { var n; if (o && void 0 === t) { if (void 0 !== (n = K.get(o, e))) return n; if (void 0 !== (n = ne(o, e))) return n } else this.each(function () { K.set(this, e, t) }) }, null, t, arguments.length > 1, null, !0) }, removeData: function (e) { return this.each(function () { K.remove(this, e) }) } }), w.extend({ queue: function (e, t, n) { var r; if (e) return t = (t || "fx") + "queue", r = J.get(e, t), n && (!r || Array.isArray(n) ? r = J.access(e, t, w.makeArray(n)) : r.push(n)), r || [] }, dequeue: function (e, t) { t = t || "fx"; var n = w.queue(e, t), r = n.length, i = n.shift(), o = w._queueHooks(e, t), a = function () { w.dequeue(e, t) }; "inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, a, o)), !r && o && o.empty.fire() }, _queueHooks: function (e, t) { var n = t + "queueHooks"; return J.get(e, n) || J.access(e, n, { empty: w.Callbacks("once memory").add(function () { J.remove(e, [t + "queue", n]) }) }) } }), w.fn.extend({ queue: function (e, t) { var n = 2; return "string" != typeof e && (t = e, e = "fx", n--), arguments.length < n ? w.queue(this[0], e) : void 0 === t ? this : this.each(function () { var n = w.queue(this, e, t); w._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && w.dequeue(this, e) }) }, dequeue: function (e) { return this.each(function () { w.dequeue(this, e) }) }, clearQueue: function (e) { return this.queue(e || "fx", []) }, promise: function (e, t) { var n, r = 1, i = w.Deferred(), o = this, a = this.length, s = function () { --r || i.resolveWith(o, [o]) }; "string" != typeof e && (t = e, e = void 0), e = e || "fx"; while (a--) (n = J.get(o[a], e + "queueHooks")) && n.empty && (r++ , n.empty.add(s)); return s(), i.promise(t) } }); var re = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, ie = new RegExp("^(?:([+-])=|)(" + re + ")([a-z
2%]*)$", "i"), oe = ["Top", "Right", "Bottom", "Left"], ae = function (e, t) { return "none" === (e = t || e).style.display || "" === e.style.display && w.contains(e.ownerDocument, e) && "none" === w.css(e, "display") }, se = function (e, t, n, r) { var i, o, a = {}; for (o in t) a[o] = e.style[o], e.style[o] = t[o]; i = n.apply(e, r || []); for (o in t) e.style[o] = a[o]; return i }; function ue(e, t, n, r) { var i, o, a = 20, s = r ? function () { return r.cur() } : function () { return w.css(e, t, "") }, u = s(), l = n && n[3] || (w.cssNumber[t] ? "" : "px"), c = (w.cssNumber[t] || "px" !== l && +u) && ie.exec(w.css(e, t)); if (c && c[3] !== l) { u /= 2, l = l || c[3], c = +u || 1; while (a--) w.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || .5)) <= 0 && (a = 0), c /= o; c *= 2, w.style(e, t, c + l), n = n || [] } return n && (c = +c || +u || 0, i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], r && (r.unit = l, r.start = c, r.end = i)), i } var le = {}; function ce(e) { var t, n = e.ownerDocument, r = e.nodeName, i = le[r]; return i || (t = n.body.appendChild(n.createElement(r)), i = w.css(t, "display"), t.parentNode.removeChild(t), "none" === i && (i = "block"), le[r] = i, i) } function fe(e, t) { for (var n, r, i = [], o = 0, a = e.length; o < a; o++)(r = e[o]).style && (n = r.style.display, t ? ("none" === n && (i[o] = J.get(r, "dis
2play") || null, i[o] || (r.style.display = "")), "" === r.style.display && ae(r) && (i[o] = ce(r))) : "none" !== n && (i[o] = "none", J.set(r, "display", n))); for (o = 0; o < a; o++)null != i[o] && (e[o].style.display = i[o]); return e } w.fn.extend({ show: function () { return fe(this, !0) }, hide: function () { return fe(this) }, toggle: function (e) { return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function () { ae(this) ? w(this).show() : w(this).hide() }) } }); var pe = /^(?:checkbox|radio)$/i, de = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i, he = /^$|^module$|\/(?:java|ecma)script/i, ge = { option: [1, "<select multiple='multiple'>", "</select>"], thead: [1, "<table>", "</table>"], col: [2, "<table><colgroup>", "</colgroup></table>"], tr: [2, "<table><tbody>", "</tbody></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], _default: [0, "", ""] }; ge.optgroup = ge.option, ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead, ge.th = ge.td; function ye(e, t) { var n; return n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : [], void 0 === t || t && N(e, t) ? w.merge([e], n) : n } function ve(e, t) { for (var n = 0, r = e.length; n < r; n++)J.set(e[n], "globalEval", !t || J.get(t[n], "globalEval")) } var me = /<|&#?\w+;/; function xe(e, t, n, r, i) { for (var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++)if ((o = e[d]) || 0 === o) if ("object" === x(o)) w.merge(p, o.nodeType ? [o] : o); else if (me.test(o)) { a = a || f.appendChild(t.createElement("div")), s = (de.exec(o) || ["", ""])[1].toLowerCase(), u = ge[s] || ge._default, a.innerHTML = u[1] + w.htmlPrefilter(o) + u[2], c = u[0]; while (c--) a = a.lastChild; w.merge(p, a.childNodes), (a = f.firstChild).textContent = "" } else p.push(t.createTextNode(o)); f.textContent = "", d = 0; while (o = p[d++]) if (r && w.inArray(o, r) > -1) i && i.push(o); else if (l = w.contains(o.ownerDocument, o), a = ye(f.appendChild(o), "script"), l && ve(a), n) { c = 0; while (o = a[c++]) he.test(o.type || "") && n.push(o) } return f } !function () { var e = r.createDocumentFragment().appendChild(r.createElement("div")), t = r.createElement("input"); t.setAttribute("type", "radio"), t.setAttribute("checked", "checked"), t.setAttribute("name", "t"), e.appendChild(t), h.checkClone = e.cloneNode(!0).cloneNode(!0).lastChild.checked, e.innerHTML = "<textarea>x</textarea>", h.noCloneChecked = !!e.cloneNode(!0).lastChild.defaultValue }(); var be = r.documentElement, we = /^key/, Te = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, Ce = /^([^.]*)(?:\.(.+)|)/; function Ee() { return !0 } function ke() { return !1 } function Se() { try { return r.activeElement } catch (e) { } } function De(e, t, n, r, i, o) { var a, s; if ("object" == typeof t) { "string" != typeof n && (r = r || n, n = void 0); for (s in t) De(e, s, n, r, t[s], o); return e } if (null == r && null == i ? (i = n, r = n = void 0) : null == i && ("string" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), !1 === i) i = ke; else if (!i) return e; return 1 === o && (a = i, (i = function (e) { return w().off(e), a.apply(this, arguments) }).guid = a.guid || (a.guid = w.guid++)), e.each(function () { w.event.add(this, t, i, r, n) }) } w.event = { global: {}, add: function (e, t, n, r, i) { var o, a, s, u, l, c, f, p, d, h, g, y = J.get(e); if (y) { n.handler && (n = (o = n).handler, i = o.selector), i && w.find.matchesSelector(be, i), n.guid || (n.guid = w.guid++), (u = y.events) || (u = y.events = {}), (a = y.handle) || (a = y.handle = function (t) { return "undefined" != typeof w && w.event.triggered !== t.type ? w.event.dispatch.apply(e, arguments) : void 0 }), l = (t = (t || "").match(M) || [""]).length; while (l--) d = g = (s = Ce.exec(t[l]) || [])[1], h = (s[2] || "").split(".").sort(), d && (f = w.event.special[d] || {}, d = (i ? f.delegateType : f.bindType) || d, f = w.event.special[d] || {}, c = w.extend({ type: d, origType: g, data: r, handler: n, guid: n.guid, selector: i, needsContext: i && w.expr.match.needsContext.test(i), namespace: h.join(".") }, o), (p = u[d]) || ((p = u[d] = []).delegateCount = 0, f.setup && !1 !== f.setup.call(e, r, h, a) || e.addEventListener && e.addEventListener(d, a)), f.add && (f.add.call(e, c), c.handler.guid || (c.handler.guid = n.guid)), i ? p.splice(p.delegateCount++, 0, c) : p.push(c), w.event.global[d] = !0) } }, remove: function (e, t, n, r, i) { var o, a, s, u, l, c, f, p, d, h, g, y = J.hasData(e) && J.get(e); if (y && (u = y.events)) { l = (t = (t || "").match(M) || [""]).length; while (l--) if (s = Ce.exec(t[l]) || [], d = g = s[1], h = (s[2] || "").split(".").sort(), d) { f = w.event.special[d] || {}, p = u[d = (r ? f.delegateType : f.bindType) || d] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = p.length; while (o--) c = p[o], !i && g !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (p.splice(o, 1), c.selector && p.delegateCount-- , f.remove && f.remove.call(e, c)); a && !p.length && (f.teardown && !1 !== f.teardown.call(e, h, y.handle) || w.removeEvent(e, d, y.handle), delete u[d]) } else for (d in u) w.event.remove(e, d + t[l], n, r, !0); w.isEmptyObject(u) && J.remove(e, "handle events") } }, dispatch: function (e) { var t = w.event.fix(e), n, r, i, o, a, s, u = new Array(arguments.length), l = (J.get(this, "events") || {})[t.type] || [], c = w.event.special[t.type] || {}; for (u[0] = t, n = 1; n < arguments.length; n++)u[n] = arguments[n]; if (t.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, t)) { s = w.event.handlers.call(this, t, l), n = 0; while ((o = s[n++]) && !t.isPropagationStopped()) { t.currentTarget = o.elem, r = 0; while ((a = o.handlers[r++]) && !t.isImmediatePropagationStopped()) t.rnamespace && !t.rnamespace.test(a.namespace) || (t.handleObj = a, t.data = a.data, void 0 !== (i = ((w.event.special[a.origType] || {}).handle || a.handler).apply(o.elem, u)) && !1 === (t.result = i) && (t.preventDefault(), t.stopPropagation())) } return c.postDispatch && c.postDispatch.call(this, t), t.result } }, handlers: function (e, t) { var n, r, i, o, a, s = [], u = t.delegateCount, l = e.target; if (u && l.nodeType && !("click" === e.type && e.button >= 1)) for (; l !== this; l = l.parentNode || this)if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) { for (o = [], a = {}, n = 0; n < u; n++)void 0 === a[i = (r = t[n]).selector + " "] && (a[i] = r.needsContext ? w(i, this).index(l) > -1 : w.find(i, this, null, [l]).length), a[i] && o.push(r); o.length && s.push({ elem: l, handlers: o }) } return l = this, u < t.length && s.push({ elem: l, handlers: t.slice(u) }), s }, addProp: function (e, t) { Object.defineProperty(w.Event.prototype, e, { enumerable: !0, configurable: !0, get: g(t) ? function () { if (this.originalEvent) return t(this.originalEvent) } : function () { if (this.originalEvent) return this.originalEvent[e] }, set: function (t) { Object.defineProperty(this, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) } }) }, fix: function (e) { return e[w.expando] ? e : new w.Event(e) }, special: { load: { noBubble: !0 }, focus: { trigger: function () { if (this !== Se() && this.focus) return this.focus(), !1 }, delegateType: "focusin" }, blur: { trigger: function () { if (this === Se() && this.blur) return this.blur(), !1 }, delegateType: "focusout" }, click: { trigger: function () { if ("checkbox" === this.type && this.click && N(this, "input")) return this.click(), !1 }, _default: function (e) { return N(e.target, "a") } }, beforeunload: { postDispatch: function (e) { void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result) } } } }, w.removeEvent = function (e, t, n) { e.removeEventListener && e.removeEventListener(t, n) }, w.Event = function (e, t) { if (!(this instanceof w.Event)) return new w.Event(e, t); e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? Ee : ke, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && w.extend(this, t), this.timeStamp = e && e.t
vendor: 12,300 bytes, line 2
2imeStamp || Date.now(), this[w.expando] = !0 }, w.Event.prototype = { constructor: w.Event, isDefaultPrevented: ke, isPropagationStopped: ke, isImmediatePropagationStopped: ke, isSimulated: !1, preventDefault: function () { var e = this.originalEvent; this.isDefaultPrevented = Ee, e && !this.isSimulated && e.preventDefault() }, stopPropagation: function () { var e = this.originalEvent; this.isPropagationStopped = Ee, e && !this.isSimulated && e.stopPropagation() }, stopImmediatePropagation: function () { var e = this.originalEvent; this.isImmediatePropagationStopped = Ee, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation() } }, w.each({ altKey: !0, bubbles: !0, cancelable: !0, changedTouches: !0, ctrlKey: !0, detail: !0, eventPhase: !0, metaKey: !0, pageX: !0, pageY: !0, shiftKey: !0, view: !0, "char": !0, charCode: !0, key: !0, keyCode: !0, button: !0, buttons: !0, clientX: !0, clientY: !0, offsetX: !0, offsetY: !0, pointerId: !0, pointerType: !0, screenX: !0, screenY: !0, targetTouches: !0, toElement: !0, touches: !0, which: function (e) { var t = e.button; return null == e.which && we.test(e.type) ? null != e.charCode ? e.charCode : e.keyCode : !e.which && void 0 !== t && Te.test(e.type) ? 1 & t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which } }, w.event.addProp), w.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, function (e, t) { w.event.special[e] = { delegateType: t, bindType: t, handle: function (e) { var n, r = this, i = e.relatedTarget, o = e.handleObj; return i && (i === r || w.contains(r, i)) || (e.type = o.origType, n = o.handler.apply(this, arguments), e.type = t), n } } }), w.fn.extend({ on: function (e, t, n, r) { return De(this, e, t, n, r) }, one: function (e, t, n, r) { return De(this, e, t, n, r, 1) }, off: function (e, t, n) { var r, i; if (e && e.preventDefault && e.handleObj) return r = e.handleObj, w(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this; if ("object" == typeof e) { for (i in e) this.off(i, t, e[i]); return this } return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = ke), this.each(function () { w.event.remove(this, e, n, t) }) } }); var Ne = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, Ae = /<script|<style|<link/i, je = /checked\s*(?:[^=]|=\s*.checked.)/i, qe = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; function Le(e, t) { return N(e, "table") && N(11 !== t.nodeType ? t : t.firstChild, "tr") ? w(e).children("tbody")[0] || e : e } function He(e) { return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e } function Oe(e) { return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e } function Pe(e, t) { var n, r, i, o, a, s, u, l; if (1 === t.nodeType) { if (J.hasData(e) && (o = J.access(e), a = J.set(t, o), l = o.events)) { delete a.handle, a.events = {}; for (i in l) for (n = 0, r = l[i].length; n < r; n++)w.event.add(t, i, l[i][n]) } K.hasData(e) && (s = K.access(e), u = w.extend({}, s), K.set(t, u)) } } function Me(e, t) { var n = t.nodeName.toLowerCase(); "input" === n && pe.test(e.type) ? t.checked = e.checked : "input" !== n && "textarea" !== n || (t.defaultValue = e.defaultValue) } function Re(e, t, n, r) { t = a.apply([], t); var i, o, s, u, l, c, f = 0, p = e.length, d = p - 1, y = t[0], v = g(y); if (v || p > 1 && "string" == typeof y && !h.checkClone && je.test(y)) return e.each(function (i) { var o = e.eq(i); v && (t[0] = y.call(this, i, o.html())), Re(o, t, n, r) }); if (p && (i = xe(t, e[0].ownerDocument, !1, e, r), o = i.firstChild, 1 === i.childNodes.length && (i = o), o || r)) { for (u = (s = w.map(ye(i, "script"), He)).length; f < p; f++)l = i, f !== d && (l = w.clone(l, !0, !0), u && w.merge(s, ye(l, "script"))), n.call(e[f], l, f); if (u) for (c = s[s.length - 1].ownerDocument, w.map(s, Oe), f = 0; f < u; f++)l = s[f], he.test(l.type || "") && !J.access(l, "globalEval") && w.contains(c, l) && (l.src && "module" !== (l.type || "").toLowerCase() ? w._evalUrl && w._evalUrl(l.src) : m(l.textContent.replace(qe, ""), c, l)) } return e } function Ie(e, t, n) { for (var r, i = t ? w.filter(t, e) : e, o = 0; null != (r = i[o]); o++)n || 1 !== r.nodeType || w.cleanData(ye(r)), r.parentNode && (n && w.contains(r.ownerDocument, r) && ve(ye(r, "script")), r.parentNode.removeChild(r)); return e } w.extend({ htmlPrefilter: function (e) { return e.replace(Ne, "<$1></$2>") }, clone: function (e, t, n) { var r, i, o, a, s = e.cloneNode(!0), u = w.contains(e.ownerDocument, e); if (!(h.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || w.isXMLDoc(e))) for (a = ye(s), r = 0, i = (o = ye(e)).length; r < i; r++)Me(o[r], a[r]); if (t) if (n) for (o = o || ye(e), a = a || ye(s), r = 0, i = o.length; r < i; r++)Pe(o[r], a[r]); else Pe(e, s); return (a = ye(s, "script")).length > 0 && ve(a, !u && ye(e, "script")), s }, cleanData: function (e) { for (var t, n, r, i = w.event.special, o = 0; void 0 !== (n = e[o]); o++)if (Y(n)) { if (t = n[J.expando]) { if (t.events) for (r in t.events) i[r] ? w.event.remove(n, r) : w.removeEvent(n, r, t.handle); n[J.expando] = void 0 } n[K.expando] && (n[K.expando] = void 0) } } }), w.fn.extend({ detach: function (e) { return Ie(this, e, !0) }, remove: function (e) { return Ie(this, e) }, text: function (e) { return z(this, function (e) { return void 0 === e ? w.text(this) : this.empty().each(function () { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e) }) }, null, e, arguments.length) }, append: function () { return Re(this, arguments, function (e) { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Le(this, e).appendChild(e) }) }, prepend: function () { return Re(this, arguments, function (e) { if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { var t = Le(this, e); t.insertBefore(e, t.firstChild) } }) }, before: function () { return Re(this, arguments, function (e) { this.parentNode && this.parentNode.insertBefore(e, this) }) }, after: function () { return Re(this, arguments, function (e) { this.parentNode && this.parentNode.insertBefore(e, this.nextSibling) }) }, empty: function () { for (var e, t = 0; null != (e = this[t]); t++)1 === e.nodeType && (w.cleanData(ye(e, !1)), e.textContent = ""); return this }, clone: function (e, t) { return e = null != e && e, t = null == t ? e : t, this.map(function () { return w.clone(this, e, t) }) }, html: function (e) { return z(this, function (e) { var t = this[0] || {}, n = 0, r = this.length; if (void 0 === e && 1 === t.nodeType) return t.innerHTML; if ("string" == typeof e && !Ae.test(e) && !ge[(de.exec(e) || ["", ""])[1].toLowerCase()]) { e = w.htmlPrefilter(e); try { for (; n < r; n++)1 === (t = this[n] || {}).nodeType && (w.cleanData(ye(t, !1)), t.innerHTML = e); t = 0 } catch (e) { } } t && this.empty().append(e) }, null, e, arguments.length) }, replaceWith: function () { var e = []; return Re(this, arguments, function (t) { var n = this.parentNode; w.inArray(this, e) < 0 && (w.cleanData(ye(this)), n && n.replaceChild(t, this)) }, e) } }), w.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function (e, t) { w.fn[e] = function (e) { for (var n, r = [], i = w(e), o = i.length - 1, a = 0; a <= o; a++)n = a === o ? this : this.clone(!0), w(i[a])[t](n), s.apply(r, n.get()); return this.pushStack(r) } }); var We = new RegExp("^(" + re + ")(?!px)[a-z%]+$", "i"), $e = function (t) { var n = t.ownerDocument.defaultView; return n && n.opener || (n = e), n.getComputedStyle(t) }, Be = new RegExp(oe.join("|"), "i"); !function () { function t() { if (c) { l.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", c.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", be.appendChild(l).appendChild(c); var t = e.getComputedStyle(c); i = "1%" !== t.top, u = 12 === n(t.marginLeft), c.style.right = "60%", s = 36 === n(t.right), o = 36 === n(t.width), c.style.position = "absolute", a = 36 === c.offsetWidth || "absolute", be.removeChild(l), c = null } } function n(e) { return Math.round(parseFloat(e)) } var i, o, a, s, u, l = r.createElement("div"), c = r.createElement("div"); c.style && (c.style.backgroundClip = "content-box", c.cloneNode(!0).style.backgroundClip = "", h.clearCloneStyle = "content-box" === c.style.backgroundClip, w.extend(h, { boxSizingReliable: function () { return t(), o }, pixelBoxStyles: function () { return t(), s }, pixelPosition: function () { return t(), i }, reliableMarginLeft: function () { return t(), u }, scrollboxSize: function () { return t(), a } })) }(); function Fe(e, t, n) { var r, i, o, a, s = e.style; return (n = n || $e(e)) && ("" !== (a = n.getPropertyValue(t) || n[t]) || w.contains(e.ownerDocument, e) || (a = w.style(e, t)), !h.pixelBoxStyles() && We.test(a) && Be.test(t) && (r = s.width, i = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = r, s.minWidth = i, s.maxWidth = o)), void 0 !== a ? a + "" : a } function _e(e, t) { return { get: function () { if (!e()) return (this.get = t).apply(this, arguments); delete this.get } } } var ze = /^(none|table(?!-c[ea]).+)/, Xe = /^--/, Ue = { position: "absolute", visibility: "hidden", display: "block" }, Ve = { letterSpacing: "0", fontWeight: "400" }, Ge = ["Webkit", "Moz", "ms"], Ye = r.createElement("div").style; function Qe(e) { if (e in Ye) return e; var t = e[0].toUpperCase() + e.slice(1), n = Ge.length; while (n--) if ((e = Ge[n] + t) in Ye) return e } function Je(e) { var t = w.cssProps[e]; return t || (t = w.cssProps[e] = Qe(e) || e), t } function Ke(e, t, n) { var r = ie.exec(t); return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t } function Ze(e, t, n, r, i, o) { var a = "width" === t ? 1 : 0, s = 0, u = 0; if (n === (r ? "border" : "content")) return 0; for (; a < 4; a += 2)"margin" === n && (u += w.css(e, n + oe[a], !0, i)), r ? ("content" === n && (u -= w.css(e, "padding" + oe[a], !0, i)), "margin" !== n && (u -= w.css(e, "border" + oe[a] + "Width", !0, i))) : (u += w.css(e, "padding" + oe[a], !0, i), "padding" !== n ? u += w.css(e, "border" + oe[a] + "Width", !0, i) : s += w.css(e, "border" + oe[a] + "Width", !0, i)); return !r && o >= 0 && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - s - .5))), u } function et(e, t, n) { var r = $e(e), i = Fe(e, t, r), o = "border-box" === w.css(e, "boxSizing", !1, r), a = o; if (We.test(i)) { if (!n) return i; i = "auto" } return a = a && (h.boxSizingReliable() || i === e.style[t]), ("auto" === i || !parseFloat(i) && "inline" === w.css(e, "display", !1, r)) && (i = e["offset" + t[0].toUpperCase() + t.slice(1)], a = !0), (i = parseFloat(i) || 0) + Ze(e, t, n || (o ? "border" : "content"), a, r, i) + "px" } w.extend({ cssHooks: { opacity: { get: function (e, t) { if (t) { var n = Fe(e, "opacity"); return "" === n ? "1" : n } } } }, cssNumber: { animationIterationCount: !0, columnCount: !0, fillOpacity: !0, flexGrow: !0, flexShrink: !0, fontWeight: !0, lineHeight: !0, opacity: !0, order: !0, orphans: !0, widows: !0, zIndex: !0, zoom: !0 }, cssProps: {}, style: function (e, t, n, r) { if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { var i, o, a, s = G(t), u = Xe.test(t), l = e.style; if (u || (t = Je(s)), a = w.cssHooks[t] || w.cssHooks[s], void 0 === n) return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t]; "string" == (o = typeof n) && (i = ie.exec(n)) && i[1] && (n = ue(e, t, i), o = "number"), null != n && n === n && ("number" === o && (n += i && i[3] || (w.cssNumber[s] ? "" : "px")), h.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), a && "set" in a && void 0 === (n = a.set(e, n, r)) || (u ? l.setProperty(t, n) : l[t] = n)) } }, css: function (e, t, n, r) { var i, o, a, s = G(t); return Xe.test(t) || (t = Je(s)), (a = w.cssHooks[t] || w.cssHooks[s]) && "get" in a && (i = a.get(e, !0, n)), void 0 === i && (i = Fe(e, t, r)), "n
2ormal" === i && t in Ve && (i = Ve[t]), "" === n || n ? (o = parseFloat(i), !0 === n || isFinite(o) ? o || 0 : i) : i } }), w.each(["height", "width"], function (e, t) { w.cssHooks[t] = { get: function (e, n, r) { if (n) return !ze.test(w.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? et(e, t, r) : se(e, Ue, function () { return et(e, t, r) }) }, set: function (e, n, r) { var i, o = $e(e), a = "border-box" === w.css(e, "boxSizing", !1, o), s = r && Ze(e, t, r, a, o); return a && h.scrollboxSize() === o.position && (s -= Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - parseFloat(o[t]) - Ze(e, t, "border", !1, o) - .5)), s && (i = ie.exec(n)) && "px" !== (i[3] || "px") && (e.style[t] = n, n = w.css(e, t)), Ke(e, n, s) } } }), w.cssHooks.marginLeft = _e(h.reliableMarginLeft, function (e, t) { if (t) return (parseFloat(Fe(e, "marginLeft")) || e.getBoundingClientRect().left - se(e, { marginLeft: 0 }, function () { return e.getBoundingClientRect().left })) + "px" }), w.each({ margin: "", padding: "", border: "Width" }, function (e, t) { w.cssHooks[e + t] = { expand: function (n) { for (var r = 0, i = {}, o = "string" == typeof n ? n.split(" ") : [n]; r < 4; r++)i[e + oe[r] + t] = o[r] || o[r - 2] || o[0]; return i } }, "margin" !== e && (w.cssHooks[e + t].set = Ke) }), w.fn.extend({ css: function (e, t) { return z(this, function (e, t, n) { var r, i, o = {}, a = 0; if (Array.isArray(t)) { for (r = $e(e), i = t.length; a < i; a++)o[t[a]] = w.css(e, t[a], !1, r); return o } return void 0 !== n ? w.style(e, t, n) : w.css(e, t) }, e, t, arguments.length > 1) } }); function tt(e, t, n, r, i) { return new tt.prototype.init(e, t, n, r, i) } w.Tween = tt, tt.prototype = { constructor: tt, init: function (e, t, n, r, i, o) { this.elem = e, this.prop = n, this.easing = i || w.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (w.cssNumber[n] ? "" : "px") }, cur: function () { var e = tt.propHooks[this.prop]; return e && e.get ? e.get(this) : tt.propHooks._default.get(this) }, run: function (e) { var t, n = tt.propHooks[this.prop]; return this.options.duration ? this.pos = t = w.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = 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) : tt.propHooks._default.set(this), this } }, tt.prototype.init.prototype = tt.prototype, tt.propHooks = { _default: { get: function (e) { var t; return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = w.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0 }, set: function (e) { w.fx.step[e.prop] ? w.fx.step[e.prop](e) : 1 !== e.elem.nodeType || null == e.elem.style[w.cssProps[e.prop]] && !w.cssHooks[e.prop] ? e.elem[e.prop] = e.now : w.style(e.elem, e.prop, e.now + e.unit) } } }, tt.propHooks.scrollTop = tt.propHooks.scrollLeft = { set: function (e) { e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now) } }, w.easing = { linear: function (e) { return e }, swing: function (e) { return .5 - Math.cos(e * Math.PI) / 2 }, _default: "swing" }, w.fx = tt.prototype.init, w.fx.step = {}; var nt, rt, it = /^(?:toggle|show|hide)$/, ot = /queueHooks$/; function at() { rt && (!1 === r.hidden && e.requestAnimationFrame ? e.requestAnimationFrame(at) : e.setTimeout(at, w.fx.interval), w.fx.tick()) } function st() { return e.setTimeout(function () { nt = void 0 }), nt = Date.now() } function ut(e, t) { var n, r = 0, i = { height: e }; for (t = t ? 1 : 0; r < 4; r += 2 - t)i["margin" + (n = oe[r])] = i["padding" + n] = e; return t && (i.opacity = i.width = e), i } function lt(e, t, n) { for (var r, i = (pt.tweeners[t] || []).concat(pt.tweeners["*"]), o = 0, a = i.length; o < a; o++)if (r = i[o].call(n, t, e)) return r } function ct(e, t, n) { var r, i, o, a, s, u, l, c, f = "width" in t || "height" in t, p = this, d = {}, h = e.style, g = e.nodeType && ae(e), y = J.get(e, "fxshow"); n.queue || (null == (a = w._queueHooks(e, "fx")).unqueued && (a.unqueued = 0, s = a.empty.fire, a.empty.fire = function () { a.unqueued || s() }), a.unqueued++ , p.always(function () { p.always(function () { a.unqueued-- , w.queue(e, "fx").length || a.empty.fire() }) })); for (r in t) if (i = t[r], it.test(i)) { if (delete t[r], o = o || "toggle" === i, i === (g ? "hide" : "show")) { if ("show" !== i || !y || void 0 === y[r]) continue; g = !0 } d[r] = y && y[r] || w.style(e, r) } if ((u = !w.isEmptyObject(t)) || !w.isEmptyObject(d)) { f && 1 === e.nodeType && (n.overflow = [h.overflow, h.overflowX, h.overflowY], null == (l = y && y.display) && (l = J.get(e, "display")), "none" === (c = w.css(e, "display")) && (l ? c = l : (fe([e], !0), l = e.style.display || l, c = w.css(e, "display"), fe([e]))), ("inline" === c || "inline-block" === c && null != l) && "none" === w.css(e, "float") && (u || (p.done(function () { h.display = l }), null == l && (c = h.display, l = "none" === c ? "" : c)), h.display = "inline-block")), n.overflow && (h.overflow = "hidden", p.always(function () { h.overflow = n.overflow[0], h.overflowX = n.overflow[1], h.overflowY = n.overflow[2] })), u = !1; for (r in d) u || (y ? "hidden" in y && (g = y.hidden) : y = J.access(e, "fxshow", { display: l }), o && (y.hidden = !g), g && fe([e], !0), p.done(function () { g || fe([e]), J.remove(e, "fxshow"); for (r in d) w.style(e, r, d[r]) }
vendor: 31,177 bytes, line 2
2)), u = lt(g ? y[r] : 0, r, p), r in y || (y[r] = u.start, g && (u.end = u.start, u.start = 0)) } } function ft(e, t) { var n, r, i, o, a; for (n in e) if (r = G(n), i = t[r], o = e[n], Array.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), (a = w.cssHooks[r]) && "expand" in a) { o = a.expand(o), delete e[r]; for (n in o) n in e || (e[n] = o[n], t[n] = i) } else t[r] = i } function pt(e, t, n) { var r, i, o = 0, a = pt.prefilters.length, s = w.Deferred().always(function () { delete u.elem }), u = function () { if (i) return !1; for (var t = nt || st(), n = Math.max(0, l.startTime + l.duration - t), r = 1 - (n / l.duration || 0), o = 0, a = l.tweens.length; o < a; o++)l.tweens[o].run(r); return s.notifyWith(e, [l, r, n]), r < 1 && a ? n : (a || s.notifyWith(e, [l, 1, 0]), s.resolveWith(e, [l]), !1) }, l = s.promise({ elem: e, props: w.extend({}, t), opts: w.extend(!0, { specialEasing: {}, easing: w.easing._default }, n), originalProperties: t, originalOptions: n, startTime: nt || st(), duration: n.duration, tweens: [], createTween: function (t, n) { var r = w.Tween(e, l.opts, t, n, l.opts.specialEasing[t] || l.opts.easing); return l.tweens.push(r), r }, stop: function (t) { var n = 0, r = t ? l.tweens.length : 0; if (i) return this; for (i = !0; n < r; n++)l.tweens[n].run(1); return t ? (s.notifyWith(e, [l, 1, 0]), s.resolveWith(e, [l, t])) : s.rejectWith(e, [l, t]), this } }), c = l.props; for (ft(c, l.opts.specialEasing); o < a; o++)if (r = pt.prefilters[o].call(l, e, c, l.opts)) return g(r.stop) && (w._queueHooks(l.elem, l.opts.queue).stop = r.stop.bind(r)), r; return w.map(c, lt, l), g(l.opts.start) && l.opts.start.call(e, l), l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always), w.fx.timer(w.extend(u, { elem: e, anim: l, queue: l.opts.queue })), l } w.Animation = w.extend(pt, { tweeners: { "*": [function (e, t) { var n = this.createTween(e, t); return ue(n.elem, e, ie.exec(t), n), n }] }, tweener: function (e, t) { g(e) ? (t = e, e = ["*"]) : e = e.match(M); for (var n, r = 0, i = e.length; r < i; r++)n = e[r], pt.tweeners[n] = pt.tweeners[n] || [], pt.tweeners[n].unshift(t) }, prefilters: [ct], prefilter: function (e, t) { t ? pt.prefilters.unshift(e) : pt.prefilters.push(e) } }), w.speed = function (e, t, n) { var r = e && "object" == typeof e ? w.extend({}, e) : { complete: n || !n && t || g(e) && e, duration: e, easing: n && t || t && !g(t) && t }; return w.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in w.fx.speeds ? r.duration = w.fx.speeds[r.duration] : r.duration = w.fx.speeds._default), null != r.queue && !0 !== r.queue || (r.queue = "fx"), r.old = r.complete, r.complete = function () { g(r.old) && r.old.call(this), r.queue && w.dequeue(this, r.queue) }, r }, w.fn.extend({ fadeTo: function (e, t, n, r) { return this.filter(ae).css("opacity", 0).show().end().animate({ opacity: t }, e, n, r) }, animate: function (e, t, n, r) { var i = w.isEmptyObject(e), o = w.speed(t, n, r), a = function () { var t = pt(this, w.extend({}, e), o); (i || J.get(this, "finish")) && t.stop(!0) }; return a.finish = a, i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a) }, stop: function (e, t, n) { var r = function (e) { var t = e.stop; delete e.stop, t(n) }; return "string" != typeof e && (n = t, t = e, e = void 0), t && !1 !== e && this.queue(e || "fx", []), this.each(function () { var t = !0, i = null != e && e + "queueHooks", o = w.timers, a = J.get(this); if (i) a[i] && a[i].stop && r(a[i]); else for (i in a) a[i] && a[i].stop && ot.test(i) && r(a[i]); for (i = o.length; i--;)o[i].elem !== this || null != e && o[i].queue !== e || (o[i].anim.stop(n), t = !1, o.splice(i, 1)); !t && n || w.dequeue(this, e) }) }, finish: function (e) { return !1 !== e && (e = e || "fx"), this.each(function () { var t, n = J.get(this), r = n[e + "queue"], i = n[e + "queueHooks"], o = w.timers, a = r ? r.length : 0; for (n.finish = !0, w.queue(this, e, []), i && i.stop && i.stop.call(this, !0), t = o.length; t--;)o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1)); for (t = 0; t < a; t++)r[t] && r[t].finish && r[t].finish.call(this); delete n.finish }) } }), w.each(["toggle", "show", "hide"], function (e, t) { var n = w.fn[t]; w.fn[t] = function (e, r, i) { return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(ut(t, !0), e, r, i) } }), w.each({ slideDown: ut("show"), slideUp: ut("hide"), slideToggle: ut("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function (e, t) { w.fn[e] = function (e, n, r) { return this.animate(t, e, n, r) } }), w.timers = [], w.fx.tick = function () { var e, t = 0, n = w.timers; for (nt = Date.now(); t < n.length; t++)(e = n[t])() || n[t] !== e || n.splice(t--, 1); n.length || w.fx.stop(), nt = void 0 }, w.fx.timer = function (e) { w.timers.push(e), w.fx.start() }, w.fx.interval = 13, w.fx.start = function () { rt || (rt = !0, at()) }, w.fx.stop = function () { rt = null }, w.fx.speeds = { slow: 600, fast: 200, _default: 400 }, w.fn.delay = function (t, n) { return t = w.fx ? w.fx.speeds[t] || t : t, n = n || "fx", this.queue(n, function (n, r) { var i = e.setTimeout(n, t); r.stop = function () { e.clearTimeout(i) } }) }, function () { var e = r.createElement("input"), t = r.createElement("select").appendChild(r.createElement("option")); e.type = "checkbox", h.checkOn = "" !== e.value, h.optSelected = t.selected, (e = r.createElement("input")).value = "t", e.type = "radio", h.radioValue = "t" === e.value }(); var dt, ht = w.expr.attrHandle; w.fn.extend({ attr: function (e, t) { return z(this, w.attr, e, t, arguments.length > 1) }, removeAttr: function (e) { return this.each(function () { w.removeAttr(this, e) }) } }), w.extend({ attr: function (e, t, n) { var r, i, o = e.nodeType; if (3 !== o && 8 !== o && 2 !== o) return "undefined" == typeof e.getAttribute ? w.prop(e, t, n) : (1 === o && w.isXMLDoc(e) || (i = w.attrHooks[t.toLowerCase()] || (w.expr.match.bool.test(t) ? dt : void 0)), void 0 !== n ? null === n ? void w.removeAttr(e, t) : i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""), n) : i && "get" in i && null !== (r = i.get(e, t)) ? r : null == (r = w.find.attr(e, t)) ? void 0 : r) }, attrHooks: { type: { set: function (e, t) { if (!h.radioValue && "radio" === t && N(e, "input")) { var n = e.value; return e.setAttribute("type", t), n && (e.value = n), t } } } }, removeAttr: function (e, t) { var n, r = 0, i = t && t.match(M); if (i && 1 === e.nodeType) while (n = i[r++]) e.removeAttribute(n) } }), dt = { set: function (e, t, n) { return !1 === t ? w.removeAttr(e, n) : e.setAttribute(n, n), n } }, w.each(w.expr.match.bool.source.match(/\w+/g), function (e, t) { var n = ht[t] || w.find.attr; ht[t] = function (e, t, r) { var i, o, a = t.toLowerCase(); return r || (o = ht[a], ht[a] = i, i = null != n(e, t, r) ? a : null, ht[a] = o), i } }); var gt = /^(?:input|select|textarea|button)$/i, yt = /^(?:a|area)$/i; w.fn.extend({ prop: function (e, t) { return z(this, w.prop, e, t, arguments.length > 1) }, removeProp: function (e) { return this.each(function () { delete this[w.propFix[e] || e] }) } }), w.extend({ prop: function (e, t, n) { var r, i, o = e.nodeType; if (3 !== o && 8 !== o && 2 !== o) return 1 === o && w.isXMLDoc(e) || (t = w.propFix[t] || t, i = w.propHooks[t]), void 0 !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t] }, propHooks: { tabIndex: { get: function (e) { var t = w.find.attr(e, "tabindex"); return t ? parseInt(t, 10) : gt.test(e.nodeName) || yt.test(e.nodeName) && e.href ? 0 : -1 } } }, propFix: { "for": "htmlFor", "class": "className" } }), h.optSelected || (w.propHooks.selected = { get: function (e) { var t = e.parentNode; return t && t.parentNode && t.parentNode.selectedIndex, null }, set: function (e) { var t = e.parentNode; t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex) } }), w.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () { w.propFix[this.toLowerCase()] = this }); function vt(e) { return (e.match(M) || []).join(" ") } function mt(e) { return e.getAttribute && e.getAttribute("class") || "" } function xt(e) { return Array.isArray(e) ? e : "string" == typeof e ? e.match(M) || [] : [] } w.fn.extend({ addClass: function (e) { var t, n, r, i, o, a, s, u = 0; if (g(e)) return this.each(function (t) { w(this).addClass(e.call(this, t, mt(this))) }); if ((t = xt(e)).length) while (n = this[u++]) if (i = mt(n), r = 1 === n.nodeType && " " + vt(i) + " ") { a = 0; while (o = t[a++]) r.indexOf(" " + o + " ") < 0 && (r += o + " "); i !== (s = vt(r)) && n.setAttribute("class", s) } return this }, removeClass: function (e) { var t, n, r, i, o, a, s, u = 0; if (g(e)) return this.each(function (t) { w(this).removeClass(e.call(this, t, mt(this))) }); if (!arguments.length) return this.attr("class", ""); if ((t = xt(e)).length) while (n = this[u++]) if (i = mt(n), r = 1 === n.nodeType && " " + vt(i) + " ") { a = 0; while (o = t[a++]) while (r.indexOf(" " + o + " ") > -1) r = r.replace(" " + o + " ", " "); i !== (s = vt(r)) && n.setAttribute("class", s) } return this }, toggleClass: function (e, t) { var n = typeof e, r = "string" === n || Array.isArray(e); return "boolean" == typeof t && r ? t ? this.addClass(e) : this.removeClass(e) : g(e) ? this.each(function (n) { w(this).toggleClass(e.call(this, n, mt(this), t), t) }) : this.each(function () { var t, i, o, a; if (r) { i = 0, o = w(this), a = xt(e); while (t = a[i++]) o.hasClass(t) ? o.removeClass(t) : o.addClass(t) } else void 0 !== e && "boolean" !== n || ((t = mt(this)) && J.set(this, "__className__", t), this.setAttribute && this.setAttribute("class", t || !1 === e ? "" : J.get(this, "__className__") || "")) }) }, hasClass: function (e) { var t, n, r = 0; t = " " + e + " "; while (n = this[r++]) if (1 === n.nodeType && (" " + vt(mt(n)) + " ").indexOf(t) > -1) return !0; return !1 } }); var bt = /\r/g; w.fn.extend({ val: function (e) { var t, n, r, i = this[0]; { if (arguments.length) return r = g(e), this.each(function (n) { var i; 1 === this.nodeType && (null == (i = r ? e.call(this, n, w(this).val()) : e) ? i = "" : "number" == typeof i ? i += "" : Array.isArray(i) && (i = w.map(i, function (e) { return null == e ? "" : e + "" })), (t = w.valHooks[this.type] || w.valHooks[this.nodeName.toLowerCase()]) && "set" in t && void 0 !== t.set(this, i, "value") || (this.value = i)) }); if (i) return (t = w.valHooks[i.type] || w.valHooks[i.nodeName.toLowerCase()]) && "get" in t && void 0 !== (n = t.get(i, "value")) ? n : "string" == typeof (n = i.value) ? n.replace(bt, "") : null == n ? "" : n } } }), w.extend({ valHooks: { option: { get: function (e) { var t = w.find.attr(e, "value"); return null != t ? t : vt(w.text(e)) } }, select: { get: function (e) { var t, n, r, i = e.options, o = e.selectedIndex, a = "select-one" === e.type, s = a ? null : [], u = a ? o + 1 : i.length; for (r = o < 0 ? u : a ? o : 0; r < u; r++)if (((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !N(n.parentNode, "optgroup"))) { if (t = w(n).val(), a) return t; s.push(t) } return s }, set: function (e, t) { var n, r, i = e.options, o = w.makeArray(t), a = i.length; while (a--) ((r = i[a]).selected = w.inArray(w.valHooks.option.get(r), o) > -1) && (n = !0); return n || (e.selectedIndex = -1), o } } } }), w.each(["radio", "checkbox"], function () { w.valHooks[this] = { set: function (e, t) { if (Array.isArray(t)) return e.checked = w.inArray(w(e).val(), t) > -1 } }, h.checkOn || (w.valHooks[this].get = function (e) { return null === e.getAttribute("value") ? "on" : e.value }) }), h.focusin = "onfocusin" in e; var wt = /^(?:focusinfocus|focusoutblur)$/, Tt = function (e) { e.stopPropagation() }; w.extend(w.event, { trigger: function (t, n, i, o) { var a, s, u, l, c, p, d, h, v = [i || r], m = f.call(t, "type") ? t.type : t, x = f.call(t, "namespace") ? t.namespace.split(".") : []; if (s = h = u = i = i || r, 3 !== i.nodeType && 8 !== i.nodeType && !wt.test(m + w.event.triggered) && (m.indexOf(".") > -1 && (m = (x = m.split(".")).shift(), x.sort()), c = m.indexOf(":") < 0 && "on" + m, t = t[w.expando] ? t : new w.Event(m, "object" == typeof t && t), t.isTrigger = o ? 2 : 3, t.namespace = x.join("."), t.rnamespace = t.namespace ? new RegExp("(^|\\.)" + x.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, t.result = void 0, t.target || (t.target = i), n = null == n ? [t] : w.makeArray(n, [t]), d = w.event.special[m] || {}, o || !d.trigger || !1 !== d.trigger.apply(i, n))) { if (!o && !d.noBubble && !y(i)) { for (l = d.delegateType || m, wt.test(l + m) || (s = s.parentNode); s; s = s.parentNode)v.push(s), u = s; u === (i.ownerDocument || r) && v.push(u.defaultView || u.parentWindow || e) } a = 0; while ((s = v[a++]) && !t.isPropagationStopped()) h = s, t.type = a > 1 ? l : d.bindType || m, (p = (J.get(s, "events") || {})[t.type] && J.get(s, "handle")) && p.apply(s, n), (p = c && s[c]) && p.apply && Y(s) && (t.result = p.apply(s, n), !1 === t.result && t.preventDefault()); return t.type = m, o || t.isDefaultPrevented() || d._default && !1 !== d._default.apply(v.pop(), n) || !Y(i) || c && g(i[m]) && !y(i) && ((u = i[c]) && (i[c] = null), w.event.triggered = m, t.isPropagationStopped() && h.addEventListener(m, Tt), i[m](), t.isPropagationStopped() && h.removeEventListener(m, Tt), w.event.triggered = void 0, u && (i[c] = u)), t.result } }, simulate: function (e, t, n) { var r = w.extend(new w.Event, n, { type: e, isSimulated: !0 }); w.event.trigger(r, null, t) } }), w.fn.extend({ trigger: function (e, t) { return this.each(function () { w.event.trigger(e, t, this) }) }, triggerHandler: function (e, t) { var n = this[0]; if (n) return w.event.trigger(e, t, n, !0) } }), h.focusin || w.each({ focus: "focusin", blur: "focusout" }, function (e, t) { var n = function (e) { w.event.simulate(t, e.target, w.event.fix(e)) }; w.event.special[t] = { setup: function () { var r = this.ownerDocument || this, i = J.access(r, t); i || r.addEventListener(e, n, !0), J.access(r, t, (i || 0) + 1) }, teardown: function () { var r = this.ownerDocument || this, i = J.access(r, t) - 1; i ? J.access(r, t, i) : (r.removeEventListener(e, n, !0), J.remove(r, t)) } } }); var Ct = e.location, Et = Date.now(), kt = /\?/; w.parseXML = function (t) { var n; if (!t || "string" != typeof t) return null; try { n = (new e.DOMParser).parseFromString(t, "text/xml") } catch (e) { n = void 0 } return n && !n.getElementsByTagName("parsererror").length || w.error("Invalid XML: " + t), n }; var St = /\[\]$/, Dt = /\r?\n/g, Nt = /^(?:submit|button|image|reset|file)$/i, At = /^(?:input|select|textarea|keygen)/i; function jt(e, t, n, r) { var i; if (Array.isArray(t)) w.each(t, function (t, i) { n || St.test(e) ? r(e, i) : jt(e + "[" + ("object" == typeof i && null != i ? t : "") + "]", i, n, r) }); else if (n || "object" !== x(t)) r(e, t); else for (i in t) jt(e + "[" + i + "]", t[i], n, r) } w.param = function (e, t) { var n, r = [], i = function (e, t) { var n = g(t) ? t() : t; r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n) }; if (Array.isArray(e) || e.jquery && !w.isPlainObject(e)) w.each(e, function () { i(this.name, this.value) }); else for (n in e) jt(n, e[n], t, i); return r.join("&") }, w.fn.extend({ serialize: function () { return w.param(this.serializeArray()) }, serializeArray: function () { return this.map(function () { var e = w.prop(this, "elements"); return e ? w.makeArray(e) : this }).filter(function () { var e = this.type; return this.name && !w(this).is(":disabled") && At.test(this.nodeName) && !Nt.test(e) && (this.checked || !pe.test(e)) }).map(function (e, t) { var n = w(this).val(); return null == n ? null : Array.isArray(n) ? w.map(n, function (e) { return { name: t.name, value: e.replace(Dt, "\r\n") } }) : { name: t.name, value: n.replace(Dt, "\r\n") } }).get() } }); var qt = /%20/g, Lt = /#.*$/, Ht = /([?&])_=[^&]*/, Ot = /^(.*?):[ \t]*([^\r\n]*)$/gm, Pt = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, Mt = /^(?:GET|HEAD)$/, Rt = /^\/\//, It = {}, Wt = {}, $t = "*/".concat("*"), Bt = r.createElement("a"); Bt.href = Ct.href; function Ft(e) { return function (t, n) { "string" != typeof t && (n = t, t = "*"); var r, i = 0, o = t.toLowerCase().match(M) || []; if (g(n)) while (r = o[i++]) "+" === r[0] ? (r = r.slice(1) || "*", (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n) } } function _t(e, t, n, r) { var i = {}, o = e === Wt; function a(s) { var u; return i[s] = !0, w.each(e[s] || [], function (e, s) { var l = s(t, n, r); return "string" != typeof l || o || i[l] ? o ? !(u = l) : void 0 : (t.dataTypes.unshift(l), a(l), !1) }), u } return a(t.dataTypes[0]) || !i["*"] && a("*") } function zt(e, t) { var n, r, i = w.ajaxSettings.flatOptions || {}; for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]); return r && w.extend(!0, e, r), e } function Xt(e, t, n) { var r, i, o, a, s = e.contents, u = e.dataTypes; while ("*" === u[0]) u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type")); if (r) for (i in s) if (s[i] && s[i].test(r)) { u.unshift(i); break } if (u[0] in n) o = u[0]; else { for (i in n) { if (!u[0] || e.converters[i + " " + u[0]]) { o = i; break } a || (a = i) } o = o || a } if (o) return o !== u[0] && u.unshift(o), n[o] } function Ut(e, t, n, r) { var i, o, a, s, u, l = {}, c = e.dataTypes.slice(); if (c[1]) for (a in e.converters) l[a.toLowerCase()] = e.converters[a]; o = c.shift(); while (o) if (e.responseFields[o] && (n[e.responseFields[o]] = t), !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), u = o, o = c.shift()) if ("*" === o) o = u; else if ("*" !== u && u !== o) { if (!(a = l[u + " " + o] || l["* " + o])) for (i in l) if ((s = i.split(" "))[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) { !0 === a ? a = l[i] : !0 !== l[i] && (o = s[0], c.unshift(s[1])); break } if (!0 !== a) if (a && e["throws"]) t = a(t); else try { t = a(t) } catch (e) { return { state: "parsererror", error: a ? e : "No conversion from " + u + " to " + o } } } return { state: "success", data: t } } w.extend({ active: 0, lastModified: {}, etag: {}, ajaxSettings: { url: Ct.href, type: "GET", isLocal: Pt.test(Ct.protocol), global: !0, processData: !0, async: !0, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts: { "*": $t, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" }, contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, converters: { "* text": String, "text html": !0, "text json": JSON.parse, "text xml": w.parseXML }, flatOptions: { url: !0, context: !0 } }, ajaxSetup: function (e, t) { return t ? zt(zt(e, w.ajaxSettings), t) : zt(w.ajaxSettings, e) }, ajaxPrefilter: Ft(It), ajaxTransport: Ft(Wt), ajax: function (t, n) { "object" == typeof t && (n = t, t = void 0), n = n || {}; var i, o, a, s, u, l, c, f, p, d, h = w.ajaxSetup({}, n), g = h.context || h, y = h.context && (g.nodeType || g.jquery) ? w(g) : w.event, v = w.Deferred(), m = w.Callbacks("once memory"), x = h.statusCode || {}, b = {}, T = {}, C = "canceled", E = { readyState: 0, getResponseHeader: function (e) { var t; if (c) { if (!s) { s = {}; while (t = Ot.exec(a)) s[t[1].toLowerCase()] = t[2] } t = s[e.toLowerCase()] } return null == t ? null : t }, getAllResponseHeaders: function () { return c ? a : null }, setRequestHeader: function (e, t) { return null == c && (e = T[e.toLowerCase()] = T[e.toLowerCase()] || e, b[e] = t), this }, overrideMimeType: function (e) { return null == c && (h.mimeType = e), this }, statusCode: function (e) { var t; if (e) if (c) E.always(e[E.status]); else for (t in e) x[t] = [x[t], e[t]]; return this }, abort: function (e) { var t = e || C; return i && i.abort(t), k(0, t), this } }; if (v.promise(E), h.url = ((t || h.url || Ct.href) + "").replace(Rt, Ct.protocol + "//"), h.type = n.method || n.type || h.method || h.type, h.dataTypes = (h.dataType || "*").toLowerCase().match(M) || [""], null == h.crossDomain) { l = r.createElement("a"); try { l.href = h.url, l.href = l.href, h.crossDomain = Bt.protocol + "//" + Bt.host != l.protocol + "//" + l.host } catch (e) { h.crossDomain = !0 } } if (h.data && h.processData && "string" != typeof h.data && (h.data = w.param(h.data, h.traditional)), _t(It, h, n, E), c) return E; (f = w.event && h.global) && 0 == w.active++ && w.event.trigger("ajaxStart"), h.type = h.type.toUpperCase(), h.hasContent = !Mt.test(h.type), o = h.url.replace(Lt, ""), h.hasContent ? h.data && h.processData && 0 === (h.contentType || "").indexOf("application/x-www-form-urlencoded") && (h.data = h.data.replace(qt, "+")) : (d = h.url.slice(o.length), h.data && (h.processData || "string" == typeof h.data) && (o += (kt.test(o) ? "&" : "?") + h.data, delete h.data), !1 === h.cache && (o = o.replace(Ht, "$1"), d = (kt.test(o) ? "&" : "?") + "_=" + Et++ + d), h.url = o + d), h.ifModified && (w.lastModified[o] && E.setRequestHeader("If-Modified-Since", w.lastModified[o]), w.etag[o] && E.setRequestHeader("If-None-Match", w.etag[o])), (h.data && h.hasContent && !1 !== h.contentType || n.contentType) && E.setRequestHeader("Content-Type", h.contentType), E.setRequestHeader("Accept", h.dataTypes[0] && h.accepts[h.dataTypes[0]] ? h.accepts[h.dataTypes[0]] + ("*" !== h.dataTypes[0] ? ", " + $t + "; q=0.01" : "") : h.accepts["*"]); for (p in h.headers) E.setRequestHeader(p, h.headers[p]); if (h.beforeSend && (!1 === h.beforeSend.call(g, E, h) || c)) return E.abort(); if (C = "abort", m.add(h.complete), E.done(h.success), E.fail(h.error), i = _t(Wt, h, n, E)) { if (E.readyState = 1, f && y.trigger("ajaxSend", [E, h]), c) return E; h.async && h.timeout > 0 && (u = e.setTimeout(function () { E.abort("timeout") }, h.timeout)); try { c = !1, i.send(b, k) } catch (e) { if (c) throw e; k(-1, e) } } else k(-1, "No Transport"); function k(t, n, r, s) { var l, p, d, b, T, C = n; c || (c = !0, u && e.clearTimeout(u), i = void 0, a = s || "", E.readyState = t > 0 ? 4 : 0, l = t >= 200 && t < 300 || 304 === t, r && (b = Xt(h, E, r)), b = Ut(h, b, E, l), l ? (h.ifModified && ((T = E.getResponseHeader("Last-Modified")) && (w.lastModified[o] = T), (T = E.getResponseHeader("etag")) && (w.etag[o] = T)), 204 === t || "HEAD" === h.type ? C = "nocontent" : 304 === t ? C = "notmodified" : (C = b.state, p = b.data, l = !(d = b.error))) : (d = C, !t && C || (C = "error", t < 0 && (t = 0))), E.status = t, E.statusText = (n || C) + "", l ? v.resolveWith(g, [p, C, E]) : v.rejectWith(g, [E, C, d]), E.statusCode(x), x = void 0, f && y.trigger(l ? "ajaxSuccess" : "ajaxError", [E, h, l ? p : d]), m.fireWith(g, [E, C]), f && (y.trigger("ajaxComplete", [E, h]), --w.active || w.event.trigger("ajaxStop"))) } return E }, getJSON: function (e, t, n) { return w.get(e, t, n, "json") }, getScript: function (e, t) { return w.get(e, void 0, t, "script") } }), w.each(["get", "post"], function (e, t) { w[t] = function (e, n, r, i) { return g(n) && (i = i || r, r = n, n = void 0), w.ajax(w.extend({ url: e, type: t, dataType: i, data: n, success: r }, w.isPlainObject(e) && e)) } }), w._evalUrl = function (e) { return w.ajax({ url: e, type: "GET", dataType: "script", cache: !0, async: !1, global: !1, "throws": !0 }) }, w.fn.extend({ wrapAll: function (e) { var t; return this[0] && (g(e) && (e = e.call(this[0])), t = w(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function () { var e = this; while (e.firstElementChild) e = e.firstElementChild; return e }).append(this)), this }, wrapInner: function (e) { return g(e) ? this.each(function (t) { w(this).wrapInner(e.call(this, t)) }) : this.each(function () { var t = w(this), n = t.contents(); n.length ? n.wrapAll(e) : t.append(e) }) }, wrap: function (e) { var t = g(e); return this.each(function (n) { w(this).wrapAll(t ? e.call(this, n) : e) }) }, unwrap: function (e) { return this.parent(e).not("body").each(function () { w(this).replaceWith(this.childNodes) }), this } }), w.expr.pseudos.hidden = function (e) { return !w.expr.pseudos.visible(e) }, w.expr.pseudos.visible = function (e) { return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length) }, w.ajaxSettings.xhr = function () { try { return new e.XMLHttpRequest } catch (e) { } }; var Vt = { 0: 200, 1223: 204 }, Gt = w.ajaxSettings.xhr(); h.cors = !!Gt && "withCredentials" in Gt, h.ajax = Gt = !!Gt, w.ajaxTransport(function (t) { var n, r; if (h.cors || Gt && !t.crossDomain) return { send: function (i, o) { var a, s = t.xhr(); if (s.open(t.type, t.url, t.async, t.username, t.password), t.xhrFields) for (a in t.xhrFields) s[a] = t.xhrFields[a]; t.mimeType && s.overrideMimeType && s.overrideMimeType(t.mimeType), t.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest"); for (a in i) s.setRequestHeader(a, i[a]); n = function (e) { return function () { n && (n = r = s.onload = s.onerror = s.onabort = s.ontimeout = s.onreadystatechange = null, "abort" === e ? s.abort() : "error" === e ? "number" != typeof s.status ? o(0, "error") : o(s.status, s.statusText) : o(Vt[s.status] || s.status, s.statusText, "text" !== (s.responseType || "text") || "string" != typeof s.responseText ? { binary: s.response } : { text: s.responseText }, s.getAllResponseHeaders())) } }, s.onload = n(), r = s.onerror = s.ontimeout = n("error"), void 0 !== s.onabort ? s.onabort = r : s.onreadystatechange = function () { 4 === s.readyState && e.setTimeout(function () { n && r() }) }, n = n("abort"); try { s.send(t.hasContent && t.data || null) } catch (e) { if (n) throw e } }, abort: function () { n && n() } } }), w.ajaxPrefilter(function (e) { e.crossDomain && (e.contents.script = !1) }), w.ajaxSetup({ accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { script: /\b(?:java|ecma)script\b/ }, converters: { "text script": function (e) { return w.globalEval(e), e } } }), w.ajaxPrefilter("script", function (e) { void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET") }), w.ajaxTransport("script", function (e) { if (e.crossDomain) { var t, n; return { send: function (i, o) { t = w("<script>").prop({ charset: e.scriptCharset, src: e.url }).on("load error", n = function (e) { t.remove(), n = null, e && o("error" === e.type ? 404 : 200, e.type) }), r.head.appendChild(t[0]) }, abort: function () { n && n() } } } }); var Yt = [], Qt = /(=)\?(?=&|$)|\?\?/; w.ajaxSetup({ jsonp: "callback", jsonpCallback: function () { var e = Yt.pop() || w.expando + "_" + Et++; return this[e] = !0, e } }), w.ajaxPrefilter("json jsonp", function (t, n, r) { var i, o, a, s = !1 !== t.jsonp && (Qt.test(t.url) ? "url" : "string" == typeof t.data && 0 === (t.contentType || "").indexOf("application/x-www-form-urlencoded") && Qt.test(t.data) && "data"); if (s || "jsonp" === t.dataTypes[0]) return i = t.jsonpCallback = g(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback, s ? t[s] = t[s].replace(Qt, "$1" + i) : !1 !== t.jsonp && (t.url += (kt.test(t.url) ? "&" : "?") + t.jsonp + "=" + i), t.converters["script json"] = function () { return a || w.error(i + " was not called"), a[0] }, t.dataTypes[0] = "json", o = e[i], e[i] = function () { a = arguments }, r.always(function () { void 0 === o ? w(e).removeProp(i) : e[i] = o, t[i] && (t.jsonpCallback = n.jsonpCallback, Yt.push(i)), a && g(o) && o(a[0]), a = o = void 0 }), "script" }), h.createHTMLDocument = function () { var e = r.implementation.createHTMLDocument("").body; return e.innerHTML = "<form></form><form></form>", 2 === e.childNodes.length }(), w.parseHTML = function (e, t, n) { if ("string" != typeof e) return []; "boolean" == typeof t && (n = t, t = !1); var i, o, a; return t || (h.createHTMLDocument ? ((i = (t = r.implementation.createHTMLDocument("")).createElement("base")).href = r.location.href, t.head.appendChild(i)) : t = r), o = A.exec(e), a = !n && [], o ? [t.createElement(o[1])] : (o = xe([e], t, a), a && a.length && w(a).remove(), w.merge([], o.childNodes)) }, w.fn.load = function (e, t, n) { var r, i, o, a = this, s = e.indexOf(" "); return s > -1 && (r = vt(e.slice(s)), e = e.slice(0, s)), g(t) ? (n = t, t = void 0) : t && "object" == typeof t && (i = "POST"), a.length > 0 && w.ajax({ url: e, type: i || "GET", dataType: "html", data: t }).done(function (e) { o = arguments, a.html(r ? w("<div>").append(w.parseHTML(e)).find(r) : e) }).always(n && function (e, t) { a.each(function () { n.apply(this, o || [e.responseText, t, e]) }) }), this }, w.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (e, t) { w.fn[t] = function (e) { return this.on(t, e) } }), w.expr.pseudos.animated = function (e) { return w.grep(w.timers, function (t) { return e === t.elem }).length }, w.offset = { setOffset: function (e, t, n) { var r, i, o, a, s, u, l, c = w.css(e, "position"), f = w(e), p = {}; "static" === c && (e.style.position = "relative"), s = f.offset(), o = w.css(e, "top"), u = w.css(e, "left"), (l = ("absolute" === c || "fixed" === c) && (o + u).indexOf("auto") > -1) ? (a = (r = f.position()).top, i = r.left) : (a = parseFloat(o) || 0, i = parseFloat(u) || 0), g(t) && (t = t.call(e, n, w.extend({}, s))), null != t.top && (p.top = t.top - s.top + a), null != t.left && (p.left = t.left - s.left + i), "using" in t ? t.using.call(e, p) : f.css(p) } }, w.fn.extend({ offset: function (e) { if (arguments.length) return void 0 === e ? this : this.each(function (t) { w.offset.setOffset(this, e, t) }); var t, n, r = this[0]; if (r) return r.getClientRects().length ? (t = r.getBoundingClientRect(), n = r.ownerDocument.defaultView, { top: t.top + n.pageYOffset, left: t.left + n.pageXOffset }) : { top: 0, left: 0 } }, position: function () { if (this[0]) { var e, t, n, r = this[0], i = { top: 0, left: 0 }; if ("fixed" === w.css(r, "position")) t = r.getBoundingClientRect(); else { t = this.offset(), n = r.ownerDocument, e = r.offsetParent || n.documentElement; while (e && (e === n.body || e === n.documentElement) && "static" === w.css(e, "position")) e = e.parentNode; e && e !== r && 1 === e.nodeType && ((i = w(e).offset()).top += w.css(e, "borderTopWidth", !0), i.left += w.css(e, "borderLeftWidth", !0)) } return { top: t.top - i.top - w.css(r, "marginTop", !0), left: t.left - i.left - w.css(r, "marginLeft", !0) } } }, offsetParent: function () { return this.map(function () { var e = this.offsetParent; while (e && "static" === w.css(e, "position")) e = e.offsetParent; return e || be }) } }), w.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function (e, t) { var n = "pageYOffset" === t; w.fn[e] = function (r) { return z(this, function (e, r, i) { var o;
2 if (y(e) ? o = e : 9 === e.nodeType && (o = e.defaultView), void 0 === i) return o ? o[t] : e[r]; o ? o.scrollTo(n ? o.pageXOffset : i, n ? i : o.pageYOffset) : e[r] = i }, e, r, arguments.length) } }), w.each(["top", "left"], function (e, t) { w.cssHooks[t] = _e(h.pixelPosition, function (e, n) { if (n) return n = Fe(e, t), We.test(n) ? w(e).position()[t] + "px" : n }) }), w.each({ Height: "height", Width: "width" }, function (e, t) { w.each({ padding: "inner" + e, content: t, "": "outer" + e }, function (n, r) { w.fn[r] = function (i, o) { var a = arguments.length && (n || "boolean" != typeof i), s = n || (!0 === i || !0 === o ? "margin" : "border"); return z(this, function (t, n, i) { var o; return y(t) ? 0 === r.indexOf("outer") ? t["inner" + e] : t.document.documentElement["client" + e] : 9 === t.nodeType ? (o = t.documentElement, Math.max(t.body["scroll" + e], o["scroll" + e], t.body["offset" + e], o["offset" + e], o["client" + e])) : void 0 === i ? w.css(t, n, s) : w.style(t, n, i, s) }, t, a ? i : void 0, a) } }) }), w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function (e, t) { w.fn[t] = function (e, n) { return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t) } }), w.fn.extend({ hover: function (e, t) { return this.mouseenter(e).mouseleave(t || e) } }), w.fn.extend({ bind: function (e, t, n) { return this.on(e, null, t, n) }, unbind: function (e, t) { return this.off(e, null, t) }, delegate: function (e, t, n, r) { return this.on(t, e, n, r) }, undelegate: function (e, t, n) { return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n) } }), w.proxy = function (e, t) { var n, r, i; if ("string" == typeof t && (n = e[t], t = e, e = n), g(e)) return r = o.call(arguments, 2), i = function () { return e.apply(t || this, r.concat(o.call(arguments))) }, i.guid = e.guid = e.guid || w.guid++ , i }, w.holdReady = function (e) { e ? w.readyWait++ : w.ready(!0) }, w.isArray = Array.isArray, w.parseJSON = JSON.parse, w.nodeName = N, w.isFunction = g, w.isWindow = y, w.camelCase = G, w.type = x, w.now = Date.now, w.isNumeric = function (e) { var t = w.type(e); return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e)) }, "function" == typeof define && define.amd && define("jquery", [], function () { return w }); var Jt = e.jQuery, Kt = e.$; return w.noConflict = function (t) { return e.$ === w && (e.$ = Kt), t && e.jQuery === w && (e.jQuery = Jt), w }, t || (e.jQuery = e.$ = w), w }); 3 4/*! jQuery UI - v1.12.1 - 2017-05-29 5* http://jqueryui.com 6* Includes: widget.js 7* Copyright jQuery Foundation and other contributors; Licensed MIT */ 8 9(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){t.ui=t.ui||{},t.ui.version="1.12.1";var e=0,i=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},l=e.split(".")[0];e=e.split(".")[1];var h=l+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][h.toLowerCase()]=function(e){return!!t.data(e,h)},t[l]=t[l]||{},n=t[l][e],o=t[l][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:l,widgetName:e,widgetFullName:h}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o}
vendor: 9,431 bytes, lines 9-77
9,t.widget.extend=function(e){for(var s,n,o=i.call(arguments,1),a=0,r=o.length;r>a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget}); 10$.widget("custom.pathway", { 11 // default options 12 options: { 13 14 showNode: false, 15 questionNode: "g", 16 resultNode: "i", 17 startFile: "Questions-1", 18 baseQuestionMasterFile: "Questions-Master", 19 ////loaded from the _create 20 baseQuestionMasterFileContent: "", 21 scorexml: "", 22 optionhtml: "", 23 24 Surveyhtml: "", 25 FAQhtml: "", 26 baseQuestionXMLPath: "/Content/PathwayData/Questions/", 27 baseResultXMLPath: "/Content/PathwayData/Results/", 28 //todo: read dynamically from the _create 29 pagenum: ['m-NursingHome', 'm-Dementia', 'm-age', 'm-FunctionalStatus', 'm-CoMorbidity', 'm-b-1', 'm-b-2', 'm-b-3', 'm-b-4'], 30 //todo: not been used? 31 pathmode: "a", 32 arrayindex: 1, 33 //warning: is it safe to default to i1? 34 savednavpage: "i1", 35 //warning: is it safe? 36 savedCurrentFile: "Questions-1", 37 38 //results files 39 scorefile: "/Content/PathwayData/Results/Section-A-Risk.xml", 40 //todo: update to thepath + file name 41 treatmentoptions: "/Content/PathwayData/Results/MyTreatmentOptions.html", 42 43 FAQ: "/Content/PathwayData/Results/FAQ.html", 44 SurveyTemplate: "/Content/PathwayData/Results/SurveyTemplate.html", 45 //find a good way to manage the collection like "pagenum". 46 sectionAResults: ["QOL", "Symptoms", "Function", "Survival"], 47 _setResultRowRunnerIndex: 0, 48 _setChoiceRowRunnerIndex: 0, 49 sectionBResults: ["Control of your time", "Travel", "Surgery", "Hospitalization"], 50 SectionBhighlightarray: [], 51 //logical file path though out the code 52 currentFile: "", 53 currentFilePath: "", 54 //'more info' options 55 modalcontainerid: "#popup-moreinfo", 56 moreinfobtn: '<button type="button" class="btn printhide breathing-button" data-toggle="modal" data-target="#popup-moreinfo" >More Information</button>', 57 serverSessionUrl: "", 58 urlinfo: "", 59 resultID: "", 60 clickedbuttonarray: [], 61 clickedbuttonarraysession: "", 62 deserilizeLibUrl: "/scripts/ckmpda/jquery.deserialize.js", 63 emptyresult: true, 64 _currentPageNumber: 0, 65 enableCache: false, 66 tracker: [] 67 }, 68 69 // The constructor 70 _create: function () { 71 var pathway = this; 72 var masterFilePath = pathway.options.baseQuestionXMLPath + pathway.options.baseQuestionMasterFile + ".xml"; 73 var scorefile = this.options.scorefile; 74 75 //get the master file before loading the widget. 76 console.log('loading master file... from ' + masterFilePath); 77 $.ajax({
78 url: masterFilePath, 79 type: 'GET', 80 success: function (masterxml) { 81 82 $.ajax({ 83 url: scorefile, success: function (scorexml) { 84 console.log("score file loaded"); 85 $.ajax({ 86 url: pathway.options.treatmentoptions, success: function (optionhtml) { 87 console.log("My treatment options html loaded"); 88 $.ajax({ 89 url: pathway.options.FAQ, success: function (FAQhtml) { 90 console.log("FAQ html loaded"); 91 $.ajax({ 92 url: pathway.options.SurveyTemplate, success: function (Surveyhtml) { 93 94 //put the content to the memory. 95 pathway.options.scorexml = scorexml; 96 console.log(scorexml); 97 pathway.options.optionhtml = optionhtml; 98 pathway.options.FAQhtml = FAQhtml; 99 pathway.options.Surveyhtml = Surveyhtml; 100 101 pathway.options.baseQuestionMasterFileContent = masterxml; 102 103 pathway.element.addClass("pathway"); 104 105 pathway._refresh(); 106 107 }, cache: pathway.options.enableCache 108 }) 109 }, cache: pathway.options.enableCache 110 }) 111 }, cache: pathway.options.enableCache 112 }) 113 }, cache: pathway.options.enableCache 114 }); 115 }, 116 error: function () { 117 pathway.element.append("cannot find master file, please check your file path. the current path is " + masterFilePath); 118 } 119 }) 120 }, 121 122 // Called when created, and later when changing options 123 _refresh: function () { 124 var me = this; 125 me.element.empty(); 126 var urlinfo = me.options.urlinfo; 127 var resultID = me.options.resultID; 128 var clickedbuttonarraysession = me.options.clickedbuttonarraysession; 129 if (me.options.baseQuestionMasterFileContent.length === 0) { 130 me.element.append("cannot find master file, please check your file path."); 131 return; 132 } 133 134 if (resultID !== undefined && resultID.length > 0) { 135 console.log("passed in page number"); 136 me.options.savedCurrentFile = "Section-A-Result"; 137 me._setCurrentFile("result", me.options.savedCurrentFile, resultID, 0); 138 } 139 else { 140 $.when($.ajax(this._setCurrentFile("g", me.options.startFile, me.options.questionNode, me.options.arrayindex))).then(function () { 141 if (urlinfo !== undefined && urlinfo.length > 0) { 142 143 // console.log("passed in url info: " + urlinfo); 144 var arrayinfo = urlinfo.split('&'); 145 me._loadPage(arrayinfo, 0); 146 } 147 else if (clickedbuttonarraysession != undefined && clickedbuttonarraysession.length > 0) { 148 var arrayinfo = clickedbuttonarraysession.split(','); 149 var showPopup = false; 150 me._loadPage(arrayinfo, 0, showPopup); 151 } 152 153 }); 154 155 }; 156 157 }, 158 _loadPage: function (array, i, showPopup) { 159 var pathway = this; 160 var clickedbtn = array[i]; 161 var btn = $("input[id='" + clickedbtn + "']"); 162 163 if (i <= 8) { 164 i = i + 1; 165 $.when($.ajax(this._optionBtnClick(btn, showPopup))).then(function () { 166 pathway._loadPage(array, i, showPopup); 167 }); 168 } 169 else { 170 console.log("data loading completed."); 171 } 172 173 }, 174 175 _setCurrentFile: function (type, file, page, aindex) { 176 this.options.currentFile = file; 177 console.log("current file is " + file); 178 me = this;
179 ////////////////////enable this part back after complete/////////////////////// 180 //if( me.options.emptyresult = true){ 181 // $("#Result").html(' <div class="alert alert-info">Please complete the survey first.</div>'); 182 //}; 183 184 //type "g": result is not determined, loading next question according to last question logic 185 //type "i": result is determined, loading next question from array 186 //type "m": section A questions are determined, loading section B question 187 //type "result": load result 188 if (type === "g") { 189 190 this.options.currentFilePath = this.options.baseQuestionXMLPath + this.options.currentFile + ".xml"; 191 console.log('loading file... from ' + this.options.currentFilePath); 192 $.ajax({ 193 url: me.options.currentFilePath, 194 type: 'GET', 195 success: function (xml) { 196 console.log("file loaded"); 197 me._setPage(page, xml, type); 198 }, 199 error: function () { 200 me.element.append("cannot find file, please check your file path. the current path is " + me.options.currentFilePath); 201 } 202 }) 203 } 204 else if (type === "m") { 205 206 this.options.currentFilePath = this.options.baseQuestionXMLPath + this.options.baseQuestionMasterFile + ".xml"; 207 //page = masterpageID; 208 me._setPage(page, me.options.baseQuestionMasterFileContent, type); 209 } 210 else if (type === "result") { 211 me.options.emptyresult = true; 212 this.options.currentFilePath = this.options.baseResultXMLPath + this.options.savedCurrentFile + ".xml"; 213 this._setResult(page) //i1, i3 ii3 in Section-A-Result 214 } 215 else { 216 217 alert("cannot find type, the type has to be either g/m/result"); 218 } 219 me.options.emptyresult = false; 220 }, 221 222 223 224 _setPage: function (pageId, xml, type) { 225 console.log('_setPage_type: ' + type); 226 console.log('_setPage_pageId: ' + pageId); 227 //by the time calling _setPage(), the master content has been loaded in the memroy around on _create(). 228 229 var me = this; 230 var pagenum = this.options.pagenum; 231 232 //get command info by the pass in pageId 233 var page = $(xml).find('Page[id="' + pageId + '"]').first(); 234 235 var category = $(page).attr("category"); 236 237 //means the page is already master page when the type is "i". 238 239 var masterPage = type === "i" ? page : $(me.options.baseQuestionMasterFileContent).find('Page[id="' + $(page).attr("master-id") + '"]').first(); 240 241 //this logically cannot happen on here. but just in case. 242 if (masterPage.length == 0) masterPage = page; 243 244 245 var currentMasterPage = $(masterPage).attr("id"); 246 //declare 'container' for path way container 247 var container = $("<div>", 248 { 249 "class": "node well well-sm", 250 "style": "margin-bottom: 5px;", 251 "data-masterPageId": currentMasterPage 252 }) 253 254 console.log("current master question id: " + currentMasterPage); 255 256 var radioclass = ""; 257 258 var masterPageIndex = pagenum.indexOf(currentMasterPage); 259 pagenum.splice(pagenum.indexOf(currentMasterPage), 1); 260 console.log("question queue: " + pagenum); 261 262 me.options._currentPageNumber++; 263 console.log("current question number: " + me.options._currentPageNumber); 264 265 //load question description 266 var t = $(masterPage).find('label').text(); 267 //me._tracker(t,null); 268 me.description = $("<h4>", { 269 text: me.options._currentPageNumber + ". " + t 270 }); 271 if ($(masterPage).find('label').attr("rate") == "Y") { 272 var rateinfo = '</br><em>(5 - Very Important | 4 - Fairly Important | 3 - Important | 2 - Slightly | 1 - Not at all)</em>'; 273 me.description.append(rateinfo); 274 }; 275 276 277 me.description.appendTo(container); 278 me._setNode(me.description, pageId); 279 //< em > " 5 - Very important | 4 - Somewhat important | 3 - Unsure | 2 - somewhat unimportant | 1 - Unimportant) " < /em > 280 //create list in question container with option buttons 281 me.optionContainer = $("<ul>", { 282 style: "list-style-type: none;" 283 // "class": "list-inline" 284 // "class": "pathway-options-container" 285 }).appendTo(container); 286 287 //find button info from masterpage 288 $(masterPage).find('button').each(function (i, btn) { 289 var option = $("<li>", { 290 // "display": "inline-block" 291 // "class": "pathway-options", 292 293 }); 294 295 //append button to container 296 option.appendTo(me.optionContainer); 297 298 //find the command from command xml file, we can refresh the old btn memory with the new. 299 //so the btn before is master btn and after is commend btn. 300 var commandBtn = $(page).find("button[master-id=" + $(btn).attr("id") + "]"); 301 var file = commandBtn.attr("File"), 302 navPage = commandBtn.attr("navpage"); 303 var highlightpart; 304 if (category !== undefined && $(btn).attr("highlight") !== undefined && $(btn).attr("highlight").length > 0) { 305 highlightpart = category + "-" + $(btn).attr("highlight") 306 } 307 308 //these two if statement contains the navigation logic between command page and master page. 309 if (file === undefined) file = me.options.currentFile; 310 311 if (navPage === undefined && me.options.pagenum.length >= 1) { 312 navPage = me.options.pagenum[0]; 313 } 314 var radioID = pageId + $(btn).attr("id"); 315 316 //var optionLblandRadio = '\<label for="' + radioID + '" >' + $(btn).text() + '</label>'; 317 var $lblradio = $("<label>", { 318 }); 319 320 321 322 var optionBtn = $("<input>", { 323 "type": "radio", 324 325 "name": pageId, 326 "id": radioID, 327 "value": radioID, 328 //data attributes for click event. 329 "data-masterId": $(btn).attr("id"), 330 "data-rc": $(btn).attr("Riskscore"), 331 "data-file": file, 332 "data-nextpage": navPage, 333 "data-masterpageindex": masterPageIndex, 334 "data-highlight": highlightpart, 335 "data-moreinfo": $(btn).attr("moreinfo"), 336 "data-moreinfoimage": $(btn).attr("moreinfoimage"), 337 "data-moreinfotext": $(btn).attr("moreinfotext") 338 }); 339 340 $lblradio.append(optionBtn, " ", $(btn).text()); 341 342 if ($(btn).text().length <= 5) { 343 radioclass = "option-rate"; 344 } 345 else if ($(btn).text().length > 5) { 346 radioclass = "option-list"; 347 } 348 349 350 option.append($lblradio); 351 352 353 me._setNode(optionBtn, navPage); 354 //add click attribute to button. 355 356 357 optionBtn.click(function () { 358 var showPopup = true; 359 me._optionBtnClick(this, showPopup); 360 }) 361 362 }); 363 364 365 container.addClass(radioclass); 366 367 container.appendTo(me.element); 368 369 $('label[data-toggle="tooltip"]').tooltip(); 370 371 }, 372 373 _optionBtnClick: function (btn, showPopup) { 374 375 var clickbuttonarray = []; 376 var highlightarray = []; 377 var me = this; 378 modalcontainerid = me.options.modalcontainerid; 379 380 var btnNavPage = $(btn).data("nextpage"), 381 masterPageIndex = $(btn).data("masterpageindex"), 382 file = $(btn).data("file"), 383 384 moreinfoflag = $(btn).data("moreinfo"), 385 moreinfoimage = $(btn).data("moreinfoimage"), 386 moreinfotext = $(btn).data("moreinfotext"); 387 388 var printableContainer = $("<div>", 389 { 390 "class": "hiddendiv", 391 392 }) 393 var container = $(btn).parents("div.node"); 394 // clean up printablecontainer 395 container.children("div").remove(); 396 container.children("button").remove(); 397 container.append(printableContainer); 398 399 400 401 402 //do nothing if clicked a already selected pathway option. 403 if ($(btn).hasClass("pathway-options-clicked") && showPopup) { 404 me._ShowPopup(container, moreinfotext, moreinfoimage, printableContainer, moreinfoflag); 405 406 return; 407 } else { 408 if (showPopup) { 409 $("div#btn_box").hide(); 410 me._scrolltoBottom(); 411 } 412 413 }; 414 //remove all clicked effect from all button. 415 416 this.options._currentPageNumber = $(btn).parent("label").parents(".node").find("h4").text().charAt(0);
417 if ($(btn).parent("label").parent("li").siblings().find("input").hasClass("pathway-options-clicked")) { 418 console.log("remove other input class"); 419 $(btn).parent("label").parents(".node").nextAll().each(function (i) { 420 421 422 console.log("existing array content: " + me.options.pagenum); 423 var masterPageId = $(this).data("masterpageid"); 424 me.options.pagenum.splice(i, 0, masterPageId);//insert to index 0; 425 console.log("recovered array content: " + me.options.pagenum); 426 $(".btn_surveySubmit").parents('.well').remove(); 427 }); 428 429 $(btn).parent("label").parents(".node").nextAll().remove(); 430 $(btn).parent("label").parent("li").siblings().find("input").removeClass("pathway-options-clicked"); 431 $(btn).parent("label").parent("li").siblings().removeClass("clicked"); 432 } 433 434 //apply the click effect to the clicked option. 435 $(btn).addClass("pathway-options-clicked"); 436 var q = $(btn).parents('.node').find('h4').text(); 437 var a = $(btn).parent("label").text(); 438 me._tracker(q, a); 439 $(btn).parent("label").parent("li").addClass("clicked"); 440 441 $(".pathway-options-clicked").each(function (i, e) { 442 clickbuttonarray.push(this.id); 443 var highlight = $(e).data("highlight"); 444 if (highlight !== undefined) { 445 highlightarray.push(highlight); 446 } 447 }); 448 console.log("page: " + file + "/" + btnNavPage); 449 450 var btnNavPageType = btnNavPage === undefined ? "result" : btnNavPage.slice(0, 1); 451 //save the survey progress, even it is unfinished. 452 me._savesession(clickbuttonarray, me.options.savednavpage, highlightarray); 453 454 if (btnNavPageType === "i") { 455 me._setCurrentFile("m", file, me.options.pagenum[0], 0); 456 me.options.savednavpage = btnNavPage; 457 me.options.savedCurrentFile = file; 458 } 459 else if (btnNavPageType === "m") { 460 me._setCurrentFile(btnNavPageType, file, me.options.pagenum[masterPageIndex], masterPageIndex); 461 } 462 else if (btnNavPageType === "g") { 463 me._setCurrentFile(btnNavPageType, file, btnNavPage, masterPageIndex); 464 } 465 else if (btnNavPageType === "result" ) { //and also all questions has been answered 466 console.log('reached the end of the question array, showing results on ' + me.options.savedCurrentFile + "/" + me.options.savednavpage); 467 if (me.options.pagenum.length != 0 && me.options.pagenum.length != 1 && me.options.pagenum[0] !== undefined) return; 468 // generate highlight array 469 if (me.options.SectionBhighlightarray != undefined && me.options.SectionBhighlightarray.length > 0) { 470 highlightarray = me.options.SectionBhighlightarray.split(','); 471 } 472 me._calculateRiskScore(); 473 474 //save the completed survey progress to the session. 475 me._savesession(clickbuttonarray, me.options.savednavpage, highlightarray); 476 477 if ($(".btn_surveySubmit").length == 0) { 478 var btnsubmit = $("<a>", 479 { 480 "class": "btn btn-success btn-lg", 481 "text": "Continue", 482 "role": "button" 483 }); 484 485 $(btnsubmit).click(function () { 486 $(this).html( 487 '<span class="spinner-border spinner-border-sm" role="status"' + 488 'aria - hidden="true"></span> Loading...' 489 ); 490 setTimeout(function () { 491 /*redirect the form after 1 sec*/ 492 window.location.href = "/CKMPathway/AdditionalConsiderations"; 493 }, 2000); 494 }); 495 496 $("div#btn_box").show(); 497 var btnStartover = $("<a>", 498 { 499 "class": "btn btn-alert", 500 "id": "btnstartover", 501 "href": "#", 502 "text": "Start Over", 503 "href": "/CKMPathway/PathwaySurveyStartOver" 504 }); 505 } 506 507 var result = $('#pathway-content'); 508 var well = $("<div class='node well well-sm option-rate'>"); 509 510 well.append(btnsubmit); 511 well.append(btnStartover); 512 result.append(well); 513 result.prepend(well.clone(true,true)); 514 } 515 else { 516 console.log("invalid nav page type"); 517 alert("invalid nav page type"); 518 } 519 520 $(btn).parent("li").siblings().find("button").removeClass("pathway-options-clicked"); 521 522 // clean up modal
523 $(modalcontainerid).find(".modal-body").find(".description").html(""); 524 $(modalcontainerid).find(".modal-body").find(".img-content").html(""); 525 526 527 if (moreinfoflag == 'Y') { 528 if (container.find('label.more-info1').length == 0) { 529 var moreinfolbl = $('<label class="more-info1 alert alert-info">Click the answer again to see more information about your choice</label>'); 530 container.append(moreinfolbl); 531 } 532 533 if (showPopup) { 534 me._ShowPopup(container, moreinfotext, moreinfoimage, printableContainer, moreinfoflag); 535 536 } 537 } 538 else { 539 container.find('label.more-info1').remove(); 540 } 541 542 543 }, 544 _scrolltoBottom: function () { 545 //$('html, body').animate({ scrollTop: $("#lockbottom").offset().top }, 'slow'); 546 //$('html, body').animate({ scrollBottom: $("#lockbottom").offset().bottom }, 'slow'); 547 //$('html, body').animate({ scrollTop: $('.w-section.footer').prop("scrollHeight") }, 10); 548 //$('html, body').animate({ scrollTop: $('.w-section.footer.center').prop("scrollHeight") }, 10); 549 //$('html, body').animate({ 550 // scrollTop: ($('.node.well.well-sm').last().offset().top - 421) 551 //}, 500); 552 553 $('html, body').animate({ 554 scrollTop: ($('#lockbottom').offset().top - 520) 555 }, 'slow'); 556 557 return false; 558 }, 559 _ShowPopup: function (container, moreinfotext, moreinfoimage, printableContainer, moreinfoflag) { 560 var image = ""; 561 if (moreinfoimage !== undefined && moreinfoimage.length > 0) { 562 image = '<img width="100%" class="test" src="' + moreinfoimage + '">'; 563 }; 564 var text = moreinfotext !== undefined || moreinfotext.length > 0 ? "<p>" + moreinfotext + "</p>" : ""; 565 //check moreinfo flag. if Y, check image and text 566 567 568 //append more info button 569 var moreinfoBtn = $(this.options.moreinfobtn); 570 moreinfoBtn.css('display', 'none'); 571 container.append(moreinfoBtn); 572 573 574 //append printable more info content 575 576 if (image.length > 0) printableContainer.append(image); 577 printableContainer.append(text); 578 579 //append more information on modal 580 if (moreinfoflag == 'Y') { 581 moreinfoBtn.click(function () { 582 var modalBody = $(me.options.modalcontainerid).find(".modal-body"); 583 modalBody.find(".description").empty(); 584 modalBody.find(".img-content").empty(); 585 modalBody.find(".description").append(moreinfotext); 586 modalBody.find(".img-content").append(image); 587 }); 588 moreinfoBtn.click(); 589 } 590 }, 591 _savesession: function (clickedbtnarray, resultid, highlightarray) { 592 if (this.options.serverSessionUrl === undefined) { console.log('cannot find save session url'); return false;} 593 if (this.options.serverSessionUrl.length == 0) { console.log('cannot find save session url'); return false; } 594 595 console.log("**Start to Save Session:**"); 596 console.log("**Clicked BTN Array Session:" + clickedbtnarray.toString() + "**"); 597 console.log("**Result ID Session:" + resultid + "**"); 598 console.log("**Highlighted Array Session:" + highlightarray.toString() + "**"); 599 600 $.post(this.options.serverSessionUrl, 601 { 602 "clickedbtnarray": clickedbtnarray.toString() 603 ,"resultid": resultid 604 , "highlightarray": highlightarray.toString() 605 , "tracker": this.options.tracker 606 } 607 ,function () { 608 console.log("Session Saved"); 609 }); 610 }, 611 _setResult: function (sectionAResultPageId) { 612 var result = $("#Result"); 613 console.log("the element is:" + result); 614 var me = this; 615 var highlightarray = []; 616 // check if highlight array is passed from url, if not, get it from exsiting clicked button. 617 if (me.options.SectionBhighlightarray != undefined && me.options.SectionBhighlightarray.length > 0) { 618 highlightarray = me.options.SectionBhighlightarray.split(','); 619 } 620 else { 621 //collect all selected options for highlight. 622 $(".pathway-options-clicked").each(function (i, e) { 623 var highlightinfo = $(e).data("highlight"); 624 if (highlightinfo !== undefined) { 625 highlightarray.push(highlightinfo); 626 } 627 }); 628 } 629 var optionhtml = me.options.optionhtml; 630 631 var scorexml = me.options.scorexml; 632 var riskscore = sessionStorage.getItem("riskscore") 633 634 635 //setup New section A result table with mouse over compare function 636 637 /*setup section A result table and then load the rest of static results with highlight.*/ 638 $.ajax({
639 url: this.options.currentFilePath, success: function (xml) { 640 $(xml).find('Pages').each(function () { 641 $(xml).find('Page[id="' + sectionAResultPageId + '"]').each(function () { 642 var page = this; 643 // #region prognosis region 644 //prognosis answer div 645 var divprognosis = $("<div>", { 646 "class": "pda-result-content-grid pda-result-content-grid-prognosis", 647 "id": "pda-result-content-prognosis" 648 }); 649 // prognosis title 650 var divprognosistitle = '<div class="c-title"> <h2> My Well-Being</h2></div >'; 651 divprognosis.append(divprognosistitle); 652 653 // #region what matters to me region 654 //what matters to me div 655 var divwmtm = $("<div>", { 656 "class": "pda-result-content-grid pda-result-content-grid-wmtm", 657 "id": "pda-result-content-wmtm" 658 }); 659 // what matters to me title 660 var divwmtmtitle = '<div class="c-title"><h2>What Matters to Me</h2></div>' 661 662 divwmtm.append(divwmtmtitle); 663 664 665 666 //#endregion 667 668 var isMobile = false; 669 var width = screen.width; 670 //if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) 671 // || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.
671substr(0, 4))) { 672 // isMobile = true; 673 //} 674 if (width < 1024) { 675 var isMobile = true; 676 } 677 if (isMobile == true) { 678 var divprognosismenu = $("<div>", { 679 "class": "nav nav-tabs roundtab", 680 "id": "myTabprognosis" 681 }); 682 683 var divwmtmmenu = $("<div>", { 684 "class": "nav nav-tabs roundtab", 685 "id": "myTabwmtm" 686 }); 687 divwmtm.append(divwmtmmenu); 688 } 689 else { 690 var divprognosismenu = $("<div>", { 691 "class": "pda-menu-prognosis" 692 }); 693 694 //what matters to me menu 695 var divwmtmmenu = $("<div>", { 696 "class": "pda-menu-wmtm" 697 }); 698 } 699 700 //1. Treatment Options 701 702 if (me.options.showNode) { 703 result.append("section A result: " + me.options.savednavpage); 704 result.append(" risk score: " + riskscore); 705 } 706 707 708 result.append(optionhtml); 709 710 //2. My Prognosis 711 me._setResutlRowRunner(page, divprognosismenu, divprognosis, me.options.sectionAResults[0], $(page).attr(me.options.sectionAResults[0]), scorexml, isMobile); 712 result.append(divprognosis) 713 me.options._setResultRowRunnerIndex = 0; 714 715 //3. what matter's to me 716 me._setChoiceResultRowRunner(divwmtmmenu, divwmtm, me.options.sectionBResults[me.options._setChoiceRowRunnerIndex], highlightarray, isMobile); 717 result.append(divwmtm) 718 me.options._setChoiceRowRunnerIndex = 0; 719 720 721 722 //4. Other FAQ 723 var faqhtml = me.options.FAQhtml; 724 result.append(faqhtml); 725 me._setupCollaspeButton(); 726 //5. Survey Template 727 var Surveyhtml = me.options.Surveyhtml; 728 result.append(Surveyhtml); 729 730 731 732 //6. deserialize form if there is 733 var $form = $("#pathwayform"); 734 var urlinfo = me.options.urlinfo; 735 736 if (urlinfo !== undefined && urlinfo.length > 0) { 737 $.ajax({
738 url: me.options.deserilizeLibUrl, 739 dataType: "script", 740 success: function () { 741 742 $form.deserialize(urlinfo); 743 744 var resulttab = $('a[data-target="#Result"]'); 745 console.log('clicked NavtoResult()'); 746 resulttab.click(); 747 748 $("textarea").each(function (i, e) { 749 750 rows = Math.ceil(this.scrollHeight / 18); 751 this.rows = rows; 752 }); 753 } 754 }) 755 } 756 }) 757 }) 758 759 }, cache: this.options.enableCache 760 }) 761 762 }, 763 764 _setupCollaspeButton: function () { 765 $("i.icon.fas").parent('button.collapsebtn').off('click').on('click', function () { 766 $(this).find('i').toggleClass("fa-plus-square fa-minus-square"); 767 }) 768 }, 769 770 _setResutlRowRunner: function (page, divprognosismenu, divprognosis, text, id, scorexml, isMobile) { 771 772 var me = this; 773 if (me.options._setResultRowRunnerIndex == 0) { 774 if (isMobile == true) { 775 divprognosis.append(divprognosismenu); 776 } 777 var pronosisContainer = $("<div class='pda-content'>"); 778 divprognosis.append(pronosisContainer); 779 } 780 $.when(console.log('_setResutlRowRunner - Prognosis'),this._setResultRow(divprognosismenu, divprognosis, text, id, scorexml, isMobile)).then(function () { 781 me.options._setResultRowRunnerIndex++; 782 if (me.options._setResultRowRunnerIndex < me.options.sectionAResults.length) { 783 me._setResutlRowRunner(page, divprognosismenu, divprognosis, me.options.sectionAResults[me.options._setResultRowRunnerIndex], $(page).attr(me.options.sectionAResults[me.options._setResultRowRunnerIndex]), scorexml, isMobile); 784 } 785 else { 786 $(document).trigger('pdapathway:prognosis_loaded'); 787 me._setupCollaspeButton(); 788 } 789 }); 790 }, 791 792 793 _setResultRow: function (divprognosismenu, divprognosis, text, id, scorexml, isMobile) { 794 var thtext = text; 795 if (text === "QOL") { 796 thtext = "Quality of Life"; 797 } 798 799 var me = this; 800 var fullPath = this.options.baseResultXMLPath + text + "/" + id + ".xml"; 801 var ckm = ""; 802 var dialysis = ""; 803 var scorepercent = ""; 804 var highlightckm = ""; 805 var highlightdialysis = ""; 806 var highlightcell = "highlight"; 807 var iconimageurl = ""; 808 var iconclass = ""; 809 var riskscore = sessionStorage.getItem("riskscore"); 810 console.log("getting data from " + fullPath); 811 $.ajax({
812 type: "GET", 813 url: fullPath, 814 cache: true, 815 dataType: "xml", 816 success: function (xml) { 817 console.log("received data from " + fullPath); 818 var imageurl_ckm = ""; 819 var imageurl_dialysis = ""; 820 var highlight = ""; 821 822 iconimageurl = $(xml).find(text).attr("imageUrl"); 823 iconclass = $(xml).find(text).attr("iconclass"); 824 825 $(xml).find('CKM').each(function () { 826 imageurl_ckm = $(this).attr("imageUrl"); 827 highlight = $(this).attr("highlight"); 828 if (highlight === "Y") { 829 highlightckm = highlightcell; 830 } 831 ckm += $(this).text(); 832 var imgElement = ''; 833 if (imageurl_ckm != undefined && imageurl_ckm.length > 0) { 834 imgElement = '<img src="' + imageurl_ckm + '" width= "100%" >'; 835 ckm += '<br/>' + imgElement; 836 } 837 }); 838 839 $(xml).find('Dialysis').each(function (i, e) { 840 imageurl_dialysis = $(this).attr("imageUrl"); 841 if ($(this).attr("highlight") === "Y") { 842 843 highlightdialysis = highlightcell; 844 } 845 846 dialysis += $(this).text(); 847 848 var imgElement = ''; 849 850 if (imageurl_dialysis != undefined && imageurl_dialysis.length > 0) { 851 imgElement = '<img src="' + imageurl_dialysis + '" width= "100%" >'; 852 dialysis += '<br/>' + imgElement + '<br/>'; 853 854 } 855 }); 856 857 858 if (text === "Survival") { 859 860 var pages = $(scorexml).find('Page[score="' + riskscore + '"]'); 861 862 if (parseFloat(riskscore) >= 7.8) { 863 scorepercent = "55%"; 864 } 865 else { 866 scorepercent = $(pages).attr("sixmonth"); 867 } 868 869 870 dialysis = dialysis.replace("(Sara Score)", scorepercent); 871 } 872 873 var prognosisli = $("<li>", 874 { 875 }); 876 var prognosisa = $("<a>", { 877 "data-toggle": "modal", 878 "data-target": "#Modal_" + text, 879 "title": thtext, 880 "href": "#" 881 882 }); 883 var prognosisspan = "<span class='round-tabs citem " + iconclass + "'><img class='icons' src='" + iconimageurl + "'></span><h4 class='citem ctitle'>" + thtext + "</h4>"; 884 885 var divprognosiscardcontainer = $("<div>", { 886 "class": "row rowremovemargin card-body", 887 "id": text, 888 889 890 }); 891 var divprognosisckmcard = $("<div>", { 892 "class": "card pda-content-ckm col-sm-6 " + highlightckm, 893 894 }); 895 var divprognosisdialysiscard = $("<div>", { 896 "class": "card pda-content-pd col-sm-6 " + highlightdialysis, 897 }); 898 899 var divprognosisckmcardheader = '<div class="card-header">Conservative Kidney Management (CKM)</div>' 900 var divprognosisdialysiscardheader = '<div class="card-header bg-info text-light font-weight-bold">Dialysis</div>' 901 902 var divprognosisckmcardbody = $("<div>", { 903 "class": "card-body" 904 }); 905 906 var divprognosisdialysiscardbody = $("<div>", { 907 "class": "card-body" 908 }); 909 910 divprognosisckmcardbody.append('<p class="card-text">' + ckm + '</p>'); 911 divprognosisckmcard.append(divprognosisckmcardheader); 912 divprognosisckmcard.append(divprognosisckmcardbody); 913 914 divprognosisdialysiscardbody.append('<p class="card-text">' + dialysis + '</p>'); 915 divprognosisdialysiscard.append(divprognosisdialysiscardheader); 916 divprognosisdialysiscard.append(divprognosisdialysiscardbody); 917 918 divprognosiscardcontainer.append(divprognosisckmcard); 919 divprognosiscardcontainer.append(divprognosisdialysiscard); 920 921 if (isMobile == true) { 922 923 prognosisa.append(prognosisspan); 924 prognosisli.append(prognosisa); 925 divprognosismenu.append(prognosisli); 926 927 var modalprognosis = $("<div>", { 928 "class": "modal fade", 929 "id": "Modal_" + text, 930 "role": "dialog", 931 "aria-labelledby": "ModalLongTitle", 932 "aria-hidden": "true", 933 "style": "display: none" 934 }); 935 936 var modaldialogprognosis = $("<div>", {
937 "class": "modal-dialog", 938 "role": "document" 939 }); 940 941 var modalcontentprognosis = $("<div>", { 942 "class": "modal-content" 943 }); 944 945 var modalheaderprognosis = $("<div>", { 946 "class": "modal-header" 947 }); 948 var modalheadercontent = "<h5 class='modal-title' id='ModalLongTitle_" + text + "'>" + thtext + "</h5>"; 949 var modalheadertbtnprognosis = $("<button>", { 950 "type": "button", 951 "class": "close", 952 "data-dismiss": "modal", 953 "aria-label": "close" 954 }); 955 modalheaderprognosis.append(modalheadercontent); 956 modalheaderprognosis.append(modalheadertbtnprognosis); 957 958 var modalbodyprognosis = $("<div>", { 959 "class": "modal-body" 960 }); 961 modalbodyprognosis.append(divprognosiscardcontainer); 962 963 964 var modalfooterprognosis = $("<div>", { 965 "class": "modal-footer" 966 }); 967 968 var modalfooterclosebtn = "<button type='button' class='btn btn-primary' data-dismiss='modal'>Close</button>" 969 modalfooterprognosis.append(modalfooterclosebtn); 970 971 modalcontentprognosis.append(modalheaderprognosis); 972 modalcontentprognosis.append(modalbodyprognosis); 973 modalcontentprognosis.append(modalfooterprognosis); 974 975 976 modaldialogprognosis.append(modalcontentprognosis); 977 modalprognosis.append(modaldialogprognosis); 978 divprognosis.find('.pda-content').append(modalprognosis); 979 980 981 } 982 else { 983 var collapsedivprognosis = $("<div>", 984 { 985 "class": " card", 986 "id": "collapsediv" + text 987 }); 988 989 var collapsedheaderprognosis = $("<div>", 990 { 991 "class": "card-header", 992 "id": "collapseheader" + text 993 }); 994 995 996 var collapsedbtnprognosis = "<h5 class='mb-0'><button class='collapsebtn btn ui-btn ui-shadow ui-corner-all collapsebtn' data-toggle='collapse' href='#collapsecontent" + text + "'>" + thtext + "<i class='icon fas fa-plus-square'></i></button></h5>" 997 998 collapsedheaderprognosis.append(collapsedbtnprognosis); 999 1000 var collapsedcontentprognosis = $("<div>", 1001 { 1002 "class": "collapse", 1003 "id": "collapsecontent" + text, 1004 "aria-labelledby": "collapseheader" + text 1005 }); 1006 collapsedcontentprognosis.append(divprognosiscardcontainer); 1007 1008 collapsedivprognosis.append(collapsedheaderprognosis); 1009 collapsedivprognosis.append(collapsedcontentprognosis); 1010 divprognosis.find('.pda-content').append(collapsedivprognosis); 1011 } 1012 } 1013 1014 }) 1015 }, 1016 _setChoiceResultRowRunner: function (divwmtmmenu, divwmtm, text, highlhighlightarray, isMobile) { 1017 var heightlightinfo = ""; 1018 var me = this; 1019 for (var i = 0; i < highlhighlightarray.length; i++) { 1020 if (highlhighlightarray[i].indexOf(text) != -1) { 1021 heightlightinfo = highlhighlightarray[i]; 1022 } 1023 } 1024 if (me.options._setChoiceRowRunnerIndex == 0) { 1025 if (isMobile == true) { 1026 divwmtm.append(divwmtmmenu); 1027 } 1028 var wmtmContainer = $("<div class='pda-content'>"); 1029 divwmtm.append(wmtmContainer); 1030 } 1031 $.when(console.log('_setResutlRowRunner - WMTM'),this._setChoiceResultRow(divwmtmmenu, divwmtm, text, heightlightinfo, isMobile)).then(function () { 1032 me.options._setChoiceRowRunnerIndex++; 1033 if (me.options._setChoiceRowRunnerIndex < me.options.sectionBResults.length) { 1034 me._setChoiceResultRowRunner(divwmtmmenu, divwmtm, me.o
1034ptions.sectionBResults[me.options._setChoiceRowRunnerIndex], highlhighlightarray, isMobile); 1035 } 1036 else { 1037 $(document).trigger('pdapathway:wmtm_loaded'); 1038 me._setupCollaspeButton(); 1039 } 1040 }); 1041 }, 1042 _setChoiceResultRow: function (divwmtmmenu, divwmtm, text, highlightinfo, isMobile) { 1043 var me = this; 1044 //todo: there is only 1 xml in these structures (control of your time, travel, surgery, hospitalization) 1045 var fullPath = this.options.baseResultXMLPath + text + "/1.xml"; 1046 var ckm = ""; 1047 var dialysis = ""; 1048 var peritonealDialysis = ""; 1049 var hemodialysis = ""; 1050 var highlightckm = ""; 1051 var highlightpd = ""; 1052 var highlighthd = ""; 1053 var highlightpart = ""; 1054 var iconimageurl = ""; 1055 var iconclass = ""; 1056 var highlightcell = "highlight"; 1057 console.log("high light info " + highlightinfo); 1058 if (highlightinfo !== undefined) { 1059 highlightpart = highlightinfo.split('-')[1]; 1060 highlightcat = highlightinfo.split('-')[0]; 1061 } 1062 console.log('highlight part: ' + highlightpart + "--" + text); 1063 if (highlightpart === "ckm") { 1064 highlightckm = highlightcell; 1065 } 1066 1067 else if (highlightpart === "ckmpd") { 1068 highlightckm = highlightcell; 1069 highlightpd = highlightcell; 1070 } 1071 else if (highlightpart === "ckmhd") { 1072 highlightckm = highlightcell; 1073 highlighthd = highlightcell; 1074 } 1075 console.log("getting data from " + fullPath); 1076 $.ajax({
1077 type: "GET", 1078 url: fullPath, 1079 cache: true, 1080 dataType: "xml", 1081 success: function (xml) { 1082 console.log("received data from " + fullPath); 1083 var imageurl_ckm = ""; 1084 var imageurl_peritonealDialysis = ""; 1085 var imageurl_hemodialysis = ""; 1086 var col = "1"; 1087 var thtext = ""; 1088 if (text === "Control of your time") { 1089 thtext = "Time"; 1090 } 1091 else { 1092 thtext = text; 1093 }; 1094 iconimageurl = $(xml).find(thtext).attr("imageUrl"); 1095 iconclass = $(xml).find(thtext).attr("iconclass"); 1096 $(xml).find('CKM').each(function () { 1097 imageurl_ckm = $(this).attr("imageUrl"); 1098 ckm += $(this).text() + '</br>'; 1099 var imgElement = '<img src="' + imageurl_ckm + '" width= "100%" style="margin-left: auto; margin-right: auto; display: block;" onclick="enlargepic()" >'; 1100 if (imageurl_ckm != undefined && imageurl_ckm.length != 0) { 1101 ckm += imgElement + '<br/>'; 1102 } 1103 }); 1104 $(xml).find('Dialysis').each(function (i, e) { 1105 col = $(this).attr("col"); 1106 imageurl_dialysis = $(this).attr("imageUrl"); 1107 dialysis += $(this).find('content').text() + '</br>'; 1108 var imgElement = '<img src="' + imageurl_dialysis + '" width= "100%" style="margin-left: auto; margin-right: auto; display: block;" onclick="enlargepic()">'; 1109 if (imageurl_dialysis != undefined && imageurl_dialysis.length != 0) { 1110 dialysis += imgElement + '<br/>'; 1111 } 1112 }); 1113 1114 $(xml).find('PeritonealDialysis').each(function (i, e) {
1115 imageurl_peritonealDialysis = $(this).attr("imageUrl"); 1116 peritonealDialysis += $(this).text() + '</br>'; 1117 var imgElement = '<img src="' + imageurl_peritonealDialysis + '" width= "100%" style="margin-left: auto; margin-right: auto; display: block;" onclick="enlargepic()">'; 1118 if (imageurl_peritonealDialysis != undefined && imageurl_peritonealDialysis.length != 0) { 1119 peritonealDialysis += imgElement + '<br/>'; 1120 } 1121 }); 1122 1123 $(xml).find('Hemodialysis').each(function (i, e) { 1124 imageurl_hemodialysis = $(this).attr("imageUrl"); 1125 hemodialysis += $(this).text() + '</br>'; 1126 var imgElement = '<img src="' + imageurl_hemodialysis + '" width= "100%" style="margin-left: auto; margin-right: auto; display: block;" onclick="enlargepic()">'; 1127 if (imageurl_hemodialysis != undefined && imageurl_hemodialysis.length != 0) { 1128 hemodialysis += imgElement + '<br/>'; 1129 1130 } 1131 }); 1132 var divID = text.replace(/\s+/g, ''); 1133 var divwmtmcard = $("<div>", { 1134 "id": divID, 1135 "class": "row rowremovemargin card-body" 1136 }); 1137 var divwmtmckmcard = $("<div>", { 1138 "class": "card pda-content-ckm " + highlightckm, 1139 1140 }); 1141 var divwmtmdialysiscard = $("<div>", { 1142 "class": "card pda-content-pd " + highlighthd, 1143 }); 1144 var divwmtmPDcard = $("<div>", { 1145 "class": "card pda-content-pd " + highlightpd, 1146 }); 1147 1148 var divwmtmHemocard = $("<div>", { 1149 "class": "card pda-content-pd", 1150 }); 1151 var divwmtmckmcardheader = '<div class="card-header">Conservative Kidney Management (CKM)</div >'; 1152 var divwmtmdialysiscardheader = '<div class="card-header bg-info text-light font-weight-bold">Dialysis</div>'; 1153 var divwmtmPDcardheader = '<div class="card-header bg-info text-light font-weight-bold">Peritoneal dialysis</div>'; 1154 var divwmtmHemocardheader = '<div class="card-header bg-info text-light font-weight-bold">Hemodialysis</div>'; 1155 1156 var divwmtmckmcardbody = $("<div>", {"class": "card-body"}); 1157 var divwmtmdialysiscardbody = $("<div>", {"class": "card-body"}); 1158 var divwmtmPDcardbody = $("<div>", {"class": "card-body"}); 1159 var divwmtmHemocardbody = $("<div>", {"class": "card-body"}); 1160 1161 1162 var wmtmli = $("<li>",{}); 1163 var wmtma = $("<a>", { 1164 "data-toggle": "modal", 1165 "data-target": "#Modal_" + divID, 1166 "title": text, 1167 "href": "#" 1168 }); 1169 var wmtmspan = "<span class='round-tabs citem " + iconclass + "'><img class='icons' src='" + iconimageurl + "'></span><h4 class='citem ctitle'>" + text + "</h4>"; 1170 var collapsedivwmtm = $("<div>", 1171 { 1172 "class": " card", 1173 "id": "collapsediv" + divID 1174 }); 1175 1176 var collapsedheaderwmtm = $("<div>", 1177 { 1178 "class": "card-header", 1179 "id": "collapseheader" + divID 1180 }); 1181 1182 1183 var collapsedbtnwmtm = "<h5 class='mb-0'><button class='collapsebtn btn ui-btn ui-shadow ui-corner-all collapsebtn' data-toggle='collapse' href='#collapsecontent" + divID + "'>" + text + "<i class='icon fas fa-plus-square'></i></button></h5>" 1184 1185 collapsedheaderwmtm.append(collapsedbtnwmtm); 1186 collapsedivwmtm.append(collapsedheaderwmtm); 1187 var collapsedcontentwmtm = $("<div>", 1188 { 1189 "class": "collapse", 1190 "id": "collapsecontent" + divID, 1191 "aria-labelledby": "collapseheader" + divID 1192 }); 1193 1194 1195 if (col === "1") { 1196 divwmtmckmcardbody.append('<p class="card-text">' + ckm + '</p>'); 1197 divwmtmckmcard.append(divwmtmckmcardheader); 1198 divwmtmckmcard.append(divwmtmckmcardbody); 1199 divwmtmckmcard.addClass("col-sm-6"); 1200 1201 divwmtmdialysiscardbody.append('<p class="card-text">' + dialysis + '</p>'); 1202 divwmtmdialysiscard.append(divwmtmdialysiscardheader); 1203 divwmtmdialysiscard.append(divwmtmdialysiscardbody); 1204 divwmtmdialysiscard.addClass("col-sm-6"); 1205 1206 divwmtmcard.append(divwmtmckmcard); 1207 divwmtmcard.append(divwmtmdialysiscard); 1208 1209 if (isMobile == false) { 1210 collapsedcontentwmtm.append(divwmtmcard); 1211 collapsedivwmtm.append(collapsedcontentwmtm); 1212 divwmtm.find('.pda-content').append(collapsedivwmtm); 1213 } 1214 else { 1215 wmtma.append(wmtmspan); 1216 wmtmli.append(wmtma); 1217 divwmtmmenu.append(wmtmli); 1218 1219 var modalwmtm = $("<div>", { 1220 "class": "modal fade", 1221 "id": "Modal_" + divID, 1222 "role": "dialog", 1223 "aria-labelledby": "ModalLongTitle", 1224 "aria-hidden": "true", 1225 "style": "display: none" 1226 }); 1227 1228 var modaldialogwmtm = $("<div>", {
1229 "class": "modal-dialog", 1230 "role": "document" 1231 }); 1232 1233 var modalcontentwmtm = $("<div>", { 1234 "class": "modal-content" 1235 }); 1236 1237 var modalheaderwmtm = $("<div>", { 1238 "class": "modal-header" 1239 }); 1240 var modalheadercontent = "<h5 class='modal-title' id='ModalLongTitle_" + divID + "'>" + text + "</h5>"; 1241 var modalheadertbtnwmtm = $("<button>", { 1242 "type": "button", 1243 "class": "close", 1244 "data-dismiss": "modal", 1245 "aria-label": "close" 1246 }); 1247 modalheaderwmtm.append(modalheadercontent); 1248 modalheaderwmtm.append(modalheadertbtnwmtm); 1249 1250 var modalbodywmtm = $("<div>", { 1251 "class": "modal-body" 1252 }); 1253 modalbodywmtm.append(divwmtmcard); 1254 1255 1256 var modalfooterwmtm = $("<div>", { 1257 "class": "modal-footer" 1258 }); 1259 1260 var modalfooterclosebtn = "<button type='button' class='btn btn-primary' data-dismiss='modal'>Close</button>" 1261 modalfooterwmtm.append(modalfooterclosebtn); 1262 1263 modalcontentwmtm.append(modalheaderwmtm); 1264 modalcontentwmtm.append(modalbodywmtm); 1265 modalcontentwmtm.append(modalfooterwmtm); 1266 1267 1268 modaldialogwmtm.append(modalcontentwmtm); 1269 modalwmtm.append(modaldialogwmtm); 1270 divwmtm.find('.pda-content').append(modalwmtm); 1271 } 1272 1273 1274 } 1275 else if (col === "2") { 1276 var verticaldiv = $("<div>", { 1277 "class": "col-sm-6", 1278 "style": "padding: 0" 1279 }); 1280 divwmtmckmcardbody.append('<p class="card-text">' + ckm + '</p>'); 1281 divwmtmckmcard.append(divwmtmckmcardheader); 1282 divwmtmckmcard.append(divwmtmckmcardbody); 1283 divwmtmckmcard.addClass("col-sm-6"); 1284 1285 divwmtmPDcardbody.append('<p class="card-text">' + peritonealDialysis + '</p>'); 1286 divwmtmPDcard.append(divwmtmPDcardheader); 1287 divwmtmPDcard.append(divwmtmPDcardbody); 1288 //divwmtmPDcard.addClass("col-sm-6"); 1289 1290 divwmtmHemocardbody.append('<p class="card-text">' + hemodialysis + '</p>'); 1291 divwmtmHemocard.append(divwmtmHemocardheader); 1292 divwmtmHemocard.append(divwmtmHemocardbody); 1293 //divwmtmHemocard.addClass("col-sm-6"); 1294 1295 divwmtmcard.append(divwmtmckmcard); 1296 verticaldiv.append(divwmtmPDcard); 1297 verticaldiv.append(divwmtmHemocard); 1298 divwmtmcard.append(verticaldiv); 1299 1300 if (isMobile == false) { 1301 collapsedcontentwmtm.append(divwmtmcard); 1302 collapsedivwmtm.append(collapsedcontentwmtm); 1303 divwmtm.find('.pda-content').append(collapsedivwmtm); 1304 } 1305 else { 1306 wmtma.append(wmtmspan); 1307 wmtmli.append(wmtma); 1308 divwmtmmenu.append(wmtmli); 1309 1310 var modalwmtm = $("<div>", { 1311 "class": "modal fade", 1312 "id": "Modal_" + divID, 1313 "role": "dialog", 1314 "aria-labelledby": "ModalLongTitle", 1315 "aria-hidden": "true", 1316 "style": "display: none" 1317 }); 1318 1319 var modaldialogwmtm = $("<div>", {
1320 "class": "modal-dialog", 1321 "role": "document" 1322 }); 1323 1324 var modalcontentwmtm = $("<div>", { 1325 "class": "modal-content" 1326 }); 1327 1328 var modalheaderwmtm = $("<div>", { 1329 "class": "modal-header" 1330 }); 1331 var modalheadercontent = "<h5 class='modal-title' id='ModalLongTitle_" + divID + "'>" + text + "</h5>"; 1332 var modalheadertbtnwmtm = $("<button>", { 1333 "type": "button", 1334 "class": "close", 1335 "data-dismiss": "modal", 1336 "aria-label": "close" 1337 }); 1338 modalheaderwmtm.append(modalheadercontent); 1339 modalheaderwmtm.append(modalheadertbtnwmtm); 1340 1341 var modalbodywmtm = $("<div>", { 1342 "class": "modal-body" 1343 }); 1344 modalbodywmtm.append(divwmtmcard); 1345 1346 1347 var modalfooterwmtm = $("<div>", { 1348 "class": "modal-footer" 1349 }); 1350 1351 var modalfooterclosebtn = "<button type='button' class='btn btn-primary' data-dismiss='modal'>Close</button>" 1352 modalfooterwmtm.append(modalfooterclosebtn); 1353 1354 modalcontentwmtm.append(modalheaderwmtm); 1355 modalcontentwmtm.append(modalbodywmtm); 1356 modalcontentwmtm.append(modalfooterwmtm); 1357 1358 1359 modaldialogwmtm.append(modalcontentwmtm); 1360 modalwmtm.append(modaldialogwmtm); 1361 divwmtm.find('.pda-content').append(modalwmtm); 1362 } 1363 } 1364 } 1365 }); 1366 }, 1367 _calculateRiskScore: function () { 1368 var totalRC = parseFloat(1.3); 1369 1370 $(".pathway-options-clicked").each(function (i, e) { 1371 var score = $(e).data("rc"); 1372 1373 if (score === undefined) score = 0; 1374 console.log("option clicked [" + i + "] - " + score); 1375 totalRC += parseFloat(score);//.toFixed(1); 1376 1377 }); 1378 console.log("total risk score: " + totalRC); 1379 1380 sessionStorage.setItem("riskscore", parseFloat(totalRC).toFixed(1)); 1381 1382 var trackerItem = { "q": "Risk Score", "a": totalRC}; 1383 me.options.tracker.push(trackerItem); 1384 }, 1385 _setNode: function (element, text) { 1386 if (!this.options.showNode || text === undefined) return; 1387 element.append("<i> [" + text + "]</i>"); 1388 }, 1389 // _setOptions is called with a hash of all options that are changing 1390 // always refresh when changing options 1391 _setOptions: function () { 1392 // _super and _superApply handle keeping the right this-context 1393 this._superApply(arguments); 1394 this._refresh(); 1395 }, 1396 1397 // _setOption is called for each individual option that is changing 1398 _setOption: function (key, value) { 1399 this._super(key, value); 1400 }, 1401 _tracker: function (q, a) { 1402 if (q == "") return true; 1403 if (q == null) return true; 1404 1405 var trackerItem = { "q": q , "a" : a}; 1406 var found = false; 1407 var current = -1; 1408 $.each(this.options.tracker, function (index, item) { 1409 found = item.q == q; 1410 if (found) { 1411 current = index; 1412 return false; 1413 } 1414 }) 1415 1416 if (!found) { 1417 this.options.tracker.push(trackerItem); 1418 } 1419 else { 1420 this.options.tracker[current] = trackerItem; 1421 1422 this.options.tracker.length = current + 1; 1423 1424 } 1425 console.log("tracker: " + me.options.tracker) 1426 } 1427}); 1428 1429/** 1430 * Copyright (C) 2017 Kyle Florence 1431 * 1432 * This program is free software; you can redistribute it and/or 1433 * modify it under the terms of the GNU General Public License
1434 * as published by the Free Software Foundation; either version 2 1435 * of the License, or (at your option) any later version. 1436 * 1437 * This program is distributed in the hope that it will be useful, 1438 * but WITHOUT ANY WARRANTY; without even the implied warranty of 1439 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1440 * GNU General Public License for more details. 1441 * 1442 * You should have received a copy of the GNU General Public License 1443 * along with this program; if not, write to the Free Software 1444 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 1445 * 1446 * @website https://github.com/kflorence/jquery-deserialize/ 1447 * @version 2.0.0-rc1 1448 * 1449 * Dual licensed under the MIT and GPLv2 licenses. 1450 */ 1451(function( factory ) { 1452 if ( typeof module === "object" && module.exports ) { 1453 // Node/CommonJS 1454 module.exports = factory( require( "jquery" ) ); 1455 1456 } else { 1457 // Browser globals 1458 factory( window.jQuery ); 1459 } 1460}(function( $ ) { 1461 1462 /** 1463 * Updates a key/valueArray with the given property and value. Values will always be stored as arrays. 1464 * 1465 * @param prop The property to add the value to. 1466 * @param value The value to add. 1467 * @param obj The object to update. 1468 * @returns {object} Updated object. 1469 */ 1470 function updateKeyValueArray( prop, value, obj ) { 1471 var current = obj[ prop ]; 1472 1473 if ( current === undefined ) { 1474 obj[ prop ] = [ value ]; 1475 1476 } else { 1477 current.push( value ); 1478 } 1479 1480 return obj; 1481 } 1482 1483 /** 1484 * Get all of the fields contained within the given elements by name. 1485 * 1486 * @param $elements jQuery object of elements. 1487 * @param filter Custom filter to apply to the list of fields. 1488 * @returns {object} All of the fields contained within the given elements, keyed by name. 1489 */ 1490 function getFieldsByName( $elements, filter ) { 1491 var elementsByName = {}; 1492 1493 // Extract fields from elements 1494 var fields = $elements 1495 .map(function convertFormToElements() { 1496 return this.elements ? $.makeArray( this.elements ) : this; 1497 }) 1498 .filter( filter || ":input:not(:disabled)" ) 1499 .get(); 1500 1501 $.each( fields, function( index, field ) { 1502 updateKeyValueArray( field.name, field, elementsByName ); 1503 }); 1504 1505 return elementsByName; 1506 } 1507 1508 /** 1509 * Figure out the type of an element. Input type will be used first, falling back to nodeName. 1510 * 1511 * @param element DOM element to check type of. 1512 * @returns {string} The element's type. 1513 */ 1514 function getElementType( element ) { 1515 return ( element.type || element.nodeName ).toLowerCase(); 1516 } 1517 1518 /** 1519 * Normalize the provided data into a key/valueArray store. 1520 * 1521 * @param data The data provided by the user to the plugin. 1522 * @returns {object} The data normalized into a key/valueArray store. 1523 */ 1524 function normalizeData( data ) { 1525 var normalized = {}; 1526 var rPlus = /\+/g; 1527 1528 // Convert data from .serializeObject() notation 1529 if ( $.isPlainObject( data ) ) { 1530 $.extend( normalized, data ); 1531 1532 // Convert non-array values into an array 1533 $.each( normalized, function( name, value ) { 1534 if ( !$.isArray( value ) ) { 1535 normalized[ name ] = [ value ]; 1536 } 1537 }); 1538 1539 // Convert data from .serializeArray() notation 1540 } else if ( $.isArray( data ) ) { 1541 $.each( data, function( index, field ) { 1542 updateKeyValueArray( field.name, field.value, normalized ); 1543 }); 1544 1545 // Convert data from .serialize() notation 1546 } else if ( typeof data === "string" ) { 1547 $.each( data.split( "&" ), function( index, field ) { 1548 var current = field.split( "=" ); 1549 var name = decodeURIComponent( current[ 0 ].replace( rPlus, "%20" ) ); 1550 var value = decodeURIComponent( current[ 1 ].replace( rPlus, "%20" ) ); 1551 updateKeyValueArray( name, value, normalized ); 1552 }); 1553 } 1554 1555 return normalized; 1556 } 1557 1558 /** 1559 * Map of property name -> element types. 1560 * 1561 * @type {object} 1562 */ 1563 var updateTypes = { 1564 checked: [ 1565 "radio", 1566 "checkbox" 1567 ], 1568 selected: [ 1569 "option", 1570 "select-one", 1571 "select-multiple" 1572 ], 1573 value: [ 1574 "button", 1575 "color", 1576 "date", 1577 "datetime", 1578 "datetime-local", 1579 "email", 1580 "hidden", 1581 "month", 1582 "number", 1583 "password", 1584 "range", 1585 "reset", 1586 "search", 1587 "submit", 1588 "tel", 1589 "text", 1590 "textarea", 1591 "time", 1592 "url", 1593 "week" 1594 ] 1595 }; 1596 1597 /** 1598 * Get the property to update on an element being updated. 1599 * 1600 * @param element The DOM element to get the property for. 1601 * @returns The name of the property to update if element is supported, otherwise `undefined`. 1602 */ 1603 function getPropertyToUpdate( element ) { 1604 var type = getElementType( element ); 1605 var elementProperty = undefined; 1606 1607 $.each( updateTypes, function( property, types ) { 1608 if ( $.inArray( type, types ) > -1 ) { 1609 elementProperty = property; 1610 return false;
1611 } 1612 }); 1613 1614 return elementProperty; 1615 } 1616 1617 /** 1618 * Update the element based on the provided data. 1619 * 1620 * @param element The DOM element to update. 1621 * @param elementIndex The index of this element in the list of elements with the same name. 1622 * @param value The serialized element value. 1623 * @param valueIndex The index of the value in the list of values for elements with the same name. 1624 * @param callback A function to call if the value of an element was updated. 1625 */ 1626 function update( element, elementIndex, value, valueIndex, callback ) { 1627 var property = getPropertyToUpdate( element ); 1628 1629 // Handle value inputs 1630 // If there are multiple value inputs with the same name, they will be populated by matching indexes. 1631 if ( property == "value" && elementIndex == valueIndex ) { 1632 element.value = value; 1633 callback.call( element, value ); 1634 1635 // Handle select menus, checkboxes and radio buttons 1636 } else if ( property == "checked" || property == "selected" ) { 1637 var fields = []; 1638 1639 // Extract option fields from select menus 1640 if ( element.options ) { 1641 $.each( element.options, function( index, option ) { 1642 fields.push( option ); 1643 }); 1644 1645 } else { 1646 fields.push( element ); 1647 } 1648 1649 // #37: Remove selection from multiple select menus before deserialization 1650 if ( element.multiple && valueIndex == 0 ) { 1651 element.selectedIndex = -1; 1652 } 1653 1654 $.each( fields, function( index, field ) { 1655 if ( field.value == value ) { 1656 field[ property ] = true; 1657 callback.call( field, value ); 1658 } 1659 }); 1660 } 1661 } 1662 1663 /** 1664 * Default plugin options. 1665 * 1666 * @type {object} 1667 */ 1668 var defaultOptions = { 1669 change: $.noop, 1670 complete: $.noop 1671 }; 1672 1673 /** 1674 * The $.deserialize function. 1675 * 1676 * @param data The data to deserialize. 1677 * @param options Additional options. 1678 * @returns {jQuery} The jQuery object that was provided to the plugin. 1679 */ 1680 $.fn.deserialize = function( data, options ) { 1681 1682 // Backwards compatible with old arguments: data, callback 1683 if ( $.isFunction( options ) ) { 1684 options = { complete: options }; 1685 } 1686 1687 options = $.extend( defaultOptions, options || {} ); 1688 data = normalizeData( data ); 1689 1690 var elementsByName = getFieldsByName( this, options.filter ); 1691 1692 $.each( data, function( name, values ) { 1693 $.each( elementsByName[ name ], function( elementIndex, element ) { 1694 $.each( values, function( valueIndex, value ) { 1695 update( element, elementIndex, value, valueIndex, options.change ); 1696 }); 1697 }); 1698 }); 1699 1700 options.complete.call( this ); 1701 1702 return this; 1703 }; 1704})); 1705 1706 1707 1708 1709//click functions on tabs 1710$(function () { 1711 //Check Mobile Device or not - initiate as false 1712 var isMobile = false; 1713 if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) 1714 || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
1714sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0, 4))) { 1715 isMobile = true; 1716 } 1717 if (isMobile == true) { 1718 //insert next and prev arrow to mobile function 1719 $(".pda-menu-prognosis").append("<a class='prev fa fa-arrow-circle-left arrow-dark' data-link=''></a><a class='next fa fa-arrow-circle-right arrow-light' data-link=''></a>"); 1720 $(".pda-menu-wmtm").append("<a class='prev fa fa-arrow-circle-left arrow-dark' data-link=''></a><a class='next fa fa-arrow-circle-right arrow-light' data-link=''></a>"); 1721 } 1722 1723 1724 //initial values for click arrow on menu and swipe function on mobile 1725 var ci_pro; 1726 var ci_wmtm; 1727 var prognosis = $("#pda-result-content-prognosis"); 1728 var wmtm = $("#pda-result-content-wmtm"); 1729 //next and prev will be counted as well so length -3 1730 p_maxLength = $(prognosis).find("a").length - 3; 1731 w_maxLength = $(wmtm).find("a").length - 3; 1732 $('[data-toggle="tooltip"]').tooltip(); 1733 $(".pda-menu-prognosis>a,.pda-menu-wmtm>a").click(function () { 1734 event.preventDefault; 1735 var hash = $(this).data('link'); 1736 if (hash === 'undefined') return; 1737 if (hash.length === 0) return; 1738 var hashSection = hash.split('|'); 1739 var zone = hashSection[0]; 1740 var section = hashSection[1]; 1741 loadContent(zone, section); 1742 1743 1744 }); 1745 loadContent('#pda-result-content-wmtm', 'controlofyourtime'); 1746 loadContent('#pda-result-content-prognosis', 'QOL'); 1747 1748 function loadContent(zone, section) { 1749 $(zone).find('.pda-content').hide(); 1750 $('#' + section).show(); 1751 $(zone).find("a[data-link='" + zone + "|" + section + "']").addClass('active').siblings().removeClass('active'); 1752 } 1753 1754 //Tab menu arrow color change function 1755 function arrowlight(x) { 1756 x.removeClass("arrow-dark"); 1757 x.addClass("arrow-light"); 1758 } 1759 function arrowdark(x) { 1760 x.removeClass("arrow-light"); 1761 x.addClass("arrow-dark"); 1762 } 1763 //Tab arrow click functoin 1764 function tabFunctoin(x, y) { 1765 1766 //NEXT 1767 $(x).find("a.next").click(function () { 1768 y = $(x).find("a.active").index(); 1769 maxLength = $(x).find("a").length - 3; 1770 1771 if (y == maxLength) { 1772 } else { 1773 var i; 1774 for (i = 0; i <= maxLength; i++) { 1775 if (i == y + 1) { 1776 //fadein sub 1777 $(x).find(".pda-content").eq(i).fadeIn(500); 1778 1779 //show active 1780 $(x).find("a").eq(i).addClass("active"); 1781 $(x).find(".pda-content").eq(i).css("display", "block"); 1782 1783 } 1784 else { 1785 //hide inactive 1786 $(x).find("a").eq(i).removeClass("active"); 1787 $(x).find(".pda-content").eq(i).css("display", "none"); 1788 1789 } 1790 } 1791 arrowlight(x.find("a.prev")); 1792 if (y == maxLength - 1) 1793 arrowdark(x.find("a.next")); 1794 } 1795 }); 1796 //PREV 1797 $(x).find("a.prev").click(function () { 1798 y = $(x).find("a.active").index(); 1799 if (y == 0) { 1800 } else { 1801 var i; 1802 for (i = 0; i <= maxLength; i++) { 1803 if (i == y - 1) { 1804 //fadein sub 1805 $(x).find(".pda-content").eq(i).fadeIn(500); 1806 //show active 1807 $(x).find("a").eq(i).addClass("active"); 1808 $(x).find(".pda-content").eq(i).css("display", "block"); 1809 } else { 1810 //hide inactive 1811 $(x).find("a").eq(i).removeClass("active"); 1812 $(x).find(".pda-content").eq(i).css("display", "none"); 1813 } 1814 1815 } 1816 arrowlight(x.find("a.next")); 1817 if (y == 1) 1818 arrowdark(x.find("a.prev")); 1819 } 1820 }); 1821 } 1822 1823 //Run Tab arrow function 1824 tabFunctoin(prognosis, ci_pro); 1825 tabFunctoin(wmtm, ci_wmtm); 1826 1827 //Run swipe function if mobile device 1828 if (isMobile == true) { 1829 //right 1830 function tabSwipeRight(x) { 1831 $(x).on("swiperight", swiperightHandler); 1832 function swiperightHandler() { 1833 $(x).find("a.prev").click(); 1834 } 1835 } 1836 1837 //left 1838 function tabSwipeLeft(x) { 1839 $(x).on("swipeleft", swipeleftHandler); 1840 function swipeleftHandler() { 1841 $(x).find("a.next").click(); 1842 } 1843 } 1844 1845 //reusable function 1846 function TapSwipe(x) { 1847 tabSwipeRight(x); 1848 tabSwipeLeft(x); 1849 } 1850 //Run swipe function 1851 TapSwipe(prognosis); 1852 TapSwipe(wmtm); 1853 } 1854 1855 1856}) 1857 1858 1859 1860 1861 1862
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.