Advertisement
Guest User

Untitled

a guest
Jan 11th, 2017
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // v1.110.1435
  2. // sites/all/modules/jquery_update/replace/jquery/1.10/jquery.min.js
  3. /*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
  4. //@ sourceMappingURL=jquery-1.10.2.min.map
  5. */
  6. (function(e, t) {
  7.     var n, r, i = typeof t,
  8.         o = e.location,
  9.         a = e.document,
  10.         s = a.documentElement,
  11.         l = e.jQuery,
  12.         u = e.$,
  13.         c = {},
  14.         p = [],
  15.         f = "1.10.2",
  16.         d = p.concat,
  17.         h = p.push,
  18.         g = p.slice,
  19.         m = p.indexOf,
  20.         y = c.toString,
  21.         v = c.hasOwnProperty,
  22.         b = f.trim,
  23.         x = function(e, t) {
  24.             return new x.fn.init(e, t, r)
  25.         },
  26.         w = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
  27.         T = /\S+/g,
  28.         C = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
  29.         N = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
  30.         k = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
  31.         E = /^[\],:{}\s]*$/,
  32.         S = /(?:^|:|,)(?:\s*\[)+/g,
  33.         A = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
  34.         j = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,
  35.         D = /^-ms-/,
  36.         L = /-([\da-z])/gi,
  37.         H = function(e, t) {
  38.             return t.toUpperCase()
  39.         },
  40.         q = function(e) {
  41.             (a.addEventListener || "load" === e.type || "complete" === a.readyState) && (_(), x.ready())
  42.         },
  43.         _ = function() {
  44.             a.addEventListener ? (a.removeEventListener("DOMContentLoaded", q, !1), e.removeEventListener("load", q, !1)) : (a.detachEvent("onreadystatechange", q), e.detachEvent("onload", q))
  45.         };
  46.     x.fn = x.prototype = {
  47.         jquery: f,
  48.         constructor: x,
  49.         init: function(e, n, r) {
  50.             var i, o;
  51.             if (!e) return this;
  52.             if ("string" == typeof e) {
  53.                 if (i = "<" === e.charAt(0) && ">" === e.charAt(e.length - 1) && e.length >= 3 ? [null, e, null] : N.exec(e), !i || !i[1] && n) return !n || n.jquery ? (n || r).find(e) : this.constructor(n).find(e);
  54.                 if (i[1]) {
  55.                     if (n = n instanceof x ? n[0] : n, x.merge(this, x.parseHTML(i[1], n && n.nodeType ? n.ownerDocument || n : a, !0)), k.test(i[1]) && x.isPlainObject(n))
  56.                         for (i in n) x.isFunction(this[i]) ? this[i](n[i]) : this.attr(i, n[i]);
  57.                     return this
  58.                 }
  59.                 if (o = a.getElementById(i[2]), o && o.parentNode) {
  60.                     if (o.id !== i[2]) return r.find(e);
  61.                     this.length = 1, this[0] = o
  62.                 }
  63.                 return this.context = a, this.selector = e, this
  64.             }
  65.             return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : x.isFunction(e) ? r.ready(e) : (e.selector !== t && (this.selector = e.selector, this.context = e.context), x.makeArray(e, this))
  66.         },
  67.         selector: "",
  68.         length: 0,
  69.         toArray: function() {
  70.             return g.call(this)
  71.         },
  72.         get: function(e) {
  73.             return null == e ? this.toArray() : 0 > e ? this[this.length + e] : this[e]
  74.         },
  75.         pushStack: function(e) {
  76.             var t = x.merge(this.constructor(), e);
  77.             return t.prevObject = this, t.context = this.context, t
  78.         },
  79.         each: function(e, t) {
  80.             return x.each(this, e, t)
  81.         },
  82.         ready: function(e) {
  83.             return x.ready.promise().done(e), this
  84.         },
  85.         slice: function() {
  86.             return this.pushStack(g.apply(this, arguments))
  87.         },
  88.         first: function() {
  89.             return this.eq(0)
  90.         },
  91.         last: function() {
  92.             return this.eq(-1)
  93.         },
  94.         eq: function(e) {
  95.             var t = this.length,
  96.                 n = +e + (0 > e ? t : 0);
  97.             return this.pushStack(n >= 0 && t > n ? [this[n]] : [])
  98.         },
  99.         map: function(e) {
  100.             return this.pushStack(x.map(this, function(t, n) {
  101.                 return e.call(t, n, t)
  102.             }))
  103.         },
  104.         end: function() {
  105.             return this.prevObject || this.constructor(null)
  106.         },
  107.         push: h,
  108.         sort: [].sort,
  109.         splice: [].splice
  110.     }, x.fn.init.prototype = x.fn, x.extend = x.fn.extend = function() {
  111.         var e, n, r, i, o, a, s = arguments[0] || {},
  112.             l = 1,
  113.             u = arguments.length,
  114.             c = !1;
  115.         for ("boolean" == typeof s && (c = s, s = arguments[1] || {}, l = 2), "object" == typeof s || x.isFunction(s) || (s = {}), u === l && (s = this, --l); u > l; l++)
  116.             if (null != (o = arguments[l]))
  117.                 for (i in o) e = s[i], r = o[i], s !== r && (c && r && (x.isPlainObject(r) || (n = x.isArray(r))) ? (n ? (n = !1, a = e && x.isArray(e) ? e : []) : a = e && x.isPlainObject(e) ? e : {}, s[i] = x.extend(c, a, r)) : r !== t && (s[i] = r));
  118.         return s
  119.     }, x.extend({
  120.         expando: "jQuery" + (f + Math.random()).replace(/\D/g, ""),
  121.         noConflict: function(t) {
  122.             return e.$ === x && (e.$ = u), t && e.jQuery === x && (e.jQuery = l), x
  123.         },
  124.         isReady: !1,
  125.         readyWait: 1,
  126.         holdReady: function(e) {
  127.             e ? x.readyWait++ : x.ready(!0)
  128.         },
  129.         ready: function(e) {
  130.             if (e === !0 ? !--x.readyWait : !x.isReady) {
  131.                 if (!a.body) return setTimeout(x.ready);
  132.                 x.isReady = !0, e !== !0 && --x.readyWait > 0 || (n.resolveWith(a, [x]), x.fn.trigger && x(a).trigger("ready").off("ready"))
  133.             }
  134.         },
  135.         isFunction: function(e) {
  136.             return "function" === x.type(e)
  137.         },
  138.         isArray: Array.isArray || function(e) {
  139.             return "array" === x.type(e)
  140.         },
  141.         isWindow: function(e) {
  142.             return null != e && e == e.window
  143.         },
  144.         isNumeric: function(e) {
  145.             return !isNaN(parseFloat(e)) && isFinite(e)
  146.         },
  147.         type: function(e) {
  148.             return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? c[y.call(e)] || "object" : typeof e
  149.         },
  150.         isPlainObject: function(e) {
  151.             var n;
  152.             if (!e || "object" !== x.type(e) || e.nodeType || x.isWindow(e)) return !1;
  153.             try {
  154.                 if (e.constructor && !v.call(e, "constructor") && !v.call(e.constructor.prototype, "isPrototypeOf")) return !1
  155.             } catch (r) {
  156.                 return !1
  157.             }
  158.             if (x.support.ownLast)
  159.                 for (n in e) return v.call(e, n);
  160.             for (n in e);
  161.             return n === t || v.call(e, n)
  162.         },
  163.         isEmptyObject: function(e) {
  164.             var t;
  165.             for (t in e) return !1;
  166.             return !0
  167.         },
  168.         error: function(e) {
  169.             throw Error(e)
  170.         },
  171.         parseHTML: function(e, t, n) {
  172.             if (!e || "string" != typeof e) return null;
  173.             "boolean" == typeof t && (n = t, t = !1), t = t || a;
  174.             var r = k.exec(e),
  175.                 i = !n && [];
  176.             return r ? [t.createElement(r[1])] : (r = x.buildFragment([e], t, i), i && x(i).remove(), x.merge([], r.childNodes))
  177.         },
  178.         parseJSON: function(n) {
  179.             return e.JSON && e.JSON.parse ? e.JSON.parse(n) : null === n ? n : "string" == typeof n && (n = x.trim(n), n && E.test(n.replace(A, "@").replace(j, "]").replace(S, ""))) ? Function("return " + n)() : (x.error("Invalid JSON: " + n), t)
  180.         },
  181.         parseXML: function(n) {
  182.             var r, i;
  183.             if (!n || "string" != typeof n) return null;
  184.             try {
  185.                 e.DOMParser ? (i = new DOMParser, r = i.parseFromString(n, "text/xml")) : (r = new ActiveXObject("Microsoft.XMLDOM"), r.async = "false", r.loadXML(n))
  186.             } catch (o) {
  187.                 r = t
  188.             }
  189.             return r && r.documentElement && !r.getElementsByTagName("parsererror").length || x.error("Invalid XML: " + n), r
  190.         },
  191.         noop: function() {},
  192.         globalEval: function(t) {
  193.             t && x.trim(t) && (e.execScript || function(t) {
  194.                 e.eval.call(e, t)
  195.             })(t)
  196.         },
  197.         camelCase: function(e) {
  198.             return e.replace(D, "ms-").replace(L, H)
  199.         },
  200.         nodeName: function(e, t) {
  201.             return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
  202.         },
  203.         each: function(e, t, n) {
  204.             var r, i = 0,
  205.                 o = e.length,
  206.                 a = M(e);
  207.             if (n) {
  208.                 if (a) {
  209.                     for (; o > i; i++)
  210.                         if (r = t.apply(e[i], n), r === !1) break
  211.                 } else
  212.                     for (i in e)
  213.                         if (r = t.apply(e[i], n), r === !1) break
  214.             } else if (a) {
  215.                 for (; o > i; i++)
  216.                     if (r = t.call(e[i], i, e[i]), r === !1) break
  217.             } else
  218.                 for (i in e)
  219.                     if (r = t.call(e[i], i, e[i]), r === !1) break;
  220.             return e
  221.         },
  222.         trim: b && !b.call("\ufeff\u00a0") ? function(e) {
  223.             return null == e ? "" : b.call(e)
  224.         } : function(e) {
  225.             return null == e ? "" : (e + "").replace(C, "")
  226.         },
  227.         makeArray: function(e, t) {
  228.             var n = t || [];
  229.             return null != e && (M(Object(e)) ? x.merge(n, "string" == typeof e ? [e] : e) : h.call(n, e)), n
  230.         },
  231.         inArray: function(e, t, n) {
  232.             var r;
  233.             if (t) {
  234.                 if (m) return m.call(t, e, n);
  235.                 for (r = t.length, n = n ? 0 > n ? Math.max(0, r + n) : n : 0; r > n; n++)
  236.                     if (n in t && t[n] === e) return n
  237.             }
  238.             return -1
  239.         },
  240.         merge: function(e, n) {
  241.             var r = n.length,
  242.                 i = e.length,
  243.                 o = 0;
  244.             if ("number" == typeof r)
  245.                 for (; r > o; o++) e[i++] = n[o];
  246.             else
  247.                 while (n[o] !== t) e[i++] = n[o++];
  248.             return e.length = i, e
  249.         },
  250.         grep: function(e, t, n) {
  251.             var r, i = [],
  252.                 o = 0,
  253.                 a = e.length;
  254.             for (n = !!n; a > o; o++) r = !!t(e[o], o), n !== r && i.push(e[o]);
  255.             return i
  256.         },
  257.         map: function(e, t, n) {
  258.             var r, i = 0,
  259.                 o = e.length,
  260.                 a = M(e),
  261.                 s = [];
  262.             if (a)
  263.                 for (; o > i; i++) r = t(e[i], i, n), null != r && (s[s.length] = r);
  264.             else
  265.                 for (i in e) r = t(e[i], i, n), null != r && (s[s.length] = r);
  266.             return d.apply([], s)
  267.         },
  268.         guid: 1,
  269.         proxy: function(e, n) {
  270.             var r, i, o;
  271.             return "string" == typeof n && (o = e[n], n = e, e = o), x.isFunction(e) ? (r = g.call(arguments, 2), i = function() {
  272.                 return e.apply(n || this, r.concat(g.call(arguments)))
  273.             }, i.guid = e.guid = e.guid || x.guid++, i) : t
  274.         },
  275.         access: function(e, n, r, i, o, a, s) {
  276.             var l = 0,
  277.                 u = e.length,
  278.                 c = null == r;
  279.             if ("object" === x.type(r)) {
  280.                 o = !0;
  281.                 for (l in r) x.access(e, n, l, r[l], !0, a, s)
  282.             } else if (i !== t && (o = !0, x.isFunction(i) || (s = !0), c && (s ? (n.call(e, i), n = null) : (c = n, n = function(e, t, n) {
  283.                     return c.call(x(e), n)
  284.                 })), n))
  285.                 for (; u > l; l++) n(e[l], r, s ? i : i.call(e[l], l, n(e[l], r)));
  286.             return o ? e : c ? n.call(e) : u ? n(e[0], r) : a
  287.         },
  288.         now: function() {
  289.             return (new Date).getTime()
  290.         },
  291.         swap: function(e, t, n, r) {
  292.             var i, o, a = {};
  293.             for (o in t) a[o] = e.style[o], e.style[o] = t[o];
  294.             i = n.apply(e, r || []);
  295.             for (o in t) e.style[o] = a[o];
  296.             return i
  297.         }
  298.     }), x.ready.promise = function(t) {
  299.         if (!n)
  300.             if (n = x.Deferred(), "complete" === a.readyState) setTimeout(x.ready);
  301.             else if (a.addEventListener) a.addEventListener("DOMContentLoaded", q, !1), e.addEventListener("load", q, !1);
  302.         else {
  303.             a.attachEvent("onreadystatechange", q), e.attachEvent("onload", q);
  304.             var r = !1;
  305.             try {
  306.                 r = null == e.frameElement && a.documentElement
  307.             } catch (i) {}
  308.             r && r.doScroll && function o() {
  309.                 if (!x.isReady) {
  310.                     try {
  311.                         r.doScroll("left")
  312.                     } catch (e) {
  313.                         return setTimeout(o, 50)
  314.                     }
  315.                     _(), x.ready()
  316.                 }
  317.             }()
  318.         }
  319.         return n.promise(t)
  320.     }, x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(e, t) {
  321.         c["[object " + t + "]"] = t.toLowerCase()
  322.     });
  323.  
  324.     function M(e) {
  325.         var t = e.length,
  326.             n = x.type(e);
  327.         return x.isWindow(e) ? !1 : 1 === e.nodeType && t ? !0 : "array" === n || "function" !== n && (0 === t || "number" == typeof t && t > 0 && t - 1 in e)
  328.     }
  329.     r = x(a),
  330.         function(e, t) {
  331.             var n, r, i, o, a, s, l, u, c, p, f, d, h, g, m, y, v, b = "sizzle" + -new Date,
  332.                 w = e.document,
  333.                 T = 0,
  334.                 C = 0,
  335.                 N = st(),
  336.                 k = st(),
  337.                 E = st(),
  338.                 S = !1,
  339.                 A = function(e, t) {
  340.                     return e === t ? (S = !0, 0) : 0
  341.                 },
  342.                 j = typeof t,
  343.                 D = 1 << 31,
  344.                 L = {}.hasOwnProperty,
  345.                 H = [],
  346.                 q = H.pop,
  347.                 _ = H.push,
  348.                 M = H.push,
  349.                 O = H.slice,
  350.                 F = H.indexOf || function(e) {
  351.                     var t = 0,
  352.                         n = this.length;
  353.                     for (; n > t; t++)
  354.                         if (this[t] === e) return t;
  355.                     return -1
  356.                 },
  357.                 B = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
  358.                 P = "[\\x20\\t\\r\\n\\f]",
  359.                 R = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
  360.                 W = R.replace("w", "w#"),
  361.                 $ = "\\[" + P + "*(" + R + ")" + P + "*(?:([*^$|!~]?=)" + P + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + W + ")|)|)" + P + "*\\]",
  362.                 I = ":(" + R + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + $.replace(3, 8) + ")*)|.*)\\)|)",
  363.                 z = RegExp("^" + P + "+|((?:^|[^\\\\])(?:\\\\.)*)" + P + "+$", "g"),
  364.                 X = RegExp("^" + P + "*," + P + "*"),
  365.                 U = RegExp("^" + P + "*([>+~]|" + P + ")" + P + "*"),
  366.                 V = RegExp(P + "*[+~]"),
  367.                 Y = RegExp("=" + P + "*([^\\]'\"]*)" + P + "*\\]", "g"),
  368.                 J = RegExp(I),
  369.                 G = RegExp("^" + W + "$"),
  370.                 Q = {
  371.                     ID: RegExp("^#(" + R + ")"),
  372.                     CLASS: RegExp("^\\.(" + R + ")"),
  373.                     TAG: RegExp("^(" + R.replace("w", "w*") + ")"),
  374.                     ATTR: RegExp("^" + $),
  375.                     PSEUDO: RegExp("^" + I),
  376.                     CHILD: RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + P + "*(even|odd|(([+-]|)(\\d*)n|)" + P + "*(?:([+-]|)" + P + "*(\\d+)|))" + P + "*\\)|)", "i"),
  377.                     bool: RegExp("^(?:" + B + ")$", "i"),
  378.                     needsContext: RegExp("^" + P + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + P + "*((?:-\\d)?\\d*)" + P + "*\\)|)(?=[^-]|$)", "i")
  379.                 },
  380.                 K = /^[^{]+\{\s*\[native \w/,
  381.                 Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
  382.                 et = /^(?:input|select|textarea|button)$/i,
  383.                 tt = /^h\d$/i,
  384.                 nt = /'|\\/g,
  385.                 rt = RegExp("\\\\([\\da-f]{1,6}" + P + "?|(" + P + ")|.)", "ig"),
  386.                 it = function(e, t, n) {
  387.                     var r = "0x" + t - 65536;
  388.                     return r !== r || n ? t : 0 > r ? String.fromCharCode(r + 65536) : String.fromCharCode(55296 | r >> 10, 56320 | 1023 & r)
  389.                 };
  390.             try {
  391.                 M.apply(H = O.call(w.childNodes), w.childNodes), H[w.childNodes.length].nodeType
  392.             } catch (ot) {
  393.                 M = {
  394.                     apply: H.length ? function(e, t) {
  395.                         _.apply(e, O.call(t))
  396.                     } : function(e, t) {
  397.                         var n = e.length,
  398.                             r = 0;
  399.                         while (e[n++] = t[r++]);
  400.                         e.length = n - 1
  401.                     }
  402.                 }
  403.             }
  404.  
  405.             function at(e, t, n, i) {
  406.                 var o, a, s, l, u, c, d, m, y, x;
  407.                 if ((t ? t.ownerDocument || t : w) !== f && p(t), t = t || f, n = n || [], !e || "string" != typeof e) return n;
  408.                 if (1 !== (l = t.nodeType) && 9 !== l) return [];
  409.                 if (h && !i) {
  410.                     if (o = Z.exec(e))
  411.                         if (s = o[1]) {
  412.                             if (9 === l) {
  413.                                 if (a = t.getElementById(s), !a || !a.parentNode) return n;
  414.                                 if (a.id === s) return n.push(a), n
  415.                             } else if (t.ownerDocument && (a = t.ownerDocument.getElementById(s)) && v(t, a) && a.id === s) return n.push(a), n
  416.                         } else {
  417.                             if (o[2]) return M.apply(n, t.getElementsByTagName(e)), n;
  418.                             if ((s = o[3]) && r.getElementsByClassName && t.getElementsByClassName) return M.apply(n, t.getElementsByClassName(s)), n
  419.                         }
  420.                     if (r.qsa && (!g || !g.test(e))) {
  421.                         if (m = d = b, y = t, x = 9 === l && e, 1 === l && "object" !== t.nodeName.toLowerCase()) {
  422.                             c = mt(e), (d = t.getAttribute("id")) ? m = d.replace(nt, "\\$&") : t.setAttribute("id", m), m = "[id='" + m + "'] ", u = c.length;
  423.                             while (u--) c[u] = m + yt(c[u]);
  424.                             y = V.test(e) && t.parentNode || t, x = c.join(",")
  425.                         }
  426.                         if (x) try {
  427.                             return M.apply(n, y.querySelectorAll(x)), n
  428.                         } catch (T) {} finally {
  429.                             d || t.removeAttribute("id")
  430.                         }
  431.                     }
  432.                 }
  433.                 return kt(e.replace(z, "$1"), t, n, i)
  434.             }
  435.  
  436.             function st() {
  437.                 var e = [];
  438.  
  439.                 function t(n, r) {
  440.                     return e.push(n += " ") > o.cacheLength && delete t[e.shift()], t[n] = r
  441.                 }
  442.                 return t
  443.             }
  444.  
  445.             function lt(e) {
  446.                 return e[b] = !0, e
  447.             }
  448.  
  449.             function ut(e) {
  450.                 var t = f.createElement("div");
  451.                 try {
  452.                     return !!e(t)
  453.                 } catch (n) {
  454.                     return !1
  455.                 } finally {
  456.                     t.parentNode && t.parentNode.removeChild(t), t = null
  457.                 }
  458.             }
  459.  
  460.             function ct(e, t) {
  461.                 var n = e.split("|"),
  462.                     r = e.length;
  463.                 while (r--) o.attrHandle[n[r]] = t
  464.             }
  465.  
  466.             function pt(e, t) {
  467.                 var n = t && e,
  468.                     r = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || D) - (~e.sourceIndex || D);
  469.                 if (r) return r;
  470.                 if (n)
  471.                     while (n = n.nextSibling)
  472.                         if (n === t) return -1;
  473.                 return e ? 1 : -1
  474.             }
  475.  
  476.             function ft(e) {
  477.                 return function(t) {
  478.                     var n = t.nodeName.toLowerCase();
  479.                     return "input" === n && t.type === e
  480.                 }
  481.             }
  482.  
  483.             function dt(e) {
  484.                 return function(t) {
  485.                     var n = t.nodeName.toLowerCase();
  486.                     return ("input" === n || "button" === n) && t.type === e
  487.                 }
  488.             }
  489.  
  490.             function ht(e) {
  491.                 return lt(function(t) {
  492.                     return t = +t, lt(function(n, r) {
  493.                         var i, o = e([], n.length, t),
  494.                             a = o.length;
  495.                         while (a--) n[i = o[a]] && (n[i] = !(r[i] = n[i]))
  496.                     })
  497.                 })
  498.             }
  499.             s = at.isXML = function(e) {
  500.                 var t = e && (e.ownerDocument || e).documentElement;
  501.                 return t ? "HTML" !== t.nodeName : !1
  502.             }, r = at.support = {}, p = at.setDocument = function(e) {
  503.                 var n = e ? e.ownerDocument || e : w,
  504.                     i = n.defaultView;
  505.                 return n !== f && 9 === n.nodeType && n.documentElement ? (f = n, d = n.documentElement, h = !s(n), i && i.attachEvent && i !== i.top && i.attachEvent("onbeforeunload", function() {
  506.                     p()
  507.                 }), r.attributes = ut(function(e) {
  508.                     return e.className = "i", !e.getAttribute("className")
  509.                 }), r.getElementsByTagName = ut(function(e) {
  510.                     return e.appendChild(n.createComment("")), !e.getElementsByTagName("*").length
  511.                 }), r.getElementsByClassName = ut(function(e) {
  512.                     return e.innerHTML = "<div class='a'></div><div class='a i'></div>", e.firstChild.className = "i", 2 === e.getElementsByClassName("i").length
  513.                 }), r.getById = ut(function(e) {
  514.                     return d.appendChild(e).id = b, !n.getElementsByName || !n.getElementsByName(b).length
  515.                 }), r.getById ? (o.find.ID = function(e, t) {
  516.                     if (typeof t.getElementById !== j && h) {
  517.                         var n = t.getElementById(e);
  518.                         return n && n.parentNode ? [n] : []
  519.                     }
  520.                 }, o.filter.ID = function(e) {
  521.                     var t = e.replace(rt, it);
  522.                     return function(e) {
  523.                         return e.getAttribute("id") === t
  524.                     }
  525.                 }) : (delete o.find.ID, o.filter.ID = function(e) {
  526.                     var t = e.replace(rt, it);
  527.                     return function(e) {
  528.                         var n = typeof e.getAttributeNode !== j && e.getAttributeNode("id");
  529.                         return n && n.value === t
  530.                     }
  531.                 }), o.find.TAG = r.getElementsByTagName ? function(e, n) {
  532.                     return typeof n.getElementsByTagName !== j ? n.getElementsByTagName(e) : t
  533.                 } : function(e, t) {
  534.                     var n, r = [],
  535.                         i = 0,
  536.                         o = t.getElementsByTagName(e);
  537.                     if ("*" === e) {
  538.                         while (n = o[i++]) 1 === n.nodeType && r.push(n);
  539.                         return r
  540.                     }
  541.                     return o
  542.                 }, o.find.CLASS = r.getElementsByClassName && function(e, n) {
  543.                     return typeof n.getElementsByClassName !== j && h ? n.getElementsByClassName(e) : t
  544.                 }, m = [], g = [], (r.qsa = K.test(n.querySelectorAll)) && (ut(function(e) {
  545.                     e.innerHTML = "<select><option selected=''></option></select>", e.querySelectorAll("[selected]").length || g.push("\\[" + P + "*(?:value|" + B + ")"), e.querySelectorAll(":checked").length || g.push(":checked")
  546.                 }), ut(function(e) {
  547.                     var t = n.createElement("input");
  548.                     t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("t", ""), e.querySelectorAll("[t^='']").length && g.push("[*^$]=" + P + "*(?:''|\"\")"), e.querySelectorAll(":enabled").length || g.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), g.push(",.*:")
  549.                 })), (r.matchesSelector = K.test(y = d.webkitMatchesSelector || d.mozMatchesSelector || d.oMatchesSelector || d.msMatchesSelector)) && ut(function(e) {
  550.                     r.disconnectedMatch = y.call(e, "div"), y.call(e, "[s!='']:x"), m.push("!=", I)
  551.                 }), g = g.length && RegExp(g.join("|")), m = m.length && RegExp(m.join("|")), v = K.test(d.contains) || d.compareDocumentPosition ? function(e, t) {
  552.                     var n = 9 === e.nodeType ? e.documentElement : e,
  553.                         r = t && t.parentNode;
  554.                     return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)))
  555.                 } : function(e, t) {
  556.                     if (t)
  557.                         while (t = t.parentNode)
  558.                             if (t === e) return !0;
  559.                     return !1
  560.                 }, A = d.compareDocumentPosition ? function(e, t) {
  561.                     if (e === t) return S = !0, 0;
  562.                     var i = t.compareDocumentPosition && e.compareDocumentPosition && e.compareDocumentPosition(t);
  563.                     return i ? 1 & i || !r.sortDetached && t.compareDocumentPosition(e) === i ? e === n || v(w, e) ? -1 : t === n || v(w, t) ? 1 : c ? F.call(c, e) - F.call(c, t) : 0 : 4 & i ? -1 : 1 : e.compareDocumentPosition ? -1 : 1
  564.                 } : function(e, t) {
  565.                     var r, i = 0,
  566.                         o = e.parentNode,
  567.                         a = t.parentNode,
  568.                         s = [e],
  569.                         l = [t];
  570.                     if (e === t) return S = !0, 0;
  571.                     if (!o || !a) return e === n ? -1 : t === n ? 1 : o ? -1 : a ? 1 : c ? F.call(c, e) - F.call(c, t) : 0;
  572.                     if (o === a) return pt(e, t);
  573.                     r = e;
  574.                     while (r = r.parentNode) s.unshift(r);
  575.                     r = t;
  576.                     while (r = r.parentNode) l.unshift(r);
  577.                     while (s[i] === l[i]) i++;
  578.                     return i ? pt(s[i], l[i]) : s[i] === w ? -1 : l[i] === w ? 1 : 0
  579.                 }, n) : f
  580.             }, at.matches = function(e, t) {
  581.                 return at(e, null, null, t)
  582.             }, at.matchesSelector = function(e, t) {
  583.                 if ((e.ownerDocument || e) !== f && p(e), t = t.replace(Y, "='$1']"), !(!r.matchesSelector || !h || m && m.test(t) || g && g.test(t))) try {
  584.                     var n = y.call(e, t);
  585.                     if (n || r.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n
  586.                 } catch (i) {}
  587.                 return at(t, f, null, [e]).length > 0
  588.             }, at.contains = function(e, t) {
  589.                 return (e.ownerDocument || e) !== f && p(e), v(e, t)
  590.             }, at.attr = function(e, n) {
  591.                 (e.ownerDocument || e) !== f && p(e);
  592.                 var i = o.attrHandle[n.toLowerCase()],
  593.                     a = i && L.call(o.attrHandle, n.toLowerCase()) ? i(e, n, !h) : t;
  594.                 return a === t ? r.attributes || !h ? e.getAttribute(n) : (a = e.getAttributeNode(n)) && a.specified ? a.value : null : a
  595.             }, at.error = function(e) {
  596.                 throw Error("Syntax error, unrecognized expression: " + e)
  597.             }, at.uniqueSort = function(e) {
  598.                 var t, n = [],
  599.                     i = 0,
  600.                     o = 0;
  601.                 if (S = !r.detectDuplicates, c = !r.sortStable && e.slice(0), e.sort(A), S) {
  602.                     while (t = e[o++]) t === e[o] && (i = n.push(o));
  603.                     while (i--) e.splice(n[i], 1)
  604.                 }
  605.                 return e
  606.             }, a = at.getText = function(e) {
  607.                 var t, n = "",
  608.                     r = 0,
  609.                     i = e.nodeType;
  610.                 if (i) {
  611.                     if (1 === i || 9 === i || 11 === i) {
  612.                         if ("string" == typeof e.textContent) return e.textContent;
  613.                         for (e = e.firstChild; e; e = e.nextSibling) n += a(e)
  614.                     } else if (3 === i || 4 === i) return e.nodeValue
  615.                 } else
  616.                     for (; t = e[r]; r++) n += a(t);
  617.                 return n
  618.             }, o = at.selectors = {
  619.                 cacheLength: 50,
  620.                 createPseudo: lt,
  621.                 match: Q,
  622.                 attrHandle: {},
  623.                 find: {},
  624.                 relative: {
  625.                     ">": {
  626.                         dir: "parentNode",
  627.                         first: !0
  628.                     },
  629.                     " ": {
  630.                         dir: "parentNode"
  631.                     },
  632.                     "+": {
  633.                         dir: "previousSibling",
  634.                         first: !0
  635.                     },
  636.                     "~": {
  637.                         dir: "previousSibling"
  638.                     }
  639.                 },
  640.                 preFilter: {
  641.                     ATTR: function(e) {
  642.                         return e[1] = e[1].replace(rt, it), e[3] = (e[4] || e[5] || "").replace(rt, it), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)
  643.                     },
  644.                     CHILD: function(e) {
  645.                         return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || at.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] && at.error(e[0]), e
  646.                     },
  647.                     PSEUDO: function(e) {
  648.                         var n, r = !e[5] && e[2];
  649.                         return Q.CHILD.test(e[0]) ? null : (e[3] && e[4] !== t ? e[2] = e[4] : r && J.test(r) && (n = mt(r, !0)) && (n = r.indexOf(")", r.length - n) - r.length) && (e[0] = e[0].slice(0, n), e[2] = r.slice(0, n)), e.slice(0, 3))
  650.                     }
  651.                 },
  652.                 filter: {
  653.                     TAG: function(e) {
  654.                         var t = e.replace(rt, it).toLowerCase();
  655.                         return "*" === e ? function() {
  656.                             return !0
  657.                         } : function(e) {
  658.                             return e.nodeName && e.nodeName.toLowerCase() === t
  659.                         }
  660.                     },
  661.                     CLASS: function(e) {
  662.                         var t = N[e + " "];
  663.                         return t || (t = RegExp("(^|" + P + ")" + e + "(" + P + "|$)")) && N(e, function(e) {
  664.                             return t.test("string" == typeof e.className && e.className || typeof e.getAttribute !== j && e.getAttribute("class") || "")
  665.                         })
  666.                     },
  667.                     ATTR: function(e, t, n) {
  668.                         return function(r) {
  669.                             var i = at.attr(r, e);
  670.                             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 + " ").indexOf(n) > -1 : "|=" === t ? i === n || i.slice(0, n.length + 1) === n + "-" : !1) : !0
  671.                         }
  672.                     },
  673.                     CHILD: function(e, t, n, r, i) {
  674.                         var o = "nth" !== e.slice(0, 3),
  675.                             a = "last" !== e.slice(-4),
  676.                             s = "of-type" === t;
  677.                         return 1 === r && 0 === i ? function(e) {
  678.                             return !!e.parentNode
  679.                         } : function(t, n, l) {
  680.                             var u, c, p, f, d, h, g = o !== a ? "nextSibling" : "previousSibling",
  681.                                 m = t.parentNode,
  682.                                 y = s && t.nodeName.toLowerCase(),
  683.                                 v = !l && !s;
  684.                             if (m) {
  685.                                 if (o) {
  686.                                     while (g) {
  687.                                         p = t;
  688.                                         while (p = p[g])
  689.                                             if (s ? p.nodeName.toLowerCase() === y : 1 === p.nodeType) return !1;
  690.                                         h = g = "only" === e && !h && "nextSibling"
  691.                                     }
  692.                                     return !0
  693.                                 }
  694.                                 if (h = [a ? m.firstChild : m.lastChild], a && v) {
  695.                                     c = m[b] || (m[b] = {}), u = c[e] || [], d = u[0] === T && u[1], f = u[0] === T && u[2], p = d && m.childNodes[d];
  696.                                     while (p = ++d && p && p[g] || (f = d = 0) || h.pop())
  697.                                         if (1 === p.nodeType && ++f && p === t) {
  698.                                             c[e] = [T, d, f];
  699.                                             break
  700.                                         }
  701.                                 } else if (v && (u = (t[b] || (t[b] = {}))[e]) && u[0] === T) f = u[1];
  702.                                 else
  703.                                     while (p = ++d && p && p[g] || (f = d = 0) || h.pop())
  704.                                         if ((s ? p.nodeName.toLowerCase() === y : 1 === p.nodeType) && ++f && (v && ((p[b] || (p[b] = {}))[e] = [T, f]), p === t)) break;
  705.                                 return f -= i, f === r || 0 === f % r && f / r >= 0
  706.                             }
  707.                         }
  708.                     },
  709.                     PSEUDO: function(e, t) {
  710.                         var n, r = o.pseudos[e] || o.setFilters[e.toLowerCase()] || at.error("unsupported pseudo: " + e);
  711.                         return r[b] ? r(t) : r.length > 1 ? (n = [e, e, "", t], o.setFilters.hasOwnProperty(e.toLowerCase()) ? lt(function(e, n) {
  712.                             var i, o = r(e, t),
  713.                                 a = o.length;
  714.                             while (a--) i = F.call(e, o[a]), e[i] = !(n[i] = o[a])
  715.                         }) : function(e) {
  716.                             return r(e, 0, n)
  717.                         }) : r
  718.                     }
  719.                 },
  720.                 pseudos: {
  721.                     not: lt(function(e) {
  722.                         var t = [],
  723.                             n = [],
  724.                             r = l(e.replace(z, "$1"));
  725.                         return r[b] ? lt(function(e, t, n, i) {
  726.                             var o, a = r(e, null, i, []),
  727.                                 s = e.length;
  728.                             while (s--)(o = a[s]) && (e[s] = !(t[s] = o))
  729.                         }) : function(e, i, o) {
  730.                             return t[0] = e, r(t, null, o, n), !n.pop()
  731.                         }
  732.                     }),
  733.                     has: lt(function(e) {
  734.                         return function(t) {
  735.                             return at(e, t).length > 0
  736.                         }
  737.                     }),
  738.                     contains: lt(function(e) {
  739.                         return function(t) {
  740.                             return (t.textContent || t.innerText || a(t)).indexOf(e) > -1
  741.                         }
  742.                     }),
  743.                     lang: lt(function(e) {
  744.                         return G.test(e || "") || at.error("unsupported lang: " + e), e = e.replace(rt, it).toLowerCase(),
  745.                             function(t) {
  746.                                 var n;
  747.                                 do
  748.                                     if (n = h ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return n = n.toLowerCase(), n === e || 0 === n.indexOf(e + "-"); while ((t = t.parentNode) && 1 === t.nodeType);
  749.                                 return !1
  750.                             }
  751.                     }),
  752.                     target: function(t) {
  753.                         var n = e.location && e.location.hash;
  754.                         return n && n.slice(1) === t.id
  755.                     },
  756.                     root: function(e) {
  757.                         return e === d
  758.                     },
  759.                     focus: function(e) {
  760.                         return e === f.activeElement && (!f.hasFocus || f.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
  761.                     },
  762.                     enabled: function(e) {
  763.                         return e.disabled === !1
  764.                     },
  765.                     disabled: function(e) {
  766.                         return e.disabled === !0
  767.                     },
  768.                     checked: function(e) {
  769.                         var t = e.nodeName.toLowerCase();
  770.                         return "input" === t && !!e.checked || "option" === t && !!e.selected
  771.                     },
  772.                     selected: function(e) {
  773.                         return e.parentNode && e.parentNode.selectedIndex, e.selected === !0
  774.                     },
  775.                     empty: function(e) {
  776.                         for (e = e.firstChild; e; e = e.nextSibling)
  777.                             if (e.nodeName > "@" || 3 === e.nodeType || 4 === e.nodeType) return !1;
  778.                         return !0
  779.                     },
  780.                     parent: function(e) {
  781.                         return !o.pseudos.empty(e)
  782.                     },
  783.                     header: function(e) {
  784.                         return tt.test(e.nodeName)
  785.                     },
  786.                     input: function(e) {
  787.                         return et.test(e.nodeName)
  788.                     },
  789.                     button: function(e) {
  790.                         var t = e.nodeName.toLowerCase();
  791.                         return "input" === t && "button" === e.type || "button" === t
  792.                     },
  793.                     text: function(e) {
  794.                         var t;
  795.                         return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || t.toLowerCase() === e.type)
  796.                     },
  797.                     first: ht(function() {
  798.                         return [0]
  799.                     }),
  800.                     last: ht(function(e, t) {
  801.                         return [t - 1]
  802.                     }),
  803.                     eq: ht(function(e, t, n) {
  804.                         return [0 > n ? n + t : n]
  805.                     }),
  806.                     even: ht(function(e, t) {
  807.                         var n = 0;
  808.                         for (; t > n; n += 2) e.push(n);
  809.                         return e
  810.                     }),
  811.                     odd: ht(function(e, t) {
  812.                         var n = 1;
  813.                         for (; t > n; n += 2) e.push(n);
  814.                         return e
  815.                     }),
  816.                     lt: ht(function(e, t, n) {
  817.                         var r = 0 > n ? n + t : n;
  818.                         for (; --r >= 0;) e.push(r);
  819.                         return e
  820.                     }),
  821.                     gt: ht(function(e, t, n) {
  822.                         var r = 0 > n ? n + t : n;
  823.                         for (; t > ++r;) e.push(r);
  824.                         return e
  825.                     })
  826.                 }
  827.             }, o.pseudos.nth = o.pseudos.eq;
  828.             for (n in {
  829.                     radio: !0,
  830.                     checkbox: !0,
  831.                     file: !0,
  832.                     password: !0,
  833.                     image: !0
  834.                 }) o.pseudos[n] = ft(n);
  835.             for (n in {
  836.                     submit: !0,
  837.                     reset: !0
  838.                 }) o.pseudos[n] = dt(n);
  839.  
  840.             function gt() {}
  841.             gt.prototype = o.filters = o.pseudos, o.setFilters = new gt;
  842.  
  843.             function mt(e, t) {
  844.                 var n, r, i, a, s, l, u, c = k[e + " "];
  845.                 if (c) return t ? 0 : c.slice(0);
  846.                 s = e, l = [], u = o.preFilter;
  847.                 while (s) {
  848.                     (!n || (r = X.exec(s))) && (r && (s = s.slice(r[0].length) || s), l.push(i = [])), n = !1, (r = U.exec(s)) && (n = r.shift(), i.push({
  849.                         value: n,
  850.                         type: r[0].replace(z, " ")
  851.                     }), s = s.slice(n.length));
  852.                     for (a in o.filter) !(r = Q[a].exec(s)) || u[a] && !(r = u[a](r)) || (n = r.shift(), i.push({
  853.                         value: n,
  854.                         type: a,
  855.                         matches: r
  856.                     }), s = s.slice(n.length));
  857.                     if (!n) break
  858.                 }
  859.                 return t ? s.length : s ? at.error(e) : k(e, l).slice(0)
  860.             }
  861.  
  862.             function yt(e) {
  863.                 var t = 0,
  864.                     n = e.length,
  865.                     r = "";
  866.                 for (; n > t; t++) r += e[t].value;
  867.                 return r
  868.             }
  869.  
  870.             function vt(e, t, n) {
  871.                 var r = t.dir,
  872.                     o = n && "parentNode" === r,
  873.                     a = C++;
  874.                 return t.first ? function(t, n, i) {
  875.                     while (t = t[r])
  876.                         if (1 === t.nodeType || o) return e(t, n, i)
  877.                 } : function(t, n, s) {
  878.                     var l, u, c, p = T + " " + a;
  879.                     if (s) {
  880.                         while (t = t[r])
  881.                             if ((1 === t.nodeType || o) && e(t, n, s)) return !0
  882.                     } else
  883.                         while (t = t[r])
  884.                             if (1 === t.nodeType || o)
  885.                                 if (c = t[b] || (t[b] = {}), (u = c[r]) && u[0] === p) {
  886.                                     if ((l = u[1]) === !0 || l === i) return l === !0
  887.                                 } else if (u = c[r] = [p], u[1] = e(t, n, s) || i, u[1] === !0) return !0
  888.                 }
  889.             }
  890.  
  891.             function bt(e) {
  892.                 return e.length > 1 ? function(t, n, r) {
  893.                     var i = e.length;
  894.                     while (i--)
  895.                         if (!e[i](t, n, r)) return !1;
  896.                     return !0
  897.                 } : e[0]
  898.             }
  899.  
  900.             function xt(e, t, n, r, i) {
  901.                 var o, a = [],
  902.                     s = 0,
  903.                     l = e.length,
  904.                     u = null != t;
  905.                 for (; l > s; s++)(o = e[s]) && (!n || n(o, r, i)) && (a.push(o), u && t.push(s));
  906.                 return a
  907.             }
  908.  
  909.             function wt(e, t, n, r, i, o) {
  910.                 return r && !r[b] && (r = wt(r)), i && !i[b] && (i = wt(i, o)), lt(function(o, a, s, l) {
  911.                     var u, c, p, f = [],
  912.                         d = [],
  913.                         h = a.length,
  914.                         g = o || Nt(t || "*", s.nodeType ? [s] : s, []),
  915.                         m = !e || !o && t ? g : xt(g, f, e, s, l),
  916.                         y = n ? i || (o ? e : h || r) ? [] : a : m;
  917.                     if (n && n(m, y, s, l), r) {
  918.                         u = xt(y, d), r(u, [], s, l), c = u.length;
  919.                         while (c--)(p = u[c]) && (y[d[c]] = !(m[d[c]] = p))
  920.                     }
  921.                     if (o) {
  922.                         if (i || e) {
  923.                             if (i) {
  924.                                 u = [], c = y.length;
  925.                                 while (c--)(p = y[c]) && u.push(m[c] = p);
  926.                                 i(null, y = [], u, l)
  927.                             }
  928.                             c = y.length;
  929.                             while (c--)(p = y[c]) && (u = i ? F.call(o, p) : f[c]) > -1 && (o[u] = !(a[u] = p))
  930.                         }
  931.                     } else y = xt(y === a ? y.splice(h, y.length) : y), i ? i(null, a, y, l) : M.apply(a, y)
  932.                 })
  933.             }
  934.  
  935.             function Tt(e) {
  936.                 var t, n, r, i = e.length,
  937.                     a = o.relative[e[0].type],
  938.                     s = a || o.relative[" "],
  939.                     l = a ? 1 : 0,
  940.                     c = vt(function(e) {
  941.                         return e === t
  942.                     }, s, !0),
  943.                     p = vt(function(e) {
  944.                         return F.call(t, e) > -1
  945.                     }, s, !0),
  946.                     f = [function(e, n, r) {
  947.                         return !a && (r || n !== u) || ((t = n).nodeType ? c(e, n, r) : p(e, n, r))
  948.                     }];
  949.                 for (; i > l; l++)
  950.                     if (n = o.relative[e[l].type]) f = [vt(bt(f), n)];
  951.                     else {
  952.                         if (n = o.filter[e[l].type].apply(null, e[l].matches), n[b]) {
  953.                             for (r = ++l; i > r; r++)
  954.                                 if (o.relative[e[r].type]) break;
  955.                             return wt(l > 1 && bt(f), l > 1 && yt(e.slice(0, l - 1).concat({
  956.                                 value: " " === e[l - 2].type ? "*" : ""
  957.                             })).replace(z, "$1"), n, r > l && Tt(e.slice(l, r)), i > r && Tt(e = e.slice(r)), i > r && yt(e))
  958.                         }
  959.                         f.push(n)
  960.                     }
  961.                 return bt(f)
  962.             }
  963.  
  964.             function Ct(e, t) {
  965.                 var n = 0,
  966.                     r = t.length > 0,
  967.                     a = e.length > 0,
  968.                     s = function(s, l, c, p, d) {
  969.                         var h, g, m, y = [],
  970.                             v = 0,
  971.                             b = "0",
  972.                             x = s && [],
  973.                             w = null != d,
  974.                             C = u,
  975.                             N = s || a && o.find.TAG("*", d && l.parentNode || l),
  976.                             k = T += null == C ? 1 : Math.random() || .1;
  977.                         for (w && (u = l !== f && l, i = n); null != (h = N[b]); b++) {
  978.                             if (a && h) {
  979.                                 g = 0;
  980.                                 while (m = e[g++])
  981.                                     if (m(h, l, c)) {
  982.                                         p.push(h);
  983.                                         break
  984.                                     }
  985.                                 w && (T = k, i = ++n)
  986.                             }
  987.                             r && ((h = !m && h) && v--, s && x.push(h))
  988.                         }
  989.                         if (v += b, r && b !== v) {
  990.                             g = 0;
  991.                             while (m = t[g++]) m(x, y, l, c);
  992.                             if (s) {
  993.                                 if (v > 0)
  994.                                     while (b--) x[b] || y[b] || (y[b] = q.call(p));
  995.                                 y = xt(y)
  996.                             }
  997.                             M.apply(p, y), w && !s && y.length > 0 && v + t.length > 1 && at.uniqueSort(p)
  998.                         }
  999.                         return w && (T = k, u = C), x
  1000.                     };
  1001.                 return r ? lt(s) : s
  1002.             }
  1003.             l = at.compile = function(e, t) {
  1004.                 var n, r = [],
  1005.                     i = [],
  1006.                     o = E[e + " "];
  1007.                 if (!o) {
  1008.                     t || (t = mt(e)), n = t.length;
  1009.                     while (n--) o = Tt(t[n]), o[b] ? r.push(o) : i.push(o);
  1010.                     o = E(e, Ct(i, r))
  1011.                 }
  1012.                 return o
  1013.             };
  1014.  
  1015.             function Nt(e, t, n) {
  1016.                 var r = 0,
  1017.                     i = t.length;
  1018.                 for (; i > r; r++) at(e, t[r], n);
  1019.                 return n
  1020.             }
  1021.  
  1022.             function kt(e, t, n, i) {
  1023.                 var a, s, u, c, p, f = mt(e);
  1024.                 if (!i && 1 === f.length) {
  1025.                     if (s = f[0] = f[0].slice(0), s.length > 2 && "ID" === (u = s[0]).type && r.getById && 9 === t.nodeType && h && o.relative[s[1].type]) {
  1026.                         if (t = (o.find.ID(u.matches[0].replace(rt, it), t) || [])[0], !t) return n;
  1027.                         e = e.slice(s.shift().value.length)
  1028.                     }
  1029.                     a = Q.needsContext.test(e) ? 0 : s.length;
  1030.                     while (a--) {
  1031.                         if (u = s[a], o.relative[c = u.type]) break;
  1032.                         if ((p = o.find[c]) && (i = p(u.matches[0].replace(rt, it), V.test(s[0].type) && t.parentNode || t))) {
  1033.                             if (s.splice(a, 1), e = i.length && yt(s), !e) return M.apply(n, i), n;
  1034.                             break
  1035.                         }
  1036.                     }
  1037.                 }
  1038.                 return l(e, f)(i, t, !h, n, V.test(e)), n
  1039.             }
  1040.             r.sortStable = b.split("").sort(A).join("") === b, r.detectDuplicates = S, p(), r.sortDetached = ut(function(e) {
  1041.                 return 1 & e.compareDocumentPosition(f.createElement("div"))
  1042.             }), ut(function(e) {
  1043.                 return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href")
  1044.             }) || ct("type|href|height|width", function(e, n, r) {
  1045.                 return r ? t : e.getAttribute(n, "type" === n.toLowerCase() ? 1 : 2)
  1046.             }), r.attributes && ut(function(e) {
  1047.                 return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value")
  1048.             }) || ct("value", function(e, n, r) {
  1049.                 return r || "input" !== e.nodeName.toLowerCase() ? t : e.defaultValue
  1050.             }), ut(function(e) {
  1051.                 return null == e.getAttribute("disabled")
  1052.             }) || ct(B, function(e, n, r) {
  1053.                 var i;
  1054.                 return r ? t : (i = e.getAttributeNode(n)) && i.specified ? i.value : e[n] === !0 ? n.toLowerCase() : null
  1055.             }), x.find = at, x.expr = at.selectors, x.expr[":"] = x.expr.pseudos, x.unique = at.uniqueSort, x.text = at.getText, x.isXMLDoc = at.isXML, x.contains = at.contains
  1056.         }(e);
  1057.     var O = {};
  1058.  
  1059.     function F(e) {
  1060.         var t = O[e] = {};
  1061.         return x.each(e.match(T) || [], function(e, n) {
  1062.             t[n] = !0
  1063.         }), t
  1064.     }
  1065.     x.Callbacks = function(e) {
  1066.         e = "string" == typeof e ? O[e] || F(e) : x.extend({}, e);
  1067.         var n, r, i, o, a, s, l = [],
  1068.             u = !e.once && [],
  1069.             c = function(t) {
  1070.                 for (r = e.memory && t, i = !0, a = s || 0, s = 0, o = l.length, n = !0; l && o > a; a++)
  1071.                     if (l[a].apply(t[0], t[1]) === !1 && e.stopOnFalse) {
  1072.                         r = !1;
  1073.                         break
  1074.                     }
  1075.                 n = !1, l && (u ? u.length && c(u.shift()) : r ? l = [] : p.disable())
  1076.             },
  1077.             p = {
  1078.                 add: function() {
  1079.                     if (l) {
  1080.                         var t = l.length;
  1081.                         (function i(t) {
  1082.                             x.each(t, function(t, n) {
  1083.                                 var r = x.type(n);
  1084.                                 "function" === r ? e.unique && p.has(n) || l.push(n) : n && n.length && "string" !== r && i(n)
  1085.                             })
  1086.                         })(arguments), n ? o = l.length : r && (s = t, c(r))
  1087.                     }
  1088.                     return this
  1089.                 },
  1090.                 remove: function() {
  1091.                     return l && x.each(arguments, function(e, t) {
  1092.                         var r;
  1093.                         while ((r = x.inArray(t, l, r)) > -1) l.splice(r, 1), n && (o >= r && o--, a >= r && a--)
  1094.                     }), this
  1095.                 },
  1096.                 has: function(e) {
  1097.                     return e ? x.inArray(e, l) > -1 : !(!l || !l.length)
  1098.                 },
  1099.                 empty: function() {
  1100.                     return l = [], o = 0, this
  1101.                 },
  1102.                 disable: function() {
  1103.                     return l = u = r = t, this
  1104.                 },
  1105.                 disabled: function() {
  1106.                     return !l
  1107.                 },
  1108.                 lock: function() {
  1109.                     return u = t, r || p.disable(), this
  1110.                 },
  1111.                 locked: function() {
  1112.                     return !u
  1113.                 },
  1114.                 fireWith: function(e, t) {
  1115.                     return !l || i && !u || (t = t || [], t = [e, t.slice ? t.slice() : t], n ? u.push(t) : c(t)), this
  1116.                 },
  1117.                 fire: function() {
  1118.                     return p.fireWith(this, arguments), this
  1119.                 },
  1120.                 fired: function() {
  1121.                     return !!i
  1122.                 }
  1123.             };
  1124.         return p
  1125.     }, x.extend({
  1126.         Deferred: function(e) {
  1127.             var t = [
  1128.                     ["resolve", "done", x.Callbacks("once memory"), "resolved"],
  1129.                     ["reject", "fail", x.Callbacks("once memory"), "rejected"],
  1130.                     ["notify", "progress", x.Callbacks("memory")]
  1131.                 ],
  1132.                 n = "pending",
  1133.                 r = {
  1134.                     state: function() {
  1135.                         return n
  1136.                     },
  1137.                     always: function() {
  1138.                         return i.done(arguments).fail(arguments), this
  1139.                     },
  1140.                     then: function() {
  1141.                         var e = arguments;
  1142.                         return x.Deferred(function(n) {
  1143.                             x.each(t, function(t, o) {
  1144.                                 var a = o[0],
  1145.                                     s = x.isFunction(e[t]) && e[t];
  1146.                                 i[o[1]](function() {
  1147.                                     var e = s && s.apply(this, arguments);
  1148.                                     e && x.isFunction(e.promise) ? e.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[a + "With"](this === r ? n.promise() : this, s ? [e] : arguments)
  1149.                                 })
  1150.                             }), e = null
  1151.                         }).promise()
  1152.                     },
  1153.                     promise: function(e) {
  1154.                         return null != e ? x.extend(e, r) : r
  1155.                     }
  1156.                 },
  1157.                 i = {};
  1158.             return r.pipe = r.then, x.each(t, function(e, o) {
  1159.                 var a = o[2],
  1160.                     s = o[3];
  1161.                 r[o[1]] = a.add, s && a.add(function() {
  1162.                     n = s
  1163.                 }, t[1 ^ e][2].disable, t[2][2].lock), i[o[0]] = function() {
  1164.                     return i[o[0] + "With"](this === i ? r : this, arguments), this
  1165.                 }, i[o[0] + "With"] = a.fireWith
  1166.             }), r.promise(i), e && e.call(i, i), i
  1167.         },
  1168.         when: function(e) {
  1169.             var t = 0,
  1170.                 n = g.call(arguments),
  1171.                 r = n.length,
  1172.                 i = 1 !== r || e && x.isFunction(e.promise) ? r : 0,
  1173.                 o = 1 === i ? e : x.Deferred(),
  1174.                 a = function(e, t, n) {
  1175.                     return function(r) {
  1176.                         t[e] = this, n[e] = arguments.length > 1 ? g.call(arguments) : r, n === s ? o.notifyWith(t, n) : --i || o.resolveWith(t, n)
  1177.                     }
  1178.                 },
  1179.                 s, l, u;
  1180.             if (r > 1)
  1181.                 for (s = Array(r), l = Array(r), u = Array(r); r > t; t++) n[t] && x.isFunction(n[t].promise) ? n[t].promise().done(a(t, u, n)).fail(o.reject).progress(a(t, l, s)) : --i;
  1182.             return i || o.resolveWith(u, n), o.promise()
  1183.         }
  1184.     }), x.support = function(t) {
  1185.         var n, r, o, s, l, u, c, p, f, d = a.createElement("div");
  1186.         if (d.setAttribute("className", "t"), d.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", n = d.getElementsByTagName("*") || [], r = d.getElementsByTagName("a")[0], !r || !r.style || !n.length) return t;
  1187.         s = a.createElement("select"), u = s.appendChild(a.createElement("option")), o = d.getElementsByTagName("input")[0], r.style.cssText = "top:1px;float:left;opacity:.5", t.getSetAttribute = "t" !== d.className, t.leadingWhitespace = 3 === d.firstChild.nodeType, t.tbody = !d.getElementsByTagName("tbody").length, t.htmlSerialize = !!d.getElementsByTagName("link").length, t.style = /top/.test(r.getAttribute("style")), t.hrefNormalized = "/a" === r.getAttribute("href"), t.opacity = /^0.5/.test(r.style.opacity), t.cssFloat = !!r.style.cssFloat, t.checkOn = !!o.value, t.optSelected = u.selected, t.enctype = !!a.createElement("form").enctype, t.html5Clone = "<:nav></:nav>" !== a.createElement("nav").cloneNode(!0).outerHTML, t.inlineBlockNeedsLayout = !1, t.shrinkWrapBlocks = !1, t.pixelPosition = !1, t.deleteExpando = !0, t.noCloneEvent = !0, t.reliableMarginRight = !0, t.boxSizingReliable = !0, o.checked = !0, t.noCloneChecked = o.cloneNode(!0).checked, s.disabled = !0, t.optDisabled = !u.disabled;
  1188.         try {
  1189.             delete d.test
  1190.         } catch (h) {
  1191.             t.deleteExpando = !1
  1192.         }
  1193.         o = a.createElement("input"), o.setAttribute("value", ""), t.input = "" === o.getAttribute("value"), o.value = "t", o.setAttribute("type", "radio"), t.radioValue = "t" === o.value, o.setAttribute("checked", "t"), o.setAttribute("name", "t"), l = a.createDocumentFragment(), l.appendChild(o), t.appendChecked = o.checked, t.checkClone = l.cloneNode(!0).cloneNode(!0).lastChild.checked, d.attachEvent && (d.attachEvent("onclick", function() {
  1194.             t.noCloneEvent = !1
  1195.         }), d.cloneNode(!0).click());
  1196.         for (f in {
  1197.                 submit: !0,
  1198.                 change: !0,
  1199.                 focusin: !0
  1200.             }) d.setAttribute(c = "on" + f, "t"), t[f + "Bubbles"] = c in e || d.attributes[c].expando === !1;
  1201.         d.style.backgroundClip = "content-box", d.cloneNode(!0).style.backgroundClip = "", t.clearCloneStyle = "content-box" === d.style.backgroundClip;
  1202.         for (f in x(t)) break;
  1203.         return t.ownLast = "0" !== f, x(function() {
  1204.             var n, r, o, s = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",
  1205.                 l = a.getElementsByTagName("body")[0];
  1206.             l && (n = a.createElement("div"), n.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px", l.appendChild(n).appendChild(d), d.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", o = d.getElementsByTagName("td"), o[0].style.cssText = "padding:0;margin:0;border:0;display:none", p = 0 === o[0].offsetHeight, o[0].style.display = "", o[1].style.display = "none", t.reliableHiddenOffsets = p && 0 === o[0].offsetHeight, d.innerHTML = "", d.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;", x.swap(l, null != l.style.zoom ? {
  1207.                 zoom: 1
  1208.             } : {}, function() {
  1209.                 t.boxSizing = 4 === d.offsetWidth
  1210.             }), e.getComputedStyle && (t.pixelPosition = "1%" !== (e.getComputedStyle(d, null) || {}).top, t.boxSizingReliable = "4px" === (e.getComputedStyle(d, null) || {
  1211.                 width: "4px"
  1212.             }).width, r = d.appendChild(a.createElement("div")), r.style.cssText = d.style.cssText = s, r.style.marginRight = r.style.width = "0", d.style.width = "1px", t.reliableMarginRight = !parseFloat((e.getComputedStyle(r, null) || {}).marginRight)), typeof d.style.zoom !== i && (d.innerHTML = "", d.style.cssText = s + "width:1px;padding:1px;display:inline;zoom:1", t.inlineBlockNeedsLayout = 3 === d.offsetWidth, d.style.display = "block", d.innerHTML = "<div></div>", d.firstChild.style.width = "5px", t.shrinkWrapBlocks = 3 !== d.offsetWidth, t.inlineBlockNeedsLayout && (l.style.zoom = 1)), l.removeChild(n), n = d = o = r = null)
  1213.         }), n = s = l = u = r = o = null, t
  1214.     }({});
  1215.     var B = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
  1216.         P = /([A-Z])/g;
  1217.  
  1218.     function R(e, n, r, i) {
  1219.         if (x.acceptData(e)) {
  1220.             var o, a, s = x.expando,
  1221.                 l = e.nodeType,
  1222.                 u = l ? x.cache : e,
  1223.                 c = l ? e[s] : e[s] && s;
  1224.             if (c && u[c] && (i || u[c].data) || r !== t || "string" != typeof n) return c || (c = l ? e[s] = p.pop() || x.guid++ : s), u[c] || (u[c] = l ? {} : {
  1225.                 toJSON: x.noop
  1226.             }), ("object" == typeof n || "function" == typeof n) && (i ? u[c] = x.extend(u[c], n) : u[c].data = x.extend(u[c].data, n)), a = u[c], i || (a.data || (a.data = {}), a = a.data), r !== t && (a[x.camelCase(n)] = r), "string" == typeof n ? (o = a[n], null == o && (o = a[x.camelCase(n)])) : o = a, o
  1227.         }
  1228.     }
  1229.  
  1230.     function W(e, t, n) {
  1231.         if (x.acceptData(e)) {
  1232.             var r, i, o = e.nodeType,
  1233.                 a = o ? x.cache : e,
  1234.                 s = o ? e[x.expando] : x.expando;
  1235.             if (a[s]) {
  1236.                 if (t && (r = n ? a[s] : a[s].data)) {
  1237.                     x.isArray(t) ? t = t.concat(x.map(t, x.camelCase)) : t in r ? t = [t] : (t = x.camelCase(t), t = t in r ? [t] : t.split(" ")), i = t.length;
  1238.                     while (i--) delete r[t[i]];
  1239.                     if (n ? !I(r) : !x.isEmptyObject(r)) return
  1240.                 }(n || (delete a[s].data, I(a[s]))) && (o ? x.cleanData([e], !0) : x.support.deleteExpando || a != a.window ? delete a[s] : a[s] = null)
  1241.             }
  1242.         }
  1243.     }
  1244.     x.extend({
  1245.         cache: {},
  1246.         noData: {
  1247.             applet: !0,
  1248.             embed: !0,
  1249.             object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
  1250.         },
  1251.         hasData: function(e) {
  1252.             return e = e.nodeType ? x.cache[e[x.expando]] : e[x.expando], !!e && !I(e)
  1253.         },
  1254.         data: function(e, t, n) {
  1255.             return R(e, t, n)
  1256.         },
  1257.         removeData: function(e, t) {
  1258.             return W(e, t)
  1259.         },
  1260.         _data: function(e, t, n) {
  1261.             return R(e, t, n, !0)
  1262.         },
  1263.         _removeData: function(e, t) {
  1264.             return W(e, t, !0)
  1265.         },
  1266.         acceptData: function(e) {
  1267.             if (e.nodeType && 1 !== e.nodeType && 9 !== e.nodeType) return !1;
  1268.             var t = e.nodeName && x.noData[e.nodeName.toLowerCase()];
  1269.             return !t || t !== !0 && e.getAttribute("classid") === t
  1270.         }
  1271.     }), x.fn.extend({
  1272.         data: function(e, n) {
  1273.             var r, i, o = null,
  1274.                 a = 0,
  1275.                 s = this[0];
  1276.             if (e === t) {
  1277.                 if (this.length && (o = x.data(s), 1 === s.nodeType && !x._data(s, "parsedAttrs"))) {
  1278.                     for (r = s.attributes; r.length > a; a++) i = r[a].name, 0 === i.indexOf("data-") && (i = x.camelCase(i.slice(5)), $(s, i, o[i]));
  1279.                     x._data(s, "parsedAttrs", !0)
  1280.                 }
  1281.                 return o
  1282.             }
  1283.             return "object" == typeof e ? this.each(function() {
  1284.                 x.data(this, e)
  1285.             }) : arguments.length > 1 ? this.each(function() {
  1286.                 x.data(this, e, n)
  1287.             }) : s ? $(s, e, x.data(s, e)) : null
  1288.         },
  1289.         removeData: function(e) {
  1290.             return this.each(function() {
  1291.                 x.removeData(this, e)
  1292.             })
  1293.         }
  1294.     });
  1295.  
  1296.     function $(e, n, r) {
  1297.         if (r === t && 1 === e.nodeType) {
  1298.             var i = "data-" + n.replace(P, "-$1").toLowerCase();
  1299.             if (r = e.getAttribute(i), "string" == typeof r) {
  1300.                 try {
  1301.                     r = "true" === r ? !0 : "false" === r ? !1 : "null" === r ? null : +r + "" === r ? +r : B.test(r) ? x.parseJSON(r) : r
  1302.                 } catch (o) {}
  1303.                 x.data(e, n, r)
  1304.             } else r = t
  1305.         }
  1306.         return r
  1307.     }
  1308.  
  1309.     function I(e) {
  1310.         var t;
  1311.         for (t in e)
  1312.             if (("data" !== t || !x.isEmptyObject(e[t])) && "toJSON" !== t) return !1;
  1313.         return !0
  1314.     }
  1315.     x.extend({
  1316.         queue: function(e, n, r) {
  1317.             var i;
  1318.             return e ? (n = (n || "fx") + "queue", i = x._data(e, n), r && (!i || x.isArray(r) ? i = x._data(e, n, x.makeArray(r)) : i.push(r)), i || []) : t
  1319.         },
  1320.         dequeue: function(e, t) {
  1321.             t = t || "fx";
  1322.             var n = x.queue(e, t),
  1323.                 r = n.length,
  1324.                 i = n.shift(),
  1325.                 o = x._queueHooks(e, t),
  1326.                 a = function() {
  1327.                     x.dequeue(e, t)
  1328.                 };
  1329.             "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()
  1330.         },
  1331.         _queueHooks: function(e, t) {
  1332.             var n = t + "queueHooks";
  1333.             return x._data(e, n) || x._data(e, n, {
  1334.                 empty: x.Callbacks("once memory").add(function() {
  1335.                     x._removeData(e, t + "queue"), x._removeData(e, n)
  1336.                 })
  1337.             })
  1338.         }
  1339.     }), x.fn.extend({
  1340.         queue: function(e, n) {
  1341.             var r = 2;
  1342.             return "string" != typeof e && (n = e, e = "fx", r--), r > arguments.length ? x.queue(this[0], e) : n === t ? this : this.each(function() {
  1343.                 var t = x.queue(this, e, n);
  1344.                 x._queueHooks(this, e), "fx" === e && "inprogress" !== t[0] && x.dequeue(this, e)
  1345.             })
  1346.         },
  1347.         dequeue: function(e) {
  1348.             return this.each(function() {
  1349.                 x.dequeue(this, e)
  1350.             })
  1351.         },
  1352.         delay: function(e, t) {
  1353.             return e = x.fx ? x.fx.speeds[e] || e : e, t = t || "fx", this.queue(t, function(t, n) {
  1354.                 var r = setTimeout(t, e);
  1355.                 n.stop = function() {
  1356.                     clearTimeout(r)
  1357.                 }
  1358.             })
  1359.         },
  1360.         clearQueue: function(e) {
  1361.             return this.queue(e || "fx", [])
  1362.         },
  1363.         promise: function(e, n) {
  1364.             var r, i = 1,
  1365.                 o = x.Deferred(),
  1366.                 a = this,
  1367.                 s = this.length,
  1368.                 l = function() {
  1369.                     --i || o.resolveWith(a, [a])
  1370.                 };
  1371.             "string" != typeof e && (n = e, e = t), e = e || "fx";
  1372.             while (s--) r = x._data(a[s], e + "queueHooks"), r && r.empty && (i++, r.empty.add(l));
  1373.             return l(), o.promise(n)
  1374.         }
  1375.     });
  1376.     var z, X, U = /[\t\r\n\f]/g,
  1377.         V = /\r/g,
  1378.         Y = /^(?:input|select|textarea|button|object)$/i,
  1379.         J = /^(?:a|area)$/i,
  1380.         G = /^(?:checked|selected)$/i,
  1381.         Q = x.support.getSetAttribute,
  1382.         K = x.support.input;
  1383.     x.fn.extend({
  1384.         attr: function(e, t) {
  1385.             return x.access(this, x.attr, e, t, arguments.length > 1)
  1386.         },
  1387.         removeAttr: function(e) {
  1388.             return this.each(function() {
  1389.                 x.removeAttr(this, e)
  1390.             })
  1391.         },
  1392.         prop: function(e, t) {
  1393.             return x.access(this, x.prop, e, t, arguments.length > 1)
  1394.         },
  1395.         removeProp: function(e) {
  1396.             return e = x.propFix[e] || e, this.each(function() {
  1397.                 try {
  1398.                     this[e] = t, delete this[e]
  1399.                 } catch (n) {}
  1400.             })
  1401.         },
  1402.         addClass: function(e) {
  1403.             var t, n, r, i, o, a = 0,
  1404.                 s = this.length,
  1405.                 l = "string" == typeof e && e;
  1406.             if (x.isFunction(e)) return this.each(function(t) {
  1407.                 x(this).addClass(e.call(this, t, this.className))
  1408.             });
  1409.             if (l)
  1410.                 for (t = (e || "").match(T) || []; s > a; a++)
  1411.                     if (n = this[a], r = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(U, " ") : " ")) {
  1412.                         o = 0;
  1413.                         while (i = t[o++]) 0 > r.indexOf(" " + i + " ") && (r += i + " ");
  1414.                         n.className = x.trim(r)
  1415.                     }
  1416.             return this
  1417.         },
  1418.         removeClass: function(e) {
  1419.             var t, n, r, i, o, a = 0,
  1420.                 s = this.length,
  1421.                 l = 0 === arguments.length || "string" == typeof e && e;
  1422.             if (x.isFunction(e)) return this.each(function(t) {
  1423.                 x(this).removeClass(e.call(this, t, this.className))
  1424.             });
  1425.             if (l)
  1426.                 for (t = (e || "").match(T) || []; s > a; a++)
  1427.                     if (n = this[a], r = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(U, " ") : "")) {
  1428.                         o = 0;
  1429.                         while (i = t[o++])
  1430.                             while (r.indexOf(" " + i + " ") >= 0) r = r.replace(" " + i + " ", " ");
  1431.                         n.className = e ? x.trim(r) : ""
  1432.                     }
  1433.             return this
  1434.         },
  1435.         toggleClass: function(e, t) {
  1436.             var n = typeof e;
  1437.             return "boolean" == typeof t && "string" === n ? t ? this.addClass(e) : this.removeClass(e) : x.isFunction(e) ? this.each(function(n) {
  1438.                 x(this).toggleClass(e.call(this, n, this.className, t), t)
  1439.             }) : this.each(function() {
  1440.                 if ("string" === n) {
  1441.                     var t, r = 0,
  1442.                         o = x(this),
  1443.                         a = e.match(T) || [];
  1444.                     while (t = a[r++]) o.hasClass(t) ? o.removeClass(t) : o.addClass(t)
  1445.                 } else(n === i || "boolean" === n) && (this.className && x._data(this, "__className__", this.className), this.className = this.className || e === !1 ? "" : x._data(this, "__className__") || "")
  1446.             })
  1447.         },
  1448.         hasClass: function(e) {
  1449.             var t = " " + e + " ",
  1450.                 n = 0,
  1451.                 r = this.length;
  1452.             for (; r > n; n++)
  1453.                 if (1 === this[n].nodeType && (" " + this[n].className + " ").replace(U, " ").indexOf(t) >= 0) return !0;
  1454.             return !1
  1455.         },
  1456.         val: function(e) {
  1457.             var n, r, i, o = this[0]; {
  1458.                 if (arguments.length) return i = x.isFunction(e), this.each(function(n) {
  1459.                     var o;
  1460.                     1 === this.nodeType && (o = i ? e.call(this, n, x(this).val()) : e, null == o ? o = "" : "number" == typeof o ? o += "" : x.isArray(o) && (o = x.map(o, function(e) {
  1461.                         return null == e ? "" : e + ""
  1462.                     })), r = x.valHooks[this.type] || x.valHooks[this.nodeName.toLowerCase()], r && "set" in r && r.set(this, o, "value") !== t || (this.value = o))
  1463.                 });
  1464.                 if (o) return r = x.valHooks[o.type] || x.valHooks[o.nodeName.toLowerCase()], r && "get" in r && (n = r.get(o, "value")) !== t ? n : (n = o.value, "string" == typeof n ? n.replace(V, "") : null == n ? "" : n)
  1465.             }
  1466.         }
  1467.     }), x.extend({
  1468.         valHooks: {
  1469.             option: {
  1470.                 get: function(e) {
  1471.                     var t = x.find.attr(e, "value");
  1472.                     return null != t ? t : e.text
  1473.                 }
  1474.             },
  1475.             select: {
  1476.                 get: function(e) {
  1477.                     var t, n, r = e.options,
  1478.                         i = e.selectedIndex,
  1479.                         o = "select-one" === e.type || 0 > i,
  1480.                         a = o ? null : [],
  1481.                         s = o ? i + 1 : r.length,
  1482.                         l = 0 > i ? s : o ? i : 0;
  1483.                     for (; s > l; l++)
  1484.                         if (n = r[l], !(!n.selected && l !== i || (x.support.optDisabled ? n.disabled : null !== n.getAttribute("disabled")) || n.parentNode.disabled && x.nodeName(n.parentNode, "optgroup"))) {
  1485.                             if (t = x(n).val(), o) return t;
  1486.                             a.push(t)
  1487.                         }
  1488.                     return a
  1489.                 },
  1490.                 set: function(e, t) {
  1491.                     var n, r, i = e.options,
  1492.                         o = x.makeArray(t),
  1493.                         a = i.length;
  1494.                     while (a--) r = i[a], (r.selected = x.inArray(x(r).val(), o) >= 0) && (n = !0);
  1495.                     return n || (e.selectedIndex = -1), o
  1496.                 }
  1497.             }
  1498.         },
  1499.         attr: function(e, n, r) {
  1500.             var o, a, s = e.nodeType;
  1501.             if (e && 3 !== s && 8 !== s && 2 !== s) return typeof e.getAttribute === i ? x.prop(e, n, r) : (1 === s && x.isXMLDoc(e) || (n = n.toLowerCase(), o = x.attrHooks[n] || (x.expr.match.bool.test(n) ? X : z)), r === t ? o && "get" in o && null !== (a = o.get(e, n)) ? a : (a = x.find.attr(e, n), null == a ? t : a) : null !== r ? o && "set" in o && (a = o.set(e, r, n)) !== t ? a : (e.setAttribute(n, r + ""), r) : (x.removeAttr(e, n), t))
  1502.         },
  1503.         removeAttr: function(e, t) {
  1504.             var n, r, i = 0,
  1505.                 o = t && t.match(T);
  1506.             if (o && 1 === e.nodeType)
  1507.                 while (n = o[i++]) r = x.propFix[n] || n, x.expr.match.bool.test(n) ? K && Q || !G.test(n) ? e[r] = !1 : e[x.camelCase("default-" + n)] = e[r] = !1 : x.attr(e, n, ""), e.removeAttribute(Q ? n : r)
  1508.         },
  1509.         attrHooks: {
  1510.             type: {
  1511.                 set: function(e, t) {
  1512.                     if (!x.support.radioValue && "radio" === t && x.nodeName(e, "input")) {
  1513.                         var n = e.value;
  1514.                         return e.setAttribute("type", t), n && (e.value = n), t
  1515.                     }
  1516.                 }
  1517.             }
  1518.         },
  1519.         propFix: {
  1520.             "for": "htmlFor",
  1521.             "class": "className"
  1522.         },
  1523.         prop: function(e, n, r) {
  1524.             var i, o, a, s = e.nodeType;
  1525.             if (e && 3 !== s && 8 !== s && 2 !== s) return a = 1 !== s || !x.isXMLDoc(e), a && (n = x.propFix[n] || n, o = x.propHooks[n]), r !== t ? o && "set" in o && (i = o.set(e, r, n)) !== t ? i : e[n] = r : o && "get" in o && null !== (i = o.get(e, n)) ? i : e[n]
  1526.         },
  1527.         propHooks: {
  1528.             tabIndex: {
  1529.                 get: function(e) {
  1530.                     var t = x.find.attr(e, "tabindex");
  1531.                     return t ? parseInt(t, 10) : Y.test(e.nodeName) || J.test(e.nodeName) && e.href ? 0 : -1
  1532.                 }
  1533.             }
  1534.         }
  1535.     }), X = {
  1536.         set: function(e, t, n) {
  1537.             return t === !1 ? x.removeAttr(e, n) : K && Q || !G.test(n) ? e.setAttribute(!Q && x.propFix[n] || n, n) : e[x.camelCase("default-" + n)] = e[n] = !0, n
  1538.         }
  1539.     }, x.each(x.expr.match.bool.source.match(/\w+/g), function(e, n) {
  1540.         var r = x.expr.attrHandle[n] || x.find.attr;
  1541.         x.expr.attrHandle[n] = K && Q || !G.test(n) ? function(e, n, i) {
  1542.             var o = x.expr.attrHandle[n],
  1543.                 a = i ? t : (x.expr.attrHandle[n] = t) != r(e, n, i) ? n.toLowerCase() : null;
  1544.             return x.expr.attrHandle[n] = o, a
  1545.         } : function(e, n, r) {
  1546.             return r ? t : e[x.camelCase("default-" + n)] ? n.toLowerCase() : null
  1547.         }
  1548.     }), K && Q || (x.attrHooks.value = {
  1549.         set: function(e, n, r) {
  1550.             return x.nodeName(e, "input") ? (e.defaultValue = n, t) : z && z.set(e, n, r)
  1551.         }
  1552.     }), Q || (z = {
  1553.         set: function(e, n, r) {
  1554.             var i = e.getAttributeNode(r);
  1555.             return i || e.setAttributeNode(i = e.ownerDocument.createAttribute(r)), i.value = n += "", "value" === r || n === e.getAttribute(r) ? n : t
  1556.         }
  1557.     }, x.expr.attrHandle.id = x.expr.attrHandle.name = x.expr.attrHandle.coords = function(e, n, r) {
  1558.         var i;
  1559.         return r ? t : (i = e.getAttributeNode(n)) && "" !== i.value ? i.value : null
  1560.     }, x.valHooks.button = {
  1561.         get: function(e, n) {
  1562.             var r = e.getAttributeNode(n);
  1563.             return r && r.specified ? r.value : t
  1564.         },
  1565.         set: z.set
  1566.     }, x.attrHooks.contenteditable = {
  1567.         set: function(e, t, n) {
  1568.             z.set(e, "" === t ? !1 : t, n)
  1569.         }
  1570.     }, x.each(["width", "height"], function(e, n) {
  1571.         x.attrHooks[n] = {
  1572.             set: function(e, r) {
  1573.                 return "" === r ? (e.setAttribute(n, "auto"), r) : t
  1574.             }
  1575.         }
  1576.     })), x.support.hrefNormalized || x.each(["href", "src"], function(e, t) {
  1577.         x.propHooks[t] = {
  1578.             get: function(e) {
  1579.                 return e.getAttribute(t, 4)
  1580.             }
  1581.         }
  1582.     }), x.support.style || (x.attrHooks.style = {
  1583.         get: function(e) {
  1584.             return e.style.cssText || t
  1585.         },
  1586.         set: function(e, t) {
  1587.             return e.style.cssText = t + ""
  1588.         }
  1589.     }), x.support.optSelected || (x.propHooks.selected = {
  1590.         get: function(e) {
  1591.             var t = e.parentNode;
  1592.             return t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex), null
  1593.         }
  1594.     }), x.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
  1595.         x.propFix[this.toLowerCase()] = this
  1596.     }), x.support.enctype || (x.propFix.enctype = "encoding"), x.each(["radio", "checkbox"], function() {
  1597.         x.valHooks[this] = {
  1598.             set: function(e, n) {
  1599.                 return x.isArray(n) ? e.checked = x.inArray(x(e).val(), n) >= 0 : t
  1600.             }
  1601.         }, x.support.checkOn || (x.valHooks[this].get = function(e) {
  1602.             return null === e.getAttribute("value") ? "on" : e.value
  1603.         })
  1604.     });
  1605.     var Z = /^(?:input|select|textarea)$/i,
  1606.         et = /^key/,
  1607.         tt = /^(?:mouse|contextmenu)|click/,
  1608.         nt = /^(?:focusinfocus|focusoutblur)$/,
  1609.         rt = /^([^.]*)(?:\.(.+)|)$/;
  1610.  
  1611.     function it() {
  1612.         return !0
  1613.     }
  1614.  
  1615.     function ot() {
  1616.         return !1
  1617.     }
  1618.  
  1619.     function at() {
  1620.         try {
  1621.             return a.activeElement
  1622.         } catch (e) {}
  1623.     }
  1624.     x.event = {
  1625.         global: {},
  1626.         add: function(e, n, r, o, a) {
  1627.             var s, l, u, c, p, f, d, h, g, m, y, v = x._data(e);
  1628.             if (v) {
  1629.                 r.handler && (c = r, r = c.handler, a = c.selector), r.guid || (r.guid = x.guid++), (l = v.events) || (l = v.events = {}), (f = v.handle) || (f = v.handle = function(e) {
  1630.                     return typeof x === i || e && x.event.triggered === e.type ? t : x.event.dispatch.apply(f.elem, arguments)
  1631.                 }, f.elem = e), n = (n || "").match(T) || [""], u = n.length;
  1632.                 while (u--) s = rt.exec(n[u]) || [], g = y = s[1], m = (s[2] || "").split(".").sort(), g && (p = x.event.special[g] || {}, g = (a ? p.delegateType : p.bindType) || g, p = x.event.special[g] || {}, d = x.extend({
  1633.                     type: g,
  1634.                     origType: y,
  1635.                     data: o,
  1636.                     handler: r,
  1637.                     guid: r.guid,
  1638.                     selector: a,
  1639.                     needsContext: a && x.expr.match.needsContext.test(a),
  1640.                     namespace: m.join(".")
  1641.                 }, c), (h = l[g]) || (h = l[g] = [], h.delegateCount = 0, p.setup && p.setup.call(e, o, m, f) !== !1 || (e.addEventListener ? e.addEventListener(g, f, !1) : e.attachEvent && e.attachEvent("on" + g, f))), p.add && (p.add.call(e, d), d.handler.guid || (d.handler.guid = r.guid)), a ? h.splice(h.delegateCount++, 0, d) : h.push(d), x.event.global[g] = !0);
  1642.                 e = null
  1643.             }
  1644.         },
  1645.         remove: function(e, t, n, r, i) {
  1646.             var o, a, s, l, u, c, p, f, d, h, g, m = x.hasData(e) && x._data(e);
  1647.             if (m && (c = m.events)) {
  1648.                 t = (t || "").match(T) || [""], u = t.length;
  1649.                 while (u--)
  1650.                     if (s = rt.exec(t[u]) || [], d = g = s[1], h = (s[2] || "").split(".").sort(), d) {
  1651.                         p = x.event.special[d] || {}, d = (r ? p.delegateType : p.bindType) || d, f = c[d] || [], s = s[2] && RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), l = o = f.length;
  1652.                         while (o--) a = f[o], !i && g !== a.origType || n && n.guid !== a.guid || s && !s.test(a.namespace) || r && r !== a.selector && ("**" !== r || !a.selector) || (f.splice(o, 1), a.selector && f.delegateCount--, p.remove && p.remove.call(e, a));
  1653.                         l && !f.length && (p.teardown && p.teardown.call(e, h, m.handle) !== !1 || x.removeEvent(e, d, m.handle), delete c[d])
  1654.                     } else
  1655.                         for (d in c) x.event.remove(e, d + t[u], n, r, !0);
  1656.                 x.isEmptyObject(c) && (delete m.handle, x._removeData(e, "events"))
  1657.             }
  1658.         },
  1659.         trigger: function(n, r, i, o) {
  1660.             var s, l, u, c, p, f, d, h = [i || a],
  1661.                 g = v.call(n, "type") ? n.type : n,
  1662.                 m = v.call(n, "namespace") ? n.namespace.split(".") : [];
  1663.             if (u = f = i = i || a, 3 !== i.nodeType && 8 !== i.nodeType && !nt.test(g + x.event.triggered) && (g.indexOf(".") >= 0 && (m = g.split("."), g = m.shift(), m.sort()), l = 0 > g.indexOf(":") && "on" + g, n = n[x.expando] ? n : new x.Event(g, "object" == typeof n && n), n.isTrigger = o ? 2 : 3, n.namespace = m.join("."), n.namespace_re = n.namespace ? RegExp("(^|\\.)" + m.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, n.result = t, n.target || (n.target = i), r = null == r ? [n] : x.makeArray(r, [n]), p = x.event.special[g] || {}, o || !p.trigger || p.trigger.apply(i, r) !== !1)) {
  1664.                 if (!o && !p.noBubble && !x.isWindow(i)) {
  1665.                     for (c = p.delegateType || g, nt.test(c + g) || (u = u.parentNode); u; u = u.parentNode) h.push(u), f = u;
  1666.                     f === (i.ownerDocument || a) && h.push(f.defaultView || f.parentWindow || e)
  1667.                 }
  1668.                 d = 0;
  1669.                 while ((u = h[d++]) && !n.isPropagationStopped()) n.type = d > 1 ? c : p.bindType || g, s = (x._data(u, "events") || {})[n.type] && x._data(u, "handle"), s && s.apply(u, r), s = l && u[l], s && x.acceptData(u) && s.apply && s.apply(u, r) === !1 && n.preventDefault();
  1670.                 if (n.type = g, !o && !n.isDefaultPrevented() && (!p._default || p._default.apply(h.pop(), r) === !1) && x.acceptData(i) && l && i[g] && !x.isWindow(i)) {
  1671.                     f = i[l], f && (i[l] = null), x.event.triggered = g;
  1672.                     try {
  1673.                         i[g]()
  1674.                     } catch (y) {}
  1675.                     x.event.triggered = t, f && (i[l] = f)
  1676.                 }
  1677.                 return n.result
  1678.             }
  1679.         },
  1680.         dispatch: function(e) {
  1681.             e = x.event.fix(e);
  1682.             var n, r, i, o, a, s = [],
  1683.                 l = g.call(arguments),
  1684.                 u = (x._data(this, "events") || {})[e.type] || [],
  1685.                 c = x.event.special[e.type] || {};
  1686.             if (l[0] = e, e.delegateTarget = this, !c.preDispatch || c.preDispatch.call(this, e) !== !1) {
  1687.                 s = x.event.handlers.call(this, e, u), n = 0;
  1688.                 while ((o = s[n++]) && !e.isPropagationStopped()) {
  1689.                     e.currentTarget = o.elem, a = 0;
  1690.                     while ((i = o.handlers[a++]) && !e.isImmediatePropagationStopped())(!e.namespace_re || e.namespace_re.test(i.namespace)) && (e.handleObj = i, e.data = i.data, r = ((x.event.special[i.origType] || {}).handle || i.handler).apply(o.elem, l), r !== t && (e.result = r) === !1 && (e.preventDefault(), e.stopPropagation()))
  1691.                 }
  1692.                 return c.postDispatch && c.postDispatch.call(this, e), e.result
  1693.             }
  1694.         },
  1695.         handlers: function(e, n) {
  1696.             var r, i, o, a, s = [],
  1697.                 l = n.delegateCount,
  1698.                 u = e.target;
  1699.             if (l && u.nodeType && (!e.button || "click" !== e.type))
  1700.                 for (; u != this; u = u.parentNode || this)
  1701.                     if (1 === u.nodeType && (u.disabled !== !0 || "click" !== e.type)) {
  1702.                         for (o = [], a = 0; l > a; a++) i = n[a], r = i.selector + " ", o[r] === t && (o[r] = i.needsContext ? x(r, this).index(u) >= 0 : x.find(r, this, null, [u]).length), o[r] && o.push(i);
  1703.                         o.length && s.push({
  1704.                             elem: u,
  1705.                             handlers: o
  1706.                         })
  1707.                     }
  1708.             return n.length > l && s.push({
  1709.                 elem: this,
  1710.                 handlers: n.slice(l)
  1711.             }), s
  1712.         },
  1713.         fix: function(e) {
  1714.             if (e[x.expando]) return e;
  1715.             var t, n, r, i = e.type,
  1716.                 o = e,
  1717.                 s = this.fixHooks[i];
  1718.             s || (this.fixHooks[i] = s = tt.test(i) ? this.mouseHooks : et.test(i) ? this.keyHooks : {}), r = s.props ? this.props.concat(s.props) : this.props, e = new x.Event(o), t = r.length;
  1719.             while (t--) n = r[t], e[n] = o[n];
  1720.             return e.target || (e.target = o.srcElement || a), 3 === e.target.nodeType && (e.target = e.target.parentNode), e.metaKey = !!e.metaKey, s.filter ? s.filter(e, o) : e
  1721.         },
  1722.         props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
  1723.         fixHooks: {},
  1724.         keyHooks: {
  1725.             props: "char charCode key keyCode".split(" "),
  1726.             filter: function(e, t) {
  1727.                 return null == e.which && (e.which = null != t.charCode ? t.charCode : t.keyCode), e
  1728.             }
  1729.         },
  1730.         mouseHooks: {
  1731.             props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
  1732.             filter: function(e, n) {
  1733.                 var r, i, o, s = n.button,
  1734.                     l = n.fromElement;
  1735.                 return null == e.pageX && null != n.clientX && (i = e.target.ownerDocument || a, o = i.documentElement, r = i.body, e.pageX = n.clientX + (o && o.scrollLeft || r && r.scrollLeft || 0) - (o && o.clientLeft || r && r.clientLeft || 0), e.pageY = n.clientY + (o && o.scrollTop || r && r.scrollTop || 0) - (o && o.clientTop || r && r.clientTop || 0)), !e.relatedTarget && l && (e.relatedTarget = l === e.target ? n.toElement : l), e.which || s === t || (e.which = 1 & s ? 1 : 2 & s ? 3 : 4 & s ? 2 : 0), e
  1736.             }
  1737.         },
  1738.         special: {
  1739.             load: {
  1740.                 noBubble: !0
  1741.             },
  1742.             focus: {
  1743.                 trigger: function() {
  1744.                     if (this !== at() && this.focus) try {
  1745.                         return this.focus(), !1
  1746.                     } catch (e) {}
  1747.                 },
  1748.                 delegateType: "focusin"
  1749.             },
  1750.             blur: {
  1751.                 trigger: function() {
  1752.                     return this === at() && this.blur ? (this.blur(), !1) : t
  1753.                 },
  1754.                 delegateType: "focusout"
  1755.             },
  1756.             click: {
  1757.                 trigger: function() {
  1758.                     return x.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : t
  1759.                 },
  1760.                 _default: function(e) {
  1761.                     return x.nodeName(e.target, "a")
  1762.                 }
  1763.             },
  1764.             beforeunload: {
  1765.                 postDispatch: function(e) {
  1766.                     e.result !== t && (e.originalEvent.returnValue = e.result)
  1767.                 }
  1768.             }
  1769.         },
  1770.         simulate: function(e, t, n, r) {
  1771.             var i = x.extend(new x.Event, n, {
  1772.                 type: e,
  1773.                 isSimulated: !0,
  1774.                 originalEvent: {}
  1775.             });
  1776.             r ? x.event.trigger(i, null, t) : x.event.dispatch.call(t, i), i.isDefaultPrevented() && n.preventDefault()
  1777.         }
  1778.     }, x.removeEvent = a.removeEventListener ? function(e, t, n) {
  1779.         e.removeEventListener && e.removeEventListener(t, n, !1)
  1780.     } : function(e, t, n) {
  1781.         var r = "on" + t;
  1782.         e.detachEvent && (typeof e[r] === i && (e[r] = null), e.detachEvent(r, n))
  1783.     }, x.Event = function(e, n) {
  1784.         return this instanceof x.Event ? (e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || e.returnValue === !1 || e.getPreventDefault && e.getPreventDefault() ? it : ot) : this.type = e, n && x.extend(this, n), this.timeStamp = e && e.timeStamp || x.now(), this[x.expando] = !0, t) : new x.Event(e, n)
  1785.     }, x.Event.prototype = {
  1786.         isDefaultPrevented: ot,
  1787.         isPropagationStopped: ot,
  1788.         isImmediatePropagationStopped: ot,
  1789.         preventDefault: function() {
  1790.             var e = this.originalEvent;
  1791.             this.isDefaultPrevented = it, e && (e.preventDefault ? e.preventDefault() : e.returnValue = !1)
  1792.         },
  1793.         stopPropagation: function() {
  1794.             var e = this.originalEvent;
  1795.             this.isPropagationStopped = it, e && (e.stopPropagation && e.stopPropagation(), e.cancelBubble = !0)
  1796.         },
  1797.         stopImmediatePropagation: function() {
  1798.             this.isImmediatePropagationStopped = it, this.stopPropagation()
  1799.         }
  1800.     }, x.each({
  1801.         mouseenter: "mouseover",
  1802.         mouseleave: "mouseout"
  1803.     }, function(e, t) {
  1804.         x.event.special[e] = {
  1805.             delegateType: t,
  1806.             bindType: t,
  1807.             handle: function(e) {
  1808.                 var n, r = this,
  1809.                     i = e.relatedTarget,
  1810.                     o = e.handleObj;
  1811.                 return (!i || i !== r && !x.contains(r, i)) && (e.type = o.origType, n = o.handler.apply(this, arguments), e.type = t), n
  1812.             }
  1813.         }
  1814.     }), x.support.submitBubbles || (x.event.special.submit = {
  1815.         setup: function() {
  1816.             return x.nodeName(this, "form") ? !1 : (x.event.add(this, "click._submit keypress._submit", function(e) {
  1817.                 var n = e.target,
  1818.                     r = x.nodeName(n, "input") || x.nodeName(n, "button") ? n.form : t;
  1819.                 r && !x._data(r, "submitBubbles") && (x.event.add(r, "submit._submit", function(e) {
  1820.                     e._submit_bubble = !0
  1821.                 }), x._data(r, "submitBubbles", !0))
  1822.             }), t)
  1823.         },
  1824.         postDispatch: function(e) {
  1825.             e._submit_bubble && (delete e._submit_bubble, this.parentNode && !e.isTrigger && x.event.simulate("submit", this.parentNode, e, !0))
  1826.         },
  1827.         teardown: function() {
  1828.             return x.nodeName(this, "form") ? !1 : (x.event.remove(this, "._submit"), t)
  1829.         }
  1830.     }), x.support.changeBubbles || (x.event.special.change = {
  1831.         setup: function() {
  1832.             return Z.test(this.nodeName) ? (("checkbox" === this.type || "radio" === this.type) && (x.event.add(this, "propertychange._change", function(e) {
  1833.                 "checked" === e.originalEvent.propertyName && (this._just_changed = !0)
  1834.             }), x.event.add(this, "click._change", function(e) {
  1835.                 this._just_changed && !e.isTrigger && (this._just_changed = !1), x.event.simulate("change", this, e, !0)
  1836.             })), !1) : (x.event.add(this, "beforeactivate._change", function(e) {
  1837.                 var t = e.target;
  1838.                 Z.test(t.nodeName) && !x._data(t, "changeBubbles") && (x.event.add(t, "change._change", function(e) {
  1839.                     !this.parentNode || e.isSimulated || e.isTrigger || x.event.simulate("change", this.parentNode, e, !0)
  1840.                 }), x._data(t, "changeBubbles", !0))
  1841.             }), t)
  1842.         },
  1843.         handle: function(e) {
  1844.             var n = e.target;
  1845.             return this !== n || e.isSimulated || e.isTrigger || "radio" !== n.type && "checkbox" !== n.type ? e.handleObj.handler.apply(this, arguments) : t
  1846.         },
  1847.         teardown: function() {
  1848.             return x.event.remove(this, "._change"), !Z.test(this.nodeName)
  1849.         }
  1850.     }), x.support.focusinBubbles || x.each({
  1851.         focus: "focusin",
  1852.         blur: "focusout"
  1853.     }, function(e, t) {
  1854.         var n = 0,
  1855.             r = function(e) {
  1856.                 x.event.simulate(t, e.target, x.event.fix(e), !0)
  1857.             };
  1858.         x.event.special[t] = {
  1859.             setup: function() {
  1860.                 0 === n++ && a.addEventListener(e, r, !0)
  1861.             },
  1862.             teardown: function() {
  1863.                 0 === --n && a.removeEventListener(e, r, !0)
  1864.             }
  1865.         }
  1866.     }), x.fn.extend({
  1867.         on: function(e, n, r, i, o) {
  1868.             var a, s;
  1869.             if ("object" == typeof e) {
  1870.                 "string" != typeof n && (r = r || n, n = t);
  1871.                 for (a in e) this.on(a, n, r, e[a], o);
  1872.                 return this
  1873.             }
  1874.             if (null == r && null == i ? (i = n, r = n = t) : null == i && ("string" == typeof n ? (i = r, r = t) : (i = r, r = n, n = t)), i === !1) i = ot;
  1875.             else if (!i) return this;
  1876.             return 1 === o && (s = i, i = function(e) {
  1877.                 return x().off(e), s.apply(this, arguments)
  1878.             }, i.guid = s.guid || (s.guid = x.guid++)), this.each(function() {
  1879.                 x.event.add(this, e, i, r, n)
  1880.             })
  1881.         },
  1882.         one: function(e, t, n, r) {
  1883.             return this.on(e, t, n, r, 1)
  1884.         },
  1885.         off: function(e, n, r) {
  1886.             var i, o;
  1887.             if (e && e.preventDefault && e.handleObj) return i = e.handleObj, x(e.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler), this;
  1888.             if ("object" == typeof e) {
  1889.                 for (o in e) this.off(o, n, e[o]);
  1890.                 return this
  1891.             }
  1892.             return (n === !1 || "function" == typeof n) && (r = n, n = t), r === !1 && (r = ot), this.each(function() {
  1893.                 x.event.remove(this, e, r, n)
  1894.             })
  1895.         },
  1896.         trigger: function(e, t) {
  1897.             return this.each(function() {
  1898.                 x.event.trigger(e, t, this)
  1899.             })
  1900.         },
  1901.         triggerHandler: function(e, n) {
  1902.             var r = this[0];
  1903.             return r ? x.event.trigger(e, n, r, !0) : t
  1904.         }
  1905.     });
  1906.     var st = /^.[^:#\[\.,]*$/,
  1907.         lt = /^(?:parents|prev(?:Until|All))/,
  1908.         ut = x.expr.match.needsContext,
  1909.         ct = {
  1910.             children: !0,
  1911.             contents: !0,
  1912.             next: !0,
  1913.             prev: !0
  1914.         };
  1915.     x.fn.extend({
  1916.         find: function(e) {
  1917.             var t, n = [],
  1918.                 r = this,
  1919.                 i = r.length;
  1920.             if ("string" != typeof e) return this.pushStack(x(e).filter(function() {
  1921.                 for (t = 0; i > t; t++)
  1922.                     if (x.contains(r[t], this)) return !0
  1923.             }));
  1924.             for (t = 0; i > t; t++) x.find(e, r[t], n);
  1925.             return n = this.pushStack(i > 1 ? x.unique(n) : n), n.selector = this.selector ? this.selector + " " + e : e, n
  1926.         },
  1927.         has: function(e) {
  1928.             var t, n = x(e, this),
  1929.                 r = n.length;
  1930.             return this.filter(function() {
  1931.                 for (t = 0; r > t; t++)
  1932.                     if (x.contains(this, n[t])) return !0
  1933.             })
  1934.         },
  1935.         not: function(e) {
  1936.             return this.pushStack(ft(this, e || [], !0))
  1937.         },
  1938.         filter: function(e) {
  1939.             return this.pushStack(ft(this, e || [], !1))
  1940.         },
  1941.         is: function(e) {
  1942.             return !!ft(this, "string" == typeof e && ut.test(e) ? x(e) : e || [], !1).length
  1943.         },
  1944.         closest: function(e, t) {
  1945.             var n, r = 0,
  1946.                 i = this.length,
  1947.                 o = [],
  1948.                 a = ut.test(e) || "string" != typeof e ? x(e, t || this.context) : 0;
  1949.             for (; i > r; r++)
  1950.                 for (n = this[r]; n && n !== t; n = n.parentNode)
  1951.                     if (11 > n.nodeType && (a ? a.index(n) > -1 : 1 === n.nodeType && x.find.matchesSelector(n, e))) {
  1952.                         n = o.push(n);
  1953.                         break
  1954.                     }
  1955.             return this.pushStack(o.length > 1 ? x.unique(o) : o)
  1956.         },
  1957.         index: function(e) {
  1958.             return e ? "string" == typeof e ? x.inArray(this[0], x(e)) : x.inArray(e.jquery ? e[0] : e, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
  1959.         },
  1960.         add: function(e, t) {
  1961.             var n = "string" == typeof e ? x(e, t) : x.makeArray(e && e.nodeType ? [e] : e),
  1962.                 r = x.merge(this.get(), n);
  1963.             return this.pushStack(x.unique(r))
  1964.         },
  1965.         addBack: function(e) {
  1966.             return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
  1967.         }
  1968.     });
  1969.  
  1970.     function pt(e, t) {
  1971.         do e = e[t]; while (e && 1 !== e.nodeType);
  1972.         return e
  1973.     }
  1974.     x.each({
  1975.         parent: function(e) {
  1976.             var t = e.parentNode;
  1977.             return t && 11 !== t.nodeType ? t : null
  1978.         },
  1979.         parents: function(e) {
  1980.             return x.dir(e, "parentNode")
  1981.         },
  1982.         parentsUntil: function(e, t, n) {
  1983.             return x.dir(e, "parentNode", n)
  1984.         },
  1985.         next: function(e) {
  1986.             return pt(e, "nextSibling")
  1987.         },
  1988.         prev: function(e) {
  1989.             return pt(e, "previousSibling")
  1990.         },
  1991.         nextAll: function(e) {
  1992.             return x.dir(e, "nextSibling")
  1993.         },
  1994.         prevAll: function(e) {
  1995.             return x.dir(e, "previousSibling")
  1996.         },
  1997.         nextUntil: function(e, t, n) {
  1998.             return x.dir(e, "nextSibling", n)
  1999.         },
  2000.         prevUntil: function(e, t, n) {
  2001.             return x.dir(e, "previousSibling", n)
  2002.         },
  2003.         siblings: function(e) {
  2004.             return x.sibling((e.parentNode || {}).firstChild, e)
  2005.         },
  2006.         children: function(e) {
  2007.             return x.sibling(e.firstChild)
  2008.         },
  2009.         contents: function(e) {
  2010.             return x.nodeName(e, "iframe") ? e.contentDocument || e.contentWindow.document : x.merge([], e.childNodes)
  2011.         }
  2012.     }, function(e, t) {
  2013.         x.fn[e] = function(n, r) {
  2014.             var i = x.map(this, t, n);
  2015.             return "Until" !== e.slice(-5) && (r = n), r && "string" == typeof r && (i = x.filter(r, i)), this.length > 1 && (ct[e] || (i = x.unique(i)), lt.test(e) && (i = i.reverse())), this.pushStack(i)
  2016.         }
  2017.     }), x.extend({
  2018.         filter: function(e, t, n) {
  2019.             var r = t[0];
  2020.             return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? x.find.matchesSelector(r, e) ? [r] : [] : x.find.matches(e, x.grep(t, function(e) {
  2021.                 return 1 === e.nodeType
  2022.             }))
  2023.         },
  2024.         dir: function(e, n, r) {
  2025.             var i = [],
  2026.                 o = e[n];
  2027.             while (o && 9 !== o.nodeType && (r === t || 1 !== o.nodeType || !x(o).is(r))) 1 === o.nodeType && i.push(o), o = o[n];
  2028.             return i
  2029.         },
  2030.         sibling: function(e, t) {
  2031.             var n = [];
  2032.             for (; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
  2033.             return n
  2034.         }
  2035.     });
  2036.  
  2037.     function ft(e, t, n) {
  2038.         if (x.isFunction(t)) return x.grep(e, function(e, r) {
  2039.             return !!t.call(e, r, e) !== n
  2040.         });
  2041.         if (t.nodeType) return x.grep(e, function(e) {
  2042.             return e === t !== n
  2043.         });
  2044.         if ("string" == typeof t) {
  2045.             if (st.test(t)) return x.filter(t, e, n);
  2046.             t = x.filter(t, e)
  2047.         }
  2048.         return x.grep(e, function(e) {
  2049.             return x.inArray(e, t) >= 0 !== n
  2050.         })
  2051.     }
  2052.  
  2053.     function dt(e) {
  2054.         var t = ht.split("|"),
  2055.             n = e.createDocumentFragment();
  2056.         if (n.createElement)
  2057.             while (t.length) n.createElement(t.pop());
  2058.         return n
  2059.     }
  2060.     var ht = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
  2061.         gt = / jQuery\d+="(?:null|\d+)"/g,
  2062.         mt = RegExp("<(?:" + ht + ")[\\s/>]", "i"),
  2063.         yt = /^\s+/,
  2064.         vt = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
  2065.         bt = /<([\w:]+)/,
  2066.         xt = /<tbody/i,
  2067.         wt = /<|&#?\w+;/,
  2068.         Tt = /<(?:script|style|link)/i,
  2069.         Ct = /^(?:checkbox|radio)$/i,
  2070.         Nt = /checked\s*(?:[^=]|=\s*.checked.)/i,
  2071.         kt = /^$|\/(?:java|ecma)script/i,
  2072.         Et = /^true\/(.*)/,
  2073.         St = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
  2074.         At = {
  2075.             option: [1, "<select multiple='multiple'>", "</select>"],
  2076.             legend: [1, "<fieldset>", "</fieldset>"],
  2077.             area: [1, "<map>", "</map>"],
  2078.             param: [1, "<object>", "</object>"],
  2079.             thead: [1, "<table>", "</table>"],
  2080.             tr: [2, "<table><tbody>", "</tbody></table>"],
  2081.             col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
  2082.             td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
  2083.             _default: x.support.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"]
  2084.         },
  2085.         jt = dt(a),
  2086.         Dt = jt.appendChild(a.createElement("div"));
  2087.     At.optgroup = At.option, At.tbody = At.tfoot = At.colgroup = At.caption = At.thead, At.th = At.td, x.fn.extend({
  2088.         text: function(e) {
  2089.             return x.access(this, function(e) {
  2090.                 return e === t ? x.text(this) : this.empty().append((this[0] && this[0].ownerDocument || a).createTextNode(e))
  2091.             }, null, e, arguments.length)
  2092.         },
  2093.         append: function() {
  2094.             return this.domManip(arguments, function(e) {
  2095.                 if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
  2096.                     var t = Lt(this, e);
  2097.                     t.appendChild(e)
  2098.                 }
  2099.             })
  2100.         },
  2101.         prepend: function() {
  2102.             return this.domManip(arguments, function(e) {
  2103.                 if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
  2104.                     var t = Lt(this, e);
  2105.                     t.insertBefore(e, t.firstChild)
  2106.                 }
  2107.             })
  2108.         },
  2109.         before: function() {
  2110.             return this.domManip(arguments, function(e) {
  2111.                 this.parentNode && this.parentNode.insertBefore(e, this)
  2112.             })
  2113.         },
  2114.         after: function() {
  2115.             return this.domManip(arguments, function(e) {
  2116.                 this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
  2117.             })
  2118.         },
  2119.         remove: function(e, t) {
  2120.             var n, r = e ? x.filter(e, this) : this,
  2121.                 i = 0;
  2122.             for (; null != (n = r[i]); i++) t || 1 !== n.nodeType || x.cleanData(Ft(n)), n.parentNode && (t && x.contains(n.ownerDocument, n) && _t(Ft(n, "script")), n.parentNode.removeChild(n));
  2123.             return this
  2124.         },
  2125.         empty: function() {
  2126.             var e, t = 0;
  2127.             for (; null != (e = this[t]); t++) {
  2128.                 1 === e.nodeType && x.cleanData(Ft(e, !1));
  2129.                 while (e.firstChild) e.removeChild(e.firstChild);
  2130.                 e.options && x.nodeName(e, "select") && (e.options.length = 0)
  2131.             }
  2132.             return this
  2133.         },
  2134.         clone: function(e, t) {
  2135.             return e = null == e ? !1 : e, t = null == t ? e : t, this.map(function() {
  2136.                 return x.clone(this, e, t)
  2137.             })
  2138.         },
  2139.         html: function(e) {
  2140.             return x.access(this, function(e) {
  2141.                 var n = this[0] || {},
  2142.                     r = 0,
  2143.                     i = this.length;
  2144.                 if (e === t) return 1 === n.nodeType ? n.innerHTML.replace(gt, "") : t;
  2145.                 if (!("string" != typeof e || Tt.test(e) || !x.support.htmlSerialize && mt.test(e) || !x.support.leadingWhitespace && yt.test(e) || At[(bt.exec(e) || ["", ""])[1].toLowerCase()])) {
  2146.                     e = e.replace(vt, "<$1></$2>");
  2147.                     try {
  2148.                         for (; i > r; r++) n = this[r] || {}, 1 === n.nodeType && (x.cleanData(Ft(n, !1)), n.innerHTML = e);
  2149.                         n = 0
  2150.                     } catch (o) {}
  2151.                 }
  2152.                 n && this.empty().append(e)
  2153.             }, null, e, arguments.length)
  2154.         },
  2155.         replaceWith: function() {
  2156.             var e = x.map(this, function(e) {
  2157.                     return [e.nextSibling, e.parentNode]
  2158.                 }),
  2159.                 t = 0;
  2160.             return this.domManip(arguments, function(n) {
  2161.                 var r = e[t++],
  2162.                     i = e[t++];
  2163.                 i && (r && r.parentNode !== i && (r = this.nextSibling), x(this).remove(), i.insertBefore(n, r))
  2164.             }, !0), t ? this : this.remove()
  2165.         },
  2166.         detach: function(e) {
  2167.             return this.remove(e, !0)
  2168.         },
  2169.         domManip: function(e, t, n) {
  2170.             e = d.apply([], e);
  2171.             var r, i, o, a, s, l, u = 0,
  2172.                 c = this.length,
  2173.                 p = this,
  2174.                 f = c - 1,
  2175.                 h = e[0],
  2176.                 g = x.isFunction(h);
  2177.             if (g || !(1 >= c || "string" != typeof h || x.support.checkClone) && Nt.test(h)) return this.each(function(r) {
  2178.                 var i = p.eq(r);
  2179.                 g && (e[0] = h.call(this, r, i.html())), i.domManip(e, t, n)
  2180.             });
  2181.             if (c && (l = x.buildFragment(e, this[0].ownerDocument, !1, !n && this), r = l.firstChild, 1 === l.childNodes.length && (l = r), r)) {
  2182.                 for (a = x.map(Ft(l, "script"), Ht), o = a.length; c > u; u++) i = l, u !== f && (i = x.clone(i, !0, !0), o && x.merge(a, Ft(i, "script"))), t.call(this[u], i, u);
  2183.                 if (o)
  2184.                     for (s = a[a.length - 1].ownerDocument, x.map(a, qt), u = 0; o > u; u++) i = a[u], kt.test(i.type || "") && !x._data(i, "globalEval") && x.contains(s, i) && (i.src ? x._evalUrl(i.src) : x.globalEval((i.text || i.textContent || i.innerHTML || "").replace(St, "")));
  2185.                 l = r = null
  2186.             }
  2187.             return this
  2188.         }
  2189.     });
  2190.  
  2191.     function Lt(e, t) {
  2192.         return x.nodeName(e, "table") && x.nodeName(1 === t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e
  2193.     }
  2194.  
  2195.     function Ht(e) {
  2196.         return e.type = (null !== x.find.attr(e, "type")) + "/" + e.type, e
  2197.     }
  2198.  
  2199.     function qt(e) {
  2200.         var t = Et.exec(e.type);
  2201.         return t ? e.type = t[1] : e.removeAttribute("type"), e
  2202.     }
  2203.  
  2204.     function _t(e, t) {
  2205.         var n, r = 0;
  2206.         for (; null != (n = e[r]); r++) x._data(n, "globalEval", !t || x._data(t[r], "globalEval"))
  2207.     }
  2208.  
  2209.     function Mt(e, t) {
  2210.         if (1 === t.nodeType && x.hasData(e)) {
  2211.             var n, r, i, o = x._data(e),
  2212.                 a = x._data(t, o),
  2213.                 s = o.events;
  2214.             if (s) {
  2215.                 delete a.handle, a.events = {};
  2216.                 for (n in s)
  2217.                     for (r = 0, i = s[n].length; i > r; r++) x.event.add(t, n, s[n][r])
  2218.             }
  2219.             a.data && (a.data = x.extend({}, a.data))
  2220.         }
  2221.     }
  2222.  
  2223.     function Ot(e, t) {
  2224.         var n, r, i;
  2225.         if (1 === t.nodeType) {
  2226.             if (n = t.nodeName.toLowerCase(), !x.support.noCloneEvent && t[x.expando]) {
  2227.                 i = x._data(t);
  2228.                 for (r in i.events) x.removeEvent(t, r, i.handle);
  2229.                 t.removeAttribute(x.expando)
  2230.             }
  2231.             "script" === n && t.text !== e.text ? (Ht(t).text = e.text, qt(t)) : "object" === n ? (t.parentNode && (t.outerHTML = e.outerHTML), x.support.html5Clone && e.innerHTML && !x.trim(t.innerHTML) && (t.innerHTML = e.innerHTML)) : "input" === n && Ct.test(e.type) ? (t.defaultChecked = t.checked = e.checked, t.value !== e.value && (t.value = e.value)) : "option" === n ? t.defaultSelected = t.selected = e.defaultSelected : ("input" === n || "textarea" === n) && (t.defaultValue = e.defaultValue)
  2232.         }
  2233.     }
  2234.     x.each({
  2235.         appendTo: "append",
  2236.         prependTo: "prepend",
  2237.         insertBefore: "before",
  2238.         insertAfter: "after",
  2239.         replaceAll: "replaceWith"
  2240.     }, function(e, t) {
  2241.         x.fn[e] = function(e) {
  2242.             var n, r = 0,
  2243.                 i = [],
  2244.                 o = x(e),
  2245.                 a = o.length - 1;
  2246.             for (; a >= r; r++) n = r === a ? this : this.clone(!0), x(o[r])[t](n), h.apply(i, n.get());
  2247.             return this.pushStack(i)
  2248.         }
  2249.     });
  2250.  
  2251.     function Ft(e, n) {
  2252.         var r, o, a = 0,
  2253.             s = typeof e.getElementsByTagName !== i ? e.getElementsByTagName(n || "*") : typeof e.querySelectorAll !== i ? e.querySelectorAll(n || "*") : t;
  2254.         if (!s)
  2255.             for (s = [], r = e.childNodes || e; null != (o = r[a]); a++) !n || x.nodeName(o, n) ? s.push(o) : x.merge(s, Ft(o, n));
  2256.         return n === t || n && x.nodeName(e, n) ? x.merge([e], s) : s
  2257.     }
  2258.  
  2259.     function Bt(e) {
  2260.         Ct.test(e.type) && (e.defaultChecked = e.checked)
  2261.     }
  2262.     x.extend({
  2263.         clone: function(e, t, n) {
  2264.             var r, i, o, a, s, l = x.contains(e.ownerDocument, e);
  2265.             if (x.support.html5Clone || x.isXMLDoc(e) || !mt.test("<" + e.nodeName + ">") ? o = e.cloneNode(!0) : (Dt.innerHTML = e.outerHTML, Dt.removeChild(o = Dt.firstChild)), !(x.support.noCloneEvent && x.support.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || x.isXMLDoc(e)))
  2266.                 for (r = Ft(o), s = Ft(e), a = 0; null != (i = s[a]); ++a) r[a] && Ot(i, r[a]);
  2267.             if (t)
  2268.                 if (n)
  2269.                     for (s = s || Ft(e), r = r || Ft(o), a = 0; null != (i = s[a]); a++) Mt(i, r[a]);
  2270.                 else Mt(e, o);
  2271.             return r = Ft(o, "script"), r.length > 0 && _t(r, !l && Ft(e, "script")), r = s = i = null, o
  2272.         },
  2273.         buildFragment: function(e, t, n, r) {
  2274.             var i, o, a, s, l, u, c, p = e.length,
  2275.                 f = dt(t),
  2276.                 d = [],
  2277.                 h = 0;
  2278.             for (; p > h; h++)
  2279.                 if (o = e[h], o || 0 === o)
  2280.                     if ("object" === x.type(o)) x.merge(d, o.nodeType ? [o] : o);
  2281.                     else if (wt.test(o)) {
  2282.                 s = s || f.appendChild(t.createElement("div")), l = (bt.exec(o) || ["", ""])[1].toLowerCase(), c = At[l] || At._default, s.innerHTML = c[1] + o.replace(vt, "<$1></$2>") + c[2], i = c[0];
  2283.                 while (i--) s = s.lastChild;
  2284.                 if (!x.support.leadingWhitespace && yt.test(o) && d.push(t.createTextNode(yt.exec(o)[0])), !x.support.tbody) {
  2285.                     o = "table" !== l || xt.test(o) ? "<table>" !== c[1] || xt.test(o) ? 0 : s : s.firstChild, i = o && o.childNodes.length;
  2286.                     while (i--) x.nodeName(u = o.childNodes[i], "tbody") && !u.childNodes.length && o.removeChild(u)
  2287.                 }
  2288.                 x.merge(d, s.childNodes), s.textContent = "";
  2289.                 while (s.firstChild) s.removeChild(s.firstChild);
  2290.                 s = f.lastChild
  2291.             } else d.push(t.createTextNode(o));
  2292.             s && f.removeChild(s), x.support.appendChecked || x.grep(Ft(d, "input"), Bt), h = 0;
  2293.             while (o = d[h++])
  2294.                 if ((!r || -1 === x.inArray(o, r)) && (a = x.contains(o.ownerDocument, o), s = Ft(f.appendChild(o), "script"), a && _t(s), n)) {
  2295.                     i = 0;
  2296.                     while (o = s[i++]) kt.test(o.type || "") && n.push(o)
  2297.                 }
  2298.             return s = null, f
  2299.         },
  2300.         cleanData: function(e, t) {
  2301.             var n, r, o, a, s = 0,
  2302.                 l = x.expando,
  2303.                 u = x.cache,
  2304.                 c = x.support.deleteExpando,
  2305.                 f = x.event.special;
  2306.             for (; null != (n = e[s]); s++)
  2307.                 if ((t || x.acceptData(n)) && (o = n[l], a = o && u[o])) {
  2308.                     if (a.events)
  2309.                         for (r in a.events) f[r] ? x.event.remove(n, r) : x.removeEvent(n, r, a.handle);
  2310.                     u[o] && (delete u[o], c ? delete n[l] : typeof n.removeAttribute !== i ? n.removeAttribute(l) : n[l] = null, p.push(o))
  2311.                 }
  2312.         },
  2313.         _evalUrl: function(e) {
  2314.             return x.ajax({
  2315.                 url: e,
  2316.                 type: "GET",
  2317.                 dataType: "script",
  2318.                 async: !1,
  2319.                 global: !1,
  2320.                 "throws": !0
  2321.             })
  2322.         }
  2323.     }), x.fn.extend({
  2324.         wrapAll: function(e) {
  2325.             if (x.isFunction(e)) return this.each(function(t) {
  2326.                 x(this).wrapAll(e.call(this, t))
  2327.             });
  2328.             if (this[0]) {
  2329.                 var t = x(e, this[0].ownerDocument).eq(0).clone(!0);
  2330.                 this[0].parentNode && t.insertBefore(this[0]), t.map(function() {
  2331.                     var e = this;
  2332.                     while (e.firstChild && 1 === e.firstChild.nodeType) e = e.firstChild;
  2333.                     return e
  2334.                 }).append(this)
  2335.             }
  2336.             return this
  2337.         },
  2338.         wrapInner: function(e) {
  2339.             return x.isFunction(e) ? this.each(function(t) {
  2340.                 x(this).wrapInner(e.call(this, t))
  2341.             }) : this.each(function() {
  2342.                 var t = x(this),
  2343.                     n = t.contents();
  2344.                 n.length ? n.wrapAll(e) : t.append(e)
  2345.             })
  2346.         },
  2347.         wrap: function(e) {
  2348.             var t = x.isFunction(e);
  2349.             return this.each(function(n) {
  2350.                 x(this).wrapAll(t ? e.call(this, n) : e)
  2351.             })
  2352.         },
  2353.         unwrap: function() {
  2354.             return this.parent().each(function() {
  2355.                 x.nodeName(this, "body") || x(this).replaceWith(this.childNodes)
  2356.             }).end()
  2357.         }
  2358.     });
  2359.     var Pt, Rt, Wt, $t = /alpha\([^)]*\)/i,
  2360.         It = /opacity\s*=\s*([^)]*)/,
  2361.         zt = /^(top|right|bottom|left)$/,
  2362.         Xt = /^(none|table(?!-c[ea]).+)/,
  2363.         Ut = /^margin/,
  2364.         Vt = RegExp("^(" + w + ")(.*)$", "i"),
  2365.         Yt = RegExp("^(" + w + ")(?!px)[a-z%]+$", "i"),
  2366.         Jt = RegExp("^([+-])=(" + w + ")", "i"),
  2367.         Gt = {
  2368.             BODY: "block"
  2369.         },
  2370.         Qt = {
  2371.             position: "absolute",
  2372.             visibility: "hidden",
  2373.             display: "block"
  2374.         },
  2375.         Kt = {
  2376.             letterSpacing: 0,
  2377.             fontWeight: 400
  2378.         },
  2379.         Zt = ["Top", "Right", "Bottom", "Left"],
  2380.         en = ["Webkit", "O", "Moz", "ms"];
  2381.  
  2382.     function tn(e, t) {
  2383.         if (t in e) return t;
  2384.         var n = t.charAt(0).toUpperCase() + t.slice(1),
  2385.             r = t,
  2386.             i = en.length;
  2387.         while (i--)
  2388.             if (t = en[i] + n, t in e) return t;
  2389.         return r
  2390.     }
  2391.  
  2392.     function nn(e, t) {
  2393.         return e = t || e, "none" === x.css(e, "display") || !x.contains(e.ownerDocument, e)
  2394.     }
  2395.  
  2396.     function rn(e, t) {
  2397.         var n, r, i, o = [],
  2398.             a = 0,
  2399.             s = e.length;
  2400.         for (; s > a; a++) r = e[a], r.style && (o[a] = x._data(r, "olddisplay"), n = r.style.display, t ? (o[a] || "none" !== n || (r.style.display = ""), "" === r.style.display && nn(r) && (o[a] = x._data(r, "olddisplay", ln(r.nodeName)))) : o[a] || (i = nn(r), (n && "none" !== n || !i) && x._data(r, "olddisplay", i ? n : x.css(r, "display"))));
  2401.         for (a = 0; s > a; a++) r = e[a], r.style && (t && "none" !== r.style.display && "" !== r.style.display || (r.style.display = t ? o[a] || "" : "none"));
  2402.         return e
  2403.     }
  2404.     x.fn.extend({
  2405.         css: function(e, n) {
  2406.             return x.access(this, function(e, n, r) {
  2407.                 var i, o, a = {},
  2408.                     s = 0;
  2409.                 if (x.isArray(n)) {
  2410.                     for (o = Rt(e), i = n.length; i > s; s++) a[n[s]] = x.css(e, n[s], !1, o);
  2411.                     return a
  2412.                 }
  2413.                 return r !== t ? x.style(e, n, r) : x.css(e, n)
  2414.             }, e, n, arguments.length > 1)
  2415.         },
  2416.         show: function() {
  2417.             return rn(this, !0)
  2418.         },
  2419.         hide: function() {
  2420.             return rn(this)
  2421.         },
  2422.         toggle: function(e) {
  2423.             return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function() {
  2424.                 nn(this) ? x(this).show() : x(this).hide()
  2425.             })
  2426.         }
  2427.     }), x.extend({
  2428.         cssHooks: {
  2429.             opacity: {
  2430.                 get: function(e, t) {
  2431.                     if (t) {
  2432.                         var n = Wt(e, "opacity");
  2433.                         return "" === n ? "1" : n
  2434.                     }
  2435.                 }
  2436.             }
  2437.         },
  2438.         cssNumber: {
  2439.             columnCount: !0,
  2440.             fillOpacity: !0,
  2441.             fontWeight: !0,
  2442.             lineHeight: !0,
  2443.             opacity: !0,
  2444.             order: !0,
  2445.             orphans: !0,
  2446.             widows: !0,
  2447.             zIndex: !0,
  2448.             zoom: !0
  2449.         },
  2450.         cssProps: {
  2451.             "float": x.support.cssFloat ? "cssFloat" : "styleFloat"
  2452.         },
  2453.         style: function(e, n, r, i) {
  2454.             if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
  2455.                 var o, a, s, l = x.camelCase(n),
  2456.                     u = e.style;
  2457.                 if (n = x.cssProps[l] || (x.cssProps[l] = tn(u, l)), s = x.cssHooks[n] || x.cssHooks[l], r === t) return s && "get" in s && (o = s.get(e, !1, i)) !== t ? o : u[n];
  2458.                 if (a = typeof r, "string" === a && (o = Jt.exec(r)) && (r = (o[1] + 1) * o[2] + parseFloat(x.css(e, n)), a = "number"), !(null == r || "number" === a && isNaN(r) || ("number" !== a || x.cssNumber[l] || (r += "px"), x.support.clearCloneStyle || "" !== r || 0 !== n.indexOf("background") || (u[n] = "inherit"), s && "set" in s && (r = s.set(e, r, i)) === t))) try {
  2459.                     u[n] = r
  2460.                 } catch (c) {}
  2461.             }
  2462.         },
  2463.         css: function(e, n, r, i) {
  2464.             var o, a, s, l = x.camelCase(n);
  2465.             return n = x.cssProps[l] || (x.cssProps[l] = tn(e.style, l)), s = x.cssHooks[n] || x.cssHooks[l], s && "get" in s && (a = s.get(e, !0, r)), a === t && (a = Wt(e, n, i)), "normal" === a && n in Kt && (a = Kt[n]), "" === r || r ? (o = parseFloat(a), r === !0 || x.isNumeric(o) ? o || 0 : a) : a
  2466.         }
  2467.     }), e.getComputedStyle ? (Rt = function(t) {
  2468.         return e.getComputedStyle(t, null)
  2469.     }, Wt = function(e, n, r) {
  2470.         var i, o, a, s = r || Rt(e),
  2471.             l = s ? s.getPropertyValue(n) || s[n] : t,
  2472.             u = e.style;
  2473.         return s && ("" !== l || x.contains(e.ownerDocument, e) || (l = x.style(e, n)), Yt.test(l) && Ut.test(n) && (i = u.width, o = u.minWidth, a = u.maxWidth, u.minWidth = u.maxWidth = u.width = l, l = s.width, u.width = i, u.minWidth = o, u.maxWidth = a)), l
  2474.     }) : a.documentElement.currentStyle && (Rt = function(e) {
  2475.         return e.currentStyle
  2476.     }, Wt = function(e, n, r) {
  2477.         var i, o, a, s = r || Rt(e),
  2478.             l = s ? s[n] : t,
  2479.             u = e.style;
  2480.         return null == l && u && u[n] && (l = u[n]), Yt.test(l) && !zt.test(n) && (i = u.left, o = e.runtimeStyle, a = o && o.left, a && (o.left = e.currentStyle.left), u.left = "fontSize" === n ? "1em" : l, l = u.pixelLeft + "px", u.left = i, a && (o.left = a)), "" === l ? "auto" : l
  2481.     });
  2482.  
  2483.     function on(e, t, n) {
  2484.         var r = Vt.exec(t);
  2485.         return r ? Math.max(0, r[1] - (n || 0)) + (r[2] || "px") : t
  2486.     }
  2487.  
  2488.     function an(e, t, n, r, i) {
  2489.         var o = n === (r ? "border" : "content") ? 4 : "width" === t ? 1 : 0,
  2490.             a = 0;
  2491.         for (; 4 > o; o += 2) "margin" === n && (a += x.css(e, n + Zt[o], !0, i)), r ? ("content" === n && (a -= x.css(e, "padding" + Zt[o], !0, i)), "margin" !== n && (a -= x.css(e, "border" + Zt[o] + "Width", !0, i))) : (a += x.css(e, "padding" + Zt[o], !0, i), "padding" !== n && (a += x.css(e, "border" + Zt[o] + "Width", !0, i)));
  2492.         return a
  2493.     }
  2494.  
  2495.     function sn(e, t, n) {
  2496.         var r = !0,
  2497.             i = "width" === t ? e.offsetWidth : e.offsetHeight,
  2498.             o = Rt(e),
  2499.             a = x.support.boxSizing && "border-box" === x.css(e, "boxSizing", !1, o);
  2500.         if (0 >= i || null == i) {
  2501.             if (i = Wt(e, t, o), (0 > i || null == i) && (i = e.style[t]), Yt.test(i)) return i;
  2502.             r = a && (x.support.boxSizingReliable || i === e.style[t]), i = parseFloat(i) || 0
  2503.         }
  2504.         return i + an(e, t, n || (a ? "border" : "content"), r, o) + "px"
  2505.     }
  2506.  
  2507.     function ln(e) {
  2508.         var t = a,
  2509.             n = Gt[e];
  2510.         return n || (n = un(e, t), "none" !== n && n || (Pt = (Pt || x("<iframe frameborder='0' width='0' height='0'/>").css("cssText", "display:block !important")).appendTo(t.documentElement), t = (Pt[0].contentWindow || Pt[0].contentDocument).document, t.write("<!doctype html><html><body>"), t.close(), n = un(e, t), Pt.detach()), Gt[e] = n), n
  2511.     }
  2512.  
  2513.     function un(e, t) {
  2514.         var n = x(t.createElement(e)).appendTo(t.body),
  2515.             r = x.css(n[0], "display");
  2516.         return n.remove(), r
  2517.     }
  2518.     x.each(["height", "width"], function(e, n) {
  2519.         x.cssHooks[n] = {
  2520.             get: function(e, r, i) {
  2521.                 return r ? 0 === e.offsetWidth && Xt.test(x.css(e, "display")) ? x.swap(e, Qt, function() {
  2522.                     return sn(e, n, i)
  2523.                 }) : sn(e, n, i) : t
  2524.             },
  2525.             set: function(e, t, r) {
  2526.                 var i = r && Rt(e);
  2527.                 return on(e, t, r ? an(e, n, r, x.support.boxSizing && "border-box" === x.css(e, "boxSizing", !1, i), i) : 0)
  2528.             }
  2529.         }
  2530.     }), x.support.opacity || (x.cssHooks.opacity = {
  2531.         get: function(e, t) {
  2532.             return It.test((t && e.currentStyle ? e.currentStyle.filter : e.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : t ? "1" : ""
  2533.         },
  2534.         set: function(e, t) {
  2535.             var n = e.style,
  2536.                 r = e.currentStyle,
  2537.                 i = x.isNumeric(t) ? "alpha(opacity=" + 100 * t + ")" : "",
  2538.                 o = r && r.filter || n.filter || "";
  2539.             n.zoom = 1, (t >= 1 || "" === t) && "" === x.trim(o.replace($t, "")) && n.removeAttribute && (n.removeAttribute("filter"), "" === t || r && !r.filter) || (n.filter = $t.test(o) ? o.replace($t, i) : o + " " + i)
  2540.         }
  2541.     }), x(function() {
  2542.         x.support.reliableMarginRight || (x.cssHooks.marginRight = {
  2543.             get: function(e, n) {
  2544.                 return n ? x.swap(e, {
  2545.                     display: "inline-block"
  2546.                 }, Wt, [e, "marginRight"]) : t
  2547.             }
  2548.         }), !x.support.pixelPosition && x.fn.position && x.each(["top", "left"], function(e, n) {
  2549.             x.cssHooks[n] = {
  2550.                 get: function(e, r) {
  2551.                     return r ? (r = Wt(e, n), Yt.test(r) ? x(e).position()[n] + "px" : r) : t
  2552.                 }
  2553.             }
  2554.         })
  2555.     }), x.expr && x.expr.filters && (x.expr.filters.hidden = function(e) {
  2556.         return 0 >= e.offsetWidth && 0 >= e.offsetHeight || !x.support.reliableHiddenOffsets && "none" === (e.style && e.style.display || x.css(e, "display"))
  2557.     }, x.expr.filters.visible = function(e) {
  2558.         return !x.expr.filters.hidden(e)
  2559.     }), x.each({
  2560.         margin: "",
  2561.         padding: "",
  2562.         border: "Width"
  2563.     }, function(e, t) {
  2564.         x.cssHooks[e + t] = {
  2565.             expand: function(n) {
  2566.                 var r = 0,
  2567.                     i = {},
  2568.                     o = "string" == typeof n ? n.split(" ") : [n];
  2569.                 for (; 4 > r; r++) i[e + Zt[r] + t] = o[r] || o[r - 2] || o[0];
  2570.                 return i
  2571.             }
  2572.         }, Ut.test(e) || (x.cssHooks[e + t].set = on)
  2573.     });
  2574.     var cn = /%20/g,
  2575.         pn = /\[\]$/,
  2576.         fn = /\r?\n/g,
  2577.         dn = /^(?:submit|button|image|reset|file)$/i,
  2578.         hn = /^(?:input|select|textarea|keygen)/i;
  2579.     x.fn.extend({
  2580.         serialize: function() {
  2581.             return x.param(this.serializeArray())
  2582.         },
  2583.         serializeArray: function() {
  2584.             return this.map(function() {
  2585.                 var e = x.prop(this, "elements");
  2586.                 return e ? x.makeArray(e) : this
  2587.             }).filter(function() {
  2588.                 var e = this.type;
  2589.                 return this.name && !x(this).is(":disabled") && hn.test(this.nodeName) && !dn.test(e) && (this.checked || !Ct.test(e))
  2590.             }).map(function(e, t) {
  2591.                 var n = x(this).val();
  2592.                 return null == n ? null : x.isArray(n) ? x.map(n, function(e) {
  2593.                     return {
  2594.                         name: t.name,
  2595.                         value: e.replace(fn, "\r\n")
  2596.                     }
  2597.                 }) : {
  2598.                     name: t.name,
  2599.                     value: n.replace(fn, "\r\n")
  2600.                 }
  2601.             }).get()
  2602.         }
  2603.     }), x.param = function(e, n) {
  2604.         var r, i = [],
  2605.             o = function(e, t) {
  2606.                 t = x.isFunction(t) ? t() : null == t ? "" : t, i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t)
  2607.             };
  2608.         if (n === t && (n = x.ajaxSettings && x.ajaxSettings.traditional), x.isArray(e) || e.jquery && !x.isPlainObject(e)) x.each(e, function() {
  2609.             o(this.name, this.value)
  2610.         });
  2611.         else
  2612.             for (r in e) gn(r, e[r], n, o);
  2613.         return i.join("&").replace(cn, "+")
  2614.     };
  2615.  
  2616.     function gn(e, t, n, r) {
  2617.         var i;
  2618.         if (x.isArray(t)) x.each(t, function(t, i) {
  2619.             n || pn.test(e) ? r(e, i) : gn(e + "[" + ("object" == typeof i ? t : "") + "]", i, n, r)
  2620.         });
  2621.         else if (n || "object" !== x.type(t)) r(e, t);
  2622.         else
  2623.             for (i in t) gn(e + "[" + i + "]", t[i], n, r)
  2624.     }
  2625.     x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(e, t) {
  2626.         x.fn[t] = function(e, n) {
  2627.             return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t)
  2628.         }
  2629.     }), x.fn.extend({
  2630.         hover: function(e, t) {
  2631.             return this.mouseenter(e).mouseleave(t || e)
  2632.         },
  2633.         bind: function(e, t, n) {
  2634.             return this.on(e, null, t, n)
  2635.         },
  2636.         unbind: function(e, t) {
  2637.             return this.off(e, null, t)
  2638.         },
  2639.         delegate: function(e, t, n, r) {
  2640.             return this.on(t, e, n, r)
  2641.         },
  2642.         undelegate: function(e, t, n) {
  2643.             return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
  2644.         }
  2645.     });
  2646.     var mn, yn, vn = x.now(),
  2647.         bn = /\?/,
  2648.         xn = /#.*$/,
  2649.         wn = /([?&])_=[^&]*/,
  2650.         Tn = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
  2651.         Cn = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
  2652.         Nn = /^(?:GET|HEAD)$/,
  2653.         kn = /^\/\//,
  2654.         En = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,
  2655.         Sn = x.fn.load,
  2656.         An = {},
  2657.         jn = {},
  2658.         Dn = "*/".concat("*");
  2659.     try {
  2660.         yn = o.href
  2661.     } catch (Ln) {
  2662.         yn = a.createElement("a"), yn.href = "", yn = yn.href
  2663.     }
  2664.     mn = En.exec(yn.toLowerCase()) || [];
  2665.  
  2666.     function Hn(e) {
  2667.         return function(t, n) {
  2668.             "string" != typeof t && (n = t, t = "*");
  2669.             var r, i = 0,
  2670.                 o = t.toLowerCase().match(T) || [];
  2671.             if (x.isFunction(n))
  2672.                 while (r = o[i++]) "+" === r[0] ? (r = r.slice(1) || "*", (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n)
  2673.         }
  2674.     }
  2675.  
  2676.     function qn(e, n, r, i) {
  2677.         var o = {},
  2678.             a = e === jn;
  2679.  
  2680.         function s(l) {
  2681.             var u;
  2682.             return o[l] = !0, x.each(e[l] || [], function(e, l) {
  2683.                 var c = l(n, r, i);
  2684.                 return "string" != typeof c || a || o[c] ? a ? !(u = c) : t : (n.dataTypes.unshift(c), s(c), !1)
  2685.             }), u
  2686.         }
  2687.         return s(n.dataTypes[0]) || !o["*"] && s("*")
  2688.     }
  2689.  
  2690.     function _n(e, n) {
  2691.         var r, i, o = x.ajaxSettings.flatOptions || {};
  2692.         for (i in n) n[i] !== t && ((o[i] ? e : r || (r = {}))[i] = n[i]);
  2693.         return r && x.extend(!0, e, r), e
  2694.     }
  2695.     x.fn.load = function(e, n, r) {
  2696.         if ("string" != typeof e && Sn) return Sn.apply(this, arguments);
  2697.         var i, o, a, s = this,
  2698.             l = e.indexOf(" ");
  2699.         return l >= 0 && (i = e.slice(l, e.length), e = e.slice(0, l)), x.isFunction(n) ? (r = n, n = t) : n && "object" == typeof n && (a = "POST"), s.length > 0 && x.ajax({
  2700.             url: e,
  2701.             type: a,
  2702.             dataType: "html",
  2703.             data: n
  2704.         }).done(function(e) {
  2705.             o = arguments, s.html(i ? x("<div>").append(x.parseHTML(e)).find(i) : e)
  2706.         }).complete(r && function(e, t) {
  2707.             s.each(r, o || [e.responseText, t, e])
  2708.         }), this
  2709.     }, x.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) {
  2710.         x.fn[t] = function(e) {
  2711.             return this.on(t, e)
  2712.         }
  2713.     }), x.extend({
  2714.         active: 0,
  2715.         lastModified: {},
  2716.         etag: {},
  2717.         ajaxSettings: {
  2718.             url: yn,
  2719.             type: "GET",
  2720.             isLocal: Cn.test(mn[1]),
  2721.             global: !0,
  2722.             processData: !0,
  2723.             async: !0,
  2724.             contentType: "application/x-www-form-urlencoded; charset=UTF-8",
  2725.             accepts: {
  2726.                 "*": Dn,
  2727.                 text: "text/plain",
  2728.                 html: "text/html",
  2729.                 xml: "application/xml, text/xml",
  2730.                 json: "application/json, text/javascript"
  2731.             },
  2732.             contents: {
  2733.                 xml: /xml/,
  2734.                 html: /html/,
  2735.                 json: /json/
  2736.             },
  2737.             responseFields: {
  2738.                 xml: "responseXML",
  2739.                 text: "responseText",
  2740.                 json: "responseJSON"
  2741.             },
  2742.             converters: {
  2743.                 "* text": String,
  2744.                 "text html": !0,
  2745.                 "text json": x.parseJSON,
  2746.                 "text xml": x.parseXML
  2747.             },
  2748.             flatOptions: {
  2749.                 url: !0,
  2750.                 context: !0
  2751.             }
  2752.         },
  2753.         ajaxSetup: function(e, t) {
  2754.             return t ? _n(_n(e, x.ajaxSettings), t) : _n(x.ajaxSettings, e)
  2755.         },
  2756.         ajaxPrefilter: Hn(An),
  2757.         ajaxTransport: Hn(jn),
  2758.         ajax: function(e, n) {
  2759.             "object" == typeof e && (n = e, e = t), n = n || {};
  2760.             var r, i, o, a, s, l, u, c, p = x.ajaxSetup({}, n),
  2761.                 f = p.context || p,
  2762.                 d = p.context && (f.nodeType || f.jquery) ? x(f) : x.event,
  2763.                 h = x.Deferred(),
  2764.                 g = x.Callbacks("once memory"),
  2765.                 m = p.statusCode || {},
  2766.                 y = {},
  2767.                 v = {},
  2768.                 b = 0,
  2769.                 w = "canceled",
  2770.                 C = {
  2771.                     readyState: 0,
  2772.                     getResponseHeader: function(e) {
  2773.                         var t;
  2774.                         if (2 === b) {
  2775.                             if (!c) {
  2776.                                 c = {};
  2777.                                 while (t = Tn.exec(a)) c[t[1].toLowerCase()] = t[2]
  2778.                             }
  2779.                             t = c[e.toLowerCase()]
  2780.                         }
  2781.                         return null == t ? null : t
  2782.                     },
  2783.                     getAllResponseHeaders: function() {
  2784.                         return 2 === b ? a : null
  2785.                     },
  2786.                     setRequestHeader: function(e, t) {
  2787.                         var n = e.toLowerCase();
  2788.                         return b || (e = v[n] = v[n] || e, y[e] = t), this
  2789.                     },
  2790.                     overrideMimeType: function(e) {
  2791.                         return b || (p.mimeType = e), this
  2792.                     },
  2793.                     statusCode: function(e) {
  2794.                         var t;
  2795.                         if (e)
  2796.                             if (2 > b)
  2797.                                 for (t in e) m[t] = [m[t], e[t]];
  2798.                             else C.always(e[C.status]);
  2799.                         return this
  2800.                     },
  2801.                     abort: function(e) {
  2802.                         var t = e || w;
  2803.                         return u && u.abort(t), k(0, t), this
  2804.                     }
  2805.                 };
  2806.             if (h.promise(C).complete = g.add, C.success = C.done, C.error = C.fail, p.url = ((e || p.url || yn) + "").replace(xn, "").replace(kn, mn[1] + "//"), p.type = n.method || n.type || p.method || p.type, p.dataTypes = x.trim(p.dataType || "*").toLowerCase().match(T) || [""], null == p.crossDomain && (r = En.exec(p.url.toLowerCase()), p.crossDomain = !(!r || r[1] === mn[1] && r[2] === mn[2] && (r[3] || ("http:" === r[1] ? "80" : "443")) === (mn[3] || ("http:" === mn[1] ? "80" : "443")))), p.data && p.processData && "string" != typeof p.data && (p.data = x.param(p.data, p.traditional)), qn(An, p, n, C), 2 === b) return C;
  2807.             l = p.global, l && 0 === x.active++ && x.event.trigger("ajaxStart"), p.type = p.type.toUpperCase(), p.hasContent = !Nn.test(p.type), o = p.url, p.hasContent || (p.data && (o = p.url += (bn.test(o) ? "&" : "?") + p.data, delete p.data), p.cache === !1 && (p.url = wn.test(o) ? o.replace(wn, "$1_=" + vn++) : o + (bn.test(o) ? "&" : "?") + "_=" + vn++)), p.ifModified && (x.lastModified[o] && C.setRequestHeader("If-Modified-Since", x.lastModified[o]), x.etag[o] && C.setRequestHeader("If-None-Match", x.etag[o])), (p.data && p.hasContent && p.contentType !== !1 || n.contentType) && C.setRequestHeader("Content-Type", p.contentType), C.setRequestHeader("Accept", p.dataTypes[0] && p.accepts[p.dataTypes[0]] ? p.accepts[p.dataTypes[0]] + ("*" !== p.dataTypes[0] ? ", " + Dn + "; q=0.01" : "") : p.accepts["*"]);
  2808.             for (i in p.headers) C.setRequestHeader(i, p.headers[i]);
  2809.             if (p.beforeSend && (p.beforeSend.call(f, C, p) === !1 || 2 === b)) return C.abort();
  2810.             w = "abort";
  2811.             for (i in {
  2812.                     success: 1,
  2813.                     error: 1,
  2814.                     complete: 1
  2815.                 }) C[i](p[i]);
  2816.             if (u = qn(jn, p, n, C)) {
  2817.                 C.readyState = 1, l && d.trigger("ajaxSend", [C, p]), p.async && p.timeout > 0 && (s = setTimeout(function() {
  2818.                     C.abort("timeout")
  2819.                 }, p.timeout));
  2820.                 try {
  2821.                     b = 1, u.send(y, k)
  2822.                 } catch (N) {
  2823.                     if (!(2 > b)) throw N;
  2824.                     k(-1, N)
  2825.                 }
  2826.             } else k(-1, "No Transport");
  2827.  
  2828.             function k(e, n, r, i) {
  2829.                 var c, y, v, w, T, N = n;
  2830.                 2 !== b && (b = 2, s && clearTimeout(s), u = t, a = i || "", C.readyState = e > 0 ? 4 : 0, c = e >= 200 && 300 > e || 304 === e, r && (w = Mn(p, C, r)), w = On(p, w, C, c), c ? (p.ifModified && (T = C.getResponseHeader("Last-Modified"), T && (x.lastModified[o] = T), T = C.getResponseHeader("etag"), T && (x.etag[o] = T)), 204 === e || "HEAD" === p.type ? N = "nocontent" : 304 === e ? N = "notmodified" : (N = w.state, y = w.data, v = w.error, c = !v)) : (v = N, (e || !N) && (N = "error", 0 > e && (e = 0))), C.status = e, C.statusText = (n || N) + "", c ? h.resolveWith(f, [y, N, C]) : h.rejectWith(f, [C, N, v]), C.statusCode(m), m = t, l && d.trigger(c ? "ajaxSuccess" : "ajaxError", [C, p, c ? y : v]), g.fireWith(f, [C, N]), l && (d.trigger("ajaxComplete", [C, p]), --x.active || x.event.trigger("ajaxStop")))
  2831.             }
  2832.             return C
  2833.         },
  2834.         getJSON: function(e, t, n) {
  2835.             return x.get(e, t, n, "json")
  2836.         },
  2837.         getScript: function(e, n) {
  2838.             return x.get(e, t, n, "script")
  2839.         }
  2840.     }), x.each(["get", "post"], function(e, n) {
  2841.         x[n] = function(e, r, i, o) {
  2842.             return x.isFunction(r) && (o = o || i, i = r, r = t), x.ajax({
  2843.                 url: e,
  2844.                 type: n,
  2845.                 dataType: o,
  2846.                 data: r,
  2847.                 success: i
  2848.             })
  2849.         }
  2850.     });
  2851.  
  2852.     function Mn(e, n, r) {
  2853.         var i, o, a, s, l = e.contents,
  2854.             u = e.dataTypes;
  2855.         while ("*" === u[0]) u.shift(), o === t && (o = e.mimeType || n.getResponseHeader("Content-Type"));
  2856.         if (o)
  2857.             for (s in l)
  2858.                 if (l[s] && l[s].test(o)) {
  2859.                     u.unshift(s);
  2860.                     break
  2861.                 }
  2862.         if (u[0] in r) a = u[0];
  2863.         else {
  2864.             for (s in r) {
  2865.                 if (!u[0] || e.converters[s + " " + u[0]]) {
  2866.                     a = s;
  2867.                     break
  2868.                 }
  2869.                 i || (i = s)
  2870.             }
  2871.             a = a || i
  2872.         }
  2873.         return a ? (a !== u[0] && u.unshift(a), r[a]) : t
  2874.     }
  2875.  
  2876.     function On(e, t, n, r) {
  2877.         var i, o, a, s, l, u = {},
  2878.             c = e.dataTypes.slice();
  2879.         if (c[1])
  2880.             for (a in e.converters) u[a.toLowerCase()] = e.converters[a];
  2881.         o = c.shift();
  2882.         while (o)
  2883.             if (e.responseFields[o] && (n[e.responseFields[o]] = t), !l && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), l = o, o = c.shift())
  2884.                 if ("*" === o) o = l;
  2885.                 else if ("*" !== l && l !== o) {
  2886.             if (a = u[l + " " + o] || u["* " + o], !a)
  2887.                 for (i in u)
  2888.                     if (s = i.split(" "), s[1] === o && (a = u[l + " " + s[0]] || u["* " + s[0]])) {
  2889.                         a === !0 ? a = u[i] : u[i] !== !0 && (o = s[0], c.unshift(s[1]));
  2890.                         break
  2891.                     }
  2892.             if (a !== !0)
  2893.                 if (a && e["throws"]) t = a(t);
  2894.                 else try {
  2895.                     t = a(t)
  2896.                 } catch (p) {
  2897.                     return {
  2898.                         state: "parsererror",
  2899.                         error: a ? p : "No conversion from " + l + " to " + o
  2900.                     }
  2901.                 }
  2902.         }
  2903.         return {
  2904.             state: "success",
  2905.             data: t
  2906.         }
  2907.     }
  2908.     x.ajaxSetup({
  2909.         accepts: {
  2910.             script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
  2911.         },
  2912.         contents: {
  2913.             script: /(?:java|ecma)script/
  2914.         },
  2915.         converters: {
  2916.             "text script": function(e) {
  2917.                 return x.globalEval(e), e
  2918.             }
  2919.         }
  2920.     }), x.ajaxPrefilter("script", function(e) {
  2921.         e.cache === t && (e.cache = !1), e.crossDomain && (e.type = "GET", e.global = !1)
  2922.     }), x.ajaxTransport("script", function(e) {
  2923.         if (e.crossDomain) {
  2924.             var n, r = a.head || x("head")[0] || a.documentElement;
  2925.             return {
  2926.                 send: function(t, i) {
  2927.                     n = a.createElement("script"), n.async = !0, e.scriptCharset && (n.charset = e.scriptCharset), n.src = e.url, n.onload = n.onreadystatechange = function(e, t) {
  2928.                         (t || !n.readyState || /loaded|complete/.test(n.readyState)) && (n.onload = n.onreadystatechange = null, n.parentNode && n.parentNode.removeChild(n), n = null, t || i(200, "success"))
  2929.                     }, r.insertBefore(n, r.firstChild)
  2930.                 },
  2931.                 abort: function() {
  2932.                     n && n.onload(t, !0)
  2933.                 }
  2934.             }
  2935.         }
  2936.     });
  2937.     var Fn = [],
  2938.         Bn = /(=)\?(?=&|$)|\?\?/;
  2939.     x.ajaxSetup({
  2940.         jsonp: "callback",
  2941.         jsonpCallback: function() {
  2942.             var e = Fn.pop() || x.expando + "_" + vn++;
  2943.             return this[e] = !0, e
  2944.         }
  2945.     }), x.ajaxPrefilter("json jsonp", function(n, r, i) {
  2946.         var o, a, s, l = n.jsonp !== !1 && (Bn.test(n.url) ? "url" : "string" == typeof n.data && !(n.contentType || "").indexOf("application/x-www-form-urlencoded") && Bn.test(n.data) && "data");
  2947.         return l || "jsonp" === n.dataTypes[0] ? (o = n.jsonpCallback = x.isFunction(n.jsonpCallback) ? n.jsonpCallback() : n.jsonpCallback, l ? n[l] = n[l].replace(Bn, "$1" + o) : n.jsonp !== !1 && (n.url += (bn.test(n.url) ? "&" : "?") + n.jsonp + "=" + o), n.converters["script json"] = function() {
  2948.             return s || x.error(o + " was not called"), s[0]
  2949.         }, n.dataTypes[0] = "json", a = e[o], e[o] = function() {
  2950.             s = arguments
  2951.         }, i.always(function() {
  2952.             e[o] = a, n[o] && (n.jsonpCallback = r.jsonpCallback, Fn.push(o)), s && x.isFunction(a) && a(s[0]), s = a = t
  2953.         }), "script") : t
  2954.     });
  2955.     var Pn, Rn, Wn = 0,
  2956.         $n = e.ActiveXObject && function() {
  2957.             var e;
  2958.             for (e in Pn) Pn[e](t, !0)
  2959.         };
  2960.  
  2961.     function In() {
  2962.         try {
  2963.             return new e.XMLHttpRequest
  2964.         } catch (t) {}
  2965.     }
  2966.  
  2967.     function zn() {
  2968.         try {
  2969.             return new e.ActiveXObject("Microsoft.XMLHTTP")
  2970.         } catch (t) {}
  2971.     }
  2972.     x.ajaxSettings.xhr = e.ActiveXObject ? function() {
  2973.         return !this.isLocal && In() || zn()
  2974.     } : In, Rn = x.ajaxSettings.xhr(), x.support.cors = !!Rn && "withCredentials" in Rn, Rn = x.support.ajax = !!Rn, Rn && x.ajaxTransport(function(n) {
  2975.         if (!n.crossDomain || x.support.cors) {
  2976.             var r;
  2977.             return {
  2978.                 send: function(i, o) {
  2979.                     var a, s, l = n.xhr();
  2980.                     if (n.username ? l.open(n.type, n.url, n.async, n.username, n.password) : l.open(n.type, n.url, n.async), n.xhrFields)
  2981.                         for (s in n.xhrFields) l[s] = n.xhrFields[s];
  2982.                     n.mimeType && l.overrideMimeType && l.overrideMimeType(n.mimeType), n.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest");
  2983.                     try {
  2984.                         for (s in i) l.setRequestHeader(s, i[s])
  2985.                     } catch (u) {}
  2986.                     l.send(n.hasContent && n.data || null), r = function(e, i) {
  2987.                         var s, u, c, p;
  2988.                         try {
  2989.                             if (r && (i || 4 === l.readyState))
  2990.                                 if (r = t, a && (l.onreadystatechange = x.noop, $n && delete Pn[a]), i) 4 !== l.readyState && l.abort();
  2991.                                 else {
  2992.                                     p = {}, s = l.status, u = l.getAllResponseHeaders(), "string" == typeof l.responseText && (p.text = l.responseText);
  2993.                                     try {
  2994.                                         c = l.statusText
  2995.                                     } catch (f) {
  2996.                                         c = ""
  2997.                                     }
  2998.                                     s || !n.isLocal || n.crossDomain ? 1223 === s && (s = 204) : s = p.text ? 200 : 404
  2999.                                 }
  3000.                         } catch (d) {
  3001.                             i || o(-1, d)
  3002.                         }
  3003.                         p && o(s, c, p, u)
  3004.                     }, n.async ? 4 === l.readyState ? setTimeout(r) : (a = ++Wn, $n && (Pn || (Pn = {}, x(e).unload($n)), Pn[a] = r), l.onreadystatechange = r) : r()
  3005.                 },
  3006.                 abort: function() {
  3007.                     r && r(t, !0)
  3008.                 }
  3009.             }
  3010.         }
  3011.     });
  3012.     var Xn, Un, Vn = /^(?:toggle|show|hide)$/,
  3013.         Yn = RegExp("^(?:([+-])=|)(" + w + ")([a-z%]*)$", "i"),
  3014.         Jn = /queueHooks$/,
  3015.         Gn = [nr],
  3016.         Qn = {
  3017.             "*": [function(e, t) {
  3018.                 var n = this.createTween(e, t),
  3019.                     r = n.cur(),
  3020.                     i = Yn.exec(t),
  3021.                     o = i && i[3] || (x.cssNumber[e] ? "" : "px"),
  3022.                     a = (x.cssNumber[e] || "px" !== o && +r) && Yn.exec(x.css(n.elem, e)),
  3023.                     s = 1,
  3024.                     l = 20;
  3025.                 if (a && a[3] !== o) {
  3026.                     o = o || a[3], i = i || [], a = +r || 1;
  3027.                     do s = s || ".5", a /= s, x.style(n.elem, e, a + o); while (s !== (s = n.cur() / r) && 1 !== s && --l)
  3028.                 }
  3029.                 return i && (a = n.start = +a || +r || 0, n.unit = o, n.end = i[1] ? a + (i[1] + 1) * i[2] : +i[2]), n
  3030.             }]
  3031.         };
  3032.  
  3033.     function Kn() {
  3034.         return setTimeout(function() {
  3035.             Xn = t
  3036.         }), Xn = x.now()
  3037.     }
  3038.  
  3039.     function Zn(e, t, n) {
  3040.         var r, i = (Qn[t] || []).concat(Qn["*"]),
  3041.             o = 0,
  3042.             a = i.length;
  3043.         for (; a > o; o++)
  3044.             if (r = i[o].call(n, t, e)) return r
  3045.     }
  3046.  
  3047.     function er(e, t, n) {
  3048.         var r, i, o = 0,
  3049.             a = Gn.length,
  3050.             s = x.Deferred().always(function() {
  3051.                 delete l.elem
  3052.             }),
  3053.             l = function() {
  3054.                 if (i) return !1;
  3055.                 var t = Xn || Kn(),
  3056.                     n = Math.max(0, u.startTime + u.duration - t),
  3057.                     r = n / u.duration || 0,
  3058.                     o = 1 - r,
  3059.                     a = 0,
  3060.                     l = u.tweens.length;
  3061.                 for (; l > a; a++) u.tweens[a].run(o);
  3062.                 return s.notifyWith(e, [u, o, n]), 1 > o && l ? n : (s.resolveWith(e, [u]), !1)
  3063.             },
  3064.             u = s.promise({
  3065.                 elem: e,
  3066.                 props: x.extend({}, t),
  3067.                 opts: x.extend(!0, {
  3068.                     specialEasing: {}
  3069.                 }, n),
  3070.                 originalProperties: t,
  3071.                 originalOptions: n,
  3072.                 startTime: Xn || Kn(),
  3073.                 duration: n.duration,
  3074.                 tweens: [],
  3075.                 createTween: function(t, n) {
  3076.                     var r = x.Tween(e, u.opts, t, n, u.opts.specialEasing[t] || u.opts.easing);
  3077.                     return u.tweens.push(r), r
  3078.                 },
  3079.                 stop: function(t) {
  3080.                     var n = 0,
  3081.                         r = t ? u.tweens.length : 0;
  3082.                     if (i) return this;
  3083.                     for (i = !0; r > n; n++) u.tweens[n].run(1);
  3084.                     return t ? s.resolveWith(e, [u, t]) : s.rejectWith(e, [u, t]), this
  3085.                 }
  3086.             }),
  3087.             c = u.props;
  3088.         for (tr(c, u.opts.specialEasing); a > o; o++)
  3089.             if (r = Gn[o].call(u, e, c, u.opts)) return r;
  3090.         return x.map(c, Zn, u), x.isFunction(u.opts.start) && u.opts.start.call(e, u), x.fx.timer(x.extend(l, {
  3091.             elem: e,
  3092.             anim: u,
  3093.             queue: u.opts.queue
  3094.         })), u.progress(u.opts.progress).done(u.opts.done, u.opts.complete).fail(u.opts.fail).always(u.opts.always)
  3095.     }
  3096.  
  3097.     function tr(e, t) {
  3098.         var n, r, i, o, a;
  3099.         for (n in e)
  3100.             if (r = x.camelCase(n), i = t[r], o = e[n], x.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), a = x.cssHooks[r], a && "expand" in a) {
  3101.                 o = a.expand(o), delete e[r];
  3102.                 for (n in o) n in e || (e[n] = o[n], t[n] = i)
  3103.             } else t[r] = i
  3104.     }
  3105.     x.Animation = x.extend(er, {
  3106.         tweener: function(e, t) {
  3107.             x.isFunction(e) ? (t = e, e = ["*"]) : e = e.split(" ");
  3108.             var n, r = 0,
  3109.                 i = e.length;
  3110.             for (; i > r; r++) n = e[r], Qn[n] = Qn[n] || [], Qn[n].unshift(t)
  3111.         },
  3112.         prefilter: function(e, t) {
  3113.             t ? Gn.unshift(e) : Gn.push(e)
  3114.         }
  3115.     });
  3116.  
  3117.     function nr(e, t, n) {
  3118.         var r, i, o, a, s, l, u = this,
  3119.             c = {},
  3120.             p = e.style,
  3121.             f = e.nodeType && nn(e),
  3122.             d = x._data(e, "fxshow");
  3123.         n.queue || (s = x._queueHooks(e, "fx"), null == s.unqueued && (s.unqueued = 0, l = s.empty.fire, s.empty.fire = function() {
  3124.             s.unqueued || l()
  3125.         }), s.unqueued++, u.always(function() {
  3126.             u.always(function() {
  3127.                 s.unqueued--, x.queue(e, "fx").length || s.empty.fire()
  3128.             })
  3129.         })), 1 === e.nodeType && ("height" in t || "width" in t) && (n.overflow = [p.overflow, p.overflowX, p.overflowY], "inline" === x.css(e, "display") && "none" === x.css(e, "float") && (x.support.inlineBlockNeedsLayout && "inline" !== ln(e.nodeName) ? p.zoom = 1 : p.display = "inline-block")), n.overflow && (p.overflow = "hidden", x.support.shrinkWrapBlocks || u.always(function() {
  3130.             p.overflow = n.overflow[0], p.overflowX = n.overflow[1], p.overflowY = n.overflow[2]
  3131.         }));
  3132.         for (r in t)
  3133.             if (i = t[r], Vn.exec(i)) {
  3134.                 if (delete t[r], o = o || "toggle" === i, i === (f ? "hide" : "show")) continue;
  3135.                 c[r] = d && d[r] || x.style(e, r)
  3136.             }
  3137.         if (!x.isEmptyObject(c)) {
  3138.             d ? "hidden" in d && (f = d.hidden) : d = x._data(e, "fxshow", {}), o && (d.hidden = !f), f ? x(e).show() : u.done(function() {
  3139.                 x(e).hide()
  3140.             }), u.done(function() {
  3141.                 var t;
  3142.                 x._removeData(e, "fxshow");
  3143.                 for (t in c) x.style(e, t, c[t])
  3144.             });
  3145.             for (r in c) a = Zn(f ? d[r] : 0, r, u), r in d || (d[r] = a.start, f && (a.end = a.start, a.start = "width" === r || "height" === r ? 1 : 0))
  3146.         }
  3147.     }
  3148.  
  3149.     function rr(e, t, n, r, i) {
  3150.         return new rr.prototype.init(e, t, n, r, i)
  3151.     }
  3152.     x.Tween = rr, rr.prototype = {
  3153.         constructor: rr,
  3154.         init: function(e, t, n, r, i, o) {
  3155.             this.elem = e, this.prop = n, this.easing = i || "swing", this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (x.cssNumber[n] ? "" : "px")
  3156.         },
  3157.         cur: function() {
  3158.             var e = rr.propHooks[this.prop];
  3159.             return e && e.get ? e.get(this) : rr.propHooks._default.get(this)
  3160.         },
  3161.         run: function(e) {
  3162.             var t, n = rr.propHooks[this.prop];
  3163.             return this.pos = t = this.options.duration ? x.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : rr.propHooks._default.set(this), this
  3164.         }
  3165.     }, rr.prototype.init.prototype = rr.prototype, rr.propHooks = {
  3166.         _default: {
  3167.             get: function(e) {
  3168.                 var t;
  3169.                 return null == e.elem[e.prop] || e.elem.style && null != e.elem.style[e.prop] ? (t = x.css(e.elem, e.prop, ""), t && "auto" !== t ? t : 0) : e.elem[e.prop]
  3170.             },
  3171.             set: function(e) {
  3172.                 x.fx.step[e.prop] ? x.fx.step[e.prop](e) : e.elem.style && (null != e.elem.style[x.cssProps[e.prop]] || x.cssHooks[e.prop]) ? x.style(e.elem, e.prop, e.now + e.unit) : e.elem[e.prop] = e.now
  3173.             }
  3174.         }
  3175.     }, rr.propHooks.scrollTop = rr.propHooks.scrollLeft = {
  3176.         set: function(e) {
  3177.             e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
  3178.         }
  3179.     }, x.each(["toggle", "show", "hide"], function(e, t) {
  3180.         var n = x.fn[t];
  3181.         x.fn[t] = function(e, r, i) {
  3182.             return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(ir(t, !0), e, r, i)
  3183.         }
  3184.     }), x.fn.extend({
  3185.         fadeTo: function(e, t, n, r) {
  3186.             return this.filter(nn).css("opacity", 0).show().end().animate({
  3187.                 opacity: t
  3188.             }, e, n, r)
  3189.         },
  3190.         animate: function(e, t, n, r) {
  3191.             var i = x.isEmptyObject(e),
  3192.                 o = x.speed(t, n, r),
  3193.                 a = function() {
  3194.                     var t = er(this, x.extend({}, e), o);
  3195.                     (i || x._data(this, "finish")) && t.stop(!0)
  3196.                 };
  3197.             return a.finish = a, i || o.queue === !1 ? this.each(a) : this.queue(o.queue, a)
  3198.         },
  3199.         stop: function(e, n, r) {
  3200.             var i = function(e) {
  3201.                 var t = e.stop;
  3202.                 delete e.stop, t(r)
  3203.             };
  3204.             return "string" != typeof e && (r = n, n = e, e = t), n && e !== !1 && this.queue(e || "fx", []), this.each(function() {
  3205.                 var t = !0,
  3206.                     n = null != e && e + "queueHooks",
  3207.                     o = x.timers,
  3208.                     a = x._data(this);
  3209.                 if (n) a[n] && a[n].stop && i(a[n]);
  3210.                 else
  3211.                     for (n in a) a[n] && a[n].stop && Jn.test(n) && i(a[n]);
  3212.                 for (n = o.length; n--;) o[n].elem !== this || null != e && o[n].queue !== e || (o[n].anim.stop(r), t = !1, o.splice(n, 1));
  3213.                 (t || !r) && x.dequeue(this, e)
  3214.             })
  3215.         },
  3216.         finish: function(e) {
  3217.             return e !== !1 && (e = e || "fx"), this.each(function() {
  3218.                 var t, n = x._data(this),
  3219.                     r = n[e + "queue"],
  3220.                     i = n[e + "queueHooks"],
  3221.                     o = x.timers,
  3222.                     a = r ? r.length : 0;
  3223.                 for (n.finish = !0, x.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));
  3224.                 for (t = 0; a > t; t++) r[t] && r[t].finish && r[t].finish.call(this);
  3225.                 delete n.finish
  3226.             })
  3227.         }
  3228.     });
  3229.  
  3230.     function ir(e, t) {
  3231.         var n, r = {
  3232.                 height: e
  3233.             },
  3234.             i = 0;
  3235.         for (t = t ? 1 : 0; 4 > i; i += 2 - t) n = Zt[i], r["margin" + n] = r["padding" + n] = e;
  3236.         return t && (r.opacity = r.width = e), r
  3237.     }
  3238.     x.each({
  3239.         slideDown: ir("show"),
  3240.         slideUp: ir("hide"),
  3241.         slideToggle: ir("toggle"),
  3242.         fadeIn: {
  3243.             opacity: "show"
  3244.         },
  3245.         fadeOut: {
  3246.             opacity: "hide"
  3247.         },
  3248.         fadeToggle: {
  3249.             opacity: "toggle"
  3250.         }
  3251.     }, function(e, t) {
  3252.         x.fn[e] = function(e, n, r) {
  3253.             return this.animate(t, e, n, r)
  3254.         }
  3255.     }), x.speed = function(e, t, n) {
  3256.         var r = e && "object" == typeof e ? x.extend({}, e) : {
  3257.             complete: n || !n && t || x.isFunction(e) && e,
  3258.             duration: e,
  3259.             easing: n && t || t && !x.isFunction(t) && t
  3260.         };
  3261.         return r.duration = x.fx.off ? 0 : "number" == typeof r.duration ? r.duration : r.duration in x.fx.speeds ? x.fx.speeds[r.duration] : x.fx.speeds._default, (null == r.queue || r.queue === !0) && (r.queue = "fx"), r.old = r.complete, r.complete = function() {
  3262.             x.isFunction(r.old) && r.old.call(this), r.queue && x.dequeue(this, r.queue)
  3263.         }, r
  3264.     }, x.easing = {
  3265.         linear: function(e) {
  3266.             return e
  3267.         },
  3268.         swing: function(e) {
  3269.             return .5 - Math.cos(e * Math.PI) / 2
  3270.         }
  3271.     }, x.timers = [], x.fx = rr.prototype.init, x.fx.tick = function() {
  3272.         var e, n = x.timers,
  3273.             r = 0;
  3274.         for (Xn = x.now(); n.length > r; r++) e = n[r], e() || n[r] !== e || n.splice(r--, 1);
  3275.         n.length || x.fx.stop(), Xn = t
  3276.     }, x.fx.timer = function(e) {
  3277.         e() && x.timers.push(e) && x.fx.start()
  3278.     }, x.fx.interval = 13, x.fx.start = function() {
  3279.         Un || (Un = setInterval(x.fx.tick, x.fx.interval))
  3280.     }, x.fx.stop = function() {
  3281.         clearInterval(Un), Un = null
  3282.     }, x.fx.speeds = {
  3283.         slow: 600,
  3284.         fast: 200,
  3285.         _default: 400
  3286.     }, x.fx.step = {}, x.expr && x.expr.filters && (x.expr.filters.animated = function(e) {
  3287.         return x.grep(x.timers, function(t) {
  3288.             return e === t.elem
  3289.         }).length
  3290.     }), x.fn.offset = function(e) {
  3291.         if (arguments.length) return e === t ? this : this.each(function(t) {
  3292.             x.offset.setOffset(this, e, t)
  3293.         });
  3294.         var n, r, o = {
  3295.                 top: 0,
  3296.                 left: 0
  3297.             },
  3298.             a = this[0],
  3299.             s = a && a.ownerDocument;
  3300.         if (s) return n = s.documentElement, x.contains(n, a) ? (typeof a.getBoundingClientRect !== i && (o = a.getBoundingClientRect()), r = or(s), {
  3301.             top: o.top + (r.pageYOffset || n.scrollTop) - (n.clientTop || 0),
  3302.             left: o.left + (r.pageXOffset || n.scrollLeft) - (n.clientLeft || 0)
  3303.         }) : o
  3304.     }, x.offset = {
  3305.         setOffset: function(e, t, n) {
  3306.             var r = x.css(e, "position");
  3307.             "static" === r && (e.style.position = "relative");
  3308.             var i = x(e),
  3309.                 o = i.offset(),
  3310.                 a = x.css(e, "top"),
  3311.                 s = x.css(e, "left"),
  3312.                 l = ("absolute" === r || "fixed" === r) && x.inArray("auto", [a, s]) > -1,
  3313.                 u = {},
  3314.                 c = {},
  3315.                 p, f;
  3316.             l ? (c = i.position(), p = c.top, f = c.left) : (p = parseFloat(a) || 0, f = parseFloat(s) || 0), x.isFunction(t) && (t = t.call(e, n, o)), null != t.top && (u.top = t.top - o.top + p), null != t.left && (u.left = t.left - o.left + f), "using" in t ? t.using.call(e, u) : i.css(u)
  3317.         }
  3318.     }, x.fn.extend({
  3319.         position: function() {
  3320.             if (this[0]) {
  3321.                 var e, t, n = {
  3322.                         top: 0,
  3323.                         left: 0
  3324.                     },
  3325.                     r = this[0];
  3326.                 return "fixed" === x.css(r, "position") ? t = r.getBoundingClientRect() : (e = this.offsetParent(), t = this.offset(), x.nodeName(e[0], "html") || (n = e.offset()), n.top += x.css(e[0], "borderTopWidth", !0), n.left += x.css(e[0], "borderLeftWidth", !0)), {
  3327.                     top: t.top - n.top - x.css(r, "marginTop", !0),
  3328.                     left: t.left - n.left - x.css(r, "marginLeft", !0)
  3329.                 }
  3330.             }
  3331.         },
  3332.         offsetParent: function() {
  3333.             return this.map(function() {
  3334.                 var e = this.offsetParent || s;
  3335.                 while (e && !x.nodeName(e, "html") && "static" === x.css(e, "position")) e = e.offsetParent;
  3336.                 return e || s
  3337.             })
  3338.         }
  3339.     }), x.each({
  3340.         scrollLeft: "pageXOffset",
  3341.         scrollTop: "pageYOffset"
  3342.     }, function(e, n) {
  3343.         var r = /Y/.test(n);
  3344.         x.fn[e] = function(i) {
  3345.             return x.access(this, function(e, i, o) {
  3346.                 var a = or(e);
  3347.                 return o === t ? a ? n in a ? a[n] : a.document.documentElement[i] : e[i] : (a ? a.scrollTo(r ? x(a).scrollLeft() : o, r ? o : x(a).scrollTop()) : e[i] = o, t)
  3348.             }, e, i, arguments.length, null)
  3349.         }
  3350.     });
  3351.  
  3352.     function or(e) {
  3353.         return x.isWindow(e) ? e : 9 === e.nodeType ? e.defaultView || e.parentWindow : !1
  3354.     }
  3355.     x.each({
  3356.         Height: "height",
  3357.         Width: "width"
  3358.     }, function(e, n) {
  3359.         x.each({
  3360.             padding: "inner" + e,
  3361.             content: n,
  3362.             "": "outer" + e
  3363.         }, function(r, i) {
  3364.             x.fn[i] = function(i, o) {
  3365.                 var a = arguments.length && (r || "boolean" != typeof i),
  3366.                     s = r || (i === !0 || o === !0 ? "margin" : "border");
  3367.                 return x.access(this, function(n, r, i) {
  3368.                     var o;
  3369.                     return x.isWindow(n) ? n.document.documentElement["client" + e] : 9 === n.nodeType ? (o = n.documentElement, Math.max(n.body["scroll" + e], o["scroll" + e], n.body["offset" + e], o["offset" + e], o["client" + e])) : i === t ? x.css(n, r, s) : x.style(n, r, i, s)
  3370.                 }, n, a ? i : t, a, null)
  3371.             }
  3372.         })
  3373.     }), x.fn.size = function() {
  3374.         return this.length
  3375.     }, x.fn.andSelf = x.fn.addBack, "object" == typeof module && module && "object" == typeof module.exports ? module.exports = x : (e.jQuery = e.$ = x, "function" == typeof define && define.amd && define("jquery", [], function() {
  3376.         return x
  3377.     }))
  3378. })(window);
  3379.  
  3380.  
  3381. // misc/jquery.once.js
  3382.  
  3383. (function($) {
  3384.     var cache = {},
  3385.         uuid = 0;
  3386.     $.fn.once = function(id, fn) {
  3387.         if (typeof id != 'string') {
  3388.             if (!(id in cache)) {
  3389.                 cache[id] = ++uuid;
  3390.             }
  3391.             if (!fn) {
  3392.                 fn = id;
  3393.             }
  3394.             id = 'jquery-once-' + cache[id];
  3395.         }
  3396.         var name = id + '-processed';
  3397.         var elements = this.not('.' + name).addClass(name);
  3398.         return $.isFunction(fn) ? elements.each(fn) : elements;
  3399.     };
  3400.     $.fn.removeOnce = function(id, fn) {
  3401.         var name = id + '-processed';
  3402.         var elements = this.filter('.' + name).removeClass(name);
  3403.         return $.isFunction(fn) ? elements.each(fn) : elements;
  3404.     };
  3405. })(jQuery);
  3406.  
  3407. // misc/drupal.js
  3408.  
  3409. var Drupal = Drupal || {
  3410.     'settings': {},
  3411.     'behaviors': {},
  3412.     'locale': {}
  3413. };
  3414. jQuery.noConflict();
  3415. (function($) {
  3416.     var jquery_init = $.fn.init;
  3417.     $.fn.init = function(selector, context, rootjQuery) {
  3418.         if (selector && typeof selector === 'string') {
  3419.             var hash_position = selector.indexOf('#');
  3420.             if (hash_position >= 0) {
  3421.                 var bracket_position = selector.indexOf('<');
  3422.                 if (bracket_position > hash_position) {
  3423.                     throw 'Syntax error, unrecognized expression: ' + selector;
  3424.                 }
  3425.             }
  3426.         }
  3427.         return jquery_init.call(this, selector, context, rootjQuery);
  3428.     };
  3429.     $.fn.init.prototype = jquery_init.prototype;
  3430.     Drupal.attachBehaviors = function(context, settings) {
  3431.         context = context || document;
  3432.         settings = settings || Drupal.settings;
  3433.         $.each(Drupal.behaviors, function() {
  3434.             if ($.isFunction(this.attach)) {
  3435.                 this.attach(context, settings);
  3436.             }
  3437.         });
  3438.     };
  3439.     Drupal.detachBehaviors = function(context, settings, trigger) {
  3440.         context = context || document;
  3441.         settings = settings || Drupal.settings;
  3442.         trigger = trigger || 'unload';
  3443.         $.each(Drupal.behaviors, function() {
  3444.             if ($.isFunction(this.detach)) {
  3445.                 this.detach(context, settings, trigger);
  3446.             }
  3447.         });
  3448.     };
  3449.     Drupal.checkPlain = function(str) {
  3450.         var character, regex, replace = {
  3451.             '&': '&amp;',
  3452.             '"': '&quot;',
  3453.             '<': '&lt;',
  3454.             '>': '&gt;'
  3455.         };
  3456.         str = String(str);
  3457.         for (character in replace) {
  3458.             if (replace.hasOwnProperty(character)) {
  3459.                 regex = new RegExp(character, 'g');
  3460.                 str = str.replace(regex, replace[character]);
  3461.             }
  3462.         }
  3463.         return str;
  3464.     };
  3465.     Drupal.formatString = function(str, args) {
  3466.         for (var key in args) {
  3467.             switch (key.charAt(0)) {
  3468.                 case '@':
  3469.                     args[key] = Drupal.checkPlain(args[key]);
  3470.                     break;
  3471.                 case '!':
  3472.                     break;
  3473.                 case '%':
  3474.                 default:
  3475.                     args[key] = Drupal.theme('placeholder', args[key]);
  3476.                     break;
  3477.             }
  3478.             str = str.replace(key, args[key]);
  3479.         }
  3480.         return str;
  3481.     };
  3482.     Drupal.t = function(str, args, options) {
  3483.         options = options || {};
  3484.         options.context = options.context || '';
  3485.         if (Drupal.locale.strings && Drupal.locale.strings[options.context] && Drupal.locale.strings[options.context][str]) {
  3486.             str = Drupal.locale.strings[options.context][str];
  3487.         }
  3488.         if (args) {
  3489.             str = Drupal.formatString(str, args);
  3490.         }
  3491.         return str;
  3492.     };
  3493.     Drupal.formatPlural = function(count, singular, plural, args, options) {
  3494.         var args = args || {};
  3495.         args['@count'] = count;
  3496.         var index = Drupal.locale.pluralFormula ? Drupal.locale.pluralFormula(args['@count']) : ((args['@count'] == 1) ? 0 : 1);
  3497.         if (index == 0) {
  3498.             return Drupal.t(singular, args, options);
  3499.         } else if (index == 1) {
  3500.             return Drupal.t(plural, args, options);
  3501.         } else {
  3502.             args['@count[' + index + ']'] = args['@count'];
  3503.             delete args['@count'];
  3504.             return Drupal.t(plural.replace('@count', '@count[' + index + ']'), args, options);
  3505.         }
  3506.     };
  3507.     Drupal.absoluteUrl = function(url) {
  3508.         var urlParsingNode = document.createElement('a');
  3509.         try {
  3510.             url = decodeURIComponent(url);
  3511.         } catch (e) {}
  3512.         urlParsingNode.setAttribute('href', url);
  3513.         return urlParsingNode.cloneNode(false).href;
  3514.     };
  3515.     Drupal.urlIsLocal = function(url) {
  3516.         var absoluteUrl = Drupal.absoluteUrl(url);
  3517.         var protocol = location.protocol;
  3518.         if (protocol === 'http:' && absoluteUrl.indexOf('https:') === 0) {
  3519.             protocol = 'https:';
  3520.         }
  3521.         var baseUrl = protocol + '//' + location.host + Drupal.settings.basePath.slice(0, -1);
  3522.         try {
  3523.             absoluteUrl = decodeURIComponent(absoluteUrl);
  3524.         } catch (e) {}
  3525.         try {
  3526.             baseUrl = decodeURIComponent(baseUrl);
  3527.         } catch (e) {}
  3528.         return absoluteUrl === baseUrl || absoluteUrl.indexOf(baseUrl + '/') === 0;
  3529.     };
  3530.     Drupal.theme = function(func) {
  3531.         var args = Array.prototype.slice.apply(arguments, [1]);
  3532.         return (Drupal.theme[func] || Drupal.theme.prototype[func]).apply(this, args);
  3533.     };
  3534.     Drupal.freezeHeight = function() {
  3535.         Drupal.unfreezeHeight();
  3536.         $('<div id="freeze-height"></div>').css({
  3537.             position: 'absolute',
  3538.             top: '0px',
  3539.             left: '0px',
  3540.             width: '1px',
  3541.             height: $('body').css('height')
  3542.         }).appendTo('body');
  3543.     };
  3544.     Drupal.unfreezeHeight = function() {
  3545.         $('#freeze-height').remove();
  3546.     };
  3547.     Drupal.encodePath = function(item, uri) {
  3548.         uri = uri || location.href;
  3549.         return encodeURIComponent(item).replace(/%2F/g, '/');
  3550.     };
  3551.     Drupal.getSelection = function(element) {
  3552.         if (typeof element.selectionStart != 'number' && document.selection) {
  3553.             var range1 = document.selection.createRange();
  3554.             var range2 = range1.duplicate();
  3555.             range2.moveToElementText(element);
  3556.             range2.setEndPoint('EndToEnd', range1);
  3557.             var start = range2.text.length - range1.text.length;
  3558.             var end = start + range1.text.length;
  3559.             return {
  3560.                 'start': start,
  3561.                 'end': end
  3562.             };
  3563.         }
  3564.         return {
  3565.             'start': element.selectionStart,
  3566.             'end': element.selectionEnd
  3567.         };
  3568.     };
  3569.     Drupal.beforeUnloadCalled = false;
  3570.     $(window).bind('beforeunload pagehide', function() {
  3571.         Drupal.beforeUnloadCalled = true;
  3572.     });
  3573.     Drupal.displayAjaxError = function(message) {
  3574.         if (!Drupal.beforeUnloadCalled) {
  3575.             alert(message);
  3576.         }
  3577.     };
  3578.     Drupal.ajaxError = function(xmlhttp, uri, customMessage) {
  3579.         var statusCode, statusText, pathText, responseText, readyStateText, message;
  3580.         if (xmlhttp.status) {
  3581.             statusCode = "\n" + Drupal.t("An AJAX HTTP error occurred.") + "\n" + Drupal.t("HTTP Result Code: !status", {
  3582.                 '!status': xmlhttp.status
  3583.             });
  3584.         } else {
  3585.             statusCode = "\n" + Drupal.t("An AJAX HTTP request terminated abnormally.");
  3586.         }
  3587.         statusCode += "\n" + Drupal.t("Debugging information follows.");
  3588.         pathText = "\n" + Drupal.t("Path: !uri", {
  3589.             '!uri': uri
  3590.         });
  3591.         statusText = '';
  3592.         try {
  3593.             statusText = "\n" + Drupal.t("StatusText: !statusText", {
  3594.                 '!statusText': $.trim(xmlhttp.statusText)
  3595.             });
  3596.         } catch (e) {}
  3597.         responseText = '';
  3598.         try {
  3599.             responseText = "\n" + Drupal.t("ResponseText: !responseText", {
  3600.                 '!responseText': $.trim(xmlhttp.responseText)
  3601.             });
  3602.         } catch (e) {}
  3603.         responseText = responseText.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi, "");
  3604.         responseText = responseText.replace(/[\n]+\s+/g, "\n");
  3605.         readyStateText = xmlhttp.status == 0 ? ("\n" + Drupal.t("ReadyState: !readyState", {
  3606.             '!readyState': xmlhttp.readyState
  3607.         })) : "";
  3608.         customMessage = customMessage ? ("\n" + Drupal.t("CustomMessage: !customMessage", {
  3609.             '!customMessage': customMessage
  3610.         })) : "";
  3611.         message = statusCode + pathText + statusText + customMessage + responseText + readyStateText;
  3612.         return message;
  3613.     };
  3614.     $('html').addClass('js');
  3615.     document.cookie = 'has_js=1; path=/';
  3616.     $(function() {
  3617.         if (jQuery.support.positionFixed === undefined) {
  3618.             var el = $('<div style="position:fixed; top:10px" />').appendTo(document.body);
  3619.             jQuery.support.positionFixed = el[0].offsetTop === 10;
  3620.             el.remove();
  3621.         }
  3622.     });
  3623.     $(function() {
  3624.         Drupal.attachBehaviors(document, Drupal.settings);
  3625.     });
  3626.     Drupal.theme.prototype = {
  3627.         placeholder: function(str) {
  3628.             return '<em class="placeholder">' + Drupal.checkPlain(str) + '</em>';
  3629.         }
  3630.     };
  3631. })(jQuery);
  3632.  
  3633. // sites/all/modules/paltalk/pt_widgets/pt_widgets.js
  3634.  
  3635. (function($) {
  3636.     Drupal.behaviors.ptWidgets = {
  3637.         attach: function(context, settings) {
  3638.             $('#modalContent').once('pt-widgets-modal-fix', function() {});
  3639.         }
  3640.     };
  3641. })(jQuery);
  3642.  
  3643. // sites/all/modules/paltalk/pt_widgets/widgets/general/popup_cell/popup_cell.js
  3644.  
  3645. (function($) {
  3646.     Drupal.behaviors.popUpCell = {
  3647.         attach: function(context, settings) {
  3648.             var return_user = docCookies.getItem('visited');
  3649.             var user_name = docCookies.getItem('username');
  3650.             if (!user_name && !return_user) {
  3651.                 var _ouibounce = ouibounce(document.getElementById('popup-modal'), {
  3652.                     aggressive: true,
  3653.                     timer: 0,
  3654.                     callback: function() {}
  3655.                 });
  3656.             }
  3657.             $('body').on('click', function() {
  3658.                 $('#popup-modal').hide();
  3659.             });
  3660.             $('#popup-modal .close-popup').on('click', function() {
  3661.                 $('#popup-modal').hide();
  3662.             });
  3663.             $('#popup-modal .modal').on('click', function(e) {
  3664.                 e.stopPropagation();
  3665.             });
  3666.             $('#popup-modal .trans-btn').on('click', function() {
  3667.                 $('#popup-modal').hide();
  3668.             });
  3669.         }
  3670.     };
  3671.     Drupal.behaviors.popupDownload = {
  3672.         attach: function(context, settings) {
  3673.             $('.pane-popup_cell').each(function() {
  3674.                 $widget = $(this);
  3675.                 $button = $('.red-btn', $widget);
  3676.                 $button.on('click', function(e) {
  3677.                     var action = Drupal.t('Download C++', {}, {
  3678.                         context: 'paltalk_widgets:js'
  3679.                     });
  3680.                     e.preventDefault();
  3681.                     switch (window.paltalkPlatformDetect.actionKey) {
  3682.                         case 'C++':
  3683.                             action = Drupal.t('Download C++', {}, {
  3684.                                 context: 'paltalk_widgets:js'
  3685.                             });
  3686.                             trackDownloads('Modal|Popup button', 'Download C++', 'download-other');
  3687.                             break;
  3688.                         case 'iOS':
  3689.                             action = Drupal.t('Link to App Store', {}, {
  3690.                                 context: 'paltalk_widgets:js'
  3691.                             });
  3692.                             trackDownloads('Modal|Popup button', 'App Store', 'download-other');
  3693.                             break;
  3694.                         case 'Android':
  3695.                             action = Drupal.t('Link to Google Play', {}, {
  3696.                                 context: 'paltalk_widgets:js'
  3697.                             });
  3698.                             trackDownloads('Modal|Popup button', 'Google Play', 'download-other');
  3699.                             break;
  3700.                         case 'PTE':
  3701.                             action = Drupal.t('Launch PTE', {}, {
  3702.                                 context: 'paltalk_widgets:js'
  3703.                             });
  3704.                             trackDownloads('Modal|Popup button', 'PTE', 'download-other');
  3705.                             break;
  3706.                     }
  3707.                     paltalkPlatformDetect.linkRedirect(paltalkPlatformDetect.actionUrl, 'Downloads', 'Click on modal box', action);
  3708.                 });
  3709.             });
  3710.         }
  3711.     };
  3712. })(jQuery);
  3713.  
  3714. // sites/all/modules/paltalk/pt_widgets/widgets/general/responsive_cell/responsive_cell.js
  3715.  
  3716. (function($) {
  3717.     Drupal.behaviors.responsiveCellWidgets = {
  3718.         attach: function(context, settings) {
  3719.             $('.pane-responsive_cell').each(function() {
  3720.                 var browserPlatform = navigator.platform.toUpperCase(),
  3721.                     userAgent = navigator.userAgent.toUpperCase(),
  3722.                     $widget = $(this),
  3723.                     $button = '',
  3724.                     $defaultImage = $('#' + this.id + ' #default-image'),
  3725.                     $osxImage = $('#' + this.id + ' #osx-image'),
  3726.                     $imageDisplay = '',
  3727.                     auto_detection = $('#' + this.id + ' #auto_detection').val();
  3728.                 if ((browserPlatform.indexOf("MAC") != -1 || browserPlatform.indexOf("LINUX") != -1) && (userAgent.indexOf("ANDROID") == -1)) {
  3729.                     $('.mac-red-button').show();
  3730.                     $('.mac-green-button').show();
  3731.                     $button = $('.mac-red-button,.mac-green-button', $widget);
  3732.                     $imageDisplay = (($osxImage.length > 0 && $osxImage) || ($defaultImage.length > 0 && $defaultImage));
  3733.                     if ($imageDisplay) {
  3734.                         $imageDisplay.show();
  3735.                     }
  3736.                 } else {
  3737.                     $('.red-button').show();
  3738.                     $('.green-button').show();
  3739.                     $button = $('.red-button,.green-button', $widget);
  3740.                     $imageDisplay = ($defaultImage.length > 0 && $defaultImage);
  3741.                     if ($imageDisplay) {
  3742.                         $imageDisplay.show();
  3743.                     }
  3744.                 }
  3745.                 if (auto_detection < 1) {
  3746.                     $button.on('click', function(e) {
  3747.                         var action = Drupal.t('Download C++', {}, {
  3748.                             context: 'paltalk_widgets:js'
  3749.                         });
  3750.                         e.preventDefault();
  3751.                         switch (window.paltalkPlatformDetect.actionKey) {
  3752.                             case 'C++':
  3753.                                 action = Drupal.t('Download C++', {}, {
  3754.                                     context: 'paltalk_widgets:js'
  3755.                                 });
  3756.                                 trackDownloads('Homepage|Body button', 'Download C++', 'download-other');
  3757.                                 break;
  3758.                             case 'iOS':
  3759.                                 action = Drupal.t('Link to App Store', {}, {
  3760.                                     context: 'paltalk_widgets:js'
  3761.                                 });
  3762.                                 trackDownloads('Homepage|Body button', 'App Store', 'download-other');
  3763.                                 break;
  3764.                             case 'Android':
  3765.                                 action = Drupal.t('Link to Google Play', {}, {
  3766.                                     context: 'paltalk_widgets:js'
  3767.                                 });
  3768.                                 trackDownloads('Homepage|Body button', 'Google Play', 'download-other');
  3769.                                 break;
  3770.                             case 'PTE':
  3771.                                 action = Drupal.t('Launch PTE', {}, {
  3772.                                     context: 'paltalk_widgets:js'
  3773.                                 });
  3774.                                 trackDownloads('Homepage|Body button', 'PTE', 'download-other');
  3775.                                 break;
  3776.                         }
  3777.                         paltalkPlatformDetect.linkRedirect(paltalkPlatformDetect.actionUrl, 'Downloads', 'Click full width video body button', action);
  3778.                     });
  3779.                 }
  3780.             });
  3781.         }
  3782.     };
  3783. })(jQuery);
  3784.  
  3785. // sites/all/modules/paltalk/pt_widgets/widgets/general/dynamic_responsive_3col_cell/dynamic_responsive_3col_cell.js
  3786.  
  3787.  
  3788. // sites/all/modules/paltalk/pt_widgets/widgets/general/horizontal_menu/horizontal_menu.js
  3789.  
  3790. (function($) {
  3791.     Drupal.behaviors.horizontalMenu = {
  3792.         attach: function(context, settings) {
  3793.             var pathname = window.location.pathname;
  3794.             var menu_title = $('.menu_title').html();
  3795.             var news_link = $('#press_news').html();
  3796.             var press_link = $('#press_releases').html();
  3797.             if (pathname == '/press' || pathname == '/news') {
  3798.                 $('.menu_title').html(menu_title);
  3799.                 if (pathname == '/press') {
  3800.                     $('#press_releases').html("<h1>" + press_link + "</h1>");
  3801.                 }
  3802.                 if (pathname == '/news') {
  3803.                     $('#press_news').html("<h1>" + news_link + "</h1>");
  3804.                 }
  3805.             } else {
  3806.                 $('.menu_title').html("<h1>" + menu_title + "</h1>");
  3807.                 $('#press_news').html(news_link);
  3808.                 $('#press_releases').html(press_link);
  3809.             }
  3810.             $('.horizontal-menu').each(function() {
  3811.                 $("a").click(function() {
  3812.                     $("a").removeClass("active");
  3813.                     $(this).addClass("active");
  3814.                 });
  3815.             });
  3816.         }
  3817.     };
  3818. })(jQuery);
  3819.  
  3820. // sites/all/modules/paltalk/pt_widgets/widgets/general/dynamic_responsive_cell/dynamic_responsive_cell.js
  3821.  
  3822. (function($) {
  3823.     Drupal.behaviors.dynamicResponsiveCellWidgets = {
  3824.         attach: function(context, settings) {
  3825.             $(window).scroll(function() {
  3826.                 scrollFunctions();
  3827.             });
  3828.         }
  3829.     };
  3830.     faqFunctions = function(val) {
  3831.         if (!$("#acc_" + val).hasClass("acc-show") && $("#acc_" + val).length > 0) {
  3832.             $("#acc_" + val).addClass("acc-show");
  3833.             $("#faqactive_" + val).addClass("active");
  3834.             $("#faq_arrow_" + val).removeClass("arrow-right");
  3835.             $("#faq_arrow_" + val).addClass("arrow-down");
  3836.             scrollFunctions();
  3837.         } else {
  3838.             $("#acc_" + val).removeClass("acc-show");
  3839.             $("#faqactive_" + val).removeClass("active");
  3840.             $("#faq_arrow_" + val).removeClass("arrow-down");
  3841.             $("#faq_arrow_" + val).addClass("arrow-right");
  3842.             scrollFunctions();
  3843.         }
  3844.     };
  3845.     scrollFunctions = function() {
  3846.         if ($(window).width() > 1024) {
  3847.             if ($("#freeze_cell").length > 0) {
  3848.                 var freeze = $("#freeze_cell").outerHeight(true);
  3849.                 var top_position = ($(".bg-blue").length > 0) ? $(".bg-blue").parent().height() + 20 : 0;
  3850.                 var pos = $("#freeze_cell").position();
  3851.                 var bottom = ($(document).height() - (freeze + 451));
  3852.                 var windowpos = $(window).scrollTop();
  3853.                 if (windowpos >= (pos.top + top_position) && windowpos <= bottom) {
  3854.                     $("#freeze_cell").addClass("stick");
  3855.                 } else {
  3856.                     $("#freeze_cell").removeClass("stick");
  3857.                 }
  3858.             }
  3859.         } else {
  3860.             if ($("#freeze_cell").length > 0) {
  3861.                 $("#freeze_cell").removeClass("stick");
  3862.             }
  3863.         }
  3864.     };
  3865. })(jQuery);
  3866.  
  3867. // sites/all/modules/paltalk/pt_widgets/widgets/general/fullvideo_3col_cell/fullvideo_3col_cell.js
  3868.  
  3869. (function($) {
  3870.     Drupal.behaviors.fullvideo3colAutoPlayVideos = {
  3871.         attach: function(context, settings) {
  3872.             $('.pane-fullvideo_3col_cell').each(function() {
  3873.                 var browserPlatform = navigator.platform.toUpperCase(),
  3874.                     userAgent = navigator.userAgent.toUpperCase(),
  3875.                     $widget = $(this),
  3876.                     $button = $('#download-button-video-3col-cel,#mac-download-button-video-3col-cel', $widget),
  3877.                     windows_only = $('#windows_only').val();
  3878.                 if ((browserPlatform.indexOf("MAC") != -1 || browserPlatform.indexOf("LINUX") != -1) && (userAgent.indexOf("ANDROID") == -1)) {
  3879.                     $('#' + this.id + ' .mac-red-button').show();
  3880.                     $('#' + this.id + ' .mac-green-button').show();
  3881.                     $('#' + this.id + ' .mac-red-button-disabled').show();
  3882.                     $('#' + this.id + ' .mac-green-button-disabled').show();
  3883.                 } else {
  3884.                     $('#' + this.id + ' .red-button').show();
  3885.                     $('#' + this.id + ' .red-button-disabled').show();
  3886.                     $('#' + this.id + ' .green-button').show();
  3887.                     $('#' + this.id + ' .green-button-disabled').show();
  3888.                 }
  3889.                 if ((windows_only == 1) && (browserPlatform.indexOf("WIN") == -1)) {
  3890.                     $('.secondary-content').css("display", "none");
  3891.                 }
  3892.                 $('video', $widget).each(function(i, element) {
  3893.                     try {
  3894.                         element.play();
  3895.                     } catch (e) {}
  3896.                 });
  3897.                 $button.on('click', function(e) {
  3898.                     var action = Drupal.t('Download C++', {}, {
  3899.                         context: 'paltalk_widgets:js'
  3900.                     });
  3901.                     e.preventDefault();
  3902.                     switch (window.paltalkPlatformDetect.actionKey) {
  3903.                         case 'C++':
  3904.                             action = Drupal.t('Download C++', {}, {
  3905.                                 context: 'paltalk_widgets:js'
  3906.                             });
  3907.                             trackDownloads('Homepage|Body button', 'Download C++', 'download-other');
  3908.                             break;
  3909.                         case 'iOS':
  3910.                             action = Drupal.t('Link to App Store', {}, {
  3911.                                 context: 'paltalk_widgets:js'
  3912.                             });
  3913.                             trackDownloads('Homepage|Body button', 'App Store', 'download-other');
  3914.                             break;
  3915.                         case 'Android':
  3916.                             action = Drupal.t('Link to Google Play', {}, {
  3917.                                 context: 'paltalk_widgets:js'
  3918.                             });
  3919.                             trackDownloads('Homepage|Body button', 'Google Play', 'download-other');
  3920.                             break;
  3921.                         case 'PTE':
  3922.                             action = Drupal.t('Launch PTE', {}, {
  3923.                                 context: 'paltalk_widgets:js'
  3924.                             });
  3925.                             trackDownloads('Homepage|Body button', 'PTE', 'download-other');
  3926.                             break;
  3927.                     }
  3928.                     paltalkPlatformDetect.linkRedirect(paltalkPlatformDetect.actionUrl, 'Downloads', 'Click full width video body button', action);
  3929.                 });
  3930.             });
  3931.         }
  3932.     };
  3933.     Drupal.behaviors.testimonialAnimation = {
  3934.         attach: function(context) {
  3935.             var testimonials_start = 0;
  3936.             setInterval(function() {
  3937.                 $('#testimonials-bubble > .bubble-wrapper').eq(testimonials_start).removeClass('active');
  3938.                 testimonials_start++;
  3939.                 if (testimonials_start == 3) {
  3940.                     testimonials_start = 0;
  3941.                 }
  3942.                 $('#testimonials-bubble > .bubble-wrapper').eq(testimonials_start).addClass('active');
  3943.             }, 4000);
  3944.         }
  3945.     };
  3946. })(jQuery);
  3947.  
  3948. // sites/all/modules/paltalk/pt_widgets/widgets/general/fullvideo_cell/fullvideo_cell.js
  3949.  
  3950. (function($) {
  3951.     Drupal.behaviors.fullvideoAutoPlayVideos = {
  3952.         attach: function(context, settings) {
  3953.             $('.pane-fullvideo_cell').each(function() {
  3954.                 var browserPlatform = navigator.platform.toUpperCase(),
  3955.                     userAgent = navigator.userAgent.toUpperCase(),
  3956.                     $widget = $(this),
  3957.                     $button = $('#download-button-video-cel,#mac-download-button-video-cel', $widget),
  3958.                     beta_page = $('#' + this.id + ' #beta_page').val(),
  3959.                     auto_detection = $('#' + this.id + ' #auto_detection').val();
  3960.                 if (beta_page < 1) {
  3961.                     $('.other-content').show();
  3962.                     if ((browserPlatform.indexOf("MAC") != -1 || browserPlatform.indexOf("LINUX") != -1) && (userAgent.indexOf("ANDROID") == -1)) {
  3963.                         $('#' + this.id + ' .mac-red-button').show();
  3964.                         $('#' + this.id + ' .mac-green-button').show();
  3965.                         $('#' + this.id + ' .mac-red-button-disabled').show();
  3966.                         $('#' + this.id + '.mac-green-button-disabled').show();
  3967.                     } else {
  3968.                         $('#' + this.id + ' .red-button').show();
  3969.                         $('#' + this.id + ' .green-button').show();
  3970.                         $('#' + this.id + ' .red-button-disabled').show();
  3971.                         $('#' + this.id + ' .green-button-disabled').show();
  3972.                     }
  3973.                     $('video', $widget).each(function(i, element) {
  3974.                         try {
  3975.                             element.play();
  3976.                         } catch (e) {}
  3977.                     });
  3978.                     if (auto_detection < 1) {
  3979.                         $button.on('click', function(e) {
  3980.                             var action = Drupal.t('Download C++', {}, {
  3981.                                 context: 'paltalk_widgets:js'
  3982.                             });
  3983.                             e.preventDefault();
  3984.                             switch (window.paltalkPlatformDetect.actionKey) {
  3985.                                 case 'C++':
  3986.                                     action = Drupal.t('Download C++', {}, {
  3987.                                         context: 'paltalk_widgets:js'
  3988.                                     });
  3989.                                     trackDownloads('Homepage|Body button', 'Download C++', 'download-other');
  3990.                                     break;
  3991.                                 case 'iOS':
  3992.                                     action = Drupal.t('Link to App Store', {}, {
  3993.                                         context: 'paltalk_widgets:js'
  3994.                                     });
  3995.                                     trackDownloads('Homepage|Body button', 'App Store', 'download-other');
  3996.                                     break;
  3997.                                 case 'Android':
  3998.                                     action = Drupal.t('Link to Google Play', {}, {
  3999.                                         context: 'paltalk_widgets:js'
  4000.                                     });
  4001.                                     trackDownloads('Homepage|Body button', 'Google Play', 'download-other');
  4002.                                     break;
  4003.                                 case 'PTE':
  4004.                                     action = Drupal.t('Launch PTE', {}, {
  4005.                                         context: 'paltalk_widgets:js'
  4006.                                     });
  4007.                                     trackDownloads('Homepage|Body button', 'PTE', 'download-other');
  4008.                                     break;
  4009.                             }
  4010.                             paltalkPlatformDetect.linkRedirect(paltalkPlatformDetect.actionUrl, 'Downloads', 'Click full width video body button', action);
  4011.                         });
  4012.                     }
  4013.                 } else {
  4014.                     if (browserPlatform.indexOf("WIN") != -1) {
  4015.                         $('#' + this.id + ' .red-button').show();
  4016.                         $('#' + this.id + ' .green-button').show();
  4017.                         $('#' + this.id + ' .red-button-disabled').show();
  4018.                         $('#' + this.id + ' .green-button-disabled').show();
  4019.                         $button.on('click', function(e) {
  4020.                             e.preventDefault();
  4021.                             window.open('http://downloads.paltalk.com/download/0.x/pal_install_beta.exe');
  4022.                         });
  4023.                         $('.other-content').show();
  4024.                     } else {
  4025.                         $('.mac-content').show();
  4026.                     }
  4027.                 }
  4028.             });
  4029.         }
  4030.     };
  4031. })(jQuery);
  4032.  
  4033. // sites/all/modules/paltalk/pt_widgets/widgets/general/leaderboard_cell/leaderboard_cell.js
  4034.  
  4035. (function($) {
  4036.     Drupal.behaviors.leaderboardCell = {
  4037.         attach: function(context, settings) {
  4038.             $('.pane-leaderboard_cell').each(function() {
  4039.                 var region = ($('#region_list').val()) ? $('#region_list').val() : 0;
  4040.                 getLeaderBoardData(region);
  4041.                 if (region == 0) {
  4042.                     $.ajax({
  4043.                         type: 'GET',
  4044.                         cache: false,
  4045.                         url: location.protocol + '//www.paltalk.com/api/v1/getcountry',
  4046.                         success: function(response) {
  4047.                             console.log(response);
  4048.                             region = response.region;
  4049.                             getLeaderBoardData(region);
  4050.                         }
  4051.                     });
  4052.                 }
  4053.             });
  4054.         }
  4055.     };
  4056.     getLeaderBoardData = function(region) {
  4057.         var regionURL;
  4058.         switch (region) {
  4059.             case 'me':
  4060.                 regionURL = 'http://client.paltalk.com/ws/mobile//LeaderWS.getLeaderBoardData/vgc_sent/me';
  4061.                 break;
  4062.             case 'vn':
  4063.                 regionURL = 'http://client.paltalk.com/ws/mobile//LeaderWS.getLeaderBoardData/vgc_sent/vn';
  4064.                 break;
  4065.             default:
  4066.                 regionURL = 'http://client.paltalk.com/ws/mobile//LeaderWS.getLeaderBoardData/vgc_sent/row';
  4067.                 break;
  4068.         }
  4069.         $.ajax({
  4070.             type: 'GET',
  4071.             cache: false,
  4072.             url: regionURL,
  4073.             success: function(response) {
  4074.                 $('#list-sent-alltime').html('');
  4075.                 $('#star1_img').html('');
  4076.                 $('#star1_nick').html('');
  4077.                 $('#star2_img').html('');
  4078.                 $('#star2_nick').html('');
  4079.                 $('#star3_img').html('');
  4080.                 $('#star3_nick').html('');
  4081.                 if (response && response.result && response.result.list.length) {
  4082.                     var leader_list = response.result.list;
  4083.                     leader_list.sort(function(a, b) {
  4084.                         return a.rowno - b.rowno
  4085.                     })
  4086.                     if (leader_list[0]["region"]) {
  4087.                         switch (leader_list[0]["region"]) {
  4088.                             case 'me':
  4089.                                 $('#region').html('<h4>Region : Middle East</h4>');
  4090.                                 break;
  4091.                             case 'vn':
  4092.                                 $('#region').html('<h4>Region : Vietnam</h4>');
  4093.                                 break;
  4094.                         }
  4095.                     }
  4096.                     var list_length = leader_list.length;
  4097.                     var k = 1;
  4098.                     for (j = 0; j < 3; j++) {
  4099.                         if (leader_list[j]["image"]) {
  4100.                             $('#star' + k + '_img').append('<img  class="lazy" src="http://peoplepics.paltalk.com/noimage/noimage-50.jpg" data-src="' + leader_list[j]["image"] + '" alt=""/>');
  4101.                         }
  4102.                         if (leader_list[j]["country"]) {
  4103.                             $('#star' + k + '_img').append('<span class="overlay" id="country"><img class="country_lazy" src="http://www.paltalk.com/peopleweb/images/countries/' + (leader_list[j]["country"].trim()).toLowerCase() + '.gif"  width="30px" alt=""/></span>');
  4104.                         }
  4105.                         if (leader_list[j]["crown_level"] && leader_list[j]["crown_level"] > 0) {
  4106.                             $('#star' + k + '_nick').append('<img src="http://www.paltalk.com/f/crown/crown_' + leader_list[j]["crown_level"] + '.png" alt="">');
  4107.                         }
  4108.                         $('#star' + k + '_nick').append(' <span class="nickname">' + leader_list[j]["nickname"] + '</span> <span class="crown-points">' + leader_list[j]["leader_score"] + ' ' + leader_list[j]["data_desc"] + '</span>')
  4109.                         k++;
  4110.                     }
  4111.                     for (i = 0; i < list_length; i++) {
  4112.                         var display = '';
  4113.                         display += '<li>';
  4114.                         display += '<span class="serial-no">' + leader_list[i]["rowno"] + '</span><span class="user-info">';
  4115.                         if (leader_list[i]["image"]) {
  4116.                             display += ' <span class="user-icon"> <img class = "lazy" src="http://peoplepics.paltalk.com/noimage/noimage-35.jpg" data-src="' + leader_list[i]["image"] + '"> </span>';
  4117.                         }
  4118.                         if (leader_list[i]["crown_level"] && leader_list[i]["crown_level"] > 0) {
  4119.                             display += ' <span class="nickname"> <img src="http://www.paltalk.com/f/crown/crown_' + leader_list[i]["crown_level"] + '.png" alt=""> ' + leader_list[i]["nickname"] + '</span>';
  4120.                         } else {
  4121.                             display += ' <span class="nickname"> ' + leader_list[i]["nickname"] + '</span>';
  4122.                         }
  4123.                         display += ' <span class="count">' + leader_list[i]["leader_score"] + '</span>';
  4124.                         display += '</span>';
  4125.                         if (leader_list[i]["country"]) {
  4126.                             display += ' <span class="flag" id="country"><img class="country_lazy" src="http://www.paltalk.com/peopleweb/images/countries/' + (leader_list[i]["country"].trim()).toLowerCase() + '.gif"i alt=""/></span>';
  4127.                         } else {
  4128.                             display += ' <span class="flag">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>';
  4129.                         }
  4130.                         display += '</li>';
  4131.                         $('#list-sent-alltime').append(display);
  4132.                     }
  4133.                     lazyImageLoad();
  4134.                     countryLazyImageLoad();
  4135.                 }
  4136.             },
  4137.             error: function() {}
  4138.         });
  4139.     }
  4140.     lazyImageLoad = function() {
  4141.         $('.lazy').each(function() {
  4142.             var img = $(this);
  4143.             var url = $(this).attr('data-src');
  4144.             var image = new Image();
  4145.             image.onload = function() {
  4146.                 img.attr('src', this.src);
  4147.             };
  4148.             image.src = url;
  4149.         });
  4150.     }
  4151.     countryLazyImageLoad = function() {
  4152.         $('.country_lazy').each(function() {
  4153.             var img = $(this);
  4154.             var image = new Image();
  4155.             image.onerror = function() {
  4156.                 img.parent().html('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
  4157.             };
  4158.             image.src = img.attr('src');
  4159.         });
  4160.     }
  4161. })(jQuery);
  4162.  
  4163. // sites/all/modules/paltalk/pt_widgets/widgets/general/buy_responsive_cell/buy_responsive_cell.js
  4164.  
  4165.  
  4166. // sites/all/modules/paltalk/pt_widgets/widgets/general/leaderboard_3col_cell/leaderboard_3col_cell.js
  4167.  
  4168. (function($) {
  4169.     Drupal.behaviors.leaderboard3ColCell = {
  4170.         attach: function(context, settings) {
  4171.             $('.pane-leaderboard_3col_cell').each(function() {
  4172.                 var region = ($('#region_list').val()) ? $('#region_list').val() : 0;
  4173.                 getMostGiftReceivedData(region);
  4174.                 getMostGiftSentData(region);
  4175.                 getMostValuableData(region);
  4176.                 $('#viewmore').on('click', function() {
  4177.                     $('#next-list-sent-alltime-col1').css("display", "block");
  4178.                     $('#next-list-sent-alltime-col2').css("display", "block");
  4179.                     $('#next-list-sent-alltime-col3').css("display", "block");
  4180.                     $('#viewmore').css("display", "none");
  4181.                 });
  4182.                 $('#everyone').on('click', function() {
  4183.                     $('#next-list-sent-alltime-col1').css("display", "none");
  4184.                     $('#next-list-sent-alltime-col2').css("display", "none");
  4185.                     $('#next-list-sent-alltime-col3').css("display", "none");
  4186.                     $('#col1-loading').css('display', 'block');
  4187.                     $('#col2-loading').css('display', 'block');
  4188.                     $('#col3-loading').css('display', 'block');
  4189.                     $('#col1-content').css('display', 'none');
  4190.                     $('#col2-content').css('display', 'none');
  4191.                     $('#col3-content').css('display', 'none');
  4192.                     $("#everyone").addClass("active");
  4193.                     $("#myregion").removeClass("active");
  4194.                     getMostGiftReceivedData(0);
  4195.                     getMostGiftSentData(0);
  4196.                     getMostValuableData(0);
  4197.                 });
  4198.                 $('#myregion').on('click', function() {
  4199.                     $('#next-list-sent-alltime-col1').css("display", "none");
  4200.                     $('#next-list-sent-alltime-col2').css("display", "none");
  4201.                     $('#next-list-sent-alltime-col3').css("display", "none");
  4202.                     $('#col1-loading').css('display', 'block');
  4203.                     $('#col2-loading').css('display', 'block');
  4204.                     $('#col3-loading').css('display', 'block');
  4205.                     $('#col1-content').css('display', 'none');
  4206.                     $('#col2-content').css('display', 'none');
  4207.                     $('#col3-content').css('display', 'none');
  4208.                     $("#myregion").addClass("active");
  4209.                     $("#everyone").removeClass("active");
  4210.                     getMostGiftReceivedData(0);
  4211.                     getMostGiftSentData(0);
  4212.                     getMostValuableData(0);
  4213.                 });
  4214.             });
  4215.         }
  4216.     };
  4217.     getMostGiftReceivedData = function(region) {
  4218.         var regionURL;
  4219.         switch (region) {
  4220.             case 'me':
  4221.                 regionURL = 'http://client.paltalk.com/ws/mobile//LeaderWS.getLeaderBoardData/vg_received/me';
  4222.                 break;
  4223.             case 'vn':
  4224.                 regionURL = 'http://client.paltalk.com/ws/mobile//LeaderWS.getLeaderBoardData/vg_received/vn';
  4225.                 break;
  4226.             case 'row':
  4227.                 regionURL = 'http://client.paltalk.com/ws/mobile//LeaderWS.getLeaderBoardData/vg_received/row';
  4228.                 break;
  4229.             default:
  4230.                 regionURL = 'http://client.paltalk.com/ws/mobile//LeaderWS.getLeaderBoardData/vg_received/ww';
  4231.                 break;
  4232.         }
  4233.         $.ajax({
  4234.             type: 'GET',
  4235.             cache: false,
  4236.             url: regionURL,
  4237.             success: function(response) {
  4238.                 $('#list-sent-alltime-col1').html('');
  4239.                 $('#next-list-sent-alltime-col1').html('');
  4240.                 $('#col1-loading').css('display', 'none');
  4241.                 $('#col1-content').css('display', 'block');
  4242.                 if (response && response.result && response.result.list.length) {
  4243.                     var leader_list = response.result.list;
  4244.                     leader_list.sort(function(a, b) {
  4245.                         return a.rowno - b.rowno
  4246.                     })
  4247.                     var list_length1 = (leader_list.length > 24) ? 25 : leader_list.length;
  4248.                     var list_length2 = (leader_list.length > 49) ? 50 : leader_list.length;
  4249.                     if (list_length2 >= 25) {
  4250.                         $('#viewmore').css('display', 'inline-block');
  4251.                     }
  4252.                     for (i = 0; i < list_length1; i++) {
  4253.                         var display = '';
  4254.                         display += '<li>';
  4255.                         display += '<a href="http://www.paltalk.com/people/users/' + leader_list[i]["nickname"] + '/index.wmt" target="_blank"><span class="serial">' + leader_list[i]["rowno"] + '</span><div class="pic-crown-nick">';
  4256.                         if (leader_list[i]["country"]) {
  4257.                             display += ' <span class="flag"><img src="http://www.paltalk.com/peopleweb/images/countries/' + (leader_list[i]["country"].trim()).toLowerCase() + '.gif" alt="" class="country_lazy"/></span>';
  4258.                         }
  4259.                         if (leader_list[i]["image"]) {
  4260.                             display += '  <img src="http://peoplepics.paltalk.com/noimage/noimage-35.jpg" data-src="' + leader_list[i]["image"] + '" class="profile-pic lazy">';
  4261.                         }
  4262.                         if (leader_list[i]["crown_level"]) {
  4263.                             display += ' <img src="http://www.paltalk.com/f/crown/crown_' + leader_list[i]["crown_level"] + '.png" alt="" class="crown">';
  4264.                         }
  4265.                         display += ' <span class="nickname"> ' + leader_list[i]["nickname"] + '</span></div>';
  4266.                         display += ' <span class="total-gifts">' + leader_list[i]["leader_score"] + '</span>';
  4267.                         display += '</a></li>';
  4268.                         $('#list-sent-alltime-col1').append(display);
  4269.                     }
  4270.                     if (leader_list.length > 24) {
  4271.                         for (i = 25; i < list_length2; i++) {
  4272.                             var display = '';
  4273.                             display += '<li>';
  4274.                             display += '<a href="http://www.paltalk.com/people/users/' + leader_list[i]["nickname"] + '/index.wmt" target="_blank"><span class="serial">' + leader_list[i]["rowno"] + '</span><div class="pic-crown-nick">';
  4275.                             if (leader_list[i]["country"]) {
  4276.                                 display += ' <span class="flag"><img src="http://www.paltalk.com/peopleweb/images/countries/' + (leader_list[i]["country"].trim()).toLowerCase() + '.gif" alt="" class="country_lazy"/></span>';
  4277.                             }
  4278.                             if (leader_list[i]["image"]) {
  4279.                                 display += '  <img src="http://peoplepics.paltalk.com/noimage/noimage-35.jpg" data-src="' + leader_list[i]["image"] + '" class="profile-pic lazy">';
  4280.                             }
  4281.                             if (leader_list[i]["crown_level"]) {
  4282.                                 display += ' <img src="http://www.paltalk.com/f/crown/crown_' + leader_list[i]["crown_level"] + '.png" alt="" class="crown">';
  4283.                             }
  4284.                             display += ' <span class="nickname"> ' + leader_list[i]["nickname"] + '</span></div>';
  4285.                             display += ' <span class="total-gifts">' + leader_list[i]["leader_score"] + '</span>';
  4286.                             display += '</a></li>';
  4287.                             $('#next-list-sent-alltime-col1').append(display);
  4288.                         }
  4289.                     }
  4290.                     lazyImageLoad();
  4291.                     countryLazyImageLoad();
  4292.                 }
  4293.             },
  4294.             error: function() {}
  4295.         });
  4296.     }
  4297.     getMostGiftSentData = function(region) {
  4298.         var regionURL;
  4299.         switch (region) {
  4300.             case 'me':
  4301.                 regionURL = 'http://client.paltalk.com/ws/mobile//LeaderWS.getLeaderBoardData/vg_sent/me';
  4302.                 break;
  4303.             case 'vn':
  4304.                 regionURL = 'http://client.paltalk.com/ws/mobile//LeaderWS.getLeaderBoardData/vg_sent/vn';
  4305.                 break;
  4306.             case 'row':
  4307.                 regionURL = 'http://client.paltalk.com/ws/mobile//LeaderWS.getLeaderBoardData/vg_sent/row';
  4308.                 break;
  4309.             default:
  4310.                 regionURL = 'http://client.paltalk.com/ws/mobile//LeaderWS.getLeaderBoardData/vg_sent/ww';
  4311.                 break;
  4312.         }
  4313.         $.ajax({
  4314.             type: 'GET',
  4315.             cache: false,
  4316.             url: regionURL,
  4317.             success: function(response) {
  4318.                 $('#list-sent-alltime-col2').html('');
  4319.                 $('#next-list-sent-alltime-col2').html('');
  4320.                 $('#col2-loading').css('display', 'none');
  4321.                 $('#col2-content').css('display', 'block');
  4322.                 if (response && response.result && response.result.list.length) {
  4323.                     var leader_list = response.result.list;
  4324.                     leader_list.sort(function(a, b) {
  4325.                         return a.rowno - b.rowno
  4326.                     })
  4327.                     var list_length1 = (leader_list.length > 24) ? 25 : leader_list.length;
  4328.                     var list_length2 = (leader_list.length > 49) ? 50 : leader_list.length;
  4329.                     if (list_length2 >= 25) {
  4330.                         $('#viewmore').css('display', 'inline-block');
  4331.                     }
  4332.                     for (i = 0; i < list_length1; i++) {
  4333.                         var display = '';
  4334.                         display += '<li>';
  4335.                         display += '<a href="http://www.paltalk.com/people/users/' + leader_list[i]["nickname"] + '/index.wmt" target="_blank"><span class="serial">' + leader_list[i]["rowno"] + '</span><div class="pic-crown-nick">';
  4336.                         if (leader_list[i]["country"]) {
  4337.                             display += ' <span class="flag"><img src="http://www.paltalk.com/peopleweb/images/countries/' + (leader_list[i]["country"].trim()).toLowerCase() + '.gif" alt="" class="country_lazy"/></span>';
  4338.                         }
  4339.                         if (leader_list[i]["image"]) {
  4340.                             display += '  <img src="http://peoplepics.paltalk.com/noimage/noimage-35.jpg" data-src="' + leader_list[i]["image"] + '" class="profile-pic lazy">';
  4341.                         }
  4342.                         if (leader_list[i]["crown_level"]) {
  4343.                             display += ' <img src="http://www.paltalk.com/f/crown/crown_' + leader_list[i]["crown_level"] + '.png" alt="" class="crown">';
  4344.                         }
  4345.                         display += ' <span class="nickname"> ' + leader_list[i]["nickname"] + '</span></div>';
  4346.                         display += ' <span class="total-gifts">' + leader_list[i]["leader_score"] + '</span>';
  4347.                         display += '</a></li>';
  4348.                         $('#list-sent-alltime-col2').append(display);
  4349.                     }
  4350.                     if (leader_list.length > 24) {
  4351.                         for (i = 25; i < list_length2; i++) {
  4352.                             var display = '';
  4353.                             display += '<li>';
  4354.                             display += '<a href="http://www.paltalk.com/people/users/' + leader_list[i]["nickname"] + '/index.wmt" target="_blank"><span class="serial">' + leader_list[i]["rowno"] + '</span><div class="pic-crown-nick">';
  4355.                             if (leader_list[i]["country"]) {
  4356.                                 display += ' <span class="flag"><img src="http://www.paltalk.com/peopleweb/images/countries/' + (leader_list[i]["country"].trim()).toLowerCase() + '.gif" alt="" class="country_lazy"/></span>';
  4357.                             }
  4358.                             if (leader_list[i]["image"]) {
  4359.                                 display += '  <img src="http://peoplepics.paltalk.com/noimage/noimage-35.jpg" data-src="' + leader_list[i]["image"] + '" class="profile-pic lazy">';
  4360.                             }
  4361.                             if (leader_list[i]["crown_level"]) {
  4362.                                 display += ' <img src="http://www.paltalk.com/f/crown/crown_' + leader_list[i]["crown_level"] + '.png" alt="" class="crown">';
  4363.                             }
  4364.                             display += ' <span class="nickname"> ' + leader_list[i]["nickname"] + '</span></div>';
  4365.                             display += ' <span class="total-gifts">' + leader_list[i]["leader_score"] + '</span>';
  4366.                             display += '</a></li>';
  4367.                             $('#next-list-sent-alltime-col2').append(display);
  4368.                         }
  4369.                     }
  4370.                     lazyImageLoad();
  4371.                     countryLazyImageLoad();
  4372.                 }
  4373.             },
  4374.             error: function() {}
  4375.         });
  4376.     }
  4377.     getMostValuableData = function(region) {
  4378.         var regionURL;
  4379.         switch (region) {
  4380.             case 'me':
  4381.                 regionURL = 'http://client.paltalk.com/ws/mobile//LeaderWS.getLeaderBoardData/vgc_sent/me';
  4382.                 break;
  4383.             case 'vn':
  4384.                 regionURL = 'http://client.paltalk.com/ws/mobile//LeaderWS.getLeaderBoardData/vgc_sent/vn';
  4385.                 break;
  4386.             case 'row':
  4387.                 regionURL = 'http://client.paltalk.com/ws/mobile//LeaderWS.getLeaderBoardData/vgc_sent/row';
  4388.                 break;
  4389.             default:
  4390.                 regionURL = 'http://client.paltalk.com/ws/mobile//LeaderWS.getLeaderBoardData/vgc_sent/ww';
  4391.                 break;
  4392.         }
  4393.         $.ajax({
  4394.             type: 'GET',
  4395.             cache: false,
  4396.             url: regionURL,
  4397.             success: function(response) {
  4398.                 $('#list-sent-alltime-col3').html('');
  4399.                 $('#next-list-sent-alltime-col3').html('');
  4400.                 $('#col3-loading').css('display', 'none');
  4401.                 $('#col3-content').css('display', 'block');
  4402.                 if (response && response.result && response.result.list.length) {
  4403.                     var leader_list = response.result.list;
  4404.                     leader_list.sort(function(a, b) {
  4405.                         return a.rowno - b.rowno
  4406.                     })
  4407.                     var list_length1 = (leader_list.length > 24) ? 25 : leader_list.length;
  4408.                     var list_length2 = (leader_list.length > 49) ? 50 : leader_list.length;
  4409.                     if (list_length2 >= 25) {
  4410.                         $('#viewmore').css('display', 'inline-block');
  4411.                     }
  4412.                     for (i = 0; i < list_length1; i++) {
  4413.                         var display = '';
  4414.                         display += '<li>';
  4415.                         display += '<a href="http://www.paltalk.com/people/users/' + leader_list[i]["nickname"] + '/index.wmt" target="_blank"><span class="serial">' + leader_list[i]["rowno"] + '</span><div class="pic-crown-nick">';
  4416.                         if (leader_list[i]["country"]) {
  4417.                             display += ' <span class="flag"><img src="http://www.paltalk.com/peopleweb/images/countries/' + (leader_list[i]["country"].trim()).toLowerCase() + '.gif" alt="" class="country_lazy"/></span>';
  4418.                         }
  4419.                         if (leader_list[i]["image"]) {
  4420.                             display += '  <img id="lazy" src="http://peoplepics.paltalk.com/noimage/noimage-35.jpg" data-src="' + leader_list[i]["image"] + '" class="profile-pic lazy">';
  4421.                         }
  4422.                         if (leader_list[i]["crown_level"]) {
  4423.                             display += ' <img src="http://www.paltalk.com/f/crown/crown_' + leader_list[i]["crown_level"] + '.png" alt="" class="crown">';
  4424.                         }
  4425.                         display += ' <span class="nickname"> ' + leader_list[i]["nickname"] + '</span></div>';
  4426.                         display += ' <span class="total-gifts">' + leader_list[i]["leader_score"] + '</span>';
  4427.                         display += '</a></li>';
  4428.                         $('#list-sent-alltime-col3').append(display);
  4429.                     }
  4430.                     if (leader_list.length > 24) {
  4431.                         for (i = 25; i < list_length2; i++) {
  4432.                             var display = '';
  4433.                             display += '<li>';
  4434.                             display += '<a href="http://www.paltalk.com/people/users/' + leader_list[i]["nickname"] + '/index.wmt" target="_blank"><span class="serial">' + leader_list[i]["rowno"] + '</span><div class="pic-crown-nick">';
  4435.                             if (leader_list[i]["country"]) {
  4436.                                 display += ' <span class="flag"><img src="http://www.paltalk.com/peopleweb/images/countries/' + (leader_list[i]["country"].trim()).toLowerCase() + '.gif" alt="" class="country_lazy"/></span>';
  4437.                             }
  4438.                             if (leader_list[i]["image"]) {
  4439.                                 display += '  <img src="http://peoplepics.paltalk.com/noimage/noimage-35.jpg" data-src="' + leader_list[i]["image"] + '" class="profile-pic lazy">';
  4440.                             }
  4441.                             if (leader_list[i]["crown_level"]) {
  4442.                                 display += ' <img src="http://www.paltalk.com/f/crown/crown_' + leader_list[i]["crown_level"] + '.png" alt="" class="crown">';
  4443.                             }
  4444.                             display += ' <span class="nickname"> ' + leader_list[i]["nickname"] + '</span></div>';
  4445.                             display += ' <span class="total-gifts">' + leader_list[i]["leader_score"] + '</span>';
  4446.                             display += '</a></li>';
  4447.                             $('#next-list-sent-alltime-col3').append(display);
  4448.                         }
  4449.                     }
  4450.                     lazyImageLoad();
  4451.                     countryLazyImageLoad();
  4452.                 }
  4453.             },
  4454.             error: function() {}
  4455.         });
  4456.     }
  4457.     lazyImageLoad = function() {
  4458.         $('.lazy').each(function() {
  4459.             var img = $(this);
  4460.             var url = $(this).attr('data-src');
  4461.             var image = new Image();
  4462.             image.onload = function() {
  4463.                 img.attr('src', this.src);
  4464.             };
  4465.             image.src = url;
  4466.         });
  4467.     }
  4468.     countryLazyImageLoad = function() {
  4469.         $('.country_lazy').each(function() {
  4470.             var img = $(this);
  4471.             var image = new Image();
  4472.             image.onerror = function() {
  4473.                 img.parent().html('');
  4474.             };
  4475.             image.src = img.attr('src');
  4476.         });
  4477.     }
  4478. })(jQuery);
  4479.  
  4480. // sites/all/modules/paltalk/pt_widgets/widgets/general/mobile_responsive_cell/mobile_responsive_cell.js
  4481.  
  4482. (function($) {
  4483.     Drupal.behaviors.maprResizeAnimation = {
  4484.         attach: function(context, settings) {
  4485.             $('.pane-mobile_responsive_cell').each(function() {
  4486.                 var $img = $('img[usemap]'),
  4487.                     resizeImageMap = function() {
  4488.                         $img.each(function() {
  4489.                             var $imgMap = $(this);
  4490.                             $('<img />').load(function() {
  4491.                                 var attrW = 'width',
  4492.                                     attrH = 'height',
  4493.                                     w = $imgMap.attr(attrW),
  4494.                                     h = $imgMap.attr(attrH);
  4495.                                 if (!w || !h) {
  4496.                                     var temp = new Image();
  4497.                                     temp.src = $imgMap.attr('src');
  4498.                                     if (!w)
  4499.                                         w = temp.width;
  4500.                                     if (!h)
  4501.                                         h = temp.height;
  4502.                                 }
  4503.                                 var wPercent = $imgMap.width() / 100,
  4504.                                     hPercent = $imgMap.height() / 100,
  4505.                                     map = $imgMap.attr('usemap').replace('#', ''),
  4506.                                     c = 'coords';
  4507.                                 $('map[name="' + map + '"]').find('area').each(function() {
  4508.                                     var $mapCord = $(this);
  4509.                                     if (!$mapCord.data(c))
  4510.                                         $mapCord.data(c, $mapCord.attr(c));
  4511.                                     var coords = $mapCord.data(c).split(','),
  4512.                                         coordsPercent = new Array(coords.length);
  4513.                                     for (var i = 0; i < coordsPercent.length; ++i) {
  4514.                                         if (i % 2 === 0)
  4515.                                             coordsPercent[i] = parseInt(((coords[i] / w) * 100) * wPercent);
  4516.                                         else
  4517.                                             coordsPercent[i] = parseInt(((coords[i] / h) * 100) * hPercent);
  4518.                                     }
  4519.                                     $mapCord.attr(c, coordsPercent.toString());
  4520.                                 });
  4521.                             }).attr('src', $imgMap.attr('src'));
  4522.                         });
  4523.                     };
  4524.                 $(window).resize(resizeImageMap).trigger('resize');
  4525.             });
  4526.         }
  4527.     };
  4528. })(jQuery);
  4529.  
  4530. // sites/all/modules/paltalk/pt_widgets/widgets/general/buy_3col_cell/buy_3col_cell.js
  4531.  
  4532.  
  4533. // sites/all/modules/paltalk/pt_widgets/widgets/press_contents/press_view_title/press_view_title.js
  4534.  
  4535. (function($) {
  4536.     Drupal.behaviors.pressViewTitle = {
  4537.         attach: function(context, settings) {
  4538.             $('#press_back').click(function() {
  4539.                 if ((history.length > 1) && document.referrer) {
  4540.                     if (parent.history.back()) {
  4541.                         parent.history.back();
  4542.                     } else {
  4543.                         document.location = '/press';
  4544.                     }
  4545.                     return false;
  4546.                 } else {
  4547.                     document.location = '/press';
  4548.                     return false;
  4549.                 }
  4550.             });
  4551.         }
  4552.     };
  4553. })(jQuery);
  4554.  
  4555. // sites/all/modules/paltalk/pt_widgets/widgets/blog_contents/blog_view_title/blog_view_title.js
  4556.  
  4557. (function($) {
  4558.     Drupal.behaviors.blogViewTitle = {
  4559.         attach: function(context, settings) {
  4560.             $('#view_back').click(function() {
  4561.                 if ((history.length > 1) && document.referrer) {
  4562.                     parent.history.back();
  4563.                     return false;
  4564.                 } else {
  4565.                     document.location = '/blog/archive';
  4566.                     return false;
  4567.                 }
  4568.             });
  4569.         }
  4570.     };
  4571. })(jQuery);
  4572.  
  4573. // sites/all/themes/ptcom/js/icon-process.js
  4574.  
  4575. (function($) {
  4576.     Drupal.behaviors.iconProcess = {
  4577.         attach: function(context, settings) {
  4578.             $("#icon-node-form input[name='field_create_vgift[und]']").click(function() {
  4579.                 if ($('input:radio[name="field_create_vgift[und]"]:checked').val() < 1) {
  4580.                     $("#icon-node-form #edit-field-vgift-id").hide();
  4581.                     $("#icon-node-form #edit-field-vgift-name").hide();
  4582.                     $("#icon-node-form #edit-field-vgift-store-icon").hide();
  4583.                     $("#icon-node-form #edit-field-vgift-animation").hide();
  4584.                 } else {
  4585.                     $("#icon-node-form #edit-field-vgift-id").show();
  4586.                     $("#icon-node-form #edit-field-vgift-name").show();
  4587.                     $("#icon-node-form #edit-field-vgift-store-icon").show();
  4588.                     $("#icon-node-form #edit-field-vgift-animation").show();
  4589.                 }
  4590.             });
  4591.         }
  4592.     }
  4593.     $(document).ready(function() {
  4594.         if ($('input:radio[name="field_create_vgift[und]"]:checked').val() < 1) {
  4595.             $("#icon-node-form #edit-field-vgift-id").hide();
  4596.             $("#icon-node-form #edit-field-vgift-name").hide();
  4597.             $("#icon-node-form #edit-field-vgift-store-icon").hide();
  4598.             $("#icon-node-form #edit-field-vgift-animation").hide();
  4599.         } else {
  4600.             $("#icon-node-form #edit-field-vgift-id").show();
  4601.             $("#icon-node-form #edit-field-vgift-name").show();
  4602.             $("#icon-node-form #edit-field-vgift-store-icon").show();
  4603.             $("#icon-node-form #edit-field-vgift-animation").show();
  4604.         }
  4605.     });
  4606. })(jQuery);
  4607.  
  4608. // sites/all/themes/ptcom/js/ouibounce.min.js
  4609. ! function(e, n) {
  4610.     "function" == typeof define && define.amd ? define(n) : "object" == typeof exports ? module.exports = n(require, exports, module) : e.ouibounce = n()
  4611. }(this, function(e, n, o) {
  4612.     return function(e, n) {
  4613.         "use strict";
  4614.  
  4615.         function o(e, n) {
  4616.             return "undefined" == typeof e ? n : e
  4617.         }
  4618.  
  4619.         function i(e) {
  4620.             var n = 24 * e * 60 * 60 * 1e3,
  4621.                 o = new Date;
  4622.             return o.setTime(o.getTime() + n), "; expires=" + o.toUTCString()
  4623.         }
  4624.  
  4625.         function t() {
  4626.             s() || (L.addEventListener("mouseleave", u), L.addEventListener("mouseenter", r), L.addEventListener("keydown", c))
  4627.         }
  4628.  
  4629.         function u(e) {
  4630.             e.clientY > k || (D = setTimeout(m, y))
  4631.         }
  4632.  
  4633.         function r() {
  4634.             D && (clearTimeout(D), D = null)
  4635.         }
  4636.  
  4637.         function c(e) {
  4638.             g || e.metaKey && 76 === e.keyCode && (g = !0, D = setTimeout(m, y))
  4639.         }
  4640.  
  4641.         function d(e, n) {
  4642.             return a()[e] === n
  4643.         }
  4644.  
  4645.         function a() {
  4646.             for (var e = document.cookie.split("; "), n = {}, o = e.length - 1; o >= 0; o--) {
  4647.                 var i = e[o].split("=");
  4648.                 n[i[0]] = i[1]
  4649.             }
  4650.             return n
  4651.         }
  4652.  
  4653.         function s() {
  4654.             return d(T, "true") && !v
  4655.         }
  4656.  
  4657.         function m() {
  4658.             s() || (e && (e.style.display = "block"), E(), f())
  4659.         }
  4660.  
  4661.         function f(e) {
  4662.             var n = e || {};
  4663.             "undefined" != typeof n.cookieExpire && (b = i(n.cookieExpire)), n.sitewide === !0 && (w = ";path=/"), "undefined" != typeof n.cookieDomain && (x = ";domain=" + n.cookieDomain), "undefined" != typeof n.cookieName && (T = n.cookieName), document.cookie = T + "=true" + b + x + w, L.removeEventListener("mouseleave", u), L.removeEventListener("mouseenter", r), L.removeEventListener("keydown", c)
  4664.         }
  4665.         var l = n || {},
  4666.             v = l.aggressive || !1,
  4667.             k = o(l.sensitivity, 20),
  4668.             p = o(l.timer, 1e3),
  4669.             y = o(l.delay, 0),
  4670.             E = l.callback || function() {},
  4671.             b = i(l.cookieExpire) || "",
  4672.             x = l.cookieDomain ? ";domain=" + l.cookieDomain : "",
  4673.             T = l.cookieName ? l.cookieName : "viewedOuibounceModal",
  4674.             w = l.sitewide === !0 ? ";path=/" : "",
  4675.             D = null,
  4676.             L = document.documentElement;
  4677.         setTimeout(t, p);
  4678.         var g = !1;
  4679.         return {
  4680.             fire: m,
  4681.             disable: f,
  4682.             isDisabled: s
  4683.         }
  4684.     }
  4685. });
  4686.  
  4687. // sites/all/themes/ptcom/js/dropdown-style.js
  4688.  
  4689. (function($) {
  4690.     function styledSelectBox() {
  4691.         $('#edit-go').css('display', 'none');
  4692.         $('.currentOptionWrap').remove();
  4693.         var select = $('#edit-jump');
  4694.         $(select).each(function(i) {
  4695.             var elemId = $(this).attr('id');
  4696.             elemId = elemId + "-ui";
  4697.             var tempSelect = $(this);
  4698.             var selectBoxContainer = $('<div class="currentOptionWrap"><div class="b-select-border"></div><div class="currentOption"></div><div class="b-down-icon"></div></div>');
  4699.             var dropDown = $('<ul id="' + elemId + '" class="dropDownUl"></ul>');
  4700.             var selectBox = selectBoxContainer.find('.currentOption');
  4701.             var some = tempSelect.find(":selected").text();
  4702.             some = (some == '' || some.length == 0) ? 'Select' : some;
  4703.             selectBox.html(some);
  4704.             tempSelect.find('option').each(function(i) {
  4705.                 var option = $(this);
  4706.                 if (option.data('skip')) {
  4707.                     return true;
  4708.                 }
  4709.                 var li = $('<li>', {
  4710.                     html: option.text()
  4711.                 });
  4712.                 li.attr('data-value', option.val());
  4713.                 li.click(function() {
  4714.                     selectBox.html(option.text());
  4715.                     dropDown.trigger('hide');
  4716.                     select.val(option.val());
  4717.                     var loc = $(this).attr("data-value");
  4718.                     var urlArray = loc.split('::');
  4719.                     if (urlArray[1]) {
  4720.                         location.href = urlArray[1];
  4721.                     }
  4722.                     return false;
  4723.                 });
  4724.                 dropDown.append(li);
  4725.             });
  4726.             selectBoxContainer.append(dropDown.hide());
  4727.             tempSelect.after(selectBoxContainer);
  4728.             var tempSelectWidth = tempSelect.width();
  4729.             selectBoxContainer.find('.b-select-border').width(tempSelectWidth + 20);
  4730.             selectBoxContainer.find('.currentOption').width(tempSelectWidth);
  4731.             selectBoxContainer.width(tempSelectWidth + 25);
  4732.             dropDown.width(tempSelectWidth + 20);
  4733.             tempSelect.hide();
  4734.         });
  4735.         $('.dropDownUl').bind('show', function() {
  4736.             if ($(this).is(':animated')) {
  4737.                 return false;
  4738.             }
  4739.             var selectBoxContainer = $(this).parent();
  4740.             selectBoxContainer.parent().css('z-index', '2');
  4741.             $(this).slideDown();
  4742.             selectBoxContainer.addClass('expanded');
  4743.         }).bind('hide', function() {
  4744.             if ($(this).is(':animated') || $(this).css('display') == 'none') {
  4745.                 return false;
  4746.             }
  4747.             $(this).slideUp('normal', function() {
  4748.                 var selectBoxContainer = $(this).parent();
  4749.                 selectBoxContainer.parent().css('z-index', '1');
  4750.                 selectBoxContainer.removeClass('expanded');
  4751.             });
  4752.         }).bind('toggle', function() {
  4753.             if ($(this).parent().hasClass('expanded')) {
  4754.                 $(this).trigger('hide');
  4755.             } else $(this).trigger('show');
  4756.         });
  4757.         $('.currentOption').click(function() {
  4758.             var some = $(this).next().next().trigger('toggle');
  4759.             return false;
  4760.         });
  4761.         $(document).click(function() {
  4762.             $('.dropDownUl').trigger('hide');
  4763.         });
  4764.     }
  4765.     $(document).ready(function() {
  4766.         styledSelectBox();
  4767.     });
  4768. })(jQuery);
  4769.  
  4770. // sites/all/themes/ptcom/js/mobile-nav.js
  4771.  
  4772. (function($) {
  4773.     Drupal.behaviors.mobileNav = {
  4774.         attach: function(context, settings) {
  4775.             var $menu = $('#nav-menu'),
  4776.                 $menulink = $('.menu-link');
  4777.             $('body').addClass('js');
  4778.             $menulink.click(function(e) {
  4779.                 e.preventDefault();
  4780.                 $menulink.toggleClass('active');
  4781.                 $menu.toggleClass('active');
  4782.             });
  4783.         }
  4784.     };
  4785. })(jQuery);
  4786.  
  4787. // sites/all/themes/ptcom/js/sticker-process.js
  4788.  
  4789. (function($) {
  4790.     Drupal.behaviors.stickerProcess = {
  4791.         attach: function(context, settings) {
  4792.             if ($("[id^=sticker-node-form] #edit-title-field-en-0-value").length > 0) {
  4793.                 $("[id^=sticker-node-form] #edit-title-field-en-0-value").keyup(function() {
  4794.                     $("[id^=sticker-node-form] #edit-field-sticker-id-und-0-value").val($("[id^=sticker-node-form] #edit-title-field-en-0-value").val());
  4795.                 });
  4796.             } else if ($("[id^=sticker-node-form] #edit-title-field-und-0-value").length > 0) {
  4797.                 $("[id^=sticker-node-form] #edit-title-field-und-0-value").keyup(function() {
  4798.                     $("[id^=sticker-node-form] #edit-field-sticker-id-und-0-value").val($("[id^=sticker-node-form] #edit-title-field-und-0-value").val());
  4799.                 });
  4800.             }
  4801.             $("[id^=sticker-node-form] #edit-field-sticker-id-und-0-value").focus(function() {
  4802.                 if ($("[id^=sticker-node-form] #edit-title-field-en-0-value").length > 0) {
  4803.                     $("[id^=sticker-node-form] #edit-field-sticker-id-und-0-value").val($("[id^=sticker-node-form] #edit-title-field-en-0-value").val());
  4804.                 } else if ($("[id^=sticker-node-form] #edit-title-field-und-0-value").length > 0) {
  4805.                     $("[id^=sticker-node-form] #edit-field-sticker-id-und-0-value").val($("[id^=sticker-node-form] #edit-title-field-und-0-value").val());
  4806.                 }
  4807.             });
  4808.             if ($("[id^=sticker-pack-node-form] #edit-title-field-en-0-value").length > 0) {
  4809.                 $("[id^=sticker-pack-node-form] #edit-title-field-en-0-value").keyup(function() {
  4810.                     $("[id^=sticker-pack-node-form] #edit-field-sticker-pack-id-und-0-value").val($("[id^=sticker-pack-node-form] #edit-title-field-en-0-value").val());
  4811.                 });
  4812.             } else if ($("[id^=sticker-pack-node-form] #edit-title-field-und-0-value").length > 0) {
  4813.                 $("[id^=sticker-pack-node-form] #edit-title-field-und-0-value").keyup(function() {
  4814.                     $("[id^=sticker-pack-node-form] #edit-field-sticker-pack-id-und-0-value").val($("[id^=sticker-pack-node-form] #edit-title-field-und-0-value").val());
  4815.                 });
  4816.             }
  4817.             $("[id^=sticker-pack-node-form] #edit-field-sticker-pack-id-und-0-value").focus(function() {
  4818.                 if ($("[id^=sticker-pack-node-form] #edit-title-field-en-0-value").length > 0) {
  4819.                     $("[id^=sticker-pack-node-form] #edit-field-sticker-pack-id-und-0-value").val($("[id^=sticker-pack-node-form] #edit-title-field-en-0-value").val());
  4820.                 } else if ($("[id^=sticker-pack-node-form] #edit-title-field-und-0-value").length > 0) {
  4821.                     $("[id^=sticker-pack-node-form] #edit-field-sticker-pack-id-und-0-value").val($("[id^=sticker-pack-node-form] #edit-title-field-und-0-value").val());
  4822.                 }
  4823.             });
  4824.         }
  4825.     }
  4826. })(jQuery);
  4827.  
  4828. // sites/all/themes/ptcom/js/advc-refc.js
  4829.  
  4830. (function($) {
  4831.     Drupal.behaviors.AdvcRefcHandling = {
  4832.         attach: function(context, settings) {
  4833.             $.ajax({
  4834.                 type: 'GET',
  4835.                 cache: false,
  4836.                 url: '/api/v1/advc_refc_codes',
  4837.                 timeout: 2000,
  4838.                 success: function(ptRefcSearchEngines) {
  4839.                     try {
  4840.                         var referrerFields = document.referrer.split('.') || ['', ''],
  4841.                             domain = referrerFields[1] || '',
  4842.                             seoEntry = ptRefcSearchEngines[domain] || [0, 0],
  4843.                             refc = docCookies.getItem('refc') || $_GET('refc') || seoEntry[0],
  4844.                             advc = docCookies.getItem('advc') || $_GET('advc') || seoEntry[1],
  4845.                             pagc = docCookies.getItem('pagc') || $_GET('pagc');
  4846.                         console.log(seoEntry, refc, advc, pagc, domain);
  4847.                         refc && docCookies.setItem('refc', refc, '', '/', 'paltalk.com', false);
  4848.                         advc && docCookies.setItem('advc', advc, '', '/', 'paltalk.com', false);
  4849.                         pagc && docCookies.setItem('pagc', pagc, '', '/', 'paltalk.com', false);
  4850.                     } catch (e) {}
  4851.                 }
  4852.             });
  4853.         }
  4854.     }
  4855. })(jQuery);
  4856.  
  4857. // sites/all/themes/ptcom/js/sign-in.js
  4858.  
  4859. (function($) {
  4860.     Drupal.behaviors.isLoggedIn = {
  4861.         attach: function(context, settings) {
  4862.             docCookies.setItem('referrer', document.referrer, '', '/', 'paltalk.com', false);
  4863.             docCookies.setItem('visited', 1, '', '/', 'paltalk.com', false);
  4864.             var user_name = (docCookies.getItem('username') && docCookies.getItem('username') != '' && docCookies.getItem('username') != '""') ? docCookies.getItem('username') : '';
  4865.             if (user_name) {
  4866.                 var user_img = docCookies.getItem('userProfileImg'),
  4867.                     user_img = (user_img && user_img != 'no-image') ? user_img : 'http://www.paltalk.com/responsive/images/profile-pic.png';
  4868.                 var display_content = '<li><a href="https://commerce.paltalk.com/mpt/ControllerServlet?RequestId=MyPalTalk.ShowLogin">';
  4869.                 display_content += '<img src="' + user_img + '">';
  4870.                 display_content += '<span class="nickname">' + user_name + '</span></a></li>';
  4871.                 display_content += '<li><form action="https://commerce.paltalk.com/sson/login" method="post" id="formlogout" name="logout">';
  4872.                 display_content += '<input type="hidden" name="action" value="logout"/>';
  4873.                 display_content += '<input type="hidden" name="target" value="http://www.paltalk.com"/></form>';
  4874.                 display_content += '<a href="javascript:submitLogOut();" class="sign-in">Sign Out</a></li>';
  4875.                 $('#secondary-menu').html(display_content);
  4876.             }
  4877.         }
  4878.     }
  4879. })(jQuery);
  4880.  
  4881. // sites/all/themes/ptcom/js/language-drop.js
  4882.  
  4883. (function($) {
  4884.     Drupal.behaviors.langDrop = {
  4885.         attach: function(context, settings) {
  4886.             var $block = $('#block-locale-language'),
  4887.                 $langs = $block.find('a'),
  4888.                 location = window.location,
  4889.                 cookieLanguage, preferredLanguage, preferredLanguageURL, dropped = false,
  4890.                 valueHolder = $('.language-dropdown .valueholder'),
  4891.                 dropdown_container = $('ul.language-switcher-locale-url'),
  4892.                 hrefComponents;
  4893.             $block.find('a[lang="en"]').attr('href', location.protocol + '//www.paltalk.com' + location.pathname);
  4894.             getCookieLang().then(function(cookieLanguage) {
  4895.                 var check_page = location.pathname;
  4896.                 if ((check_page == '/terms') || (check_page == '/privacy')) {
  4897.                     preferredLanguage = 'en';
  4898.                 } else {
  4899.                     preferredLanguage = cookieLanguage || $_GET('lang') || 'en';
  4900.                 }
  4901.                 preferredLanguageURL = $block.find('a[lang="' + preferredLanguage + '"]').attr('href');
  4902.                 console.log(preferredLanguage, 'Would redirect to', preferredLanguageURL);
  4903.                 var queryParams = window.location.search || docCookies.getItem('queryParams') || '';
  4904.                 queryParams = (queryParams) ? '?' + queryParams.substr(1) : '';
  4905.                 var hasSubDomain = true;
  4906.                 if (preferredLanguage && preferredLanguage != 'en') {
  4907.                     preferredLanguage = (preferredLanguage === 'fil') ? 'tl' : preferredLanguage;
  4908.                     $('#header-sign-in').attr('href', 'https://' + preferredLanguage + '.commerce.paltalk.com/mpt/MyPalTalkHome.jsp' + queryParams);
  4909.                     $('#header-members').attr('href', 'http://' + preferredLanguage + '.paltalk.com/people/webapp/index.wmt' + queryParams);
  4910.                     $('#header-chatrooms').attr('href', 'http://' + preferredLanguage + '.paltalk.com/g2/webapp/groups/GroupsPage.wmt' + queryParams);
  4911.                     $('#footer-windows').attr('href', 'http://' + preferredLanguage + '.paltalk.com/download/help/');
  4912.                     $('#footer-mobile').attr('href', 'http://' + preferredLanguage + '.paltalk.com/mobile');
  4913.                     $('#footer-vgifts').attr('href', 'http://' + preferredLanguage + '.paltalk.com/vgifts');
  4914.                     $('#footer-search-friends').attr('href', 'http://' + preferredLanguage + '.paltalk.com/people/webapp/index.wmt' + queryParams);
  4915.                     $('#footer-search-rooms').attr('href', 'http://' + preferredLanguage + '.paltalk.com/g2/webapp/groups/GroupsPage.wmt' + queryParams);
  4916.                     $('#footer-partnerships').attr('href', 'http://' + preferredLanguage + '.paltalk.com/partnerships');
  4917.                 } else {
  4918.                     $('#header-sign-in').attr('href', 'https://commerce.paltalk.com/mpt/MyPalTalkHome.jsp' + queryParams);
  4919.                     $('#header-members').attr('href', 'http://www.paltalk.com/people/webapp/index.wmt' + queryParams);
  4920.                     $('#header-chatrooms').attr('href', 'http://www.paltalk.com/g2/webapp/groups/GroupsPage.wmt' + queryParams);
  4921.                     $('#footer-windows').attr('href', 'http://www.paltalk.com/download/help/');
  4922.                     $('#footer-mobile').attr('href', 'http://www.paltalk.com/mobile');
  4923.                     $('#footer-vgifts').attr('href', 'http://www.paltalk.com/vgifts');
  4924.                     $('#footer-search-friends').attr('href', 'http://www.paltalk.com/people/webapp/index.wmt' + queryParams);
  4925.                     $('#footer-search-rooms').attr('href', 'http://www.paltalk.com/g2/webapp/groups/GroupsPage.wmt' + queryParams);
  4926.                     $('#footer-partnerships').attr('href', 'http://www.paltalk.com/partnerships');
  4927.                     var hostUrl = window.location.host.split('.');
  4928.                     hasSubDomain = (hostUrl.length > 2) ? true : false;
  4929.                 }
  4930.                 var parser = document.createElement('a');
  4931.                 parser.href = preferredLanguageURL;
  4932.                 hrefComponents = parser.host.split(':');
  4933.                 var check_host = /localhost|qa|staging|172|d3ozfpuimlyeje.cloudfront.net|paltalkurl.com|www.paltalkurl.com/,
  4934.                     host_status = check_host.test(window.location.host);
  4935.                 if (cookieLanguage && hrefComponents[0] !== window.location.host && hasSubDomain && host_status !== true) {
  4936.                     setTimeout(function() {
  4937.                         document.location = preferredLanguageURL;
  4938.                     }, 200);
  4939.                 }
  4940.             });
  4941.             valueHolder.on('click', function(e) {
  4942.                 dropdown_container.show();
  4943.                 valueHolder.addClass('active');
  4944.                 if (!dropped) {
  4945.                     e.preventDefault();
  4946.                     e.stopPropagation();
  4947.                     dropped = true;
  4948.                     $block.addClass('open');
  4949.                 } else {
  4950.                     dropped = false;
  4951.                 }
  4952.             });
  4953.             $langs.on('click', function(e) {
  4954.                 var $el = $(this),
  4955.                     langClicked = $el.attr('lang');
  4956.                 if (!dropped) {
  4957.                     e.preventDefault();
  4958.                     e.stopPropagation();
  4959.                     dropped = true;
  4960.                     $block.addClass('open');
  4961.                 } else {
  4962.                     docCookies.setItem('lang', langClicked, '', '/', '.paltalk.com', false);
  4963.                     console.log('Language selected: ' + langClicked);
  4964.                     dropped = false;
  4965.                 }
  4966.             });
  4967.             valueHolder.text($block.find('a.active').text());
  4968.             $(document).click(function() {
  4969.                 dropdown_container.hide();
  4970.                 valueHolder.removeClass('active');
  4971.                 $block.removeClass('open');
  4972.                 dropped = false;
  4973.             });
  4974.  
  4975.             function getCookieLang() {
  4976.                 var deferred = $.Deferred(),
  4977.                     domainUrl = window.location.host,
  4978.                     domainParts = domainUrl.split('.'),
  4979.                     subDomain = domainParts[0],
  4980.                     languageList = {
  4981.                         'ar': true,
  4982.                         'zh-hans': true,
  4983.                         'nl': true,
  4984.                         'tl': true,
  4985.                         'fr': true,
  4986.                         'de': true,
  4987.                         'hi': true,
  4988.                         'id': true,
  4989.                         'it': true,
  4990.                         'ja': true,
  4991.                         'ko': true,
  4992.                         'pt-br': true,
  4993.                         'ru': true,
  4994.                         'es': true,
  4995.                         'sv': true,
  4996.                         'tr': true,
  4997.                         'vi': true,
  4998.                         'www': true
  4999.                     },
  5000.                     langList = {
  5001.                         'zh': 'zh-hans',
  5002.                         'pt': 'pt-br',
  5003.                         'fi': 'fil',
  5004.                         'tl': 'fil'
  5005.                     };
  5006.                 if (languageList[subDomain]) {
  5007.                     subDomain = (subDomain != 'www') ? subDomain : 'en';
  5008.                     deferred.resolve(subDomain);
  5009.                 } else {
  5010.                     cookieLanguage = docCookies.getItem('lang');
  5011.                     if (cookieLanguage) {
  5012.                         cookieLanguage = langList[cookieLanguage] ? langList[cookieLanguage] : cookieLanguage;
  5013.                         deferred.resolve(cookieLanguage);
  5014.                     } else {
  5015.                         $.ajax({
  5016.                             type: 'GET',
  5017.                             url: 'http://www.paltalk.com/lang.php?v=' + (Math.random() * 10000000000000000),
  5018.                             success: function(data) {
  5019.                                 data = data ? data.trim() : 'en';
  5020.                                 data = langList[data] ? langList[data] : data;
  5021.                                 docCookies.setItem('lang', data, '', '/', '.paltalk.com', false);
  5022.                                 deferred.resolve(data);
  5023.                             },
  5024.                             error: function() {
  5025.                                 deferred.resolve(null);
  5026.                             }
  5027.                         });
  5028.                     }
  5029.                 }
  5030.                 return deferred.promise();
  5031.             }
  5032.         }
  5033.     };
  5034. })(jQuery);
  5035.  
  5036. // sites/all/themes/ptcom/js/utils.js
  5037.  
  5038. window.docCookies = {
  5039.     getItem: function(sKey) {
  5040.         if (!sKey || !this.hasItem(sKey)) {
  5041.             return null;
  5042.         }
  5043.         return unescape(document.cookie.replace(new RegExp("(?:^|.*;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*"), "$1"));
  5044.     },
  5045.     setItem: function(sKey, sValue, vEnd, sPath, sDomain, bSecure) {
  5046.         if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/i.test(sKey)) {
  5047.             return;
  5048.         }
  5049.         document.cookie = escape(sKey) + "=" + escape(sValue) + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "") + (bSecure ? "; secure" : "");
  5050.     },
  5051.     removeItem: function(sKey, sPath) {
  5052.         if (!sKey || !this.hasItem(sKey)) {
  5053.             return;
  5054.         }
  5055.         document.cookie = escape(sKey) + "=; expires=Tue, 1 Jan 2013 00:00:00 GMT" + (sPath ? "; path=" + sPath : "");
  5056.     },
  5057.     hasItem: function(sKey) {
  5058.         return (new RegExp("(?:^|;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie);
  5059.     },
  5060.     keys: function() {
  5061.         var aKeys = document.cookie.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g, "").split(/\s*(?:\=[^;]*)?;\s*/);
  5062.         for (var nIdx = 0; nIdx < aKeys.length; nIdx++) {
  5063.             aKeys[nIdx] = unescape(aKeys[nIdx]);
  5064.         }
  5065.         return aKeys;
  5066.     }
  5067. };
  5068. window.$_GET = function(value) {
  5069.     var str = window.location.search,
  5070.         objURL = {};
  5071.     str.replace(new RegExp("([^?=&]+)(=([^&]*))?", "g"), function($0, $1, $2, $3) {
  5072.         objURL[$1] = $3;
  5073.     });
  5074.     if (value) {
  5075.         return objURL[value] || null;
  5076.     }
  5077.     return objURL;
  5078. };
  5079. if (typeof console === "undefined") {
  5080.     console = {};
  5081.     console.log = function() {}
  5082. }
  5083.  
  5084. // sites/all/themes/ptcom/js/platform-redirect.js
  5085.  
  5086. (function($) {
  5087.     window.outboundLink = function(element, category, event, label) {
  5088.         var platform = navigator.platform.toUpperCase();
  5089.         if ((label == 'Download C++') && (platform.indexOf("WIN") != -1)) {
  5090.             trackDownloads('Products|PC button', 'Download C++', 'download-other');
  5091.         } else if (label == 'Download C++') {
  5092.             trackDownloads('Products|PC button', 'PTE', 'download-other');
  5093.         }
  5094.         if ((label == 'Launch PTE')) {
  5095.             trackDownloads('Products|PTE button', 'PTE', 'download-other');
  5096.         }
  5097.         if ((label == 'Link to App Store')) {
  5098.             trackDownloads('Products|iOS button', 'App Store', 'download-other');
  5099.         }
  5100.         if ((label == 'Link to Amazon App Store')) {
  5101.             trackDownloads('Products|Kindle button', 'Kindle', 'download-other');
  5102.         }
  5103.         if ((label == 'Link to Google Play')) {
  5104.             trackDownloads('Products|Android button', 'Google Play', 'download-other');
  5105.         }
  5106.         paltalkPlatformDetect.linkRedirect($(element).attr('href'), category, event, label);
  5107.     };
  5108.     window.paltalkPlatformDetect = {
  5109.         platform: '',
  5110.         agent: '',
  5111.         actionTitle: Drupal.t('Download Paltalk', {}, {
  5112.             context: 'paltalk_widgets:js'
  5113.         }),
  5114.         defaultActionUrl: 'http://www.paltalk.com/download/help/',
  5115.         actionUrl: 'javascript:void(0)',
  5116.         actionKey: 'C++',
  5117.         gaLabel: 'Download C++',
  5118.         initialized: false,
  5119.         linkRedirect: function(href, category, event, label) {
  5120.             try {
  5121.                 if (!(window.ga && ga.loaded)) {
  5122.                     document.location = href;
  5123.                 }
  5124.                 if (category != 'Downloads') {
  5125.                     _gaq.push(['_trackEvent', category, event, label]);
  5126.                 }
  5127.                 _gaq.push(function() {
  5128.                     var queryParams = window.location.search || docCookies.getItem('queryParams') || '';
  5129.                     queryParams = queryParams.substr(1);
  5130.                     if (queryParams) {
  5131.                         href += (href.match(/\?/) ? '&' : '?') + queryParams;
  5132.                     } else {
  5133.                         var refc = $_GET()['refc'];
  5134.                         if (refc) {
  5135.                             href += '?refc=' + parseInt(refc);
  5136.                         }
  5137.                     }
  5138.                     document.location = href;
  5139.                 });
  5140.             } catch (err) {
  5141.                 console.log(err);
  5142.             }
  5143.         },
  5144.         init: function() {
  5145.             try {
  5146.                 var self = window.paltalkPlatformDetect;
  5147.                 var queryParams = window.location.search || '';
  5148.                 queryParams && docCookies.setItem('queryParams', queryParams, '', '/', 'paltalk.com', false);
  5149.                 if (self.initialized) {
  5150.                     return;
  5151.                 }
  5152.                 self.initialized = true;
  5153.                 self.platform = navigator.platform.toUpperCase();
  5154.                 self.agent = navigator.userAgent.toUpperCase();
  5155.                 var isWInXp = false;
  5156.                 if ((self.agent.indexOf("WINDOWS NT 5.1") != -1) || (self.agent.indexOf("WINDOWS XP") != -1)) {
  5157.                     isWInXp = true;
  5158.                 }
  5159.                 console.log(self.platform);
  5160.                 console.log(self.agent);
  5161.                 console.log(isWInXp);
  5162.                 var platformType = 'WIN';
  5163.                 if (self.agent.indexOf("IPHONE") != -1 || self.agent.indexOf("IPAD") != -1) {
  5164.                     platformType = 'IPHONE';
  5165.                     console.log('Detected iOS');
  5166.                     self.actionTitle = Drupal.t('Download Paltalk', {}, {
  5167.                         context: 'paltalk_widgets:js'
  5168.                     });
  5169.                     self.actionUrl = 'https://itunes.apple.com/us/app/paltalk-video-chat-free/id466970942';
  5170.                     self.actionKey = 'iOS';
  5171.                     self.gaLabel = 'Link to App Store';
  5172.                 } else if (self.agent.indexOf("ANDROID") != -1) {
  5173.                     platformType = 'ANDROID';
  5174.                     console.log('Detected Android');
  5175.                     self.actionTitle = Drupal.t('Download Paltalk', {}, {
  5176.                         context: 'paltalk_widgets:js'
  5177.                     });
  5178.                     self.actionUrl = 'https://play.google.com/store/apps/details?id=com.paltalk.chat.android&hl=en';
  5179.                     self.actionKey = 'Android';
  5180.                     self.gaLabel = 'Link to Google Play';
  5181.                 } else if (self.platform.indexOf("WIN") != -1) {
  5182.                     platformType = 'WIN';
  5183.                     console.log('Detected Windows');
  5184.                     self.actionTitle = Drupal.t('Download Paltalk', {}, {
  5185.                         context: 'paltalk_widgets:js'
  5186.                     });
  5187.                     self.actionKey = 'C++';
  5188.                     self.gaLabel = 'Download C++';
  5189.                 } else if (self.platform.indexOf("MAC") != -1 || self.platform.indexOf("LINUX") != -1) {
  5190.                     platformType = 'OSX';
  5191.                     console.log('Detected Mac or Linux');
  5192.                     self.actionTitle = Drupal.t('Get Paltalk for Mac Beta', {}, {
  5193.                         context: 'paltalk_widgets:js'
  5194.                     });
  5195.                     self.actionUrl = 'http://register.paltalk.com/reg/ControllerServlet?RequestId=Register.NGReg';
  5196.                     self.actionKey = 'PTE';
  5197.                     self.gaLabel = 'Launch PTE';
  5198.                 }
  5199.                 getCountryCode(platformType, isWInXp);
  5200.                 if (((self.agent.indexOf("IPHONE") != -1 || self.agent.indexOf("IPAD") != -1 || self.agent.indexOf("ANDROID") != -1) && self.agent.indexOf("CHROME") == -1) || (self.agent.indexOf("ANDROID") != -1 && self.agent.indexOf("CHROME") != -1)) {
  5201.                     $('body').addClass('ios');
  5202.                 }
  5203.                 if (self.agent.indexOf("SAFARI") != -1) {
  5204.                     $('body').addClass('safari');
  5205.                 }
  5206.                 setTimeout(function() {
  5207.                     if ($('#optimizely-overlay-container').length > 0) {
  5208.                         $('body').addClass('optimizely-editor');
  5209.                     }
  5210.                 }, 2000);
  5211.             } catch (e) {}
  5212.         },
  5213.         headerButtonLink: function(actionTitle, actionUrl, gaLabel) {
  5214.             try {
  5215.                 var self = window.paltalkPlatformDetect;
  5216.                 self.platform = navigator.platform.toUpperCase();
  5217.                 self.agent = navigator.userAgent.toUpperCase();
  5218.                 $('#header-download').html(actionTitle).attr('href', 'javascript:void(0)').on('click', function(e) {
  5219.                     e.preventDefault();
  5220.                     var page_location = 'Homepage|Header button';
  5221.                     if (window.location.pathname == '/products') {
  5222.                         page_location = 'Products|Header button';
  5223.                     } else if (window.location.pathname == '/features') {
  5224.                         page_location = 'Features|Header button';
  5225.                     }
  5226.                     if (self.agent.indexOf("IPHONE") != -1 || self.agent.indexOf("IPAD") != -1) {
  5227.                         trackDownloads(page_location, 'App Store', 'download-other');
  5228.                     } else if (self.agent.indexOf("ANDROID") != -1) {
  5229.                         trackDownloads(page_location, 'Google Play', 'download-other');
  5230.                     } else if (self.platform.indexOf("WIN") != -1) {
  5231.                         trackDownloads(page_location, 'Download C++', 'download-other');
  5232.                     } else if (self.platform.indexOf("MAC") != -1) {
  5233.                         trackDownloads(page_location, 'PTE', 'download-other');
  5234.                     }
  5235.                     paltalkPlatformDetect.linkRedirect(actionUrl, 'Downloads', 'Click header button', gaLabel);
  5236.                 });
  5237.             } catch (err) {
  5238.                 console.log(err);
  5239.             }
  5240.         },
  5241.         footerLink: function(actionTitle, actionUrl, gaLabel) {
  5242.             try {
  5243.                 var self = window.paltalkPlatformDetect;
  5244.                 self.platform = navigator.platform.toUpperCase();
  5245.                 self.agent = navigator.userAgent.toUpperCase();
  5246.                 $('#footer-windows').attr('href', 'javascript:void(0)').on('click', function(e) {
  5247.                     e.preventDefault();
  5248.                     var page_location = 'Footer Link';
  5249.                     if (self.agent.indexOf("IPHONE") != -1 || self.agent.indexOf("IPAD") != -1) {
  5250.                         trackDownloads(page_location, 'App Store', 'download-other');
  5251.                     } else if (self.agent.indexOf("ANDROID") != -1) {
  5252.                         trackDownloads(page_location, 'Google Play', 'download-other');
  5253.                     } else if (self.platform.indexOf("WIN") != -1) {
  5254.                         trackDownloads(page_location, 'Download C++', 'download-other');
  5255.                     } else if (self.platform.indexOf("MAC") != -1) {
  5256.                         trackDownloads(page_location, 'PTE', 'download-other');
  5257.                     }
  5258.                     paltalkPlatformDetect.linkRedirect(actionUrl, 'Downloads', 'Click footer link', gaLabel);
  5259.                 });
  5260.             } catch (err) {
  5261.                 console.log(err);
  5262.             }
  5263.         }
  5264.     };
  5265.     getPathLink = function(platformtype, isWInXp, countryCode) {
  5266.         var self = window.paltalkPlatformDetect;
  5267.         $.ajax({
  5268.             type: 'GET',
  5269.             cache: false,
  5270.             url: '/api/v1/getpath',
  5271.             success: function(response) {
  5272.                 var countryList = (response.country) ? response.country : [];
  5273.                 var ngForAll = (response.windowsNGForAll) ? response.windowsNGForAll : 0;
  5274.                 self.actionTitle = (response.title[platformtype]) ? Drupal.t(response.title[platformtype], {}, {
  5275.                     context: 'paltalk_widgets:js'
  5276.                 }) : self.actionTitle;
  5277.                 if ((countryList[countryCode] || ngForAll > 0) && platformtype == 'WIN' && !isWInXp) {
  5278.                     self.actionUrl = (response.url['OSX']) ? response.url['OSX'] : self.defaultActionUrl;
  5279.                 } else {
  5280.                     self.actionUrl = (response.url[platformtype]) ? response.url[platformtype] : self.actionUrl;
  5281.                 }
  5282.                 paltalkPlatformDetect.headerButtonLink(self.actionTitle, (self.actionUrl == 'javascript:void(0)') ? self.defaultActionUrl : self.actionUrl, self.gaLabel);
  5283.                 paltalkPlatformDetect.footerLink(self.actionTitle, (self.actionUrl == 'javascript:void(0)') ? self.defaultActionUrl : self.actionUrl, self.gaLabel);
  5284.                 $("#header-download").removeClass("red-button-disabled");
  5285.                 $("#header-download").addClass("red-button");
  5286.                 if ($("#download-button-video-3col-cel").hasClass("red-button-disabled")) {
  5287.                     $("#download-button-video-3col-cel").removeClass("red-button-disabled");
  5288.                     $("#download-button-video-3col-cel").addClass("red-button");
  5289.                 }
  5290.                 if ($("#download-button-video-3col-cel").hasClass("green-button-disabled")) {
  5291.                     $("#download-button-video-3col-cel").removeClass("green-button-disabled");
  5292.                     $("#download-button-video-3col-cel").addClass("green-button");
  5293.                 }
  5294.                 if ($("#mac-download-button-video-3col-cel").hasClass("mac-red-button-disabled")) {
  5295.                     $("#mac-download-button-video-3col-cel").removeClass("mac-red-button-disabled");
  5296.                     $("#mac-download-button-video-3col-cel").addClass("mac-red-button");
  5297.                 }
  5298.                 if ($("#mac-download-button-video-3col-cel").hasClass("mac-green-button-disabled")) {
  5299.                     $("#mac-download-button-video-3col-cel").removeClass("mac-green-button-disabled");
  5300.                     $("#mac-download-button-video-3col-cel").addClass("mac-green-button");
  5301.                 }
  5302.                 if ($("#download-button-video-cel").hasClass("red-button-disabled")) {
  5303.                     $("#download-button-video-cel").removeClass("red-button-disabled");
  5304.                     $("#download-button-video-cel").addClass("red-button");
  5305.                 }
  5306.                 if ($("#download-button-video-cel").hasClass("green-button-disabled")) {
  5307.                     $("#download-button-video-cel").removeClass("green-button-disabled");
  5308.                     $("#download-button-video-cel").addClass("green-button");
  5309.                 }
  5310.                 if ($("#mac-download-button-video-cel").hasClass("mac-red-button-disabled")) {
  5311.                     $("#mac-download-button-video-cel").removeClass("mac-red-button-disabled");
  5312.                     $("#mac-download-button-video-cel").addClass("mac-red-button");
  5313.                 }
  5314.                 if ($("#mac-download-button-video-cel").hasClass("mac-green-button-disabled")) {
  5315.                     $("#mac-download-button-video-cel").removeClass("mac-green-button-disabled");
  5316.                     $("#mac-download-button-video-cel").addClass("mac-green-button");
  5317.                 }
  5318.             },
  5319.             error: function() {
  5320.                 paltalkPlatformDetect.headerButtonLink(self.actionTitle, (self.actionUrl == 'javascript:void(0)') ? self.defaultActionUrl : self.actionUrl, self.gaLabel);
  5321.                 paltalkPlatformDetect.footerLink(self.actionTitle, (self.actionUrl == 'javascript:void(0)') ? self.defaultActionUrl : self.actionUrl, self.gaLabel);
  5322.                 $("#header-download").removeClass("red-button-disabled");
  5323.                 $("#header-download").addClass("red-button");
  5324.                 $("#download-button-video-3col-cel").removeClass("red-button-disabled");
  5325.                 $("#download-button-video-3col-cel").addClass("red-button");
  5326.                 $("#mac-download-button-video-3col-cel").removeClass("mac-red-button-disabled");
  5327.                 $("#mac-download-button-video-3col-cel").addClass("mac-red-button");
  5328.             }
  5329.         });
  5330.     }
  5331.     getCountryCode = function(platformType, isWInXp) {
  5332.         $.ajax({
  5333.             type: 'GET',
  5334.             url: location.protocol + '//www.paltalk.com/api/v1/getcountry',
  5335.             success: function(data) {
  5336.                 console.log(data);
  5337.                 getPathLink(platformType, isWInXp, data.country_code);
  5338.             },
  5339.             error: function() {
  5340.                 getPathLink(platformType, isWInXp, '');
  5341.             }
  5342.         });
  5343.     }
  5344.     $(document).ready(function() {
  5345.         window.paltalkPlatformDetect.init();
  5346.     });
  5347. })(jQuery);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement