PageSourceSearch

https://ckmcare.com/bundles/ckmpda2?v=GTSARKlQCcm_NYWhUwBVuaV4CIp8gD3OLL1SZHHQrhY1

js ckmcare.com collected 2026-10-04 13:33:24 UTC 191,855 bytes, 1,862 lines download raw bytes

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        //&#60; em &#62; &#34; 5 - Very important | 4 - Somewhat important | 3 - Unsure | 2 - somewhat unimportant | 1 - Unimportant) &#34; &#60; /em &#62;
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.