/**** /englishfirst/_scripts/jquery/jquery.js ****/
/*!
* jQuery JavaScript Library v1.6.1
* http://jquery.com/
*
* Copyright 2011, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* Includes Sizzle.js
* http://sizzlejs.com/
* Copyright 2011, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses.
*
* Date: Thu May 12 15:04:36 2011 -0400
*/
(function (a, b) {
    function cy(a) { return f.isWindow(a) ? a : a.nodeType === 9 ? a.defaultView || a.parentWindow : !1 } function cv(a) { if (!cj[a]) { var b = f("<" + a + ">").appendTo("body"), d = b.css("display"); b.remove(); if (d === "none" || d === "") { ck || (ck = c.createElement("iframe"), ck.frameBorder = ck.width = ck.height = 0), c.body.appendChild(ck); if (!cl || !ck.createElement) cl = (ck.contentWindow || ck.contentDocument).document, cl.write("<!doctype><html><body></body></html>"); b = cl.createElement(a), cl.body.appendChild(b), d = f.css(b, "display"), c.body.removeChild(ck) } cj[a] = d } return cj[a] } function cu(a, b) { var c = {}; f.each(cp.concat.apply([], cp.slice(0, b)), function () { c[this] = a }); return c } function ct() { cq = b } function cs() { setTimeout(ct, 0); return cq = f.now() } function ci() { try { return new a.ActiveXObject("Microsoft.XMLHTTP") } catch (b) { } } function ch() { try { return new a.XMLHttpRequest } catch (b) { } } function cb(a, c) { a.dataFilter && (c = a.dataFilter(c, a.dataType)); var d = a.dataTypes, e = {}, g, h, i = d.length, j, k = d[0], l, m, n, o, p; for (g = 1; g < i; g++) { if (g === 1) for (h in a.converters) typeof h == "string" && (e[h.toLowerCase()] = a.converters[h]); l = k, k = d[g]; if (k === "*") k = l; else if (l !== "*" && l !== k) { m = l + " " + k, n = e[m] || e["* " + k]; if (!n) { p = b; for (o in e) { j = o.split(" "); if (j[0] === l || j[0] === "*") { p = e[j[1] + " " + k]; if (p) { o = e[o], o === !0 ? n = p : p === !0 && (n = o); break } } } } !n && !p && f.error("No conversion from " + m.replace(" ", " to ")), n !== !0 && (c = n ? n(c) : p(o(c))) } } return c } function ca(a, c, d) { var e = a.contents, f = a.dataTypes, g = a.responseFields, h, i, j, k; for (i in g) i in d && (c[g[i]] = d[i]); while (f[0] === "*") f.shift(), h === b && (h = a.mimeType || c.getResponseHeader("content-type")); if (h) for (i in e) if (e[i] && e[i].test(h)) { f.unshift(i); break } if (f[0] in d) j = f[0]; else { for (i in d) { if (!f[0] || a.converters[i + " " + f[0]]) { j = i; break } k || (k = i) } j = j || k } if (j) { j !== f[0] && f.unshift(j); return d[j] } } function b_(a, b, c, d) { if (f.isArray(b)) f.each(b, function (b, e) { c || bF.test(a) ? d(a, e) : b_(a + "[" + (typeof e == "object" || f.isArray(e) ? b : "") + "]", e, c, d) }); else if (!c && b != null && typeof b == "object") for (var e in b) b_(a + "[" + e + "]", b[e], c, d); else d(a, b) } function b$(a, c, d, e, f, g) { f = f || c.dataTypes[0], g = g || {}, g[f] = !0; var h = a[f], i = 0, j = h ? h.length : 0, k = a === bU, l; for (; i < j && (k || !l); i++) l = h[i](c, d, e), typeof l == "string" && (!k || g[l] ? l = b : (c.dataTypes.unshift(l), l = b$(a, c, d, e, l, g))); (k || !l) && !g["*"] && (l = b$(a, c, d, e, "*", g)); return l } function bZ(a) { return function (b, c) { typeof b != "string" && (c = b, b = "*"); if (f.isFunction(c)) { var d = b.toLowerCase().split(bQ), e = 0, g = d.length, h, i, j; for (; e < g; e++) h = d[e], j = /^\+/.test(h), j && (h = h.substr(1) || "*"), i = a[h] = a[h] || [], i[j ? "unshift" : "push"](c) } } } function bD(a, b, c) { var d = b === "width" ? bx : by, e = b === "width" ? a.offsetWidth : a.offsetHeight; if (c === "border") return e; f.each(d, function () { c || (e -= parseFloat(f.css(a, "padding" + this)) || 0), c === "margin" ? e += parseFloat(f.css(a, "margin" + this)) || 0 : e -= parseFloat(f.css(a, "border" + this + "Width")) || 0 }); return e } function bn(a, b) { b.src ? f.ajax({ url: b.src, async: !1, dataType: "script" }) : f.globalEval((b.text || b.textContent || b.innerHTML || "").replace(bf, "/*$0*/")), b.parentNode && b.parentNode.removeChild(b) } function bm(a) { f.nodeName(a, "input") ? bl(a) : a.getElementsByTagName && f.grep(a.getElementsByTagName("input"), bl) } function bl(a) { if (a.type === "checkbox" || a.type === "radio") a.defaultChecked = a.checked } function bk(a) { return "getElementsByTagName" in a ? a.getElementsByTagName("*") : "querySelectorAll" in a ? a.querySelectorAll("*") : [] } function bj(a, b) { var c; if (b.nodeType === 1) { b.clearAttributes && b.clearAttributes(), b.mergeAttributes && b.mergeAttributes(a), c = b.nodeName.toLowerCase(); if (c === "object") b.outerHTML = a.outerHTML; else if (c !== "input" || a.type !== "checkbox" && a.type !== "radio") { if (c === "option") b.selected = a.defaultSelected; else if (c === "input" || c === "textarea") b.defaultValue = a.defaultValue } else a.checked && (b.defaultChecked = b.checked = a.checked), b.value !== a.value && (b.value = a.value); b.removeAttribute(f.expando) } } function bi(a, b) { if (b.nodeType === 1 && !!f.hasData(a)) { var c = f.expando, d = f.data(a), e = f.data(b, d); if (d = d[c]) { var g = d.events; e = e[c] = f.extend({}, d); if (g) { delete e.handle, e.events = {}; for (var h in g) for (var i = 0, j = g[h].length; i < j; i++) f.event.add(b, h + (g[h][i].namespace ? "." : "") + g[h][i].namespace, g[h][i], g[h][i].data) } } } } function bh(a, b) { return f.nodeName(a, "table") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a } function X(a, b, c) { b = b || 0; if (f.isFunction(b)) return f.grep(a, function (a, d) { var e = !!b.call(a, d, a); return e === c }); if (b.nodeType) return f.grep(a, function (a, d) { return a === b === c }); if (typeof b == "string") { var d = f.grep(a, function (a) { return a.nodeType === 1 }); if (S.test(b)) return f.filter(b, d, !c); b = f.filter(b, d) } return f.grep(a, function (a, d) { return f.inArray(a, b) >= 0 === c }) } function W(a) { return !a || !a.parentNode || a.parentNode.nodeType === 11 } function O(a, b) { return (a && a !== "*" ? a + "." : "") + b.replace(A, "`").replace(B, "&") } function N(a) { var b, c, d, e, g, h, i, j, k, l, m, n, o, p = [], q = [], r = f._data(this, "events"); if (!(a.liveFired === this || !r || !r.live || a.target.disabled || a.button && a.type === "click")) { a.namespace && (n = new RegExp("(^|\\.)" + a.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)")), a.liveFired = this; var s = r.live.slice(0); for (i = 0; i < s.length; i++) g = s[i], g.origType.replace(y, "") === a.type ? q.push(g.selector) : s.splice(i--, 1); e = f(a.target).closest(q, a.currentTarget); for (j = 0, k = e.length; j < k; j++) { m = e[j]; for (i = 0; i < s.length; i++) { g = s[i]; if (m.selector === g.selector && (!n || n.test(g.namespace)) && !m.elem.disabled) { h = m.elem, d = null; if (g.preType === "mouseenter" || g.preType === "mouseleave") a.type = g.preType, d = f(a.relatedTarget).closest(g.selector)[0], d && f.contains(h, d) && (d = h); (!d || d !== h) && p.push({ elem: h, handleObj: g, level: m.level }) } } } for (j = 0, k = p.length; j < k; j++) { e = p[j]; if (c && e.level > c) break; a.currentTarget = e.elem, a.data = e.handleObj.data, a.handleObj = e.handleObj, o = e.handleObj.origHandler.apply(e.elem, arguments); if (o === !1 || a.isPropagationStopped()) { c = e.level, o === !1 && (b = !1); if (a.isImmediatePropagationStopped()) break } } return b } } function L(a, c, d) { var e = f.extend({}, d[0]); e.type = a, e.originalEvent = {}, e.liveFired = b, f.event.handle.call(c, e), e.isDefaultPrevented() && d[0].preventDefault() } function F() { return !0 } function E() { return !1 } function m(a, c, d) { var e = c + "defer", g = c + "queue", h = c + "mark", i = f.data(a, e, b, !0); i && (d === "queue" || !f.data(a, g, b, !0)) && (d === "mark" || !f.data(a, h, b, !0)) && setTimeout(function () { !f.data(a, g, b, !0) && !f.data(a, h, b, !0) && (f.removeData(a, e, !0), i.resolve()) }, 0) } function l(a) { for (var b in a) if (b !== "toJSON") return !1; return !0 } function k(a, c, d) { if (d === b && a.nodeType === 1) { var e = "data-" + c.replace(j, "$1-$2").toLowerCase(); d = a.getAttribute(e); if (typeof d == "string") { try { d = d === "true" ? !0 : d === "false" ? !1 : d === "null" ? null : f.isNaN(d) ? i.test(d) ? f.parseJSON(d) : d : parseFloat(d) } catch (g) { } f.data(a, c, d) } else d = b } return d } var c = a.document, d = a.navigator, e = a.location, f = function () { function H() { if (!e.isReady) { try { c.documentElement.doScroll("left") } catch (a) { setTimeout(H, 1); return } e.ready() } } var e = function (a, b) { return new e.fn.init(a, b, h) }, f = a.jQuery, g = a.$, h, i = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, j = /\S/, k = /^\s+/, l = /\s+$/, m = /\d/, n = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, o = /^[\],:{}\s]*$/, p = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, q = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, r = /(?:^|:|,)(?:\s*\[)+/g, s = /(webkit)[ \/]([\w.]+)/, t = /(opera)(?:.*version)?[ \/]([\w.]+)/, u = /(msie) ([\w.]+)/, v = /(mozilla)(?:.*? rv:([\w.]+))?/, w = d.userAgent, x, y, z, A = Object.prototype.toString, B = Object.prototype.hasOwnProperty, C = Array.prototype.push, D = Array.prototype.slice, E = String.prototype.trim, F = Array.prototype.indexOf, G = {}; e.fn = e.prototype = { constructor: e, init: function (a, d, f) { var g, h, j, k; if (!a) return this; if (a.nodeType) { this.context = this[0] = a, this.length = 1; return this } if (a === "body" && !d && c.body) { this.context = c, this[0] = c.body, this.selector = a, this.length = 1; return this } if (typeof a == "string") { a.charAt(0) !== "<" || a.charAt(a.length - 1) !== ">" || a.length < 3 ? g = i.exec(a) : g = [null, a, null]; if (g && (g[1] || !d)) { if (g[1]) { d = d instanceof e ? d[0] : d, k = d ? d.ownerDocument || d : c, j = n.exec(a), j ? e.isPlainObject(d) ? (a = [c.createElement(j[1])], e.fn.attr.call(a, d, !0)) : a = [k.createElement(j[1])] : (j = e.buildFragment([g[1]], [k]), a = (j.cacheable ? e.clone(j.fragment) : j.fragment).childNodes); return e.merge(this, a) } h = c.getElementById(g[2]); if (h && h.parentNode) { if (h.id !== g[2]) return f.find(a); this.length = 1, this[0] = h } this.context = c, this.selector = a; return this } return !d || d.jquery ? (d || f).find(a) : this.constructor(d).find(a) } if (e.isFunction(a)) return f.ready(a); a.selector !== b && (this.selector = a.selector, this.context = a.context); return e.makeArray(a, this) }, selector: "", jquery: "1.6.1", length: 0, size: function () { return this.length }, toArray: function () { return D.call(this, 0) }, get: function (a) { return a == null ? this.toArray() : a < 0 ? this[this.length + a] : this[a] }, pushStack: function (a, b, c) { var d = this.constructor(); e.isArray(a) ? C.apply(d, a) : e.merge(d, a), d.prevObject = this, d.context = this.context, b === "find" ? d.selector = this.selector + (this.selector ? " " : "") + c : b && (d.selector = this.selector + "." + b + "(" + c + ")"); return d }, each: function (a, b) { return e.each(this, a, b) }, ready: function (a) { e.bindReady(), y.done(a); return this }, eq: function (a) { return a === -1 ? this.slice(a) : this.slice(a, +a + 1) }, first: function () { return this.eq(0) }, last: function () { return this.eq(-1) }, slice: function () { return this.pushStack(D.apply(this, arguments), "slice", D.call(arguments).join(",")) }, map: function (a) { return this.pushStack(e.map(this, function (b, c) { return a.call(b, c, b) })) }, end: function () { return this.prevObject || this.constructor(null) }, push: C, sort: [].sort, splice: [].splice }, e.fn.init.prototype = e.fn, e.extend = e.fn.extend = function () { var a, c, d, f, g, h, i = arguments[0] || {}, j = 1, k = arguments.length, l = !1; typeof i == "boolean" && (l = i, i = arguments[1] || {}, j = 2), typeof i != "object" && !e.isFunction(i) && (i = {}), k === j && (i = this, --j); for (; j < k; j++) if ((a = arguments[j]) != null) for (c in a) { d = i[c], f = a[c]; if (i === f) continue; l && f && (e.isPlainObject(f) || (g = e.isArray(f))) ? (g ? (g = !1, h = d && e.isArray(d) ? d : []) : h = d && e.isPlainObject(d) ? d : {}, i[c] = e.extend(l, h, f)) : f !== b && (i[c] = f) } return i }, e.extend({ noConflict: function (b) { a.$ === e && (a.$ = g), b && a.jQuery === e && (a.jQuery = f); return e }, isReady: !1, readyWait: 1, holdReady: function (a) { a ? e.readyWait++ : e.ready(!0) }, ready: function (a) { if (a === !0 && ! --e.readyWait || a !== !0 && !e.isReady) { if (!c.body) return setTimeout(e.ready, 1); e.isReady = !0; if (a !== !0 && --e.readyWait > 0) return; y.resolveWith(c, [e]), e.fn.trigger && e(c).trigger("ready").unbind("ready") } }, bindReady: function () { if (!y) { y = e._Deferred(); if (c.readyState === "complete") return setTimeout(e.ready, 1); if (c.addEventListener) c.addEventListener("DOMContentLoaded", z, !1), a.addEventListener("load", e.ready, !1); else if (c.attachEvent) { c.attachEvent("onreadystatechange", z), a.attachEvent("onload", e.ready); var b = !1; try { b = a.frameElement == null } catch (d) { } c.documentElement.doScroll && b && H() } } }, isFunction: function (a) { return e.type(a) === "function" }, isArray: Array.isArray || function (a) { return e.type(a) === "array" }, isWindow: function (a) { return a && typeof a == "object" && "setInterval" in a }, isNaN: function (a) { return a == null || !m.test(a) || isNaN(a) }, type: function (a) { return a == null ? String(a) : G[A.call(a)] || "object" }, isPlainObject: function (a) { if (!a || e.type(a) !== "object" || a.nodeType || e.isWindow(a)) return !1; if (a.constructor && !B.call(a, "constructor") && !B.call(a.constructor.prototype, "isPrototypeOf")) return !1; var c; for (c in a); return c === b || B.call(a, c) }, isEmptyObject: function (a) { for (var b in a) return !1; return !0 }, error: function (a) { throw a }, parseJSON: function (b) { if (typeof b != "string" || !b) return null; b = e.trim(b); if (a.JSON && a.JSON.parse) return a.JSON.parse(b); if (o.test(b.replace(p, "@").replace(q, "]").replace(r, ""))) return (new Function("return " + b))(); e.error("Invalid JSON: " + b) }, parseXML: function (b, c, d) { a.DOMParser ? (d = new DOMParser, c = d.parseFromString(b, "text/xml")) : (c = new ActiveXObject("Microsoft.XMLDOM"), c.async = "false", c.loadXML(b)), d = c.documentElement, (!d || !d.nodeName || d.nodeName === "parsererror") && e.error("Invalid XML: " + b); return c }, noop: function () { }, globalEval: function (b) { b && j.test(b) && (a.execScript || function (b) { a.eval.call(a, b) })(b) }, nodeName: function (a, b) { return a.nodeName && a.nodeName.toUpperCase() === b.toUpperCase() }, each: function (a, c, d) { var f, g = 0, h = a.length, i = h === b || e.isFunction(a); if (d) { if (i) { for (f in a) if (c.apply(a[f], d) === !1) break } else for (; g < h; ) if (c.apply(a[g++], d) === !1) break } else if (i) { for (f in a) if (c.call(a[f], f, a[f]) === !1) break } else for (; g < h; ) if (c.call(a[g], g, a[g++]) === !1) break; return a }, trim: E ? function (a) { return a == null ? "" : E.call(a) } : function (a) { return a == null ? "" : (a + "").replace(k, "").replace(l, "") }, makeArray: function (a, b) { var c = b || []; if (a != null) { var d = e.type(a); a.length == null || d === "string" || d === "function" || d === "regexp" || e.isWindow(a) ? C.call(c, a) : e.merge(c, a) } return c }, inArray: function (a, b) { if (F) return F.call(b, a); for (var c = 0, d = b.length; c < d; c++) if (b[c] === a) return c; return -1 }, merge: function (a, c) { var d = a.length, e = 0; if (typeof c.length == "number") for (var f = c.length; e < f; e++) a[d++] = c[e]; else while (c[e] !== b) a[d++] = c[e++]; a.length = d; return a }, grep: function (a, b, c) { var d = [], e; c = !!c; for (var f = 0, g = a.length; f < g; f++) e = !!b(a[f], f), c !== e && d.push(a[f]); return d }, map: function (a, c, d) { var f, g, h = [], i = 0, j = a.length, k = a instanceof e || j !== b && typeof j == "number" && (j > 0 && a[0] && a[j - 1] || j === 0 || e.isArray(a)); if (k) for (; i < j; i++) f = c(a[i], i, d), f != null && (h[h.length] = f); else for (g in a) f = c(a[g], g, d), f != null && (h[h.length] = f); return h.concat.apply([], h) }, guid: 1, proxy: function (a, c) { if (typeof c == "string") { var d = a[c]; c = a, a = d } if (!e.isFunction(a)) return b; var f = D.call(arguments, 2), g = function () { return a.apply(c, f.concat(D.call(arguments))) }; g.guid = a.guid = a.guid || g.guid || e.guid++; return g }, access: function (a, c, d, f, g, h) { var i = a.length; if (typeof c == "object") { for (var j in c) e.access(a, j, c[j], f, g, d); return a } if (d !== b) { f = !h && f && e.isFunction(d); for (var k = 0; k < i; k++) g(a[k], c, f ? d.call(a[k], k, g(a[k], c)) : d, h); return a } return i ? g(a[0], c) : b }, now: function () { return (new Date).getTime() }, uaMatch: function (a) { a = a.toLowerCase(); var b = s.exec(a) || t.exec(a) || u.exec(a) || a.indexOf("compatible") < 0 && v.exec(a) || []; return { browser: b[1] || "", version: b[2] || "0"} }, sub: function () { function a(b, c) { return new a.fn.init(b, c) } e.extend(!0, a, this), a.superclass = this, a.fn = a.prototype = this(), a.fn.constructor = a, a.sub = this.sub, a.fn.init = function (d, f) { f && f instanceof e && !(f instanceof a) && (f = a(f)); return e.fn.init.call(this, d, f, b) }, a.fn.init.prototype = a.fn; var b = a(c); return a }, browser: {} }), e.each("Boolean Number String Function Array Date RegExp Object".split(" "), function (a, b) { G["[object " + b + "]"] = b.toLowerCase() }), x = e.uaMatch(w), x.browser && (e.browser[x.browser] = !0, e.browser.version = x.version), e.browser.webkit && (e.browser.safari = !0), j.test(" ") && (k = /^[\s\xA0]+/, l = /[\s\xA0]+$/), h = e(c), c.addEventListener ? z = function () { c.removeEventListener("DOMContentLoaded", z, !1), e.ready() } : c.attachEvent && (z = function () { c.readyState === "complete" && (c.detachEvent("onreadystatechange", z), e.ready()) }); return e } (), g = "done fail isResolved isRejected promise then always pipe".split(" "), h = [].slice; f.extend({ _Deferred: function () { var a = [], b, c, d, e = { done: function () { if (!d) { var c = arguments, g, h, i, j, k; b && (k = b, b = 0); for (g = 0, h = c.length; g < h; g++) i = c[g], j = f.type(i), j === "array" ? e.done.apply(e, i) : j === "function" && a.push(i); k && e.resolveWith(k[0], k[1]) } return this }, resolveWith: function (e, f) { if (!d && !b && !c) { f = f || [], c = 1; try { while (a[0]) a.shift().apply(e, f) } finally { b = [e, f], c = 0 } } return this }, resolve: function () { e.resolveWith(this, arguments); return this }, isResolved: function () { return !!c || !!b }, cancel: function () { d = 1, a = []; return this } }; return e }, Deferred: function (a) { var b = f._Deferred(), c = f._Deferred(), d; f.extend(b, { then: function (a, c) { b.done(a).fail(c); return this }, always: function () { return b.done.apply(b, arguments).fail.apply(this, arguments) }, fail: c.done, rejectWith: c.resolveWith, reject: c.resolve, isRejected: c.isResolved, pipe: function (a, c) { return f.Deferred(function (d) { f.each({ done: [a, "resolve"], fail: [c, "reject"] }, function (a, c) { var e = c[0], g = c[1], h; f.isFunction(e) ? b[a](function () { h = e.apply(this, arguments), h && f.isFunction(h.promise) ? h.promise().then(d.resolve, d.reject) : d[g](h) }) : b[a](d[g]) }) }).promise() }, promise: function (a) { if (a == null) { if (d) return d; d = a = {} } var c = g.length; while (c--) a[g[c]] = b[g[c]]; return a } }), b.done(c.cancel).fail(b.cancel), delete b.cancel, a && a.call(b, b); return b }, when: function (a) { function i(a) { return function (c) { b[a] = arguments.length > 1 ? h.call(arguments, 0) : c, --e || g.resolveWith(g, h.call(b, 0)) } } var b = arguments, c = 0, d = b.length, e = d, g = d <= 1 && a && f.isFunction(a.promise) ? a : f.Deferred(); if (d > 1) { for (; c < d; c++) b[c] && f.isFunction(b[c].promise) ? b[c].promise().then(i(c), g.reject) : --e; e || g.resolveWith(g, b) } else g !== a && g.resolveWith(g, d ? [a] : []); return g.promise() } }), f.support = function () { var a = c.createElement("div"), b = c.documentElement, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r; a.setAttribute("className", "t"), a.innerHTML = "   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>", d = a.getElementsByTagName("*"), e = a.getElementsByTagName("a")[0]; if (!d || !d.length || !e) return {}; f = c.createElement("select"), g = f.appendChild(c.createElement("option")), h = a.getElementsByTagName("input")[0], j = { leadingWhitespace: a.firstChild.nodeType === 3, tbody: !a.getElementsByTagName("tbody").length, htmlSerialize: !!a.getElementsByTagName("link").length, style: /top/.test(e.getAttribute("style")), hrefNormalized: e.getAttribute("href") === "/a", opacity: /^0.55$/.test(e.style.opacity), cssFloat: !!e.style.cssFloat, checkOn: h.value === "on", optSelected: g.selected, getSetAttribute: a.className !== "t", submitBubbles: !0, changeBubbles: !0, focusinBubbles: !1, deleteExpando: !0, noCloneEvent: !0, inlineBlockNeedsLayout: !1, shrinkWrapBlocks: !1, reliableMarginRight: !0 }, h.checked = !0, j.noCloneChecked = h.cloneNode(!0).checked, f.disabled = !0, j.optDisabled = !g.disabled; try { delete a.test } catch (s) { j.deleteExpando = !1 } !a.addEventListener && a.attachEvent && a.fireEvent && (a.attachEvent("onclick", function b() { j.noCloneEvent = !1, a.detachEvent("onclick", b) }), a.cloneNode(!0).fireEvent("onclick")), h = c.createElement("input"), h.value = "t", h.setAttribute("type", "radio"), j.radioValue = h.value === "t", h.setAttribute("checked", "checked"), a.appendChild(h), k = c.createDocumentFragment(), k.appendChild(a.firstChild), j.checkClone = k.cloneNode(!0).cloneNode(!0).lastChild.checked, a.innerHTML = "", a.style.width = a.style.paddingLeft = "1px", l = c.createElement("body"), m = { visibility: "hidden", width: 0, height: 0, border: 0, margin: 0, background: "none" }; for (q in m) l.style[q] = m[q]; l.appendChild(a), b.insertBefore(l, b.firstChild), j.appendChecked = h.checked, j.boxModel = a.offsetWidth === 2, "zoom" in a.style && (a.style.display = "inline", a.style.zoom = 1, j.inlineBlockNeedsLayout = a.offsetWidth === 2, a.style.display = "", a.innerHTML = "<div style='width:4px;'></div>", j.shrinkWrapBlocks = a.offsetWidth !== 2), a.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>", n = a.getElementsByTagName("td"), r = n[0].offsetHeight === 0, n[0].style.display = "", n[1].style.display = "none", j.reliableHiddenOffsets = r && n[0].offsetHeight === 0, a.innerHTML = "", c.defaultView && c.defaultView.getComputedStyle && (i = c.createElement("div"), i.style.width = "0", i.style.marginRight = "0", a.appendChild(i), j.reliableMarginRight = (parseInt((c.defaultView.getComputedStyle(i, null) || { marginRight: 0 }).marginRight, 10) || 0) === 0), l.innerHTML = "", b.removeChild(l); if (a.attachEvent) for (q in { submit: 1, change: 1, focusin: 1 }) p = "on" + q, r = p in a, r || (a.setAttribute(p, "return;"), r = typeof a[p] == "function"), j[q + "Bubbles"] = r; return j } (), f.boxModel = f.support.boxModel; var i = /^(?:\{.*\}|\[.*\])$/, j = /([a-z])([A-Z])/g; f.extend({ cache: {}, uuid: 0, expando: "jQuery" + (f.fn.jquery + Math.random()).replace(/\D/g, ""), noData: { embed: !0, object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", applet: !0 }, hasData: function (a) { a = a.nodeType ? f.cache[a[f.expando]] : a[f.expando]; return !!a && !l(a) }, data: function (a, c, d, e) { if (!!f.acceptData(a)) { var g = f.expando, h = typeof c == "string", i, j = a.nodeType, k = j ? f.cache : a, l = j ? a[f.expando] : a[f.expando] && f.expando; if ((!l || e && l && !k[l][g]) && h && d === b) return; l || (j ? a[f.expando] = l = ++f.uuid : l = f.expando), k[l] || (k[l] = {}, j || (k[l].toJSON = f.noop)); if (typeof c == "object" || typeof c == "function") e ? k[l][g] = f.extend(k[l][g], c) : k[l] = f.extend(k[l], c); i = k[l], e && (i[g] || (i[g] = {}), i = i[g]), d !== b && (i[f.camelCase(c)] = d); if (c === "events" && !i[c]) return i[g] && i[g].events; return h ? i[f.camelCase(c)] : i } }, removeData: function (b, c, d) { if (!!f.acceptData(b)) { var e = f.expando, g = b.nodeType, h = g ? f.cache : b, i = g ? b[f.expando] : f.expando; if (!h[i]) return; if (c) { var j = d ? h[i][e] : h[i]; if (j) { delete j[c]; if (!l(j)) return } } if (d) { delete h[i][e]; if (!l(h[i])) return } var k = h[i][e]; f.support.deleteExpando || h != a ? delete h[i] : h[i] = null, k ? (h[i] = {}, g || (h[i].toJSON = f.noop), h[i][e] = k) : g && (f.support.deleteExpando ? delete b[f.expando] : b.removeAttribute ? b.removeAttribute(f.expando) : b[f.expando] = null) } }, _data: function (a, b, c) { return f.data(a, b, c, !0) }, acceptData: function (a) { if (a.nodeName) { var b = f.noData[a.nodeName.toLowerCase()]; if (b) return b !== !0 && a.getAttribute("classid") === b } return !0 } }), f.fn.extend({ data: function (a, c) { var d = null; if (typeof a == "undefined") { if (this.length) { d = f.data(this[0]); if (this[0].nodeType === 1) { var e = this[0].attributes, g; for (var h = 0, i = e.length; h < i; h++) g = e[h].name, g.indexOf("data-") === 0 && (g = f.camelCase(g.substring(5)), k(this[0], g, d[g])) } } return d } if (typeof a == "object") return this.each(function () { f.data(this, a) }); var j = a.split("."); j[1] = j[1] ? "." + j[1] : ""; if (c === b) { d = this.triggerHandler("getData" + j[1] + "!", [j[0]]), d === b && this.length && (d = f.data(this[0], a), d = k(this[0], a, d)); return d === b && j[1] ? this.data(j[0]) : d } return this.each(function () { var b = f(this), d = [j[0], c]; b.triggerHandler("setData" + j[1] + "!", d), f.data(this, a, c), b.triggerHandler("changeData" + j[1] + "!", d) }) }, removeData: function (a) { return this.each(function () { f.removeData(this, a) }) } }), f.extend({ _mark: function (a, c) { a && (c = (c || "fx") + "mark", f.data(a, c, (f.data(a, c, b, !0) || 0) + 1, !0)) }, _unmark: function (a, c, d) { a !== !0 && (d = c, c = a, a = !1); if (c) { d = d || "fx"; var e = d + "mark", g = a ? 0 : (f.data(c, e, b, !0) || 1) - 1; g ? f.data(c, e, g, !0) : (f.removeData(c, e, !0), m(c, d, "mark")) } }, queue: function (a, c, d) { if (a) { c = (c || "fx") + "queue"; var e = f.data(a, c, b, !0); d && (!e || f.isArray(d) ? e = f.data(a, c, f.makeArray(d), !0) : e.push(d)); return e || [] } }, dequeue: function (a, b) { b = b || "fx"; var c = f.queue(a, b), d = c.shift(), e; d === "inprogress" && (d = c.shift()), d && (b === "fx" && c.unshift("inprogress"), d.call(a, function () { f.dequeue(a, b) })), c.length || (f.removeData(a, b + "queue", !0), m(a, b, "queue")) } }), f.fn.extend({ queue: function (a, c) { typeof a != "string" && (c = a, a = "fx"); if (c === b) return f.queue(this[0], a); return this.each(function () { var b = f.queue(this, a, c); a === "fx" && b[0] !== "inprogress" && f.dequeue(this, a) }) }, dequeue: function (a) { return this.each(function () { f.dequeue(this, a) }) }, delay: function (a, b) { a = f.fx ? f.fx.speeds[a] || a : a, b = b || "fx"; return this.queue(b, function () { var c = this; setTimeout(function () { f.dequeue(c, b) }, a) }) }, clearQueue: function (a) { return this.queue(a || "fx", []) }, promise: function (a, c) { function m() { --h || d.resolveWith(e, [e]) } typeof a != "string" && (c = a, a = b), a = a || "fx"; var d = f.Deferred(), e = this, g = e.length, h = 1, i = a + "defer", j = a + "queue", k = a + "mark", l; while (g--) if (l = f.data(e[g], i, b, !0) || (f.data(e[g], j, b, !0) || f.data(e[g], k, b, !0)) && f.data(e[g], i, f._Deferred(), !0)) h++, l.done(m); m(); return d.promise() } }); var n = /[\n\t\r]/g, o = /\s+/, p = /\r/g, q = /^(?:button|input)$/i, r = /^(?:button|input|object|select|textarea)$/i, s = /^a(?:rea)?$/i, t = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, u = /\:/, v, w; f.fn.extend({ attr: function (a, b) { return f.access(this, a, b, !0, f.attr) }, removeAttr: function (a) { return this.each(function () { f.removeAttr(this, a) }) }, prop: function (a, b) { return f.access(this, a, b, !0, f.prop) }, removeProp: function (a) { a = f.propFix[a] || a; return this.each(function () { try { this[a] = b, delete this[a] } catch (c) { } }) }, addClass: function (a) { if (f.isFunction(a)) return this.each(function (b) { var c = f(this); c.addClass(a.call(this, b, c.attr("class") || "")) }); if (a && typeof a == "string") { var b = (a || "").split(o); for (var c = 0, d = this.length; c < d; c++) { var e = this[c]; if (e.nodeType === 1) if (!e.className) e.className = a; else { var g = " " + e.className + " ", h = e.className; for (var i = 0, j = b.length; i < j; i++) g.indexOf(" " + b[i] + " ") < 0 && (h += " " + b[i]); e.className = f.trim(h) } } } return this }, removeClass: function (a) { if (f.isFunction(a)) return this.each(function (b) { var c = f(this); c.removeClass(a.call(this, b, c.attr("class"))) }); if (a && typeof a == "string" || a === b) { var c = (a || "").split(o); for (var d = 0, e = this.length; d < e; d++) { var g = this[d]; if (g.nodeType === 1 && g.className) if (a) { var h = (" " + g.className + " ").replace(n, " "); for (var i = 0, j = c.length; i < j; i++) h = h.replace(" " + c[i] + " ", " "); g.className = f.trim(h) } else g.className = "" } } return this }, toggleClass: function (a, b) { var c = typeof a, d = typeof b == "boolean"; if (f.isFunction(a)) return this.each(function (c) { var d = f(this); d.toggleClass(a.call(this, c, d.attr("class"), b), b) }); return this.each(function () { if (c === "string") { var e, g = 0, h = f(this), i = b, j = a.split(o); while (e = j[g++]) i = d ? i : !h.hasClass(e), h[i ? "addClass" : "removeClass"](e) } else if (c === "undefined" || c === "boolean") this.className && f._data(this, "__className__", this.className), this.className = this.className || a === !1 ? "" : f._data(this, "__className__") || "" }) }, hasClass: function (a) { var b = " " + a + " "; for (var c = 0, d = this.length; c < d; c++) if ((" " + this[c].className + " ").replace(n, " ").indexOf(b) > -1) return !0; return !1 }, val: function (a) { var c, d, e = this[0]; if (!arguments.length) { if (e) { c = f.valHooks[e.nodeName.toLowerCase()] || f.valHooks[e.type]; if (c && "get" in c && (d = c.get(e, "value")) !== b) return d; return (e.value || "").replace(p, "") } return b } var g = f.isFunction(a); return this.each(function (d) { var e = f(this), h; if (this.nodeType === 1) { g ? h = a.call(this, d, e.val()) : h = a, h == null ? h = "" : typeof h == "number" ? h += "" : f.isArray(h) && (h = f.map(h, function (a) { return a == null ? "" : a + "" })), c = f.valHooks[this.nodeName.toLowerCase()] || f.valHooks[this.type]; if (!c || !("set" in c) || c.set(this, h, "value") === b) this.value = h } }) } }), f.extend({ valHooks: { option: { get: function (a) { var b = a.attributes.value; return !b || b.specified ? a.value : a.text } }, select: { get: function (a) { var b, c = a.selectedIndex, d = [], e = a.options, g = a.type === "select-one"; if (c < 0) return null; for (var h = g ? c : 0, i = g ? c + 1 : e.length; h < i; h++) { var j = e[h]; if (j.selected && (f.support.optDisabled ? !j.disabled : j.getAttribute("disabled") === null) && (!j.parentNode.disabled || !f.nodeName(j.parentNode, "optgroup"))) { b = f(j).val(); if (g) return b; d.push(b) } } if (g && !d.length && e.length) return f(e[c]).val(); return d }, set: function (a, b) { var c = f.makeArray(b); f(a).find("option").each(function () { this.selected = f.inArray(f(this).val(), c) >= 0 }), c.length || (a.selectedIndex = -1); return c } } }, attrFn: { val: !0, css: !0, html: !0, text: !0, data: !0, width: !0, height: !0, offset: !0 }, attrFix: { tabindex: "tabIndex" }, attr: function (a, c, d, e) { var g = a.nodeType; if (!a || g === 3 || g === 8 || g === 2) return b; if (e && c in f.attrFn) return f(a)[c](d); if (!("getAttribute" in a)) return f.prop(a, c, d); var h, i, j = g !== 1 || !f.isXMLDoc(a); c = j && f.attrFix[c] || c, i = f.attrHooks[c], i || (!t.test(c) || typeof d != "boolean" && d !== b && d.toLowerCase() !== c.toLowerCase() ? v && (f.nodeName(a, "form") || u.test(c)) && (i = v) : i = w); if (d !== b) { if (d === null) { f.removeAttr(a, c); return b } if (i && "set" in i && j && (h = i.set(a, d, c)) !== b) return h; a.setAttribute(c, "" + d); return d } if (i && "get" in i && j) return i.get(a, c); h = a.getAttribute(c); return h === null ? b : h }, removeAttr: function (a, b) { var c; a.nodeType === 1 && (b = f.attrFix[b] || b, f.support.getSetAttribute ? a.removeAttribute(b) : (f.attr(a, b, ""), a.removeAttributeNode(a.getAttributeNode(b))), t.test(b) && (c = f.propFix[b] || b) in a && (a[c] = !1)) }, attrHooks: { type: { set: function (a, b) { if (q.test(a.nodeName) && a.parentNode) f.error("type property can't be changed"); else if (!f.support.radioValue && b === "radio" && f.nodeName(a, "input")) { var c = a.value; a.setAttribute("type", b), c && (a.value = c); return b } } }, tabIndex: { get: function (a) { var c = a.getAttributeNode("tabIndex"); return c && c.specified ? parseInt(c.value, 10) : r.test(a.nodeName) || s.test(a.nodeName) && a.href ? 0 : b } } }, propFix: { tabindex: "tabIndex", readonly: "readOnly", "for": "htmlFor", "class": "className", maxlength: "maxLength", cellspacing: "cellSpacing", cellpadding: "cellPadding", rowspan: "rowSpan", colspan: "colSpan", usemap: "useMap", frameborder: "frameBorder", contenteditable: "contentEditable" }, prop: function (a, c, d) { var e = a.nodeType; if (!a || e === 3 || e === 8 || e === 2) return b; var g, h, i = e !== 1 || !f.isXMLDoc(a); c = i && f.propFix[c] || c, h = f.propHooks[c]; return d !== b ? h && "set" in h && (g = h.set(a, d, c)) !== b ? g : a[c] = d : h && "get" in h && (g = h.get(a, c)) !== b ? g : a[c] }, propHooks: {} }), w = { get: function (a, c) { return a[f.propFix[c] || c] ? c.toLowerCase() : b }, set: function (a, b, c) { var d; b === !1 ? f.removeAttr(a, c) : (d = f.propFix[c] || c, d in a && (a[d] = b), a.setAttribute(c, c.toLowerCase())); return c } }, f.attrHooks.value = { get: function (a, b) { if (v && f.nodeName(a, "button")) return v.get(a, b); return a.value }, set: function (a, b, c) { if (v && f.nodeName(a, "button")) return v.set(a, b, c); a.value = b } }, f.support.getSetAttribute || (f.attrFix = f.propFix, v = f.attrHooks.name = f.valHooks.button = { get: function (a, c) { var d; d = a.getAttributeNode(c); return d && d.nodeValue !== "" ? d.nodeValue : b }, set: function (a, b, c) { var d = a.getAttributeNode(c); if (d) { d.nodeValue = b; return b } } }, f.each(["width", "height"], function (a, b) { f.attrHooks[b] = f.extend(f.attrHooks[b], { set: function (a, c) { if (c === "") { a.setAttribute(b, "auto"); return c } } }) })), f.support.hrefNormalized || f.each(["href", "src", "width", "height"], function (a, c) { f.attrHooks[c] = f.extend(f.attrHooks[c], { get: function (a) { var d = a.getAttribute(c, 2); return d === null ? b : d } }) }), f.support.style || (f.attrHooks.style = { get: function (a) { return a.style.cssText.toLowerCase() || b }, set: function (a, b) { return a.style.cssText = "" + b } }), f.support.optSelected || (f.propHooks.selected = f.extend(f.propHooks.selected, { get: function (a) { var b = a.parentNode; b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex) } })), f.support.checkOn || f.each(["radio", "checkbox"], function () { f.valHooks[this] = { get: function (a) { return a.getAttribute("value") === null ? "on" : a.value } } }), f.each(["radio", "checkbox"], function () { f.valHooks[this] = f.extend(f.valHooks[this], { set: function (a, b) { if (f.isArray(b)) return a.checked = f.inArray(f(a).val(), b) >= 0 } }) }); var x = Object.prototype.hasOwnProperty, y = /\.(.*)$/, z = /^(?:textarea|input|select)$/i, A = /\./g, B = / /g, C = /[^\w\s.|`]/g, D = function (a) { return a.replace(C, "\\$&") }; f.event = { add: function (a, c, d, e) { if (a.nodeType !== 3 && a.nodeType !== 8) { if (d === !1) d = E; else if (!d) return; var g, h; d.handler && (g = d, d = g.handler), d.guid || (d.guid = f.guid++); var i = f._data(a); if (!i) return; var j = i.events, k = i.handle; j || (i.events = j = {}), k || (i.handle = k = function (a) { return typeof f != "undefined" && (!a || f.event.triggered !== a.type) ? f.event.handle.apply(k.elem, arguments) : b }), k.elem = a, c = c.split(" "); var l, m = 0, n; while (l = c[m++]) { h = g ? f.extend({}, g) : { handler: d, data: e }, l.indexOf(".") > -1 ? (n = l.split("."), l = n.shift(), h.namespace = n.slice(0).sort().join(".")) : (n = [], h.namespace = ""), h.type = l, h.guid || (h.guid = d.guid); var o = j[l], p = f.event.special[l] || {}; if (!o) { o = j[l] = []; if (!p.setup || p.setup.call(a, e, n, k) === !1) a.addEventListener ? a.addEventListener(l, k, !1) : a.attachEvent && a.attachEvent("on" + l, k) } p.add && (p.add.call(a, h), h.handler.guid || (h.handler.guid = d.guid)), o.push(h), f.event.global[l] = !0 } a = null } }, global: {}, remove: function (a, c, d, e) { if (a.nodeType !== 3 && a.nodeType !== 8) { d === !1 && (d = E); var g, h, i, j, k = 0, l, m, n, o, p, q, r, s = f.hasData(a) && f._data(a), t = s && s.events; if (!s || !t) return; c && c.type && (d = c.handler, c = c.type); if (!c || typeof c == "string" && c.charAt(0) === ".") { c = c || ""; for (h in t) f.event.remove(a, h + c); return } c = c.split(" "); while (h = c[k++]) { r = h, q = null, l = h.indexOf(".") < 0, m = [], l || (m = h.split("."), h = m.shift(), n = new RegExp("(^|\\.)" + f.map(m.slice(0).sort(), D).join("\\.(?:.*\\.)?") + "(\\.|$)")), p = t[h]; if (!p) continue; if (!d) { for (j = 0; j < p.length; j++) { q = p[j]; if (l || n.test(q.namespace)) f.event.remove(a, r, q.handler, j), p.splice(j--, 1) } continue } o = f.event.special[h] || {}; for (j = e || 0; j < p.length; j++) { q = p[j]; if (d.guid === q.guid) { if (l || n.test(q.namespace)) e == null && p.splice(j--, 1), o.remove && o.remove.call(a, q); if (e != null) break } } if (p.length === 0 || e != null && p.length === 1) (!o.teardown || o.teardown.call(a, m) === !1) && f.removeEvent(a, h, s.handle), g = null, delete t[h] } if (f.isEmptyObject(t)) { var u = s.handle; u && (u.elem = null), delete s.events, delete s.handle, f.isEmptyObject(s) && f.removeData(a, b, !0) } } }, customEvent: { getData: !0, setData: !0, changeData: !0 }, trigger: function (c, d, e, g) {
        var h = c.type || c, i = [], j; h.indexOf("!") >= 0 && (h = h.slice(0, -1), j = !0), h.indexOf(".") >= 0 && (i = h.split("."), h = i.shift(), i.sort()); if (!!e && !f.event.customEvent[h] || !!f.event.global[h]) {
            c = typeof c == "object" ? c[f.expando] ? c : new f.Event(h, c) : new f.Event(h), c.type = h, c.exclusive = j, c.namespace = i.join("."), c.namespace_re = new RegExp("(^|\\.)" + i.join("\\.(?:.*\\.)?") + "(\\.|$)"); if (g || !e) c.preventDefault(), c.stopPropagation(); if (!e) {
                f.each(f.cache, function () {
                    var a = f.expando, b = this[a]; b && b.events && b.events[h] && f.event.trigger(c, d, b.handle.elem
)
                }); return
            } if (e.nodeType === 3 || e.nodeType === 8) return; c.result = b, c.target = e, d = d ? f.makeArray(d) : [], d.unshift(c); var k = e, l = h.indexOf(":") < 0 ? "on" + h : ""; do { var m = f._data(k, "handle"); c.currentTarget = k, m && m.apply(k, d), l && f.acceptData(k) && k[l] && k[l].apply(k, d) === !1 && (c.result = !1, c.preventDefault()), k = k.parentNode || k.ownerDocument || k === c.target.ownerDocument && a } while (k && !c.isPropagationStopped()); if (!c.isDefaultPrevented()) { var n, o = f.event.special[h] || {}; if ((!o._default || o._default.call(e.ownerDocument, c) === !1) && (h !== "click" || !f.nodeName(e, "a")) && f.acceptData(e)) { try { l && e[h] && (n = e[l], n && (e[l] = null), f.event.triggered = h, e[h]()) } catch (p) { } n && (e[l] = n), f.event.triggered = b } } return c.result
        } 
    }, handle: function (c) { c = f.event.fix(c || a.event); var d = ((f._data(this, "events") || {})[c.type] || []).slice(0), e = !c.exclusive && !c.namespace, g = Array.prototype.slice.call(arguments, 0); g[0] = c, c.currentTarget = this; for (var h = 0, i = d.length; h < i; h++) { var j = d[h]; if (e || c.namespace_re.test(j.namespace)) { c.handler = j.handler, c.data = j.data, c.handleObj = j; var k = j.handler.apply(this, g); k !== b && (c.result = k, k === !1 && (c.preventDefault(), c.stopPropagation())); if (c.isImmediatePropagationStopped()) break } } return c.result }, props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), fix: function (a) { if (a[f.expando]) return a; var d = a; a = f.Event(d); for (var e = this.props.length, g; e; ) g = this.props[--e], a[g] = d[g]; a.target || (a.target = a.srcElement || c), a.target.nodeType === 3 && (a.target = a.target.parentNode), !a.relatedTarget && a.fromElement && (a.relatedTarget = a.fromElement === a.target ? a.toElement : a.fromElement); if (a.pageX == null && a.clientX != null) { var h = a.target.ownerDocument || c, i = h.documentElement, j = h.body; a.pageX = a.clientX + (i && i.scrollLeft || j && j.scrollLeft || 0) - (i && i.clientLeft || j && j.clientLeft || 0), a.pageY = a.clientY + (i && i.scrollTop || j && j.scrollTop || 0) - (i && i.clientTop || j && j.clientTop || 0) } a.which == null && (a.charCode != null || a.keyCode != null) && (a.which = a.charCode != null ? a.charCode : a.keyCode), !a.metaKey && a.ctrlKey && (a.metaKey = a.ctrlKey), !a.which && a.button !== b && (a.which = a.button & 1 ? 1 : a.button & 2 ? 3 : a.button & 4 ? 2 : 0); return a }, guid: 1e8, proxy: f.proxy, special: { ready: { setup: f.bindReady, teardown: f.noop }, live: { add: function (a) { f.event.add(this, O(a.origType, a.selector), f.extend({}, a, { handler: N, guid: a.handler.guid })) }, remove: function (a) { f.event.remove(this, O(a.origType, a.selector), a) } }, beforeunload: { setup: function (a, b, c) { f.isWindow(this) && (this.onbeforeunload = c) }, teardown: function (a, b) { this.onbeforeunload === b && (this.onbeforeunload = null) } }}
    }, f.removeEvent = c.removeEventListener ? function (a, b, c) { a.removeEventListener && a.removeEventListener(b, c, !1) } : function (a, b, c) { a.detachEvent && a.detachEvent("on" + b, c) }, f.Event = function (a, b) { if (!this.preventDefault) return new f.Event(a, b); a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || a.returnValue === !1 || a.getPreventDefault && a.getPreventDefault() ? F : E) : this.type = a, b && f.extend(this, b), this.timeStamp = f.now(), this[f.expando] = !0 }, f.Event.prototype = { preventDefault: function () { this.isDefaultPrevented = F; var a = this.originalEvent; !a || (a.preventDefault ? a.preventDefault() : a.returnValue = !1) }, stopPropagation: function () { this.isPropagationStopped = F; var a = this.originalEvent; !a || (a.stopPropagation && a.stopPropagation(), a.cancelBubble = !0) }, stopImmediatePropagation: function () { this.isImmediatePropagationStopped = F, this.stopPropagation() }, isDefaultPrevented: E, isPropagationStopped: E, isImmediatePropagationStopped: E }; var G = function (a) { var b = a.relatedTarget; a.type = a.data; try { if (b && b !== c && !b.parentNode) return; while (b && b !== this) b = b.parentNode; b !== this && f.event.handle.apply(this, arguments) } catch (d) { } }, H = function (a) { a.type = a.data, f.event.handle.apply(this, arguments) }; f.each({ mouseenter: "mouseover", mouseleave: "mouseout" }, function (a, b) { f.event.special[a] = { setup: function (c) { f.event.add(this, b, c && c.selector ? H : G, a) }, teardown: function (a) { f.event.remove(this, b, a && a.selector ? H : G) } } }), f.support.submitBubbles || (f.event.special.submit = { setup: function (a, b) { if (!f.nodeName(this, "form")) f.event.add(this, "click.specialSubmit", function (a) { var b = a.target, c = b.type; (c === "submit" || c === "image") && f(b).closest("form").length && L("submit", this, arguments) }), f.event.add(this, "keypress.specialSubmit", function (a) { var b = a.target, c = b.type; (c === "text" || c === "password") && f(b).closest("form").length && a.keyCode === 13 && L("submit", this, arguments) }); else return !1 }, teardown: function (a) { f.event.remove(this, ".specialSubmit") } }); if (!f.support.changeBubbles) { var I, J = function (a) { var b = a.type, c = a.value; b === "radio" || b === "checkbox" ? c = a.checked : b === "select-multiple" ? c = a.selectedIndex > -1 ? f.map(a.options, function (a) { return a.selected }).join("-") : "" : f.nodeName(a, "select") && (c = a.selectedIndex); return c }, K = function (c) { var d = c.target, e, g; if (!!z.test(d.nodeName) && !d.readOnly) { e = f._data(d, "_change_data"), g = J(d), (c.type !== "focusout" || d.type !== "radio") && f._data(d, "_change_data", g); if (e === b || g === e) return; if (e != null || g) c.type = "change", c.liveFired = b, f.event.trigger(c, arguments[1], d) } }; f.event.special.change = { filters: { focusout: K, beforedeactivate: K, click: function (a) { var b = a.target, c = f.nodeName(b, "input") ? b.type : ""; (c === "radio" || c === "checkbox" || f.nodeName(b, "select")) && K.call(this, a) }, keydown: function (a) { var b = a.target, c = f.nodeName(b, "input") ? b.type : ""; (a.keyCode === 13 && !f.nodeName(b, "textarea") || a.keyCode === 32 && (c === "checkbox" || c === "radio") || c === "select-multiple") && K.call(this, a) }, beforeactivate: function (a) { var b = a.target; f._data(b, "_change_data", J(b)) } }, setup: function (a, b) { if (this.type === "file") return !1; for (var c in I) f.event.add(this, c + ".specialChange", I[c]); return z.test(this.nodeName) }, teardown: function (a) { f.event.remove(this, ".specialChange"); return z.test(this.nodeName) } }, I = f.event.special.change.filters, I.focus = I.beforeactivate } f.support.focusinBubbles || f.each({ focus: "focusin", blur: "focusout" }, function (a, b) { function e(a) { var c = f.event.fix(a); c.type = b, c.originalEvent = {}, f.event.trigger(c, null, c.target), c.isDefaultPrevented() && a.preventDefault() } var d = 0; f.event.special[b] = { setup: function () { d++ === 0 && c.addEventListener(a, e, !0) }, teardown: function () { --d === 0 && c.removeEventListener(a, e, !0) } } }), f.each(["bind", "one"], function (a, c) { f.fn[c] = function (a, d, e) { var g; if (typeof a == "object") { for (var h in a) this[c](h, d, a[h], e); return this } if (arguments.length === 2 || d === !1) e = d, d = b; c === "one" ? (g = function (a) { f(this).unbind(a, g); return e.apply(this, arguments) }, g.guid = e.guid || f.guid++) : g = e; if (a === "unload" && c !== "one") this.one(a, d, e); else for (var i = 0, j = this.length; i < j; i++) f.event.add(this[i], a, g, d); return this } }), f.fn.extend({ unbind: function (a, b) { if (typeof a == "object" && !a.preventDefault) for (var c in a) this.unbind(c, a[c]); else for (var d = 0, e = this.length; d < e; d++) f.event.remove(this[d], a, b); return this }, delegate: function (a, b, c, d) { return this.live(b, c, d, a) }, undelegate: function (a, b, c) { return arguments.length === 0 ? this.unbind("live") : this.die(b, null, c, a) }, trigger: function (a, b) { return this.each(function () { f.event.trigger(a, b, this) }) }, triggerHandler: function (a, b) { if (this[0]) return f.event.trigger(a, b, this[0], !0) }, toggle: function (a) { var b = arguments, c = a.guid || f.guid++, d = 0, e = function (c) { var e = (f.data(this, "lastToggle" + a.guid) || 0) % d; f.data(this, "lastToggle" + a.guid, e + 1), c.preventDefault(); return b[e].apply(this, arguments) || !1 }; e.guid = c; while (d < b.length) b[d++].guid = c; return this.click(e) }, hover: function (a, b) { return this.mouseenter(a).mouseleave(b || a) } }); var M = { focus: "focusin", blur: "focusout", mouseenter: "mouseover", mouseleave: "mouseout" }; f.each(["live", "die"], function (a, c) { f.fn[c] = function (a, d, e, g) { var h, i = 0, j, k, l, m = g || this.selector, n = g ? this : f(this.context); if (typeof a == "object" && !a.preventDefault) { for (var o in a) n[c](o, d, a[o], m); return this } if (c === "die" && !a && g && g.charAt(0) === ".") { n.unbind(g); return this } if (d === !1 || f.isFunction(d)) e = d || E, d = b; a = (a || "").split(" "); while ((h = a[i++]) != null) { j = y.exec(h), k = "", j && (k = j[0], h = h.replace(y, "")); if (h === "hover") { a.push("mouseenter" + k, "mouseleave" + k); continue } l = h, M[h] ? (a.push(M[h] + k), h = h + k) : h = (M[h] || h) + k; if (c === "live") for (var p = 0, q = n.length; p < q; p++) f.event.add(n[p], "live." + O(h, m), { data: d, selector: m, handler: e, origType: h, origHandler: e, preType: l }); else n.unbind("live." + O(h, m), e) } return this } }), f.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".split(" "), function (a, b) { f.fn[b] = function (a, c) { c == null && (c = a, a = null); return arguments.length > 0 ? this.bind(b, a, c) : this.trigger(b) }, f.attrFn && (f.attrFn[b] = !0) }), function () { function u(a, b, c, d, e, f) { for (var g = 0, h = d.length; g < h; g++) { var i = d[g]; if (i) { var j = !1; i = i[a]; while (i) { if (i.sizcache === c) { j = d[i.sizset]; break } if (i.nodeType === 1) { f || (i.sizcache = c, i.sizset = g); if (typeof b != "string") { if (i === b) { j = !0; break } } else if (k.filter(b, [i]).length > 0) { j = i; break } } i = i[a] } d[g] = j } } } function t(a, b, c, d, e, f) { for (var g = 0, h = d.length; g < h; g++) { var i = d[g]; if (i) { var j = !1; i = i[a]; while (i) { if (i.sizcache === c) { j = d[i.sizset]; break } i.nodeType === 1 && !f && (i.sizcache = c, i.sizset = g); if (i.nodeName.toLowerCase() === b) { j = i; break } i = i[a] } d[g] = j } } } var a = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, d = 0, e = Object.prototype.toString, g = !1, h = !0, i = /\\/g, j = /\W/; [0, 0].sort(function () { h = !1; return 0 }); var k = function (b, d, f, g) { f = f || [], d = d || c; var h = d; if (d.nodeType !== 1 && d.nodeType !== 9) return []; if (!b || typeof b != "string") return f; var i, j, n, o, q, r, s, t, u = !0, w = k.isXML(d), x = [], y = b; do { a.exec(""), i = a.exec(y); if (i) { y = i[3], x.push(i[1]); if (i[2]) { o = i[3]; break } } } while (i); if (x.length > 1 && m.exec(b)) if (x.length === 2 && l.relative[x[0]]) j = v(x[0] + x[1], d); else { j = l.relative[x[0]] ? [d] : k(x.shift(), d); while (x.length) b = x.shift(), l.relative[b] && (b += x.shift()), j = v(b, j) } else { !g && x.length > 1 && d.nodeType === 9 && !w && l.match.ID.test(x[0]) && !l.match.ID.test(x[x.length - 1]) && (q = k.find(x.shift(), d, w), d = q.expr ? k.filter(q.expr, q.set)[0] : q.set[0]); if (d) { q = g ? { expr: x.pop(), set: p(g)} : k.find(x.pop(), x.length === 1 && (x[0] === "~" || x[0] === "+") && d.parentNode ? d.parentNode : d, w), j = q.expr ? k.filter(q.expr, q.set) : q.set, x.length > 0 ? n = p(j) : u = !1; while (x.length) r = x.pop(), s = r, l.relative[r] ? s = x.pop() : r = "", s == null && (s = d), l.relative[r](n, s, w) } else n = x = [] } n || (n = j), n || k.error(r || b); if (e.call(n) === "[object Array]") if (!u) f.push.apply(f, n); else if (d && d.nodeType === 1) for (t = 0; n[t] != null; t++) n[t] && (n[t] === !0 || n[t].nodeType === 1 && k.contains(d, n[t])) && f.push(j[t]); else for (t = 0; n[t] != null; t++) n[t] && n[t].nodeType === 1 && f.push(j[t]); else p(n, f); o && (k(o, h, f, g), k.uniqueSort(f)); return f }; k.uniqueSort = function (a) { if (r) { g = h, a.sort(r); if (g) for (var b = 1; b < a.length; b++) a[b] === a[b - 1] && a.splice(b--, 1) } return a }, k.matches = function (a, b) { return k(a, null, null, b) }, k.matchesSelector = function (a, b) { return k(b, null, null, [a]).length > 0 }, k.find = function (a, b, c) { var d; if (!a) return []; for (var e = 0, f = l.order.length; e < f; e++) { var g, h = l.order[e]; if (g = l.leftMatch[h].exec(a)) { var j = g[1]; g.splice(1, 1); if (j.substr(j.length - 1) !== "\\") { g[1] = (g[1] || "").replace(i, ""), d = l.find[h](g, b, c); if (d != null) { a = a.replace(l.match[h], ""); break } } } } d || (d = typeof b.getElementsByTagName != "undefined" ? b.getElementsByTagName("*") : []); return { set: d, expr: a} }, k.filter = function (a, c, d, e) { var f, g, h = a, i = [], j = c, m = c && c[0] && k.isXML(c[0]); while (a && c.length) { for (var n in l.filter) if ((f = l.leftMatch[n].exec(a)) != null && f[2]) { var o, p, q = l.filter[n], r = f[1]; g = !1, f.splice(1, 1); if (r.substr(r.length - 1) === "\\") continue; j === i && (i = []); if (l.preFilter[n]) { f = l.preFilter[n](f, j, d, i, e, m); if (!f) g = o = !0; else if (f === !0) continue } if (f) for (var s = 0; (p = j[s]) != null; s++) if (p) { o = q(p, f, s, j); var t = e ^ !!o; d && o != null ? t ? g = !0 : j[s] = !1 : t && (i.push(p), g = !0) } if (o !== b) { d || (j = i), a = a.replace(l.match[n], ""); if (!g) return []; break } } if (a === h) if (g == null) k.error(a); else break; h = a } return j }, k.error = function (a) { throw "Syntax error, unrecognized expression: " + a }; var l = k.selectors = { order: ["ID", "NAME", "TAG"], match: { ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ }, leftMatch: {}, attrMap: { "class": "className", "for": "htmlFor" }, attrHandle: { href: function (a) { return a.getAttribute("href") }, type: function (a) { return a.getAttribute("type") } }, relative: { "+": function (a, b) { var c = typeof b == "string", d = c && !j.test(b), e = c && !d; d && (b = b.toLowerCase()); for (var f = 0, g = a.length, h; f < g; f++) if (h = a[f]) { while ((h = h.previousSibling) && h.nodeType !== 1); a[f] = e || h && h.nodeName.toLowerCase() === b ? h || !1 : h === b } e && k.filter(b, a, !0) }, ">": function (a, b) { var c, d = typeof b == "string", e = 0, f = a.length; if (d && !j.test(b)) { b = b.toLowerCase(); for (; e < f; e++) { c = a[e]; if (c) { var g = c.parentNode; a[e] = g.nodeName.toLowerCase() === b ? g : !1 } } } else { for (; e < f; e++) c = a[e], c && (a[e] = d ? c.parentNode : c.parentNode === b); d && k.filter(b, a, !0) } }, "": function (a, b, c) { var e, f = d++, g = u; typeof b == "string" && !j.test(b) && (b = b.toLowerCase(), e = b, g = t), g("parentNode", b, f, a, e, c) }, "~": function (a, b, c) { var e, f = d++, g = u; typeof b == "string" && !j.test(b) && (b = b.toLowerCase(), e = b, g = t), g("previousSibling", b, f, a, e, c) } }, find: { ID: function (a, b, c) { if (typeof b.getElementById != "undefined" && !c) { var d = b.getElementById(a[1]); return d && d.parentNode ? [d] : [] } }, NAME: function (a, b) { if (typeof b.getElementsByName != "undefined") { var c = [], d = b.getElementsByName(a[1]); for (var e = 0, f = d.length; e < f; e++) d[e].getAttribute("name") === a[1] && c.push(d[e]); return c.length === 0 ? null : c } }, TAG: function (a, b) { if (typeof b.getElementsByTagName != "undefined") return b.getElementsByTagName(a[1]) } }, preFilter: { CLASS: function (a, b, c, d, e, f) { a = " " + a[1].replace(i, "") + " "; if (f) return a; for (var g = 0, h; (h = b[g]) != null; g++) h && (e ^ (h.className && (" " + h.className + " ").replace(/[\t\n\r]/g, " ").indexOf(a) >= 0) ? c || d.push(h) : c && (b[g] = !1)); return !1 }, ID: function (a) { return a[1].replace(i, "") }, TAG: function (a, b) { return a[1].replace(i, "").toLowerCase() }, CHILD: function (a) { if (a[1] === "nth") { a[2] || k.error(a[0]), a[2] = a[2].replace(/^\+|\s*/g, ""); var b = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2] === "even" && "2n" || a[2] === "odd" && "2n+1" || !/\D/.test(a[2]) && "0n+" + a[2] || a[2]); a[2] = b[1] + (b[2] || 1) - 0, a[3] = b[3] - 0 } else a[2] && k.error(a[0]); a[0] = d++; return a }, ATTR: function (a, b, c, d, e, f) { var g = a[1] = a[1].replace(i, ""); !f && l.attrMap[g] && (a[1] = l.attrMap[g]), a[4] = (a[4] || a[5] || "").replace(i, ""), a[2] === "~=" && (a[4] = " " + a[4] + " "); return a }, PSEUDO: function (b, c, d, e, f) { if (b[1] === "not") if ((a.exec(b[3]) || "").length > 1 || /^\w/.test(b[3])) b[3] = k(b[3], null, null, c); else { var g = k.filter(b[3], c, d, !0 ^ f); d || e.push.apply(e, g); return !1 } else if (l.match.POS.test(b[0]) || l.match.CHILD.test(b[0])) return !0; return b }, POS: function (a) { a.unshift(!0); return a } }, filters: { enabled: function (a) { return a.disabled === !1 && a.type !== "hidden" }, disabled: function (a) { return a.disabled === !0 }, checked: function (a) { return a.checked === !0 }, selected: function (a) { a.parentNode && a.parentNode.selectedIndex; return a.selected === !0 }, parent: function (a) { return !!a.firstChild }, empty: function (a) { return !a.firstChild }, has: function (a, b, c) { return !!k(c[3], a).length }, header: function (a) { return /h\d/i.test(a.nodeName) }, text: function (a) { var b = a.getAttribute("type"), c = a.type; return a.nodeName.toLowerCase() === "input" && "text" === c && (b === c || b === null) }, radio: function (a) { return a.nodeName.toLowerCase() === "input" && "radio" === a.type }, checkbox: function (a) { return a.nodeName.toLowerCase() === "input" && "checkbox" === a.type }, file: function (a) { return a.nodeName.toLowerCase() === "input" && "file" === a.type }, password: function (a) { return a.nodeName.toLowerCase() === "input" && "password" === a.type }, submit: function (a) { var b = a.nodeName.toLowerCase(); return (b === "input" || b === "button") && "submit" === a.type }, image: function (a) { return a.nodeName.toLowerCase() === "input" && "image" === a.type }, reset: function (a) { var b = a.nodeName.toLowerCase(); return (b === "input" || b === "button") && "reset" === a.type }, button: function (a) { var b = a.nodeName.toLowerCase(); return b === "input" && "button" === a.type || b === "button" }, input: function (a) { return /input|select|textarea|button/i.test(a.nodeName) }, focus: function (a) { return a === a.ownerDocument.activeElement } }, setFilters: { first: function (a, b) { return b === 0 }, last: function (a, b, c, d) { return b === d.length - 1 }, even: function (a, b) { return b % 2 === 0 }, odd: function (a, b) { return b % 2 === 1 }, lt: function (a, b, c) { return b < c[3] - 0 }, gt: function (a, b, c) { return b > c[3] - 0 }, nth: function (a, b, c) { return c[3] - 0 === b }, eq: function (a, b, c) { return c[3] - 0 === b } }, filter: { PSEUDO: function (a, b, c, d) { var e = b[1], f = l.filters[e]; if (f) return f(a, c, b, d); if (e === "contains") return (a.textContent || a.innerText || k.getText([a]) || "").indexOf(b[3]) >= 0; if (e === "not") { var g = b[3]; for (var h = 0, i = g.length; h < i; h++) if (g[h] === a) return !1; return !0 } k.error(e) }, CHILD: function (a, b) { var c = b[1], d = a; switch (c) { case "only": case "first": while (d = d.previousSibling) if (d.nodeType === 1) return !1; if (c === "first") return !0; d = a; case "last": while (d = d.nextSibling) if (d.nodeType === 1) return !1; return !0; case "nth": var e = b[2], f = b[3]; if (e === 1 && f === 0) return !0; var g = b[0], h = a.parentNode; if (h && (h.sizcache !== g || !a.nodeIndex)) { var i = 0; for (d = h.firstChild; d; d = d.nextSibling) d.nodeType === 1 && (d.nodeIndex = ++i); h.sizcache = g } var j = a.nodeIndex - f; return e === 0 ? j === 0 : j % e === 0 && j / e >= 0 } }, ID: function (a, b) { return a.nodeType === 1 && a.getAttribute("id") === b }, TAG: function (a, b) { return b === "*" && a.nodeType === 1 || a.nodeName.toLowerCase() === b }, CLASS: function (a, b) { return (" " + (a.className || a.getAttribute("class")) + " ").indexOf(b) > -1 }, ATTR: function (a, b) { var c = b[1], d = l.attrHandle[c] ? l.attrHandle[c](a) : a[c] != null ? a[c] : a.getAttribute(c), e = d + "", f = b[2], g = b[4]; return d == null ? f === "!=" : f === "=" ? e === g : f === "*=" ? e.indexOf(g) >= 0 : f === "~=" ? (" " + e + " ").indexOf(g) >= 0 : g ? f === "!=" ? e !== g : f === "^=" ? e.indexOf(g) === 0 : f === "$=" ? e.substr(e.length - g.length) === g : f === "|=" ? e === g || e.substr(0, g.length + 1) === g + "-" : !1 : e && d !== !1 }, POS: function (a, b, c, d) { var e = b[2], f = l.setFilters[e]; if (f) return f(a, c, b, d) } } }, m = l.match.POS, n = function (a, b) { return "\\" + (b - 0 + 1) }; for (var o in l.match) l.match[o] = new RegExp(l.match[o].source + /(?![^\[]*\])(?![^\(]*\))/.source), l.leftMatch[o] = new RegExp(/(^(?:.|\r|\n)*?)/.source + l.match[o].source.replace(/\\(\d+)/g, n)); var p = function (a, b) { a = Array.prototype.slice.call(a, 0); if (b) { b.push.apply(b, a); return b } return a }; try { Array.prototype.slice.call(c.documentElement.childNodes, 0)[0].nodeType } catch (q) { p = function (a, b) { var c = 0, d = b || []; if (e.call(a) === "[object Array]") Array.prototype.push.apply(d, a); else if (typeof a.length == "number") for (var f = a.length; c < f; c++) d.push(a[c]); else for (; a[c]; c++) d.push(a[c]); return d } } var r, s; c.documentElement.compareDocumentPosition ? r = function (a, b) { if (a === b) { g = !0; return 0 } if (!a.compareDocumentPosition || !b.compareDocumentPosition) return a.compareDocumentPosition ? -1 : 1; return a.compareDocumentPosition(b) & 4 ? -1 : 1 } : (r = function (a, b) { if (a === b) { g = !0; return 0 } if (a.sourceIndex && b.sourceIndex) return a.sourceIndex - b.sourceIndex; var c, d, e = [], f = [], h = a.parentNode, i = b.parentNode, j = h; if (h === i) return s(a, b); if (!h) return -1; if (!i) return 1; while (j) e.unshift(j), j = j.parentNode; j = i; while (j) f.unshift(j), j = j.parentNode; c = e.length, d = f.length; for (var k = 0; k < c && k < d; k++) if (e[k] !== f[k]) return s(e[k], f[k]); return k === c ? s(a, f[k], -1) : s(e[k], b, 1) }, s = function (a, b, c) { if (a === b) return c; var d = a.nextSibling; while (d) { if (d === b) return -1; d = d.nextSibling } return 1 }), k.getText = function (a) { var b = "", c; for (var d = 0; a[d]; d++) c = a[d], c.nodeType === 3 || c.nodeType === 4 ? b += c.nodeValue : c.nodeType !== 8 && (b += k.getText(c.childNodes)); return b }, function () { var a = c.createElement("div"), d = "script" + (new Date).getTime(), e = c.documentElement; a.innerHTML = "<a name='" + d + "'/>", e.insertBefore(a, e.firstChild), c.getElementById(d) && (l.find.ID = function (a, c, d) { if (typeof c.getElementById != "undefined" && !d) { var e = c.getElementById(a[1]); return e ? e.id === a[1] || typeof e.getAttributeNode != "undefined" && e.getAttributeNode("id").nodeValue === a[1] ? [e] : b : [] } }, l.filter.ID = function (a, b) { var c = typeof a.getAttributeNode != "undefined" && a.getAttributeNode("id"); return a.nodeType === 1 && c && c.nodeValue === b }), e.removeChild(a), e = a = null } (), function () { var a = c.createElement("div"); a.appendChild(c.createComment("")), a.getElementsByTagName("*").length > 0 && (l.find.TAG = function (a, b) { var c = b.getElementsByTagName(a[1]); if (a[1] === "*") { var d = []; for (var e = 0; c[e]; e++) c[e].nodeType === 1 && d.push(c[e]); c = d } return c }), a.innerHTML = "<a href='#'></a>", a.firstChild && typeof a.firstChild.getAttribute != "undefined" && a.firstChild.getAttribute("href") !== "#" && (l.attrHandle.href = function (a) { return a.getAttribute("href", 2) }), a = null } (), c.querySelectorAll && function () { var a = k, b = c.createElement("div"), d = "__sizzle__"; b.innerHTML = "<p class='TEST'></p>"; if (!b.querySelectorAll || b.querySelectorAll(".TEST").length !== 0) { k = function (b, e, f, g) { e = e || c; if (!g && !k.isXML(e)) { var h = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b); if (h && (e.nodeType === 1 || e.nodeType === 9)) { if (h[1]) return p(e.getElementsByTagName(b), f); if (h[2] && l.find.CLASS && e.getElementsByClassName) return p(e.getElementsByClassName(h[2]), f) } if (e.nodeType === 9) { if (b === "body" && e.body) return p([e.body], f); if (h && h[3]) { var i = e.getElementById(h[3]); if (!i || !i.parentNode) return p([], f); if (i.id === h[3]) return p([i], f) } try { return p(e.querySelectorAll(b), f) } catch (j) { } } else if (e.nodeType === 1 && e.nodeName.toLowerCase() !== "object") { var m = e, n = e.getAttribute("id"), o = n || d, q = e.parentNode, r = /^\s*[+~]/.test(b); n ? o = o.replace(/'/g, "\\$&") : e.setAttribute("id", o), r && q && (e = e.parentNode); try { if (!r || q) return p(e.querySelectorAll("[id='" + o + "'] " + b), f) } catch (s) { } finally { n || m.removeAttribute("id") } } } return a(b, e, f, g) }; for (var e in a) k[e] = a[e]; b = null } } (), function () { var a = c.documentElement, b = a.matchesSelector || a.mozMatchesSelector || a.webkitMatchesSelector || a.msMatchesSelector; if (b) { var d = !b.call(c.createElement("div"), "div"), e = !1; try { b.call(c.documentElement, "[test!='']:sizzle") } catch (f) { e = !0 } k.matchesSelector = function (a, c) { c = c.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); if (!k.isXML(a)) try { if (e || !l.match.PSEUDO.test(c) && !/!=/.test(c)) { var f = b.call(a, c); if (f || !d || a.document && a.document.nodeType !== 11) return f } } catch (g) { } return k(c, null, null, [a]).length > 0 } } } (), function () { var a = c.createElement("div"); a.innerHTML = "<div class='test e'></div><div class='test'></div>"; if (!!a.getElementsByClassName && a.getElementsByClassName("e").length !== 0) { a.lastChild.className = "e"; if (a.getElementsByClassName("e").length === 1) return; l.order.splice(1, 0, "CLASS"), l.find.CLASS = function (a, b, c) { if (typeof b.getElementsByClassName != "undefined" && !c) return b.getElementsByClassName(a[1]) }, a = null } } (), c.documentElement.contains ? k.contains = function (a, b) { return a !== b && (a.contains ? a.contains(b) : !0) } : c.documentElement.compareDocumentPosition ? k.contains = function (a, b) { return !!(a.compareDocumentPosition(b) & 16) } : k.contains = function () { return !1 }, k.isXML = function (a) { var b = (a ? a.ownerDocument || a : 0).documentElement; return b ? b.nodeName !== "HTML" : !1 }; var v = function (a, b) { var c, d = [], e = "", f = b.nodeType ? [b] : b; while (c = l.match.PSEUDO.exec(a)) e += c[0], a = a.replace(l.match.PSEUDO, ""); a = l.relative[a] ? a + "*" : a; for (var g = 0, h = f.length; g < h; g++) k(a, f[g], d); return k.filter(e, d) }; f.find = k, f.expr = k.selectors, f.expr[":"] = f.expr.filters, f.unique = k.uniqueSort, f.text = k.getText, f.isXMLDoc = k.isXML, f.contains = k.contains } (); var P = /Until$/, Q = /^(?:parents|prevUntil|prevAll)/, R = /,/, S = /^.[^:#\[\.,]*$/, T = Array.prototype.slice, U = f.expr.match.POS, V = { children: !0, contents: !0, next: !0, prev: !0 }; f.fn.extend({ find: function (a) { var b = this, c, d; if (typeof a != "string") return f(a).filter(function () { for (c = 0, d = b.length; c < d; c++) if (f.contains(b[c], this)) return !0 }); var e = this.pushStack("", "find", a), g, h, i; for (c = 0, d = this.length; c < d; c++) { g = e.length, f.find(a, this[c], e); if (c > 0) for (h = g; h < e.length; h++) for (i = 0; i < g; i++) if (e[i] === e[h]) { e.splice(h--, 1); break } } return e }, has: function (a) { var b = f(a); return this.filter(function () { for (var a = 0, c = b.length; a < c; a++) if (f.contains(this, b[a])) return !0 }) }, not: function (a) { return this.pushStack(X(this, a, !1), "not", a) }, filter: function (a) { return this.pushStack(X(this, a, !0), "filter", a) }, is: function (a) { return !!a && (typeof a == "string" ? f.filter(a, this).length > 0 : this.filter(a).length > 0) }, closest: function (a, b) { var c = [], d, e, g = this[0]; if (f.isArray(a)) { var h, i, j = {}, k = 1; if (g && a.length) { for (d = 0, e = a.length; d < e; d++) i = a[d], j[i] || (j[i] = U.test(i) ? f(i, b || this.context) : i); while (g && g.ownerDocument && g !== b) { for (i in j) h = j[i], (h.jquery ? h.index(g) > -1 : f(g).is(h)) && c.push({ selector: i, elem: g, level: k }); g = g.parentNode, k++ } } return c } var l = U.test(a) || typeof a != "string" ? f(a, b || this.context) : 0; for (d = 0, e = this.length; d < e; d++) { g = this[d]; while (g) { if (l ? l.index(g) > -1 : f.find.matchesSelector(g, a)) { c.push(g); break } g = g.parentNode; if (!g || !g.ownerDocument || g === b || g.nodeType === 11) break } } c = c.length > 1 ? f.unique(c) : c; return this.pushStack(c, "closest", a) }, index: function (a) { if (!a || typeof a == "string") return f.inArray(this[0], a ? f(a) : this.parent().children()); return f.inArray(a.jquery ? a[0] : a, this) }, add: function (a, b) { var c = typeof a == "string" ? f(a, b) : f.makeArray(a && a.nodeType ? [a] : a), d = f.merge(this.get(), c); return this.pushStack(W(c[0]) || W(d[0]) ? d : f.unique(d)) }, andSelf: function () { return this.add(this.prevObject) } }), f.each({ parent: function (a) { var b = a.parentNode; return b && b.nodeType !== 11 ? b : null }, parents: function (a) { return f.dir(a, "parentNode") }, parentsUntil: function (a, b, c) { return f.dir(a, "parentNode", c) }, next: function (a) { return f.nth(a, 2, "nextSibling") }, prev: function (a) { return f.nth(a, 2, "previousSibling") }, nextAll: function (a) { return f.dir(a, "nextSibling") }, prevAll: function (a) { return f.dir(a, "previousSibling") }, nextUntil: function (a, b, c) { return f.dir(a, "nextSibling", c) }, prevUntil: function (a, b, c) { return f.dir(a, "previousSibling", c) }, siblings: function (a) { return f.sibling(a.parentNode.firstChild, a) }, children: function (a) { return f.sibling(a.firstChild) }, contents: function (a) { return f.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : f.makeArray(a.childNodes) } }, function (a, b) { f.fn[a] = function (c, d) { var e = f.map(this, b, c), g = T.call(arguments); P.test(a) || (d = c), d && typeof d == "string" && (e = f.filter(d, e)), e = this.length > 1 && !V[a] ? f.unique(e) : e, (this.length > 1 || R.test(d)) && Q.test(a) && (e = e.reverse()); return this.pushStack(e, a, g.join(",")) } }), f.extend({ filter: function (a, b, c) { c && (a = ":not(" + a + ")"); return b.length === 1 ? f.find.matchesSelector(b[0], a) ? [b[0]] : [] : f.find.matches(a, b) }, dir: function (a, c, d) { var e = [], g = a[c]; while (g && g.nodeType !== 9 && (d === b || g.nodeType !== 1 || !f(g).is(d))) g.nodeType === 1 && e.push(g), g = g[c]; return e }, nth: function (a, b, c, d) { b = b || 1; var e = 0; for (; a; a = a[c]) if (a.nodeType === 1 && ++e === b) break; return a }, sibling: function (a, b) { var c = []; for (; a; a = a.nextSibling) a.nodeType === 1 && a !== b && c.push(a); return c } }); var Y = / jQuery\d+="(?:\d+|null)"/g, Z = /^\s+/, $ = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, _ = /<([\w:]+)/, ba = /<tbody/i, bb = /<|&#?\w+;/, bc = /<(?:script|object|embed|option|style)/i, bd = /checked\s*(?:[^=]|=\s*.checked.)/i, be = /\/(java|ecma)script/i, bf = /^\s*<!(?:\[CDATA\[|\-\-)/, bg = { option: [1, "<select multiple='multiple'>", "</select>"], legend: [1, "<fieldset>", "</fieldset>"], thead: [1, "<table>", "</table>"], tr: [2, "<table><tbody>", "</tbody></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"], area: [1, "<map>", "</map>"], _default: [0, "", ""] }; bg.optgroup = bg.option, bg.tbody = bg.tfoot = bg.colgroup = bg.caption = bg.thead, bg.th = bg.td, f.support.htmlSerialize || (bg._default = [1, "div<div>", "</div>"]), f.fn.extend({ text: function (a) { if (f.isFunction(a)) return this.each(function (b) { var c = f(this); c.text(a.call(this, b, c.text())) }); if (typeof a != "object" && a !== b) return this.empty().append((this[0] && this[0].ownerDocument || c).createTextNode(a)); return f.text(this) }, wrapAll: function (a) { if (f.isFunction(a)) return this.each(function (b) { f(this).wrapAll(a.call(this, b)) }); if (this[0]) { var b = f(a, this[0].ownerDocument).eq(0).clone(!0); this[0].parentNode && b.insertBefore(this[0]), b.map(function () { var a = this; while (a.firstChild && a.firstChild.nodeType === 1) a = a.firstChild; return a }).append(this) } return this }, wrapInner: function (a) { if (f.isFunction(a)) return this.each(function (b) { f(this).wrapInner(a.call(this, b)) }); return this.each(function () { var b = f(this), c = b.contents(); c.length ? c.wrapAll(a) : b.append(a) }) }, wrap: function (a) { return this.each(function () { f(this).wrapAll(a) }) }, unwrap: function () { return this.parent().each(function () { f.nodeName(this, "body") || f(this).replaceWith(this.childNodes) }).end() }, append: function () { return this.domManip(arguments, !0, function (a) { this.nodeType === 1 && this.appendChild(a) }) }, prepend: function () { return this.domManip(arguments, !0, function (a) { this.nodeType === 1 && this.insertBefore(a, this.firstChild) }) }, before: function () { if (this[0] && this[0].parentNode) return this.domManip(arguments, !1, function (a) { this.parentNode.insertBefore(a, this) }); if (arguments.length) { var a = f(arguments[0]); a.push.apply(a, this.toArray()); return this.pushStack(a, "before", arguments) } }, after: function () { if (this[0] && this[0].parentNode) return this.domManip(arguments, !1, function (a) { this.parentNode.insertBefore(a, this.nextSibling) }); if (arguments.length) { var a = this.pushStack(this, "after", arguments); a.push.apply(a, f(arguments[0]).toArray()); return a } }, remove: function (a, b) { for (var c = 0, d; (d = this[c]) != null; c++) if (!a || f.filter(a, [d]).length) !b && d.nodeType === 1 && (f.cleanData(d.getElementsByTagName("*")), f.cleanData([d])), d.parentNode && d.parentNode.removeChild(d); return this }, empty: function () { for (var a = 0, b; (b = this[a]) != null; a++) { b.nodeType === 1 && f.cleanData(b.getElementsByTagName("*")); while (b.firstChild) b.removeChild(b.firstChild) } return this }, clone: function (a, b) { a = a == null ? !1 : a, b = b == null ? a : b; return this.map(function () { return f.clone(this, a, b) }) }, html: function (a) { if (a === b) return this[0] && this[0].nodeType === 1 ? this[0].innerHTML.replace(Y, "") : null; if (typeof a == "string" && !bc.test(a) && (f.support.leadingWhitespace || !Z.test(a)) && !bg[(_.exec(a) || ["", ""])[1].toLowerCase()]) { a = a.replace($, "<$1></$2>"); try { for (var c = 0, d = this.length; c < d; c++) this[c].nodeType === 1 && (f.cleanData(this[c].getElementsByTagName("*")), this[c].innerHTML = a) } catch (e) { this.empty().append(a) } } else f.isFunction(a) ? this.each(function (b) { var c = f(this); c.html(a.call(this, b, c.html())) }) : this.empty().append(a); return this }, replaceWith: function (a) { if (this[0] && this[0].parentNode) { if (f.isFunction(a)) return this.each(function (b) { var c = f(this), d = c.html(); c.replaceWith(a.call(this, b, d)) }); typeof a != "string" && (a = f(a).detach()); return this.each(function () { var b = this.nextSibling, c = this.parentNode; f(this).remove(), b ? f(b).before(a) : f(c).append(a) }) } return this.length ? this.pushStack(f(f.isFunction(a) ? a() : a), "replaceWith", a) : this }, detach: function (a) { return this.remove(a, !0) }, domManip: function (a, c, d) { var e, g, h, i, j = a[0], k = []; if (!f.support.checkClone && arguments.length === 3 && typeof j == "string" && bd.test(j)) return this.each(function () { f(this).domManip(a, c, d, !0) }); if (f.isFunction(j)) return this.each(function (e) { var g = f(this); a[0] = j.call(this, e, c ? g.html() : b), g.domManip(a, c, d) }); if (this[0]) { i = j && j.parentNode, f.support.parentNode && i && i.nodeType === 11 && i.childNodes.length === this.length ? e = { fragment: i} : e = f.buildFragment(a, this, k), h = e.fragment, h.childNodes.length === 1 ? g = h = h.firstChild : g = h.firstChild; if (g) { c = c && f.nodeName(g, "tr"); for (var l = 0, m = this.length, n = m - 1; l < m; l++) d.call(c ? bh(this[l], g) : this[l], e.cacheable || m > 1 && l < n ? f.clone(h, !0, !0) : h) } k.length && f.each(k, bn) } return this } }), f.buildFragment = function (a, b, d) { var e, g, h, i = b && b[0] ? b[0].ownerDocument || b[0] : c; a.length === 1 && typeof a[0] == "string" && a[0].length < 512 && i === c && a[0].charAt(0) === "<" && !bc.test(a[0]) && (f.support.checkClone || !bd.test(a[0])) && (g = !0, h = f.fragments[a[0]], h && h !== 1 && (e = h)), e || (e = i.createDocumentFragment(), f.clean(a, i, e, d)), g && (f.fragments[a[0]] = h ? e : 1); return { fragment: e, cacheable: g} }, f.fragments = {}, f.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function (a, b) { f.fn[a] = function (c) { var d = [], e = f(c), g = this.length === 1 && this[0].parentNode; if (g && g.nodeType === 11 && g.childNodes.length === 1 && e.length === 1) { e[b](this[0]); return this } for (var h = 0, i = e.length; h < i; h++) { var j = (h > 0 ? this.clone(!0) : this).get(); f(e[h])[b](j), d = d.concat(j) } return this.pushStack(d, a, e.selector) } }), f.extend({ clone: function (a, b, c) { var d = a.cloneNode(!0), e, g, h; if ((!f.support.noCloneEvent || !f.support.noCloneChecked) && (a.nodeType === 1 || a.nodeType === 11) && !f.isXMLDoc(a)) { bj(a, d), e = bk(a), g = bk(d); for (h = 0; e[h]; ++h) bj(e[h], g[h]) } if (b) { bi(a, d); if (c) { e = bk(a), g = bk(d); for (h = 0; e[h]; ++h) bi(e[h], g[h]) } } return d }, clean: function (a, b, d, e) {
        var g; b = b || c, typeof b.createElement == "undefined" && (b = b.ownerDocument ||
b[0] && b[0].ownerDocument || c); var h = [], i; for (var j = 0, k; (k = a[j]) != null; j++) { typeof k == "number" && (k += ""); if (!k) continue; if (typeof k == "string") if (!bb.test(k)) k = b.createTextNode(k); else { k = k.replace($, "<$1></$2>"); var l = (_.exec(k) || ["", ""])[1].toLowerCase(), m = bg[l] || bg._default, n = m[0], o = b.createElement("div"); o.innerHTML = m[1] + k + m[2]; while (n--) o = o.lastChild; if (!f.support.tbody) { var p = ba.test(k), q = l === "table" && !p ? o.firstChild && o.firstChild.childNodes : m[1] === "<table>" && !p ? o.childNodes : []; for (i = q.length - 1; i >= 0; --i) f.nodeName(q[i], "tbody") && !q[i].childNodes.length && q[i].parentNode.removeChild(q[i]) } !f.support.leadingWhitespace && Z.test(k) && o.insertBefore(b.createTextNode(Z.exec(k)[0]), o.firstChild), k = o.childNodes } var r; if (!f.support.appendChecked) if (k[0] && typeof (r = k.length) == "number") for (i = 0; i < r; i++) bm(k[i]); else bm(k); k.nodeType ? h.push(k) : h = f.merge(h, k) } if (d) { g = function (a) { return !a.type || be.test(a.type) }; for (j = 0; h[j]; j++) if (e && f.nodeName(h[j], "script") && (!h[j].type || h[j].type.toLowerCase() === "text/javascript")) e.push(h[j].parentNode ? h[j].parentNode.removeChild(h[j]) : h[j]); else { if (h[j].nodeType === 1) { var s = f.grep(h[j].getElementsByTagName("script"), g); h.splice.apply(h, [j + 1, 0].concat(s)) } d.appendChild(h[j]) } } return h
    }, cleanData: function (a) { var b, c, d = f.cache, e = f.expando, g = f.event.special, h = f.support.deleteExpando; for (var i = 0, j; (j = a[i]) != null; i++) { if (j.nodeName && f.noData[j.nodeName.toLowerCase()]) continue; c = j[f.expando]; if (c) { b = d[c] && d[c][e]; if (b && b.events) { for (var k in b.events) g[k] ? f.event.remove(j, k) : f.removeEvent(j, k, b.handle); b.handle && (b.handle.elem = null) } h ? delete j[f.expando] : j.removeAttribute && j.removeAttribute(f.expando), delete d[c] } } } 
    }); var bo = /alpha\([^)]*\)/i, bp = /opacity=([^)]*)/, bq = /-([a-z])/ig, br = /([A-Z]|^ms)/g, bs = /^-?\d+(?:px)?$/i, bt = /^-?\d/, bu = /^[+\-]=/, bv = /[^+\-\.\de]+/g, bw = { position: "absolute", visibility: "hidden", display: "block" }, bx = ["Left", "Right"], by = ["Top", "Bottom"], bz, bA, bB, bC = function (a, b) { return b.toUpperCase() }; f.fn.css = function (a, c) { if (arguments.length === 2 && c === b) return this; return f.access(this, a, c, !0, function (a, c, d) { return d !== b ? f.style(a, c, d) : f.css(a, c) }) }, f.extend({ cssHooks: { opacity: { get: function (a, b) { if (b) { var c = bz(a, "opacity", "opacity"); return c === "" ? "1" : c } return a.style.opacity } } }, cssNumber: { zIndex: !0, fontWeight: !0, opacity: !0, zoom: !0, lineHeight: !0, widows: !0, orphans: !0 }, cssProps: { "float": f.support.cssFloat ? "cssFloat" : "styleFloat" }, style: function (a, c, d, e) { if (!!a && a.nodeType !== 3 && a.nodeType !== 8 && !!a.style) { var g, h, i = f.camelCase(c), j = a.style, k = f.cssHooks[i]; c = f.cssProps[i] || i; if (d === b) { if (k && "get" in k && (g = k.get(a, !1, e)) !== b) return g; return j[c] } h = typeof d; if (h === "number" && isNaN(d) || d == null) return; h === "string" && bu.test(d) && (d = +d.replace(bv, "") + parseFloat(f.css(a, c))), h === "number" && !f.cssNumber[i] && (d += "px"); if (!k || !("set" in k) || (d = k.set(a, d)) !== b) try { j[c] = d } catch (l) { } } }, css: function (a, c, d) { var e, g; c = f.camelCase(c), g = f.cssHooks[c], c = f.cssProps[c] || c, c === "cssFloat" && (c = "float"); if (g && "get" in g && (e = g.get(a, !0, d)) !== b) return e; if (bz) return bz(a, c) }, swap: function (a, b, c) { var d = {}; for (var e in b) d[e] = a.style[e], a.style[e] = b[e]; c.call(a); for (e in b) a.style[e] = d[e] }, camelCase: function (a) { return a.replace(bq, bC) } }), f.curCSS = f.css, f.each(["height", "width"], function (a, b) { f.cssHooks[b] = { get: function (a, c, d) { var e; if (c) { a.offsetWidth !== 0 ? e = bD(a, b, d) : f.swap(a, bw, function () { e = bD(a, b, d) }); if (e <= 0) { e = bz(a, b, b), e === "0px" && bB && (e = bB(a, b, b)); if (e != null) return e === "" || e === "auto" ? "0px" : e } if (e < 0 || e == null) { e = a.style[b]; return e === "" || e === "auto" ? "0px" : e } return typeof e == "string" ? e : e + "px" } }, set: function (a, b) { if (!bs.test(b)) return b; b = parseFloat(b); if (b >= 0) return b + "px" } } }), f.support.opacity || (f.cssHooks.opacity = { get: function (a, b) { return bp.test((b && a.currentStyle ? a.currentStyle.filter : a.style.filter) || "") ? parseFloat(RegExp.$1) / 100 + "" : b ? "1" : "" }, set: function (a, b) { var c = a.style, d = a.currentStyle; c.zoom = 1; var e = f.isNaN(b) ? "" : "alpha(opacity=" + b * 100 + ")", g = d && d.filter || c.filter || ""; c.filter = bo.test(g) ? g.replace(bo, e) : g + " " + e } }), f(function () { f.support.reliableMarginRight || (f.cssHooks.marginRight = { get: function (a, b) { var c; f.swap(a, { display: "inline-block" }, function () { b ? c = bz(a, "margin-right", "marginRight") : c = a.style.marginRight }); return c } }) }), c.defaultView && c.defaultView.getComputedStyle && (bA = function (a, c) { var d, e, g; c = c.replace(br, "-$1").toLowerCase(); if (!(e = a.ownerDocument.defaultView)) return b; if (g = e.getComputedStyle(a, null)) d = g.getPropertyValue(c), d === "" && !f.contains(a.ownerDocument.documentElement, a) && (d = f.style(a, c)); return d }), c.documentElement.currentStyle && (bB = function (a, b) { var c, d = a.currentStyle && a.currentStyle[b], e = a.runtimeStyle && a.runtimeStyle[b], f = a.style; !bs.test(d) && bt.test(d) && (c = f.left, e && (a.runtimeStyle.left = a.currentStyle.left), f.left = b === "fontSize" ? "1em" : d || 0, d = f.pixelLeft + "px", f.left = c, e && (a.runtimeStyle.left = e)); return d === "" ? "auto" : d }), bz = bA || bB, f.expr && f.expr.filters && (f.expr.filters.hidden = function (a) { var b = a.offsetWidth, c = a.offsetHeight; return b === 0 && c === 0 || !f.support.reliableHiddenOffsets && (a.style.display || f.css(a, "display")) === "none" }, f.expr.filters.visible = function (a) { return !f.expr.filters.hidden(a) }); var bE = /%20/g, bF = /\[\]$/, bG = /\r?\n/g, bH = /#.*$/, bI = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, bJ = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, bK = /^(?:about|app|app\-storage|.+\-extension|file|widget):$/, bL = /^(?:GET|HEAD)$/, bM = /^\/\//, bN = /\?/, bO = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, bP = /^(?:select|textarea)/i, bQ = /\s+/, bR = /([?&])_=[^&]*/, bS = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/, bT = f.fn.load, bU = {}, bV = {}, bW, bX; try { bW = e.href } catch (bY) { bW = c.createElement("a"), bW.href = "", bW = bW.href } bX = bS.exec(bW.toLowerCase()) || [], f.fn.extend({ load: function (a, c, d) { if (typeof a != "string" && bT) return bT.apply(this, arguments); if (!this.length) return this; var e = a.indexOf(" "); if (e >= 0) { var g = a.slice(e, a.length); a = a.slice(0, e) } var h = "GET"; c && (f.isFunction(c) ? (d = c, c = b) : typeof c == "object" && (c = f.param(c, f.ajaxSettings.traditional), h = "POST")); var i = this; f.ajax({ url: a, type: h, dataType: "html", data: c, complete: function (a, b, c) { c = a.responseText, a.isResolved() && (a.done(function (a) { c = a }), i.html(g ? f("<div>").append(c.replace(bO, "")).find(g) : c)), d && i.each(d, [c, b, a]) } }); return this }, serialize: function () { return f.param(this.serializeArray()) }, serializeArray: function () { return this.map(function () { return this.elements ? f.makeArray(this.elements) : this }).filter(function () { return this.name && !this.disabled && (this.checked || bP.test(this.nodeName) || bJ.test(this.type)) }).map(function (a, b) { var c = f(this).val(); return c == null ? null : f.isArray(c) ? f.map(c, function (a, c) { return { name: b.name, value: a.replace(bG, "\r\n")} }) : { name: b.name, value: c.replace(bG, "\r\n")} }).get() } }), f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function (a, b) { f.fn[b] = function (a) { return this.bind(b, a) } }), f.each(["get", "post"], function (a, c) { f[c] = function (a, d, e, g) { f.isFunction(d) && (g = g || e, e = d, d = b); return f.ajax({ type: c, url: a, data: d, success: e, dataType: g }) } }), f.extend({ getScript: function (a, c) { return f.get(a, b, c, "script") }, getJSON: function (a, b, c) { return f.get(a, b, c, "json") }, ajaxSetup: function (a, b) { b ? f.extend(!0, a, f.ajaxSettings, b) : (b = a, a = f.extend(!0, f.ajaxSettings, b)); for (var c in { context: 1, url: 1 }) c in b ? a[c] = b[c] : c in f.ajaxSettings && (a[c] = f.ajaxSettings[c]); return a }, ajaxSettings: { url: bW, isLocal: bK.test(bX[1]), global: !0, type: "GET", contentType: "application/x-www-form-urlencoded", processData: !0, async: !0, accepts: { xml: "application/xml, text/xml", html: "text/html", text: "text/plain", json: "application/json, text/javascript", "*": "*/*" }, contents: { xml: /xml/, html: /html/, json: /json/ }, responseFields: { xml: "responseXML", text: "responseText" }, converters: { "* text": a.String, "text html": !0, "text json": f.parseJSON, "text xml": f.parseXML} }, ajaxPrefilter: bZ(bU), ajaxTransport: bZ(bV), ajax: function (a, c) { function w(a, c, l, m) { if (s !== 2) { s = 2, q && clearTimeout(q), p = b, n = m || "", v.readyState = a ? 4 : 0; var o, r, u, w = l ? ca(d, v, l) : b, x, y; if (a >= 200 && a < 300 || a === 304) { if (d.ifModified) { if (x = v.getResponseHeader("Last-Modified")) f.lastModified[k] = x; if (y = v.getResponseHeader("Etag")) f.etag[k] = y } if (a === 304) c = "notmodified", o = !0; else try { r = cb(d, w), c = "success", o = !0 } catch (z) { c = "parsererror", u = z } } else { u = c; if (!c || a) c = "error", a < 0 && (a = 0) } v.status = a, v.statusText = c, o ? h.resolveWith(e, [r, c, v]) : h.rejectWith(e, [v, c, u]), v.statusCode(j), j = b, t && g.trigger("ajax" + (o ? "Success" : "Error"), [v, d, o ? r : u]), i.resolveWith(e, [v, c]), t && (g.trigger("ajaxComplete", [v, d]), --f.active || f.event.trigger("ajaxStop")) } } typeof a == "object" && (c = a, a = b), c = c || {}; var d = f.ajaxSetup({}, c), e = d.context || d, g = e !== d && (e.nodeType || e instanceof f) ? f(e) : f.event, h = f.Deferred(), i = f._Deferred(), j = d.statusCode || {}, k, l = {}, m = {}, n, o, p, q, r, s = 0, t, u, v = { readyState: 0, setRequestHeader: function (a, b) { if (!s) { var c = a.toLowerCase(); a = m[c] = m[c] || a, l[a] = b } return this }, getAllResponseHeaders: function () { return s === 2 ? n : null }, getResponseHeader: function (a) { var c; if (s === 2) { if (!o) { o = {}; while (c = bI.exec(n)) o[c[1].toLowerCase()] = c[2] } c = o[a.toLowerCase()] } return c === b ? null : c }, overrideMimeType: function (a) { s || (d.mimeType = a); return this }, abort: function (a) { a = a || "abort", p && p.abort(a), w(0, a); return this } }; h.promise(v), v.success = v.done, v.error = v.fail, v.complete = i.done, v.statusCode = function (a) { if (a) { var b; if (s < 2) for (b in a) j[b] = [j[b], a[b]]; else b = a[v.status], v.then(b, b) } return this }, d.url = ((a || d.url) + "").replace(bH, "").replace(bM, bX[1] + "//"), d.dataTypes = f.trim(d.dataType || "*").toLowerCase().split(bQ), d.crossDomain == null && (r = bS.exec(d.url.toLowerCase()), d.crossDomain = !(!r || r[1] == bX[1] && r[2] == bX[2] && (r[3] || (r[1] === "http:" ? 80 : 443)) == (bX[3] || (bX[1] === "http:" ? 80 : 443)))), d.data && d.processData && typeof d.data != "string" && (d.data = f.param(d.data, d.traditional)), b$(bU, d, c, v); if (s === 2) return !1; t = d.global, d.type = d.type.toUpperCase(), d.hasContent = !bL.test(d.type), t && f.active++ === 0 && f.event.trigger("ajaxStart"); if (!d.hasContent) { d.data && (d.url += (bN.test(d.url) ? "&" : "?") + d.data), k = d.url; if (d.cache === !1) { var x = f.now(), y = d.url.replace(bR, "$1_=" + x); d.url = y + (y === d.url ? (bN.test(d.url) ? "&" : "?") + "_=" + x : "") } } (d.data && d.hasContent && d.contentType !== !1 || c.contentType) && v.setRequestHeader("Content-Type", d.contentType), d.ifModified && (k = k || d.url, f.lastModified[k] && v.setRequestHeader("If-Modified-Since", f.lastModified[k]), f.etag[k] && v.setRequestHeader("If-None-Match", f.etag[k])), v.setRequestHeader("Accept", d.dataTypes[0] && d.accepts[d.dataTypes[0]] ? d.accepts[d.dataTypes[0]] + (d.dataTypes[0] !== "*" ? ", */*; q=0.01" : "") : d.accepts["*"]); for (u in d.headers) v.setRequestHeader(u, d.headers[u]); if (d.beforeSend && (d.beforeSend.call(e, v, d) === !1 || s === 2)) { v.abort(); return !1 } for (u in { success: 1, error: 1, complete: 1 }) v[u](d[u]); p = b$(bV, d, c, v); if (!p) w(-1, "No Transport"); else { v.readyState = 1, t && g.trigger("ajaxSend", [v, d]), d.async && d.timeout > 0 && (q = setTimeout(function () { v.abort("timeout") }, d.timeout)); try { s = 1, p.send(l, w) } catch (z) { status < 2 ? w(-1, z) : f.error(z) } } return v }, param: function (a, c) { var d = [], e = function (a, b) { b = f.isFunction(b) ? b() : b, d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b) }; c === b && (c = f.ajaxSettings.traditional); if (f.isArray(a) || a.jquery && !f.isPlainObject(a)) f.each(a, function () { e(this.name, this.value) }); else for (var g in a) b_(g, a[g], c, e); return d.join("&").replace(bE, "+") } }), f.extend({ active: 0, lastModified: {}, etag: {} }); var cc = f.now(), cd = /(\=)\?(&|$)|\?\?/i; f.ajaxSetup({ jsonp: "callback", jsonpCallback: function () { return f.expando + "_" + cc++ } }), f.ajaxPrefilter("json jsonp", function (b, c, d) { var e = b.contentType === "application/x-www-form-urlencoded" && typeof b.data == "string"; if (b.dataTypes[0] === "jsonp" || b.jsonp !== !1 && (cd.test(b.url) || e && cd.test(b.data))) { var g, h = b.jsonpCallback = f.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback, i = a[h], j = b.url, k = b.data, l = "$1" + h + "$2"; b.jsonp !== !1 && (j = j.replace(cd, l), b.url === j && (e && (k = k.replace(cd, l)), b.data === k && (j += (/\?/.test(j) ? "&" : "?") + b.jsonp + "=" + h))), b.url = j, b.data = k, a[h] = function (a) { g = [a] }, d.always(function () { a[h] = i, g && f.isFunction(i) && a[h](g[0]) }), b.converters["script json"] = function () { g || f.error(h + " was not called"); return g[0] }, b.dataTypes[0] = "json"; return "script" } }), f.ajaxSetup({ accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { script: /javascript|ecmascript/ }, converters: { "text script": function (a) { f.globalEval(a); return a } } }), f.ajaxPrefilter("script", function (a) { a.cache === b && (a.cache = !1), a.crossDomain && (a.type = "GET", a.global = !1) }), f.ajaxTransport("script", function (a) { if (a.crossDomain) { var d, e = c.head || c.getElementsByTagName("head")[0] || c.documentElement; return { send: function (f, g) { d = c.createElement("script"), d.async = "async", a.scriptCharset && (d.charset = a.scriptCharset), d.src = a.url, d.onload = d.onreadystatechange = function (a, c) { if (c || !d.readyState || /loaded|complete/.test(d.readyState)) d.onload = d.onreadystatechange = null, e && d.parentNode && e.removeChild(d), d = b, c || g(200, "success") }, e.insertBefore(d, e.firstChild) }, abort: function () { d && d.onload(0, 1) } } } }); var ce = a.ActiveXObject ? function () { for (var a in cg) cg[a](0, 1) } : !1, cf = 0, cg; f.ajaxSettings.xhr = a.ActiveXObject ? function () { return !this.isLocal && ch() || ci() } : ch, function (a) { f.extend(f.support, { ajax: !!a, cors: !!a && "withCredentials" in a }) } (f.ajaxSettings.xhr()), f.support.ajax && f.ajaxTransport(function (c) { if (!c.crossDomain || f.support.cors) { var d; return { send: function (e, g) { var h = c.xhr(), i, j; c.username ? h.open(c.type, c.url, c.async, c.username, c.password) : h.open(c.type, c.url, c.async); if (c.xhrFields) for (j in c.xhrFields) h[j] = c.xhrFields[j]; c.mimeType && h.overrideMimeType && h.overrideMimeType(c.mimeType), !c.crossDomain && !e["X-Requested-With"] && (e["X-Requested-With"] = "XMLHttpRequest"); try { for (j in e) h.setRequestHeader(j, e[j]) } catch (k) { } h.send(c.hasContent && c.data || null), d = function (a, e) { var j, k, l, m, n; try { if (d && (e || h.readyState === 4)) { d = b, i && (h.onreadystatechange = f.noop, ce && delete cg[i]); if (e) h.readyState !== 4 && h.abort(); else { j = h.status, l = h.getAllResponseHeaders(), m = {}, n = h.responseXML, n && n.documentElement && (m.xml = n), m.text = h.responseText; try { k = h.statusText } catch (o) { k = "" } !j && c.isLocal && !c.crossDomain ? j = m.text ? 200 : 404 : j === 1223 && (j = 204) } } } catch (p) { e || g(-1, p) } m && g(j, k, m, l) }, !c.async || h.readyState === 4 ? d() : (i = ++cf, ce && (cg || (cg = {}, f(a).unload(ce)), cg[i] = d), h.onreadystatechange = d) }, abort: function () { d && d(0, 1) } } } }); var cj = {}, ck, cl, cm = /^(?:toggle|show|hide)$/, cn = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i, co, cp = [["height", "marginTop", "marginBottom", "paddingTop", "paddingBottom"], ["width", "marginLeft", "marginRight", "paddingLeft", "paddingRight"], ["opacity"]], cq, cr = a.webkitRequestAnimationFrame || a.mozRequestAnimationFrame || a.oRequestAnimationFrame; f.fn.extend({ show: function (a, b, c) { var d, e; if (a || a === 0) return this.animate(cu("show", 3), a, b, c); for (var g = 0, h = this.length; g < h; g++) d = this[g], d.style && (e = d.style.display, !f._data(d, "olddisplay") && e === "none" && (e = d.style.display = ""), e === "" && f.css(d, "display") === "none" && f._data(d, "olddisplay", cv(d.nodeName))); for (g = 0; g < h; g++) { d = this[g]; if (d.style) { e = d.style.display; if (e === "" || e === "none") d.style.display = f._data(d, "olddisplay") || "" } } return this }, hide: function (a, b, c) { if (a || a === 0) return this.animate(cu("hide", 3), a, b, c); for (var d = 0, e = this.length; d < e; d++) if (this[d].style) { var g = f.css(this[d], "display"); g !== "none" && !f._data(this[d], "olddisplay") && f._data(this[d], "olddisplay", g) } for (d = 0; d < e; d++) this[d].style && (this[d].style.display = "none"); return this }, _toggle: f.fn.toggle, toggle: function (a, b, c) { var d = typeof a == "boolean"; f.isFunction(a) && f.isFunction(b) ? this._toggle.apply(this, arguments) : a == null || d ? this.each(function () { var b = d ? a : f(this).is(":hidden"); f(this)[b ? "show" : "hide"]() }) : this.animate(cu("toggle", 3), a, b, c); return this }, fadeTo: function (a, b, c, d) { return this.filter(":hidden").css("opacity", 0).show().end().animate({ opacity: b }, a, c, d) }, animate: function (a, b, c, d) { var e = f.speed(b, c, d); if (f.isEmptyObject(a)) return this.each(e.complete, [!1]); a = f.extend({}, a); return this[e.queue === !1 ? "each" : "queue"](function () { e.queue === !1 && f._mark(this); var b = f.extend({}, e), c = this.nodeType === 1, d = c && f(this).is(":hidden"), g, h, i, j, k, l, m, n, o; b.animatedProperties = {}; for (i in a) { g = f.camelCase(i), i !== g && (a[g] = a[i], delete a[i]), h = a[g], f.isArray(h) ? (b.animatedProperties[g] = h[1], h = a[g] = h[0]) : b.animatedProperties[g] = b.specialEasing && b.specialEasing[g] || b.easing || "swing"; if (h === "hide" && d || h === "show" && !d) return b.complete.call(this); c && (g === "height" || g === "width") && (b.overflow = [this.style.overflow, this.style.overflowX, this.style.overflowY], f.css(this, "display") === "inline" && f.css(this, "float") === "none" && (f.support.inlineBlockNeedsLayout ? (j = cv(this.nodeName), j === "inline" ? this.style.display = "inline-block" : (this.style.display = "inline", this.style.zoom = 1)) : this.style.display = "inline-block")) } b.overflow != null && (this.style.overflow = "hidden"); for (i in a) k = new f.fx(this, b, i), h = a[i], cm.test(h) ? k[h === "toggle" ? d ? "show" : "hide" : h]() : (l = cn.exec(h), m = k.cur(), l ? (n = parseFloat(l[2]), o = l[3] || (f.cssNumber[i] ? "" : "px"), o !== "px" && (f.style(this, i, (n || 1) + o), m = (n || 1) / k.cur() * m, f.style(this, i, m + o)), l[1] && (n = (l[1] === "-=" ? -1 : 1) * n + m), k.custom(m, n, o)) : k.custom(m, h, "")); return !0 }) }, stop: function (a, b) { a && this.queue([]), this.each(function () { var a = f.timers, c = a.length; b || f._unmark(!0, this); while (c--) a[c].elem === this && (b && a[c](!0), a.splice(c, 1)) }), b || this.dequeue(); return this } }), f.each({ slideDown: cu("show", 1), slideUp: cu("hide", 1), slideToggle: cu("toggle", 1), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle"} }, function (a, b) { f.fn[a] = function (a, c, d) { return this.animate(b, a, c, d) } }), f.extend({ speed: function (a, b, c) { var d = a && typeof a == "object" ? f.extend({}, a) : { complete: c || !c && b || f.isFunction(a) && a, duration: a, easing: c && b || b && !f.isFunction(b) && b }; d.duration = f.fx.off ? 0 : typeof d.duration == "number" ? d.duration : d.duration in f.fx.speeds ? f.fx.speeds[d.duration] : f.fx.speeds._default, d.old = d.complete, d.complete = function (a) { d.queue !== !1 ? f.dequeue(this) : a !== !1 && f._unmark(this), f.isFunction(d.old) && d.old.call(this) }; return d }, easing: { linear: function (a, b, c, d) { return c + d * a }, swing: function (a, b, c, d) { return (-Math.cos(a * Math.PI) / 2 + .5) * d + c } }, timers: [], fx: function (a, b, c) { this.options = b, this.elem = a, this.prop = c, b.orig = b.orig || {} } }), f.fx.prototype = { update: function () { this.options.step && this.options.step.call(this.elem, this.now, this), (f.fx.step[this.prop] || f.fx.step._default)(this) }, cur: function () { if (this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null)) return this.elem[this.prop]; var a, b = f.css(this.elem, this.prop); return isNaN(a = parseFloat(b)) ? !b || b === "auto" ? 0 : b : a }, custom: function (a, b, c) { function h(a) { return d.step(a) } var d = this, e = f.fx, g; this.startTime = cq || cs(), this.start = a, this.end = b, this.unit = c || this.unit || (f.cssNumber[this.prop] ? "" : "px"), this.now = this.start, this.pos = this.state = 0, h.elem = this.elem, h() && f.timers.push(h) && !co && (cr ? (co = 1, g = function () { co && (cr(g), e.tick()) }, cr(g)) : co = setInterval(e.tick, e.interval)) }, show: function () { this.options.orig[this.prop] = f.style(this.elem, this.prop), this.options.show = !0, this.custom(this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur()), f(this.elem).show() }, hide: function () { this.options.orig[this.prop] = f.style(this.elem, this.prop), this.options.hide = !0, this.custom(this.cur(), 0) }, step: function (a) { var b = cq || cs(), c = !0, d = this.elem, e = this.options, g, h; if (a || b >= e.duration + this.startTime) { this.now = this.end, this.pos = this.state = 1, this.update(), e.animatedProperties[this.prop] = !0; for (g in e.animatedProperties) e.animatedProperties[g] !== !0 && (c = !1); if (c) { e.overflow != null && !f.support.shrinkWrapBlocks && f.each(["", "X", "Y"], function (a, b) { d.style["overflow" + b] = e.overflow[a] }), e.hide && f(d).hide(); if (e.hide || e.show) for (var i in e.animatedProperties) f.style(d, i, e.orig[i]); e.complete.call(d) } return !1 } e.duration == Infinity ? this.now = b : (h = b - this.startTime, this.state = h / e.duration, this.pos = f.easing[e.animatedProperties[this.prop]](this.state, h, 0, 1, e.duration), this.now = this.start + (this.end - this.start) * this.pos), this.update(); return !0 } }, f.extend(f.fx, { tick: function () { for (var a = f.timers, b = 0; b < a.length; ++b) a[b]() || a.splice(b--, 1); a.length || f.fx.stop() }, interval: 13, stop: function () { clearInterval(co), co = null }, speeds: { slow: 600, fast: 200, _default: 400 }, step: { opacity: function (a) { f.style(a.elem, "opacity", a.now) }, _default: function (a) { a.elem.style && a.elem.style[a.prop] != null ? a.elem.style[a.prop] = (a.prop === "width" || a.prop === "height" ? Math.max(0, a.now) : a.now) + a.unit : a.elem[a.prop] = a.now } } }), f.expr && f.expr.filters && (f.expr.filters.animated = function (a) { return f.grep(f.timers, function (b) { return a === b.elem }).length }); var cw = /^t(?:able|d|h)$/i, cx = /^(?:body|html)$/i; "getBoundingClientRect" in c.documentElement ? f.fn.offset = function (a) { var b = this[0], c; if (a) return this.each(function (b) { f.offset.setOffset(this, a, b) }); if (!b || !b.ownerDocument) return null; if (b === b.ownerDocument.body) return f.offset.bodyOffset(b); try { c = b.getBoundingClientRect() } catch (d) { } var e = b.ownerDocument, g = e.documentElement; if (!c || !f.contains(g, b)) return c ? { top: c.top, left: c.left} : { top: 0, left: 0 }; var h = e.body, i = cy(e), j = g.clientTop || h.clientTop || 0, k = g.clientLeft || h.clientLeft || 0, l = i.pageYOffset || f.support.boxModel && g.scrollTop || h.scrollTop, m = i.pageXOffset || f.support.boxModel && g.scrollLeft || h.scrollLeft, n = c.top + l - j, o = c.left + m - k; return { top: n, left: o} } : f.fn.offset = function (a) { var b = this[0]; if (a) return this.each(function (b) { f.offset.setOffset(this, a, b) }); if (!b || !b.ownerDocument) return null; if (b === b.ownerDocument.body) return f.offset.bodyOffset(b); f.offset.initialize(); var c, d = b.offsetParent, e = b, g = b.ownerDocument, h = g.documentElement, i = g.body, j = g.defaultView, k = j ? j.getComputedStyle(b, null) : b.currentStyle, l = b.offsetTop, m = b.offsetLeft; while ((b = b.parentNode) && b !== i && b !== h) { if (f.offset.supportsFixedPosition && k.position === "fixed") break; c = j ? j.getComputedStyle(b, null) : b.currentStyle, l -= b.scrollTop, m -= b.scrollLeft, b === d && (l += b.offsetTop, m += b.offsetLeft, f.offset.doesNotAddBorder && (!f.offset.doesAddBorderForTableAndCells || !cw.test(b.nodeName)) && (l += parseFloat(c.borderTopWidth) || 0, m += parseFloat(c.borderLeftWidth) || 0), e = d, d = b.offsetParent), f.offset.subtractsBorderForOverflowNotVisible && c.overflow !== "visible" && (l += parseFloat(c.borderTopWidth) || 0, m += parseFloat(c.borderLeftWidth) || 0), k = c } if (k.position === "relative" || k.position === "static") l += i.offsetTop, m += i.offsetLeft; f.offset.supportsFixedPosition && k.position === "fixed" && (l += Math.max(h.scrollTop, i.scrollTop), m += Math.max(h.scrollLeft, i.scrollLeft)); return { top: l, left: m} }, f.offset = { initialize: function () { var a = c.body, b = c.createElement("div"), d, e, g, h, i = parseFloat(f.css(a, "marginTop")) || 0, j = "<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>"; f.extend(b.style, { position: "absolute", top: 0, left: 0, margin: 0, border: 0, width: "1px", height: "1px", visibility: "hidden" }), b.innerHTML = j, a.insertBefore(b, a.firstChild), d = b.firstChild, e = d.firstChild, h = d.nextSibling.firstChild.firstChild, this.doesNotAddBorder = e.offsetTop !== 5, this.doesAddBorderForTableAndCells = h.offsetTop === 5, e.style.position = "fixed", e.style.top = "20px", this.supportsFixedPosition = e.offsetTop === 20 || e.offsetTop === 15, e.style.position = e.style.top = "", d.style.overflow = "hidden", d.style.position = "relative", this.subtractsBorderForOverflowNotVisible = e.offsetTop === -5, this.doesNotIncludeMarginInBodyOffset = a.offsetTop !== i, a.removeChild(b), f.offset.initialize = f.noop }, bodyOffset: function (a) { var b = a.offsetTop, c = a.offsetLeft; f.offset.initialize(), f.offset.doesNotIncludeMarginInBodyOffset && (b += parseFloat(f.css(a, "marginTop")) || 0, c += parseFloat(f.css(a, "marginLeft")) || 0); return { top: b, left: c} }, setOffset: function (a, b, c) { var d = f.css(a, "position"); d === "static" && (a.style.position = "relative"); var e = f(a), g = e.offset(), h = f.css(a, "top"), i = f.css(a, "left"), j = (d === "absolute" || d === "fixed") && f.inArray("auto", [h, i]) > -1, k = {}, l = {}, m, n; j ? (l = e.position(), m = l.top, n = l.left) : (m = parseFloat(h) || 0, n = parseFloat(i) || 0), f.isFunction(b) && (b = b.call(a, c, g)), b.top != null && (k.top = b.top - g.top + m), b.left != null && (k.left = b.left - g.left + n), "using" in b ? b.using.call(a, k) : e.css(k) } }, f.fn.extend({ position: function () { if (!this[0]) return null; var a = this[0], b = this.offsetParent(), c = this.offset(), d = cx.test(b[0].nodeName) ? { top: 0, left: 0} : b.offset(); c.top -= parseFloat(f.css(a, "marginTop")) || 0, c.left -= parseFloat(f.css(a, "marginLeft")) || 0, d.top += parseFloat(f.css(b[0], "borderTopWidth")) || 0, d.left += parseFloat(f.css(b[0], "borderLeftWidth")) || 0; return { top: c.top - d.top, left: c.left - d.left} }, offsetParent: function () { return this.map(function () { var a = this.offsetParent || c.body; while (a && !cx.test(a.nodeName) && f.css(a, "position") === "static") a = a.offsetParent; return a }) } }), f.each(["Left", "Top"], function (a, c) { var d = "scroll" + c; f.fn[d] = function (c) { var e, g; if (c === b) { e = this[0]; if (!e) return null; g = cy(e); return g ? "pageXOffset" in g ? g[a ? "pageYOffset" : "pageXOffset"] : f.support.boxModel && g.document.documentElement[d] || g.document.body[d] : e[d] } return this.each(function () { g = cy(this), g ? g.scrollTo(a ? f(g).scrollLeft() : c, a ? c : f(g).scrollTop()) : this[d] = c }) } }), f.each(["Height", "Width"], function (a, c) { var d = c.toLowerCase(); f.fn["inner" + c] = function () { return this[0] ? parseFloat(f.css(this[0], d, "padding")) : null }, f.fn["outer" + c] = function (a) { return this[0] ? parseFloat(f.css(this[0], d, a ? "margin" : "border")) : null }, f.fn[d] = function (a) { var e = this[0]; if (!e) return a == null ? null : this; if (f.isFunction(a)) return this.each(function (b) { var c = f(this); c[d](a.call(this, b, c[d]())) }); if (f.isWindow(e)) { var g = e.document.documentElement["client" + c]; return e.document.compatMode === "CSS1Compat" && g || e.document.body["client" + c] || g } if (e.nodeType === 9) return Math.max(e.documentElement["client" + c], e.body["scroll" + c], e.documentElement["scroll" + c], e.body["offset" + c], e.documentElement["offset" + c]); if (a === b) { var h = f.css(e, d), i = parseFloat(h); return f.isNaN(i) ? h : i } return this.css(d, typeof a == "string" ? a : a + "px") } }), a.jQuery = a.$ = f
})(window);
/**** /englishfirst/_scripts/jquery/jquery.ui.js ****/
/*!
* jQuery UI 1.8.12
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI
*/
(function (b, d) {
    function e(f) { return !b(f).parents().andSelf().filter(function () { return b.curCSS(this, "visibility") === "hidden" || b.expr.filters.hidden(this) }).length } b.ui = b.ui || {}; if (!b.ui.version) {
        b.extend(b.ui, { version: "1.8.12", keyCode: { ALT: 18, BACKSPACE: 8, CAPS_LOCK: 20, COMMA: 188, COMMAND: 91, COMMAND_LEFT: 91, COMMAND_RIGHT: 93, CONTROL: 17, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, INSERT: 45, LEFT: 37, MENU: 93, NUMPAD_ADD: 107, NUMPAD_DECIMAL: 110, NUMPAD_DIVIDE: 111, NUMPAD_ENTER: 108, NUMPAD_MULTIPLY: 106,
            NUMPAD_SUBTRACT: 109, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SHIFT: 16, SPACE: 32, TAB: 9, UP: 38, WINDOWS: 91
        }
        }); b.fn.extend({ _focus: b.fn.focus, focus: function (f, g) { return typeof f === "number" ? this.each(function () { var a = this; setTimeout(function () { b(a).focus(); g && g.call(a) }, f) }) : this._focus.apply(this, arguments) }, scrollParent: function () {
            var f; f = b.browser.msie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? this.parents().filter(function () {
                return /(relative|absolute|fixed)/.test(b.curCSS(this,
"position", 1)) && /(auto|scroll)/.test(b.curCSS(this, "overflow", 1) + b.curCSS(this, "overflow-y", 1) + b.curCSS(this, "overflow-x", 1))
            }).eq(0) : this.parents().filter(function () { return /(auto|scroll)/.test(b.curCSS(this, "overflow", 1) + b.curCSS(this, "overflow-y", 1) + b.curCSS(this, "overflow-x", 1)) }).eq(0); return /fixed/.test(this.css("position")) || !f.length ? b(document) : f
        }, zIndex: function (f) {
            if (f !== d) return this.css("zIndex", f); if (this.length) {
                f = b(this[0]); for (var g; f.length && f[0] !== document; ) {
                    g = f.css("position");
                    if (g === "absolute" || g === "relative" || g === "fixed") { g = parseInt(f.css("zIndex"), 10); if (!isNaN(g) && g !== 0) return g } f = f.parent()
                } 
            } return 0
        }, disableSelection: function () { return this.bind((b.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection", function (f) { f.preventDefault() }) }, enableSelection: function () { return this.unbind(".ui-disableSelection") } 
        }); b.each(["Width", "Height"], function (f, g) {
            function a(j, n, o, l) {
                b.each(c, function () {
                    n -= parseFloat(b.curCSS(j, "padding" + this, true)) || 0; if (o) n -= parseFloat(b.curCSS(j,
"border" + this + "Width", true)) || 0; if (l) n -= parseFloat(b.curCSS(j, "margin" + this, true)) || 0
                }); return n
            } var c = g === "Width" ? ["Left", "Right"] : ["Top", "Bottom"], h = g.toLowerCase(), i = { innerWidth: b.fn.innerWidth, innerHeight: b.fn.innerHeight, outerWidth: b.fn.outerWidth, outerHeight: b.fn.outerHeight }; b.fn["inner" + g] = function (j) { if (j === d) return i["inner" + g].call(this); return this.each(function () { b(this).css(h, a(this, j) + "px") }) }; b.fn["outer" + g] = function (j, n) {
                if (typeof j !== "number") return i["outer" + g].call(this, j); return this.each(function () {
                    b(this).css(h,
a(this, j, true, n) + "px")
                })
            } 
        }); b.extend(b.expr[":"], { data: function (f, g, a) { return !!b.data(f, a[3]) }, focusable: function (f) { var g = f.nodeName.toLowerCase(), a = b.attr(f, "tabindex"); if ("area" === g) { g = f.parentNode; a = g.name; if (!f.href || !a || g.nodeName.toLowerCase() !== "map") return false; f = b("img[usemap=#" + a + "]")[0]; return !!f && e(f) } return (/input|select|textarea|button|object/.test(g) ? !f.disabled : "a" == g ? f.href || !isNaN(a) : !isNaN(a)) && e(f) }, tabbable: function (f) { var g = b.attr(f, "tabindex"); return (isNaN(g) || g >= 0) && b(f).is(":focusable") } });
        b(function () { var f = document.body, g = f.appendChild(g = document.createElement("div")); b.extend(g.style, { minHeight: "100px", height: "auto", padding: 0, borderWidth: 0 }); b.support.minHeight = g.offsetHeight === 100; b.support.selectstart = "onselectstart" in g; f.removeChild(g).style.display = "none" }); b.extend(b.ui, { plugin: { add: function (f, g, a) { f = b.ui[f].prototype; for (var c in a) { f.plugins[c] = f.plugins[c] || []; f.plugins[c].push([g, a[c]]) } }, call: function (f, g, a) {
            if ((g = f.plugins[g]) && f.element[0].parentNode) for (var c = 0; c < g.length; c++) f.options[g[c][0]] &&
g[c][1].apply(f.element, a)
        } 
        }, contains: function (f, g) { return document.compareDocumentPosition ? f.compareDocumentPosition(g) & 16 : f !== g && f.contains(g) }, hasScroll: function (f, g) { if (b(f).css("overflow") === "hidden") return false; g = g && g === "left" ? "scrollLeft" : "scrollTop"; var a = false; if (f[g] > 0) return true; f[g] = 1; a = f[g] > 0; f[g] = 0; return a }, isOverAxis: function (f, g, a) { return f > g && f < g + a }, isOver: function (f, g, a, c, h, i) { return b.ui.isOverAxis(f, a, h) && b.ui.isOverAxis(g, c, i) } 
        })
    } 
})(jQuery);
(function (b, d) {
    if (b.cleanData) { var e = b.cleanData; b.cleanData = function (g) { for (var a = 0, c; (c = g[a]) != null; a++) b(c).triggerHandler("remove"); e(g) } } else { var f = b.fn.remove; b.fn.remove = function (g, a) { return this.each(function () { if (!a) if (!g || b.filter(g, [this]).length) b("*", this).add([this]).each(function () { b(this).triggerHandler("remove") }); return f.call(b(this), g, a) }) } } b.widget = function (g, a, c) {
        var h = g.split(".")[0], i; g = g.split(".")[1]; i = h + "-" + g; if (!c) { c = a; a = b.Widget } b.expr[":"][i] = function (j) {
            return !!b.data(j,
g)
        }; b[h] = b[h] || {}; b[h][g] = function (j, n) { arguments.length && this._createWidget(j, n) }; a = new a; a.options = b.extend(true, {}, a.options); b[h][g].prototype = b.extend(true, a, { namespace: h, widgetName: g, widgetEventPrefix: b[h][g].prototype.widgetEventPrefix || g, widgetBaseClass: i }, c); b.widget.bridge(g, b[h][g])
    }; b.widget.bridge = function (g, a) {
        b.fn[g] = function (c) {
            var h = typeof c === "string", i = Array.prototype.slice.call(arguments, 1), j = this; c = !h && i.length ? b.extend.apply(null, [true, c].concat(i)) : c; if (h && c.charAt(0) === "_") return j;
            h ? this.each(function () { var n = b.data(this, g), o = n && b.isFunction(n[c]) ? n[c].apply(n, i) : n; if (o !== n && o !== d) { j = o; return false } }) : this.each(function () { var n = b.data(this, g); n ? n.option(c || {})._init() : b.data(this, g, new a(c, this)) }); return j
        } 
    }; b.Widget = function (g, a) { arguments.length && this._createWidget(g, a) }; b.Widget.prototype = { widgetName: "widget", widgetEventPrefix: "", options: { disabled: false }, _createWidget: function (g, a) {
        b.data(a, this.widgetName, this); this.element = b(a); this.options = b.extend(true, {}, this.options,
this._getCreateOptions(), g); var c = this; this.element.bind("remove." + this.widgetName, function () { c.destroy() }); this._create(); this._trigger("create"); this._init()
    }, _getCreateOptions: function () { return b.metadata && b.metadata.get(this.element[0])[this.widgetName] }, _create: function () { }, _init: function () { }, destroy: function () { this.element.unbind("." + this.widgetName).removeData(this.widgetName); this.widget().unbind("." + this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass + "-disabled ui-state-disabled") },
        widget: function () { return this.element }, option: function (g, a) { var c = g; if (arguments.length === 0) return b.extend({}, this.options); if (typeof g === "string") { if (a === d) return this.options[g]; c = {}; c[g] = a } this._setOptions(c); return this }, _setOptions: function (g) { var a = this; b.each(g, function (c, h) { a._setOption(c, h) }); return this }, _setOption: function (g, a) { this.options[g] = a; if (g === "disabled") this.widget()[a ? "addClass" : "removeClass"](this.widgetBaseClass + "-disabled ui-state-disabled").attr("aria-disabled", a); return this },
        enable: function () { return this._setOption("disabled", false) }, disable: function () { return this._setOption("disabled", true) }, _trigger: function (g, a, c) { var h = this.options[g]; a = b.Event(a); a.type = (g === this.widgetEventPrefix ? g : this.widgetEventPrefix + g).toLowerCase(); c = c || {}; if (a.originalEvent) { g = b.event.props.length; for (var i; g; ) { i = b.event.props[--g]; a[i] = a.originalEvent[i] } } this.element.trigger(a, c); return !(b.isFunction(h) && h.call(this.element[0], a, c) === false || a.isDefaultPrevented()) } 
    }
})(jQuery);
(function (b) {
    b.widget("ui.mouse", { options: { cancel: ":input,option", distance: 1, delay: 0 }, _mouseInit: function () { var d = this; this.element.bind("mousedown." + this.widgetName, function (e) { return d._mouseDown(e) }).bind("click." + this.widgetName, function (e) { if (true === b.data(e.target, d.widgetName + ".preventClickEvent")) { b.removeData(e.target, d.widgetName + ".preventClickEvent"); e.stopImmediatePropagation(); return false } }); this.started = false }, _mouseDestroy: function () { this.element.unbind("." + this.widgetName) }, _mouseDown: function (d) {
        d.originalEvent =
d.originalEvent || {}; if (!d.originalEvent.mouseHandled) {
            this._mouseStarted && this._mouseUp(d); this._mouseDownEvent = d; var e = this, f = d.which == 1, g = typeof this.options.cancel == "string" ? b(d.target).parents().add(d.target).filter(this.options.cancel).length : false; if (!f || g || !this._mouseCapture(d)) return true; this.mouseDelayMet = !this.options.delay; if (!this.mouseDelayMet) this._mouseDelayTimer = setTimeout(function () { e.mouseDelayMet = true }, this.options.delay); if (this._mouseDistanceMet(d) && this._mouseDelayMet(d)) {
                this._mouseStarted =
this._mouseStart(d) !== false; if (!this._mouseStarted) { d.preventDefault(); return true } 
            } true === b.data(d.target, this.widgetName + ".preventClickEvent") && b.removeData(d.target, this.widgetName + ".preventClickEvent"); this._mouseMoveDelegate = function (a) { return e._mouseMove(a) }; this._mouseUpDelegate = function (a) { return e._mouseUp(a) }; b(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate); d.preventDefault(); return d.originalEvent.mouseHandled =
true
        } 
    }, _mouseMove: function (d) { if (b.browser.msie && !(document.documentMode >= 9) && !d.button) return this._mouseUp(d); if (this._mouseStarted) { this._mouseDrag(d); return d.preventDefault() } if (this._mouseDistanceMet(d) && this._mouseDelayMet(d)) (this._mouseStarted = this._mouseStart(this._mouseDownEvent, d) !== false) ? this._mouseDrag(d) : this._mouseUp(d); return !this._mouseStarted }, _mouseUp: function (d) {
        b(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate);
        if (this._mouseStarted) { this._mouseStarted = false; d.target == this._mouseDownEvent.target && b.data(d.target, this.widgetName + ".preventClickEvent", true); this._mouseStop(d) } return false
    }, _mouseDistanceMet: function (d) { return Math.max(Math.abs(this._mouseDownEvent.pageX - d.pageX), Math.abs(this._mouseDownEvent.pageY - d.pageY)) >= this.options.distance }, _mouseDelayMet: function () { return this.mouseDelayMet }, _mouseStart: function () { }, _mouseDrag: function () { }, _mouseStop: function () { }, _mouseCapture: function () { return true } 
    })
})(jQuery);
(function (b) {
    b.widget("ui.draggable", b.ui.mouse, { widgetEventPrefix: "drag", options: { addClasses: true, appendTo: "parent", axis: false, connectToSortable: false, containment: false, cursor: "auto", cursorAt: false, grid: false, handle: false, helper: "original", iframeFix: false, opacity: false, refreshPositions: false, revert: false, revertDuration: 500, scope: "default", scroll: true, scrollSensitivity: 20, scrollSpeed: 20, snap: false, snapMode: "both", snapTolerance: 20, stack: false, zIndex: false }, _create: function () {
        if (this.options.helper ==
"original" && !/^(?:r|a|f)/.test(this.element.css("position"))) this.element[0].style.position = "relative"; this.options.addClasses && this.element.addClass("ui-draggable"); this.options.disabled && this.element.addClass("ui-draggable-disabled"); this._mouseInit()
    }, destroy: function () { if (this.element.data("draggable")) { this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"); this._mouseDestroy(); return this } }, _mouseCapture: function (d) {
        var e =
this.options; if (this.helper || e.disabled || b(d.target).is(".ui-resizable-handle")) return false; this.handle = this._getHandle(d); if (!this.handle) return false; return true
    }, _mouseStart: function (d) {
        var e = this.options; this.helper = this._createHelper(d); this._cacheHelperProportions(); if (b.ui.ddmanager) b.ui.ddmanager.current = this; this._cacheMargins(); this.cssPosition = this.helper.css("position"); this.scrollParent = this.helper.scrollParent(); this.offset = this.positionAbs = this.element.offset(); this.offset = { top: this.offset.top -
this.margins.top, left: this.offset.left - this.margins.left
        }; b.extend(this.offset, { click: { left: d.pageX - this.offset.left, top: d.pageY - this.offset.top }, parent: this._getParentOffset(), relative: this._getRelativeOffset() }); this.originalPosition = this.position = this._generatePosition(d); this.originalPageX = d.pageX; this.originalPageY = d.pageY; e.cursorAt && this._adjustOffsetFromHelper(e.cursorAt); e.containment && this._setContainment(); if (this._trigger("start", d) === false) { this._clear(); return false } this._cacheHelperProportions();
        b.ui.ddmanager && !e.dropBehaviour && b.ui.ddmanager.prepareOffsets(this, d); this.helper.addClass("ui-draggable-dragging"); this._mouseDrag(d, true); return true
    }, _mouseDrag: function (d, e) {
        this.position = this._generatePosition(d); this.positionAbs = this._convertPositionTo("absolute"); if (!e) { e = this._uiHash(); if (this._trigger("drag", d, e) === false) { this._mouseUp({}); return false } this.position = e.position } if (!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left + "px"; if (!this.options.axis ||
this.options.axis != "x") this.helper[0].style.top = this.position.top + "px"; b.ui.ddmanager && b.ui.ddmanager.drag(this, d); return false
    }, _mouseStop: function (d) {
        var e = false; if (b.ui.ddmanager && !this.options.dropBehaviour) e = b.ui.ddmanager.drop(this, d); if (this.dropped) { e = this.dropped; this.dropped = false } if ((!this.element[0] || !this.element[0].parentNode) && this.options.helper == "original") return false; if (this.options.revert == "invalid" && !e || this.options.revert == "valid" && e || this.options.revert === true || b.isFunction(this.options.revert) &&
this.options.revert.call(this.element, e)) { var f = this; b(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function () { f._trigger("stop", d) !== false && f._clear() }) } else this._trigger("stop", d) !== false && this._clear(); return false
    }, cancel: function () { this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear(); return this }, _getHandle: function (d) {
        var e = !this.options.handle || !b(this.options.handle, this.element).length ? true : false; b(this.options.handle, this.element).find("*").andSelf().each(function () {
            if (this ==
d.target) e = true
        }); return e
    }, _createHelper: function (d) { var e = this.options; d = b.isFunction(e.helper) ? b(e.helper.apply(this.element[0], [d])) : e.helper == "clone" ? this.element.clone() : this.element; d.parents("body").length || d.appendTo(e.appendTo == "parent" ? this.element[0].parentNode : e.appendTo); d[0] != this.element[0] && !/(fixed|absolute)/.test(d.css("position")) && d.css("position", "absolute"); return d }, _adjustOffsetFromHelper: function (d) {
        if (typeof d == "string") d = d.split(" "); if (b.isArray(d)) d = { left: +d[0], top: +d[1] ||
0
        }; if ("left" in d) this.offset.click.left = d.left + this.margins.left; if ("right" in d) this.offset.click.left = this.helperProportions.width - d.right + this.margins.left; if ("top" in d) this.offset.click.top = d.top + this.margins.top; if ("bottom" in d) this.offset.click.top = this.helperProportions.height - d.bottom + this.margins.top
    }, _getParentOffset: function () {
        this.offsetParent = this.helper.offsetParent(); var d = this.offsetParent.offset(); if (this.cssPosition == "absolute" && this.scrollParent[0] != document && b.ui.contains(this.scrollParent[0],
this.offsetParent[0])) { d.left += this.scrollParent.scrollLeft(); d.top += this.scrollParent.scrollTop() } if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && b.browser.msie) d = { top: 0, left: 0 }; return { top: d.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), left: d.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)}
    }, _getRelativeOffset: function () {
        if (this.cssPosition == "relative") {
            var d = this.element.position(); return { top: d.top -
(parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), left: d.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
            }
        } else return { top: 0, left: 0}
    }, _cacheMargins: function () { this.margins = { left: parseInt(this.element.css("marginLeft"), 10) || 0, top: parseInt(this.element.css("marginTop"), 10) || 0, right: parseInt(this.element.css("marginRight"), 10) || 0, bottom: parseInt(this.element.css("marginBottom"), 10) || 0} }, _cacheHelperProportions: function () {
        this.helperProportions = { width: this.helper.outerWidth(),
            height: this.helper.outerHeight()
        }
    }, _setContainment: function () {
        var d = this.options; if (d.containment == "parent") d.containment = this.helper[0].parentNode; if (d.containment == "document" || d.containment == "window") this.containment = [(d.containment == "document" ? 0 : b(window).scrollLeft()) - this.offset.relative.left - this.offset.parent.left, (d.containment == "document" ? 0 : b(window).scrollTop()) - this.offset.relative.top - this.offset.parent.top, (d.containment == "document" ? 0 : b(window).scrollLeft()) + b(d.containment == "document" ?
document : window).width() - this.helperProportions.width - this.margins.left, (d.containment == "document" ? 0 : b(window).scrollTop()) + (b(d.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]; if (!/^(document|window|parent)$/.test(d.containment) && d.containment.constructor != Array) {
            var e = b(d.containment)[0]; if (e) {
                d = b(d.containment).offset(); var f = b(e).css("overflow") != "hidden"; this.containment = [d.left + (parseInt(b(e).css("borderLeftWidth"),
10) || 0) + (parseInt(b(e).css("paddingLeft"), 10) || 0), d.top + (parseInt(b(e).css("borderTopWidth"), 10) || 0) + (parseInt(b(e).css("paddingTop"), 10) || 0), d.left + (f ? Math.max(e.scrollWidth, e.offsetWidth) : e.offsetWidth) - (parseInt(b(e).css("borderLeftWidth"), 10) || 0) - (parseInt(b(e).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, d.top + (f ? Math.max(e.scrollHeight, e.offsetHeight) : e.offsetHeight) - (parseInt(b(e).css("borderTopWidth"), 10) || 0) - (parseInt(b(e).css("paddingBottom"),
10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom]
            } 
        } else if (d.containment.constructor == Array) this.containment = d.containment
    }, _convertPositionTo: function (d, e) {
        if (!e) e = this.position; d = d == "absolute" ? 1 : -1; var f = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && b.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, g = /(html|body)/i.test(f[0].tagName); return { top: e.top + this.offset.relative.top * d + this.offset.parent.top * d - (b.browser.safari &&
b.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : g ? 0 : f.scrollTop()) * d), left: e.left + this.offset.relative.left * d + this.offset.parent.left * d - (b.browser.safari && b.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : g ? 0 : f.scrollLeft()) * d)
        }
    }, _generatePosition: function (d) {
        var e = this.options, f = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && b.ui.contains(this.scrollParent[0],
this.offsetParent[0])) ? this.offsetParent : this.scrollParent, g = /(html|body)/i.test(f[0].tagName), a = d.pageX, c = d.pageY; if (this.originalPosition) {
            if (this.containment) {
                if (d.pageX - this.offset.click.left < this.containment[0]) a = this.containment[0] + this.offset.click.left; if (d.pageY - this.offset.click.top < this.containment[1]) c = this.containment[1] + this.offset.click.top; if (d.pageX - this.offset.click.left > this.containment[2]) a = this.containment[2] + this.offset.click.left; if (d.pageY - this.offset.click.top > this.containment[3]) c =
this.containment[3] + this.offset.click.top
            } if (e.grid) {
                c = this.originalPageY + Math.round((c - this.originalPageY) / e.grid[1]) * e.grid[1]; c = this.containment ? !(c - this.offset.click.top < this.containment[1] || c - this.offset.click.top > this.containment[3]) ? c : !(c - this.offset.click.top < this.containment[1]) ? c - e.grid[1] : c + e.grid[1] : c; a = this.originalPageX + Math.round((a - this.originalPageX) / e.grid[0]) * e.grid[0]; a = this.containment ? !(a - this.offset.click.left < this.containment[0] || a - this.offset.click.left > this.containment[2]) ?
a : !(a - this.offset.click.left < this.containment[0]) ? a - e.grid[0] : a + e.grid[0] : a
            } 
        } return { top: c - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (b.browser.safari && b.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : g ? 0 : f.scrollTop()), left: a - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (b.browser.safari && b.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() :
g ? 0 : f.scrollLeft())
        }
    }, _clear: function () { this.helper.removeClass("ui-draggable-dragging"); this.helper[0] != this.element[0] && !this.cancelHelperRemoval && this.helper.remove(); this.helper = null; this.cancelHelperRemoval = false }, _trigger: function (d, e, f) { f = f || this._uiHash(); b.ui.plugin.call(this, d, [e, f]); if (d == "drag") this.positionAbs = this._convertPositionTo("absolute"); return b.Widget.prototype._trigger.call(this, d, e, f) }, plugins: {}, _uiHash: function () {
        return { helper: this.helper, position: this.position, originalPosition: this.originalPosition,
            offset: this.positionAbs
        }
    } 
    }); b.extend(b.ui.draggable, { version: "1.8.12" }); b.ui.plugin.add("draggable", "connectToSortable", { start: function (d, e) { var f = b(this).data("draggable"), g = f.options, a = b.extend({}, e, { item: f.element }); f.sortables = []; b(g.connectToSortable).each(function () { var c = b.data(this, "sortable"); if (c && !c.options.disabled) { f.sortables.push({ instance: c, shouldRevert: c.options.revert }); c.refreshPositions(); c._trigger("activate", d, a) } }) }, stop: function (d, e) {
        var f = b(this).data("draggable"), g = b.extend({},
e, { item: f.element }); b.each(f.sortables, function () { if (this.instance.isOver) { this.instance.isOver = 0; f.cancelHelperRemoval = true; this.instance.cancelHelperRemoval = false; if (this.shouldRevert) this.instance.options.revert = true; this.instance._mouseStop(d); this.instance.options.helper = this.instance.options._helper; f.options.helper == "original" && this.instance.currentItem.css({ top: "auto", left: "auto" }) } else { this.instance.cancelHelperRemoval = false; this.instance._trigger("deactivate", d, g) } })
    }, drag: function (d, e) {
        var f =
b(this).data("draggable"), g = this; b.each(f.sortables, function () {
    this.instance.positionAbs = f.positionAbs; this.instance.helperProportions = f.helperProportions; this.instance.offset.click = f.offset.click; if (this.instance._intersectsWith(this.instance.containerCache)) {
        if (!this.instance.isOver) {
            this.instance.isOver = 1; this.instance.currentItem = b(g).clone().appendTo(this.instance.element).data("sortable-item", true); this.instance.options._helper = this.instance.options.helper; this.instance.options.helper = function () { return e.helper[0] };
            d.target = this.instance.currentItem[0]; this.instance._mouseCapture(d, true); this.instance._mouseStart(d, true, true); this.instance.offset.click.top = f.offset.click.top; this.instance.offset.click.left = f.offset.click.left; this.instance.offset.parent.left -= f.offset.parent.left - this.instance.offset.parent.left; this.instance.offset.parent.top -= f.offset.parent.top - this.instance.offset.parent.top; f._trigger("toSortable", d); f.dropped = this.instance.element; f.currentItem = f.element; this.instance.fromOutside = f
        } this.instance.currentItem &&
this.instance._mouseDrag(d)
    } else if (this.instance.isOver) { this.instance.isOver = 0; this.instance.cancelHelperRemoval = true; this.instance.options.revert = false; this.instance._trigger("out", d, this.instance._uiHash(this.instance)); this.instance._mouseStop(d, true); this.instance.options.helper = this.instance.options._helper; this.instance.currentItem.remove(); this.instance.placeholder && this.instance.placeholder.remove(); f._trigger("fromSortable", d); f.dropped = false } 
})
    } 
    }); b.ui.plugin.add("draggable", "cursor",
{ start: function () { var d = b("body"), e = b(this).data("draggable").options; if (d.css("cursor")) e._cursor = d.css("cursor"); d.css("cursor", e.cursor) }, stop: function () { var d = b(this).data("draggable").options; d._cursor && b("body").css("cursor", d._cursor) } }); b.ui.plugin.add("draggable", "iframeFix", { start: function () {
    var d = b(this).data("draggable").options; b(d.iframeFix === true ? "iframe" : d.iframeFix).each(function () {
        b('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({ width: this.offsetWidth +
"px", height: this.offsetHeight + "px", position: "absolute", opacity: "0.001", zIndex: 1E3
        }).css(b(this).offset()).appendTo("body")
    })
}, stop: function () { b("div.ui-draggable-iframeFix").each(function () { this.parentNode.removeChild(this) }) } 
}); b.ui.plugin.add("draggable", "opacity", { start: function (d, e) { d = b(e.helper); e = b(this).data("draggable").options; if (d.css("opacity")) e._opacity = d.css("opacity"); d.css("opacity", e.opacity) }, stop: function (d, e) {
    d = b(this).data("draggable").options; d._opacity && b(e.helper).css("opacity",
d._opacity)
} 
}); b.ui.plugin.add("draggable", "scroll", { start: function () { var d = b(this).data("draggable"); if (d.scrollParent[0] != document && d.scrollParent[0].tagName != "HTML") d.overflowOffset = d.scrollParent.offset() }, drag: function (d) {
    var e = b(this).data("draggable"), f = e.options, g = false; if (e.scrollParent[0] != document && e.scrollParent[0].tagName != "HTML") {
        if (!f.axis || f.axis != "x") if (e.overflowOffset.top + e.scrollParent[0].offsetHeight - d.pageY < f.scrollSensitivity) e.scrollParent[0].scrollTop = g = e.scrollParent[0].scrollTop +
f.scrollSpeed; else if (d.pageY - e.overflowOffset.top < f.scrollSensitivity) e.scrollParent[0].scrollTop = g = e.scrollParent[0].scrollTop - f.scrollSpeed; if (!f.axis || f.axis != "y") if (e.overflowOffset.left + e.scrollParent[0].offsetWidth - d.pageX < f.scrollSensitivity) e.scrollParent[0].scrollLeft = g = e.scrollParent[0].scrollLeft + f.scrollSpeed; else if (d.pageX - e.overflowOffset.left < f.scrollSensitivity) e.scrollParent[0].scrollLeft = g = e.scrollParent[0].scrollLeft - f.scrollSpeed
    } else {
        if (!f.axis || f.axis != "x") if (d.pageY - b(document).scrollTop() <
f.scrollSensitivity) g = b(document).scrollTop(b(document).scrollTop() - f.scrollSpeed); else if (b(window).height() - (d.pageY - b(document).scrollTop()) < f.scrollSensitivity) g = b(document).scrollTop(b(document).scrollTop() + f.scrollSpeed); if (!f.axis || f.axis != "y") if (d.pageX - b(document).scrollLeft() < f.scrollSensitivity) g = b(document).scrollLeft(b(document).scrollLeft() - f.scrollSpeed); else if (b(window).width() - (d.pageX - b(document).scrollLeft()) < f.scrollSensitivity) g = b(document).scrollLeft(b(document).scrollLeft() +
f.scrollSpeed)
    } g !== false && b.ui.ddmanager && !f.dropBehaviour && b.ui.ddmanager.prepareOffsets(e, d)
} 
}); b.ui.plugin.add("draggable", "snap", { start: function () { var d = b(this).data("draggable"), e = d.options; d.snapElements = []; b(e.snap.constructor != String ? e.snap.items || ":data(draggable)" : e.snap).each(function () { var f = b(this), g = f.offset(); this != d.element[0] && d.snapElements.push({ item: this, width: f.outerWidth(), height: f.outerHeight(), top: g.top, left: g.left }) }) }, drag: function (d, e) {
    for (var f = b(this).data("draggable"),
g = f.options, a = g.snapTolerance, c = e.offset.left, h = c + f.helperProportions.width, i = e.offset.top, j = i + f.helperProportions.height, n = f.snapElements.length - 1; n >= 0; n--) {
        var o = f.snapElements[n].left, l = o + f.snapElements[n].width, k = f.snapElements[n].top, m = k + f.snapElements[n].height; if (o - a < c && c < l + a && k - a < i && i < m + a || o - a < c && c < l + a && k - a < j && j < m + a || o - a < h && h < l + a && k - a < i && i < m + a || o - a < h && h < l + a && k - a < j && j < m + a) {
            if (g.snapMode != "inner") {
                var p = Math.abs(k - j) <= a, q = Math.abs(m - i) <= a, s = Math.abs(o - h) <= a, r = Math.abs(l - c) <= a; if (p) e.position.top =
f._convertPositionTo("relative", { top: k - f.helperProportions.height, left: 0 }).top - f.margins.top; if (q) e.position.top = f._convertPositionTo("relative", { top: m, left: 0 }).top - f.margins.top; if (s) e.position.left = f._convertPositionTo("relative", { top: 0, left: o - f.helperProportions.width }).left - f.margins.left; if (r) e.position.left = f._convertPositionTo("relative", { top: 0, left: l }).left - f.margins.left
            } var u = p || q || s || r; if (g.snapMode != "outer") {
                p = Math.abs(k - i) <= a; q = Math.abs(m - j) <= a; s = Math.abs(o - c) <= a; r = Math.abs(l - h) <= a; if (p) e.position.top =
f._convertPositionTo("relative", { top: k, left: 0 }).top - f.margins.top; if (q) e.position.top = f._convertPositionTo("relative", { top: m - f.helperProportions.height, left: 0 }).top - f.margins.top; if (s) e.position.left = f._convertPositionTo("relative", { top: 0, left: o }).left - f.margins.left; if (r) e.position.left = f._convertPositionTo("relative", { top: 0, left: l - f.helperProportions.width }).left - f.margins.left
            } if (!f.snapElements[n].snapping && (p || q || s || r || u)) f.options.snap.snap && f.options.snap.snap.call(f.element, d, b.extend(f._uiHash(),
{ snapItem: f.snapElements[n].item })); f.snapElements[n].snapping = p || q || s || r || u
        } else { f.snapElements[n].snapping && f.options.snap.release && f.options.snap.release.call(f.element, d, b.extend(f._uiHash(), { snapItem: f.snapElements[n].item })); f.snapElements[n].snapping = false } 
    } 
} 
}); b.ui.plugin.add("draggable", "stack", { start: function () {
    var d = b(this).data("draggable").options; d = b.makeArray(b(d.stack)).sort(function (f, g) { return (parseInt(b(f).css("zIndex"), 10) || 0) - (parseInt(b(g).css("zIndex"), 10) || 0) }); if (d.length) {
        var e =
parseInt(d[0].style.zIndex) || 0; b(d).each(function (f) { this.style.zIndex = e + f }); this[0].style.zIndex = e + d.length
    } 
} 
}); b.ui.plugin.add("draggable", "zIndex", { start: function (d, e) { d = b(e.helper); e = b(this).data("draggable").options; if (d.css("zIndex")) e._zIndex = d.css("zIndex"); d.css("zIndex", e.zIndex) }, stop: function (d, e) { d = b(this).data("draggable").options; d._zIndex && b(e.helper).css("zIndex", d._zIndex) } })
})(jQuery);
(function (b) {
    b.widget("ui.droppable", { widgetEventPrefix: "drop", options: { accept: "*", activeClass: false, addClasses: true, greedy: false, hoverClass: false, scope: "default", tolerance: "intersect" }, _create: function () {
        var d = this.options, e = d.accept; this.isover = 0; this.isout = 1; this.accept = b.isFunction(e) ? e : function (f) { return f.is(e) }; this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight }; b.ui.ddmanager.droppables[d.scope] = b.ui.ddmanager.droppables[d.scope] || []; b.ui.ddmanager.droppables[d.scope].push(this);
        d.addClasses && this.element.addClass("ui-droppable")
    }, destroy: function () { for (var d = b.ui.ddmanager.droppables[this.options.scope], e = 0; e < d.length; e++) d[e] == this && d.splice(e, 1); this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable"); return this }, _setOption: function (d, e) { if (d == "accept") this.accept = b.isFunction(e) ? e : function (f) { return f.is(e) }; b.Widget.prototype._setOption.apply(this, arguments) }, _activate: function (d) {
        var e = b.ui.ddmanager.current; this.options.activeClass &&
this.element.addClass(this.options.activeClass); e && this._trigger("activate", d, this.ui(e))
    }, _deactivate: function (d) { var e = b.ui.ddmanager.current; this.options.activeClass && this.element.removeClass(this.options.activeClass); e && this._trigger("deactivate", d, this.ui(e)) }, _over: function (d) {
        var e = b.ui.ddmanager.current; if (!(!e || (e.currentItem || e.element)[0] == this.element[0])) if (this.accept.call(this.element[0], e.currentItem || e.element)) {
            this.options.hoverClass && this.element.addClass(this.options.hoverClass);
            this._trigger("over", d, this.ui(e))
        } 
    }, _out: function (d) { var e = b.ui.ddmanager.current; if (!(!e || (e.currentItem || e.element)[0] == this.element[0])) if (this.accept.call(this.element[0], e.currentItem || e.element)) { this.options.hoverClass && this.element.removeClass(this.options.hoverClass); this._trigger("out", d, this.ui(e)) } }, _drop: function (d, e) {
        var f = e || b.ui.ddmanager.current; if (!f || (f.currentItem || f.element)[0] == this.element[0]) return false; var g = false; this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function () {
            var a =
b.data(this, "droppable"); if (a.options.greedy && !a.options.disabled && a.options.scope == f.options.scope && a.accept.call(a.element[0], f.currentItem || f.element) && b.ui.intersect(f, b.extend(a, { offset: a.element.offset() }), a.options.tolerance)) { g = true; return false } 
        }); if (g) return false; if (this.accept.call(this.element[0], f.currentItem || f.element)) {
            this.options.activeClass && this.element.removeClass(this.options.activeClass); this.options.hoverClass && this.element.removeClass(this.options.hoverClass); this._trigger("drop",
d, this.ui(f)); return this.element
        } return false
    }, ui: function (d) { return { draggable: d.currentItem || d.element, helper: d.helper, position: d.position, offset: d.positionAbs} } 
    }); b.extend(b.ui.droppable, { version: "1.8.12" }); b.ui.intersect = function (d, e, f) {
        if (!e.offset) return false; var g = (d.positionAbs || d.position.absolute).left, a = g + d.helperProportions.width, c = (d.positionAbs || d.position.absolute).top, h = c + d.helperProportions.height, i = e.offset.left, j = i + e.proportions.width, n = e.offset.top, o = n + e.proportions.height;
        switch (f) {
            case "fit": return i <= g && a <= j && n <= c && h <= o; case "intersect": return i < g + d.helperProportions.width / 2 && a - d.helperProportions.width / 2 < j && n < c + d.helperProportions.height / 2 && h - d.helperProportions.height / 2 < o; case "pointer": return b.ui.isOver((d.positionAbs || d.position.absolute).top + (d.clickOffset || d.offset.click).top, (d.positionAbs || d.position.absolute).left + (d.clickOffset || d.offset.click).left, n, i, e.proportions.height, e.proportions.width); case "touch": return (c >= n && c <= o || h >= n && h <= o || c < n && h > o) && (g >=
i && g <= j || a >= i && a <= j || g < i && a > j); default: return false
        } 
    }; b.ui.ddmanager = { current: null, droppables: { "default": [] }, prepareOffsets: function (d, e) {
        var f = b.ui.ddmanager.droppables[d.options.scope] || [], g = e ? e.type : null, a = (d.currentItem || d.element).find(":data(droppable)").andSelf(), c = 0; a: for (; c < f.length; c++) if (!(f[c].options.disabled || d && !f[c].accept.call(f[c].element[0], d.currentItem || d.element))) {
            for (var h = 0; h < a.length; h++) if (a[h] == f[c].element[0]) { f[c].proportions.height = 0; continue a } f[c].visible = f[c].element.css("display") !=
"none"; if (f[c].visible) { g == "mousedown" && f[c]._activate.call(f[c], e); f[c].offset = f[c].element.offset(); f[c].proportions = { width: f[c].element[0].offsetWidth, height: f[c].element[0].offsetHeight} } 
        } 
    }, drop: function (d, e) {
        var f = false; b.each(b.ui.ddmanager.droppables[d.options.scope] || [], function () {
            if (this.options) {
                if (!this.options.disabled && this.visible && b.ui.intersect(d, this, this.options.tolerance)) f = f || this._drop.call(this, e); if (!this.options.disabled && this.visible && this.accept.call(this.element[0], d.currentItem ||
d.element)) { this.isout = 1; this.isover = 0; this._deactivate.call(this, e) } 
            } 
        }); return f
    }, drag: function (d, e) {
        d.options.refreshPositions && b.ui.ddmanager.prepareOffsets(d, e); b.each(b.ui.ddmanager.droppables[d.options.scope] || [], function () {
            if (!(this.options.disabled || this.greedyChild || !this.visible)) {
                var f = b.ui.intersect(d, this, this.options.tolerance); if (f = !f && this.isover == 1 ? "isout" : f && this.isover == 0 ? "isover" : null) {
                    var g; if (this.options.greedy) {
                        var a = this.element.parents(":data(droppable):eq(0)"); if (a.length) {
                            g =
b.data(a[0], "droppable"); g.greedyChild = f == "isover" ? 1 : 0
                        } 
                    } if (g && f == "isover") { g.isover = 0; g.isout = 1; g._out.call(g, e) } this[f] = 1; this[f == "isout" ? "isover" : "isout"] = 0; this[f == "isover" ? "_over" : "_out"].call(this, e); if (g && f == "isout") { g.isout = 0; g.isover = 1; g._over.call(g, e) } 
                } 
            } 
        })
    } 
    }
})(jQuery);
(function (b) {
    b.widget("ui.resizable", b.ui.mouse, { widgetEventPrefix: "resize", options: { alsoResize: false, animate: false, animateDuration: "slow", animateEasing: "swing", aspectRatio: false, autoHide: false, containment: false, ghost: false, grid: false, handles: "e,s,se", helper: false, maxHeight: null, maxWidth: null, minHeight: 10, minWidth: 10, zIndex: 1E3 }, _create: function () {
        var f = this, g = this.options; this.element.addClass("ui-resizable"); b.extend(this, { _aspectRatio: !!g.aspectRatio, aspectRatio: g.aspectRatio, originalElement: this.element,
            _proportionallyResizeElements: [], _helper: g.helper || g.ghost || g.animate ? g.helper || "ui-resizable-helper" : null
        }); if (this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) {
            /relative/.test(this.element.css("position")) && b.browser.opera && this.element.css({ position: "relative", top: "auto", left: "auto" }); this.element.wrap(b('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({ position: this.element.css("position"), width: this.element.outerWidth(), height: this.element.outerHeight(),
                top: this.element.css("top"), left: this.element.css("left")
            })); this.element = this.element.parent().data("resizable", this.element.data("resizable")); this.elementIsWrapper = true; this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") }); this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0 }); this.originalResizeStyle =
this.originalElement.css("resize"); this.originalElement.css("resize", "none"); this._proportionallyResizeElements.push(this.originalElement.css({ position: "static", zoom: 1, display: "block" })); this.originalElement.css({ margin: this.originalElement.css("margin") }); this._proportionallyResize()
        } this.handles = g.handles || (!b(".ui-resizable-handle", this.element).length ? "e,s,se" : { n: ".ui-resizable-n", e: ".ui-resizable-e", s: ".ui-resizable-s", w: ".ui-resizable-w", se: ".ui-resizable-se", sw: ".ui-resizable-sw", ne: ".ui-resizable-ne",
            nw: ".ui-resizable-nw"
        }); if (this.handles.constructor == String) { if (this.handles == "all") this.handles = "n,e,s,w,se,sw,ne,nw"; var a = this.handles.split(","); this.handles = {}; for (var c = 0; c < a.length; c++) { var h = b.trim(a[c]), i = b('<div class="ui-resizable-handle ' + ("ui-resizable-" + h) + '"></div>'); /sw|se|ne|nw/.test(h) && i.css({ zIndex: ++g.zIndex }); "se" == h && i.addClass("ui-icon ui-icon-gripsmall-diagonal-se"); this.handles[h] = ".ui-resizable-" + h; this.element.append(i) } } this._renderAxis = function (j) {
            j = j || this.element; for (var n in this.handles) {
                if (this.handles[n].constructor ==
String) this.handles[n] = b(this.handles[n], this.element).show(); if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) { var o = b(this.handles[n], this.element), l = 0; l = /sw|ne|nw|se|n|s/.test(n) ? o.outerHeight() : o.outerWidth(); o = ["padding", /ne|nw|n/.test(n) ? "Top" : /se|sw|s/.test(n) ? "Bottom" : /^e$/.test(n) ? "Right" : "Left"].join(""); j.css(o, l); this._proportionallyResize() } b(this.handles[n])
            } 
        }; this._renderAxis(this.element); this._handles = b(".ui-resizable-handle", this.element).disableSelection();
        this._handles.mouseover(function () { if (!f.resizing) { if (this.className) var j = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i); f.axis = j && j[1] ? j[1] : "se" } }); if (g.autoHide) { this._handles.hide(); b(this.element).addClass("ui-resizable-autohide").hover(function () { b(this).removeClass("ui-resizable-autohide"); f._handles.show() }, function () { if (!f.resizing) { b(this).addClass("ui-resizable-autohide"); f._handles.hide() } }) } this._mouseInit()
    }, destroy: function () {
        this._mouseDestroy(); var f = function (a) { b(a).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove() };
        if (this.elementIsWrapper) { f(this.element); var g = this.element; g.after(this.originalElement.css({ position: g.css("position"), width: g.outerWidth(), height: g.outerHeight(), top: g.css("top"), left: g.css("left") })).remove() } this.originalElement.css("resize", this.originalResizeStyle); f(this.originalElement); return this
    }, _mouseCapture: function (f) { var g = false; for (var a in this.handles) if (b(this.handles[a])[0] == f.target) g = true; return !this.options.disabled && g }, _mouseStart: function (f) {
        var g = this.options, a = this.element.position(),
c = this.element; this.resizing = true; this.documentScroll = { top: b(document).scrollTop(), left: b(document).scrollLeft() }; if (c.is(".ui-draggable") || /absolute/.test(c.css("position"))) c.css({ position: "absolute", top: a.top, left: a.left }); b.browser.opera && /relative/.test(c.css("position")) && c.css({ position: "relative", top: "auto", left: "auto" }); this._renderProxy(); a = d(this.helper.css("left")); var h = d(this.helper.css("top")); if (g.containment) { a += b(g.containment).scrollLeft() || 0; h += b(g.containment).scrollTop() || 0 } this.offset =
this.helper.offset(); this.position = { left: a, top: h }; this.size = this._helper ? { width: c.outerWidth(), height: c.outerHeight()} : { width: c.width(), height: c.height() }; this.originalSize = this._helper ? { width: c.outerWidth(), height: c.outerHeight()} : { width: c.width(), height: c.height() }; this.originalPosition = { left: a, top: h }; this.sizeDiff = { width: c.outerWidth() - c.width(), height: c.outerHeight() - c.height() }; this.originalMousePosition = { left: f.pageX, top: f.pageY }; this.aspectRatio = typeof g.aspectRatio == "number" ? g.aspectRatio :
this.originalSize.width / this.originalSize.height || 1; g = b(".ui-resizable-" + this.axis).css("cursor"); b("body").css("cursor", g == "auto" ? this.axis + "-resize" : g); c.addClass("ui-resizable-resizing"); this._propagate("start", f); return true
    }, _mouseDrag: function (f) {
        var g = this.helper, a = this.originalMousePosition, c = this._change[this.axis]; if (!c) return false; a = c.apply(this, [f, f.pageX - a.left || 0, f.pageY - a.top || 0]); if (this._aspectRatio || f.shiftKey) a = this._updateRatio(a, f); a = this._respectSize(a, f); this._propagate("resize",
f); g.css({ top: this.position.top + "px", left: this.position.left + "px", width: this.size.width + "px", height: this.size.height + "px" }); !this._helper && this._proportionallyResizeElements.length && this._proportionallyResize(); this._updateCache(a); this._trigger("resize", f, this.ui()); return false
    }, _mouseStop: function (f) {
        this.resizing = false; var g = this.options, a = this; if (this._helper) {
            var c = this._proportionallyResizeElements, h = c.length && /textarea/i.test(c[0].nodeName); c = h && b.ui.hasScroll(c[0], "left") ? 0 : a.sizeDiff.height;
            h = h ? 0 : a.sizeDiff.width; h = { width: a.helper.width() - h, height: a.helper.height() - c }; c = parseInt(a.element.css("left"), 10) + (a.position.left - a.originalPosition.left) || null; var i = parseInt(a.element.css("top"), 10) + (a.position.top - a.originalPosition.top) || null; g.animate || this.element.css(b.extend(h, { top: i, left: c })); a.helper.height(a.size.height); a.helper.width(a.size.width); this._helper && !g.animate && this._proportionallyResize()
        } b("body").css("cursor", "auto"); this.element.removeClass("ui-resizable-resizing");
        this._propagate("stop", f); this._helper && this.helper.remove(); return false
    }, _updateCache: function (f) { this.offset = this.helper.offset(); if (e(f.left)) this.position.left = f.left; if (e(f.top)) this.position.top = f.top; if (e(f.height)) this.size.height = f.height; if (e(f.width)) this.size.width = f.width }, _updateRatio: function (f) {
        var g = this.position, a = this.size, c = this.axis; if (f.height) f.width = a.height * this.aspectRatio; else if (f.width) f.height = a.width / this.aspectRatio; if (c == "sw") {
            f.left = g.left + (a.width - f.width); f.top =
null
        } if (c == "nw") { f.top = g.top + (a.height - f.height); f.left = g.left + (a.width - f.width) } return f
    }, _respectSize: function (f) {
        var g = this.options, a = this.axis, c = e(f.width) && g.maxWidth && g.maxWidth < f.width, h = e(f.height) && g.maxHeight && g.maxHeight < f.height, i = e(f.width) && g.minWidth && g.minWidth > f.width, j = e(f.height) && g.minHeight && g.minHeight > f.height; if (i) f.width = g.minWidth; if (j) f.height = g.minHeight; if (c) f.width = g.maxWidth; if (h) f.height = g.maxHeight; var n = this.originalPosition.left + this.originalSize.width, o = this.position.top +
this.size.height, l = /sw|nw|w/.test(a); a = /nw|ne|n/.test(a); if (i && l) f.left = n - g.minWidth; if (c && l) f.left = n - g.maxWidth; if (j && a) f.top = o - g.minHeight; if (h && a) f.top = o - g.maxHeight; if ((g = !f.width && !f.height) && !f.left && f.top) f.top = null; else if (g && !f.top && f.left) f.left = null; return f
    }, _proportionallyResize: function () {
        if (this._proportionallyResizeElements.length) for (var f = this.helper || this.element, g = 0; g < this._proportionallyResizeElements.length; g++) {
            var a = this._proportionallyResizeElements[g]; if (!this.borderDif) {
                var c =
[a.css("borderTopWidth"), a.css("borderRightWidth"), a.css("borderBottomWidth"), a.css("borderLeftWidth")], h = [a.css("paddingTop"), a.css("paddingRight"), a.css("paddingBottom"), a.css("paddingLeft")]; this.borderDif = b.map(c, function (i, j) { i = parseInt(i, 10) || 0; j = parseInt(h[j], 10) || 0; return i + j })
            } b.browser.msie && (b(f).is(":hidden") || b(f).parents(":hidden").length) || a.css({ height: f.height() - this.borderDif[0] - this.borderDif[2] || 0, width: f.width() - this.borderDif[1] - this.borderDif[3] || 0 })
        } 
    }, _renderProxy: function () {
        var f =
this.options; this.elementOffset = this.element.offset(); if (this._helper) { this.helper = this.helper || b('<div style="overflow:hidden;"></div>'); var g = b.browser.msie && b.browser.version < 7, a = g ? 1 : 0; g = g ? 2 : -1; this.helper.addClass(this._helper).css({ width: this.element.outerWidth() + g, height: this.element.outerHeight() + g, position: "absolute", left: this.elementOffset.left - a + "px", top: this.elementOffset.top - a + "px", zIndex: ++f.zIndex }); this.helper.appendTo("body").disableSelection() } else this.helper = this.element
    }, _change: { e: function (f,
g) { return { width: this.originalSize.width + g} }, w: function (f, g) { return { left: this.originalPosition.left + g, width: this.originalSize.width - g} }, n: function (f, g, a) { return { top: this.originalPosition.top + a, height: this.originalSize.height - a} }, s: function (f, g, a) { return { height: this.originalSize.height + a} }, se: function (f, g, a) { return b.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [f, g, a])) }, sw: function (f, g, a) {
    return b.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [f, g,
a]))
}, ne: function (f, g, a) { return b.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [f, g, a])) }, nw: function (f, g, a) { return b.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [f, g, a])) } 
    }, _propagate: function (f, g) { b.ui.plugin.call(this, f, [g, this.ui()]); f != "resize" && this._trigger(f, g, this.ui()) }, plugins: {}, ui: function () {
        return { originalElement: this.originalElement, element: this.element, helper: this.helper, position: this.position, size: this.size, originalSize: this.originalSize,
            originalPosition: this.originalPosition
        }
    } 
    }); b.extend(b.ui.resizable, { version: "1.8.12" }); b.ui.plugin.add("resizable", "alsoResize", { start: function () {
        var f = b(this).data("resizable").options, g = function (a) { b(a).each(function () { var c = b(this); c.data("resizable-alsoresize", { width: parseInt(c.width(), 10), height: parseInt(c.height(), 10), left: parseInt(c.css("left"), 10), top: parseInt(c.css("top"), 10), position: c.css("position") }) }) }; if (typeof f.alsoResize == "object" && !f.alsoResize.parentNode) if (f.alsoResize.length) {
            f.alsoResize =
f.alsoResize[0]; g(f.alsoResize)
        } else b.each(f.alsoResize, function (a) { g(a) }); else g(f.alsoResize)
    }, resize: function (f, g) {
        var a = b(this).data("resizable"); f = a.options; var c = a.originalSize, h = a.originalPosition, i = { height: a.size.height - c.height || 0, width: a.size.width - c.width || 0, top: a.position.top - h.top || 0, left: a.position.left - h.left || 0 }, j = function (n, o) {
            b(n).each(function () {
                var l = b(this), k = b(this).data("resizable-alsoresize"), m = {}, p = o && o.length ? o : l.parents(g.originalElement[0]).length ? ["width", "height"] : ["width",
"height", "top", "left"]; b.each(p, function (q, s) { if ((q = (k[s] || 0) + (i[s] || 0)) && q >= 0) m[s] = q || null }); if (b.browser.opera && /relative/.test(l.css("position"))) { a._revertToRelativePosition = true; l.css({ position: "absolute", top: "auto", left: "auto" }) } l.css(m)
            })
        }; typeof f.alsoResize == "object" && !f.alsoResize.nodeType ? b.each(f.alsoResize, function (n, o) { j(n, o) }) : j(f.alsoResize)
    }, stop: function () {
        var f = b(this).data("resizable"), g = f.options, a = function (c) { b(c).each(function () { var h = b(this); h.css({ position: h.data("resizable-alsoresize").position }) }) };
        if (f._revertToRelativePosition) { f._revertToRelativePosition = false; typeof g.alsoResize == "object" && !g.alsoResize.nodeType ? b.each(g.alsoResize, function (c) { a(c) }) : a(g.alsoResize) } b(this).removeData("resizable-alsoresize")
    } 
    }); b.ui.plugin.add("resizable", "animate", { stop: function (f) {
        var g = b(this).data("resizable"), a = g.options, c = g._proportionallyResizeElements, h = c.length && /textarea/i.test(c[0].nodeName), i = h && b.ui.hasScroll(c[0], "left") ? 0 : g.sizeDiff.height; h = { width: g.size.width - (h ? 0 : g.sizeDiff.width), height: g.size.height -
i
        }; i = parseInt(g.element.css("left"), 10) + (g.position.left - g.originalPosition.left) || null; var j = parseInt(g.element.css("top"), 10) + (g.position.top - g.originalPosition.top) || null; g.element.animate(b.extend(h, j && i ? { top: j, left: i} : {}), { duration: a.animateDuration, easing: a.animateEasing, step: function () {
            var n = { width: parseInt(g.element.css("width"), 10), height: parseInt(g.element.css("height"), 10), top: parseInt(g.element.css("top"), 10), left: parseInt(g.element.css("left"), 10) }; c && c.length && b(c[0]).css({ width: n.width,
                height: n.height
            }); g._updateCache(n); g._propagate("resize", f)
        } 
        })
    } 
    }); b.ui.plugin.add("resizable", "containment", { start: function () {
        var f = b(this).data("resizable"), g = f.element, a = f.options.containment; if (g = a instanceof b ? a.get(0) : /parent/.test(a) ? g.parent().get(0) : a) {
            f.containerElement = b(g); if (/document/.test(a) || a == document) { f.containerOffset = { left: 0, top: 0 }; f.containerPosition = { left: 0, top: 0 }; f.parentData = { element: b(document), left: 0, top: 0, width: b(document).width(), height: b(document).height() || document.body.parentNode.scrollHeight} } else {
                var c =
b(g), h = []; b(["Top", "Right", "Left", "Bottom"]).each(function (n, o) { h[n] = d(c.css("padding" + o)) }); f.containerOffset = c.offset(); f.containerPosition = c.position(); f.containerSize = { height: c.innerHeight() - h[3], width: c.innerWidth() - h[1] }; a = f.containerOffset; var i = f.containerSize.height, j = f.containerSize.width; j = b.ui.hasScroll(g, "left") ? g.scrollWidth : j; i = b.ui.hasScroll(g) ? g.scrollHeight : i; f.parentData = { element: g, left: a.left, top: a.top, width: j, height: i}
            } 
        } 
    }, resize: function (f) {
        var g = b(this).data("resizable"), a = g.options,
c = g.containerOffset, h = g.position; f = g._aspectRatio || f.shiftKey; var i = { top: 0, left: 0 }, j = g.containerElement; if (j[0] != document && /static/.test(j.css("position"))) i = c; if (h.left < (g._helper ? c.left : 0)) { g.size.width += g._helper ? g.position.left - c.left : g.position.left - i.left; if (f) g.size.height = g.size.width / a.aspectRatio; g.position.left = a.helper ? c.left : 0 } if (h.top < (g._helper ? c.top : 0)) {
            g.size.height += g._helper ? g.position.top - c.top : g.position.top; if (f) g.size.width = g.size.height * a.aspectRatio; g.position.top = g._helper ?
c.top : 0
        } g.offset.left = g.parentData.left + g.position.left; g.offset.top = g.parentData.top + g.position.top; a = Math.abs((g._helper ? g.offset.left - i.left : g.offset.left - i.left) + g.sizeDiff.width); c = Math.abs((g._helper ? g.offset.top - i.top : g.offset.top - c.top) + g.sizeDiff.height); h = g.containerElement.get(0) == g.element.parent().get(0); i = /relative|absolute/.test(g.containerElement.css("position")); if (h && i) a -= g.parentData.left; if (a + g.size.width >= g.parentData.width) {
            g.size.width = g.parentData.width - a; if (f) g.size.height =
g.size.width / g.aspectRatio
        } if (c + g.size.height >= g.parentData.height) { g.size.height = g.parentData.height - c; if (f) g.size.width = g.size.height * g.aspectRatio } 
    }, stop: function () {
        var f = b(this).data("resizable"), g = f.options, a = f.containerOffset, c = f.containerPosition, h = f.containerElement, i = b(f.helper), j = i.offset(), n = i.outerWidth() - f.sizeDiff.width; i = i.outerHeight() - f.sizeDiff.height; f._helper && !g.animate && /relative/.test(h.css("position")) && b(this).css({ left: j.left - c.left - a.left, width: n, height: i }); f._helper && !g.animate &&
/static/.test(h.css("position")) && b(this).css({ left: j.left - c.left - a.left, width: n, height: i })
    } 
    }); b.ui.plugin.add("resizable", "ghost", { start: function () { var f = b(this).data("resizable"), g = f.options, a = f.size; f.ghost = f.originalElement.clone(); f.ghost.css({ opacity: 0.25, display: "block", position: "relative", height: a.height, width: a.width, margin: 0, left: 0, top: 0 }).addClass("ui-resizable-ghost").addClass(typeof g.ghost == "string" ? g.ghost : ""); f.ghost.appendTo(f.helper) }, resize: function () {
        var f = b(this).data("resizable");
        f.ghost && f.ghost.css({ position: "relative", height: f.size.height, width: f.size.width })
    }, stop: function () { var f = b(this).data("resizable"); f.ghost && f.helper && f.helper.get(0).removeChild(f.ghost.get(0)) } 
    }); b.ui.plugin.add("resizable", "grid", { resize: function () {
        var f = b(this).data("resizable"), g = f.options, a = f.size, c = f.originalSize, h = f.originalPosition, i = f.axis; g.grid = typeof g.grid == "number" ? [g.grid, g.grid] : g.grid; var j = Math.round((a.width - c.width) / (g.grid[0] || 1)) * (g.grid[0] || 1); g = Math.round((a.height - c.height) /
(g.grid[1] || 1)) * (g.grid[1] || 1); if (/^(se|s|e)$/.test(i)) { f.size.width = c.width + j; f.size.height = c.height + g } else if (/^(ne)$/.test(i)) { f.size.width = c.width + j; f.size.height = c.height + g; f.position.top = h.top - g } else { if (/^(sw)$/.test(i)) { f.size.width = c.width + j; f.size.height = c.height + g } else { f.size.width = c.width + j; f.size.height = c.height + g; f.position.top = h.top - g } f.position.left = h.left - j } 
    } 
    }); var d = function (f) { return parseInt(f, 10) || 0 }, e = function (f) { return !isNaN(parseInt(f, 10)) } 
})(jQuery);
(function (b) {
    b.widget("ui.selectable", b.ui.mouse, { options: { appendTo: "body", autoRefresh: true, distance: 0, filter: "*", tolerance: "touch" }, _create: function () {
        var d = this; this.element.addClass("ui-selectable"); this.dragged = false; var e; this.refresh = function () {
            e = b(d.options.filter, d.element[0]); e.each(function () {
                var f = b(this), g = f.offset(); b.data(this, "selectable-item", { element: this, $element: f, left: g.left, top: g.top, right: g.left + f.outerWidth(), bottom: g.top + f.outerHeight(), startselected: false, selected: f.hasClass("ui-selected"),
                    selecting: f.hasClass("ui-selecting"), unselecting: f.hasClass("ui-unselecting")
                })
            })
        }; this.refresh(); this.selectees = e.addClass("ui-selectee"); this._mouseInit(); this.helper = b("<div class='ui-selectable-helper'></div>")
    }, destroy: function () { this.selectees.removeClass("ui-selectee").removeData("selectable-item"); this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"); this._mouseDestroy(); return this }, _mouseStart: function (d) {
        var e = this; this.opos = [d.pageX,
d.pageY]; if (!this.options.disabled) {
            var f = this.options; this.selectees = b(f.filter, this.element[0]); this._trigger("start", d); b(f.appendTo).append(this.helper); this.helper.css({ left: d.clientX, top: d.clientY, width: 0, height: 0 }); f.autoRefresh && this.refresh(); this.selectees.filter(".ui-selected").each(function () {
                var g = b.data(this, "selectable-item"); g.startselected = true; if (!d.metaKey) {
                    g.$element.removeClass("ui-selected"); g.selected = false; g.$element.addClass("ui-unselecting"); g.unselecting = true; e._trigger("unselecting",
d, { unselecting: g.element })
                } 
            }); b(d.target).parents().andSelf().each(function () { var g = b.data(this, "selectable-item"); if (g) { var a = !d.metaKey || !g.$element.hasClass("ui-selected"); g.$element.removeClass(a ? "ui-unselecting" : "ui-selected").addClass(a ? "ui-selecting" : "ui-unselecting"); g.unselecting = !a; g.selecting = a; (g.selected = a) ? e._trigger("selecting", d, { selecting: g.element }) : e._trigger("unselecting", d, { unselecting: g.element }); return false } })
        } 
    }, _mouseDrag: function (d) {
        var e = this; this.dragged = true; if (!this.options.disabled) {
            var f =
this.options, g = this.opos[0], a = this.opos[1], c = d.pageX, h = d.pageY; if (g > c) { var i = c; c = g; g = i } if (a > h) { i = h; h = a; a = i } this.helper.css({ left: g, top: a, width: c - g, height: h - a }); this.selectees.each(function () {
    var j = b.data(this, "selectable-item"); if (!(!j || j.element == e.element[0])) {
        var n = false; if (f.tolerance == "touch") n = !(j.left > c || j.right < g || j.top > h || j.bottom < a); else if (f.tolerance == "fit") n = j.left > g && j.right < c && j.top > a && j.bottom < h; if (n) {
            if (j.selected) { j.$element.removeClass("ui-selected"); j.selected = false } if (j.unselecting) {
                j.$element.removeClass("ui-unselecting");
                j.unselecting = false
            } if (!j.selecting) { j.$element.addClass("ui-selecting"); j.selecting = true; e._trigger("selecting", d, { selecting: j.element }) } 
        } else {
            if (j.selecting) if (d.metaKey && j.startselected) { j.$element.removeClass("ui-selecting"); j.selecting = false; j.$element.addClass("ui-selected"); j.selected = true } else { j.$element.removeClass("ui-selecting"); j.selecting = false; if (j.startselected) { j.$element.addClass("ui-unselecting"); j.unselecting = true } e._trigger("unselecting", d, { unselecting: j.element }) } if (j.selected) if (!d.metaKey &&
!j.startselected) { j.$element.removeClass("ui-selected"); j.selected = false; j.$element.addClass("ui-unselecting"); j.unselecting = true; e._trigger("unselecting", d, { unselecting: j.element }) } 
        } 
    } 
}); return false
        } 
    }, _mouseStop: function (d) {
        var e = this; this.dragged = false; b(".ui-unselecting", this.element[0]).each(function () { var f = b.data(this, "selectable-item"); f.$element.removeClass("ui-unselecting"); f.unselecting = false; f.startselected = false; e._trigger("unselected", d, { unselected: f.element }) }); b(".ui-selecting", this.element[0]).each(function () {
            var f =
b.data(this, "selectable-item"); f.$element.removeClass("ui-selecting").addClass("ui-selected"); f.selecting = false; f.selected = true; f.startselected = true; e._trigger("selected", d, { selected: f.element })
        }); this._trigger("stop", d); this.helper.remove(); return false
    } 
    }); b.extend(b.ui.selectable, { version: "1.8.12" })
})(jQuery);
(function (b) {
    b.widget("ui.sortable", b.ui.mouse, { widgetEventPrefix: "sort", options: { appendTo: "parent", axis: false, connectWith: false, containment: false, cursor: "auto", cursorAt: false, dropOnEmpty: true, forcePlaceholderSize: false, forceHelperSize: false, grid: false, handle: false, helper: "original", items: "> *", opacity: false, placeholder: false, revert: false, scroll: true, scrollSensitivity: 20, scrollSpeed: 20, scope: "default", tolerance: "intersect", zIndex: 1E3 }, _create: function () {
        this.containerCache = {}; this.element.addClass("ui-sortable");
        this.refresh(); this.floating = this.items.length ? /left|right/.test(this.items[0].item.css("float")) || /inline|table-cell/.test(this.items[0].item.css("display")) : false; this.offset = this.element.offset(); this._mouseInit()
    }, destroy: function () { this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable"); this._mouseDestroy(); for (var d = this.items.length - 1; d >= 0; d--) this.items[d].item.removeData("sortable-item"); return this }, _setOption: function (d, e) {
        if (d === "disabled") {
            this.options[d] =
e; this.widget()[e ? "addClass" : "removeClass"]("ui-sortable-disabled")
        } else b.Widget.prototype._setOption.apply(this, arguments)
    }, _mouseCapture: function (d, e) {
        if (this.reverting) return false; if (this.options.disabled || this.options.type == "static") return false; this._refreshItems(d); var f = null, g = this; b(d.target).parents().each(function () { if (b.data(this, "sortable-item") == g) { f = b(this); return false } }); if (b.data(d.target, "sortable-item") == g) f = b(d.target); if (!f) return false; if (this.options.handle && !e) {
            var a = false;
            b(this.options.handle, f).find("*").andSelf().each(function () { if (this == d.target) a = true }); if (!a) return false
        } this.currentItem = f; this._removeCurrentsFromItems(); return true
    }, _mouseStart: function (d, e, f) {
        e = this.options; var g = this; this.currentContainer = this; this.refreshPositions(); this.helper = this._createHelper(d); this._cacheHelperProportions(); this._cacheMargins(); this.scrollParent = this.helper.scrollParent(); this.offset = this.currentItem.offset(); this.offset = { top: this.offset.top - this.margins.top, left: this.offset.left -
this.margins.left
        }; this.helper.css("position", "absolute"); this.cssPosition = this.helper.css("position"); b.extend(this.offset, { click: { left: d.pageX - this.offset.left, top: d.pageY - this.offset.top }, parent: this._getParentOffset(), relative: this._getRelativeOffset() }); this.originalPosition = this._generatePosition(d); this.originalPageX = d.pageX; this.originalPageY = d.pageY; e.cursorAt && this._adjustOffsetFromHelper(e.cursorAt); this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] };
        this.helper[0] != this.currentItem[0] && this.currentItem.hide(); this._createPlaceholder(); e.containment && this._setContainment(); if (e.cursor) { if (b("body").css("cursor")) this._storedCursor = b("body").css("cursor"); b("body").css("cursor", e.cursor) } if (e.opacity) { if (this.helper.css("opacity")) this._storedOpacity = this.helper.css("opacity"); this.helper.css("opacity", e.opacity) } if (e.zIndex) { if (this.helper.css("zIndex")) this._storedZIndex = this.helper.css("zIndex"); this.helper.css("zIndex", e.zIndex) } if (this.scrollParent[0] !=
document && this.scrollParent[0].tagName != "HTML") this.overflowOffset = this.scrollParent.offset(); this._trigger("start", d, this._uiHash()); this._preserveHelperProportions || this._cacheHelperProportions(); if (!f) for (f = this.containers.length - 1; f >= 0; f--) this.containers[f]._trigger("activate", d, g._uiHash(this)); if (b.ui.ddmanager) b.ui.ddmanager.current = this; b.ui.ddmanager && !e.dropBehaviour && b.ui.ddmanager.prepareOffsets(this, d); this.dragging = true; this.helper.addClass("ui-sortable-helper"); this._mouseDrag(d);
        return true
    }, _mouseDrag: function (d) {
        this.position = this._generatePosition(d); this.positionAbs = this._convertPositionTo("absolute"); if (!this.lastPositionAbs) this.lastPositionAbs = this.positionAbs; if (this.options.scroll) {
            var e = this.options, f = false; if (this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML") {
                if (this.overflowOffset.top + this.scrollParent[0].offsetHeight - d.pageY < e.scrollSensitivity) this.scrollParent[0].scrollTop = f = this.scrollParent[0].scrollTop + e.scrollSpeed; else if (d.pageY - this.overflowOffset.top <
e.scrollSensitivity) this.scrollParent[0].scrollTop = f = this.scrollParent[0].scrollTop - e.scrollSpeed; if (this.overflowOffset.left + this.scrollParent[0].offsetWidth - d.pageX < e.scrollSensitivity) this.scrollParent[0].scrollLeft = f = this.scrollParent[0].scrollLeft + e.scrollSpeed; else if (d.pageX - this.overflowOffset.left < e.scrollSensitivity) this.scrollParent[0].scrollLeft = f = this.scrollParent[0].scrollLeft - e.scrollSpeed
            } else {
                if (d.pageY - b(document).scrollTop() < e.scrollSensitivity) f = b(document).scrollTop(b(document).scrollTop() -
e.scrollSpeed); else if (b(window).height() - (d.pageY - b(document).scrollTop()) < e.scrollSensitivity) f = b(document).scrollTop(b(document).scrollTop() + e.scrollSpeed); if (d.pageX - b(document).scrollLeft() < e.scrollSensitivity) f = b(document).scrollLeft(b(document).scrollLeft() - e.scrollSpeed); else if (b(window).width() - (d.pageX - b(document).scrollLeft()) < e.scrollSensitivity) f = b(document).scrollLeft(b(document).scrollLeft() + e.scrollSpeed)
            } f !== false && b.ui.ddmanager && !e.dropBehaviour && b.ui.ddmanager.prepareOffsets(this,
d)
        } this.positionAbs = this._convertPositionTo("absolute"); if (!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left + "px"; if (!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top + "px"; for (e = this.items.length - 1; e >= 0; e--) {
            f = this.items[e]; var g = f.item[0], a = this._intersectsWithPointer(f); if (a) if (g != this.currentItem[0] && this.placeholder[a == 1 ? "next" : "prev"]()[0] != g && !b.ui.contains(this.placeholder[0], g) && (this.options.type == "semi-dynamic" ? !b.ui.contains(this.element[0],
g) : true)) { this.direction = a == 1 ? "down" : "up"; if (this.options.tolerance == "pointer" || this._intersectsWithSides(f)) this._rearrange(d, f); else break; this._trigger("change", d, this._uiHash()); break } 
        } this._contactContainers(d); b.ui.ddmanager && b.ui.ddmanager.drag(this, d); this._trigger("sort", d, this._uiHash()); this.lastPositionAbs = this.positionAbs; return false
    }, _mouseStop: function (d, e) {
        if (d) {
            b.ui.ddmanager && !this.options.dropBehaviour && b.ui.ddmanager.drop(this, d); if (this.options.revert) {
                var f = this; e = f.placeholder.offset();
                f.reverting = true; b(this.helper).animate({ left: e.left - this.offset.parent.left - f.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft), top: e.top - this.offset.parent.top - f.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop) }, parseInt(this.options.revert, 10) || 500, function () { f._clear(d) })
            } else this._clear(d, e); return false
        } 
    }, cancel: function () {
        var d = this; if (this.dragging) {
            this._mouseUp({ target: null }); this.options.helper == "original" ? this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") :
this.currentItem.show(); for (var e = this.containers.length - 1; e >= 0; e--) { this.containers[e]._trigger("deactivate", null, d._uiHash(this)); if (this.containers[e].containerCache.over) { this.containers[e]._trigger("out", null, d._uiHash(this)); this.containers[e].containerCache.over = 0 } } 
        } if (this.placeholder) {
            this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]); this.options.helper != "original" && this.helper && this.helper[0].parentNode && this.helper.remove(); b.extend(this, { helper: null,
                dragging: false, reverting: false, _noFinalSort: null
            }); this.domPosition.prev ? b(this.domPosition.prev).after(this.currentItem) : b(this.domPosition.parent).prepend(this.currentItem)
        } return this
    }, serialize: function (d) { var e = this._getItemsAsjQuery(d && d.connected), f = []; d = d || {}; b(e).each(function () { var g = (b(d.item || this).attr(d.attribute || "id") || "").match(d.expression || /(.+)[-=_](.+)/); if (g) f.push((d.key || g[1] + "[]") + "=" + (d.key && d.expression ? g[1] : g[2])) }); !f.length && d.key && f.push(d.key + "="); return f.join("&") },
        toArray: function (d) { var e = this._getItemsAsjQuery(d && d.connected), f = []; d = d || {}; e.each(function () { f.push(b(d.item || this).attr(d.attribute || "id") || "") }); return f }, _intersectsWith: function (d) {
            var e = this.positionAbs.left, f = e + this.helperProportions.width, g = this.positionAbs.top, a = g + this.helperProportions.height, c = d.left, h = c + d.width, i = d.top, j = i + d.height, n = this.offset.click.top, o = this.offset.click.left; n = g + n > i && g + n < j && e + o > c && e + o < h; return this.options.tolerance == "pointer" || this.options.forcePointerForContainers ||
this.options.tolerance != "pointer" && this.helperProportions[this.floating ? "width" : "height"] > d[this.floating ? "width" : "height"] ? n : c < e + this.helperProportions.width / 2 && f - this.helperProportions.width / 2 < h && i < g + this.helperProportions.height / 2 && a - this.helperProportions.height / 2 < j
        }, _intersectsWithPointer: function (d) {
            var e = b.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, d.top, d.height); d = b.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, d.left, d.width); e = e && d; d = this._getDragVerticalDirection();
            var f = this._getDragHorizontalDirection(); if (!e) return false; return this.floating ? f && f == "right" || d == "down" ? 2 : 1 : d && (d == "down" ? 2 : 1)
        }, _intersectsWithSides: function (d) { var e = b.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, d.top + d.height / 2, d.height); d = b.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, d.left + d.width / 2, d.width); var f = this._getDragVerticalDirection(), g = this._getDragHorizontalDirection(); return this.floating && g ? g == "right" && d || g == "left" && !d : f && (f == "down" && e || f == "up" && !e) },
        _getDragVerticalDirection: function () { var d = this.positionAbs.top - this.lastPositionAbs.top; return d != 0 && (d > 0 ? "down" : "up") }, _getDragHorizontalDirection: function () { var d = this.positionAbs.left - this.lastPositionAbs.left; return d != 0 && (d > 0 ? "right" : "left") }, refresh: function (d) { this._refreshItems(d); this.refreshPositions(); return this }, _connectWith: function () { var d = this.options; return d.connectWith.constructor == String ? [d.connectWith] : d.connectWith }, _getItemsAsjQuery: function (d) {
            var e = [], f = [], g = this._connectWith();
            if (g && d) for (d = g.length - 1; d >= 0; d--) for (var a = b(g[d]), c = a.length - 1; c >= 0; c--) { var h = b.data(a[c], "sortable"); if (h && h != this && !h.options.disabled) f.push([b.isFunction(h.options.items) ? h.options.items.call(h.element) : b(h.options.items, h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), h]) } f.push([b.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : b(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),
this]); for (d = f.length - 1; d >= 0; d--) f[d][0].each(function () { e.push(this) }); return b(e)
        }, _removeCurrentsFromItems: function () { for (var d = this.currentItem.find(":data(sortable-item)"), e = 0; e < this.items.length; e++) for (var f = 0; f < d.length; f++) d[f] == this.items[e].item[0] && this.items.splice(e, 1) }, _refreshItems: function (d) {
            this.items = []; this.containers = [this]; var e = this.items, f = [[b.isFunction(this.options.items) ? this.options.items.call(this.element[0], d, { item: this.currentItem }) : b(this.options.items, this.element),
this]], g = this._connectWith(); if (g) for (var a = g.length - 1; a >= 0; a--) for (var c = b(g[a]), h = c.length - 1; h >= 0; h--) { var i = b.data(c[h], "sortable"); if (i && i != this && !i.options.disabled) { f.push([b.isFunction(i.options.items) ? i.options.items.call(i.element[0], d, { item: this.currentItem }) : b(i.options.items, i.element), i]); this.containers.push(i) } } for (a = f.length - 1; a >= 0; a--) { d = f[a][1]; g = f[a][0]; h = 0; for (c = g.length; h < c; h++) { i = b(g[h]); i.data("sortable-item", d); e.push({ item: i, instance: d, width: 0, height: 0, left: 0, top: 0 }) } } 
        }, refreshPositions: function (d) {
            if (this.offsetParent &&
this.helper) this.offset.parent = this._getParentOffset(); for (var e = this.items.length - 1; e >= 0; e--) { var f = this.items[e]; if (!(f.instance != this.currentContainer && this.currentContainer && f.item[0] != this.currentItem[0])) { var g = this.options.toleranceElement ? b(this.options.toleranceElement, f.item) : f.item; if (!d) { f.width = g.outerWidth(); f.height = g.outerHeight() } g = g.offset(); f.left = g.left; f.top = g.top } } if (this.options.custom && this.options.custom.refreshContainers) this.options.custom.refreshContainers.call(this); else for (e =
this.containers.length - 1; e >= 0; e--) { g = this.containers[e].element.offset(); this.containers[e].containerCache.left = g.left; this.containers[e].containerCache.top = g.top; this.containers[e].containerCache.width = this.containers[e].element.outerWidth(); this.containers[e].containerCache.height = this.containers[e].element.outerHeight() } return this
        }, _createPlaceholder: function (d) {
            var e = d || this, f = e.options; if (!f.placeholder || f.placeholder.constructor == String) {
                var g = f.placeholder; f.placeholder = { element: function () {
                    var a =
b(document.createElement(e.currentItem[0].nodeName)).addClass(g || e.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper")[0]; if (!g) a.style.visibility = "hidden"; return a
                }, update: function (a, c) {
                    if (!(g && !f.forcePlaceholderSize)) {
                        c.height() || c.height(e.currentItem.innerHeight() - parseInt(e.currentItem.css("paddingTop") || 0, 10) - parseInt(e.currentItem.css("paddingBottom") || 0, 10)); c.width() || c.width(e.currentItem.innerWidth() - parseInt(e.currentItem.css("paddingLeft") || 0, 10) - parseInt(e.currentItem.css("paddingRight") ||
0, 10))
                    } 
                } 
                }
            } e.placeholder = b(f.placeholder.element.call(e.element, e.currentItem)); e.currentItem.after(e.placeholder); f.placeholder.update(e, e.placeholder)
        }, _contactContainers: function (d) {
            for (var e = null, f = null, g = this.containers.length - 1; g >= 0; g--) if (!b.ui.contains(this.currentItem[0], this.containers[g].element[0])) if (this._intersectsWith(this.containers[g].containerCache)) { if (!(e && b.ui.contains(this.containers[g].element[0], e.element[0]))) { e = this.containers[g]; f = g } } else if (this.containers[g].containerCache.over) {
                this.containers[g]._trigger("out",
d, this._uiHash(this)); this.containers[g].containerCache.over = 0
            } if (e) if (this.containers.length === 1) { this.containers[f]._trigger("over", d, this._uiHash(this)); this.containers[f].containerCache.over = 1 } else if (this.currentContainer != this.containers[f]) {
                e = 1E4; g = null; for (var a = this.positionAbs[this.containers[f].floating ? "left" : "top"], c = this.items.length - 1; c >= 0; c--) if (b.ui.contains(this.containers[f].element[0], this.items[c].item[0])) {
                    var h = this.items[c][this.containers[f].floating ? "left" : "top"]; if (Math.abs(h -
a) < e) { e = Math.abs(h - a); g = this.items[c] } 
                } if (g || this.options.dropOnEmpty) { this.currentContainer = this.containers[f]; g ? this._rearrange(d, g, null, true) : this._rearrange(d, null, this.containers[f].element, true); this._trigger("change", d, this._uiHash()); this.containers[f]._trigger("change", d, this._uiHash(this)); this.options.placeholder.update(this.currentContainer, this.placeholder); this.containers[f]._trigger("over", d, this._uiHash(this)); this.containers[f].containerCache.over = 1 } 
            } 
        }, _createHelper: function (d) {
            var e =
this.options; d = b.isFunction(e.helper) ? b(e.helper.apply(this.element[0], [d, this.currentItem])) : e.helper == "clone" ? this.currentItem.clone() : this.currentItem; d.parents("body").length || b(e.appendTo != "parent" ? e.appendTo : this.currentItem[0].parentNode)[0].appendChild(d[0]); if (d[0] == this.currentItem[0]) this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") }; if (d[0].style.width ==
"" || e.forceHelperSize) d.width(this.currentItem.width()); if (d[0].style.height == "" || e.forceHelperSize) d.height(this.currentItem.height()); return d
        }, _adjustOffsetFromHelper: function (d) {
            if (typeof d == "string") d = d.split(" "); if (b.isArray(d)) d = { left: +d[0], top: +d[1] || 0 }; if ("left" in d) this.offset.click.left = d.left + this.margins.left; if ("right" in d) this.offset.click.left = this.helperProportions.width - d.right + this.margins.left; if ("top" in d) this.offset.click.top = d.top + this.margins.top; if ("bottom" in d) this.offset.click.top =
this.helperProportions.height - d.bottom + this.margins.top
        }, _getParentOffset: function () {
            this.offsetParent = this.helper.offsetParent(); var d = this.offsetParent.offset(); if (this.cssPosition == "absolute" && this.scrollParent[0] != document && b.ui.contains(this.scrollParent[0], this.offsetParent[0])) { d.left += this.scrollParent.scrollLeft(); d.top += this.scrollParent.scrollTop() } if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && b.browser.msie) d =
{ top: 0, left: 0 }; return { top: d.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), left: d.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)}
        }, _getRelativeOffset: function () { if (this.cssPosition == "relative") { var d = this.currentItem.position(); return { top: d.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), left: d.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()} } else return { top: 0, left: 0} }, _cacheMargins: function () {
            this.margins = { left: parseInt(this.currentItem.css("marginLeft"),
10) || 0, top: parseInt(this.currentItem.css("marginTop"), 10) || 0
            }
        }, _cacheHelperProportions: function () { this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight()} }, _setContainment: function () {
            var d = this.options; if (d.containment == "parent") d.containment = this.helper[0].parentNode; if (d.containment == "document" || d.containment == "window") this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, b(d.containment == "document" ?
document : window).width() - this.helperProportions.width - this.margins.left, (b(d.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]; if (!/^(document|window|parent)$/.test(d.containment)) {
                var e = b(d.containment)[0]; d = b(d.containment).offset(); var f = b(e).css("overflow") != "hidden"; this.containment = [d.left + (parseInt(b(e).css("borderLeftWidth"), 10) || 0) + (parseInt(b(e).css("paddingLeft"), 10) || 0) - this.margins.left, d.top + (parseInt(b(e).css("borderTopWidth"),
10) || 0) + (parseInt(b(e).css("paddingTop"), 10) || 0) - this.margins.top, d.left + (f ? Math.max(e.scrollWidth, e.offsetWidth) : e.offsetWidth) - (parseInt(b(e).css("borderLeftWidth"), 10) || 0) - (parseInt(b(e).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, d.top + (f ? Math.max(e.scrollHeight, e.offsetHeight) : e.offsetHeight) - (parseInt(b(e).css("borderTopWidth"), 10) || 0) - (parseInt(b(e).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top]
            } 
        }, _convertPositionTo: function (d, e) {
            if (!e) e =
this.position; d = d == "absolute" ? 1 : -1; var f = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && b.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, g = /(html|body)/i.test(f[0].tagName); return { top: e.top + this.offset.relative.top * d + this.offset.parent.top * d - (b.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : g ? 0 : f.scrollTop()) * d), left: e.left + this.offset.relative.left * d + this.offset.parent.left * d - (b.browser.safari &&
this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : g ? 0 : f.scrollLeft()) * d)
}
        }, _generatePosition: function (d) {
            var e = this.options, f = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && b.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, g = /(html|body)/i.test(f[0].tagName); if (this.cssPosition == "relative" && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) this.offset.relative = this._getRelativeOffset();
            var a = d.pageX, c = d.pageY; if (this.originalPosition) {
                if (this.containment) { if (d.pageX - this.offset.click.left < this.containment[0]) a = this.containment[0] + this.offset.click.left; if (d.pageY - this.offset.click.top < this.containment[1]) c = this.containment[1] + this.offset.click.top; if (d.pageX - this.offset.click.left > this.containment[2]) a = this.containment[2] + this.offset.click.left; if (d.pageY - this.offset.click.top > this.containment[3]) c = this.containment[3] + this.offset.click.top } if (e.grid) {
                    c = this.originalPageY + Math.round((c -
this.originalPageY) / e.grid[1]) * e.grid[1]; c = this.containment ? !(c - this.offset.click.top < this.containment[1] || c - this.offset.click.top > this.containment[3]) ? c : !(c - this.offset.click.top < this.containment[1]) ? c - e.grid[1] : c + e.grid[1] : c; a = this.originalPageX + Math.round((a - this.originalPageX) / e.grid[0]) * e.grid[0]; a = this.containment ? !(a - this.offset.click.left < this.containment[0] || a - this.offset.click.left > this.containment[2]) ? a : !(a - this.offset.click.left < this.containment[0]) ? a - e.grid[0] : a + e.grid[0] : a
                } 
            } return { top: c -
this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (b.browser.safari && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : g ? 0 : f.scrollTop()), left: a - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (b.browser.safari && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : g ? 0 : f.scrollLeft())
            }
        }, _rearrange: function (d, e, f, g) {
            f ? f[0].appendChild(this.placeholder[0]) : e.item[0].parentNode.insertBefore(this.placeholder[0],
this.direction == "down" ? e.item[0] : e.item[0].nextSibling); this.counter = this.counter ? ++this.counter : 1; var a = this, c = this.counter; window.setTimeout(function () { c == a.counter && a.refreshPositions(!g) }, 0)
        }, _clear: function (d, e) {
            this.reverting = false; var f = []; !this._noFinalSort && this.currentItem[0].parentNode && this.placeholder.before(this.currentItem); this._noFinalSort = null; if (this.helper[0] == this.currentItem[0]) {
                for (var g in this._storedCSS) if (this._storedCSS[g] == "auto" || this._storedCSS[g] == "static") this._storedCSS[g] =
""; this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")
            } else this.currentItem.show(); this.fromOutside && !e && f.push(function (a) { this._trigger("receive", a, this._uiHash(this.fromOutside)) }); if ((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !e) f.push(function (a) { this._trigger("update", a, this._uiHash()) }); if (!b.ui.contains(this.element[0], this.currentItem[0])) {
                e || f.push(function (a) {
                    this._trigger("remove",
a, this._uiHash())
                }); for (g = this.containers.length - 1; g >= 0; g--) if (b.ui.contains(this.containers[g].element[0], this.currentItem[0]) && !e) { f.push(function (a) { return function (c) { a._trigger("receive", c, this._uiHash(this)) } } .call(this, this.containers[g])); f.push(function (a) { return function (c) { a._trigger("update", c, this._uiHash(this)) } } .call(this, this.containers[g])) } 
            } for (g = this.containers.length - 1; g >= 0; g--) {
                e || f.push(function (a) { return function (c) { a._trigger("deactivate", c, this._uiHash(this)) } } .call(this,
this.containers[g])); if (this.containers[g].containerCache.over) { f.push(function (a) { return function (c) { a._trigger("out", c, this._uiHash(this)) } } .call(this, this.containers[g])); this.containers[g].containerCache.over = 0 } 
            } this._storedCursor && b("body").css("cursor", this._storedCursor); this._storedOpacity && this.helper.css("opacity", this._storedOpacity); if (this._storedZIndex) this.helper.css("zIndex", this._storedZIndex == "auto" ? "" : this._storedZIndex); this.dragging = false; if (this.cancelHelperRemoval) {
                if (!e) {
                    this._trigger("beforeStop",
d, this._uiHash()); for (g = 0; g < f.length; g++) f[g].call(this, d); this._trigger("stop", d, this._uiHash())
                } return false
            } e || this._trigger("beforeStop", d, this._uiHash()); this.placeholder[0].parentNode.removeChild(this.placeholder[0]); this.helper[0] != this.currentItem[0] && this.helper.remove(); this.helper = null; if (!e) { for (g = 0; g < f.length; g++) f[g].call(this, d); this._trigger("stop", d, this._uiHash()) } this.fromOutside = false; return true
        }, _trigger: function () { b.Widget.prototype._trigger.apply(this, arguments) === false && this.cancel() },
        _uiHash: function (d) { var e = d || this; return { helper: e.helper, placeholder: e.placeholder || b([]), position: e.position, originalPosition: e.originalPosition, offset: e.positionAbs, item: e.currentItem, sender: d ? d.element : null} } 
    }); b.extend(b.ui.sortable, { version: "1.8.12" })
})(jQuery);
jQuery.effects || function (b, d) {
    function e(l) {
        var k; if (l && l.constructor == Array && l.length == 3) return l; if (k = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(l)) return [parseInt(k[1], 10), parseInt(k[2], 10), parseInt(k[3], 10)]; if (k = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(l)) return [parseFloat(k[1]) * 2.55, parseFloat(k[2]) * 2.55, parseFloat(k[3]) * 2.55]; if (k = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(l)) return [parseInt(k[1],
16), parseInt(k[2], 16), parseInt(k[3], 16)]; if (k = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(l)) return [parseInt(k[1] + k[1], 16), parseInt(k[2] + k[2], 16), parseInt(k[3] + k[3], 16)]; if (/rgba\(0, 0, 0, 0\)/.exec(l)) return j.transparent; return j[b.trim(l).toLowerCase()]
    } function f(l, k) { var m; do { m = b.curCSS(l, k); if (m != "" && m != "transparent" || b.nodeName(l, "body")) break; k = "backgroundColor" } while (l = l.parentNode); return e(m) } function g() {
        var l = document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle,
k = {}, m, p; if (l && l.length && l[0] && l[l[0]]) for (var q = l.length; q--; ) { m = l[q]; if (typeof l[m] == "string") { p = m.replace(/\-(\w)/g, function (s, r) { return r.toUpperCase() }); k[p] = l[m] } } else for (m in l) if (typeof l[m] === "string") k[m] = l[m]; return k
    } function a(l) { var k, m; for (k in l) { m = l[k]; if (m == null || b.isFunction(m) || k in o || /scrollbar/.test(k) || !/color/i.test(k) && isNaN(parseFloat(m))) delete l[k] } return l } function c(l, k) { var m = { _: 0 }, p; for (p in k) if (l[p] != k[p]) m[p] = k[p]; return m } function h(l, k, m, p) {
        if (typeof l == "object") {
            p =
k; m = null; k = l; l = k.effect
        } if (b.isFunction(k)) { p = k; m = null; k = {} } if (typeof k == "number" || b.fx.speeds[k]) { p = m; m = k; k = {} } if (b.isFunction(m)) { p = m; m = null } k = k || {}; m = m || k.duration; m = b.fx.off ? 0 : typeof m == "number" ? m : m in b.fx.speeds ? b.fx.speeds[m] : b.fx.speeds._default; p = p || k.complete; return [l, k, m, p]
    } function i(l) { if (!l || typeof l === "number" || b.fx.speeds[l]) return true; if (typeof l === "string" && !b.effects[l]) return true; return false } b.effects = {}; b.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor",
"borderTopColor", "borderColor", "color", "outlineColor"], function (l, k) { b.fx.step[k] = function (m) { if (!m.colorInit) { m.start = f(m.elem, k); m.end = e(m.end); m.colorInit = true } m.elem.style[k] = "rgb(" + Math.max(Math.min(parseInt(m.pos * (m.end[0] - m.start[0]) + m.start[0], 10), 255), 0) + "," + Math.max(Math.min(parseInt(m.pos * (m.end[1] - m.start[1]) + m.start[1], 10), 255), 0) + "," + Math.max(Math.min(parseInt(m.pos * (m.end[2] - m.start[2]) + m.start[2], 10), 255), 0) + ")" } }); var j = { aqua: [0, 255, 255], azure: [240, 255, 255], beige: [245, 245, 220], black: [0,
0, 0], blue: [0, 0, 255], brown: [165, 42, 42], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgrey: [169, 169, 169], darkgreen: [0, 100, 0], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkviolet: [148, 0, 211], fuchsia: [255, 0, 255], gold: [255, 215, 0], green: [0, 128, 0], indigo: [75, 0, 130], khaki: [240, 230, 140], lightblue: [173, 216, 230], lightcyan: [224, 255, 255], lightgreen: [144, 238, 144], lightgrey: [211,
211, 211], lightpink: [255, 182, 193], lightyellow: [255, 255, 224], lime: [0, 255, 0], magenta: [255, 0, 255], maroon: [128, 0, 0], navy: [0, 0, 128], olive: [128, 128, 0], orange: [255, 165, 0], pink: [255, 192, 203], purple: [128, 0, 128], violet: [128, 0, 128], red: [255, 0, 0], silver: [192, 192, 192], white: [255, 255, 255], yellow: [255, 255, 0], transparent: [255, 255, 255]
}, n = ["add", "remove", "toggle"], o = { border: 1, borderBottom: 1, borderColor: 1, borderLeft: 1, borderRight: 1, borderTop: 1, borderWidth: 1, margin: 1, padding: 1 }; b.effects.animateClass = function (l, k, m,
p) {
    if (b.isFunction(m)) { p = m; m = null } return this.queue("fx", function () {
        var q = b(this), s = q.attr("style") || " ", r = a(g.call(this)), u, v = q.attr("className"); b.each(n, function (w, y) { l[y] && q[y + "Class"](l[y]) }); u = a(g.call(this)); q.attr("className", v); q.animate(c(r, u), k, m, function () { b.each(n, function (w, y) { l[y] && q[y + "Class"](l[y]) }); if (typeof q.attr("style") == "object") { q.attr("style").cssText = ""; q.attr("style").cssText = s } else q.attr("style", s); p && p.apply(this, arguments) }); r = b.queue(this); u = r.splice(r.length - 1, 1)[0];
        r.splice(1, 0, u); b.dequeue(this)
    })
}; b.fn.extend({ _addClass: b.fn.addClass, addClass: function (l, k, m, p) { return k ? b.effects.animateClass.apply(this, [{ add: l }, k, m, p]) : this._addClass(l) }, _removeClass: b.fn.removeClass, removeClass: function (l, k, m, p) { return k ? b.effects.animateClass.apply(this, [{ remove: l }, k, m, p]) : this._removeClass(l) }, _toggleClass: b.fn.toggleClass, toggleClass: function (l, k, m, p, q) {
    return typeof k == "boolean" || k === d ? m ? b.effects.animateClass.apply(this, [k ? { add: l} : { remove: l }, m, p, q]) : this._toggleClass(l,
k) : b.effects.animateClass.apply(this, [{ toggle: l }, k, m, p])
}, switchClass: function (l, k, m, p, q) { return b.effects.animateClass.apply(this, [{ add: k, remove: l }, m, p, q]) } 
}); b.extend(b.effects, { version: "1.8.12", save: function (l, k) { for (var m = 0; m < k.length; m++) k[m] !== null && l.data("ec.storage." + k[m], l[0].style[k[m]]) }, restore: function (l, k) { for (var m = 0; m < k.length; m++) k[m] !== null && l.css(k[m], l.data("ec.storage." + k[m])) }, setMode: function (l, k) { if (k == "toggle") k = l.is(":hidden") ? "show" : "hide"; return k }, getBaseline: function (l,
k) { var m; switch (l[0]) { case "top": m = 0; break; case "middle": m = 0.5; break; case "bottom": m = 1; break; default: m = l[0] / k.height } switch (l[1]) { case "left": l = 0; break; case "center": l = 0.5; break; case "right": l = 1; break; default: l = l[1] / k.width } return { x: l, y: m} }, createWrapper: function (l) {
    if (l.parent().is(".ui-effects-wrapper")) return l.parent(); var k = { width: l.outerWidth(true), height: l.outerHeight(true), "float": l.css("float") }, m = b("<div></div>").addClass("ui-effects-wrapper").css({ fontSize: "100%", background: "transparent",
        border: "none", margin: 0, padding: 0
    }); l.wrap(m); m = l.parent(); if (l.css("position") == "static") { m.css({ position: "relative" }); l.css({ position: "relative" }) } else { b.extend(k, { position: l.css("position"), zIndex: l.css("z-index") }); b.each(["top", "left", "bottom", "right"], function (p, q) { k[q] = l.css(q); if (isNaN(parseInt(k[q], 10))) k[q] = "auto" }); l.css({ position: "relative", top: 0, left: 0, right: "auto", bottom: "auto" }) } return m.css(k).show()
}, removeWrapper: function (l) {
    if (l.parent().is(".ui-effects-wrapper")) return l.parent().replaceWith(l);
    return l
}, setTransition: function (l, k, m, p) { p = p || {}; b.each(k, function (q, s) { unit = l.cssUnit(s); if (unit[0] > 0) p[s] = unit[0] * m + unit[1] }); return p } 
}); b.fn.extend({ effect: function (l) { var k = h.apply(this, arguments), m = { options: k[1], duration: k[2], callback: k[3] }; k = m.options.mode; var p = b.effects[l]; if (b.fx.off || !p) return k ? this[k](m.duration, m.callback) : this.each(function () { m.callback && m.callback.call(this) }); return p.call(this, m) }, _show: b.fn.show, show: function (l) {
    if (i(l)) return this._show.apply(this, arguments);
    else { var k = h.apply(this, arguments); k[1].mode = "show"; return this.effect.apply(this, k) } 
}, _hide: b.fn.hide, hide: function (l) { if (i(l)) return this._hide.apply(this, arguments); else { var k = h.apply(this, arguments); k[1].mode = "hide"; return this.effect.apply(this, k) } }, __toggle: b.fn.toggle, toggle: function (l) { if (i(l) || typeof l === "boolean" || b.isFunction(l)) return this.__toggle.apply(this, arguments); else { var k = h.apply(this, arguments); k[1].mode = "toggle"; return this.effect.apply(this, k) } }, cssUnit: function (l) {
    var k = this.css(l),
m = []; b.each(["em", "px", "%", "pt"], function (p, q) { if (k.indexOf(q) > 0) m = [parseFloat(k), q] }); return m
} 
}); b.easing.jswing = b.easing.swing; b.extend(b.easing, { def: "easeOutQuad", swing: function (l, k, m, p, q) { return b.easing[b.easing.def](l, k, m, p, q) }, easeInQuad: function (l, k, m, p, q) { return p * (k /= q) * k + m }, easeOutQuad: function (l, k, m, p, q) { return -p * (k /= q) * (k - 2) + m }, easeInOutQuad: function (l, k, m, p, q) { if ((k /= q / 2) < 1) return p / 2 * k * k + m; return -p / 2 * (--k * (k - 2) - 1) + m }, easeInCubic: function (l, k, m, p, q) { return p * (k /= q) * k * k + m }, easeOutCubic: function (l,
k, m, p, q) { return p * ((k = k / q - 1) * k * k + 1) + m }, easeInOutCubic: function (l, k, m, p, q) { if ((k /= q / 2) < 1) return p / 2 * k * k * k + m; return p / 2 * ((k -= 2) * k * k + 2) + m }, easeInQuart: function (l, k, m, p, q) { return p * (k /= q) * k * k * k + m }, easeOutQuart: function (l, k, m, p, q) { return -p * ((k = k / q - 1) * k * k * k - 1) + m }, easeInOutQuart: function (l, k, m, p, q) { if ((k /= q / 2) < 1) return p / 2 * k * k * k * k + m; return -p / 2 * ((k -= 2) * k * k * k - 2) + m }, easeInQuint: function (l, k, m, p, q) { return p * (k /= q) * k * k * k * k + m }, easeOutQuint: function (l, k, m, p, q) { return p * ((k = k / q - 1) * k * k * k * k + 1) + m }, easeInOutQuint: function (l,
k, m, p, q) { if ((k /= q / 2) < 1) return p / 2 * k * k * k * k * k + m; return p / 2 * ((k -= 2) * k * k * k * k + 2) + m }, easeInSine: function (l, k, m, p, q) { return -p * Math.cos(k / q * (Math.PI / 2)) + p + m }, easeOutSine: function (l, k, m, p, q) { return p * Math.sin(k / q * (Math.PI / 2)) + m }, easeInOutSine: function (l, k, m, p, q) { return -p / 2 * (Math.cos(Math.PI * k / q) - 1) + m }, easeInExpo: function (l, k, m, p, q) { return k == 0 ? m : p * Math.pow(2, 10 * (k / q - 1)) + m }, easeOutExpo: function (l, k, m, p, q) { return k == q ? m + p : p * (-Math.pow(2, -10 * k / q) + 1) + m }, easeInOutExpo: function (l, k, m, p, q) {
    if (k == 0) return m; if (k ==
q) return m + p; if ((k /= q / 2) < 1) return p / 2 * Math.pow(2, 10 * (k - 1)) + m; return p / 2 * (-Math.pow(2, -10 * --k) + 2) + m
}, easeInCirc: function (l, k, m, p, q) { return -p * (Math.sqrt(1 - (k /= q) * k) - 1) + m }, easeOutCirc: function (l, k, m, p, q) { return p * Math.sqrt(1 - (k = k / q - 1) * k) + m }, easeInOutCirc: function (l, k, m, p, q) { if ((k /= q / 2) < 1) return -p / 2 * (Math.sqrt(1 - k * k) - 1) + m; return p / 2 * (Math.sqrt(1 - (k -= 2) * k) + 1) + m }, easeInElastic: function (l, k, m, p, q) {
    l = 1.70158; var s = 0, r = p; if (k == 0) return m; if ((k /= q) == 1) return m + p; s || (s = q * 0.3); if (r < Math.abs(p)) { r = p; l = s / 4 } else l =
s / (2 * Math.PI) * Math.asin(p / r); return -(r * Math.pow(2, 10 * (k -= 1)) * Math.sin((k * q - l) * 2 * Math.PI / s)) + m
}, easeOutElastic: function (l, k, m, p, q) { l = 1.70158; var s = 0, r = p; if (k == 0) return m; if ((k /= q) == 1) return m + p; s || (s = q * 0.3); if (r < Math.abs(p)) { r = p; l = s / 4 } else l = s / (2 * Math.PI) * Math.asin(p / r); return r * Math.pow(2, -10 * k) * Math.sin((k * q - l) * 2 * Math.PI / s) + p + m }, easeInOutElastic: function (l, k, m, p, q) {
    l = 1.70158; var s = 0, r = p; if (k == 0) return m; if ((k /= q / 2) == 2) return m + p; s || (s = q * 0.3 * 1.5); if (r < Math.abs(p)) { r = p; l = s / 4 } else l = s / (2 * Math.PI) * Math.asin(p /
r); if (k < 1) return -0.5 * r * Math.pow(2, 10 * (k -= 1)) * Math.sin((k * q - l) * 2 * Math.PI / s) + m; return r * Math.pow(2, -10 * (k -= 1)) * Math.sin((k * q - l) * 2 * Math.PI / s) * 0.5 + p + m
}, easeInBack: function (l, k, m, p, q, s) { if (s == d) s = 1.70158; return p * (k /= q) * k * ((s + 1) * k - s) + m }, easeOutBack: function (l, k, m, p, q, s) { if (s == d) s = 1.70158; return p * ((k = k / q - 1) * k * ((s + 1) * k + s) + 1) + m }, easeInOutBack: function (l, k, m, p, q, s) { if (s == d) s = 1.70158; if ((k /= q / 2) < 1) return p / 2 * k * k * (((s *= 1.525) + 1) * k - s) + m; return p / 2 * ((k -= 2) * k * (((s *= 1.525) + 1) * k + s) + 2) + m }, easeInBounce: function (l,
k, m, p, q) { return p - b.easing.easeOutBounce(l, q - k, 0, p, q) + m }, easeOutBounce: function (l, k, m, p, q) { return (k /= q) < 1 / 2.75 ? p * 7.5625 * k * k + m : k < 2 / 2.75 ? p * (7.5625 * (k -= 1.5 / 2.75) * k + 0.75) + m : k < 2.5 / 2.75 ? p * (7.5625 * (k -= 2.25 / 2.75) * k + 0.9375) + m : p * (7.5625 * (k -= 2.625 / 2.75) * k + 0.984375) + m }, easeInOutBounce: function (l, k, m, p, q) { if (k < q / 2) return b.easing.easeInBounce(l, k * 2, 0, p, q) * 0.5 + m; return b.easing.easeOutBounce(l, k * 2 - q, 0, p, q) * 0.5 + p * 0.5 + m } 
})
} (jQuery);
(function (b) {
    b.effects.blind = function (d) {
        return this.queue(function () {
            var e = b(this), f = ["position", "top", "bottom", "left", "right"], g = b.effects.setMode(e, d.options.mode || "hide"), a = d.options.direction || "vertical"; b.effects.save(e, f); e.show(); var c = b.effects.createWrapper(e).css({ overflow: "hidden" }), h = a == "vertical" ? "height" : "width"; a = a == "vertical" ? c.height() : c.width(); g == "show" && c.css(h, 0); var i = {}; i[h] = g == "show" ? a : 0; c.animate(i, d.duration, d.options.easing, function () {
                g == "hide" && e.hide(); b.effects.restore(e,
f); b.effects.removeWrapper(e); d.callback && d.callback.apply(e[0], arguments); e.dequeue()
            })
        })
    } 
})(jQuery);
(function (b) {
    b.effects.bounce = function (d) {
        return this.queue(function () {
            var e = b(this), f = ["position", "top", "bottom", "left", "right"], g = b.effects.setMode(e, d.options.mode || "effect"), a = d.options.direction || "up", c = d.options.distance || 20, h = d.options.times || 5, i = d.duration || 250; /show|hide/.test(g) && f.push("opacity"); b.effects.save(e, f); e.show(); b.effects.createWrapper(e); var j = a == "up" || a == "down" ? "top" : "left"; a = a == "up" || a == "left" ? "pos" : "neg"; c = d.options.distance || (j == "top" ? e.outerHeight({ margin: true }) / 3 : e.outerWidth({ margin: true }) /
3); if (g == "show") e.css("opacity", 0).css(j, a == "pos" ? -c : c); if (g == "hide") c /= h * 2; g != "hide" && h--; if (g == "show") { var n = { opacity: 1 }; n[j] = (a == "pos" ? "+=" : "-=") + c; e.animate(n, i / 2, d.options.easing); c /= 2; h-- } for (n = 0; n < h; n++) { var o = {}, l = {}; o[j] = (a == "pos" ? "-=" : "+=") + c; l[j] = (a == "pos" ? "+=" : "-=") + c; e.animate(o, i / 2, d.options.easing).animate(l, i / 2, d.options.easing); c = g == "hide" ? c * 2 : c / 2 } if (g == "hide") {
                n = { opacity: 0 }; n[j] = (a == "pos" ? "-=" : "+=") + c; e.animate(n, i / 2, d.options.easing, function () {
                    e.hide(); b.effects.restore(e, f); b.effects.removeWrapper(e);
                    d.callback && d.callback.apply(this, arguments)
                })
            } else { o = {}; l = {}; o[j] = (a == "pos" ? "-=" : "+=") + c; l[j] = (a == "pos" ? "+=" : "-=") + c; e.animate(o, i / 2, d.options.easing).animate(l, i / 2, d.options.easing, function () { b.effects.restore(e, f); b.effects.removeWrapper(e); d.callback && d.callback.apply(this, arguments) }) } e.queue("fx", function () { e.dequeue() }); e.dequeue()
        })
    } 
})(jQuery);
(function (b) {
    b.effects.clip = function (d) {
        return this.queue(function () {
            var e = b(this), f = ["position", "top", "bottom", "left", "right", "height", "width"], g = b.effects.setMode(e, d.options.mode || "hide"), a = d.options.direction || "vertical"; b.effects.save(e, f); e.show(); var c = b.effects.createWrapper(e).css({ overflow: "hidden" }); c = e[0].tagName == "IMG" ? c : e; var h = { size: a == "vertical" ? "height" : "width", position: a == "vertical" ? "top" : "left" }; a = a == "vertical" ? c.height() : c.width(); if (g == "show") {
                c.css(h.size, 0); c.css(h.position,
a / 2)
            } var i = {}; i[h.size] = g == "show" ? a : 0; i[h.position] = g == "show" ? 0 : a / 2; c.animate(i, { queue: false, duration: d.duration, easing: d.options.easing, complete: function () { g == "hide" && e.hide(); b.effects.restore(e, f); b.effects.removeWrapper(e); d.callback && d.callback.apply(e[0], arguments); e.dequeue() } })
        })
    } 
})(jQuery);
(function (b) {
    b.effects.drop = function (d) {
        return this.queue(function () {
            var e = b(this), f = ["position", "top", "bottom", "left", "right", "opacity"], g = b.effects.setMode(e, d.options.mode || "hide"), a = d.options.direction || "left"; b.effects.save(e, f); e.show(); b.effects.createWrapper(e); var c = a == "up" || a == "down" ? "top" : "left"; a = a == "up" || a == "left" ? "pos" : "neg"; var h = d.options.distance || (c == "top" ? e.outerHeight({ margin: true }) / 2 : e.outerWidth({ margin: true }) / 2); if (g == "show") e.css("opacity", 0).css(c, a == "pos" ? -h : h); var i = { opacity: g ==
"show" ? 1 : 0
            }; i[c] = (g == "show" ? a == "pos" ? "+=" : "-=" : a == "pos" ? "-=" : "+=") + h; e.animate(i, { queue: false, duration: d.duration, easing: d.options.easing, complete: function () { g == "hide" && e.hide(); b.effects.restore(e, f); b.effects.removeWrapper(e); d.callback && d.callback.apply(this, arguments); e.dequeue() } })
        })
    } 
})(jQuery);
(function (b) {
    b.effects.explode = function (d) {
        return this.queue(function () {
            var e = d.options.pieces ? Math.round(Math.sqrt(d.options.pieces)) : 3, f = d.options.pieces ? Math.round(Math.sqrt(d.options.pieces)) : 3; d.options.mode = d.options.mode == "toggle" ? b(this).is(":visible") ? "hide" : "show" : d.options.mode; var g = b(this).show().css("visibility", "hidden"), a = g.offset(); a.top -= parseInt(g.css("marginTop"), 10) || 0; a.left -= parseInt(g.css("marginLeft"), 10) || 0; for (var c = g.outerWidth(true), h = g.outerHeight(true), i = 0; i < e; i++) for (var j =
0; j < f; j++) g.clone().appendTo("body").wrap("<div></div>").css({ position: "absolute", visibility: "visible", left: -j * (c / f), top: -i * (h / e) }).parent().addClass("ui-effects-explode").css({ position: "absolute", overflow: "hidden", width: c / f, height: h / e, left: a.left + j * (c / f) + (d.options.mode == "show" ? (j - Math.floor(f / 2)) * (c / f) : 0), top: a.top + i * (h / e) + (d.options.mode == "show" ? (i - Math.floor(e / 2)) * (h / e) : 0), opacity: d.options.mode == "show" ? 0 : 1 }).animate({ left: a.left + j * (c / f) + (d.options.mode == "show" ? 0 : (j - Math.floor(f / 2)) * (c / f)), top: a.top +
i * (h / e) + (d.options.mode == "show" ? 0 : (i - Math.floor(e / 2)) * (h / e)), opacity: d.options.mode == "show" ? 1 : 0
}, d.duration || 500); setTimeout(function () { d.options.mode == "show" ? g.css({ visibility: "visible" }) : g.css({ visibility: "visible" }).hide(); d.callback && d.callback.apply(g[0]); g.dequeue(); b("div.ui-effects-explode").remove() }, d.duration || 500)
        })
    } 
})(jQuery);
(function (b) { b.effects.fade = function (d) { return this.queue(function () { var e = b(this), f = b.effects.setMode(e, d.options.mode || "hide"); e.animate({ opacity: f }, { queue: false, duration: d.duration, easing: d.options.easing, complete: function () { d.callback && d.callback.apply(this, arguments); e.dequeue() } }) }) } })(jQuery);
(function (b) {
    b.effects.fold = function (d) {
        return this.queue(function () {
            var e = b(this), f = ["position", "top", "bottom", "left", "right"], g = b.effects.setMode(e, d.options.mode || "hide"), a = d.options.size || 15, c = !!d.options.horizFirst, h = d.duration ? d.duration / 2 : b.fx.speeds._default / 2; b.effects.save(e, f); e.show(); var i = b.effects.createWrapper(e).css({ overflow: "hidden" }), j = g == "show" != c, n = j ? ["width", "height"] : ["height", "width"]; j = j ? [i.width(), i.height()] : [i.height(), i.width()]; var o = /([0-9]+)%/.exec(a); if (o) a = parseInt(o[1],
10) / 100 * j[g == "hide" ? 0 : 1]; if (g == "show") i.css(c ? { height: 0, width: a} : { height: a, width: 0 }); c = {}; o = {}; c[n[0]] = g == "show" ? j[0] : a; o[n[1]] = g == "show" ? j[1] : 0; i.animate(c, h, d.options.easing).animate(o, h, d.options.easing, function () { g == "hide" && e.hide(); b.effects.restore(e, f); b.effects.removeWrapper(e); d.callback && d.callback.apply(e[0], arguments); e.dequeue() })
        })
    } 
})(jQuery);
(function (b) {
    b.effects.highlight = function (d) {
        return this.queue(function () {
            var e = b(this), f = ["backgroundImage", "backgroundColor", "opacity"], g = b.effects.setMode(e, d.options.mode || "show"), a = { backgroundColor: e.css("backgroundColor") }; if (g == "hide") a.opacity = 0; b.effects.save(e, f); e.show().css({ backgroundImage: "none", backgroundColor: d.options.color || "#ffff99" }).animate(a, { queue: false, duration: d.duration, easing: d.options.easing, complete: function () {
                g == "hide" && e.hide(); b.effects.restore(e, f); g == "show" && !b.support.opacity &&
this.style.removeAttribute("filter"); d.callback && d.callback.apply(this, arguments); e.dequeue()
            } 
            })
        })
    } 
})(jQuery);
(function (b) {
    b.effects.pulsate = function (d) {
        return this.queue(function () {
            var e = b(this), f = b.effects.setMode(e, d.options.mode || "show"); times = (d.options.times || 5) * 2 - 1; duration = d.duration ? d.duration / 2 : b.fx.speeds._default / 2; isVisible = e.is(":visible"); animateTo = 0; if (!isVisible) { e.css("opacity", 0).show(); animateTo = 1 } if (f == "hide" && isVisible || f == "show" && !isVisible) times--; for (f = 0; f < times; f++) { e.animate({ opacity: animateTo }, duration, d.options.easing); animateTo = (animateTo + 1) % 2 } e.animate({ opacity: animateTo }, duration,
d.options.easing, function () { animateTo == 0 && e.hide(); d.callback && d.callback.apply(this, arguments) }); e.queue("fx", function () { e.dequeue() }).dequeue()
        })
    } 
})(jQuery);
(function (b) {
    b.effects.puff = function (d) { return this.queue(function () { var e = b(this), f = b.effects.setMode(e, d.options.mode || "hide"), g = parseInt(d.options.percent, 10) || 150, a = g / 100, c = { height: e.height(), width: e.width() }; b.extend(d.options, { fade: true, mode: f, percent: f == "hide" ? g : 100, from: f == "hide" ? c : { height: c.height * a, width: c.width * a} }); e.effect("scale", d.options, d.duration, d.callback); e.dequeue() }) }; b.effects.scale = function (d) {
        return this.queue(function () {
            var e = b(this), f = b.extend(true, {}, d.options), g = b.effects.setMode(e,
d.options.mode || "effect"), a = parseInt(d.options.percent, 10) || (parseInt(d.options.percent, 10) == 0 ? 0 : g == "hide" ? 0 : 100), c = d.options.direction || "both", h = d.options.origin; if (g != "effect") { f.origin = h || ["middle", "center"]; f.restore = true } h = { height: e.height(), width: e.width() }; e.from = d.options.from || (g == "show" ? { height: 0, width: 0} : h); a = { y: c != "horizontal" ? a / 100 : 1, x: c != "vertical" ? a / 100 : 1 }; e.to = { height: h.height * a.y, width: h.width * a.x }; if (d.options.fade) {
                if (g == "show") { e.from.opacity = 0; e.to.opacity = 1 } if (g == "hide") {
                    e.from.opacity =
1; e.to.opacity = 0
                } 
            } f.from = e.from; f.to = e.to; f.mode = g; e.effect("size", f, d.duration, d.callback); e.dequeue()
        })
    }; b.effects.size = function (d) {
        return this.queue(function () {
            var e = b(this), f = ["position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity"], g = ["position", "top", "bottom", "left", "right", "overflow", "opacity"], a = ["width", "height", "overflow"], c = ["fontSize"], h = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"], i = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"],
j = b.effects.setMode(e, d.options.mode || "effect"), n = d.options.restore || false, o = d.options.scale || "both", l = d.options.origin, k = { height: e.height(), width: e.width() }; e.from = d.options.from || k; e.to = d.options.to || k; if (l) { l = b.effects.getBaseline(l, k); e.from.top = (k.height - e.from.height) * l.y; e.from.left = (k.width - e.from.width) * l.x; e.to.top = (k.height - e.to.height) * l.y; e.to.left = (k.width - e.to.width) * l.x } var m = { from: { y: e.from.height / k.height, x: e.from.width / k.width }, to: { y: e.to.height / k.height, x: e.to.width / k.width} };
            if (o == "box" || o == "both") { if (m.from.y != m.to.y) { f = f.concat(h); e.from = b.effects.setTransition(e, h, m.from.y, e.from); e.to = b.effects.setTransition(e, h, m.to.y, e.to) } if (m.from.x != m.to.x) { f = f.concat(i); e.from = b.effects.setTransition(e, i, m.from.x, e.from); e.to = b.effects.setTransition(e, i, m.to.x, e.to) } } if (o == "content" || o == "both") if (m.from.y != m.to.y) { f = f.concat(c); e.from = b.effects.setTransition(e, c, m.from.y, e.from); e.to = b.effects.setTransition(e, c, m.to.y, e.to) } b.effects.save(e, n ? f : g); e.show(); b.effects.createWrapper(e);
            e.css("overflow", "hidden").css(e.from); if (o == "content" || o == "both") {
                h = h.concat(["marginTop", "marginBottom"]).concat(c); i = i.concat(["marginLeft", "marginRight"]); a = f.concat(h).concat(i); e.find("*[width]").each(function () {
                    child = b(this); n && b.effects.save(child, a); var p = { height: child.height(), width: child.width() }; child.from = { height: p.height * m.from.y, width: p.width * m.from.x }; child.to = { height: p.height * m.to.y, width: p.width * m.to.x }; if (m.from.y != m.to.y) {
                        child.from = b.effects.setTransition(child, h, m.from.y, child.from);
                        child.to = b.effects.setTransition(child, h, m.to.y, child.to)
                    } if (m.from.x != m.to.x) { child.from = b.effects.setTransition(child, i, m.from.x, child.from); child.to = b.effects.setTransition(child, i, m.to.x, child.to) } child.css(child.from); child.animate(child.to, d.duration, d.options.easing, function () { n && b.effects.restore(child, a) })
                })
            } e.animate(e.to, { queue: false, duration: d.duration, easing: d.options.easing, complete: function () {
                e.to.opacity === 0 && e.css("opacity", e.from.opacity); j == "hide" && e.hide(); b.effects.restore(e,
n ? f : g); b.effects.removeWrapper(e); d.callback && d.callback.apply(this, arguments); e.dequeue()
            } 
            })
        })
    } 
})(jQuery);
(function (b) {
    b.effects.shake = function (d) {
        return this.queue(function () {
            var e = b(this), f = ["position", "top", "bottom", "left", "right"]; b.effects.setMode(e, d.options.mode || "effect"); var g = d.options.direction || "left", a = d.options.distance || 20, c = d.options.times || 3, h = d.duration || d.options.duration || 140; b.effects.save(e, f); e.show(); b.effects.createWrapper(e); var i = g == "up" || g == "down" ? "top" : "left", j = g == "up" || g == "left" ? "pos" : "neg"; g = {}; var n = {}, o = {}; g[i] = (j == "pos" ? "-=" : "+=") + a; n[i] = (j == "pos" ? "+=" : "-=") + a * 2; o[i] =
(j == "pos" ? "-=" : "+=") + a * 2; e.animate(g, h, d.options.easing); for (a = 1; a < c; a++) e.animate(n, h, d.options.easing).animate(o, h, d.options.easing); e.animate(n, h, d.options.easing).animate(g, h / 2, d.options.easing, function () { b.effects.restore(e, f); b.effects.removeWrapper(e); d.callback && d.callback.apply(this, arguments) }); e.queue("fx", function () { e.dequeue() }); e.dequeue()
        })
    } 
})(jQuery);
(function (b) {
    b.effects.slide = function (d) {
        return this.queue(function () {
            var e = b(this), f = ["position", "top", "bottom", "left", "right"], g = b.effects.setMode(e, d.options.mode || "show"), a = d.options.direction || "left"; b.effects.save(e, f); e.show(); b.effects.createWrapper(e).css({ overflow: "hidden" }); var c = a == "up" || a == "down" ? "top" : "left"; a = a == "up" || a == "left" ? "pos" : "neg"; var h = d.options.distance || (c == "top" ? e.outerHeight({ margin: true }) : e.outerWidth({ margin: true })); if (g == "show") e.css(c, a == "pos" ? isNaN(h) ? "-" + h : -h : h);
            var i = {}; i[c] = (g == "show" ? a == "pos" ? "+=" : "-=" : a == "pos" ? "-=" : "+=") + h; e.animate(i, { queue: false, duration: d.duration, easing: d.options.easing, complete: function () { g == "hide" && e.hide(); b.effects.restore(e, f); b.effects.removeWrapper(e); d.callback && d.callback.apply(this, arguments); e.dequeue() } })
        })
    } 
})(jQuery);
(function (b) {
    b.effects.transfer = function (d) {
        return this.queue(function () {
            var e = b(this), f = b(d.options.to), g = f.offset(); f = { top: g.top, left: g.left, height: f.innerHeight(), width: f.innerWidth() }; g = e.offset(); var a = b('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(d.options.className).css({ top: g.top, left: g.left, height: e.innerHeight(), width: e.innerWidth(), position: "absolute" }).animate(f, d.duration, d.options.easing, function () {
                a.remove(); d.callback && d.callback.apply(e[0], arguments);
                e.dequeue()
            })
        })
    } 
})(jQuery);
(function (b) {
    b.widget("ui.accordion", { options: { active: 0, animated: "slide", autoHeight: true, clearStyle: false, collapsible: false, event: "click", fillSpace: false, header: "> li > :first-child,> :not(li):even", icons: { header: "ui-icon-triangle-1-e", headerSelected: "ui-icon-triangle-1-s" }, navigation: false, navigationFilter: function () { return this.href.toLowerCase() === location.href.toLowerCase() } }, _create: function () {
        var d = this, e = d.options; d.running = 0; d.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"); d.headers =
d.element.find(e.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion", function () { e.disabled || b(this).addClass("ui-state-hover") }).bind("mouseleave.accordion", function () { e.disabled || b(this).removeClass("ui-state-hover") }).bind("focus.accordion", function () { e.disabled || b(this).addClass("ui-state-focus") }).bind("blur.accordion", function () { e.disabled || b(this).removeClass("ui-state-focus") }); d.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
        if (e.navigation) { var f = d.element.find("a").filter(e.navigationFilter).eq(0); if (f.length) { var g = f.closest(".ui-accordion-header"); d.active = g.length ? g : f.closest(".ui-accordion-content").prev() } } d.active = d._findActive(d.active || e.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top"); d.active.next().addClass("ui-accordion-content-active"); d._createIcons(); d.resize(); d.element.attr("role", "tablist"); d.headers.attr("role", "tab").bind("keydown.accordion",
function (a) { return d._keydown(a) }).next().attr("role", "tabpanel"); d.headers.not(d.active || "").attr({ "aria-expanded": "false", "aria-selected": "false", tabIndex: -1 }).next().hide(); d.active.length ? d.active.attr({ "aria-expanded": "true", "aria-selected": "true", tabIndex: 0 }) : d.headers.eq(0).attr("tabIndex", 0); b.browser.safari || d.headers.find("a").attr("tabIndex", -1); e.event && d.headers.bind(e.event.split(" ").join(".accordion ") + ".accordion", function (a) { d._clickHandler.call(d, a, this); a.preventDefault() })
    }, _createIcons: function () {
        var d =
this.options; if (d.icons) { b("<span></span>").addClass("ui-icon " + d.icons.header).prependTo(this.headers); this.active.children(".ui-icon").toggleClass(d.icons.header).toggleClass(d.icons.headerSelected); this.element.addClass("ui-accordion-icons") } 
    }, _destroyIcons: function () { this.headers.children(".ui-icon").remove(); this.element.removeClass("ui-accordion-icons") }, destroy: function () {
        var d = this.options; this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"); this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex");
        this.headers.find("a").removeAttr("tabIndex"); this._destroyIcons(); var e = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled"); if (d.autoHeight || d.fillHeight) e.css("height", ""); return b.Widget.prototype.destroy.call(this)
    }, _setOption: function (d, e) {
        b.Widget.prototype._setOption.apply(this, arguments); d == "active" && this.activate(e); if (d == "icons") {
            this._destroyIcons();
            e && this._createIcons()
        } if (d == "disabled") this.headers.add(this.headers.next())[e ? "addClass" : "removeClass"]("ui-accordion-disabled ui-state-disabled")
    }, _keydown: function (d) {
        if (!(this.options.disabled || d.altKey || d.ctrlKey)) {
            var e = b.ui.keyCode, f = this.headers.length, g = this.headers.index(d.target), a = false; switch (d.keyCode) {
                case e.RIGHT: case e.DOWN: a = this.headers[(g + 1) % f]; break; case e.LEFT: case e.UP: a = this.headers[(g - 1 + f) % f]; break; case e.SPACE: case e.ENTER: this._clickHandler({ target: d.target }, d.target);
                    d.preventDefault()
            } if (a) { b(d.target).attr("tabIndex", -1); b(a).attr("tabIndex", 0); a.focus(); return false } return true
        } 
    }, resize: function () {
        var d = this.options, e; if (d.fillSpace) {
            if (b.browser.msie) { var f = this.element.parent().css("overflow"); this.element.parent().css("overflow", "hidden") } e = this.element.parent().height(); b.browser.msie && this.element.parent().css("overflow", f); this.headers.each(function () { e -= b(this).outerHeight(true) }); this.headers.next().each(function () {
                b(this).height(Math.max(0, e - b(this).innerHeight() +
b(this).height()))
            }).css("overflow", "auto")
        } else if (d.autoHeight) { e = 0; this.headers.next().each(function () { e = Math.max(e, b(this).height("").height()) }).height(e) } return this
    }, activate: function (d) { this.options.active = d; d = this._findActive(d)[0]; this._clickHandler({ target: d }, d); return this }, _findActive: function (d) { return d ? typeof d === "number" ? this.headers.filter(":eq(" + d + ")") : this.headers.not(this.headers.not(d)) : d === false ? b([]) : this.headers.filter(":eq(0)") }, _clickHandler: function (d, e) {
        var f = this.options;
        if (!f.disabled) if (d.target) {
            d = b(d.currentTarget || e); e = d[0] === this.active[0]; f.active = f.collapsible && e ? false : this.headers.index(d); if (!(this.running || !f.collapsible && e)) {
                var g = this.active; i = d.next(); c = this.active.next(); h = { options: f, newHeader: e && f.collapsible ? b([]) : d, oldHeader: this.active, newContent: e && f.collapsible ? b([]) : i, oldContent: c }; var a = this.headers.index(this.active[0]) > this.headers.index(d[0]); this.active = e ? b([]) : d; this._toggle(i, c, h, e, a); g.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(f.icons.headerSelected).addClass(f.icons.header);
                if (!e) { d.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(f.icons.header).addClass(f.icons.headerSelected); d.next().addClass("ui-accordion-content-active") } 
            } 
        } else if (f.collapsible) {
            this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(f.icons.headerSelected).addClass(f.icons.header); this.active.next().addClass("ui-accordion-content-active"); var c = this.active.next(),
h = { options: f, newHeader: b([]), oldHeader: f.active, newContent: b([]), oldContent: c }, i = this.active = b([]); this._toggle(i, c, h)
        } 
    }, _toggle: function (d, e, f, g, a) {
        var c = this, h = c.options; c.toShow = d; c.toHide = e; c.data = f; var i = function () { if (c) return c._completed.apply(c, arguments) }; c._trigger("changestart", null, c.data); c.running = e.size() === 0 ? d.size() : e.size(); if (h.animated) {
            f = {}; f = h.collapsible && g ? { toShow: b([]), toHide: e, complete: i, down: a, autoHeight: h.autoHeight || h.fillSpace} : { toShow: d, toHide: e, complete: i, down: a, autoHeight: h.autoHeight ||
h.fillSpace
            }; if (!h.proxied) h.proxied = h.animated; if (!h.proxiedDuration) h.proxiedDuration = h.duration; h.animated = b.isFunction(h.proxied) ? h.proxied(f) : h.proxied; h.duration = b.isFunction(h.proxiedDuration) ? h.proxiedDuration(f) : h.proxiedDuration; g = b.ui.accordion.animations; var j = h.duration, n = h.animated; if (n && !g[n] && !b.easing[n]) n = "slide"; g[n] || (g[n] = function (o) { this.slide(o, { easing: n, duration: j || 700 }) }); g[n](f)
        } else { if (h.collapsible && g) d.toggle(); else { e.hide(); d.show() } i(true) } e.prev().attr({ "aria-expanded": "false",
            "aria-selected": "false", tabIndex: -1
        }).blur(); d.prev().attr({ "aria-expanded": "true", "aria-selected": "true", tabIndex: 0 }).focus()
    }, _completed: function (d) { this.running = d ? 0 : --this.running; if (!this.running) { this.options.clearStyle && this.toShow.add(this.toHide).css({ height: "", overflow: "" }); this.toHide.removeClass("ui-accordion-content-active"); if (this.toHide.length) this.toHide.parent()[0].className = this.toHide.parent()[0].className; this._trigger("change", null, this.data) } } 
    }); b.extend(b.ui.accordion, { version: "1.8.12",
        animations: { slide: function (d, e) {
            d = b.extend({ easing: "swing", duration: 300 }, d, e); if (d.toHide.size()) if (d.toShow.size()) {
                var f = d.toShow.css("overflow"), g = 0, a = {}, c = {}, h; e = d.toShow; h = e[0].style.width; e.width(parseInt(e.parent().width(), 10) - parseInt(e.css("paddingLeft"), 10) - parseInt(e.css("paddingRight"), 10) - (parseInt(e.css("borderLeftWidth"), 10) || 0) - (parseInt(e.css("borderRightWidth"), 10) || 0)); b.each(["height", "paddingTop", "paddingBottom"], function (i, j) {
                    c[j] = "hide"; i = ("" + b.css(d.toShow[0], j)).match(/^([\d+-.]+)(.*)$/);
                    a[j] = { value: i[1], unit: i[2] || "px"}
                }); d.toShow.css({ height: 0, overflow: "hidden" }).show(); d.toHide.filter(":hidden").each(d.complete).end().filter(":visible").animate(c, { step: function (i, j) { if (j.prop == "height") g = j.end - j.start === 0 ? 0 : (j.now - j.start) / (j.end - j.start); d.toShow[0].style[j.prop] = g * a[j.prop].value + a[j.prop].unit }, duration: d.duration, easing: d.easing, complete: function () { d.autoHeight || d.toShow.css("height", ""); d.toShow.css({ width: h, overflow: f }); d.complete() } })
            } else d.toHide.animate({ height: "hide",
                paddingTop: "hide", paddingBottom: "hide"
            }, d); else d.toShow.animate({ height: "show", paddingTop: "show", paddingBottom: "show" }, d)
        }, bounceslide: function (d) { this.slide(d, { easing: d.down ? "easeOutBounce" : "swing", duration: d.down ? 1E3 : 200 }) } 
        }
    })
})(jQuery);
(function (b) {
    var d = 0; b.widget("ui.autocomplete", { options: { appendTo: "body", autoFocus: false, delay: 300, minLength: 1, position: { my: "left top", at: "left bottom", collision: "none" }, source: null }, pending: 0, _create: function () {
        var e = this, f = this.element[0].ownerDocument, g; this.element.addClass("ui-autocomplete-input").attr("autocomplete", "off").attr({ role: "textbox", "aria-autocomplete": "list", "aria-haspopup": "true" }).bind("keydown.autocomplete", function (a) {
            if (!(e.options.disabled || e.element.attr("readonly"))) {
                g =
false; var c = b.ui.keyCode; switch (a.keyCode) {
                    case c.PAGE_UP: e._move("previousPage", a); break; case c.PAGE_DOWN: e._move("nextPage", a); break; case c.UP: e._move("previous", a); a.preventDefault(); break; case c.DOWN: e._move("next", a); a.preventDefault(); break; case c.ENTER: case c.NUMPAD_ENTER: if (e.menu.active) { g = true; a.preventDefault() } case c.TAB: if (!e.menu.active) return; e.menu.select(a); break; case c.ESCAPE: e.element.val(e.term); e.close(a); break; default: clearTimeout(e.searching); e.searching = setTimeout(function () {
                        if (e.term !=
e.element.val()) { e.selectedItem = null; e.search(null, a) } 
                    }, e.options.delay); break
                } 
            } 
        }).bind("keypress.autocomplete", function (a) { if (g) { g = false; a.preventDefault() } }).bind("focus.autocomplete", function () { if (!e.options.disabled) { e.selectedItem = null; e.previous = e.element.val() } }).bind("blur.autocomplete", function (a) { if (!e.options.disabled) { clearTimeout(e.searching); e.closing = setTimeout(function () { e.close(a); e._change(a) }, 150) } }); this._initSource(); this.response = function () { return e._response.apply(e, arguments) };
        this.menu = b("<ul></ul>").addClass("ui-autocomplete").appendTo(b(this.options.appendTo || "body", f)[0]).mousedown(function (a) { var c = e.menu.element[0]; b(a.target).closest(".ui-menu-item").length || setTimeout(function () { b(document).one("mousedown", function (h) { h.target !== e.element[0] && h.target !== c && !b.ui.contains(c, h.target) && e.close() }) }, 1); setTimeout(function () { clearTimeout(e.closing) }, 13) }).menu({ focus: function (a, c) {
            c = c.item.data("item.autocomplete"); false !== e._trigger("focus", a, { item: c }) && /^key/.test(a.originalEvent.type) &&
e.element.val(c.value)
        }, selected: function (a, c) { var h = c.item.data("item.autocomplete"), i = e.previous; if (e.element[0] !== f.activeElement) { e.element.focus(); e.previous = i; setTimeout(function () { e.previous = i; e.selectedItem = h }, 1) } false !== e._trigger("select", a, { item: h }) && e.element.val(h.value); e.term = e.element.val(); e.close(a); e.selectedItem = h }, blur: function () { e.menu.element.is(":visible") && e.element.val() !== e.term && e.element.val(e.term) } 
        }).zIndex(this.element.zIndex() + 1).css({ top: 0, left: 0 }).hide().data("menu");
        b.fn.bgiframe && this.menu.element.bgiframe()
    }, destroy: function () { this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"); this.menu.element.remove(); b.Widget.prototype.destroy.call(this) }, _setOption: function (e, f) {
        b.Widget.prototype._setOption.apply(this, arguments); e === "source" && this._initSource(); if (e === "appendTo") this.menu.element.appendTo(b(f || "body", this.element[0].ownerDocument)[0]); e === "disabled" &&
f && this.xhr && this.xhr.abort()
    }, _initSource: function () {
        var e = this, f, g; if (b.isArray(this.options.source)) { f = this.options.source; this.source = function (a, c) { c(b.ui.autocomplete.filter(f, a.term)) } } else if (typeof this.options.source === "string") { g = this.options.source; this.source = function (a, c) { e.xhr && e.xhr.abort(); e.xhr = b.ajax({ url: g, data: a, dataType: "json", autocompleteRequest: ++d, success: function (h) { this.autocompleteRequest === d && c(h) }, error: function () { this.autocompleteRequest === d && c([]) } }) } } else this.source =
this.options.source
    }, search: function (e, f) { e = e != null ? e : this.element.val(); this.term = this.element.val(); if (e.length < this.options.minLength) return this.close(f); clearTimeout(this.closing); if (this._trigger("search", f) !== false) return this._search(e) }, _search: function (e) { this.pending++; this.element.addClass("ui-autocomplete-loading"); this.source({ term: e }, this.response) }, _response: function (e) {
        if (!this.options.disabled && e && e.length) { e = this._normalize(e); this._suggest(e); this._trigger("open") } else this.close();
        this.pending--; this.pending || this.element.removeClass("ui-autocomplete-loading")
    }, close: function (e) { clearTimeout(this.closing); if (this.menu.element.is(":visible")) { this.menu.element.hide(); this.menu.deactivate(); this._trigger("close", e) } }, _change: function (e) { this.previous !== this.element.val() && this._trigger("change", e, { item: this.selectedItem }) }, _normalize: function (e) {
        if (e.length && e[0].label && e[0].value) return e; return b.map(e, function (f) {
            if (typeof f === "string") return { label: f, value: f }; return b.extend({ label: f.label ||
f.value, value: f.value || f.label
            }, f)
        })
    }, _suggest: function (e) { var f = this.menu.element.empty().zIndex(this.element.zIndex() + 1); this._renderMenu(f, e); this.menu.deactivate(); this.menu.refresh(); f.show(); this._resizeMenu(); f.position(b.extend({ of: this.element }, this.options.position)); this.options.autoFocus && this.menu.next(new b.Event("mouseover")) }, _resizeMenu: function () { var e = this.menu.element; e.outerWidth(Math.max(e.width("").outerWidth(), this.element.outerWidth())) }, _renderMenu: function (e, f) {
        var g = this;
        b.each(f, function (a, c) { g._renderItem(e, c) })
    }, _renderItem: function (e, f) { return b("<li></li>").data("item.autocomplete", f).append(b("<a></a>").text(f.label)).appendTo(e) }, _move: function (e, f) { if (this.menu.element.is(":visible")) if (this.menu.first() && /^previous/.test(e) || this.menu.last() && /^next/.test(e)) { this.element.val(this.term); this.menu.deactivate() } else this.menu[e](f); else this.search(null, f) }, widget: function () { return this.menu.element } 
    }); b.extend(b.ui.autocomplete, { escapeRegex: function (e) {
        return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,
"\\$&")
    }, filter: function (e, f) { var g = new RegExp(b.ui.autocomplete.escapeRegex(f), "i"); return b.grep(e, function (a) { return g.test(a.label || a.value || a) }) } 
    })
})(jQuery);
(function (b) {
    b.widget("ui.menu", { _create: function () { var d = this; this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({ role: "listbox", "aria-activedescendant": "ui-active-menuitem" }).click(function (e) { if (b(e.target).closest(".ui-menu-item a").length) { e.preventDefault(); d.select(e) } }); this.refresh() }, refresh: function () {
        var d = this; this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role", "menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
-1).mouseenter(function (e) { d.activate(e, b(this).parent()) }).mouseleave(function () { d.deactivate() })
    }, activate: function (d, e) { this.deactivate(); if (this.hasScroll()) { var f = e.offset().top - this.element.offset().top, g = this.element.attr("scrollTop"), a = this.element.height(); if (f < 0) this.element.attr("scrollTop", g + f); else f >= a && this.element.attr("scrollTop", g + f - a + e.height()) } this.active = e.eq(0).children("a").addClass("ui-state-hover").attr("id", "ui-active-menuitem").end(); this._trigger("focus", d, { item: e }) },
        deactivate: function () { if (this.active) { this.active.children("a").removeClass("ui-state-hover").removeAttr("id"); this._trigger("blur"); this.active = null } }, next: function (d) { this.move("next", ".ui-menu-item:first", d) }, previous: function (d) { this.move("prev", ".ui-menu-item:last", d) }, first: function () { return this.active && !this.active.prevAll(".ui-menu-item").length }, last: function () { return this.active && !this.active.nextAll(".ui-menu-item").length }, move: function (d, e, f) {
            if (this.active) {
                d = this.active[d + "All"](".ui-menu-item").eq(0);
                d.length ? this.activate(f, d) : this.activate(f, this.element.children(e))
            } else this.activate(f, this.element.children(e))
        }, nextPage: function (d) {
            if (this.hasScroll()) if (!this.active || this.last()) this.activate(d, this.element.children(".ui-menu-item:first")); else {
                var e = this.active.offset().top, f = this.element.height(), g = this.element.children(".ui-menu-item").filter(function () { var a = b(this).offset().top - e - f + b(this).height(); return a < 10 && a > -10 }); g.length || (g = this.element.children(".ui-menu-item:last")); this.activate(d,
g)
            } else this.activate(d, this.element.children(".ui-menu-item").filter(!this.active || this.last() ? ":first" : ":last"))
        }, previousPage: function (d) {
            if (this.hasScroll()) if (!this.active || this.first()) this.activate(d, this.element.children(".ui-menu-item:last")); else {
                var e = this.active.offset().top, f = this.element.height(); result = this.element.children(".ui-menu-item").filter(function () { var g = b(this).offset().top - e + f - b(this).height(); return g < 10 && g > -10 }); result.length || (result = this.element.children(".ui-menu-item:first"));
                this.activate(d, result)
            } else this.activate(d, this.element.children(".ui-menu-item").filter(!this.active || this.first() ? ":last" : ":first"))
        }, hasScroll: function () { return this.element.height() < this.element.attr("scrollHeight") }, select: function (d) { this._trigger("selected", d, { item: this.active }) } 
    })
})(jQuery);
(function (b) {
    var d, e = function (g) { b(":ui-button", g.target.form).each(function () { var a = b(this).data("button"); setTimeout(function () { a.refresh() }, 1) }) }, f = function (g) { var a = g.name, c = g.form, h = b([]); if (a) h = c ? b(c).find("[name='" + a + "']") : b("[name='" + a + "']", g.ownerDocument).filter(function () { return !this.form }); return h }; b.widget("ui.button", { options: { disabled: null, text: true, label: null, icons: { primary: null, secondary: null} }, _create: function () {
        this.element.closest("form").unbind("reset.button").bind("reset.button",
e); if (typeof this.options.disabled !== "boolean") this.options.disabled = this.element.attr("disabled"); this._determineButtonType(); this.hasTitle = !!this.buttonElement.attr("title"); var g = this, a = this.options, c = this.type === "checkbox" || this.type === "radio", h = "ui-state-hover" + (!c ? " ui-state-active" : ""); if (a.label === null) a.label = this.buttonElement.html(); if (this.element.is(":disabled")) a.disabled = true; this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role", "button").bind("mouseenter.button",
function () { if (!a.disabled) { b(this).addClass("ui-state-hover"); this === d && b(this).addClass("ui-state-active") } }).bind("mouseleave.button", function () { a.disabled || b(this).removeClass(h) }).bind("focus.button", function () { b(this).addClass("ui-state-focus") }).bind("blur.button", function () { b(this).removeClass("ui-state-focus") }); c && this.element.bind("change.button", function () { g.refresh() }); if (this.type === "checkbox") this.buttonElement.bind("click.button", function () {
    if (a.disabled) return false; b(this).toggleClass("ui-state-active");
    g.buttonElement.attr("aria-pressed", g.element[0].checked)
}); else if (this.type === "radio") this.buttonElement.bind("click.button", function () { if (a.disabled) return false; b(this).addClass("ui-state-active"); g.buttonElement.attr("aria-pressed", true); var i = g.element[0]; f(i).not(i).map(function () { return b(this).button("widget")[0] }).removeClass("ui-state-active").attr("aria-pressed", false) }); else {
            this.buttonElement.bind("mousedown.button", function () {
                if (a.disabled) return false; b(this).addClass("ui-state-active");
                d = this; b(document).one("mouseup", function () { d = null })
            }).bind("mouseup.button", function () { if (a.disabled) return false; b(this).removeClass("ui-state-active") }).bind("keydown.button", function (i) { if (a.disabled) return false; if (i.keyCode == b.ui.keyCode.SPACE || i.keyCode == b.ui.keyCode.ENTER) b(this).addClass("ui-state-active") }).bind("keyup.button", function () { b(this).removeClass("ui-state-active") }); this.buttonElement.is("a") && this.buttonElement.keyup(function (i) { i.keyCode === b.ui.keyCode.SPACE && b(this).click() })
        } this._setOption("disabled",
a.disabled)
    }, _determineButtonType: function () {
        this.type = this.element.is(":checkbox") ? "checkbox" : this.element.is(":radio") ? "radio" : this.element.is("input") ? "input" : "button"; if (this.type === "checkbox" || this.type === "radio") {
            var g = this.element.parents().filter(":last"), a = "label[for=" + this.element.attr("id") + "]"; this.buttonElement = g.find(a); if (!this.buttonElement.length) { g = g.length ? g.siblings() : this.element.siblings(); this.buttonElement = g.filter(a); if (!this.buttonElement.length) this.buttonElement = g.find(a) } this.element.addClass("ui-helper-hidden-accessible");
            (g = this.element.is(":checked")) && this.buttonElement.addClass("ui-state-active"); this.buttonElement.attr("aria-pressed", g)
        } else this.buttonElement = this.element
    }, widget: function () { return this.buttonElement }, destroy: function () {
        this.element.removeClass("ui-helper-hidden-accessible"); this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active  ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());
        this.hasTitle || this.buttonElement.removeAttr("title"); b.Widget.prototype.destroy.call(this)
    }, _setOption: function (g, a) { b.Widget.prototype._setOption.apply(this, arguments); if (g === "disabled") a ? this.element.attr("disabled", true) : this.element.removeAttr("disabled"); this._resetButton() }, refresh: function () {
        var g = this.element.is(":disabled"); g !== this.options.disabled && this._setOption("disabled", g); if (this.type === "radio") f(this.element[0]).each(function () {
            b(this).is(":checked") ? b(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
true) : b(this).button("widget").removeClass("ui-state-active").attr("aria-pressed", false)
        }); else if (this.type === "checkbox") this.element.is(":checked") ? this.buttonElement.addClass("ui-state-active").attr("aria-pressed", true) : this.buttonElement.removeClass("ui-state-active").attr("aria-pressed", false)
    }, _resetButton: function () {
        if (this.type === "input") this.options.label && this.element.val(this.options.label); else {
            var g = this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),
a = b("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(g.empty()).text(), c = this.options.icons, h = c.primary && c.secondary, i = []; if (c.primary || c.secondary) {
                if (this.options.text) i.push("ui-button-text-icon" + (h ? "s" : c.primary ? "-primary" : "-secondary")); c.primary && g.prepend("<span class='ui-button-icon-primary ui-icon " + c.primary + "'></span>"); c.secondary && g.append("<span class='ui-button-icon-secondary ui-icon " + c.secondary + "'></span>"); if (!this.options.text) {
                    i.push(h ? "ui-button-icons-only" :
"ui-button-icon-only"); this.hasTitle || g.attr("title", a)
                } 
            } else i.push("ui-button-text-only"); g.addClass(i.join(" "))
        } 
    } 
    }); b.widget("ui.buttonset", { options: { items: ":button, :submit, :reset, :checkbox, :radio, a, :data(button)" }, _create: function () { this.element.addClass("ui-buttonset") }, _init: function () { this.refresh() }, _setOption: function (g, a) { g === "disabled" && this.buttons.button("option", g, a); b.Widget.prototype._setOption.apply(this, arguments) }, refresh: function () { this.buttons = this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function () { return b(this).button("widget")[0] }).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end() },
        destroy: function () { this.element.removeClass("ui-buttonset"); this.buttons.map(function () { return b(this).button("widget")[0] }).removeClass("ui-corner-left ui-corner-right").end().button("destroy"); b.Widget.prototype.destroy.call(this) } 
    })
})(jQuery);
(function (b, d) {
    function e() {
        this.debug = false; this._curInst = null; this._keyEvent = false; this._disabledInputs = []; this._inDialog = this._datepickerShowing = false; this._mainDivId = "ui-datepicker-div"; this._inlineClass = "ui-datepicker-inline"; this._appendClass = "ui-datepicker-append"; this._triggerClass = "ui-datepicker-trigger"; this._dialogClass = "ui-datepicker-dialog"; this._disableClass = "ui-datepicker-disabled"; this._unselectableClass = "ui-datepicker-unselectable"; this._currentClass = "ui-datepicker-current-day"; this._dayOverClass =
"ui-datepicker-days-cell-over"; this.regional = []; this.regional[""] = { closeText: "Done", prevText: "Prev", nextText: "Next", currentText: "Today", monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], dayNamesMin: ["Su",
"Mo", "Tu", "We", "Th", "Fr", "Sa"], weekHeader: "Wk", dateFormat: "mm/dd/yy", firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ""
}; this._defaults = { showOn: "focus", showAnim: "fadeIn", showOptions: {}, defaultDate: null, appendText: "", buttonText: "...", buttonImage: "", buttonImageOnly: false, hideIfNoPrevNext: false, navigationAsDateFormat: false, gotoCurrent: false, changeMonth: false, changeYear: false, yearRange: "c-10:c+10", showOtherMonths: false, selectOtherMonths: false, showWeek: false, calculateWeek: this.iso8601Week, shortYearCutoff: "+10",
    minDate: null, maxDate: null, duration: "fast", beforeShowDay: null, beforeShow: null, onSelect: null, onChangeMonthYear: null, onClose: null, numberOfMonths: 1, showCurrentAtPos: 0, stepMonths: 1, stepBigMonths: 12, altField: "", altFormat: "", constrainInput: true, showButtonPanel: false, autoSize: false
}; b.extend(this._defaults, this.regional[""]); this.dpDiv = b('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')
    } function f(a, c) {
        b.extend(a, c); for (var h in c) if (c[h] ==
null || c[h] == d) a[h] = c[h]; return a
    } b.extend(b.ui, { datepicker: { version: "1.8.12"} }); var g = (new Date).getTime(); b.extend(e.prototype, { markerClassName: "hasDatepicker", log: function () { this.debug && console.log.apply("", arguments) }, _widgetDatepicker: function () { return this.dpDiv }, setDefaults: function (a) { f(this._defaults, a || {}); return this }, _attachDatepicker: function (a, c) {
        var h = null; for (var i in this._defaults) { var j = a.getAttribute("date:" + i); if (j) { h = h || {}; try { h[i] = eval(j) } catch (n) { h[i] = j } } } i = a.nodeName.toLowerCase();
        j = i == "div" || i == "span"; if (!a.id) { this.uuid += 1; a.id = "dp" + this.uuid } var o = this._newInst(b(a), j); o.settings = b.extend({}, c || {}, h || {}); if (i == "input") this._connectDatepicker(a, o); else j && this._inlineDatepicker(a, o)
    }, _newInst: function (a, c) { return { id: a[0].id.replace(/([^A-Za-z0-9_-])/g, "\\\\$1"), input: a, selectedDay: 0, selectedMonth: 0, selectedYear: 0, drawMonth: 0, drawYear: 0, inline: c, dpDiv: !c ? this.dpDiv : b('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')} },
        _connectDatepicker: function (a, c) { var h = b(a); c.append = b([]); c.trigger = b([]); if (!h.hasClass(this.markerClassName)) { this._attachments(h, c); h.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", function (i, j, n) { c.settings[j] = n }).bind("getData.datepicker", function (i, j) { return this._get(c, j) }); this._autoSize(c); b.data(a, "datepicker", c) } }, _attachments: function (a, c) {
            var h = this._get(c, "appendText"), i = this._get(c, "isRTL"); c.append &&
c.append.remove(); if (h) { c.append = b('<span class="' + this._appendClass + '">' + h + "</span>"); a[i ? "before" : "after"](c.append) } a.unbind("focus", this._showDatepicker); c.trigger && c.trigger.remove(); h = this._get(c, "showOn"); if (h == "focus" || h == "both") a.focus(this._showDatepicker); if (h == "button" || h == "both") {
                h = this._get(c, "buttonText"); var j = this._get(c, "buttonImage"); c.trigger = b(this._get(c, "buttonImageOnly") ? b("<img/>").addClass(this._triggerClass).attr({ src: j, alt: h, title: h }) : b('<button type="button"></button>').addClass(this._triggerClass).html(j ==
"" ? h : b("<img/>").attr({ src: j, alt: h, title: h }))); a[i ? "before" : "after"](c.trigger); c.trigger.click(function () { b.datepicker._datepickerShowing && b.datepicker._lastInput == a[0] ? b.datepicker._hideDatepicker() : b.datepicker._showDatepicker(a[0]); return false })
            } 
        }, _autoSize: function (a) {
            if (this._get(a, "autoSize") && !a.inline) {
                var c = new Date(2009, 11, 20), h = this._get(a, "dateFormat"); if (h.match(/[DM]/)) {
                    var i = function (j) { for (var n = 0, o = 0, l = 0; l < j.length; l++) if (j[l].length > n) { n = j[l].length; o = l } return o }; c.setMonth(i(this._get(a,
h.match(/MM/) ? "monthNames" : "monthNamesShort"))); c.setDate(i(this._get(a, h.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - c.getDay())
                } a.input.attr("size", this._formatDate(a, c).length)
            } 
        }, _inlineDatepicker: function (a, c) {
            var h = b(a); if (!h.hasClass(this.markerClassName)) {
                h.addClass(this.markerClassName).append(c.dpDiv).bind("setData.datepicker", function (i, j, n) { c.settings[j] = n }).bind("getData.datepicker", function (i, j) { return this._get(c, j) }); b.data(a, "datepicker", c); this._setDate(c, this._getDefaultDate(c),
true); this._updateDatepicker(c); this._updateAlternate(c); c.dpDiv.show()
            } 
        }, _dialogDatepicker: function (a, c, h, i, j) {
            a = this._dialogInst; if (!a) { this.uuid += 1; this._dialogInput = b('<input type="text" id="' + ("dp" + this.uuid) + '" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>'); this._dialogInput.keydown(this._doKeyDown); b("body").append(this._dialogInput); a = this._dialogInst = this._newInst(this._dialogInput, false); a.settings = {}; b.data(this._dialogInput[0], "datepicker", a) } f(a.settings, i || {});
            c = c && c.constructor == Date ? this._formatDate(a, c) : c; this._dialogInput.val(c); this._pos = j ? j.length ? j : [j.pageX, j.pageY] : null; if (!this._pos) this._pos = [document.documentElement.clientWidth / 2 - 100 + (document.documentElement.scrollLeft || document.body.scrollLeft), document.documentElement.clientHeight / 2 - 150 + (document.documentElement.scrollTop || document.body.scrollTop)]; this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px"); a.settings.onSelect = h; this._inDialog = true; this.dpDiv.addClass(this._dialogClass);
            this._showDatepicker(this._dialogInput[0]); b.blockUI && b.blockUI(this.dpDiv); b.data(this._dialogInput[0], "datepicker", a); return this
        }, _destroyDatepicker: function (a) {
            var c = b(a), h = b.data(a, "datepicker"); if (c.hasClass(this.markerClassName)) {
                var i = a.nodeName.toLowerCase(); b.removeData(a, "datepicker"); if (i == "input") {
                    h.append.remove(); h.trigger.remove(); c.removeClass(this.markerClassName).unbind("focus", this._showDatepicker).unbind("keydown", this._doKeyDown).unbind("keypress", this._doKeyPress).unbind("keyup",
this._doKeyUp)
                } else if (i == "div" || i == "span") c.removeClass(this.markerClassName).empty()
            } 
        }, _enableDatepicker: function (a) {
            var c = b(a), h = b.data(a, "datepicker"); if (c.hasClass(this.markerClassName)) {
                var i = a.nodeName.toLowerCase(); if (i == "input") { a.disabled = false; h.trigger.filter("button").each(function () { this.disabled = false }).end().filter("img").css({ opacity: "1.0", cursor: "" }) } else if (i == "div" || i == "span") c.children("." + this._inlineClass).children().removeClass("ui-state-disabled"); this._disabledInputs = b.map(this._disabledInputs,
function (j) { return j == a ? null : j })
            } 
        }, _disableDatepicker: function (a) {
            var c = b(a), h = b.data(a, "datepicker"); if (c.hasClass(this.markerClassName)) {
                var i = a.nodeName.toLowerCase(); if (i == "input") { a.disabled = true; h.trigger.filter("button").each(function () { this.disabled = true }).end().filter("img").css({ opacity: "0.5", cursor: "default" }) } else if (i == "div" || i == "span") c.children("." + this._inlineClass).children().addClass("ui-state-disabled"); this._disabledInputs = b.map(this._disabledInputs, function (j) {
                    return j == a ? null :
j
                }); this._disabledInputs[this._disabledInputs.length] = a
            } 
        }, _isDisabledDatepicker: function (a) { if (!a) return false; for (var c = 0; c < this._disabledInputs.length; c++) if (this._disabledInputs[c] == a) return true; return false }, _getInst: function (a) { try { return b.data(a, "datepicker") } catch (c) { throw "Missing instance data for this datepicker"; } }, _optionDatepicker: function (a, c, h) {
            var i = this._getInst(a); if (arguments.length == 2 && typeof c == "string") return c == "defaults" ? b.extend({}, b.datepicker._defaults) : i ? c == "all" ? b.extend({},
i.settings) : this._get(i, c) : null; var j = c || {}; if (typeof c == "string") { j = {}; j[c] = h } if (i) { this._curInst == i && this._hideDatepicker(); var n = this._getDateDatepicker(a, true), o = this._getMinMaxDate(i, "min"), l = this._getMinMaxDate(i, "max"); f(i.settings, j); if (o !== null && j.dateFormat !== d && j.minDate === d) i.settings.minDate = this._formatDate(i, o); if (l !== null && j.dateFormat !== d && j.maxDate === d) i.settings.maxDate = this._formatDate(i, l); this._attachments(b(a), i); this._autoSize(i); this._setDateDatepicker(a, n); this._updateDatepicker(i) } 
        },
        _changeDatepicker: function (a, c, h) { this._optionDatepicker(a, c, h) }, _refreshDatepicker: function (a) { (a = this._getInst(a)) && this._updateDatepicker(a) }, _setDateDatepicker: function (a, c) { if (a = this._getInst(a)) { this._setDate(a, c); this._updateDatepicker(a); this._updateAlternate(a) } }, _getDateDatepicker: function (a, c) { (a = this._getInst(a)) && !a.inline && this._setDateFromField(a, c); return a ? this._getDate(a) : null }, _doKeyDown: function (a) {
            var c = b.datepicker._getInst(a.target), h = true, i = c.dpDiv.is(".ui-datepicker-rtl");
            c._keyEvent = true; if (b.datepicker._datepickerShowing) switch (a.keyCode) {
                case 9: b.datepicker._hideDatepicker(); h = false; break; case 13: h = b("td." + b.datepicker._dayOverClass + ":not(." + b.datepicker._currentClass + ")", c.dpDiv); h[0] ? b.datepicker._selectDay(a.target, c.selectedMonth, c.selectedYear, h[0]) : b.datepicker._hideDatepicker(); return false; case 27: b.datepicker._hideDatepicker(); break; case 33: b.datepicker._adjustDate(a.target, a.ctrlKey ? -b.datepicker._get(c, "stepBigMonths") : -b.datepicker._get(c, "stepMonths"),
"M"); break; case 34: b.datepicker._adjustDate(a.target, a.ctrlKey ? +b.datepicker._get(c, "stepBigMonths") : +b.datepicker._get(c, "stepMonths"), "M"); break; case 35: if (a.ctrlKey || a.metaKey) b.datepicker._clearDate(a.target); h = a.ctrlKey || a.metaKey; break; case 36: if (a.ctrlKey || a.metaKey) b.datepicker._gotoToday(a.target); h = a.ctrlKey || a.metaKey; break; case 37: if (a.ctrlKey || a.metaKey) b.datepicker._adjustDate(a.target, i ? +1 : -1, "D"); h = a.ctrlKey || a.metaKey; if (a.originalEvent.altKey) b.datepicker._adjustDate(a.target, a.ctrlKey ?
-b.datepicker._get(c, "stepBigMonths") : -b.datepicker._get(c, "stepMonths"), "M"); break; case 38: if (a.ctrlKey || a.metaKey) b.datepicker._adjustDate(a.target, -7, "D"); h = a.ctrlKey || a.metaKey; break; case 39: if (a.ctrlKey || a.metaKey) b.datepicker._adjustDate(a.target, i ? -1 : +1, "D"); h = a.ctrlKey || a.metaKey; if (a.originalEvent.altKey) b.datepicker._adjustDate(a.target, a.ctrlKey ? +b.datepicker._get(c, "stepBigMonths") : +b.datepicker._get(c, "stepMonths"), "M"); break; case 40: if (a.ctrlKey || a.metaKey) b.datepicker._adjustDate(a.target,
+7, "D"); h = a.ctrlKey || a.metaKey; break; default: h = false
            } else if (a.keyCode == 36 && a.ctrlKey) b.datepicker._showDatepicker(this); else h = false; if (h) { a.preventDefault(); a.stopPropagation() } 
        }, _doKeyPress: function (a) { var c = b.datepicker._getInst(a.target); if (b.datepicker._get(c, "constrainInput")) { c = b.datepicker._possibleChars(b.datepicker._get(c, "dateFormat")); var h = String.fromCharCode(a.charCode == d ? a.keyCode : a.charCode); return a.ctrlKey || a.metaKey || h < " " || !c || c.indexOf(h) > -1 } }, _doKeyUp: function (a) {
            a = b.datepicker._getInst(a.target);
            if (a.input.val() != a.lastVal) try { if (b.datepicker.parseDate(b.datepicker._get(a, "dateFormat"), a.input ? a.input.val() : null, b.datepicker._getFormatConfig(a))) { b.datepicker._setDateFromField(a); b.datepicker._updateAlternate(a); b.datepicker._updateDatepicker(a) } } catch (c) { b.datepicker.log(c) } return true
        }, _showDatepicker: function (a) {
            a = a.target || a; if (a.nodeName.toLowerCase() != "input") a = b("input", a.parentNode)[0]; if (!(b.datepicker._isDisabledDatepicker(a) || b.datepicker._lastInput == a)) {
                var c = b.datepicker._getInst(a);
                b.datepicker._curInst && b.datepicker._curInst != c && b.datepicker._curInst.dpDiv.stop(true, true); var h = b.datepicker._get(c, "beforeShow"); f(c.settings, h ? h.apply(a, [a, c]) : {}); c.lastVal = null; b.datepicker._lastInput = a; b.datepicker._setDateFromField(c); if (b.datepicker._inDialog) a.value = ""; if (!b.datepicker._pos) { b.datepicker._pos = b.datepicker._findPos(a); b.datepicker._pos[1] += a.offsetHeight } var i = false; b(a).parents().each(function () { i |= b(this).css("position") == "fixed"; return !i }); if (i && b.browser.opera) {
                    b.datepicker._pos[0] -=
document.documentElement.scrollLeft; b.datepicker._pos[1] -= document.documentElement.scrollTop
                } h = { left: b.datepicker._pos[0], top: b.datepicker._pos[1] }; b.datepicker._pos = null; c.dpDiv.empty(); c.dpDiv.css({ position: "absolute", display: "block", top: "-1000px" }); b.datepicker._updateDatepicker(c); h = b.datepicker._checkOffset(c, h, i); c.dpDiv.css({ position: b.datepicker._inDialog && b.blockUI ? "static" : i ? "fixed" : "absolute", display: "none", left: h.left + "px", top: h.top + "px" }); if (!c.inline) {
                    h = b.datepicker._get(c, "showAnim");
                    var j = b.datepicker._get(c, "duration"), n = function () { b.datepicker._datepickerShowing = true; var o = c.dpDiv.find("iframe.ui-datepicker-cover"); if (o.length) { var l = b.datepicker._getBorders(c.dpDiv); o.css({ left: -l[0], top: -l[1], width: c.dpDiv.outerWidth(), height: c.dpDiv.outerHeight() }) } }; c.dpDiv.zIndex(b(a).zIndex() + 1); b.effects && b.effects[h] ? c.dpDiv.show(h, b.datepicker._get(c, "showOptions"), j, n) : c.dpDiv[h || "show"](h ? j : null, n); if (!h || !j) n(); c.input.is(":visible") && !c.input.is(":disabled") && c.input.focus(); b.datepicker._curInst =
c
                } 
            } 
        }, _updateDatepicker: function (a) {
            var c = this, h = b.datepicker._getBorders(a.dpDiv); a.dpDiv.empty().append(this._generateHTML(a)); var i = a.dpDiv.find("iframe.ui-datepicker-cover"); i.length && i.css({ left: -h[0], top: -h[1], width: a.dpDiv.outerWidth(), height: a.dpDiv.outerHeight() }); a.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout", function () {
                b(this).removeClass("ui-state-hover"); this.className.indexOf("ui-datepicker-prev") != -1 && b(this).removeClass("ui-datepicker-prev-hover");
                this.className.indexOf("ui-datepicker-next") != -1 && b(this).removeClass("ui-datepicker-next-hover")
            }).bind("mouseover", function () { if (!c._isDisabledDatepicker(a.inline ? a.dpDiv.parent()[0] : a.input[0])) { b(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); b(this).addClass("ui-state-hover"); this.className.indexOf("ui-datepicker-prev") != -1 && b(this).addClass("ui-datepicker-prev-hover"); this.className.indexOf("ui-datepicker-next") != -1 && b(this).addClass("ui-datepicker-next-hover") } }).end().find("." +
this._dayOverClass + " a").trigger("mouseover").end(); h = this._getNumberOfMonths(a); i = h[1]; i > 1 ? a.dpDiv.addClass("ui-datepicker-multi-" + i).css("width", 17 * i + "em") : a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""); a.dpDiv[(h[0] != 1 || h[1] != 1 ? "add" : "remove") + "Class"]("ui-datepicker-multi"); a.dpDiv[(this._get(a, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl"); a == b.datepicker._curInst && b.datepicker._datepickerShowing && a.input && a.input.is(":visible") && !a.input.is(":disabled") &&
a.input[0] != document.activeElement && a.input.focus(); if (a.yearshtml) { var j = a.yearshtml; setTimeout(function () { j === a.yearshtml && a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml); j = a.yearshtml = null }, 0) } 
        }, _getBorders: function (a) { var c = function (h) { return { thin: 1, medium: 2, thick: 3}[h] || h }; return [parseFloat(c(a.css("border-left-width"))), parseFloat(c(a.css("border-top-width")))] }, _checkOffset: function (a, c, h) {
            var i = a.dpDiv.outerWidth(), j = a.dpDiv.outerHeight(), n = a.input ? a.input.outerWidth() :
0, o = a.input ? a.input.outerHeight() : 0, l = document.documentElement.clientWidth + b(document).scrollLeft(), k = document.documentElement.clientHeight + b(document).scrollTop(); c.left -= this._get(a, "isRTL") ? i - n : 0; c.left -= h && c.left == a.input.offset().left ? b(document).scrollLeft() : 0; c.top -= h && c.top == a.input.offset().top + o ? b(document).scrollTop() : 0; c.left -= Math.min(c.left, c.left + i > l && l > i ? Math.abs(c.left + i - l) : 0); c.top -= Math.min(c.top, c.top + j > k && k > j ? Math.abs(j + o) : 0); return c
        }, _findPos: function (a) {
            for (var c = this._get(this._getInst(a),
"isRTL"); a && (a.type == "hidden" || a.nodeType != 1 || b.expr.filters.hidden(a)); ) a = a[c ? "previousSibling" : "nextSibling"]; a = b(a).offset(); return [a.left, a.top]
        }, _hideDatepicker: function (a) {
            var c = this._curInst; if (!(!c || a && c != b.data(a, "datepicker"))) if (this._datepickerShowing) {
                a = this._get(c, "showAnim"); var h = this._get(c, "duration"), i = function () { b.datepicker._tidyDialog(c); this._curInst = null }; b.effects && b.effects[a] ? c.dpDiv.hide(a, b.datepicker._get(c, "showOptions"), h, i) : c.dpDiv[a == "slideDown" ? "slideUp" : a == "fadeIn" ?
"fadeOut" : "hide"](a ? h : null, i); a || i(); if (a = this._get(c, "onClose")) a.apply(c.input ? c.input[0] : null, [c.input ? c.input.val() : "", c]); this._datepickerShowing = false; this._lastInput = null; if (this._inDialog) { this._dialogInput.css({ position: "absolute", left: "0", top: "-100px" }); if (b.blockUI) { b.unblockUI(); b("body").append(this.dpDiv) } } this._inDialog = false
            } 
        }, _tidyDialog: function (a) { a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar") }, _checkExternalClick: function (a) {
            if (b.datepicker._curInst) {
                a =
b(a.target); a[0].id != b.datepicker._mainDivId && a.parents("#" + b.datepicker._mainDivId).length == 0 && !a.hasClass(b.datepicker.markerClassName) && !a.hasClass(b.datepicker._triggerClass) && b.datepicker._datepickerShowing && !(b.datepicker._inDialog && b.blockUI) && b.datepicker._hideDatepicker()
            } 
        }, _adjustDate: function (a, c, h) { a = b(a); var i = this._getInst(a[0]); if (!this._isDisabledDatepicker(a[0])) { this._adjustInstDate(i, c + (h == "M" ? this._get(i, "showCurrentAtPos") : 0), h); this._updateDatepicker(i) } }, _gotoToday: function (a) {
            a =
b(a); var c = this._getInst(a[0]); if (this._get(c, "gotoCurrent") && c.currentDay) { c.selectedDay = c.currentDay; c.drawMonth = c.selectedMonth = c.currentMonth; c.drawYear = c.selectedYear = c.currentYear } else { var h = new Date; c.selectedDay = h.getDate(); c.drawMonth = c.selectedMonth = h.getMonth(); c.drawYear = c.selectedYear = h.getFullYear() } this._notifyChange(c); this._adjustDate(a)
        }, _selectMonthYear: function (a, c, h) {
            a = b(a); var i = this._getInst(a[0]); i._selectingMonthYear = false; i["selected" + (h == "M" ? "Month" : "Year")] = i["draw" + (h ==
"M" ? "Month" : "Year")] = parseInt(c.options[c.selectedIndex].value, 10); this._notifyChange(i); this._adjustDate(a)
        }, _clickMonthYear: function (a) { var c = this._getInst(b(a)[0]); c.input && c._selectingMonthYear && setTimeout(function () { c.input.focus() }, 0); c._selectingMonthYear = !c._selectingMonthYear }, _selectDay: function (a, c, h, i) {
            var j = b(a); if (!(b(i).hasClass(this._unselectableClass) || this._isDisabledDatepicker(j[0]))) {
                j = this._getInst(j[0]); j.selectedDay = j.currentDay = b("a", i).html(); j.selectedMonth = j.currentMonth =
c; j.selectedYear = j.currentYear = h; this._selectDate(a, this._formatDate(j, j.currentDay, j.currentMonth, j.currentYear))
            } 
        }, _clearDate: function (a) { a = b(a); this._getInst(a[0]); this._selectDate(a, "") }, _selectDate: function (a, c) {
            a = this._getInst(b(a)[0]); c = c != null ? c : this._formatDate(a); a.input && a.input.val(c); this._updateAlternate(a); var h = this._get(a, "onSelect"); if (h) h.apply(a.input ? a.input[0] : null, [c, a]); else a.input && a.input.trigger("change"); if (a.inline) this._updateDatepicker(a); else {
                this._hideDatepicker();
                this._lastInput = a.input[0]; typeof a.input[0] != "object" && a.input.focus(); this._lastInput = null
            } 
        }, _updateAlternate: function (a) { var c = this._get(a, "altField"); if (c) { var h = this._get(a, "altFormat") || this._get(a, "dateFormat"), i = this._getDate(a), j = this.formatDate(h, i, this._getFormatConfig(a)); b(c).each(function () { b(this).val(j) }) } }, noWeekends: function (a) { a = a.getDay(); return [a > 0 && a < 6, ""] }, iso8601Week: function (a) {
            a = new Date(a.getTime()); a.setDate(a.getDate() + 4 - (a.getDay() || 7)); var c = a.getTime(); a.setMonth(0);
            a.setDate(1); return Math.floor(Math.round((c - a) / 864E5) / 7) + 1
        }, parseDate: function (a, c, h) {
            if (a == null || c == null) throw "Invalid arguments"; c = typeof c == "object" ? c.toString() : c + ""; if (c == "") return null; var i = (h ? h.shortYearCutoff : null) || this._defaults.shortYearCutoff; i = typeof i != "string" ? i : (new Date).getFullYear() % 100 + parseInt(i, 10); for (var j = (h ? h.dayNamesShort : null) || this._defaults.dayNamesShort, n = (h ? h.dayNames : null) || this._defaults.dayNames, o = (h ? h.monthNamesShort : null) || this._defaults.monthNamesShort, l = (h ?
h.monthNames : null) || this._defaults.monthNames, k = h = -1, m = -1, p = -1, q = false, s = function (x) { (x = y + 1 < a.length && a.charAt(y + 1) == x) && y++; return x }, r = function (x) { var C = s(x); x = new RegExp("^\\d{1," + (x == "@" ? 14 : x == "!" ? 20 : x == "y" && C ? 4 : x == "o" ? 3 : 2) + "}"); x = c.substring(w).match(x); if (!x) throw "Missing number at position " + w; w += x[0].length; return parseInt(x[0], 10) }, u = function (x, C, J) {
    x = s(x) ? J : C; for (C = 0; C < x.length; C++) if (c.substr(w, x[C].length).toLowerCase() == x[C].toLowerCase()) { w += x[C].length; return C + 1 } throw "Unknown name at position " +
w;
}, v = function () { if (c.charAt(w) != a.charAt(y)) throw "Unexpected literal at position " + w; w++ }, w = 0, y = 0; y < a.length; y++) if (q) if (a.charAt(y) == "'" && !s("'")) q = false; else v(); else switch (a.charAt(y)) {
                case "d": m = r("d"); break; case "D": u("D", j, n); break; case "o": p = r("o"); break; case "m": k = r("m"); break; case "M": k = u("M", o, l); break; case "y": h = r("y"); break; case "@": var B = new Date(r("@")); h = B.getFullYear(); k = B.getMonth() + 1; m = B.getDate(); break; case "!": B = new Date((r("!") - this._ticksTo1970) / 1E4); h = B.getFullYear(); k = B.getMonth() +
1; m = B.getDate(); break; case "'": if (s("'")) v(); else q = true; break; default: v()
            } if (h == -1) h = (new Date).getFullYear(); else if (h < 100) h += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (h <= i ? 0 : -100); if (p > -1) { k = 1; m = p; do { i = this._getDaysInMonth(h, k - 1); if (m <= i) break; k++; m -= i } while (1) } B = this._daylightSavingAdjust(new Date(h, k - 1, m)); if (B.getFullYear() != h || B.getMonth() + 1 != k || B.getDate() != m) throw "Invalid date"; return B
        }, ATOM: "yy-mm-dd", COOKIE: "D, dd M yy", ISO_8601: "yy-mm-dd", RFC_822: "D, d M y", RFC_850: "DD, dd-M-y",
        RFC_1036: "D, d M y", RFC_1123: "D, d M yy", RFC_2822: "D, d M yy", RSS: "D, d M y", TICKS: "!", TIMESTAMP: "@", W3C: "yy-mm-dd", _ticksTo1970: (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)) * 24 * 60 * 60 * 1E7, formatDate: function (a, c, h) {
            if (!c) return ""; var i = (h ? h.dayNamesShort : null) || this._defaults.dayNamesShort, j = (h ? h.dayNames : null) || this._defaults.dayNames, n = (h ? h.monthNamesShort : null) || this._defaults.monthNamesShort; h = (h ? h.monthNames : null) || this._defaults.monthNames; var o = function (s) {
                (s = q + 1 < a.length &&
a.charAt(q + 1) == s) && q++; return s
            }, l = function (s, r, u) { r = "" + r; if (o(s)) for (; r.length < u; ) r = "0" + r; return r }, k = function (s, r, u, v) { return o(s) ? v[r] : u[r] }, m = "", p = false; if (c) for (var q = 0; q < a.length; q++) if (p) if (a.charAt(q) == "'" && !o("'")) p = false; else m += a.charAt(q); else switch (a.charAt(q)) {
                case "d": m += l("d", c.getDate(), 2); break; case "D": m += k("D", c.getDay(), i, j); break; case "o": m += l("o", (c.getTime() - (new Date(c.getFullYear(), 0, 0)).getTime()) / 864E5, 3); break; case "m": m += l("m", c.getMonth() + 1, 2); break; case "M": m += k("M",
c.getMonth(), n, h); break; case "y": m += o("y") ? c.getFullYear() : (c.getYear() % 100 < 10 ? "0" : "") + c.getYear() % 100; break; case "@": m += c.getTime(); break; case "!": m += c.getTime() * 1E4 + this._ticksTo1970; break; case "'": if (o("'")) m += "'"; else p = true; break; default: m += a.charAt(q)
            } return m
        }, _possibleChars: function (a) {
            for (var c = "", h = false, i = function (n) { (n = j + 1 < a.length && a.charAt(j + 1) == n) && j++; return n }, j = 0; j < a.length; j++) if (h) if (a.charAt(j) == "'" && !i("'")) h = false; else c += a.charAt(j); else switch (a.charAt(j)) {
                case "d": case "m": case "y": case "@": c +=
"0123456789"; break; case "D": case "M": return null; case "'": if (i("'")) c += "'"; else h = true; break; default: c += a.charAt(j)
            } return c
        }, _get: function (a, c) { return a.settings[c] !== d ? a.settings[c] : this._defaults[c] }, _setDateFromField: function (a, c) {
            if (a.input.val() != a.lastVal) {
                var h = this._get(a, "dateFormat"), i = a.lastVal = a.input ? a.input.val() : null, j, n; j = n = this._getDefaultDate(a); var o = this._getFormatConfig(a); try { j = this.parseDate(h, i, o) || n } catch (l) { this.log(l); i = c ? "" : i } a.selectedDay = j.getDate(); a.drawMonth = a.selectedMonth =
j.getMonth(); a.drawYear = a.selectedYear = j.getFullYear(); a.currentDay = i ? j.getDate() : 0; a.currentMonth = i ? j.getMonth() : 0; a.currentYear = i ? j.getFullYear() : 0; this._adjustInstDate(a)
            } 
        }, _getDefaultDate: function (a) { return this._restrictMinMax(a, this._determineDate(a, this._get(a, "defaultDate"), new Date)) }, _determineDate: function (a, c, h) {
            var i = function (n) { var o = new Date; o.setDate(o.getDate() + n); return o }, j = function (n) {
                try { return b.datepicker.parseDate(b.datepicker._get(a, "dateFormat"), n, b.datepicker._getFormatConfig(a)) } catch (o) { } var l =
(n.toLowerCase().match(/^c/) ? b.datepicker._getDate(a) : null) || new Date, k = l.getFullYear(), m = l.getMonth(); l = l.getDate(); for (var p = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, q = p.exec(n); q; ) { switch (q[2] || "d") { case "d": case "D": l += parseInt(q[1], 10); break; case "w": case "W": l += parseInt(q[1], 10) * 7; break; case "m": case "M": m += parseInt(q[1], 10); l = Math.min(l, b.datepicker._getDaysInMonth(k, m)); break; case "y": case "Y": k += parseInt(q[1], 10); l = Math.min(l, b.datepicker._getDaysInMonth(k, m)); break } q = p.exec(n) } return new Date(k,
m, l)
            }; if (c = (c = c == null || c === "" ? h : typeof c == "string" ? j(c) : typeof c == "number" ? isNaN(c) ? h : i(c) : new Date(c.getTime())) && c.toString() == "Invalid Date" ? h : c) { c.setHours(0); c.setMinutes(0); c.setSeconds(0); c.setMilliseconds(0) } return this._daylightSavingAdjust(c)
        }, _daylightSavingAdjust: function (a) { if (!a) return null; a.setHours(a.getHours() > 12 ? a.getHours() + 2 : 0); return a }, _setDate: function (a, c, h) {
            var i = !c, j = a.selectedMonth, n = a.selectedYear; c = this._restrictMinMax(a, this._determineDate(a, c, new Date)); a.selectedDay =
a.currentDay = c.getDate(); a.drawMonth = a.selectedMonth = a.currentMonth = c.getMonth(); a.drawYear = a.selectedYear = a.currentYear = c.getFullYear(); if ((j != a.selectedMonth || n != a.selectedYear) && !h) this._notifyChange(a); this._adjustInstDate(a); if (a.input) a.input.val(i ? "" : this._formatDate(a))
        }, _getDate: function (a) { return !a.currentYear || a.input && a.input.val() == "" ? null : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay)) }, _generateHTML: function (a) {
            var c = new Date; c = this._daylightSavingAdjust(new Date(c.getFullYear(),
c.getMonth(), c.getDate())); var h = this._get(a, "isRTL"), i = this._get(a, "showButtonPanel"), j = this._get(a, "hideIfNoPrevNext"), n = this._get(a, "navigationAsDateFormat"), o = this._getNumberOfMonths(a), l = this._get(a, "showCurrentAtPos"), k = this._get(a, "stepMonths"), m = o[0] != 1 || o[1] != 1, p = this._daylightSavingAdjust(!a.currentDay ? new Date(9999, 9, 9) : new Date(a.currentYear, a.currentMonth, a.currentDay)), q = this._getMinMaxDate(a, "min"), s = this._getMinMaxDate(a, "max"); l = a.drawMonth - l; var r = a.drawYear; if (l < 0) { l += 12; r-- } if (s) {
                var u =
this._daylightSavingAdjust(new Date(s.getFullYear(), s.getMonth() - o[0] * o[1] + 1, s.getDate())); for (u = q && u < q ? q : u; this._daylightSavingAdjust(new Date(r, l, 1)) > u; ) { l--; if (l < 0) { l = 11; r-- } } 
            } a.drawMonth = l; a.drawYear = r; u = this._get(a, "prevText"); u = !n ? u : this.formatDate(u, this._daylightSavingAdjust(new Date(r, l - k, 1)), this._getFormatConfig(a)); u = this._canAdjustMonth(a, -1, r, l) ? '<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + g + ".datepicker._adjustDate('#" + a.id + "', -" + k + ", 'M');\" title=\"" + u + '"><span class="ui-icon ui-icon-circle-triangle-' +
(h ? "e" : "w") + '">' + u + "</span></a>" : j ? "" : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="' + u + '"><span class="ui-icon ui-icon-circle-triangle-' + (h ? "e" : "w") + '">' + u + "</span></a>"; var v = this._get(a, "nextText"); v = !n ? v : this.formatDate(v, this._daylightSavingAdjust(new Date(r, l + k, 1)), this._getFormatConfig(a)); j = this._canAdjustMonth(a, +1, r, l) ? '<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + g + ".datepicker._adjustDate('#" + a.id + "', +" + k + ", 'M');\" title=\"" + v + '"><span class="ui-icon ui-icon-circle-triangle-' +
(h ? "w" : "e") + '">' + v + "</span></a>" : j ? "" : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="' + v + '"><span class="ui-icon ui-icon-circle-triangle-' + (h ? "w" : "e") + '">' + v + "</span></a>"; k = this._get(a, "currentText"); v = this._get(a, "gotoCurrent") && a.currentDay ? p : c; k = !n ? k : this.formatDate(k, v, this._getFormatConfig(a)); n = !a.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + g + '.datepicker._hideDatepicker();">' + this._get(a,
"closeText") + "</button>" : ""; i = i ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (h ? n : "") + (this._isInRange(a, v) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' + g + ".datepicker._gotoToday('#" + a.id + "');\">" + k + "</button>" : "") + (h ? "" : n) + "</div>" : ""; n = parseInt(this._get(a, "firstDay"), 10); n = isNaN(n) ? 0 : n; k = this._get(a, "showWeek"); v = this._get(a, "dayNames"); this._get(a, "dayNamesShort"); var w = this._get(a, "dayNamesMin"), y =
this._get(a, "monthNames"), B = this._get(a, "monthNamesShort"), x = this._get(a, "beforeShowDay"), C = this._get(a, "showOtherMonths"), J = this._get(a, "selectOtherMonths"); this._get(a, "calculateWeek"); for (var M = this._getDefaultDate(a), K = "", G = 0; G < o[0]; G++) {
                for (var N = "", H = 0; H < o[1]; H++) {
                    var O = this._daylightSavingAdjust(new Date(r, l, a.selectedDay)), A = " ui-corner-all", D = ""; if (m) {
                        D += '<div class="ui-datepicker-group'; if (o[1] > 1) switch (H) {
                            case 0: D += " ui-datepicker-group-first"; A = " ui-corner-" + (h ? "right" : "left"); break; case o[1] -
1: D += " ui-datepicker-group-last"; A = " ui-corner-" + (h ? "left" : "right"); break; default: D += " ui-datepicker-group-middle"; A = ""; break
                        } D += '">'
                    } D += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + A + '">' + (/all|left/.test(A) && G == 0 ? h ? j : u : "") + (/all|right/.test(A) && G == 0 ? h ? u : j : "") + this._generateMonthYearHeader(a, l, r, q, s, G > 0 || H > 0, y, B) + '</div><table class="ui-datepicker-calendar"><thead><tr>'; var E = k ? '<th class="ui-datepicker-week-col">' + this._get(a, "weekHeader") + "</th>" : ""; for (A = 0; A < 7; A++) {
                        var z =
(A + n) % 7; E += "<th" + ((A + n + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : "") + '><span title="' + v[z] + '">' + w[z] + "</span></th>"
                    } D += E + "</tr></thead><tbody>"; E = this._getDaysInMonth(r, l); if (r == a.selectedYear && l == a.selectedMonth) a.selectedDay = Math.min(a.selectedDay, E); A = (this._getFirstDayOfMonth(r, l) - n + 7) % 7; E = m ? 6 : Math.ceil((A + E) / 7); z = this._daylightSavingAdjust(new Date(r, l, 1 - A)); for (var P = 0; P < E; P++) {
                        D += "<tr>"; var Q = !k ? "" : '<td class="ui-datepicker-week-col">' + this._get(a, "calculateWeek")(z) + "</td>"; for (A = 0; A < 7; A++) {
                            var I =
x ? x.apply(a.input ? a.input[0] : null, [z]) : [true, ""], F = z.getMonth() != l, L = F && !J || !I[0] || q && z < q || s && z > s; Q += '<td class="' + ((A + n + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + (F ? " ui-datepicker-other-month" : "") + (z.getTime() == O.getTime() && l == a.selectedMonth && a._keyEvent || M.getTime() == z.getTime() && M.getTime() == O.getTime() ? " " + this._dayOverClass : "") + (L ? " " + this._unselectableClass + " ui-state-disabled" : "") + (F && !C ? "" : " " + I[1] + (z.getTime() == p.getTime() ? " " + this._currentClass : "") + (z.getTime() == c.getTime() ? " ui-datepicker-today" :
"")) + '"' + ((!F || C) && I[2] ? ' title="' + I[2] + '"' : "") + (L ? "" : ' onclick="DP_jQuery_' + g + ".datepicker._selectDay('#" + a.id + "'," + z.getMonth() + "," + z.getFullYear() + ', this);return false;"') + ">" + (F && !C ? "&#xa0;" : L ? '<span class="ui-state-default">' + z.getDate() + "</span>" : '<a class="ui-state-default' + (z.getTime() == c.getTime() ? " ui-state-highlight" : "") + (z.getTime() == p.getTime() ? " ui-state-active" : "") + (F ? " ui-priority-secondary" : "") + '" href="#">' + z.getDate() + "</a>") + "</td>"; z.setDate(z.getDate() + 1); z = this._daylightSavingAdjust(z)
                        } D +=
Q + "</tr>"
                    } l++; if (l > 11) { l = 0; r++ } D += "</tbody></table>" + (m ? "</div>" + (o[0] > 0 && H == o[1] - 1 ? '<div class="ui-datepicker-row-break"></div>' : "") : ""); N += D
                } K += N
            } K += i + (b.browser.msie && parseInt(b.browser.version, 10) < 7 && !a.inline ? '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : ""); a._keyEvent = false; return K
        }, _generateMonthYearHeader: function (a, c, h, i, j, n, o, l) {
            var k = this._get(a, "changeMonth"), m = this._get(a, "changeYear"), p = this._get(a, "showMonthAfterYear"), q = '<div class="ui-datepicker-title">',
s = ""; if (n || !k) s += '<span class="ui-datepicker-month">' + o[c] + "</span>"; else { o = i && i.getFullYear() == h; var r = j && j.getFullYear() == h; s += '<select class="ui-datepicker-month" onchange="DP_jQuery_' + g + ".datepicker._selectMonthYear('#" + a.id + "', this, 'M');\" onclick=\"DP_jQuery_" + g + ".datepicker._clickMonthYear('#" + a.id + "');\">"; for (var u = 0; u < 12; u++) if ((!o || u >= i.getMonth()) && (!r || u <= j.getMonth())) s += '<option value="' + u + '"' + (u == c ? ' selected="selected"' : "") + ">" + l[u] + "</option>"; s += "</select>" } p || (q += s + (n || !(k &&
m) ? "&#xa0;" : "")); if (!a.yearshtml) {
                a.yearshtml = ""; if (n || !m) q += '<span class="ui-datepicker-year">' + h + "</span>"; else {
                    l = this._get(a, "yearRange").split(":"); var v = (new Date).getFullYear(); o = function (w) { w = w.match(/c[+-].*/) ? h + parseInt(w.substring(1), 10) : w.match(/[+-].*/) ? v + parseInt(w, 10) : parseInt(w, 10); return isNaN(w) ? v : w }; c = o(l[0]); l = Math.max(c, o(l[1] || "")); c = i ? Math.max(c, i.getFullYear()) : c; l = j ? Math.min(l, j.getFullYear()) : l; for (a.yearshtml += '<select class="ui-datepicker-year" onchange="DP_jQuery_' + g + ".datepicker._selectMonthYear('#" +
a.id + "', this, 'Y');\" onclick=\"DP_jQuery_" + g + ".datepicker._clickMonthYear('#" + a.id + "');\">"; c <= l; c++) a.yearshtml += '<option value="' + c + '"' + (c == h ? ' selected="selected"' : "") + ">" + c + "</option>"; a.yearshtml += "</select>"; if (b.browser.mozilla) q += '<select class="ui-datepicker-year"><option value="' + h + '" selected="selected">' + h + "</option></select>"; else { q += a.yearshtml; a.yearshtml = null } 
                } 
            } q += this._get(a, "yearSuffix"); if (p) q += (n || !(k && m) ? "&#xa0;" : "") + s; q += "</div>"; return q
        }, _adjustInstDate: function (a, c, h) {
            var i =
a.drawYear + (h == "Y" ? c : 0), j = a.drawMonth + (h == "M" ? c : 0); c = Math.min(a.selectedDay, this._getDaysInMonth(i, j)) + (h == "D" ? c : 0); i = this._restrictMinMax(a, this._daylightSavingAdjust(new Date(i, j, c))); a.selectedDay = i.getDate(); a.drawMonth = a.selectedMonth = i.getMonth(); a.drawYear = a.selectedYear = i.getFullYear(); if (h == "M" || h == "Y") this._notifyChange(a)
        }, _restrictMinMax: function (a, c) { var h = this._getMinMaxDate(a, "min"); a = this._getMinMaxDate(a, "max"); c = h && c < h ? h : c; return c = a && c > a ? a : c }, _notifyChange: function (a) {
            var c = this._get(a,
"onChangeMonthYear"); if (c) c.apply(a.input ? a.input[0] : null, [a.selectedYear, a.selectedMonth + 1, a])
        }, _getNumberOfMonths: function (a) { a = this._get(a, "numberOfMonths"); return a == null ? [1, 1] : typeof a == "number" ? [1, a] : a }, _getMinMaxDate: function (a, c) { return this._determineDate(a, this._get(a, c + "Date"), null) }, _getDaysInMonth: function (a, c) { return 32 - this._daylightSavingAdjust(new Date(a, c, 32)).getDate() }, _getFirstDayOfMonth: function (a, c) { return (new Date(a, c, 1)).getDay() }, _canAdjustMonth: function (a, c, h, i) {
            var j = this._getNumberOfMonths(a);
            h = this._daylightSavingAdjust(new Date(h, i + (c < 0 ? c : j[0] * j[1]), 1)); c < 0 && h.setDate(this._getDaysInMonth(h.getFullYear(), h.getMonth())); return this._isInRange(a, h)
        }, _isInRange: function (a, c) { var h = this._getMinMaxDate(a, "min"); a = this._getMinMaxDate(a, "max"); return (!h || c.getTime() >= h.getTime()) && (!a || c.getTime() <= a.getTime()) }, _getFormatConfig: function (a) {
            var c = this._get(a, "shortYearCutoff"); c = typeof c != "string" ? c : (new Date).getFullYear() % 100 + parseInt(c, 10); return { shortYearCutoff: c, dayNamesShort: this._get(a,
"dayNamesShort"), dayNames: this._get(a, "dayNames"), monthNamesShort: this._get(a, "monthNamesShort"), monthNames: this._get(a, "monthNames")
            }
        }, _formatDate: function (a, c, h, i) { if (!c) { a.currentDay = a.selectedDay; a.currentMonth = a.selectedMonth; a.currentYear = a.selectedYear } c = c ? typeof c == "object" ? c : this._daylightSavingAdjust(new Date(i, h, c)) : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay)); return this.formatDate(this._get(a, "dateFormat"), c, this._getFormatConfig(a)) } 
    }); b.fn.datepicker =
function (a) {
    if (!this.length) return this; if (!b.datepicker.initialized) { b(document).mousedown(b.datepicker._checkExternalClick).find("body").append(b.datepicker.dpDiv); b.datepicker.initialized = true } var c = Array.prototype.slice.call(arguments, 1); if (typeof a == "string" && (a == "isDisabled" || a == "getDate" || a == "widget")) return b.datepicker["_" + a + "Datepicker"].apply(b.datepicker, [this[0]].concat(c)); if (a == "option" && arguments.length == 2 && typeof arguments[1] == "string") return b.datepicker["_" + a + "Datepicker"].apply(b.datepicker,
[this[0]].concat(c)); return this.each(function () { typeof a == "string" ? b.datepicker["_" + a + "Datepicker"].apply(b.datepicker, [this].concat(c)) : b.datepicker._attachDatepicker(this, a) })
}; b.datepicker = new e; b.datepicker.initialized = false; b.datepicker.uuid = (new Date).getTime(); b.datepicker.version = "1.8.12"; window["DP_jQuery_" + g] = b
})(jQuery);
(function (b, d) {
    var e = { buttons: true, height: true, maxHeight: true, maxWidth: true, minHeight: true, minWidth: true, width: true }, f = { maxHeight: true, maxWidth: true, minHeight: true, minWidth: true }, g = b.attrFn || { val: true, css: true, html: true, text: true, data: true, width: true, height: true, offset: true, click: true }; b.widget("ui.dialog", { options: { autoOpen: true, buttons: {}, closeOnEscape: true, closeText: "close", dialogClass: "", draggable: true, hide: null, height: "auto", maxHeight: false, maxWidth: false, minHeight: 150, minWidth: 150, modal: false,
        position: { my: "center", at: "center", collision: "fit", using: function (a) { var c = b(this).css(a).offset().top; c < 0 && b(this).css("top", a.top - c) } }, resizable: true, show: null, stack: true, title: "", width: 300, zIndex: 1E3
    }, _create: function () {
        this.originalTitle = this.element.attr("title"); if (typeof this.originalTitle !== "string") this.originalTitle = ""; this.options.title = this.options.title || this.originalTitle; var a = this, c = a.options, h = c.title || "&#160;", i = b.ui.dialog.getTitleId(a.element), j = (a.uiDialog = b("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all " +
c.dialogClass).css({ zIndex: c.zIndex }).attr("tabIndex", -1).css("outline", 0).keydown(function (l) { if (c.closeOnEscape && l.keyCode && l.keyCode === b.ui.keyCode.ESCAPE) { a.close(l); l.preventDefault() } }).attr({ role: "dialog", "aria-labelledby": i }).mousedown(function (l) { a.moveToTop(false, l) }); a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(j); var n = (a.uiDialogTitlebar = b("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(j),
o = b('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", "button").hover(function () { o.addClass("ui-state-hover") }, function () { o.removeClass("ui-state-hover") }).focus(function () { o.addClass("ui-state-focus") }).blur(function () { o.removeClass("ui-state-focus") }).click(function (l) { a.close(l); return false }).appendTo(n); (a.uiDialogTitlebarCloseText = b("<span></span>")).addClass("ui-icon ui-icon-closethick").text(c.closeText).appendTo(o); b("<span></span>").addClass("ui-dialog-title").attr("id",
i).html(h).prependTo(n); if (b.isFunction(c.beforeclose) && !b.isFunction(c.beforeClose)) c.beforeClose = c.beforeclose; n.find("*").add(n).disableSelection(); c.draggable && b.fn.draggable && a._makeDraggable(); c.resizable && b.fn.resizable && a._makeResizable(); a._createButtons(c.buttons); a._isOpen = false; b.fn.bgiframe && j.bgiframe()
    }, _init: function () { this.options.autoOpen && this.open() }, destroy: function () {
        var a = this; a.overlay && a.overlay.destroy(); a.uiDialog.hide(); a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");
        a.uiDialog.remove(); a.originalTitle && a.element.attr("title", a.originalTitle); return a
    }, widget: function () { return this.uiDialog }, close: function (a) {
        var c = this, h, i; if (false !== c._trigger("beforeClose", a)) {
            c.overlay && c.overlay.destroy(); c.uiDialog.unbind("keypress.ui-dialog"); c._isOpen = false; if (c.options.hide) c.uiDialog.hide(c.options.hide, function () { c._trigger("close", a) }); else { c.uiDialog.hide(); c._trigger("close", a) } b.ui.dialog.overlay.resize(); if (c.options.modal) {
                h = 0; b(".ui-dialog").each(function () {
                    if (this !==
c.uiDialog[0]) { i = b(this).css("z-index"); isNaN(i) || (h = Math.max(h, i)) } 
                }); b.ui.dialog.maxZ = h
            } return c
        } 
    }, isOpen: function () { return this._isOpen }, moveToTop: function (a, c) {
        var h = this, i = h.options; if (i.modal && !a || !i.stack && !i.modal) return h._trigger("focus", c); if (i.zIndex > b.ui.dialog.maxZ) b.ui.dialog.maxZ = i.zIndex; if (h.overlay) { b.ui.dialog.maxZ += 1; h.overlay.$el.css("z-index", b.ui.dialog.overlay.maxZ = b.ui.dialog.maxZ) } a = { scrollTop: h.element.attr("scrollTop"), scrollLeft: h.element.attr("scrollLeft") }; b.ui.dialog.maxZ +=
1; h.uiDialog.css("z-index", b.ui.dialog.maxZ); h.element.attr(a); h._trigger("focus", c); return h
    }, open: function () {
        if (!this._isOpen) {
            var a = this, c = a.options, h = a.uiDialog; a.overlay = c.modal ? new b.ui.dialog.overlay(a) : null; a._size(); a._position(c.position); h.show(c.show); a.moveToTop(true); c.modal && h.bind("keypress.ui-dialog", function (i) {
                if (i.keyCode === b.ui.keyCode.TAB) {
                    var j = b(":tabbable", this), n = j.filter(":first"); j = j.filter(":last"); if (i.target === j[0] && !i.shiftKey) { n.focus(1); return false } else if (i.target ===
n[0] && i.shiftKey) { j.focus(1); return false } 
                } 
            }); b(a.element.find(":tabbable").get().concat(h.find(".ui-dialog-buttonpane :tabbable").get().concat(h.get()))).eq(0).focus(); a._isOpen = true; a._trigger("open"); return a
        } 
    }, _createButtons: function (a) {
        var c = this, h = false, i = b("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"), j = b("<div></div>").addClass("ui-dialog-buttonset").appendTo(i); c.uiDialog.find(".ui-dialog-buttonpane").remove(); typeof a === "object" && a !== null && b.each(a,
function () { return !(h = true) }); if (h) { b.each(a, function (n, o) { o = b.isFunction(o) ? { click: o, text: n} : o; var l = b('<button type="button"></button>').click(function () { o.click.apply(c.element[0], arguments) }).appendTo(j); b.each(o, function (k, m) { if (k !== "click") k in g ? l[k](m) : l.attr(k, m) }); b.fn.button && l.button() }); i.appendTo(c.uiDialog) } 
    }, _makeDraggable: function () {
        function a(n) { return { position: n.position, offset: n.offset} } var c = this, h = c.options, i = b(document), j; c.uiDialog.draggable({ cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
            handle: ".ui-dialog-titlebar", containment: "document", start: function (n, o) { j = h.height === "auto" ? "auto" : b(this).height(); b(this).height(b(this).height()).addClass("ui-dialog-dragging"); c._trigger("dragStart", n, a(o)) }, drag: function (n, o) { c._trigger("drag", n, a(o)) }, stop: function (n, o) { h.position = [o.position.left - i.scrollLeft(), o.position.top - i.scrollTop()]; b(this).removeClass("ui-dialog-dragging").height(j); c._trigger("dragStop", n, a(o)); b.ui.dialog.overlay.resize() } 
        })
    }, _makeResizable: function (a) {
        function c(n) {
            return { originalPosition: n.originalPosition,
                originalSize: n.originalSize, position: n.position, size: n.size
            }
        } a = a === d ? this.options.resizable : a; var h = this, i = h.options, j = h.uiDialog.css("position"); a = typeof a === "string" ? a : "n,e,s,w,se,sw,ne,nw"; h.uiDialog.resizable({ cancel: ".ui-dialog-content", containment: "document", alsoResize: h.element, maxWidth: i.maxWidth, maxHeight: i.maxHeight, minWidth: i.minWidth, minHeight: h._minHeight(), handles: a, start: function (n, o) { b(this).addClass("ui-dialog-resizing"); h._trigger("resizeStart", n, c(o)) }, resize: function (n, o) {
            h._trigger("resize",
n, c(o))
        }, stop: function (n, o) { b(this).removeClass("ui-dialog-resizing"); i.height = b(this).height(); i.width = b(this).width(); h._trigger("resizeStop", n, c(o)); b.ui.dialog.overlay.resize() } 
        }).css("position", j).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")
    }, _minHeight: function () { var a = this.options; return a.height === "auto" ? a.minHeight : Math.min(a.minHeight, a.height) }, _position: function (a) {
        var c = [], h = [0, 0], i; if (a) {
            if (typeof a === "string" || typeof a === "object" && "0" in a) {
                c = a.split ? a.split(" ") :
[a[0], a[1]]; if (c.length === 1) c[1] = c[0]; b.each(["left", "top"], function (j, n) { if (+c[j] === c[j]) { h[j] = c[j]; c[j] = n } }); a = { my: c.join(" "), at: c.join(" "), offset: h.join(" ")}
            } a = b.extend({}, b.ui.dialog.prototype.options.position, a)
        } else a = b.ui.dialog.prototype.options.position; (i = this.uiDialog.is(":visible")) || this.uiDialog.show(); this.uiDialog.css({ top: 0, left: 0 }).position(b.extend({ of: window }, a)); i || this.uiDialog.hide()
    }, _setOptions: function (a) {
        var c = this, h = {}, i = false; b.each(a, function (j, n) {
            c._setOption(j, n);
            if (j in e) i = true; if (j in f) h[j] = n
        }); i && this._size(); this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", h)
    }, _setOption: function (a, c) {
        var h = this, i = h.uiDialog; switch (a) {
            case "beforeclose": a = "beforeClose"; break; case "buttons": h._createButtons(c); break; case "closeText": h.uiDialogTitlebarCloseText.text("" + c); break; case "dialogClass": i.removeClass(h.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all " + c); break; case "disabled": c ? i.addClass("ui-dialog-disabled") :
i.removeClass("ui-dialog-disabled"); break; case "draggable": var j = i.is(":data(draggable)"); j && !c && i.draggable("destroy"); !j && c && h._makeDraggable(); break; case "position": h._position(c); break; case "resizable": (j = i.is(":data(resizable)")) && !c && i.resizable("destroy"); j && typeof c === "string" && i.resizable("option", "handles", c); !j && c !== false && h._makeResizable(c); break; case "title": b(".ui-dialog-title", h.uiDialogTitlebar).html("" + (c || "&#160;")); break
        } b.Widget.prototype._setOption.apply(h, arguments)
    }, _size: function () {
        var a =
this.options, c, h, i = this.uiDialog.is(":visible"); this.element.show().css({ width: "auto", minHeight: 0, height: 0 }); if (a.minWidth > a.width) a.width = a.minWidth; c = this.uiDialog.css({ height: "auto", width: a.width }).height(); h = Math.max(0, a.minHeight - c); if (a.height === "auto") if (b.support.minHeight) this.element.css({ minHeight: h, height: "auto" }); else { this.uiDialog.show(); a = this.element.css("height", "auto").height(); i || this.uiDialog.hide(); this.element.height(Math.max(a, h)) } else this.element.height(Math.max(a.height -
c, 0)); this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", "minHeight", this._minHeight())
    } 
    }); b.extend(b.ui.dialog, { version: "1.8.12", uuid: 0, maxZ: 0, getTitleId: function (a) { a = a.attr("id"); if (!a) { this.uuid += 1; a = this.uuid } return "ui-dialog-title-" + a }, overlay: function (a) { this.$el = b.ui.dialog.overlay.create(a) } }); b.extend(b.ui.dialog.overlay, { instances: [], oldInstances: [], maxZ: 0, events: b.map("focus,mousedown,mouseup,keydown,keypress,click".split(","), function (a) { return a + ".dialog-overlay" }).join(" "),
        create: function (a) {
            if (this.instances.length === 0) { setTimeout(function () { b.ui.dialog.overlay.instances.length && b(document).bind(b.ui.dialog.overlay.events, function (h) { if (b(h.target).zIndex() < b.ui.dialog.overlay.maxZ) return false }) }, 1); b(document).bind("keydown.dialog-overlay", function (h) { if (a.options.closeOnEscape && h.keyCode && h.keyCode === b.ui.keyCode.ESCAPE) { a.close(h); h.preventDefault() } }); b(window).bind("resize.dialog-overlay", b.ui.dialog.overlay.resize) } var c = (this.oldInstances.pop() || b("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({ width: this.width(),
                height: this.height()
            }); b.fn.bgiframe && c.bgiframe(); this.instances.push(c); return c
        }, destroy: function (a) { var c = b.inArray(a, this.instances); c != -1 && this.oldInstances.push(this.instances.splice(c, 1)[0]); this.instances.length === 0 && b([document, window]).unbind(".dialog-overlay"); a.remove(); var h = 0; b.each(this.instances, function () { h = Math.max(h, this.css("z-index")) }); this.maxZ = h }, height: function () {
            var a, c; if (b.browser.msie && b.browser.version < 7) {
                a = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);
                c = Math.max(document.documentElement.offsetHeight, document.body.offsetHeight); return a < c ? b(window).height() + "px" : a + "px"
            } else return b(document).height() + "px"
        }, width: function () { var a, c; if (b.browser.msie && b.browser.version < 7) { a = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth); c = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth); return a < c ? b(window).width() + "px" : a + "px" } else return b(document).width() + "px" }, resize: function () {
            var a = b([]); b.each(b.ui.dialog.overlay.instances,
function () { a = a.add(this) }); a.css({ width: 0, height: 0 }).css({ width: b.ui.dialog.overlay.width(), height: b.ui.dialog.overlay.height() })
        } 
    }); b.extend(b.ui.dialog.overlay.prototype, { destroy: function () { b.ui.dialog.overlay.destroy(this.$el) } })
})(jQuery);
(function (b) {
    b.ui = b.ui || {}; var d = /left|center|right/, e = /top|center|bottom/, f = b.fn.position, g = b.fn.offset; b.fn.position = function (a) {
        if (!a || !a.of) return f.apply(this, arguments); a = b.extend({}, a); var c = b(a.of), h = c[0], i = (a.collision || "flip").split(" "), j = a.offset ? a.offset.split(" ") : [0, 0], n, o, l; if (h.nodeType === 9) { n = c.width(); o = c.height(); l = { top: 0, left: 0} } else if (h.setTimeout) { n = c.width(); o = c.height(); l = { top: c.scrollTop(), left: c.scrollLeft()} } else if (h.preventDefault) {
            a.at = "left top"; n = o = 0; l = { top: a.of.pageY,
                left: a.of.pageX
            }
        } else { n = c.outerWidth(); o = c.outerHeight(); l = c.offset() } b.each(["my", "at"], function () { var k = (a[this] || "").split(" "); if (k.length === 1) k = d.test(k[0]) ? k.concat(["center"]) : e.test(k[0]) ? ["center"].concat(k) : ["center", "center"]; k[0] = d.test(k[0]) ? k[0] : "center"; k[1] = e.test(k[1]) ? k[1] : "center"; a[this] = k }); if (i.length === 1) i[1] = i[0]; j[0] = parseInt(j[0], 10) || 0; if (j.length === 1) j[1] = j[0]; j[1] = parseInt(j[1], 10) || 0; if (a.at[0] === "right") l.left += n; else if (a.at[0] === "center") l.left += n / 2; if (a.at[1] === "bottom") l.top +=
o; else if (a.at[1] === "center") l.top += o / 2; l.left += j[0]; l.top += j[1]; return this.each(function () {
    var k = b(this), m = k.outerWidth(), p = k.outerHeight(), q = parseInt(b.curCSS(this, "marginLeft", true)) || 0, s = parseInt(b.curCSS(this, "marginTop", true)) || 0, r = m + q + (parseInt(b.curCSS(this, "marginRight", true)) || 0), u = p + s + (parseInt(b.curCSS(this, "marginBottom", true)) || 0), v = b.extend({}, l), w; if (a.my[0] === "right") v.left -= m; else if (a.my[0] === "center") v.left -= m / 2; if (a.my[1] === "bottom") v.top -= p; else if (a.my[1] === "center") v.top -=
p / 2; v.left = Math.round(v.left); v.top = Math.round(v.top); w = { left: v.left - q, top: v.top - s }; b.each(["left", "top"], function (y, B) { b.ui.position[i[y]] && b.ui.position[i[y]][B](v, { targetWidth: n, targetHeight: o, elemWidth: m, elemHeight: p, collisionPosition: w, collisionWidth: r, collisionHeight: u, offset: j, my: a.my, at: a.at }) }); b.fn.bgiframe && k.bgiframe(); k.offset(b.extend(v, { using: a.using }))
})
    }; b.ui.position = { fit: { left: function (a, c) {
        var h = b(window); h = c.collisionPosition.left + c.collisionWidth - h.width() - h.scrollLeft(); a.left =
h > 0 ? a.left - h : Math.max(a.left - c.collisionPosition.left, a.left)
    }, top: function (a, c) { var h = b(window); h = c.collisionPosition.top + c.collisionHeight - h.height() - h.scrollTop(); a.top = h > 0 ? a.top - h : Math.max(a.top - c.collisionPosition.top, a.top) } 
    }, flip: { left: function (a, c) {
        if (c.at[0] !== "center") {
            var h = b(window); h = c.collisionPosition.left + c.collisionWidth - h.width() - h.scrollLeft(); var i = c.my[0] === "left" ? -c.elemWidth : c.my[0] === "right" ? c.elemWidth : 0, j = c.at[0] === "left" ? c.targetWidth : -c.targetWidth, n = -2 * c.offset[0]; a.left +=
c.collisionPosition.left < 0 ? i + j + n : h > 0 ? i + j + n : 0
        } 
    }, top: function (a, c) { if (c.at[1] !== "center") { var h = b(window); h = c.collisionPosition.top + c.collisionHeight - h.height() - h.scrollTop(); var i = c.my[1] === "top" ? -c.elemHeight : c.my[1] === "bottom" ? c.elemHeight : 0, j = c.at[1] === "top" ? c.targetHeight : -c.targetHeight, n = -2 * c.offset[1]; a.top += c.collisionPosition.top < 0 ? i + j + n : h > 0 ? i + j + n : 0 } } 
    }
    }; if (!b.offset.setOffset) {
        b.offset.setOffset = function (a, c) {
            if (/static/.test(b.curCSS(a, "position"))) a.style.position = "relative"; var h = b(a),
i = h.offset(), j = parseInt(b.curCSS(a, "top", true), 10) || 0, n = parseInt(b.curCSS(a, "left", true), 10) || 0; i = { top: c.top - i.top + j, left: c.left - i.left + n }; "using" in c ? c.using.call(a, i) : h.css(i)
        }; b.fn.offset = function (a) { var c = this[0]; if (!c || !c.ownerDocument) return null; if (a) return this.each(function () { b.offset.setOffset(this, a) }); return g.call(this) } 
    } 
})(jQuery);
(function (b, d) {
    b.widget("ui.progressbar", { options: { value: 0, max: 100 }, min: 0, _create: function () { this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({ role: "progressbar", "aria-valuemin": this.min, "aria-valuemax": this.options.max, "aria-valuenow": this._value() }); this.valueDiv = b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element); this.oldValue = this._value(); this._refreshValue() }, destroy: function () {
        this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
        this.valueDiv.remove(); b.Widget.prototype.destroy.apply(this, arguments)
    }, value: function (e) { if (e === d) return this._value(); this._setOption("value", e); return this }, _setOption: function (e, f) { if (e === "value") { this.options.value = f; this._refreshValue(); this._value() === this.options.max && this._trigger("complete") } b.Widget.prototype._setOption.apply(this, arguments) }, _value: function () { var e = this.options.value; if (typeof e !== "number") e = 0; return Math.min(this.options.max, Math.max(this.min, e)) }, _percentage: function () {
        return 100 *
this._value() / this.options.max
    }, _refreshValue: function () { var e = this.value(), f = this._percentage(); if (this.oldValue !== e) { this.oldValue = e; this._trigger("change") } this.valueDiv.toggle(e > this.min).toggleClass("ui-corner-right", e === this.options.max).width(f.toFixed(0) + "%"); this.element.attr("aria-valuenow", e) } 
    }); b.extend(b.ui.progressbar, { version: "1.8.12" })
})(jQuery);
(function (b) {
    b.widget("ui.slider", b.ui.mouse, { widgetEventPrefix: "slide", options: { animate: false, distance: 0, max: 100, min: 0, orientation: "horizontal", range: false, step: 1, value: 0, values: null }, _create: function () {
        var d = this, e = this.options; this._mouseSliding = this._keySliding = false; this._animateOff = true; this._handleIndex = null; this._detectOrientation(); this._mouseInit(); this.element.addClass("ui-slider ui-slider-" + this.orientation + " ui-widget ui-widget-content ui-corner-all"); e.disabled && this.element.addClass("ui-slider-disabled ui-disabled");
        this.range = b([]); if (e.range) { if (e.range === true) { this.range = b("<div></div>"); if (!e.values) e.values = [this._valueMin(), this._valueMin()]; if (e.values.length && e.values.length !== 2) e.values = [e.values[0], e.values[0]] } else this.range = b("<div></div>"); this.range.appendTo(this.element).addClass("ui-slider-range"); if (e.range === "min" || e.range === "max") this.range.addClass("ui-slider-range-" + e.range); this.range.addClass("ui-widget-header") } b(".ui-slider-handle", this.element).length === 0 && b("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");
        if (e.values && e.values.length) for (; b(".ui-slider-handle", this.element).length < e.values.length; ) b("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle"); this.handles = b(".ui-slider-handle", this.element).addClass("ui-state-default ui-corner-all"); this.handle = this.handles.eq(0); this.handles.add(this.range).filter("a").click(function (f) { f.preventDefault() }).hover(function () { e.disabled || b(this).addClass("ui-state-hover") }, function () { b(this).removeClass("ui-state-hover") }).focus(function () {
            if (e.disabled) b(this).blur();
            else { b(".ui-slider .ui-state-focus").removeClass("ui-state-focus"); b(this).addClass("ui-state-focus") } 
        }).blur(function () { b(this).removeClass("ui-state-focus") }); this.handles.each(function (f) { b(this).data("index.ui-slider-handle", f) }); this.handles.keydown(function (f) {
            var g = true, a = b(this).data("index.ui-slider-handle"), c, h, i; if (!d.options.disabled) {
                switch (f.keyCode) {
                    case b.ui.keyCode.HOME: case b.ui.keyCode.END: case b.ui.keyCode.PAGE_UP: case b.ui.keyCode.PAGE_DOWN: case b.ui.keyCode.UP: case b.ui.keyCode.RIGHT: case b.ui.keyCode.DOWN: case b.ui.keyCode.LEFT: g =
false; if (!d._keySliding) { d._keySliding = true; b(this).addClass("ui-state-active"); c = d._start(f, a); if (c === false) return } break
                } i = d.options.step; c = d.options.values && d.options.values.length ? (h = d.values(a)) : (h = d.value()); switch (f.keyCode) {
                    case b.ui.keyCode.HOME: h = d._valueMin(); break; case b.ui.keyCode.END: h = d._valueMax(); break; case b.ui.keyCode.PAGE_UP: h = d._trimAlignValue(c + (d._valueMax() - d._valueMin()) / 5); break; case b.ui.keyCode.PAGE_DOWN: h = d._trimAlignValue(c - (d._valueMax() - d._valueMin()) / 5); break; case b.ui.keyCode.UP: case b.ui.keyCode.RIGHT: if (c ===
d._valueMax()) return; h = d._trimAlignValue(c + i); break; case b.ui.keyCode.DOWN: case b.ui.keyCode.LEFT: if (c === d._valueMin()) return; h = d._trimAlignValue(c - i); break
                } d._slide(f, a, h); return g
            } 
        }).keyup(function (f) { var g = b(this).data("index.ui-slider-handle"); if (d._keySliding) { d._keySliding = false; d._stop(f, g); d._change(f, g); b(this).removeClass("ui-state-active") } }); this._refreshValue(); this._animateOff = false
    }, destroy: function () {
        this.handles.remove(); this.range.remove(); this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");
        this._mouseDestroy(); return this
    }, _mouseCapture: function (d) {
        var e = this.options, f, g, a, c, h; if (e.disabled) return false; this.elementSize = { width: this.element.outerWidth(), height: this.element.outerHeight() }; this.elementOffset = this.element.offset(); f = this._normValueFromMouse({ x: d.pageX, y: d.pageY }); g = this._valueMax() - this._valueMin() + 1; c = this; this.handles.each(function (i) { var j = Math.abs(f - c.values(i)); if (g > j) { g = j; a = b(this); h = i } }); if (e.range === true && this.values(1) === e.min) { h += 1; a = b(this.handles[h]) } if (this._start(d,
h) === false) return false; this._mouseSliding = true; c._handleIndex = h; a.addClass("ui-state-active").focus(); e = a.offset(); this._clickOffset = !b(d.target).parents().andSelf().is(".ui-slider-handle") ? { left: 0, top: 0} : { left: d.pageX - e.left - a.width() / 2, top: d.pageY - e.top - a.height() / 2 - (parseInt(a.css("borderTopWidth"), 10) || 0) - (parseInt(a.css("borderBottomWidth"), 10) || 0) + (parseInt(a.css("marginTop"), 10) || 0) }; this.handles.hasClass("ui-state-hover") || this._slide(d, h, f); return this._animateOff = true
    }, _mouseStart: function () { return true },
        _mouseDrag: function (d) { var e = this._normValueFromMouse({ x: d.pageX, y: d.pageY }); this._slide(d, this._handleIndex, e); return false }, _mouseStop: function (d) { this.handles.removeClass("ui-state-active"); this._mouseSliding = false; this._stop(d, this._handleIndex); this._change(d, this._handleIndex); this._clickOffset = this._handleIndex = null; return this._animateOff = false }, _detectOrientation: function () { this.orientation = this.options.orientation === "vertical" ? "vertical" : "horizontal" }, _normValueFromMouse: function (d) {
            var e;
            if (this.orientation === "horizontal") { e = this.elementSize.width; d = d.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0) } else { e = this.elementSize.height; d = d.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0) } e = d / e; if (e > 1) e = 1; if (e < 0) e = 0; if (this.orientation === "vertical") e = 1 - e; d = this._valueMax() - this._valueMin(); return this._trimAlignValue(this._valueMin() + e * d)
        }, _start: function (d, e) {
            var f = { handle: this.handles[e], value: this.value() }; if (this.options.values && this.options.values.length) {
                f.value =
this.values(e); f.values = this.values()
            } return this._trigger("start", d, f)
        }, _slide: function (d, e, f) {
            var g; if (this.options.values && this.options.values.length) { g = this.values(e ? 0 : 1); if (this.options.values.length === 2 && this.options.range === true && (e === 0 && f > g || e === 1 && f < g)) f = g; if (f !== this.values(e)) { g = this.values(); g[e] = f; d = this._trigger("slide", d, { handle: this.handles[e], value: f, values: g }); this.values(e ? 0 : 1); d !== false && this.values(e, f, true) } } else if (f !== this.value()) {
                d = this._trigger("slide", d, { handle: this.handles[e],
                    value: f
                }); d !== false && this.value(f)
            } 
        }, _stop: function (d, e) { var f = { handle: this.handles[e], value: this.value() }; if (this.options.values && this.options.values.length) { f.value = this.values(e); f.values = this.values() } this._trigger("stop", d, f) }, _change: function (d, e) { if (!this._keySliding && !this._mouseSliding) { var f = { handle: this.handles[e], value: this.value() }; if (this.options.values && this.options.values.length) { f.value = this.values(e); f.values = this.values() } this._trigger("change", d, f) } }, value: function (d) {
            if (arguments.length) {
                this.options.value =
this._trimAlignValue(d); this._refreshValue(); this._change(null, 0)
            } else return this._value()
        }, values: function (d, e) {
            var f, g, a; if (arguments.length > 1) { this.options.values[d] = this._trimAlignValue(e); this._refreshValue(); this._change(null, d) } else if (arguments.length) if (b.isArray(arguments[0])) { f = this.options.values; g = arguments[0]; for (a = 0; a < f.length; a += 1) { f[a] = this._trimAlignValue(g[a]); this._change(null, a) } this._refreshValue() } else return this.options.values && this.options.values.length ? this._values(d) :
this.value(); else return this._values()
        }, _setOption: function (d, e) {
            var f, g = 0; if (b.isArray(this.options.values)) g = this.options.values.length; b.Widget.prototype._setOption.apply(this, arguments); switch (d) {
                case "disabled": if (e) { this.handles.filter(".ui-state-focus").blur(); this.handles.removeClass("ui-state-hover"); this.handles.attr("disabled", "disabled"); this.element.addClass("ui-disabled") } else { this.handles.removeAttr("disabled"); this.element.removeClass("ui-disabled") } break; case "orientation": this._detectOrientation();
                    this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-" + this.orientation); this._refreshValue(); break; case "value": this._animateOff = true; this._refreshValue(); this._change(null, 0); this._animateOff = false; break; case "values": this._animateOff = true; this._refreshValue(); for (f = 0; f < g; f += 1) this._change(null, f); this._animateOff = false; break
            } 
        }, _value: function () { var d = this.options.value; return d = this._trimAlignValue(d) }, _values: function (d) {
            var e, f; if (arguments.length) {
                e = this.options.values[d];
                return e = this._trimAlignValue(e)
            } else { e = this.options.values.slice(); for (f = 0; f < e.length; f += 1) e[f] = this._trimAlignValue(e[f]); return e } 
        }, _trimAlignValue: function (d) { if (d <= this._valueMin()) return this._valueMin(); if (d >= this._valueMax()) return this._valueMax(); var e = this.options.step > 0 ? this.options.step : 1, f = (d - this._valueMin()) % e; alignValue = d - f; if (Math.abs(f) * 2 >= e) alignValue += f > 0 ? e : -e; return parseFloat(alignValue.toFixed(5)) }, _valueMin: function () { return this.options.min }, _valueMax: function () { return this.options.max },
        _refreshValue: function () {
            var d = this.options.range, e = this.options, f = this, g = !this._animateOff ? e.animate : false, a, c = {}, h, i, j, n; if (this.options.values && this.options.values.length) this.handles.each(function (o) {
                a = (f.values(o) - f._valueMin()) / (f._valueMax() - f._valueMin()) * 100; c[f.orientation === "horizontal" ? "left" : "bottom"] = a + "%"; b(this).stop(1, 1)[g ? "animate" : "css"](c, e.animate); if (f.options.range === true) if (f.orientation === "horizontal") {
                    if (o === 0) f.range.stop(1, 1)[g ? "animate" : "css"]({ left: a + "%" }, e.animate);
                    if (o === 1) f.range[g ? "animate" : "css"]({ width: a - h + "%" }, { queue: false, duration: e.animate })
                } else { if (o === 0) f.range.stop(1, 1)[g ? "animate" : "css"]({ bottom: a + "%" }, e.animate); if (o === 1) f.range[g ? "animate" : "css"]({ height: a - h + "%" }, { queue: false, duration: e.animate }) } h = a
            }); else {
                i = this.value(); j = this._valueMin(); n = this._valueMax(); a = n !== j ? (i - j) / (n - j) * 100 : 0; c[f.orientation === "horizontal" ? "left" : "bottom"] = a + "%"; this.handle.stop(1, 1)[g ? "animate" : "css"](c, e.animate); if (d === "min" && this.orientation === "horizontal") this.range.stop(1,
1)[g ? "animate" : "css"]({ width: a + "%" }, e.animate); if (d === "max" && this.orientation === "horizontal") this.range[g ? "animate" : "css"]({ width: 100 - a + "%" }, { queue: false, duration: e.animate }); if (d === "min" && this.orientation === "vertical") this.range.stop(1, 1)[g ? "animate" : "css"]({ height: a + "%" }, e.animate); if (d === "max" && this.orientation === "vertical") this.range[g ? "animate" : "css"]({ height: 100 - a + "%" }, { queue: false, duration: e.animate })
            } 
        } 
    }); b.extend(b.ui.slider, { version: "1.8.12" })
})(jQuery);
(function (b, d) {
    function e() { return ++g } function f() { return ++a } var g = 0, a = 0; b.widget("ui.tabs", { options: { add: null, ajaxOptions: null, cache: false, cookie: null, collapsible: false, disable: null, disabled: [], enable: null, event: "click", fx: null, idPrefix: "ui-tabs-", load: null, panelTemplate: "<div></div>", remove: null, select: null, show: null, spinner: "<em>Loading&#8230;</em>", tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>" }, _create: function () { this._tabify(true) }, _setOption: function (c, h) {
        if (c == "selected") this.options.collapsible &&
h == this.options.selected || this.select(h); else { this.options[c] = h; this._tabify() } 
    }, _tabId: function (c) { return c.title && c.title.replace(/\s/g, "_").replace(/[^\w\u00c0-\uFFFF-]/g, "") || this.options.idPrefix + e() }, _sanitizeSelector: function (c) { return c.replace(/:/g, "\\:") }, _cookie: function () { var c = this.cookie || (this.cookie = this.options.cookie.name || "ui-tabs-" + f()); return b.cookie.apply(null, [c].concat(b.makeArray(arguments))) }, _ui: function (c, h) { return { tab: c, panel: h, index: this.anchors.index(c)} }, _cleanup: function () {
        this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function () {
            var c =
b(this); c.html(c.data("label.tabs")).removeData("label.tabs")
        })
    }, _tabify: function (c) {
        function h(r, u) { r.css("display", ""); !b.support.opacity && u.opacity && r[0].style.removeAttribute("filter") } var i = this, j = this.options, n = /^#.+/; this.list = this.element.find("ol,ul").eq(0); this.lis = b(" > li:has(a[href])", this.list); this.anchors = this.lis.map(function () { return b("a", this)[0] }); this.panels = b([]); this.anchors.each(function (r, u) {
            var v = b(u).attr("href"), w = v.split("#")[0], y; if (w && (w === location.toString().split("#")[0] ||
(y = b("base")[0]) && w === y.href)) { v = u.hash; u.href = v } if (n.test(v)) i.panels = i.panels.add(i.element.find(i._sanitizeSelector(v))); else if (v && v !== "#") { b.data(u, "href.tabs", v); b.data(u, "load.tabs", v.replace(/#.*$/, "")); v = i._tabId(u); u.href = "#" + v; u = i.element.find("#" + v); if (!u.length) { u = b(j.panelTemplate).attr("id", v).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(i.panels[r - 1] || i.list); u.data("destroy.tabs", true) } i.panels = i.panels.add(u) } else j.disabled.push(r)
        }); if (c) {
            this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");
            this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"); this.lis.addClass("ui-state-default ui-corner-top"); this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"); if (j.selected === d) {
                location.hash && this.anchors.each(function (r, u) { if (u.hash == location.hash) { j.selected = r; return false } }); if (typeof j.selected !== "number" && j.cookie) j.selected = parseInt(i._cookie(), 10); if (typeof j.selected !== "number" && this.lis.filter(".ui-tabs-selected").length) j.selected =
this.lis.index(this.lis.filter(".ui-tabs-selected")); j.selected = j.selected || (this.lis.length ? 0 : -1)
            } else if (j.selected === null) j.selected = -1; j.selected = j.selected >= 0 && this.anchors[j.selected] || j.selected < 0 ? j.selected : 0; j.disabled = b.unique(j.disabled.concat(b.map(this.lis.filter(".ui-state-disabled"), function (r) { return i.lis.index(r) }))).sort(); b.inArray(j.selected, j.disabled) != -1 && j.disabled.splice(b.inArray(j.selected, j.disabled), 1); this.panels.addClass("ui-tabs-hide"); this.lis.removeClass("ui-tabs-selected ui-state-active");
            if (j.selected >= 0 && this.anchors.length) { i.element.find(i._sanitizeSelector(i.anchors[j.selected].hash)).removeClass("ui-tabs-hide"); this.lis.eq(j.selected).addClass("ui-tabs-selected ui-state-active"); i.element.queue("tabs", function () { i._trigger("show", null, i._ui(i.anchors[j.selected], i.element.find(i._sanitizeSelector(i.anchors[j.selected].hash))[0])) }); this.load(j.selected) } b(window).bind("unload", function () { i.lis.add(i.anchors).unbind(".tabs"); i.lis = i.anchors = i.panels = null })
        } else j.selected = this.lis.index(this.lis.filter(".ui-tabs-selected"));
        this.element[j.collapsible ? "addClass" : "removeClass"]("ui-tabs-collapsible"); j.cookie && this._cookie(j.selected, j.cookie); c = 0; for (var o; o = this.lis[c]; c++) b(o)[b.inArray(c, j.disabled) != -1 && !b(o).hasClass("ui-tabs-selected") ? "addClass" : "removeClass"]("ui-state-disabled"); j.cache === false && this.anchors.removeData("cache.tabs"); this.lis.add(this.anchors).unbind(".tabs"); if (j.event !== "mouseover") {
            var l = function (r, u) { u.is(":not(.ui-state-disabled)") && u.addClass("ui-state-" + r) }, k = function (r, u) {
                u.removeClass("ui-state-" +
r)
            }; this.lis.bind("mouseover.tabs", function () { l("hover", b(this)) }); this.lis.bind("mouseout.tabs", function () { k("hover", b(this)) }); this.anchors.bind("focus.tabs", function () { l("focus", b(this).closest("li")) }); this.anchors.bind("blur.tabs", function () { k("focus", b(this).closest("li")) })
        } var m, p; if (j.fx) if (b.isArray(j.fx)) { m = j.fx[0]; p = j.fx[1] } else m = p = j.fx; var q = p ? function (r, u) {
            b(r).closest("li").addClass("ui-tabs-selected ui-state-active"); u.hide().removeClass("ui-tabs-hide").animate(p, p.duration || "normal",
function () { h(u, p); i._trigger("show", null, i._ui(r, u[0])) })
        } : function (r, u) { b(r).closest("li").addClass("ui-tabs-selected ui-state-active"); u.removeClass("ui-tabs-hide"); i._trigger("show", null, i._ui(r, u[0])) }, s = m ? function (r, u) { u.animate(m, m.duration || "normal", function () { i.lis.removeClass("ui-tabs-selected ui-state-active"); u.addClass("ui-tabs-hide"); h(u, m); i.element.dequeue("tabs") }) } : function (r, u) { i.lis.removeClass("ui-tabs-selected ui-state-active"); u.addClass("ui-tabs-hide"); i.element.dequeue("tabs") };
        this.anchors.bind(j.event + ".tabs", function () {
            var r = this, u = b(r).closest("li"), v = i.panels.filter(":not(.ui-tabs-hide)"), w = i.element.find(i._sanitizeSelector(r.hash)); if (u.hasClass("ui-tabs-selected") && !j.collapsible || u.hasClass("ui-state-disabled") || u.hasClass("ui-state-processing") || i.panels.filter(":animated").length || i._trigger("select", null, i._ui(this, w[0])) === false) { this.blur(); return false } j.selected = i.anchors.index(this); i.abort(); if (j.collapsible) if (u.hasClass("ui-tabs-selected")) {
                j.selected =
-1; j.cookie && i._cookie(j.selected, j.cookie); i.element.queue("tabs", function () { s(r, v) }).dequeue("tabs"); this.blur(); return false
            } else if (!v.length) { j.cookie && i._cookie(j.selected, j.cookie); i.element.queue("tabs", function () { q(r, w) }); i.load(i.anchors.index(this)); this.blur(); return false } j.cookie && i._cookie(j.selected, j.cookie); if (w.length) { v.length && i.element.queue("tabs", function () { s(r, v) }); i.element.queue("tabs", function () { q(r, w) }); i.load(i.anchors.index(this)) } else throw "jQuery UI Tabs: Mismatching fragment identifier.";
            b.browser.msie && this.blur()
        }); this.anchors.bind("click.tabs", function () { return false })
    }, _getIndex: function (c) { if (typeof c == "string") c = this.anchors.index(this.anchors.filter("[href$=" + c + "]")); return c }, destroy: function () {
        var c = this.options; this.abort(); this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"); this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"); this.anchors.each(function () {
            var h =
b.data(this, "href.tabs"); if (h) this.href = h; var i = b(this).unbind(".tabs"); b.each(["href", "load", "cache"], function (j, n) { i.removeData(n + ".tabs") })
        }); this.lis.unbind(".tabs").add(this.panels).each(function () { b.data(this, "destroy.tabs") ? b(this).remove() : b(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide") }); c.cookie && this._cookie(null, c.cookie); return this
    }, add: function (c,
h, i) {
        if (i === d) i = this.anchors.length; var j = this, n = this.options; h = b(n.tabTemplate.replace(/#\{href\}/g, c).replace(/#\{label\}/g, h)); c = !c.indexOf("#") ? c.replace("#", "") : this._tabId(b("a", h)[0]); h.addClass("ui-state-default ui-corner-top").data("destroy.tabs", true); var o = j.element.find("#" + c); o.length || (o = b(n.panelTemplate).attr("id", c).data("destroy.tabs", true)); o.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"); if (i >= this.lis.length) { h.appendTo(this.list); o.appendTo(this.list[0].parentNode) } else {
            h.insertBefore(this.lis[i]);
            o.insertBefore(this.panels[i])
        } n.disabled = b.map(n.disabled, function (l) { return l >= i ? ++l : l }); this._tabify(); if (this.anchors.length == 1) { n.selected = 0; h.addClass("ui-tabs-selected ui-state-active"); o.removeClass("ui-tabs-hide"); this.element.queue("tabs", function () { j._trigger("show", null, j._ui(j.anchors[0], j.panels[0])) }); this.load(0) } this._trigger("add", null, this._ui(this.anchors[i], this.panels[i])); return this
    }, remove: function (c) {
        c = this._getIndex(c); var h = this.options, i = this.lis.eq(c).remove(), j = this.panels.eq(c).remove();
        if (i.hasClass("ui-tabs-selected") && this.anchors.length > 1) this.select(c + (c + 1 < this.anchors.length ? 1 : -1)); h.disabled = b.map(b.grep(h.disabled, function (n) { return n != c }), function (n) { return n >= c ? --n : n }); this._tabify(); this._trigger("remove", null, this._ui(i.find("a")[0], j[0])); return this
    }, enable: function (c) {
        c = this._getIndex(c); var h = this.options; if (b.inArray(c, h.disabled) != -1) {
            this.lis.eq(c).removeClass("ui-state-disabled"); h.disabled = b.grep(h.disabled, function (i) { return i != c }); this._trigger("enable", null,
this._ui(this.anchors[c], this.panels[c])); return this
        } 
    }, disable: function (c) { c = this._getIndex(c); var h = this.options; if (c != h.selected) { this.lis.eq(c).addClass("ui-state-disabled"); h.disabled.push(c); h.disabled.sort(); this._trigger("disable", null, this._ui(this.anchors[c], this.panels[c])) } return this }, select: function (c) { c = this._getIndex(c); if (c == -1) if (this.options.collapsible && this.options.selected != -1) c = this.options.selected; else return this; this.anchors.eq(c).trigger(this.options.event + ".tabs"); return this },
        load: function (c) {
            c = this._getIndex(c); var h = this, i = this.options, j = this.anchors.eq(c)[0], n = b.data(j, "load.tabs"); this.abort(); if (!n || this.element.queue("tabs").length !== 0 && b.data(j, "cache.tabs")) this.element.dequeue("tabs"); else {
                this.lis.eq(c).addClass("ui-state-processing"); if (i.spinner) { var o = b("span", j); o.data("label.tabs", o.html()).html(i.spinner) } this.xhr = b.ajax(b.extend({}, i.ajaxOptions, { url: n, success: function (l, k) {
                    h.element.find(h._sanitizeSelector(j.hash)).html(l); h._cleanup(); i.cache && b.data(j,
"cache.tabs", true); h._trigger("load", null, h._ui(h.anchors[c], h.panels[c])); try { i.ajaxOptions.success(l, k) } catch (m) { } 
                }, error: function (l, k) { h._cleanup(); h._trigger("load", null, h._ui(h.anchors[c], h.panels[c])); try { i.ajaxOptions.error(l, k, c, j) } catch (m) { } } 
                })); h.element.dequeue("tabs"); return this
            } 
        }, abort: function () { this.element.queue([]); this.panels.stop(false, true); this.element.queue("tabs", this.element.queue("tabs").splice(-2, 2)); if (this.xhr) { this.xhr.abort(); delete this.xhr } this._cleanup(); return this },
        url: function (c, h) { this.anchors.eq(c).removeData("cache.tabs").data("load.tabs", h); return this }, length: function () { return this.anchors.length } 
    }); b.extend(b.ui.tabs, { version: "1.8.12" }); b.extend(b.ui.tabs.prototype, { rotation: null, rotate: function (c, h) {
        var i = this, j = this.options, n = i._rotate || (i._rotate = function (o) { clearTimeout(i.rotation); i.rotation = setTimeout(function () { var l = j.selected; i.select(++l < i.anchors.length ? l : 0) }, c); o && o.stopPropagation() }); h = i._unrotate || (i._unrotate = !h ? function (o) {
            o.clientX &&
i.rotate(null)
        } : function () { t = j.selected; n() }); if (c) { this.element.bind("tabsshow", n); this.anchors.bind(j.event + ".tabs", h); n() } else { clearTimeout(i.rotation); this.element.unbind("tabsshow", n); this.anchors.unbind(j.event + ".tabs", h); delete this._rotate; delete this._unrotate } return this
    } 
    })
})(jQuery);
/**** /englishfirst/_scripts/jquery/jquery.cookie.js ****/

jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options.expires=-1;}
var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){var date;if(typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000));}else{date=options.expires;}
expires='; expires='+date.toUTCString();}
var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; domain='+(options.domain):'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('');}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}}
return cookieValue;}};
/**** /englishfirst/_scripts/common.js ****/

var $j=jQuery.noConflict();var target=["01","02","03","04","05","06","07","08","09","10"];var ImageQuantity;var cpList;var jsonRaw;var homeGroup;var product;var pickerWidth=654;var showPicker=false;var menuSmartLink;var menuHoverItem;var headerId;var schoolTabText;var tabSchoolLink;var tabCityLink;var schoolTabId;var navAge=0;var navProduction=0;var currProduct;var isOwnCity;var currentProduction;var browserIE6;var browserFF;var cityType;var courseCode;var countryCode;var languageCode;var schoolType;var leadType;var etag;var currDomain;var etownOpt;var etownHome;var etagHelper={addEtag:function(data){if(data&&data.etag){$j(document).delegate("a[href^='http']","click",data,function(){var $item=$j(this);var reEtag=/etag/ig;var reDomain;if(data.domain){reDomain=new RegExp(data.domain,"ig");};var href=$item.attr("href");if(!reEtag.test(href)&&!reDomain.test(href)){var reQ=/\?/g;var conS=reQ.test(href)?"&":"?";$item.attr("href",href+conS+"etag="+data.etag);}});}}};function linkEtagUpdate(){if(etagHelper){etagHelper.addEtag({"etag":etag,"domain":currDomain});}}
function urlEtagUpdate(link){if(link){var isAddEtag=false;if(etag){var reDomain;var reEtag=/etag/ig;if(currDomain){reDomain=new RegExp(currDomain,"ig");};if(!reEtag.test(link)&&!reDomain.test(link)){var reQ=/\?/g;var conS=reQ.test(link)?"&":"?";isAddEtag=true;return(link+conS+"etag="+etag);}}}
if(!isAddEtag){return link;}}
function checkBrowser(){if(window.XMLHttpRequest){browserIE6=false;}else{browserIE6=true;};if(navigator.userAgent.indexOf('Firefox')>=0){browserFF=true;}}
function popupPosition(){var scrollTop=document.documentElement.scrollTop||window.pageYOffset||document.body.scrollTop;var popupLeft=($j(window).width()-$j('.ui-dialog').width())/2;var popupTop=($j(window).height()-$j('.ui-dialog').height())/2;if(popupLeft<0){popupLeft=0;}
if(popupTop<0){popupTop=0;}
if($j("#hiddenLayer").is(":visible")){cityPickerPosition();}
else{$j(".ui-dialog").css("left",popupLeft+"px");$j(".ui-dialog").css("top",popupTop+scrollTop+"px");}}
function hideScrollBar(){var scrollTop=document.documentElement.scrollTop||window.pageYOffset||document.body.scrollTop;$j("html").css("overflow","hidden");if(browserFF){$j(document).scrollTop(scrollTop);}}
function closePopup(){$j('.popups').dialog('close');var scrollTop=document.documentElement.scrollTop||window.pageYOffset||document.body.scrollTop;$j("html").css("overflow","scroll");if(browserFF){$j(document).scrollTop(scrollTop);}
$j("body").removeClass("bodyMove");}
function showPopup(popupId){hideScrollBar();if($j("#formAlert").is(":visible")){$j("#formAlert").hide();}
$j(popupId).dialog('open');$j(window).resize(function(){popupPosition();});return false;}
function addEventHandler(target,type,func){if(target.addEventListener)
target.addEventListener(type,func,false);else if(target.attachEvent)
target.attachEvent("on"+type,func);else target["on"+type]=func;}
function sp_callWebSvc(wsUrl,param,callback){if(param==null||param==""){param="{}";}
wsUrl="/englishfirst/_webservice/"+wsUrl;$j.ajax({type:"POST",contentType:"application/json; charset=utf-8",url:wsUrl,data:param,dataType:"json",success:callback,error:function(e){alert(e.statusText);}});}
function pickAge(group){if(group=="online"){var onlineUrl=homePath["online"];if(etag){onlineUrl=onlineUrl+"?etag="+etag+"_etown ";}
window.open(onlineUrl);}
else{homeGroup=group;if($j("#hiddenLayer").length==0){document.location=homePath[homeGroup];}else{openCityPopup();}}}
function goToSmart(){if(menuSmartLink){window.open(menuSmartLink);}}
function pickerOpenWindow(link){closeCityPopup();window.open(urlEtagUpdate(link));}
function changeOwnCity(cityCode,cityText){changeCity(cityCode,cityText,"1");}
function changeCity(cityCode,cityText,hasMore){var cityLab=document.getElementById(headerId+"_cityNameLab");cityLab.innerHTML=cityText;var schoolTab=document.getElementById(schoolTabId);if(schoolTab){schoolTab.innerHTML=schoolTabText.replace("#city#",cityText);if(hasMore=="1"){schoolTab.href=tabCityLink.replace("#citycode#",cityCode);}
else{schoolTab.href=tabSchoolLink.replace("#schoolcode#",cityCode);}}
var c=$j.cookie('e1_school');if(c&&c.indexOf(cityCode)<0){$j.cookie('e1_school',null,{domain:window.location.hostname,expires:-1,path:'/'});}
var options={domain:window.location.hostname,expires:7,path:'/'};$j.cookie('city',cityCode,options);$j.cookie('e1legacy',true,options);if(menuSmartLink){isOwnCity=false;var regexOwnCity=new RegExp(regOwnCity);if(cityCode&&regexOwnCity.exec(cityCode)){isOwnCity=true;}}
var adultLink="/englishfirst/courses/adults-courses.aspx";if(isOwnCity){adultLink=menuSmartLink;if(smartCityCode&&smartCityCode[cityCode]){adultLink=menuSmartLink+"?citycode="+smartCityCode[cityCode];if(etag){adultLink+="&etag="+etag;}}}
initNavigationParas(adultLink);closeCityPopup();if(homeGroup){if(isOwnCity&&homeGroup=="adults"){document.location=adultLink;}
else{document.location=homePath[homeGroup];}}}
function closeCityPicker(){$j('#hiddenLayer').dialog('close');$j("html").css("overflow","scroll");$j("body").css("margin-left","-0px");}
function initCityPicker(){var cityPickerList=document.getElementById("cpCityList");if(cityPickerList&&typeof(cpList)!="undefined"){var cpCities=cpList.Cities;var temp="<div class=\"cpCol\">";var cityRow;var cityNum=cpCities.length;for(var i=0;i<cityNum;i++){if(i==(parseInt(cityNum/2)+1)){temp+="</div><div class=\"cpCol\">";}
cityRow=cpCities[i].d;temp+="<div class=\"cpRow\" id=\"cpRow"+cpCities[i].l+"\">";for(var j=0;j<cityRow.length;j++){temp+="&nbsp;<a onclick=\"changeCity('";temp+=cityRow[j].v+"','";temp+=cityRow[j].t.replace("'","\\'")+"','";temp+=cityRow[j].m;temp+="');\">";temp+=cityRow[j].t;temp+="</a>";}
temp+="</div>";}
temp+="</div><div class=\"cf\"></div>";cityPickerList.innerHTML=temp;if(showPicker&&$j(".homePicker").length<1){openCityPopup();}}}
function closeCityPopup(){$j("#hiddenLayer").dialog("close");$j("html").css("overflow","scroll");$j("body").css("margin-left","-0px");}
function cityPickerPosition(){if($j(window).width()>pickerWidth){var pickerCopyLeft=$j("#picker").position().left-($j(window).width()-pickerWidth)/2;}
else{var pickerCopyLeft=$j("#picker").position().left;}
$j("#pickerCopy").css("left",pickerCopyLeft+"px");var popupLeft=($j(window).width()-pickerWidth)/2;if(popupLeft<0){popupLeft=0;}
$j(".ui-dialog").css("left",popupLeft+"px");}
function openCityPopup(){$j(document).scrollTop(0);$j("#hiddenLayer").dialog("open");$j("html").css("overflow","hidden");$j("body").css("margin-left","-18px");var pickerCopyTop=$j("#picker").position().top;if($j(window).width()>pickerWidth){var pickerCopyLeft=$j("#picker").position().left-($j(window).width()-pickerWidth)/2;}
else{var pickerCopyLeft=$j("#picker").position().left}
$j("#pickerCopy").css("top",pickerCopyTop+"px");$j("#pickerCopy").css("left",pickerCopyLeft+"px");$j(window).resize(function(){cityPickerPosition();});var isIE8=!!window.ActiveXObject&&!!document.documentMode;var isChrome=window.google&&window.chrome;if(isIE8||isChrome){setTimeout(function(){$j(document).scrollTop(0);},2000);}}
function initCityPopup(){var pickerWidth=654;$j("#hiddenLayer").dialog({autoOpen:false,width:pickerWidth,modal:true,resizable:false,draggable:true,position:["center",3]});$j("#picker").click(openCityPopup);$j(".closePopupCity").click(closeCityPopup);initCityPicker();}
function changeLanguage(value){var location=String(document.location);var pos=location.lastIndexOf("#");if(pos>=0){location=location.substring(0,pos);}
location=location.replace(/(&)?lng=[^&]*/,"").replace(/\?$|(\?)&/,"$1");document.location=location+(/\?/.test(location)?"&":"?")+"lng="+value;}
var seledTabId;function loadSubTabs(){if($j('#middleNavHolder').length>0){$j(".middleNavLeft").lavaLamp({speed:300,startItem:seledTabId});var middleNavArrowStart=$j(".selectedLava").position().left+$j(".selectedLava").width()/2+4;$j("#middleNavArrow").css("left",middleNavArrowStart);if($j("#middleNavSchools").hasClass("selectedLava")){$j("#middleNavArrow").css("background-position","0 -516px");};$j(".middleNavLeft").hover(function(){$j(".middleNavLeft .selectedLava a").addClass("grayText");},function(){$j(".middleNavLeft .selectedLava a").removeClass("grayText");});}}
function loadTopRotator(){var $topRotator=$j('div.topSlides');if($topRotator.length>0){$topRotator.innerfade({speed:1000,timeout:5000,product:currProduct});}}
function closeMoreInfoPopup(popName){$j.closePopupLayer(popName);var temp_h1=document.body.clientHeight;var temp_h2=document.documentElement.clientHeight;var isXhtml=(temp_h2<=temp_h1&&temp_h2!=0)?true:false;var htmlbody=isXhtml?document.documentElement:document.body;htmlbody.style.overflow="auto";}
function StudyTips(){$j("#studyTipsCityDropdown").html(GenerateListItems());function GenerateListItems(){var cityItems="";cityItems+="<ul>"
var i;for(i=0;i<jsonRaw.TopCities.length;i++){cityItems+="<li class='lipopupFormCity' id='"+jsonRaw.TopCities[i].v+"' >"+jsonRaw.TopCities[i].t+"</li>";}
if(i>0){cityItems+="<li class='lipopupFormCity'>---------------------------</li>";}
for(i=0;i<jsonRaw.CityInfos.length;i++){cityItems+="<li class='lipopupFormCity' id='"+jsonRaw.CityInfos[i].v+"' >"+jsonRaw.CityInfos[i].t+"</li>";}
cityItems+="</ul>"
return cityItems;}
$j("#textboxCity").click(function(){var cityDropdownTop=$j("#studyTipsArea").position().top+112;var cityDropdownLeft=$j("#studyTipsArea").position().left+190;$j("#studyTipsCityDropdown").css("top",cityDropdownTop+"px");$j("#studyTipsCityDropdown").css("left",cityDropdownLeft+"px");$j("#studyTipsCityDropdown").slideToggle("200");return false;});$j("#studyTipsCityDropdown li").click(function(){if($j(this).text().indexOf("----")<0){$j(this).removeClass("formDorpdownHover");$j("li[class*='formDorpdownSelect']").not($j(this)).removeClass("formDorpdownSelect");var liText=$j(this).text();var liValue=$j(this).attr("id");$j("#studyTipsCity").text(liText);$j("#studyTipsCityValue").text(liValue);$j(this).addClass("formDorpdownSelect");}});$j("#studyTipsCityDropdown").click(function(){$j("#studyTipsCityDropdown").delay(200).slideUp("200");});$j("#iskidsyes").click(function(){$j(this).css("background-position","-200px 50%");$j("#studyTipsHolder").delay(500).animate({marginLeft:"-160px"},300);$j("#iskids").text("1");});$j("#iskidsno").click(function(){$j(this).css("background-position","-200px 50%");$j("#studyTipsHolder").delay(500).animate({marginLeft:"-160px"},300);$j("#iskids").text("0");});$j("#getBook").click(function(){var studyTipAlertTop=$j("#studyTipsArea").position().top+28;var studyTipAlertLeft=$j("#studyTipsArea").position().left-293;$j("#studyTipsFormAlert").css("top",studyTipAlertTop+"px");$j("#studyTipsFormAlert").css("left",studyTipAlertLeft+"px");var checkEmail=$j("#studyTipsEmail");var emailFormat=/([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)\.([0-9a-zA-Z_-]+)/;var formEmail=checkEmail.val();if(!emailFormat.test(formEmail)){$j("#studyTipsFormAlert").show();$j("#studyTipsFormEmailAlert").show();}else{$j("#studyTipsFormEmailAlert").hide();};var checkCity=$j("#studyTipsCity");var checkCityValue=$j("#studyTipsCityValue");if(checkCityValue.text()=="0"){$j("#studyTipsFormAlert").show();$j("#studyTipsFormCityAlert").show();}else{checkCity.parent().removeClass("inputAlert");$j("#studyTipsFormCityAlert").hide();};if(emailFormat.test(formEmail)&&$j("#studyTipsCityValue").text()!="0"){$j.ajax({type:"POST",contentType:"application/json",url:"/englishfirst/_webservice/Studytips.asmx/StudyTipsSave",data:"{'countryCode':'"+countryCode+"', 'iskids':'"+$j("#iskids").text()+"', 'email':'"+$j("#studyTipsEmail").val()+"', 'cityvalue':'"+$j("#studyTipsCityValue").text()+"'}"});$j("#studyTipsFormAlert").hide();$j("#studyTipsFrame2").delay(500).animate({marginLeft:"-160px"},300);};});}
function changeDropValue(obj,value,label){var spanObj=$j(obj).parents(".formDropdown").prev().find("span");var liText='';if(label==undefined){liText=$j(obj).text();}
else{liText=label;}
var liValue=value;spanObj.text(liText);$j(obj).parents(".formDropdown").prev().find("input.hiddenValue").val(liValue);$j(obj).parents(".formDropdown").prev().find("input.hiddenLabel").val(liText);$j('.modified').attr('value','true');}
function InitCityItems(dropObj){var cityItems="";var i;for(i=0;i<jsonRaw.TopCities.length;i++){cityItems+="<li class='lipopupFormCity' onclick=\"changeDropValue(this,'T;"+i+"')\">"+jsonRaw.TopCities[i].t+"</li>";}
for(i=0;i<jsonRaw.CityInfos.length;i++){if(cityCode==jsonRaw.CityInfos[i].v){dropObj.prev().find("span").text(jsonRaw.CityInfos[i].t);dropObj.prev().find("input.hiddenValue").val("C;"+i);dropObj.prev().find("input.hiddenLabel").val(jsonRaw.CityInfos[i].t);cityItems+="<li class='lipopupFormCity formDorpdownSelect' onclick=\"changeDropValue(this,'C;"+i+"')\">"+jsonRaw.CityInfos[i].t+"</li>";}
else{cityItems+="<li class='lipopupFormCity' onclick=\"changeDropValue(this,'C;"+i+"')\">"+jsonRaw.CityInfos[i].t+"</li>";}}
if(cityItems!=""){cityItems+="<li class='lipopupFormCity' onclick=\"changeDropValue(this,'O;"+etownHome+"')\">"+etownOpt+"</li>";cityItems="<ul>"+cityItems+"</ul>";}
else{return;}
dropObj.html(cityItems);}
function GetSchoolsByCity(cityListDiv,schoolListDiv,courseListDiv){$j("#"+cityListDiv.valueOf()+" ul li").bind("click",{cityObj:cityListDiv,schoolObj:schoolListDiv,courseObj:courseListDiv},loadSchoolItem);$j("#"+courseListDiv.valueOf()+" ul li").bind("click",{cityObj:cityListDiv,schoolObj:schoolListDiv,courseObj:courseListDiv},loadSchoolItem);}
function initSchoolItem(cityListDiv,schoolListDiv,courseListDiv){$j("#"+schoolListDiv.valueOf()+" ul").parents(".formDropdown").prev().find("input.hiddenValue").val("");var regexOwnCity=new RegExp(regOwnCity);var regexAdultCourse=new RegExp(regAdultCourse);var regexCLTCourse=new RegExp(regCLTCourse);var isOwnCityCode=false;var isCLTCourse=false;var isAdultCourse=false;var schoolType;var schoolObj=$j("#"+schoolListDiv.valueOf());var cityValue=$j("#"+cityListDiv.valueOf()+" ul").parents(".formDropdown").prev().find("input.hiddenValue").val();var cityInfo;var courseCode=$j("#"+courseListDiv.valueOf()+" ul").parents(".formDropdown").prev().find("input.hiddenValue").val();if(cityValue!=""&&courseCode!=""){var cityCodeArr=cityValue.split(";");if(cityCodeArr[0]=="T"){cityInfo=jsonRaw.TopCities[parseInt(cityCodeArr[1])];}
else if(cityCodeArr[0]=="C"){cityInfo=jsonRaw.CityInfos[parseInt(cityCodeArr[1])];}
else if(cityValue.indexOf(",")>0){cityCodeArr=cityValue.split(";");var cityItem;var schoolItems="";for(var t=0;t<cityCodeArr.length-1;t++){cityItem=cityCodeArr[t].split(",");schoolItems+="<li class='lipopupFormSchool' onclick=\"changeDropValue(this,'"+cityItem[0]+"')\">"+cityItem[1]+"</li>";}
if(schoolItems!=""){schoolObj.html("<ul>"+schoolItems+"</ul>");$j("#"+schoolObj.parents().attr("id")).css({display:'block'});}
return;}
else{$j("#"+schoolObj.parents().attr("id")).css({display:'none'});return;}
var cityCode=cityInfo.v.replace("#","");if(regexOwnCity.exec(cityCode)){isOwnCityCode=true;if(regexAdultCourse.exec(courseCode)){isAdultCourse=true;schoolObj.prev().find("span").text(adultsSchoolsOpt);}else{schoolObj.prev().find("span").text(kidsSchoolsOpt);}}else{schoolObj.prev().find("span").text(allSchoolsOpt);}
if(regexCLTCourse.exec(courseCode)){isCLTCourse=true;$j("#"+schoolObj.parents().attr("id")).css({display:'none'});$j("#popupGetFreeClass").css("padding-bottom",60);if(cityInfo!=null&&cityInfo.s.length>0){$j("#"+schoolListDiv.valueOf()+" ul").parents(".formDropdown").prev().find("input.hiddenValue").val(cityInfo.s[0].v);}}
else{$j("#popupGetFreeClass").css("padding-bottom",0);$j("#"+schoolObj.parents().attr("id")).css({display:'block'});}
var schoolItems="";if(cityInfo.s==null)
{schoolItems+="<li class='lipopupFormSchool' onclick=\"changeDropValue(this,'"+cityInfo.v+"')\">"+cityInfo.t+"</li>";}
else{for(var j=0;j<cityInfo.s.length;j++){schoolType=cityInfo.s[j].c;if(schoolType==2||(schoolType==1&&!isAdultCourse)||(schoolType==3&&isAdultCourse)){schoolItems+="<li class='lipopupFormSchool' onclick=\"changeDropValue(this,'"+cityInfo.s[j].v+"')\">"+cityInfo.s[j].t+"</li>";}}}
if(schoolItems!=""){schoolItems="<ul>"+schoolItems+"</ul>"}
schoolObj.html(schoolItems);if(browserIE6&&schoolObj.attr("id")=="rightFormSchoolDropdown"){$j("#rightFormFreeclass .getFreeClass").css("top",$j("#rightFormFreeclass").css("top"));$j("#rightFormPrivacy").css("top",$j("#rightFormFreeclass").css("top"));}}}
function loadSchoolItem(event){if($j(this).text().indexOf("----")<0){var eData=event.data;var courseListDiv=eData.courseObj;var schoolListDiv=eData.schoolObj;var cityListDiv=eData.cityObj;initSchoolItem(cityListDiv,schoolListDiv,courseListDiv);}}
function currentMainNav(topWidth,arrTop){var currentAge=$j(".mainNavItems").eq(navAge-1);var navLeft=currentAge.position().left+30+currentAge.width()/2;var navTop=currentAge.position().top+arrTop;currentAge.addClass("blueText");if(currentProduction){var currItemWidth=currentProduction.width();if(currentAge.position().left+currentAge.width()+currItemWidth/2<=topWidth){currentProduction.slideDown().css({"top":navTop+"px","left":navLeft-currItemWidth/2+"px"});}else{currentProduction.slideDown().css({"top":navTop+"px","left":topWidth-currItemWidth+"px"});}
$j("#secondNavArrow").show().css({"top":navTop+"px","left":navLeft+"px"});if(navProduction!=0){currentProduction.find("a").eq(navProduction-1).addClass("blueText");};};}
function hoverMainNav(topWidth,arrTop){$j("#mainNav a").mouseover(function(){var navNumber=$j(this).prevAll().size();if((!isOwnCity&&navNumber>0)||(isOwnCity&&navNumber>1)){var relatedSecondNav=$j(".secondNav").eq(navNumber-1);}else{var relatedSecondNav=false;}
var navLeft=$j(this).position().left+30+$j(this).width()/2;var navTop=$j(this).position().top+arrTop;if(!$j(this).hasClass("blueText")){$j(".blueText").removeClass("blueText");$j(".secondNav").not(relatedSecondNav).slideUp();if(relatedSecondNav){var selItemWidth=relatedSecondNav.width();if($j(this).position().left+$j(this).width()+selItemWidth/2<=topWidth){relatedSecondNav.slideDown().css({"top":navTop+"px","left":navLeft-selItemWidth/2+"px"});}else{relatedSecondNav.slideDown().css({"top":navTop+"px","left":topWidth-selItemWidth+"px"});};$j("#secondNavArrow").show().css({"top":navTop+"px","left":navLeft+"px"});}else{$j("#secondNavArrow").hide();};};});$j("#mainNavHolder").hover(function(){},function(){$j(".secondNav").not(currentProduction).slideUp();$j("#secondNavArrow").hide();});}
function initNavigation(){if($j(".secondNavMiddle").length>0){$j(".secondNavMiddle a:first-child").css({"background-image":"none","padding":"0"});$j(".secondNavMiddle a").css("margin","0");var topWidth=972;var arrTop=18;if((!isOwnCity&&navAge>1)||(isOwnCity&&navAge>2)){currentProduction=$j(".secondNav").eq(navAge-2);}else{currentProduction=false;}
if(navAge!=0){currentMainNav(topWidth,arrTop);hoverMainNav(topWidth,arrTop);$j("#mainNavHolder").hover(function(){},function(){currentMainNav(topWidth,arrTop);});}else{$j("#secondNavArrow").hide();navProduction=0;currentProduction=$j(".blueText");hoverMainNav(topWidth,arrTop);}}
if($j(".middleNav").length>0){$j(".middleNavRightBG").width($j("#middleNavSchools").width()+18);}}
function initNavigationParas(adultLnk){if($j('#navAdult').attr("href")!=adultLnk){$j('#navAdult').attr("href",adultLnk);}
if((!isOwnCity&&navAge>1)||(isOwnCity&&navAge>2)){currentProduction=$j(".secondNav").eq(navAge-2);}else{currentProduction=false;}}
function loadPhoneNumPop(returnValue){if($j('#popupsPhoneNum').html().trim()==""){$j('#popupsPhoneNum').html(returnValue.d);$j('#popupsPhoneNum .closePop').click(function(){closePopup();});}
showPopup('#popupsPhoneNum');}

$j(document).ready(function(){$j('#popupPlaceholder').load('http://www.ef.com.cn/englishfirst/popups/contactus.aspx',{"age":navAge,"showPicker":showPicker});checkBrowser();initCityPopup();initNavigation();loadSubTabs();loadTopRotator();if($j("#studyTipsArea").length>0){StudyTips();}
if($j("#rightFormCityDropdown").length>0){InitCityItems($j("#rightFormCityDropdown"));GetSchoolsByCity("rightFormCityDropdown","rightFormSchoolDropdown","rightFormCourseDropdown");if($j("#ConfirmationForm").length<=0){initSchoolItem("rightFormCityDropdown","rightFormSchoolDropdown","rightFormCourseDropdown")}}
var rotatorFolder=jQuery('.topRotator > div').attr("id");jQuery('.topRotator  #topSlide0').css('background-image','url('+rotatorBaseUrl+rotatorFolder+'_'+marketCode+'/photo_0.jpg'+')');jQuery('.topRotator  #topSlide1').delay(1000).css('background-image','url('+rotatorBaseUrl+rotatorFolder+'_'+marketCode+'/photo_1.jpg'+')');jQuery('.topRotator  #topSlide2').delay(2000).css('background-image','url('+rotatorBaseUrl+rotatorFolder+'_'+marketCode+'/photo_2.jpg'+')');jQuery('.topRotator  #topSlide3').delay(3000).css('background-image','url('+rotatorBaseUrl+rotatorFolder+'_'+marketCode+'/photo_3.jpg'+')');$j('#ConfirmationForm').change(function(){$j('.modified').attr('value','true');});if($j("#phoneNumTrigger").length>0){$j('#popupsPhoneNum').dialog({autoOpen:false,width:850,modal:true,resizable:false,draggable:false});$j('#phoneNumTrigger').click(function(){sp_callWebSvc("PhonePopContent.asmx/GetPhoneNumPopContent","{}",loadPhoneNumPop);});}});

/**** /englishfirst/_scripts/jquery/lavalamp.min.js ****/
/*LavaLamp 1.3.3 plugin for jQuery 1.3.2 or higher Copyright (c) 2008, 2009 Jolyon Terwilliger, jolyon@nixbox.com http://nixboxdesigns.com/demos/jquery-lavalamp.php*/
(function(b){b.fn.lavaLamp=function(a){a=b.extend({fx:"swing",speed:500,click:function(){return true},startItem:"no",autoReturn:true,returnDelay:0,setOnClick:true,homeTop:0,homeLeft:0,homeWidth:0,homeHeight:0,returnHome:false},a||{});var g;if(a.homeTop||a.homeLeft){g=b('<li class="homeLava selectedLava"></li>').css({left:a.homeLeft,top:a.homeTop,width:a.homeWidth,height:a.homeHeight,position:"absolute"});b(this).prepend(g)}return this.each(function(){function h(d){d||(d=c);var k=0,l=0;if(!b.browser.msie){k=
(e.outerWidth()-e.innerWidth())/2;l=(e.outerHeight()-e.innerHeight())/2}e.stop().animate({left:d.offsetLeft-k,top:d.offsetTop-l,width:d.offsetWidth,height:d.offsetHeight},a.speed,a.fx)}var m=location.pathname+location.search+location.hash,f={},i,e,c,j=b("li[class!=noLava]",this);if(a.startItem=="no")f=b('li a[href$="'+m+'"]',this).parent("li");if(f.length==0&&a.startItem=="no")f=b('li a[href$="'+location.pathname.substring(location.pathname.lastIndexOf("/")+1)+location.search+location.hash+'"]',this).parent("li");
if(f.length==0||a.startItem!="no"){if(a.startItem=="no")a.startItem=0;f=b(j[a.startItem])}c=b("li.selectedLava",this)[0]||b(f).addClass("selectedLava")[0];j.mouseenter(function(){if(b(this).hasClass("homeLava"))c=b(this)[0];h(this)});e=b('<li class="backLava"><div class="leftLava"></div><div class="bottomLava"></div><div class="cornerLava"></div></li>').appendTo(this);b(this).mouseleave(function(){if(a.autoReturn)if(a.returnHome&&g)h(g[0]);else if(a.returnDelay){i&&clearTimeout(i);i=setTimeout(function(){h(null)},
a.returnDelay+a.speed)}else h(null)});j.click(function(d){if(a.setOnClick){b(c).removeClass("selectedLava");b(this).addClass("selectedLava");c=this}return a.click.apply(this,[d,this])});a.homeTop||a.homeLeft?e.css({left:a.homeLeft,top:a.homeTop,width:a.homeWidth,height:a.homeHeight}):e.css({left:c.offsetLeft,top:c.offsetTop,width:c.offsetWidth,height:c.offsetHeight})})}})(jQuery);
/**** /englishfirst/_scripts/controls/innerfade.js ****/

var settings;var elements;var last;var initmeter;var seltimeout=50000;var tabdescs;(function($j){$j.fn.innerfade=function(options){return this.each(function(){$j.innerfade(this,options);});};$j.innerfade=function(container,options){settings={'speed':1000,'timeout':100,'product':'','containerheight':'auto','frameiheight':66,'children':null};if(options)
$j.extend(settings,options);last=0;if(settings.product!=$j.cookie('tabproduct')){$j.cookie('tabproduct',settings.product);}else if($j.cookie('rttabid')>=0){last=parseInt($j.cookie('rttabid'));}
if(options)
$j.extend(settings,options);if(settings.children===null)
elements=$j(container).children();else
elements=$j(container).children(settings.children);tabdescs=$j('#rttabdesc').children();if(elements.length>1){$j(container).css('position','relative').css('height',settings.containerheight);for(var i=0;i<elements.length;i++){$j(elements[i]).css('z-index',String(elements.length-i)).css('position','absolute').hide();};$j('.topTabItemBg').not('#topTabItemBg'+last).fadeOut(settings.speed);var next=(last+1)%elements.length;$j(elements[last]).show();initmeter=setTimeout(function(){$j.innerfade.next(elements,settings,next,last);},settings.timeout);}
var topAdjuster=12;if(browserIE6){topAdjuster=23;}
$j('#tabHoverFrame').css({display:'none'});$j('.topTabItem').hover(function(){$j('#tabHoverFrame').css({display:'block',top:($j(this).offset().top-settings.frameiheight-topAdjuster)});},function(){$j('#tabHoverFrame').css({display:'none'});});};$j.innerfade.next=function(elements,settings,nextid,currentid){clearTimeout(initmeter);$j(elements[currentid]).fadeOut(settings.speed);$j(elements[nextid]).fadeIn(settings.speed,function(){$j.innerfade.removeFilter($j(this)[0]);});$j('.topTabItemBg').not('#topTabItemBg'+nextid).fadeOut(settings.speed);$j('#topTabItemBg'+nextid).fadeIn(settings.speed);$j.cookie('rttabid',nextid);var lastid;if((nextid+1)<elements.length){nextid=nextid+1;lastid=nextid-1;}
else{nextid=0;lastid=elements.length-1;}
last=lastid;initmeter=setTimeout((function(){$j.innerfade.next(elements,settings,nextid,lastid);}),settings.timeout);};$j.innerfade.removeFilter=function(element){if(element.style.removeAttribute){element.style.removeAttribute('filter');}}})(jQuery);function ShowRotatorTab(current){clearTimeout(initmeter);var ischange=false;if(last!=current){$j.innerfade.next(elements,settings,current,last);last=current;}
var next=(last+1)%elements.length;initmeter=setTimeout(function(){$j.innerfade.next(elements,settings,next,last);},seltimeout);}
function StopRotatorTab(){clearTimeout(initmeter);}
function StartRotatorTab(){var next=(last+1)%elements.length;$j.innerfade.next(elements,settings,next,last);}
/**** /englishfirst/_scripts/product.js ****/
var hasGallery = false; var hasMaterial = true; var timer = null; var offset = 5000; var index = 0; var galleryParams; function showVideoPopup(cacheSvr, videoName, popupId, holderId) { swfobject.embedSWF(cacheSvr + "/_imgs/englishfirst/product/video/flv_player.swf", holderId, "544", "337", "6", false, { filename: videoName + ".flv" }, { AllowScriptAccess: "always" }); showPopup(popupId); $j(popupId + ' .closePop').click(function () { swfobject.embedSWF(cacheSvr + "/_imgs/englishfirst/product/video/x.swf", holderId, "544", "337", "6", false); }); } function showKidsiLab(cacheSvr, languageCode) { swfobject.embedSWF(cacheSvr + "/_imgs/englishfirst/courses/kids/ss/pop/FrameworkContainer_" + languageCode + ".swf", "ilabVideo", "780", "430", "6", false, { AkamaiUrl: cacheSvr + "/_imgs/englishfirst/courses/kids/ss/pop/" }, { AllowScriptAccess: "always" }); showPopup('#popupssiLab'); $j('#popupssiLab .closePop').click(function () { swfobject.embedSWF(cacheSvr + "/_imgs/englishfirst/product/video/x.swf", "ilabVideo", "780", "430", "6", false, {}, { AllowScriptAccess: "always" }); }); } function getIndex(v) { for (var i = 0; i < target.length; i++) { if (target[i] == v) return i; } } function rechange(loop) { var id = 'popupGalleryTab' + target[loop]; $j('.popupGalleryTabs li a.current').removeClass('current'); $j('#' + id).addClass('current'); } function auto() { index++; if (index >= target.length) { index = 0; $j(".popupGalleryTabs").delay(200).animate({ marginLeft: "0px" }, 600); } rechange(index); slideImage(index); timer = window.setTimeout(auto, offset); } function slideImage(i) { var id = 'galleryPic' + target[i]; $j('#' + id).animate({ opacity: 1 }, 800, function () { $j(this).find('.galleryPicAnnotate').animate({ opacity: 1 }, 'fast'); }).show().siblings(':visible').find('.galleryPicAnnotate').animate({ opacity: 1 }, 'fast', function () { $j(this).parent().animate({ opacity: 0 }, 800).hide(); }); } function initGalleryViewer() { $j(".pageGalleryArrowLeft a").click(function () { var pageGalleryMargin = parseInt($j(".pageGalleryTabs").css("margin-left")); pageGalleryMargin += 101; $j(".pageGalleryTabs").delay(200).animate({ marginLeft: pageGalleryMargin + "px" }, 300); $j(".pageGalleryArrowRight a").delay(400).css("display", "block"); if ((pageGalleryMargin + 101) > 0) { $j(".pageGalleryArrowLeft a").delay(400).css("display", "none"); } }); $j(".pageGalleryArrowRight a").click(function () { var pageGalleryMargin = parseInt($j(".pageGalleryTabs").css("margin-left")); if (ImageQuantity < 6) { $j(".pageGalleryArrowRight a").css("display", "none"); } pageGalleryMargin -= 101; $j(".pageGalleryTabs").delay(200).animate({ marginLeft: pageGalleryMargin + "px" }, 300); $j(".pageGalleryArrowLeft a").delay(400).css("display", "block"); if (((ImageQuantity - 1) * 101 + pageGalleryMargin) <= 0) { $j(".pageGalleryArrowRight a").delay(400).css("display", "none"); } }); } function initGalleryEvent() { var showMode = "scale"; if (browserIE6) { showMode = "blind"; } $j('#galleryPopups').dialog({ autoOpen: false, width: 568, modal: true, resizable: false, draggable: true, show: showMode }); function arrowLeft() { var popupGalleryMargin = parseInt($j(".popupGalleryTabs").css("margin-left")); popupGalleryMargin += 53; if (popupGalleryMargin >= 0) { popupGalleryMargin = 0; $j(".popupGalleryArrowLeft a").delay(400).css("display", "none"); }; $j(".popupGalleryTabs").delay(200).animate({ marginLeft: popupGalleryMargin + "px" }, 300); $j(".popupGalleryArrowRight a").delay(400).css("display", "block"); }; function arrowRight() { var popupGalleryMargin = parseInt($j(".popupGalleryTabs").css("margin-left")); if (ImageQuantity < 10) { $j(".popupGalleryArrowRight a").css("display", "none"); } popupGalleryMargin -= 53; if (((ImageQuantity - 9) * 53 + popupGalleryMargin) <= 0) { popupGalleryMargin = (ImageQuantity - 9) * (-53); $j(".popupGalleryArrowRight a").delay(400).css("display", "none"); } $j(".popupGalleryTabs").delay(200).animate({ marginLeft: popupGalleryMargin + "px" }, 300); $j(".popupGalleryArrowLeft a").delay(400).css("display", "block"); }; function hookThumb() { $j('.popupGalleryTabs li a').bind('click', function () { if (timer) { clearTimeout(timer); } var id = this.id; index = getIndex(id.substr(15)); rechange(index); slideImage(index); this.blur(); return false; }); } function hookBtn() { $j('div').filter('.popupGalleryNext, .popupGalleryPrevious').bind('click', function () { if (timer) { clearTimeout(timer); } if ($j(this).hasClass("popupGalleryPrevious")) { index--; if (index < 0) { index = target.length - 1; if (ImageQuantity > 9) { $j(".popupGalleryTabs").delay(200).animate({ marginLeft: (ImageQuantity - 9) * (-53) + "px" }, 600); } } } else { index++; if (index >= target.length) { index = 0; $j(".popupGalleryTabs").delay(200).animate({ marginLeft: "0px" }, 600); } } rechange(index); slideImage(index); }); }; $j(function () { $j('div.galleryPicAnnotate').css({ opacity: 0.85 }); auto(); hookThumb(); hookBtn(); }); $j(".popupGalleryArrowLeft a").click(function () { arrowLeft(); }); $j(".popupGalleryArrowRight a").click(function () { arrowRight(); }); $j(".popupImageRight").hover(function () { $j(".popupGalleryNext").animate({ opacity: 1 }, 500); }, function () { $j(".popupGalleryNext").animate({ opacity: 0 }, 500); }); $j(".popupImageLeft").hover(function () { $j(".popupGalleryPrevious").animate({ opacity: 1 }, 500); }, function () { $j(".popupGalleryPrevious").animate({ opacity: 0 }, 500); }); $j('.closePop').click(function () { closePopup(); }); showGalleryPopup(); } function showGalleryPopup() { hideScrollBar(); $j(".galleryPic").animate({ opacity: 0 }, 0); $j('#galleryPopups').dialog('open'); if (timer) { clearTimeout(timer); } rechange(index); slideImage(index); timer = window.setTimeout(auto, offset); this.blur(); var popupPage = Math.floor(index / 9); $j(".popupGalleryTabs").css("margin-left", popupPage * (-477) + "px"); if (popupPage == 0) { $j(".popupGalleryArrowLeft a").css("display", "none"); } else { $j(".popupGalleryArrowLeft a").css("display", "block"); } if (popupPage == Math.floor(ImageQuantity / 9)) { $j(".popupGalleryArrowRight a").css("display", "none"); } else { $j(".popupGalleryArrowRight a").css("display", "block"); } $j(window).resize(function () { popupPosition(); }); return false; } function initGalleryPopup() { initGalleryEvent(); } function loadSchoolGallery(returnValue) { $j('#schoolGallery').html(returnValue.d); initGalleryPopup(); } function loadClubGallery(returnValue) { $j('#clubGallery').html(returnValue.d); initGalleryPopup(); } function loadMaterial(returnValue) { $j('#popupBook').html(returnValue.d); hasMaterial = true; showPopup('#popupBook'); $j('#popupBook .closePop').click(function () { closePopup(); }); } $j(document).ready(function () { $j('#studentSlider').tabs({ selected: 0 }); var STtabQuantity = $j(".TSslider").children("div").size(); if (STtabQuantity <= 3) { $j(".TSsliderArrowRight").css("display", "none"); } $j(".TSsliderArrowRight").click(function () { var sliderMargin = parseInt($j(".TSsliderTabs").css("margin-left")); sliderMargin -= 178; $j(".TSsliderTabs").delay(400).animate({ marginLeft: sliderMargin + "px" }, 300); $j(".TSsliderArrowLeft").css("display", "block"); if (((STtabQuantity - 3) * 178 + sliderMargin) <= 0) { $j(this).delay(400).css("display", "none"); } }); $j(".TSsliderArrowLeft").click(function () { var sliderMargin = parseInt($j(".TSsliderTabs").css("margin-left")); sliderMargin += 178; $j(".TSsliderTabs").delay(400).animate({ marginLeft: sliderMargin + "px" }, 300); $j(".TSsliderArrowRight").delay(400).css("display", "block"); if (sliderMargin >= 0) { $j(this).delay(400).css("display", "none"); } }); }); $j(function () { $j('#popupVideo').dialog({ autoOpen: false, width: 590, modal: true, resizable: false, draggable: false }); $j('#popupiLab').dialog({ autoOpen: false, width: 590, modal: true, resizable: false, draggable: false }); $j('#popupssiLab').dialog({ autoOpen: false, width: 850, modal: true, resizable: false, draggable: false }); $j('#popupBook').dialog({ autoOpen: false, width: 745, modal: true, resizable: false, draggable: false }); $j('#bookTrigger').click(function () { var popParams = "{ 'marketCode':'" + countryCode + "', 'languageCode':'" + languageCode + "' }"; sp_callWebSvc("ProductPopContent.asmx/GetKidsMaterials", popParams, loadMaterial); }); $j('#popupBusiness').dialog({ autoOpen: false, width: 590, modal: true, resizable: false, draggable: false }); $j('#businessTrigger').click(function () { showPopup('#popupBusiness'); }); $j('#popupGeneral').dialog({ autoOpen: false, width: 590, modal: true, resizable: false, draggable: false }); $j('#generalTrigger').click(function () { showPopup('#popupGeneral'); }); $j('#popupJob').dialog({ autoOpen: false, width: 590, modal: true, resizable: false, draggable: false }); $j('#jobTrigger').click(function () { showPopup('#popupJob'); }); $j('#popupMoreInfo').dialog({ autoOpen: false, width: 590, modal: true, resizable: false, draggable: false }); $j('#moreInfoTrigger').click(function () { showPopup('#popupMoreInfo'); }); if ($j('#schoolGallery').length > 0) { initGalleryViewer(); $j('.galleryPicM').bind('click', function () { index = $j(this).parents(".pageGalleryTabs li").prevAll().size(); if (hasGallery) { showGalleryPopup(); } else { sp_callWebSvc("PhotoGallery.asmx/GetSchoolGalleryHtml", galleryParams, loadSchoolGallery); hasGallery = true; } }); } else if ($j('#clubGallery').length > 0) { $j('#galleryTrigger').bind('click', function () { index = 0; if (hasGallery) { showGalleryPopup(); } else { sp_callWebSvc("PhotoGallery.asmx/GetLifeClubGalleryHtml", galleryParams, loadClubGallery); hasGallery = true; } }); } if ($j("#productBoxAcc").length > 0) { $j(function () { $j("#productBoxAcc").accordion({ header: "a.productBoxAccHead" }); }); $j(".productBoxAccHead:not(:last)").click(function () { $j("#lastShadow").show(); }); $j(".productBoxAccHead:last").click(function () { $j("#lastShadow").hide(); }); } });
/**** /englishfirst/_scripts/controls/leadsform.js ****/

var allSchoolsOpt;var kidsSchoolsOpt="";var adultsSchoolsOpt="";var firstNameErr;var lastNameErr;var phoneErr;var emailErr;var courseErr;var cityErr;var schoolErr;var regAdultCourse;var regCLTCourse;var regOwnCity;var isValidLead=true;var btnImgPath;$j(function(){if(browserIE6){$j('#popupPlaceholder').dialog({autoOpen:false,width:934,height:'auto',maxHeight:560,modal:true,resizable:false});}else{$j('#popupPlaceholder').dialog({autoOpen:false,width:934,maxHeight:560,modal:true,resizable:false,show:'scale'});}
function popForm(){$j('.closeForm').click(function(){$j('.popupForm').dialog('close');var scrollTop=document.documentElement.scrollTop||window.pageYOffset||document.body.scrollTop;$j("html").css("overflow","scroll");if(browserFF){$j(document).scrollTop(scrollTop);}
$j("body").removeClass("bodyMove");$j(".show").removeClass("show");$j(".noBGImage").removeClass("noBGImage");});if($j("#popupFormCityDropdown").length>0){InitCityItems($j("#popupFormCityDropdown"));GetSchoolsByCity("popupFormCityDropdown","popupFormSchoolDropdown","popupFormCourseDropdown");initSchoolItem("popupFormCityDropdown","popupFormSchoolDropdown","popupFormCourseDropdown");}
hideScrollBar();$j("body").addClass("bodyMove");$j('#popupPlaceholder').dialog('open');$j("#formAlert").hide();$j("#lineCover").hide();$j(".inputAlert").removeClass("inputAlert");$j(window).resize(function(){popupPosition();});}
function initCommentArea(hasComment,formType){if(hasComment){$j(".formLeftTitleQuestion, #popupFormQuestion, .questionFormLeftContent").addClass("show");$j("#formRight").addClass("noBGImage");$j("#btnPromotion").hide();$j("#btnContact").show();}else{$j(".formLeftTitleNormal, .mainFormLeftContent").addClass("show");$j("#btnContact").hide();$j("#btnPromotion").show();}
$j(".formType").val(formType);}
function initFormLayout(){if($j("#popupTextboxHolderSchool").css("display")=="none"){$j("#popupGetFreeClass").css("padding-bottom",60);}
else{$j("#popupGetFreeClass").css("padding-bottom",0);}
var schoolHeightAdjuster=44;$j("#popupFormMidline").height($j("#formRight").outerHeight()-schoolHeightAdjuster);$j("#formLeftText").height($j("#popupFormMidline").height()-$j("#formLeftTitle").height()+12);}
$j('.formPopupTrigger').click(function(){popForm();initCommentArea(true,"c");initFormLayout();initErrorMsg();return false;});$j('.trialPopupTrigger').click(function(){$j('#popupPlaceholder').show();popForm();initCommentArea(false,"p");initFormLayout();initErrorMsg();return false;});$j('.closeForm').click(function(){$j('.popupForm').dialog('close');var scrollTop=document.documentElement.scrollTop||window.pageYOffset||document.body.scrollTop;$j("html").css("overflow","scroll");if(browserFF){$j(document).scrollTop(scrollTop);}
$j("body").removeClass("bodyMove");$j(".show").removeClass("show");$j(".noBGImage").removeClass("noBGImage");});$j(".popupFormTipIcon").live("mouseover",function(){var tipboxCurrent=$j(this).next();tipboxCurrent.slideDown("200");var TipTop=$j(this).position().top-tipboxCurrent.find(".popupFormTipContent").height()-45;var TipLeft=$j(this).position().left-288;tipboxCurrent.css("top",TipTop+"px");tipboxCurrent.css("left",TipLeft+"px");});$j(".popupFormTipIcon").live("mouseout",function(){$j(".popupFormTipbox").slideUp("100");});$j(".formDropdown li").live("mouseover",function(){if($j(this).text().indexOf("----")<0){$j(this).addClass("formDorpdownHover");}});$j(".formDropdown li").live("mouseout",function(){$j(this).removeClass("formDorpdownHover");});$j(".formDropdownTrigger").live("click",function(){var dropdownCurrent=$j(this).next();var dropdownTop;var dropdownLeft;if($j(this).parents("form").attr("id")=="mainForm"){dropdownTop=$j(this).position().top+37;dropdownLeft=$j(this).position().left+6;}else{if(dropdownCurrent.attr("id")=="rightFormSchoolDropdown"){dropdownTop=$j(this).position().top+30;dropdownLeft=$j(this).position().left+10;}else{dropdownTop=$j(this).position().top+39;dropdownLeft=$j(this).position().left+9;}}
$j(".formDropdown").not(dropdownCurrent).slideUp("200");dropdownCurrent.css("top",dropdownTop+"px");dropdownCurrent.css("left",dropdownLeft+"px");dropdownCurrent.slideToggle("200");return false;});$j(".formDropdown li").live("click",function(){if($j(this).text().indexOf("----")<0){$j(this).removeClass("formDorpdownHover");$j("li[class*='formDorpdownSelect']").not($j(this)).removeClass("formDorpdownSelect");$j(this).addClass("formDorpdownSelect");$j(".formDropdown").delay(200).slideUp("200");}});$j("div").live("click",function(){});$j(".getFreeClass").live("click",function(){var formid=$j(this).parents("form").attr("id");var isConfirm=false;var checkCityValue=$j(this).parents("form").find(".formCityValue");var cityCodeArr=checkCityValue.val().split(";");if(cityCodeArr[0]=="O"){window.open(cityCodeArr[1]);return;}
initErrorMsg();var nameFormat=/^[^\d\!\@\#\$\%\^\&\*\(\)\+\=\\\|\}\{\]\[\"\:\;\<\>\/\?]+$/;var phoneFormat=/^([0-9]|[.() ]|[-]){7,20}$/;var emailFormat=/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;var checkName=$j(this).parents("form").find(".formName");var nameVal=checkName.val();validateField(checkName,"#alertName",!nameFormat.test(nameVal));var checkSurname=$j(this).parents("form").find(".formSurname")
var surnameVal=checkSurname.val();validateField(checkSurname,"#alertSurname",!nameFormat.test(surnameVal));var checkPhone=$j(this).parents("form").find(".formPhone");var phoneVal=checkPhone.val();validateField(checkPhone,"#alertPhone",!phoneFormat.test(phoneVal));var checkEmail=$j(this).parents("form").find(".formEmail");var formEmail=checkEmail.val();validateField(checkEmail,"#alertEmail",!emailFormat.test(formEmail));var checkCourse=$j(this).parents("form").find(".formCourse");var checkCourseValue=$j(this).parents("form").find(".formCourseValue");var formCourse=$j.trim(checkCourseValue.val());validateField(checkCourse,"#alertCourse",formCourse=="");var checkCity=$j(this).parents("form").find(".formCity");validateField(checkCity,"#alertCity",$j.trim(checkCityValue.val())=="");var checkSchool=$j(this).parents("form").find(".formSchool");var checkSchoolValue=$j(this).parents("form").find(".formSchoolValue");var formSchool=$j.trim(checkSchoolValue.val());validateField(checkSchool,"#alertSchool",formSchool=="");$j(".formPopupTrigger，.formPopupTrigger").click(function(){$j("#formAlertTop").removeClass("validationBlue");$j("#formAlertMiddle").removeClass("validationBlue");$j("#formAlertBottom").removeClass("validationBlue");$j("#formAlert").hide();$j("#lineCover").hide();$j("#formAlertTop, #formAlertBottom").hide();$j(".inputAlert").removeClass("inputAlert");});$j(".closeFormIcon").live("click",function(){$j("#formAlert, #formAlert p").hide();$j("#formAlertTop, #formAlertBottom").hide();});if($j("#ConfirmationForm").length>0){$j("#ConfirmationForm").closest("form").attr("action","/englishfirst/contact/success.aspx");isConfirm=true;}
else if($j('#popupPlaceholder').length>0){var isOwnCity=false;var regexOwnCity=new RegExp(regOwnCity);if(regexOwnCity.exec(formSchool)){isOwnCity=true;}
var isAdultCourse=false;var regexAdultCourse=new RegExp(regAdultCourse);if(regexAdultCourse.exec(formCourse)){isAdultCourse=true;}
if(isOwnCity){if(isAdultCourse){$j(this).parents("form").attr("action","/englishfirst/contact/thankyou.aspx?group=adults");}else{$j(this).parents("form").attr("action","/englishfirst/contact/thankyou.aspx?group=kt");}}
else{$j(this).parents("form").attr("action","/englishfirst/contact/thankyou.aspx?group=cities");}}
else if($j(this).parents("form").attr("action")!="thankyou.aspx"){$j(this).parents("form").attr("action","/englishfirst/contact/thankyou.aspx");}
if(isValidLead){if(!isConfirm){$j("#formAlert").hide();$j("#lineCover").hide();}
$j("#"+formid).submit();}
else{showErrorMsg(this,formid,isConfirm);}});if(typeof String.prototype.trim!=='function'){String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,'');}}
function initErrorMsg(){isValidLead=true;if($j("#alertName").text().trim()==""){$j("#alertName").text(firstNameErr);$j("#alertSurname").text(lastNameErr);$j("#alertEmail").text(emailErr);$j("#alertPhone").text(phoneErr);$j("#alertCourse").text(courseErr);$j("#alertCity").text(cityErr);$j("#alertSchool").text(schoolErr);}}
function showErrorMsg(btnObj,formid,isConfirm){if(!isConfirm){$j("#formAlert").show();$j("#lineCover").show();$j("#formAlertTop, #formAlertBottom").show();var formAlertTop;var formAlertLeft;var formAlertHeight;var formAlertWidth;if(formid=="mainForm"){formAlertTop=$j(".popupForm").offset().top+135;formAlertLeft=$j(".popupForm").offset().left+274;$j("#formAlertTop").removeClass("validationBlue");$j("#formAlertMiddle").removeClass("validationBlue");$j("#formAlertBottom").removeClass("validationBlue");}else{formAlertTop=$j(btnObj).parents("#rightForm").offset().top;formAlertLeft=$j(btnObj).parents("#rightForm").offset().left-307;$j("#formAlertTop").addClass("validationBlue");$j("#formAlertMiddle").addClass("validationBlue");$j("#formAlertBottom").addClass("validationBlue");}
$j("#formAlert").css("top",formAlertTop+"px");$j("#formAlert").css("left",formAlertLeft+"px");}}
function validateField(validate,alter,check){if(check){validate.parent().addClass("inputAlert");$j(alter).show();isValidLead=false;}else{validate.parent().removeClass("inputAlert");$j(alter).hide();};}});
/**** /englishfirst/_scripts/swfobject.js ****/
/*!	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
	is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
*/

var swfobject = function() {
	
	var UNDEF = "undefined",
		OBJECT = "object",
		SHOCKWAVE_FLASH = "Shockwave Flash",
		SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash",
		FLASH_MIME_TYPE = "application/x-shockwave-flash",
		EXPRESS_INSTALL_ID = "SWFObjectExprInst",
		ON_READY_STATE_CHANGE = "onreadystatechange",
		
		win = window,
		doc = document,
		nav = navigator,
		
		plugin = false,
		domLoadFnArr = [main],
		regObjArr = [],
		objIdArr = [],
		listenersArr = [],
		storedAltContent,
		storedAltContentId,
		storedCallbackFn,
		storedCallbackObj,
		isDomLoaded = false,
		isExpressInstallActive = false,
		dynamicStylesheet,
		dynamicStylesheetMedia,
		autoHideShow = true,
	
	/* Centralized function for browser feature detection
		- User agent string detection is only used when no good alternative is possible
		- Is executed directly for optimal performance
	*/	
	ua = function() {
		var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF,
			u = nav.userAgent.toLowerCase(),
			p = nav.platform.toLowerCase(),
			windows = p ? /win/.test(p) : /win/.test(u),
			mac = p ? /mac/.test(p) : /mac/.test(u),
			webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // returns either the webkit version or false if not webkit
			ie = !+"\v1", // feature detection based on Andrea Giammarchi's solution: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html
			playerVersion = [0,0,0],
			d = null;
		if (typeof nav.plugins != UNDEF && typeof nav.plugins[SHOCKWAVE_FLASH] == OBJECT) {
			d = nav.plugins[SHOCKWAVE_FLASH].description;
			if (d && !(typeof nav.mimeTypes != UNDEF && nav.mimeTypes[FLASH_MIME_TYPE] && !nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { // navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin indicates whether plug-ins are enabled or disabled in Safari 3+
				plugin = true;
				ie = false; // cascaded feature detection for Internet Explorer
				d = d.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
				playerVersion[0] = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10);
				playerVersion[1] = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
				playerVersion[2] = /[a-zA-Z]/.test(d) ? parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0;
			}
		}
		else if (typeof win.ActiveXObject != UNDEF) {
			try {
				var a = new ActiveXObject(SHOCKWAVE_FLASH_AX);
				if (a) { // a will return null when ActiveX is disabled
					d = a.GetVariable("$version");
					if (d) {
						ie = true; // cascaded feature detection for Internet Explorer
						d = d.split(" ")[1].split(",");
						playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
					}
				}
			}
			catch(e) {}
		}
		return { w3:w3cdom, pv:playerVersion, wk:webkit, ie:ie, win:windows, mac:mac };
	}(),
	
	/* Cross-browser onDomLoad
		- Will fire an event as soon as the DOM of a web page is loaded
		- Internet Explorer workaround based on Diego Perini's solution: http://javascript.nwbox.com/IEContentLoaded/
		- Regular onload serves as fallback
	*/ 
	onDomLoad = function() {
		if (!ua.w3) { return; }
		if ((typeof doc.readyState != UNDEF && doc.readyState == "complete") || (typeof doc.readyState == UNDEF && (doc.getElementsByTagName("body")[0] || doc.body))) { // function is fired after onload, e.g. when script is inserted dynamically 
			callDomLoadFunctions();
		}
		if (!isDomLoaded) {
			if (typeof doc.addEventListener != UNDEF) {
				doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, false);
			}		
			if (ua.ie && ua.win) {
				doc.attachEvent(ON_READY_STATE_CHANGE, function() {
					if (doc.readyState == "complete") {
						doc.detachEvent(ON_READY_STATE_CHANGE, arguments.callee);
						callDomLoadFunctions();
					}
				});
				if (win == top) { // if not inside an iframe
					(function(){
						if (isDomLoaded) { return; }
						try {
							doc.documentElement.doScroll("left");
						}
						catch(e) {
							setTimeout(arguments.callee, 0);
							return;
						}
						callDomLoadFunctions();
					})();
				}
			}
			if (ua.wk) {
				(function(){
					if (isDomLoaded) { return; }
					if (!/loaded|complete/.test(doc.readyState)) {
						setTimeout(arguments.callee, 0);
						return;
					}
					callDomLoadFunctions();
				})();
			}
			addLoadEvent(callDomLoadFunctions);
		}
	}();
	
	function callDomLoadFunctions() {
		if (isDomLoaded) { return; }
		try { // test if we can really add/remove elements to/from the DOM; we don't want to fire it too early
			var t = doc.getElementsByTagName("body")[0].appendChild(createElement("span"));
			t.parentNode.removeChild(t);
		}
		catch (e) { return; }
		isDomLoaded = true;
		var dl = domLoadFnArr.length;
		for (var i = 0; i < dl; i++) {
			domLoadFnArr[i]();
		}
	}
	
	function addDomLoadEvent(fn) {
		if (isDomLoaded) {
			fn();
		}
		else { 
			domLoadFnArr[domLoadFnArr.length] = fn; // Array.push() is only available in IE5.5+
		}
	}
	
	/* Cross-browser onload
		- Based on James Edwards' solution: http://brothercake.com/site/resources/scripts/onload/
		- Will fire an event as soon as a web page including all of its assets are loaded 
	 */
	function addLoadEvent(fn) {
		if (typeof win.addEventListener != UNDEF) {
			win.addEventListener("load", fn, false);
		}
		else if (typeof doc.addEventListener != UNDEF) {
			doc.addEventListener("load", fn, false);
		}
		else if (typeof win.attachEvent != UNDEF) {
			addListener(win, "onload", fn);
		}
		else if (typeof win.onload == "function") {
			var fnOld = win.onload;
			win.onload = function() {
				fnOld();
				fn();
			};
		}
		else {
			win.onload = fn;
		}
	}
	
	/* Main function
		- Will preferably execute onDomLoad, otherwise onload (as a fallback)
	*/
	function main() { 
		if (plugin) {
			testPlayerVersion();
		}
		else {
			matchVersions();
		}
	}
	
	/* Detect the Flash Player version for non-Internet Explorer browsers
		- Detecting the plug-in version via the object element is more precise than using the plugins collection item's description:
		  a. Both release and build numbers can be detected
		  b. Avoid wrong descriptions by corrupt installers provided by Adobe
		  c. Avoid wrong descriptions by multiple Flash Player entries in the plugin Array, caused by incorrect browser imports
		- Disadvantage of this method is that it depends on the availability of the DOM, while the plugins collection is immediately available
	*/
	function testPlayerVersion() {
		var b = doc.getElementsByTagName("body")[0];
		var o = createElement(OBJECT);
		o.setAttribute("type", FLASH_MIME_TYPE);
		var t = b.appendChild(o);
		if (t) {
			var counter = 0;
			(function(){
				if (typeof t.GetVariable != UNDEF) {
					var d = t.GetVariable("$version");
					if (d) {
						d = d.split(" ")[1].split(",");
						ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
					}
				}
				else if (counter < 10) {
					counter++;
					setTimeout(arguments.callee, 10);
					return;
				}
				b.removeChild(o);
				t = null;
				matchVersions();
			})();
		}
		else {
			matchVersions();
		}
	}
	
	/* Perform Flash Player and SWF version matching; static publishing only
	*/
	function matchVersions() {
		var rl = regObjArr.length;
		if (rl > 0) {
			for (var i = 0; i < rl; i++) { // for each registered object element
				var id = regObjArr[i].id;
				var cb = regObjArr[i].callbackFn;
				var cbObj = {success:false, id:id};
				if (ua.pv[0] > 0) {
					var obj = getElementById(id);
					if (obj) {
						if (hasPlayerVersion(regObjArr[i].swfVersion) && !(ua.wk && ua.wk < 312)) { // Flash Player version >= published SWF version: Houston, we have a match!
							setVisibility(id, true);
							if (cb) {
								cbObj.success = true;
								cbObj.ref = getObjectById(id);
								cb(cbObj);
							}
						}
						else if (regObjArr[i].expressInstall && canExpressInstall()) { // show the Adobe Express Install dialog if set by the web page author and if supported
							var att = {};
							att.data = regObjArr[i].expressInstall;
							att.width = obj.getAttribute("width") || "0";
							att.height = obj.getAttribute("height") || "0";
							if (obj.getAttribute("class")) { att.styleclass = obj.getAttribute("class"); }
							if (obj.getAttribute("align")) { att.align = obj.getAttribute("align"); }
							// parse HTML object param element's name-value pairs
							var par = {};
							var p = obj.getElementsByTagName("param");
							var pl = p.length;
							for (var j = 0; j < pl; j++) {
								if (p[j].getAttribute("name").toLowerCase() != "movie") {
									par[p[j].getAttribute("name")] = p[j].getAttribute("value");
								}
							}
							showExpressInstall(att, par, id, cb);
						}
						else { // Flash Player and SWF version mismatch or an older Webkit engine that ignores the HTML object element's nested param elements: display alternative content instead of SWF
							displayAltContent(obj);
							if (cb) { cb(cbObj); }
						}
					}
				}
				else {	// if no Flash Player is installed or the fp version cannot be detected we let the HTML object element do its job (either show a SWF or alternative content)
					setVisibility(id, true);
					if (cb) {
						var o = getObjectById(id); // test whether there is an HTML object element or not
						if (o && typeof o.SetVariable != UNDEF) { 
							cbObj.success = true;
							cbObj.ref = o;
						}
						cb(cbObj);
					}
				}
			}
		}
	}
	
	function getObjectById(objectIdStr) {
		var r = null;
		var o = getElementById(objectIdStr);
		if (o && o.nodeName == "OBJECT") {
			if (typeof o.SetVariable != UNDEF) {
				r = o;
			}
			else {
				var n = o.getElementsByTagName(OBJECT)[0];
				if (n) {
					r = n;
				}
			}
		}
		return r;
	}
	
	/* Requirements for Adobe Express Install
		- only one instance can be active at a time
		- fp 6.0.65 or higher
		- Win/Mac OS only
		- no Webkit engines older than version 312
	*/
	function canExpressInstall() {
		return !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac) && !(ua.wk && ua.wk < 312);
	}
	
	/* Show the Adobe Express Install dialog
		- Reference: http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75
	*/
	function showExpressInstall(att, par, replaceElemIdStr, callbackFn) {
		isExpressInstallActive = true;
		storedCallbackFn = callbackFn || null;
		storedCallbackObj = {success:false, id:replaceElemIdStr};
		var obj = getElementById(replaceElemIdStr);
		if (obj) {
			if (obj.nodeName == "OBJECT") { // static publishing
				storedAltContent = abstractAltContent(obj);
				storedAltContentId = null;
			}
			else { // dynamic publishing
				storedAltContent = obj;
				storedAltContentId = replaceElemIdStr;
			}
			att.id = EXPRESS_INSTALL_ID;
			if (typeof att.width == UNDEF || (!/%$/.test(att.width) && parseInt(att.width, 10) < 310)) { att.width = "310"; }
			if (typeof att.height == UNDEF || (!/%$/.test(att.height) && parseInt(att.height, 10) < 137)) { att.height = "137"; }
			doc.title = doc.title.slice(0, 47) + " - Flash Player Installation";
			var pt = ua.ie && ua.win ? "ActiveX" : "PlugIn",
				fv = "MMredirectURL=" + win.location.toString().replace(/&/g,"%26") + "&MMplayerType=" + pt + "&MMdoctitle=" + doc.title;
			if (typeof par.flashvars != UNDEF) {
				par.flashvars += "&" + fv;
			}
			else {
				par.flashvars = fv;
			}
			// IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
			// because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
			if (ua.ie && ua.win && obj.readyState != 4) {
				var newObj = createElement("div");
				replaceElemIdStr += "SWFObjectNew";
				newObj.setAttribute("id", replaceElemIdStr);
				obj.parentNode.insertBefore(newObj, obj); // insert placeholder div that will be replaced by the object element that loads expressinstall.swf
				obj.style.display = "none";
				(function(){
					if (obj.readyState == 4) {
						obj.parentNode.removeChild(obj);
					}
					else {
						setTimeout(arguments.callee, 10);
					}
				})();
			}
			createSWF(att, par, replaceElemIdStr);
		}
	}
	
	/* Functions to abstract and display alternative content
	*/
	function displayAltContent(obj) {
		if (ua.ie && ua.win && obj.readyState != 4) {
			// IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
			// because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
			var el = createElement("div");
			obj.parentNode.insertBefore(el, obj); // insert placeholder div that will be replaced by the alternative content
			el.parentNode.replaceChild(abstractAltContent(obj), el);
			obj.style.display = "none";
			(function(){
				if (obj.readyState == 4) {
					obj.parentNode.removeChild(obj);
				}
				else {
					setTimeout(arguments.callee, 10);
				}
			})();
		}
		else {
			obj.parentNode.replaceChild(abstractAltContent(obj), obj);
		}
	} 

	function abstractAltContent(obj) {
		var ac = createElement("div");
		if (ua.win && ua.ie) {
			ac.innerHTML = obj.innerHTML;
		}
		else {
			var nestedObj = obj.getElementsByTagName(OBJECT)[0];
			if (nestedObj) {
				var c = nestedObj.childNodes;
				if (c) {
					var cl = c.length;
					for (var i = 0; i < cl; i++) {
						if (!(c[i].nodeType == 1 && c[i].nodeName == "PARAM") && !(c[i].nodeType == 8)) {
							ac.appendChild(c[i].cloneNode(true));
						}
					}
				}
			}
		}
		return ac;
	}
	
	/* Cross-browser dynamic SWF creation
	*/
	function createSWF(attObj, parObj, id) {
		var r, el = getElementById(id);
		if (ua.wk && ua.wk < 312) { return r; }
		if (el) {
			if (typeof attObj.id == UNDEF) { // if no 'id' is defined for the object element, it will inherit the 'id' from the alternative content
				attObj.id = id;
			}
			if (ua.ie && ua.win) { // Internet Explorer + the HTML object element + W3C DOM methods do not combine: fall back to outerHTML
				var att = "";
				for (var i in attObj) {
					if (attObj[i] != Object.prototype[i]) { // filter out prototype additions from other potential libraries
						if (i.toLowerCase() == "data") {
							parObj.movie = attObj[i];
						}
						else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
							att += ' class="' + attObj[i] + '"';
						}
						else if (i.toLowerCase() != "classid") {
							att += ' ' + i + '="' + attObj[i] + '"';
						}
					}
				}
				var par = "";
				for (var j in parObj) {
					if (parObj[j] != Object.prototype[j]) { // filter out prototype additions from other potential libraries
						par += '<param name="' + j + '" value="' + parObj[j] + '" />';
					}
				}
				el.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + att + '>' + par + '</object>';
				objIdArr[objIdArr.length] = attObj.id; // stored to fix object 'leaks' on unload (dynamic publishing only)
				r = getElementById(attObj.id);	
			}
			else { // well-behaving browsers
				var o = createElement(OBJECT);
				o.setAttribute("type", FLASH_MIME_TYPE);
				for (var m in attObj) {
					if (attObj[m] != Object.prototype[m]) { // filter out prototype additions from other potential libraries
						if (m.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
							o.setAttribute("class", attObj[m]);
						}
						else if (m.toLowerCase() != "classid") { // filter out IE specific attribute
							o.setAttribute(m, attObj[m]);
						}
					}
				}
				for (var n in parObj) {
					if (parObj[n] != Object.prototype[n] && n.toLowerCase() != "movie") { // filter out prototype additions from other potential libraries and IE specific param element
						createObjParam(o, n, parObj[n]);
					}
				}
				el.parentNode.replaceChild(o, el);
				r = o;
			}
		}
		return r;
	}
	
	function createObjParam(el, pName, pValue) {
		var p = createElement("param");
		p.setAttribute("name", pName);	
		p.setAttribute("value", pValue);
		el.appendChild(p);
	}
	
	/* Cross-browser SWF removal
		- Especially needed to safely and completely remove a SWF in Internet Explorer
	*/
	function removeSWF(id) {
		var obj = getElementById(id);
		if (obj && obj.nodeName == "OBJECT") {
			if (ua.ie && ua.win) {
				obj.style.display = "none";
				(function(){
					if (obj.readyState == 4) {
						removeObjectInIE(id);
					}
					else {
						setTimeout(arguments.callee, 10);
					}
				})();
			}
			else {
				obj.parentNode.removeChild(obj);
			}
		}
	}
	
	function removeObjectInIE(id) {
		var obj = getElementById(id);
		if (obj) {
			for (var i in obj) {
				if (typeof obj[i] == "function") {
					obj[i] = null;
				}
			}
			obj.parentNode.removeChild(obj);
		}
	}
	
	/* Functions to optimize JavaScript compression
	*/
	function getElementById(id) {
		var el = null;
		try {
			el = doc.getElementById(id);
		}
		catch (e) {}
		return el;
	}
	
	function createElement(el) {
		return doc.createElement(el);
	}
	
	/* Updated attachEvent function for Internet Explorer
		- Stores attachEvent information in an Array, so on unload the detachEvent functions can be called to avoid memory leaks
	*/	
	function addListener(target, eventType, fn) {
		target.attachEvent(eventType, fn);
		listenersArr[listenersArr.length] = [target, eventType, fn];
	}
	
	/* Flash Player and SWF content version matching
	*/
	function hasPlayerVersion(rv) {
		var pv = ua.pv, v = rv.split(".");
		v[0] = parseInt(v[0], 10);
		v[1] = parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" instead of "9.0.0"
		v[2] = parseInt(v[2], 10) || 0;
		return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false;
	}
	
	/* Cross-browser dynamic CSS creation
		- Based on Bobby van der Sluis' solution: http://www.bobbyvandersluis.com/articles/dynamicCSS.php
	*/	
	function createCSS(sel, decl, media, newStyle) {
		if (ua.ie && ua.mac) { return; }
		var h = doc.getElementsByTagName("head")[0];
		if (!h) { return; } // to also support badly authored HTML pages that lack a head element
		var m = (media && typeof media == "string") ? media : "screen";
		if (newStyle) {
			dynamicStylesheet = null;
			dynamicStylesheetMedia = null;
		}
		if (!dynamicStylesheet || dynamicStylesheetMedia != m) { 
			// create dynamic stylesheet + get a global reference to it
			var s = createElement("style");
			s.setAttribute("type", "text/css");
			s.setAttribute("media", m);
			dynamicStylesheet = h.appendChild(s);
			if (ua.ie && ua.win && typeof doc.styleSheets != UNDEF && doc.styleSheets.length > 0) {
				dynamicStylesheet = doc.styleSheets[doc.styleSheets.length - 1];
			}
			dynamicStylesheetMedia = m;
		}
		// add style rule
		if (ua.ie && ua.win) {
			if (dynamicStylesheet && typeof dynamicStylesheet.addRule == OBJECT) {
				dynamicStylesheet.addRule(sel, decl);
			}
		}
		else {
			if (dynamicStylesheet && typeof doc.createTextNode != UNDEF) {
				dynamicStylesheet.appendChild(doc.createTextNode(sel + " {" + decl + "}"));
			}
		}
	}
	
	function setVisibility(id, isVisible) {
		if (!autoHideShow) { return; }
		var v = isVisible ? "visible" : "hidden";
		if (isDomLoaded && getElementById(id)) {
			getElementById(id).style.visibility = v;
		}
		else {
			createCSS("#" + id, "visibility:" + v);
		}
	}

	/* Filter to avoid XSS attacks
	*/
	function urlEncodeIfNecessary(s) {
		var regex = /[\\\"<>\.;]/;
		var hasBadChars = regex.exec(s) != null;
		return hasBadChars && typeof encodeURIComponent != UNDEF ? encodeURIComponent(s) : s;
	}
	
	/* Release memory to avoid memory leaks caused by closures, fix hanging audio/video threads and force open sockets/NetConnections to disconnect (Internet Explorer only)
	*/
	var cleanup = function() {
		if (ua.ie && ua.win) {
			window.attachEvent("onunload", function() {
				// remove listeners to avoid memory leaks
				var ll = listenersArr.length;
				for (var i = 0; i < ll; i++) {
					listenersArr[i][0].detachEvent(listenersArr[i][1], listenersArr[i][2]);
				}
				// cleanup dynamically embedded objects to fix audio/video threads and force open sockets and NetConnections to disconnect
				var il = objIdArr.length;
				for (var j = 0; j < il; j++) {
					removeSWF(objIdArr[j]);
				}
				// cleanup library's main closures to avoid memory leaks
				for (var k in ua) {
					ua[k] = null;
				}
				ua = null;
				for (var l in swfobject) {
					swfobject[l] = null;
				}
				swfobject = null;
			});
		}
	}();
	
	return {
		/* Public API
			- Reference: http://code.google.com/p/swfobject/wiki/documentation
		*/ 
		registerObject: function(objectIdStr, swfVersionStr, xiSwfUrlStr, callbackFn) {
			if (ua.w3 && objectIdStr && swfVersionStr) {
				var regObj = {};
				regObj.id = objectIdStr;
				regObj.swfVersion = swfVersionStr;
				regObj.expressInstall = xiSwfUrlStr;
				regObj.callbackFn = callbackFn;
				regObjArr[regObjArr.length] = regObj;
				setVisibility(objectIdStr, false);
			}
			else if (callbackFn) {
				callbackFn({success:false, id:objectIdStr});
			}
		},
		
		getObjectById: function(objectIdStr) {
			if (ua.w3) {
				return getObjectById(objectIdStr);
			}
		},
		
		embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn) {
			var callbackObj = {success:false, id:replaceElemIdStr};
			if (ua.w3 && !(ua.wk && ua.wk < 312) && swfUrlStr && replaceElemIdStr && widthStr && heightStr && swfVersionStr) {
				setVisibility(replaceElemIdStr, false);
				addDomLoadEvent(function() {
					widthStr += ""; // auto-convert to string
					heightStr += "";
					var att = {};
					if (attObj && typeof attObj === OBJECT) {
						for (var i in attObj) { // copy object to avoid the use of references, because web authors often reuse attObj for multiple SWFs
							att[i] = attObj[i];
						}
					}
					att.data = swfUrlStr;
					att.width = widthStr;
					att.height = heightStr;
					var par = {}; 
					if (parObj && typeof parObj === OBJECT) {
						for (var j in parObj) { // copy object to avoid the use of references, because web authors often reuse parObj for multiple SWFs
							par[j] = parObj[j];
						}
					}
					if (flashvarsObj && typeof flashvarsObj === OBJECT) {
						for (var k in flashvarsObj) { // copy object to avoid the use of references, because web authors often reuse flashvarsObj for multiple SWFs
							if (typeof par.flashvars != UNDEF) {
								par.flashvars += "&" + k + "=" + flashvarsObj[k];
							}
							else {
								par.flashvars = k + "=" + flashvarsObj[k];
							}
						}
					}
					if (hasPlayerVersion(swfVersionStr)) { // create SWF
						var obj = createSWF(att, par, replaceElemIdStr);
						if (att.id == replaceElemIdStr) {
							setVisibility(replaceElemIdStr, true);
						}
						callbackObj.success = true;
						callbackObj.ref = obj;
					}
					else if (xiSwfUrlStr && canExpressInstall()) { // show Adobe Express Install
						att.data = xiSwfUrlStr;
						showExpressInstall(att, par, replaceElemIdStr, callbackFn);
						return;
					}
					else { // show alternative content
						setVisibility(replaceElemIdStr, true);
					}
					if (callbackFn) { callbackFn(callbackObj); }
				});
			}
			else if (callbackFn) { callbackFn(callbackObj);	}
		},
		
		switchOffAutoHideShow: function() {
			autoHideShow = false;
		},
		
		ua: ua,
		
		getFlashPlayerVersion: function() {
			return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] };
		},
		
		hasFlashPlayerVersion: hasPlayerVersion,
		
		createSWF: function(attObj, parObj, replaceElemIdStr) {
			if (ua.w3) {
				return createSWF(attObj, parObj, replaceElemIdStr);
			}
			else {
				return undefined;
			}
		},
		
		showExpressInstall: function(att, par, replaceElemIdStr, callbackFn) {
			if (ua.w3 && canExpressInstall()) {
				showExpressInstall(att, par, replaceElemIdStr, callbackFn);
			}
		},
		
		removeSWF: function(objElemIdStr) {
			if (ua.w3) {
				removeSWF(objElemIdStr);
			}
		},
		
		createCSS: function(selStr, declStr, mediaStr, newStyleBoolean) {
			if (ua.w3) {
				createCSS(selStr, declStr, mediaStr, newStyleBoolean);
			}
		},
		
		addDomLoadEvent: addDomLoadEvent,
		
		addLoadEvent: addLoadEvent,
		
		getQueryParamValue: function(param) {
			var q = doc.location.search || doc.location.hash;
			if (q) {
				if (/\?/.test(q)) { q = q.split("?")[1]; } // strip question mark
				if (param == null) {
					return urlEncodeIfNecessary(q);
				}
				var pairs = q.split("&");
				for (var i = 0; i < pairs.length; i++) {
					if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
						return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=") + 1)));
					}
				}
			}
			return "";
		},
		
		// For internal usage only
		expressInstallCallback: function() {
			if (isExpressInstallActive) {
				var obj = getElementById(EXPRESS_INSTALL_ID);
				if (obj && storedAltContent) {
					obj.parentNode.replaceChild(storedAltContent, obj);
					if (storedAltContentId) {
						setVisibility(storedAltContentId, true);
						if (ua.ie && ua.win) { storedAltContent.style.display = "block"; }
					}
					if (storedCallbackFn) { storedCallbackFn(storedCallbackObj); }
				}
				isExpressInstallActive = false;
			} 
		}
	};
}();

/**** /englishfirst/_scripts/controls/unitpngfix.js ****/

var clear="../lib/clear.gif";document.write('<script type="text/javascript" id="ct" defer="defer" src="javascript:void(0)"><\/script>');var ct=document.getElementById("ct");ct.onreadystatechange=function(){pngfix()};pngfix=function(){var els=document.getElementsByTagName('*'),ip=/\.png/i,al="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='",i=els.length,uels=new Array(),c=0;while(i-->0){if(els[i].className.match(/unitPng/)){uels[c]=els[i];c++;}}if(c>0){pfx(uels);}
function pfx(els){i=els.length;while(i-->0){var el=els[i],es=el.style,elc=el.currentStyle,elb=elc.backgroundImage;if(el.src&&el.src.match(ip)&&!es.filter){es.height=el.height;es.width=el.width;es.filter=al+el.src+"',sizingMethod='crop')";el.src=clear;}else{if(elb.match(ip)){var path=elb.split('"'),rep=(elc.backgroundRepeat=='no-repeat')?'crop':'scale',elkids=el.getElementsByTagName('*'),j=elkids.length;es.filter=al+path[1]+"',sizingMethod='"+rep+"')";es.height=el.clientHeight+'px';es.backgroundImage='none';if(j!=0){if(elc.position!="absolute")es.position='static';while(j-->0)if(!elkids[j].style.position)elkids[j].style.position="relative";}}}}};};

/**** CT-ETOWNSP1 06/22/2011 06:20:53 ****/

