/*
* SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
*
* SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
* http://www.opensource.org/licenses/mit-license.php
*
*/
if (typeof deconcept == "undefined") { var deconcept = new Object(); } if (typeof deconcept.util == "undefined") { deconcept.util = new Object(); } if (typeof deconcept.SWFObjectUtil == "undefined") { deconcept.SWFObjectUtil = new Object(); } deconcept.SWFObject = function (_1, id, w, h, _5, c, _7, _8, _9, _a) { if (!document.getElementById) { return; } this.DETECT_KEY = _a ? _a : "detectflash"; this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY); this.params = new Object(); this.variables = new Object(); this.attributes = new Array(); if (_1) { this.setAttribute("swf", _1); } if (id) { this.setAttribute("id", id); } if (w) { this.setAttribute("width", w); } if (h) { this.setAttribute("height", h); } if (_5) { this.setAttribute("version", new deconcept.PlayerVersion(_5.toString().split("."))); } this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion(); if (!window.opera && document.all && this.installedVer.major > 7) { deconcept.SWFObject.doPrepUnload = true; } if (c) { this.addParam("bgcolor", c); } var q = _7 ? _7 : "high"; this.addParam("quality", q); this.setAttribute("useExpressInstall", false); this.setAttribute("doExpressInstall", false); var _c = (_8) ? _8 : window.location; this.setAttribute("xiRedirectUrl", _c); this.setAttribute("redirectUrl", ""); if (_9) { this.setAttribute("redirectUrl", _9); } }; deconcept.SWFObject.prototype = { useExpressInstall: function (_d) { this.xiSWFPath = !_d ? "expressinstall.swf" : _d; this.setAttribute("useExpressInstall", true); }, setAttribute: function (_e, _f) { this.attributes[_e] = _f; }, getAttribute: function (_10) { return this.attributes[_10]; }, addParam: function (_11, _12) { this.params[_11] = _12; }, getParams: function () { return this.params; }, addVariable: function (_13, _14) { this.variables[_13] = _14; }, getVariable: function (_15) { return this.variables[_15]; }, getVariables: function () { return this.variables; }, getVariablePairs: function () { var _16 = new Array(); var key; var _18 = this.getVariables(); for (key in _18) { _16[_16.length] = key + "=" + _18[key]; } return _16; }, getSWFHTML: function () { var _19 = ""; if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "PlugIn"); this.setAttribute("swf", this.xiSWFPath); } _19 = "<embed type=\"application/x-shockwave-flash\" src=\"" + this.getAttribute("swf") + "\" width=\"" + this.getAttribute("width") + "\" height=\"" + this.getAttribute("height") + "\" style=\"" + this.getAttribute("style") + "\""; _19 += " id=\"" + this.getAttribute("id") + "\" name=\"" + this.getAttribute("id") + "\" "; var _1a = this.getParams(); for (var key in _1a) { _19 += [key] + "=\"" + _1a[key] + "\" "; } var _1c = this.getVariablePairs().join("&"); if (_1c.length > 0) { _19 += "flashvars=\"" + _1c + "\""; } _19 += "/>"; } else { if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "ActiveX"); this.setAttribute("swf", this.xiSWFPath); } _19 = "<object id=\"" + this.getAttribute("id") + "\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\"" + this.getAttribute("width") + "\" height=\"" + this.getAttribute("height") + "\" style=\"" + this.getAttribute("style") + "\">"; _19 += "<param name=\"movie\" value=\"" + this.getAttribute("swf") + "\" />"; var _1d = this.getParams(); for (var key in _1d) { _19 += "<param name=\"" + key + "\" value=\"" + _1d[key] + "\" />"; } var _1f = this.getVariablePairs().join("&"); if (_1f.length > 0) { _19 += "<param name=\"flashvars\" value=\"" + _1f + "\" />"; } _19 += "</object>"; } return _19; }, write: function (_20) { if (this.getAttribute("useExpressInstall")) { var _21 = new deconcept.PlayerVersion([6, 0, 65]); if (this.installedVer.versionIsValid(_21) && !this.installedVer.versionIsValid(this.getAttribute("version"))) { this.setAttribute("doExpressInstall", true); this.addVariable("MMredirectURL", escape(this.getAttribute("xiRedirectUrl"))); document.title = document.title.slice(0, 47) + " - Flash Player Installation"; this.addVariable("MMdoctitle", document.title); } } if (this.skipDetect || this.getAttribute("doExpressInstall") || this.installedVer.versionIsValid(this.getAttribute("version"))) { var n = (typeof _20 == "string") ? document.getElementById(_20) : _20; n.innerHTML = this.getSWFHTML(); return true; } else { if (this.getAttribute("redirectUrl") != "") { document.location.replace(this.getAttribute("redirectUrl")); } } return false; } }; deconcept.SWFObjectUtil.getPlayerVersion = function () { var _23 = new deconcept.PlayerVersion([0, 0, 0]); if (navigator.plugins && navigator.mimeTypes.length) { var x = navigator.plugins["Shockwave Flash"]; if (x && x.description) { _23 = new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split(".")); } } else { if (navigator.userAgent && navigator.userAgent.indexOf("Windows CE") >= 0) { var axo = 1; var _26 = 3; while (axo) { try { _26++; axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + _26); _23 = new deconcept.PlayerVersion([_26, 0, 0]); } catch (e) { axo = null; } } } else { try { var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); } catch (e) { try { var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); _23 = new deconcept.PlayerVersion([6, 0, 21]); axo.AllowScriptAccess = "always"; } catch (e) { if (_23.major == 6) { return _23; } } try { axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); } catch (e) { } } if (axo != null) { _23 = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(",")); } } } return _23; }; deconcept.PlayerVersion = function (_29) { this.major = _29[0] != null ? parseInt(_29[0]) : 0; this.minor = _29[1] != null ? parseInt(_29[1]) : 0; this.rev = _29[2] != null ? parseInt(_29[2]) : 0; }; deconcept.PlayerVersion.prototype.versionIsValid = function (fv) { if (this.major < fv.major) { return false; } if (this.major > fv.major) { return true; } if (this.minor < fv.minor) { return false; } if (this.minor > fv.minor) { return true; } if (this.rev < fv.rev) { return false; } return true; }; deconcept.util = { getRequestParameter: function (_2b) { var q = document.location.search || document.location.hash; if (_2b == null) { return q; } if (q) { var _2d = q.substring(1).split("&"); for (var i = 0; i < _2d.length; i++) { if (_2d[i].substring(0, _2d[i].indexOf("=")) == _2b) { return _2d[i].substring((_2d[i].indexOf("=") + 1)); } } } return ""; } }; deconcept.SWFObjectUtil.cleanupSWFs = function () { var _2f = document.getElementsByTagName("OBJECT"); for (var i = _2f.length - 1; i >= 0; i--) { _2f[i].style.display = "none"; for (var x in _2f[i]) { if (typeof _2f[i][x] == "function") { _2f[i][x] = function () { }; } } } }; if (deconcept.SWFObject.doPrepUnload) { if (!deconcept.unloadSet) { deconcept.SWFObjectUtil.prepUnload = function () { __flash_unloadHandler = function () { }; __flash_savedUnloadHandler = function () { }; window.attachEvent("onunload", deconcept.SWFObjectUtil.cleanupSWFs); }; window.attachEvent("onbeforeunload", deconcept.SWFObjectUtil.prepUnload); deconcept.unloadSet = true; } } if (!document.getElementById && document.all) { document.getElementById = function (id) { return document.all[id]; }; } var getQueryParamValue = deconcept.util.getRequestParameter; var FlashObject = deconcept.SWFObject; var SWFObject = deconcept.SWFObject;

/*!
* 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);

/*!
* jQuery UI 1.8.2
*
* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI
*/
(function (c)
{
    c.ui = c.ui || {}; if (!c.ui.version)
    {
        c.extend(c.ui, { version: "1.8.2", plugin: { add: function (a, b, d) { a = c.ui[a].prototype; for (var e in d) { a.plugins[e] = a.plugins[e] || []; a.plugins[e].push([b, d[e]]) } }, call: function (a, b, d) { if ((b = a.plugins[b]) && a.element[0].parentNode) for (var e = 0; e < b.length; e++) a.options[b[e][0]] && b[e][1].apply(a.element, d) } }, contains: function (a, b) { return document.compareDocumentPosition ? a.compareDocumentPosition(b) & 16 : a !== b && a.contains(b) }, hasScroll: function (a, b)
        {
            if (c(a).css("overflow") ==
"hidden") return false; b = b && b == "left" ? "scrollLeft" : "scrollTop"; var d = false; if (a[b] > 0) return true; a[b] = 1; d = a[b] > 0; a[b] = 0; return d
        }, isOverAxis: function (a, b, d) { return a > b && a < b + d }, isOver: function (a, b, d, e, f, g) { return c.ui.isOverAxis(a, d, f) && c.ui.isOverAxis(b, e, g) }, 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
        }
        }); c.fn.extend({ _focus: c.fn.focus, focus: function (a, b) { return typeof a === "number" ? this.each(function () { var d = this; setTimeout(function () { c(d).focus(); b && b.call(d) }, a) }) : this._focus.apply(this, arguments) }, enableSelection: function () { return this.attr("unselectable", "off").css("MozUserSelect", "") }, disableSelection: function ()
        {
            return this.attr("unselectable", "on").css("MozUserSelect",
"none")
        }, scrollParent: function ()
        {
            var a; a = c.browser.msie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? this.parents().filter(function () { return /(relative|absolute|fixed)/.test(c.curCSS(this, "position", 1)) && /(auto|scroll)/.test(c.curCSS(this, "overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x", 1)) }).eq(0) : this.parents().filter(function ()
            {
                return /(auto|scroll)/.test(c.curCSS(this, "overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x",
1))
            }).eq(0); return /fixed/.test(this.css("position")) || !a.length ? c(document) : a
        }, zIndex: function (a) { if (a !== undefined) return this.css("zIndex", a); if (this.length) { a = c(this[0]); for (var b; a.length && a[0] !== document; ) { b = a.css("position"); if (b == "absolute" || b == "relative" || b == "fixed") { b = parseInt(a.css("zIndex")); if (!isNaN(b) && b != 0) return b } a = a.parent() } } return 0 } 
        }); c.extend(c.expr[":"], { data: function (a, b, d) { return !!c.data(a, d[3]) }, focusable: function (a)
        {
            var b = a.nodeName.toLowerCase(), d = c.attr(a, "tabindex"); return (/input|select|textarea|button|object/.test(b) ?
!a.disabled : "a" == b || "area" == b ? a.href || !isNaN(d) : !isNaN(d)) && !c(a)["area" == b ? "parents" : "closest"](":hidden").length
        }, tabbable: function (a) { var b = c.attr(a, "tabindex"); return (isNaN(b) || b >= 0) && c(a).is(":focusable") } 
        })
    } 
})(jQuery);
; /*!
 * jQuery UI Widget 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Widget
 */
(function (b)
{
    var j = b.fn.remove; b.fn.remove = function (a, c) { return this.each(function () { if (!c) if (!a || b.filter(a, [this]).length) b("*", this).add(this).each(function () { b(this).triggerHandler("remove") }); return j.call(b(this), a, c) }) }; b.widget = function (a, c, d)
    {
        var e = a.split(".")[0], f; a = a.split(".")[1]; f = e + "-" + a; if (!d) { d = c; c = b.Widget } b.expr[":"][f] = function (h) { return !!b.data(h, a) }; b[e] = b[e] || {}; b[e][a] = function (h, g) { arguments.length && this._createWidget(h, g) }; c = new c; c.options = b.extend({}, c.options); b[e][a].prototype =
b.extend(true, c, { namespace: e, widgetName: a, widgetEventPrefix: b[e][a].prototype.widgetEventPrefix || a, widgetBaseClass: f }, d); b.widget.bridge(a, b[e][a])
    }; b.widget.bridge = function (a, c)
    {
        b.fn[a] = function (d)
        {
            var e = typeof d === "string", f = Array.prototype.slice.call(arguments, 1), h = this; d = !e && f.length ? b.extend.apply(null, [true, d].concat(f)) : d; if (e && d.substring(0, 1) === "_") return h; e ? this.each(function () { var g = b.data(this, a), i = g && b.isFunction(g[d]) ? g[d].apply(g, f) : g; if (i !== g && i !== undefined) { h = i; return false } }) : this.each(function ()
            {
                var g =
b.data(this, a); if (g) { d && g.option(d); g._init() } else b.data(this, a, new c(d, this))
            }); return h
        } 
    }; b.Widget = function (a, c) { arguments.length && this._createWidget(a, c) }; b.Widget.prototype = { widgetName: "widget", widgetEventPrefix: "", options: { disabled: false }, _createWidget: function (a, c)
    {
        this.element = b(c).data(this.widgetName, this); this.options = b.extend(true, {}, this.options, b.metadata && b.metadata.get(c)[this.widgetName], a); var d = this; this.element.bind("remove." + this.widgetName, function () { d.destroy() }); this._create();
        this._init()
    }, _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 (a, c)
    {
        var d = a, e = this; if (arguments.length === 0) return b.extend({}, e.options); if (typeof a === "string") { if (c === undefined) return this.options[a]; d = {}; d[a] = c } b.each(d, function (f,
h) { e._setOption(f, h) }); return e
    }, _setOption: function (a, c) { this.options[a] = c; if (a === "disabled") this.widget()[c ? "addClass" : "removeClass"](this.widgetBaseClass + "-disabled ui-state-disabled").attr("aria-disabled", c); return this }, enable: function () { return this._setOption("disabled", false) }, disable: function () { return this._setOption("disabled", true) }, _trigger: function (a, c, d)
    {
        var e = this.options[a]; c = b.Event(c); c.type = (a === this.widgetEventPrefix ? a : this.widgetEventPrefix + a).toLowerCase(); d = d || {}; if (c.originalEvent)
        {
            a =
b.event.props.length; for (var f; a; ) { f = b.event.props[--a]; c[f] = c.originalEvent[f] } 
        } this.element.trigger(c, d); return !(b.isFunction(e) && e.call(this.element[0], c, d) === false || c.isDefaultPrevented())
    } 
    }
})(jQuery);
; /*!
 * jQuery UI Mouse 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Mouse
 *
 * Depends:
 *	jquery.ui.widget.js
 */
(function (c)
{
    c.widget("ui.mouse", { options: { cancel: ":input,option", distance: 1, delay: 0 }, _mouseInit: function () { var a = this; this.element.bind("mousedown." + this.widgetName, function (b) { return a._mouseDown(b) }).bind("click." + this.widgetName, function (b) { if (a._preventClickEvent) { a._preventClickEvent = false; b.stopImmediatePropagation(); return false } }); this.started = false }, _mouseDestroy: function () { this.element.unbind("." + this.widgetName) }, _mouseDown: function (a)
    {
        a.originalEvent = a.originalEvent || {}; if (!a.originalEvent.mouseHandled)
        {
            this._mouseStarted &&
this._mouseUp(a); this._mouseDownEvent = a; var b = this, e = a.which == 1, f = typeof this.options.cancel == "string" ? c(a.target).parents().add(a.target).filter(this.options.cancel).length : false; if (!e || f || !this._mouseCapture(a)) return true; this.mouseDelayMet = !this.options.delay; if (!this.mouseDelayMet) this._mouseDelayTimer = setTimeout(function () { b.mouseDelayMet = true }, this.options.delay); if (this._mouseDistanceMet(a) && this._mouseDelayMet(a))
            {
                this._mouseStarted = this._mouseStart(a) !== false; if (!this._mouseStarted)
                {
                    a.preventDefault();
                    return true
                } 
            } this._mouseMoveDelegate = function (d) { return b._mouseMove(d) }; this._mouseUpDelegate = function (d) { return b._mouseUp(d) }; c(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate); c.browser.safari || a.preventDefault(); return a.originalEvent.mouseHandled = true
        } 
    }, _mouseMove: function (a)
    {
        if (c.browser.msie && !a.button) return this._mouseUp(a); if (this._mouseStarted) { this._mouseDrag(a); return a.preventDefault() } if (this._mouseDistanceMet(a) &&
this._mouseDelayMet(a)) (this._mouseStarted = this._mouseStart(this._mouseDownEvent, a) !== false) ? this._mouseDrag(a) : this._mouseUp(a); return !this._mouseStarted
    }, _mouseUp: function (a) { c(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate); if (this._mouseStarted) { this._mouseStarted = false; this._preventClickEvent = a.target == this._mouseDownEvent.target; this._mouseStop(a) } return false }, _mouseDistanceMet: function (a)
    {
        return Math.max(Math.abs(this._mouseDownEvent.pageX -
a.pageX), Math.abs(this._mouseDownEvent.pageY - a.pageY)) >= this.options.distance
    }, _mouseDelayMet: function () { return this.mouseDelayMet }, _mouseStart: function () { }, _mouseDrag: function () { }, _mouseStop: function () { }, _mouseCapture: function () { return true } 
    })
})(jQuery);
; /*
 * jQuery UI Position 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Position
 */
(function (c)
{
    c.ui = c.ui || {}; var m = /left|center|right/, n = /top|center|bottom/, p = c.fn.position, q = c.fn.offset; c.fn.position = function (a)
    {
        if (!a || !a.of) return p.apply(this, arguments); a = c.extend({}, a); var b = c(a.of), d = (a.collision || "flip").split(" "), e = a.offset ? a.offset.split(" ") : [0, 0], g, h, i; if (a.of.nodeType === 9) { g = b.width(); h = b.height(); i = { top: 0, left: 0} } else if (a.of.scrollTo && a.of.document) { g = b.width(); h = b.height(); i = { top: b.scrollTop(), left: b.scrollLeft()} } else if (a.of.preventDefault)
        {
            a.at = "left top"; g = h =
0; i = { top: a.of.pageY, left: a.of.pageX}
        } else { g = b.outerWidth(); h = b.outerHeight(); i = b.offset() } c.each(["my", "at"], function () { var f = (a[this] || "").split(" "); if (f.length === 1) f = m.test(f[0]) ? f.concat(["center"]) : n.test(f[0]) ? ["center"].concat(f) : ["center", "center"]; f[0] = m.test(f[0]) ? f[0] : "center"; f[1] = n.test(f[1]) ? f[1] : "center"; a[this] = f }); if (d.length === 1) d[1] = d[0]; e[0] = parseInt(e[0], 10) || 0; if (e.length === 1) e[1] = e[0]; e[1] = parseInt(e[1], 10) || 0; if (a.at[0] === "right") i.left += g; else if (a.at[0] === "center") i.left +=
g / 2; if (a.at[1] === "bottom") i.top += h; else if (a.at[1] === "center") i.top += h / 2; i.left += e[0]; i.top += e[1]; return this.each(function ()
{
    var f = c(this), k = f.outerWidth(), l = f.outerHeight(), j = c.extend({}, i); if (a.my[0] === "right") j.left -= k; else if (a.my[0] === "center") j.left -= k / 2; if (a.my[1] === "bottom") j.top -= l; else if (a.my[1] === "center") j.top -= l / 2; j.left = parseInt(j.left); j.top = parseInt(j.top); c.each(["left", "top"], function (o, r)
    {
        c.ui.position[d[o]] && c.ui.position[d[o]][r](j, { targetWidth: g, targetHeight: h, elemWidth: k,
            elemHeight: l, offset: e, my: a.my, at: a.at
        })
    }); c.fn.bgiframe && f.bgiframe(); f.offset(c.extend(j, { using: a.using }))
})
    }; c.ui.position = { fit: { left: function (a, b) { var d = c(window); b = a.left + b.elemWidth - d.width() - d.scrollLeft(); a.left = b > 0 ? a.left - b : Math.max(0, a.left) }, top: function (a, b) { var d = c(window); b = a.top + b.elemHeight - d.height() - d.scrollTop(); a.top = b > 0 ? a.top - b : Math.max(0, a.top) } }, flip: { left: function (a, b)
    {
        if (b.at[0] !== "center")
        {
            var d = c(window); d = a.left + b.elemWidth - d.width() - d.scrollLeft(); var e = b.my[0] === "left" ?
-b.elemWidth : b.my[0] === "right" ? b.elemWidth : 0, g = -2 * b.offset[0]; a.left += a.left < 0 ? e + b.targetWidth + g : d > 0 ? e - b.targetWidth + g : 0
        } 
    }, top: function (a, b) { if (b.at[1] !== "center") { var d = c(window); d = a.top + b.elemHeight - d.height() - d.scrollTop(); var e = b.my[1] === "top" ? -b.elemHeight : b.my[1] === "bottom" ? b.elemHeight : 0, g = b.at[1] === "top" ? b.targetHeight : -b.targetHeight, h = -2 * b.offset[1]; a.top += a.top < 0 ? e + b.targetHeight + h : d > 0 ? e + g + h : 0 } } 
    }
    }; if (!c.offset.setOffset)
    {
        c.offset.setOffset = function (a, b)
        {
            if (/static/.test(c.curCSS(a, "position"))) a.style.position =
"relative"; var d = c(a), e = d.offset(), g = parseInt(c.curCSS(a, "top", true), 10) || 0, h = parseInt(c.curCSS(a, "left", true), 10) || 0; e = { top: b.top - e.top + g, left: b.left - e.left + h }; "using" in b ? b.using.call(a, e) : d.css(e)
        }; c.fn.offset = function (a) { var b = this[0]; if (!b || !b.ownerDocument) return null; if (a) return this.each(function () { c.offset.setOffset(this, a) }); return q.call(this) } 
    } 
})(jQuery);
; /*
 * jQuery UI Draggable 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Draggables
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.mouse.js
 *	jquery.ui.widget.js
 */
(function (d)
{
    d.widget("ui.draggable", d.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 (a)
    {
        var b =
this.options; if (this.helper || b.disabled || d(a.target).is(".ui-resizable-handle")) return false; this.handle = this._getHandle(a); if (!this.handle) return false; return true
    }, _mouseStart: function (a)
    {
        var b = this.options; this.helper = this._createHelper(a); this._cacheHelperProportions(); if (d.ui.ddmanager) d.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
        }; d.extend(this.offset, { click: { left: a.pageX - this.offset.left, top: a.pageY - this.offset.top }, parent: this._getParentOffset(), relative: this._getRelativeOffset() }); this.originalPosition = this.position = this._generatePosition(a); this.originalPageX = a.pageX; this.originalPageY = a.pageY; b.cursorAt && this._adjustOffsetFromHelper(b.cursorAt); b.containment && this._setContainment(); if (this._trigger("start", a) === false) { this._clear(); return false } this._cacheHelperProportions();
        d.ui.ddmanager && !b.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a); this.helper.addClass("ui-draggable-dragging"); this._mouseDrag(a, true); return true
    }, _mouseDrag: function (a, b)
    {
        this.position = this._generatePosition(a); this.positionAbs = this._convertPositionTo("absolute"); if (!b) { b = this._uiHash(); if (this._trigger("drag", a, b) === false) { this._mouseUp({}); return false } this.position = b.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"; d.ui.ddmanager && d.ui.ddmanager.drag(this, a); return false
    }, _mouseStop: function (a)
    {
        var b = false; if (d.ui.ddmanager && !this.options.dropBehaviour) b = d.ui.ddmanager.drop(this, a); if (this.dropped) { b = this.dropped; this.dropped = false } if (!this.element[0] || !this.element[0].parentNode) return false; if (this.options.revert == "invalid" && !b || this.options.revert == "valid" && b || this.options.revert === true || d.isFunction(this.options.revert) && this.options.revert.call(this.element,
b)) { var c = this; d(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function () { c._trigger("stop", a) !== false && c._clear() }) } else this._trigger("stop", a) !== false && this._clear(); return false
    }, cancel: function () { this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear(); return this }, _getHandle: function (a)
    {
        var b = !this.options.handle || !d(this.options.handle, this.element).length ? true : false; d(this.options.handle, this.element).find("*").andSelf().each(function ()
        {
            if (this ==
a.target) b = true
        }); return b
    }, _createHelper: function (a) { var b = this.options; a = d.isFunction(b.helper) ? d(b.helper.apply(this.element[0], [a])) : b.helper == "clone" ? this.element.clone() : this.element; a.parents("body").length || a.appendTo(b.appendTo == "parent" ? this.element[0].parentNode : b.appendTo); a[0] != this.element[0] && !/(fixed|absolute)/.test(a.css("position")) && a.css("position", "absolute"); return a }, _adjustOffsetFromHelper: function (a)
    {
        if (typeof a == "string") a = a.split(" "); if (d.isArray(a)) a = { left: +a[0], top: +a[1] ||
0
        }; if ("left" in a) this.offset.click.left = a.left + this.margins.left; if ("right" in a) this.offset.click.left = this.helperProportions.width - a.right + this.margins.left; if ("top" in a) this.offset.click.top = a.top + this.margins.top; if ("bottom" in a) this.offset.click.top = this.helperProportions.height - a.bottom + this.margins.top
    }, _getParentOffset: function ()
    {
        this.offsetParent = this.helper.offsetParent(); var a = this.offsetParent.offset(); if (this.cssPosition == "absolute" && this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0],
this.offsetParent[0])) { a.left += this.scrollParent.scrollLeft(); a.top += this.scrollParent.scrollTop() } if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && d.browser.msie) a = { top: 0, left: 0 }; return { top: a.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), left: a.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)}
    }, _getRelativeOffset: function ()
    {
        if (this.cssPosition == "relative")
        {
            var a = this.element.position(); return { top: a.top -
(parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), left: a.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} }, _cacheHelperProportions: function () { this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight()} }, _setContainment: function ()
    {
        var a = this.options; if (a.containment ==
"parent") a.containment = this.helper[0].parentNode; if (a.containment == "document" || a.containment == "window") this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, d(a.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (d(a.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]; if (!/^(document|window|parent)$/.test(a.containment) &&
a.containment.constructor != Array)
        {
            var b = d(a.containment)[0]; if (b)
            {
                a = d(a.containment).offset(); var c = d(b).css("overflow") != "hidden"; this.containment = [a.left + (parseInt(d(b).css("borderLeftWidth"), 10) || 0) + (parseInt(d(b).css("paddingLeft"), 10) || 0) - this.margins.left, a.top + (parseInt(d(b).css("borderTopWidth"), 10) || 0) + (parseInt(d(b).css("paddingTop"), 10) || 0) - this.margins.top, a.left + (c ? Math.max(b.scrollWidth, b.offsetWidth) : b.offsetWidth) - (parseInt(d(b).css("borderLeftWidth"), 10) || 0) - (parseInt(d(b).css("paddingRight"),
10) || 0) - this.helperProportions.width - this.margins.left, a.top + (c ? Math.max(b.scrollHeight, b.offsetHeight) : b.offsetHeight) - (parseInt(d(b).css("borderTopWidth"), 10) || 0) - (parseInt(d(b).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top]
            } 
        } else if (a.containment.constructor == Array) this.containment = a.containment
    }, _convertPositionTo: function (a, b)
    {
        if (!b) b = this.position; a = a == "absolute" ? 1 : -1; var c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0],
this.offsetParent[0])) ? this.offsetParent : this.scrollParent, f = /(html|body)/i.test(c[0].tagName); return { top: b.top + this.offset.relative.top * a + this.offset.parent.top * a - (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : f ? 0 : c.scrollTop()) * a), left: b.left + this.offset.relative.left * a + this.offset.parent.left * a - (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() :
f ? 0 : c.scrollLeft()) * a)
}
    }, _generatePosition: function (a)
    {
        var b = this.options, c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, f = /(html|body)/i.test(c[0].tagName), e = a.pageX, g = a.pageY; if (this.originalPosition)
        {
            if (this.containment)
            {
                if (a.pageX - this.offset.click.left < this.containment[0]) e = this.containment[0] + this.offset.click.left; if (a.pageY - this.offset.click.top < this.containment[1]) g = this.containment[1] +
this.offset.click.top; if (a.pageX - this.offset.click.left > this.containment[2]) e = this.containment[2] + this.offset.click.left; if (a.pageY - this.offset.click.top > this.containment[3]) g = this.containment[3] + this.offset.click.top
            } if (b.grid)
            {
                g = this.originalPageY + Math.round((g - this.originalPageY) / b.grid[1]) * b.grid[1]; g = this.containment ? !(g - this.offset.click.top < this.containment[1] || g - this.offset.click.top > this.containment[3]) ? g : !(g - this.offset.click.top < this.containment[1]) ? g - b.grid[1] : g + b.grid[1] : g; e = this.originalPageX +
Math.round((e - this.originalPageX) / b.grid[0]) * b.grid[0]; e = this.containment ? !(e - this.offset.click.left < this.containment[0] || e - this.offset.click.left > this.containment[2]) ? e : !(e - this.offset.click.left < this.containment[0]) ? e - b.grid[0] : e + b.grid[0] : e
            } 
        } return { top: g - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : f ? 0 : c.scrollTop()), left: e - this.offset.click.left -
this.offset.relative.left - this.offset.parent.left + (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : f ? 0 : c.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 (a, b, c)
    {
        c = c || this._uiHash(); d.ui.plugin.call(this, a, [b, c]); if (a == "drag") this.positionAbs =
this._convertPositionTo("absolute"); return d.Widget.prototype._trigger.call(this, a, b, c)
    }, plugins: {}, _uiHash: function () { return { helper: this.helper, position: this.position, originalPosition: this.originalPosition, offset: this.positionAbs} } 
    }); d.extend(d.ui.draggable, { version: "1.8.2" }); d.ui.plugin.add("draggable", "connectToSortable", { start: function (a, b)
    {
        var c = d(this).data("draggable"), f = c.options, e = d.extend({}, b, { item: c.element }); c.sortables = []; d(f.connectToSortable).each(function ()
        {
            var g = d.data(this, "sortable");
            if (g && !g.options.disabled) { c.sortables.push({ instance: g, shouldRevert: g.options.revert }); g._refreshItems(); g._trigger("activate", a, e) } 
        })
    }, stop: function (a, b)
    {
        var c = d(this).data("draggable"), f = d.extend({}, b, { item: c.element }); d.each(c.sortables, function ()
        {
            if (this.instance.isOver)
            {
                this.instance.isOver = 0; c.cancelHelperRemoval = true; this.instance.cancelHelperRemoval = false; if (this.shouldRevert) this.instance.options.revert = true; this.instance._mouseStop(a); this.instance.options.helper = this.instance.options._helper;
                c.options.helper == "original" && this.instance.currentItem.css({ top: "auto", left: "auto" })
            } else { this.instance.cancelHelperRemoval = false; this.instance._trigger("deactivate", a, f) } 
        })
    }, drag: function (a, b)
    {
        var c = d(this).data("draggable"), f = this; d.each(c.sortables, function ()
        {
            this.instance.positionAbs = c.positionAbs; this.instance.helperProportions = c.helperProportions; this.instance.offset.click = c.offset.click; if (this.instance._intersectsWith(this.instance.containerCache))
            {
                if (!this.instance.isOver)
                {
                    this.instance.isOver =
1; this.instance.currentItem = d(f).clone().appendTo(this.instance.element).data("sortable-item", true); this.instance.options._helper = this.instance.options.helper; this.instance.options.helper = function () { return b.helper[0] }; a.target = this.instance.currentItem[0]; this.instance._mouseCapture(a, true); this.instance._mouseStart(a, true, true); this.instance.offset.click.top = c.offset.click.top; this.instance.offset.click.left = c.offset.click.left; this.instance.offset.parent.left -= c.offset.parent.left - this.instance.offset.parent.left;
                    this.instance.offset.parent.top -= c.offset.parent.top - this.instance.offset.parent.top; c._trigger("toSortable", a); c.dropped = this.instance.element; c.currentItem = c.element; this.instance.fromOutside = c
                } this.instance.currentItem && this.instance._mouseDrag(a)
            } else if (this.instance.isOver)
            {
                this.instance.isOver = 0; this.instance.cancelHelperRemoval = true; this.instance.options.revert = false; this.instance._trigger("out", a, this.instance._uiHash(this.instance)); this.instance._mouseStop(a, true); this.instance.options.helper =
this.instance.options._helper; this.instance.currentItem.remove(); this.instance.placeholder && this.instance.placeholder.remove(); c._trigger("fromSortable", a); c.dropped = false
            } 
        })
    } 
    }); d.ui.plugin.add("draggable", "cursor", { start: function () { var a = d("body"), b = d(this).data("draggable").options; if (a.css("cursor")) b._cursor = a.css("cursor"); a.css("cursor", b.cursor) }, stop: function () { var a = d(this).data("draggable").options; a._cursor && d("body").css("cursor", a._cursor) } }); d.ui.plugin.add("draggable", "iframeFix", { start: function ()
    {
        var a =
d(this).data("draggable").options; d(a.iframeFix === true ? "iframe" : a.iframeFix).each(function () { d('<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(d(this).offset()).appendTo("body") })
    }, stop: function () { d("div.ui-draggable-iframeFix").each(function () { this.parentNode.removeChild(this) }) } 
    }); d.ui.plugin.add("draggable", "opacity", { start: function (a, b)
    {
        a = d(b.helper); b = d(this).data("draggable").options;
        if (a.css("opacity")) b._opacity = a.css("opacity"); a.css("opacity", b.opacity)
    }, stop: function (a, b) { a = d(this).data("draggable").options; a._opacity && d(b.helper).css("opacity", a._opacity) } 
    }); d.ui.plugin.add("draggable", "scroll", { start: function () { var a = d(this).data("draggable"); if (a.scrollParent[0] != document && a.scrollParent[0].tagName != "HTML") a.overflowOffset = a.scrollParent.offset() }, drag: function (a)
    {
        var b = d(this).data("draggable"), c = b.options, f = false; if (b.scrollParent[0] != document && b.scrollParent[0].tagName !=
"HTML")
        {
            if (!c.axis || c.axis != "x") if (b.overflowOffset.top + b.scrollParent[0].offsetHeight - a.pageY < c.scrollSensitivity) b.scrollParent[0].scrollTop = f = b.scrollParent[0].scrollTop + c.scrollSpeed; else if (a.pageY - b.overflowOffset.top < c.scrollSensitivity) b.scrollParent[0].scrollTop = f = b.scrollParent[0].scrollTop - c.scrollSpeed; if (!c.axis || c.axis != "y") if (b.overflowOffset.left + b.scrollParent[0].offsetWidth - a.pageX < c.scrollSensitivity) b.scrollParent[0].scrollLeft = f = b.scrollParent[0].scrollLeft + c.scrollSpeed; else if (a.pageX -
b.overflowOffset.left < c.scrollSensitivity) b.scrollParent[0].scrollLeft = f = b.scrollParent[0].scrollLeft - c.scrollSpeed
        } else
        {
            if (!c.axis || c.axis != "x") if (a.pageY - d(document).scrollTop() < c.scrollSensitivity) f = d(document).scrollTop(d(document).scrollTop() - c.scrollSpeed); else if (d(window).height() - (a.pageY - d(document).scrollTop()) < c.scrollSensitivity) f = d(document).scrollTop(d(document).scrollTop() + c.scrollSpeed); if (!c.axis || c.axis != "y") if (a.pageX - d(document).scrollLeft() < c.scrollSensitivity) f = d(document).scrollLeft(d(document).scrollLeft() -
c.scrollSpeed); else if (d(window).width() - (a.pageX - d(document).scrollLeft()) < c.scrollSensitivity) f = d(document).scrollLeft(d(document).scrollLeft() + c.scrollSpeed)
        } f !== false && d.ui.ddmanager && !c.dropBehaviour && d.ui.ddmanager.prepareOffsets(b, a)
    } 
    }); d.ui.plugin.add("draggable", "snap", { start: function ()
    {
        var a = d(this).data("draggable"), b = a.options; a.snapElements = []; d(b.snap.constructor != String ? b.snap.items || ":data(draggable)" : b.snap).each(function ()
        {
            var c = d(this), f = c.offset(); this != a.element[0] && a.snapElements.push({ item: this,
                width: c.outerWidth(), height: c.outerHeight(), top: f.top, left: f.left
            })
        })
    }, drag: function (a, b)
    {
        for (var c = d(this).data("draggable"), f = c.options, e = f.snapTolerance, g = b.offset.left, n = g + c.helperProportions.width, m = b.offset.top, o = m + c.helperProportions.height, h = c.snapElements.length - 1; h >= 0; h--)
        {
            var i = c.snapElements[h].left, k = i + c.snapElements[h].width, j = c.snapElements[h].top, l = j + c.snapElements[h].height; if (i - e < g && g < k + e && j - e < m && m < l + e || i - e < g && g < k + e && j - e < o && o < l + e || i - e < n && n < k + e && j - e < m && m < l + e || i - e < n && n < k + e && j - e < o &&
o < l + e)
            {
                if (f.snapMode != "inner") { var p = Math.abs(j - o) <= e, q = Math.abs(l - m) <= e, r = Math.abs(i - n) <= e, s = Math.abs(k - g) <= e; if (p) b.position.top = c._convertPositionTo("relative", { top: j - c.helperProportions.height, left: 0 }).top - c.margins.top; if (q) b.position.top = c._convertPositionTo("relative", { top: l, left: 0 }).top - c.margins.top; if (r) b.position.left = c._convertPositionTo("relative", { top: 0, left: i - c.helperProportions.width }).left - c.margins.left; if (s) b.position.left = c._convertPositionTo("relative", { top: 0, left: k }).left - c.margins.left } var t =
p || q || r || s; if (f.snapMode != "outer") { p = Math.abs(j - m) <= e; q = Math.abs(l - o) <= e; r = Math.abs(i - g) <= e; s = Math.abs(k - n) <= e; if (p) b.position.top = c._convertPositionTo("relative", { top: j, left: 0 }).top - c.margins.top; if (q) b.position.top = c._convertPositionTo("relative", { top: l - c.helperProportions.height, left: 0 }).top - c.margins.top; if (r) b.position.left = c._convertPositionTo("relative", { top: 0, left: i }).left - c.margins.left; if (s) b.position.left = c._convertPositionTo("relative", { top: 0, left: k - c.helperProportions.width }).left - c.margins.left } if (!c.snapElements[h].snapping &&
(p || q || r || s || t)) c.options.snap.snap && c.options.snap.snap.call(c.element, a, d.extend(c._uiHash(), { snapItem: c.snapElements[h].item })); c.snapElements[h].snapping = p || q || r || s || t
            } else { c.snapElements[h].snapping && c.options.snap.release && c.options.snap.release.call(c.element, a, d.extend(c._uiHash(), { snapItem: c.snapElements[h].item })); c.snapElements[h].snapping = false } 
        } 
    } 
    }); d.ui.plugin.add("draggable", "stack", { start: function ()
    {
        var a = d(this).data("draggable").options; a = d.makeArray(d(a.stack)).sort(function (c, f)
        {
            return (parseInt(d(c).css("zIndex"),
10) || 0) - (parseInt(d(f).css("zIndex"), 10) || 0)
        }); if (a.length) { var b = parseInt(a[0].style.zIndex) || 0; d(a).each(function (c) { this.style.zIndex = b + c }); this[0].style.zIndex = b + a.length } 
    } 
    }); d.ui.plugin.add("draggable", "zIndex", { start: function (a, b) { a = d(b.helper); b = d(this).data("draggable").options; if (a.css("zIndex")) b._zIndex = a.css("zIndex"); a.css("zIndex", b.zIndex) }, stop: function (a, b) { a = d(this).data("draggable").options; a._zIndex && d(b.helper).css("zIndex", a._zIndex) } })
})(jQuery);
; /*
 * jQuery UI Droppable 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Droppables
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.widget.js
 *	jquery.ui.mouse.js
 *	jquery.ui.draggable.js
 */
(function (d)
{
    d.widget("ui.droppable", { widgetEventPrefix: "drop", options: { accept: "*", activeClass: false, addClasses: true, greedy: false, hoverClass: false, scope: "default", tolerance: "intersect" }, _create: function ()
    {
        var a = this.options, b = a.accept; this.isover = 0; this.isout = 1; this.accept = d.isFunction(b) ? b : function (c) { return c.is(b) }; this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight }; d.ui.ddmanager.droppables[a.scope] = d.ui.ddmanager.droppables[a.scope] || []; d.ui.ddmanager.droppables[a.scope].push(this);
        a.addClasses && this.element.addClass("ui-droppable")
    }, destroy: function () { for (var a = d.ui.ddmanager.droppables[this.options.scope], b = 0; b < a.length; b++) a[b] == this && a.splice(b, 1); this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable"); return this }, _setOption: function (a, b) { if (a == "accept") this.accept = d.isFunction(b) ? b : function (c) { return c.is(b) }; d.Widget.prototype._setOption.apply(this, arguments) }, _activate: function (a)
    {
        var b = d.ui.ddmanager.current; this.options.activeClass &&
this.element.addClass(this.options.activeClass); b && this._trigger("activate", a, this.ui(b))
    }, _deactivate: function (a) { var b = d.ui.ddmanager.current; this.options.activeClass && this.element.removeClass(this.options.activeClass); b && this._trigger("deactivate", a, this.ui(b)) }, _over: function (a)
    {
        var b = d.ui.ddmanager.current; if (!(!b || (b.currentItem || b.element)[0] == this.element[0])) if (this.accept.call(this.element[0], b.currentItem || b.element))
        {
            this.options.hoverClass && this.element.addClass(this.options.hoverClass);
            this._trigger("over", a, this.ui(b))
        } 
    }, _out: function (a) { var b = d.ui.ddmanager.current; if (!(!b || (b.currentItem || b.element)[0] == this.element[0])) if (this.accept.call(this.element[0], b.currentItem || b.element)) { this.options.hoverClass && this.element.removeClass(this.options.hoverClass); this._trigger("out", a, this.ui(b)) } }, _drop: function (a, b)
    {
        var c = b || d.ui.ddmanager.current; if (!c || (c.currentItem || c.element)[0] == this.element[0]) return false; var e = false; this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function ()
        {
            var g =
d.data(this, "droppable"); if (g.options.greedy && !g.options.disabled && g.options.scope == c.options.scope && g.accept.call(g.element[0], c.currentItem || c.element) && d.ui.intersect(c, d.extend(g, { offset: g.element.offset() }), g.options.tolerance)) { e = true; return false } 
        }); if (e) return false; if (this.accept.call(this.element[0], c.currentItem || c.element))
        {
            this.options.activeClass && this.element.removeClass(this.options.activeClass); this.options.hoverClass && this.element.removeClass(this.options.hoverClass); this._trigger("drop",
a, this.ui(c)); return this.element
        } return false
    }, ui: function (a) { return { draggable: a.currentItem || a.element, helper: a.helper, position: a.position, offset: a.positionAbs} } 
    }); d.extend(d.ui.droppable, { version: "1.8.2" }); d.ui.intersect = function (a, b, c)
    {
        if (!b.offset) return false; var e = (a.positionAbs || a.position.absolute).left, g = e + a.helperProportions.width, f = (a.positionAbs || a.position.absolute).top, h = f + a.helperProportions.height, i = b.offset.left, k = i + b.proportions.width, j = b.offset.top, l = j + b.proportions.height;
        switch (c)
        {
            case "fit": return i < e && g < k && j < f && h < l; case "intersect": return i < e + a.helperProportions.width / 2 && g - a.helperProportions.width / 2 < k && j < f + a.helperProportions.height / 2 && h - a.helperProportions.height / 2 < l; case "pointer": return d.ui.isOver((a.positionAbs || a.position.absolute).top + (a.clickOffset || a.offset.click).top, (a.positionAbs || a.position.absolute).left + (a.clickOffset || a.offset.click).left, j, i, b.proportions.height, b.proportions.width); case "touch": return (f >= j && f <= l || h >= j && h <= l || f < j && h > l) && (e >= i &&
e <= k || g >= i && g <= k || e < i && g > k); default: return false
        } 
    }; d.ui.ddmanager = { current: null, droppables: { "default": [] }, prepareOffsets: function (a, b)
    {
        var c = d.ui.ddmanager.droppables[a.options.scope] || [], e = b ? b.type : null, g = (a.currentItem || a.element).find(":data(droppable)").andSelf(), f = 0; a: for (; f < c.length; f++) if (!(c[f].options.disabled || a && !c[f].accept.call(c[f].element[0], a.currentItem || a.element)))
        {
            for (var h = 0; h < g.length; h++) if (g[h] == c[f].element[0]) { c[f].proportions.height = 0; continue a } c[f].visible = c[f].element.css("display") !=
"none"; if (c[f].visible) { c[f].offset = c[f].element.offset(); c[f].proportions = { width: c[f].element[0].offsetWidth, height: c[f].element[0].offsetHeight }; e == "mousedown" && c[f]._activate.call(c[f], b) } 
        } 
    }, drop: function (a, b)
    {
        var c = false; d.each(d.ui.ddmanager.droppables[a.options.scope] || [], function ()
        {
            if (this.options)
            {
                if (!this.options.disabled && this.visible && d.ui.intersect(a, this, this.options.tolerance)) c = c || this._drop.call(this, b); if (!this.options.disabled && this.visible && this.accept.call(this.element[0], a.currentItem ||
a.element)) { this.isout = 1; this.isover = 0; this._deactivate.call(this, b) } 
            } 
        }); return c
    }, drag: function (a, b)
    {
        a.options.refreshPositions && d.ui.ddmanager.prepareOffsets(a, b); d.each(d.ui.ddmanager.droppables[a.options.scope] || [], function ()
        {
            if (!(this.options.disabled || this.greedyChild || !this.visible))
            {
                var c = d.ui.intersect(a, this, this.options.tolerance); if (c = !c && this.isover == 1 ? "isout" : c && this.isover == 0 ? "isover" : null)
                {
                    var e; if (this.options.greedy)
                    {
                        var g = this.element.parents(":data(droppable):eq(0)"); if (g.length)
                        {
                            e =
d.data(g[0], "droppable"); e.greedyChild = c == "isover" ? 1 : 0
                        } 
                    } if (e && c == "isover") { e.isover = 0; e.isout = 1; e._out.call(e, b) } this[c] = 1; this[c == "isout" ? "isover" : "isout"] = 0; this[c == "isover" ? "_over" : "_out"].call(this, b); if (e && c == "isout") { e.isout = 0; e.isover = 1; e._over.call(e, b) } 
                } 
            } 
        })
    } 
    }
})(jQuery);
; /*
 * jQuery UI Resizable 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Resizables
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.mouse.js
 *	jquery.ui.widget.js
 */
(function (d)
{
    d.widget("ui.resizable", d.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 b = this, a = this.options; this.element.addClass("ui-resizable"); d.extend(this, { _aspectRatio: !!a.aspectRatio, aspectRatio: a.aspectRatio, originalElement: this.element,
            _proportionallyResizeElements: [], _helper: a.helper || a.ghost || a.animate ? a.helper || "ui-resizable-helper" : null
        }); if (this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i))
        {
            /relative/.test(this.element.css("position")) && d.browser.opera && this.element.css({ position: "relative", top: "auto", left: "auto" }); this.element.wrap(d('<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 = a.handles || (!d(".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 c = this.handles.split(","); this.handles = {}; for (var e = 0; e < c.length; e++) { var g = d.trim(c[e]), f = d('<div class="ui-resizable-handle ' + ("ui-resizable-" + g) + '"></div>'); /sw|se|ne|nw/.test(g) && f.css({ zIndex: ++a.zIndex }); "se" == g && f.addClass("ui-icon ui-icon-gripsmall-diagonal-se"); this.handles[g] = ".ui-resizable-" + g; this.element.append(f) } } this._renderAxis = function (h)
        {
            h = h || this.element; for (var i in this.handles)
            {
                if (this.handles[i].constructor ==
String) this.handles[i] = d(this.handles[i], this.element).show(); if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) { var j = d(this.handles[i], this.element), l = 0; l = /sw|ne|nw|se|n|s/.test(i) ? j.outerHeight() : j.outerWidth(); j = ["padding", /ne|nw|n/.test(i) ? "Top" : /se|sw|s/.test(i) ? "Bottom" : /^e$/.test(i) ? "Right" : "Left"].join(""); h.css(j, l); this._proportionallyResize() } d(this.handles[i])
            } 
        }; this._renderAxis(this.element); this._handles = d(".ui-resizable-handle", this.element).disableSelection();
        this._handles.mouseover(function () { if (!b.resizing) { if (this.className) var h = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i); b.axis = h && h[1] ? h[1] : "se" } }); if (a.autoHide) { this._handles.hide(); d(this.element).addClass("ui-resizable-autohide").hover(function () { d(this).removeClass("ui-resizable-autohide"); b._handles.show() }, function () { if (!b.resizing) { d(this).addClass("ui-resizable-autohide"); b._handles.hide() } }) } this._mouseInit()
    }, destroy: function ()
    {
        this._mouseDestroy(); var b = function (c) { d(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove() };
        if (this.elementIsWrapper) { b(this.element); var a = this.element; a.after(this.originalElement.css({ position: a.css("position"), width: a.outerWidth(), height: a.outerHeight(), top: a.css("top"), left: a.css("left") })).remove() } this.originalElement.css("resize", this.originalResizeStyle); b(this.originalElement); return this
    }, _mouseCapture: function (b) { var a = false; for (var c in this.handles) if (d(this.handles[c])[0] == b.target) a = true; return !this.options.disabled && a }, _mouseStart: function (b)
    {
        var a = this.options, c = this.element.position(),
e = this.element; this.resizing = true; this.documentScroll = { top: d(document).scrollTop(), left: d(document).scrollLeft() }; if (e.is(".ui-draggable") || /absolute/.test(e.css("position"))) e.css({ position: "absolute", top: c.top, left: c.left }); d.browser.opera && /relative/.test(e.css("position")) && e.css({ position: "relative", top: "auto", left: "auto" }); this._renderProxy(); c = m(this.helper.css("left")); var g = m(this.helper.css("top")); if (a.containment) { c += d(a.containment).scrollLeft() || 0; g += d(a.containment).scrollTop() || 0 } this.offset =
this.helper.offset(); this.position = { left: c, top: g }; this.size = this._helper ? { width: e.outerWidth(), height: e.outerHeight()} : { width: e.width(), height: e.height() }; this.originalSize = this._helper ? { width: e.outerWidth(), height: e.outerHeight()} : { width: e.width(), height: e.height() }; this.originalPosition = { left: c, top: g }; this.sizeDiff = { width: e.outerWidth() - e.width(), height: e.outerHeight() - e.height() }; this.originalMousePosition = { left: b.pageX, top: b.pageY }; this.aspectRatio = typeof a.aspectRatio == "number" ? a.aspectRatio :
this.originalSize.width / this.originalSize.height || 1; a = d(".ui-resizable-" + this.axis).css("cursor"); d("body").css("cursor", a == "auto" ? this.axis + "-resize" : a); e.addClass("ui-resizable-resizing"); this._propagate("start", b); return true
    }, _mouseDrag: function (b)
    {
        var a = this.helper, c = this.originalMousePosition, e = this._change[this.axis]; if (!e) return false; c = e.apply(this, [b, b.pageX - c.left || 0, b.pageY - c.top || 0]); if (this._aspectRatio || b.shiftKey) c = this._updateRatio(c, b); c = this._respectSize(c, b); this._propagate("resize",
b); a.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(c); this._trigger("resize", b, this.ui()); return false
    }, _mouseStop: function (b)
    {
        this.resizing = false; var a = this.options, c = this; if (this._helper)
        {
            var e = this._proportionallyResizeElements, g = e.length && /textarea/i.test(e[0].nodeName); e = g && d.ui.hasScroll(e[0], "left") ? 0 : c.sizeDiff.height;
            g = { width: c.size.width - (g ? 0 : c.sizeDiff.width), height: c.size.height - e }; e = parseInt(c.element.css("left"), 10) + (c.position.left - c.originalPosition.left) || null; var f = parseInt(c.element.css("top"), 10) + (c.position.top - c.originalPosition.top) || null; a.animate || this.element.css(d.extend(g, { top: f, left: e })); c.helper.height(c.size.height); c.helper.width(c.size.width); this._helper && !a.animate && this._proportionallyResize()
        } d("body").css("cursor", "auto"); this.element.removeClass("ui-resizable-resizing"); this._propagate("stop",
b); this._helper && this.helper.remove(); return false
    }, _updateCache: function (b) { this.offset = this.helper.offset(); if (k(b.left)) this.position.left = b.left; if (k(b.top)) this.position.top = b.top; if (k(b.height)) this.size.height = b.height; if (k(b.width)) this.size.width = b.width }, _updateRatio: function (b)
    {
        var a = this.position, c = this.size, e = this.axis; if (b.height) b.width = c.height * this.aspectRatio; else if (b.width) b.height = c.width / this.aspectRatio; if (e == "sw") { b.left = a.left + (c.width - b.width); b.top = null } if (e == "nw")
        {
            b.top =
a.top + (c.height - b.height); b.left = a.left + (c.width - b.width)
        } return b
    }, _respectSize: function (b)
    {
        var a = this.options, c = this.axis, e = k(b.width) && a.maxWidth && a.maxWidth < b.width, g = k(b.height) && a.maxHeight && a.maxHeight < b.height, f = k(b.width) && a.minWidth && a.minWidth > b.width, h = k(b.height) && a.minHeight && a.minHeight > b.height; if (f) b.width = a.minWidth; if (h) b.height = a.minHeight; if (e) b.width = a.maxWidth; if (g) b.height = a.maxHeight; var i = this.originalPosition.left + this.originalSize.width, j = this.position.top + this.size.height,
l = /sw|nw|w/.test(c); c = /nw|ne|n/.test(c); if (f && l) b.left = i - a.minWidth; if (e && l) b.left = i - a.maxWidth; if (h && c) b.top = j - a.minHeight; if (g && c) b.top = j - a.maxHeight; if ((a = !b.width && !b.height) && !b.left && b.top) b.top = null; else if (a && !b.top && b.left) b.left = null; return b
    }, _proportionallyResize: function ()
    {
        if (this._proportionallyResizeElements.length) for (var b = this.helper || this.element, a = 0; a < this._proportionallyResizeElements.length; a++)
        {
            var c = this._proportionallyResizeElements[a]; if (!this.borderDif)
            {
                var e = [c.css("borderTopWidth"),
c.css("borderRightWidth"), c.css("borderBottomWidth"), c.css("borderLeftWidth")], g = [c.css("paddingTop"), c.css("paddingRight"), c.css("paddingBottom"), c.css("paddingLeft")]; this.borderDif = d.map(e, function (f, h) { f = parseInt(f, 10) || 0; h = parseInt(g[h], 10) || 0; return f + h })
            } d.browser.msie && (d(b).is(":hidden") || d(b).parents(":hidden").length) || c.css({ height: b.height() - this.borderDif[0] - this.borderDif[2] || 0, width: b.width() - this.borderDif[1] - this.borderDif[3] || 0 })
        } 
    }, _renderProxy: function ()
    {
        var b = this.options; this.elementOffset =
this.element.offset(); if (this._helper) { this.helper = this.helper || d('<div style="overflow:hidden;"></div>'); var a = d.browser.msie && d.browser.version < 7, c = a ? 1 : 0; a = a ? 2 : -1; this.helper.addClass(this._helper).css({ width: this.element.outerWidth() + a, height: this.element.outerHeight() + a, position: "absolute", left: this.elementOffset.left - c + "px", top: this.elementOffset.top - c + "px", zIndex: ++b.zIndex }); this.helper.appendTo("body").disableSelection() } else this.helper = this.element
    }, _change: { e: function (b, a)
    {
        return { width: this.originalSize.width +
a
        }
    }, w: function (b, a) { return { left: this.originalPosition.left + a, width: this.originalSize.width - a} }, n: function (b, a, c) { return { top: this.originalPosition.top + c, height: this.originalSize.height - c} }, s: function (b, a, c) { return { height: this.originalSize.height + c} }, se: function (b, a, c) { return d.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [b, a, c])) }, sw: function (b, a, c) { return d.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [b, a, c])) }, ne: function (b, a, c)
    {
        return d.extend(this._change.n.apply(this,
arguments), this._change.e.apply(this, [b, a, c]))
    }, nw: function (b, a, c) { return d.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [b, a, c])) } 
    }, _propagate: function (b, a) { d.ui.plugin.call(this, b, [a, this.ui()]); b != "resize" && this._trigger(b, a, 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} } 
    }); d.extend(d.ui.resizable,
{ version: "1.8.2" }); d.ui.plugin.add("resizable", "alsoResize", { start: function ()
{
    var b = d(this).data("resizable").options, a = function (c) { d(c).each(function () { d(this).data("resizable-alsoresize", { width: parseInt(d(this).width(), 10), height: parseInt(d(this).height(), 10), left: parseInt(d(this).css("left"), 10), top: parseInt(d(this).css("top"), 10) }) }) }; if (typeof b.alsoResize == "object" && !b.alsoResize.parentNode) if (b.alsoResize.length) { b.alsoResize = b.alsoResize[0]; a(b.alsoResize) } else d.each(b.alsoResize, function (c) { a(c) });
    else a(b.alsoResize)
}, resize: function ()
{
    var b = d(this).data("resizable"), a = b.options, c = b.originalSize, e = b.originalPosition, g = { height: b.size.height - c.height || 0, width: b.size.width - c.width || 0, top: b.position.top - e.top || 0, left: b.position.left - e.left || 0 }, f = function (h, i)
    {
        d(h).each(function ()
        {
            var j = d(this), l = d(this).data("resizable-alsoresize"), p = {}; d.each((i && i.length ? i : ["width", "height", "top", "left"]) || ["width", "height", "top", "left"], function (n, o) { if ((n = (l[o] || 0) + (g[o] || 0)) && n >= 0) p[o] = n || null }); if (/relative/.test(j.css("position")) &&
d.browser.opera) { b._revertToRelativePosition = true; j.css({ position: "absolute", top: "auto", left: "auto" }) } j.css(p)
        })
    }; typeof a.alsoResize == "object" && !a.alsoResize.nodeType ? d.each(a.alsoResize, function (h, i) { f(h, i) }) : f(a.alsoResize)
}, stop: function () { var b = d(this).data("resizable"); if (b._revertToRelativePosition && d.browser.opera) { b._revertToRelativePosition = false; el.css({ position: "relative" }) } d(this).removeData("resizable-alsoresize-start") } 
}); d.ui.plugin.add("resizable", "animate", { stop: function (b)
{
    var a =
d(this).data("resizable"), c = a.options, e = a._proportionallyResizeElements, g = e.length && /textarea/i.test(e[0].nodeName), f = g && d.ui.hasScroll(e[0], "left") ? 0 : a.sizeDiff.height; g = { width: a.size.width - (g ? 0 : a.sizeDiff.width), height: a.size.height - f }; f = parseInt(a.element.css("left"), 10) + (a.position.left - a.originalPosition.left) || null; var h = parseInt(a.element.css("top"), 10) + (a.position.top - a.originalPosition.top) || null; a.element.animate(d.extend(g, h && f ? { top: h, left: f} : {}), { duration: c.animateDuration, easing: c.animateEasing,
    step: function () { var i = { width: parseInt(a.element.css("width"), 10), height: parseInt(a.element.css("height"), 10), top: parseInt(a.element.css("top"), 10), left: parseInt(a.element.css("left"), 10) }; e && e.length && d(e[0]).css({ width: i.width, height: i.height }); a._updateCache(i); a._propagate("resize", b) } 
})
} 
}); d.ui.plugin.add("resizable", "containment", { start: function ()
{
    var b = d(this).data("resizable"), a = b.element, c = b.options.containment; if (a = c instanceof d ? c.get(0) : /parent/.test(c) ? a.parent().get(0) : c)
    {
        b.containerElement =
d(a); if (/document/.test(c) || c == document) { b.containerOffset = { left: 0, top: 0 }; b.containerPosition = { left: 0, top: 0 }; b.parentData = { element: d(document), left: 0, top: 0, width: d(document).width(), height: d(document).height() || document.body.parentNode.scrollHeight} } else
        {
            var e = d(a), g = []; d(["Top", "Right", "Left", "Bottom"]).each(function (i, j) { g[i] = m(e.css("padding" + j)) }); b.containerOffset = e.offset(); b.containerPosition = e.position(); b.containerSize = { height: e.innerHeight() - g[3], width: e.innerWidth() - g[1] }; c = b.containerOffset;
            var f = b.containerSize.height, h = b.containerSize.width; h = d.ui.hasScroll(a, "left") ? a.scrollWidth : h; f = d.ui.hasScroll(a) ? a.scrollHeight : f; b.parentData = { element: a, left: c.left, top: c.top, width: h, height: f}
        } 
    } 
}, resize: function (b)
{
    var a = d(this).data("resizable"), c = a.options, e = a.containerOffset, g = a.position; b = a._aspectRatio || b.shiftKey; var f = { top: 0, left: 0 }, h = a.containerElement; if (h[0] != document && /static/.test(h.css("position"))) f = e; if (g.left < (a._helper ? e.left : 0))
    {
        a.size.width += a._helper ? a.position.left - e.left :
a.position.left - f.left; if (b) a.size.height = a.size.width / c.aspectRatio; a.position.left = c.helper ? e.left : 0
    } if (g.top < (a._helper ? e.top : 0)) { a.size.height += a._helper ? a.position.top - e.top : a.position.top; if (b) a.size.width = a.size.height * c.aspectRatio; a.position.top = a._helper ? e.top : 0 } a.offset.left = a.parentData.left + a.position.left; a.offset.top = a.parentData.top + a.position.top; c = Math.abs((a._helper ? a.offset.left - f.left : a.offset.left - f.left) + a.sizeDiff.width); e = Math.abs((a._helper ? a.offset.top - f.top : a.offset.top -
e.top) + a.sizeDiff.height); g = a.containerElement.get(0) == a.element.parent().get(0); f = /relative|absolute/.test(a.containerElement.css("position")); if (g && f) c -= a.parentData.left; if (c + a.size.width >= a.parentData.width) { a.size.width = a.parentData.width - c; if (b) a.size.height = a.size.width / a.aspectRatio } if (e + a.size.height >= a.parentData.height) { a.size.height = a.parentData.height - e; if (b) a.size.width = a.size.height * a.aspectRatio } 
}, stop: function ()
{
    var b = d(this).data("resizable"), a = b.options, c = b.containerOffset, e = b.containerPosition,
g = b.containerElement, f = d(b.helper), h = f.offset(), i = f.outerWidth() - b.sizeDiff.width; f = f.outerHeight() - b.sizeDiff.height; b._helper && !a.animate && /relative/.test(g.css("position")) && d(this).css({ left: h.left - e.left - c.left, width: i, height: f }); b._helper && !a.animate && /static/.test(g.css("position")) && d(this).css({ left: h.left - e.left - c.left, width: i, height: f })
} 
}); d.ui.plugin.add("resizable", "ghost", { start: function ()
{
    var b = d(this).data("resizable"), a = b.options, c = b.size; b.ghost = b.originalElement.clone(); b.ghost.css({ opacity: 0.25,
        display: "block", position: "relative", height: c.height, width: c.width, margin: 0, left: 0, top: 0
    }).addClass("ui-resizable-ghost").addClass(typeof a.ghost == "string" ? a.ghost : ""); b.ghost.appendTo(b.helper)
}, resize: function () { var b = d(this).data("resizable"); b.ghost && b.ghost.css({ position: "relative", height: b.size.height, width: b.size.width }) }, stop: function () { var b = d(this).data("resizable"); b.ghost && b.helper && b.helper.get(0).removeChild(b.ghost.get(0)) } 
}); d.ui.plugin.add("resizable", "grid", { resize: function ()
{
    var b =
d(this).data("resizable"), a = b.options, c = b.size, e = b.originalSize, g = b.originalPosition, f = b.axis; a.grid = typeof a.grid == "number" ? [a.grid, a.grid] : a.grid; var h = Math.round((c.width - e.width) / (a.grid[0] || 1)) * (a.grid[0] || 1); a = Math.round((c.height - e.height) / (a.grid[1] || 1)) * (a.grid[1] || 1); if (/^(se|s|e)$/.test(f)) { b.size.width = e.width + h; b.size.height = e.height + a } else if (/^(ne)$/.test(f)) { b.size.width = e.width + h; b.size.height = e.height + a; b.position.top = g.top - a } else
    {
        if (/^(sw)$/.test(f))
        {
            b.size.width = e.width + h; b.size.height =
e.height + a
        } else { b.size.width = e.width + h; b.size.height = e.height + a; b.position.top = g.top - a } b.position.left = g.left - h
    } 
} 
}); var m = function (b) { return parseInt(b, 10) || 0 }, k = function (b) { return !isNaN(parseInt(b, 10)) } 
})(jQuery);
;
/*
* jQuery UI Selectable 1.8.2
*
* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI/Selectables
*
* Depends:
*	jquery.ui.core.js
*	jquery.ui.mouse.js
*	jquery.ui.widget.js
*/
(function ($)
{

    $.widget("ui.selectable", $.ui.mouse, {
        options: {
            appendTo: 'body',
            autoRefresh: true,
            distance: 0,
            filter: '*',
            tolerance: 'touch'
        },
        _create: function ()
        {
            var self = this;

            this.element.addClass("ui-selectable");

            this.dragged = false;

            // cache selectee children based on filter
            var selectees;
            this.refresh = function ()
            {
                selectees = $(self.options.filter, self.element[0]);
                selectees.each(function ()
                {
                    var $this = $(this);
                    var pos = $this.offset();
                    $.data(this, "selectable-item", {
                        element: this,
                        $element: $this,
                        left: pos.left,
                        top: pos.top,
                        right: pos.left + $this.outerWidth(),
                        bottom: pos.top + $this.outerHeight(),
                        startselected: false,
                        selected: $this.hasClass('ui-selected'),
                        selecting: $this.hasClass('ui-selecting'),
                        unselecting: $this.hasClass('ui-unselecting')
                    });
                });
            };
            this.refresh();

            this.selectees = selectees.addClass("ui-selectee");

            this._mouseInit();

            this.helper = $("<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 (event)
        {
            var self = this;

            this.opos = [event.pageX, event.pageY];

            if (this.options.disabled)
                return;

            var options = this.options;

            this.selectees = $(options.filter, this.element[0]);

            this._trigger("start", event);

            $(options.appendTo).append(this.helper);
            // position helper (lasso)
            this.helper.css({
                "z-index": 100,
                "position": "absolute",
                "left": event.clientX,
                "top": event.clientY,
                "width": 0,
                "height": 0
            });

            if (options.autoRefresh)
            {
                this.refresh();
            }

            this.selectees.filter('.ui-selected').each(function ()
            {
                var selectee = $.data(this, "selectable-item");
                selectee.startselected = true;
                if (!event.metaKey)
                {
                    selectee.$element.removeClass('ui-selected');
                    selectee.selected = false;
                    selectee.$element.addClass('ui-unselecting');
                    selectee.unselecting = true;
                    // selectable UNSELECTING callback
                    self._trigger("unselecting", event, {
                        unselecting: selectee.element
                    });
                }
            });

            $(event.target).parents().andSelf().each(function ()
            {
                var selectee = $.data(this, "selectable-item");
                if (selectee)
                {
                    var doSelect = !event.metaKey || !selectee.$element.hasClass('ui-selected');
                    selectee.$element
					.removeClass(doSelect ? "ui-unselecting" : "ui-selected")
					.addClass(doSelect ? "ui-selecting" : "ui-unselecting");
                    selectee.unselecting = !doSelect;
                    selectee.selecting = doSelect;
                    selectee.selected = doSelect;
                    // selectable (UN)SELECTING callback
                    if (doSelect)
                    {
                        self._trigger("selecting", event, {
                            selecting: selectee.element
                        });
                    } else
                    {
                        self._trigger("unselecting", event, {
                            unselecting: selectee.element
                        });
                    }
                    return false;
                }
            });

        },

        _mouseDrag: function (event)
        {
            var self = this;
            this.dragged = true;

            if (this.options.disabled)
                return;

            var options = this.options;

            var x1 = this.opos[0], y1 = this.opos[1], x2 = event.pageX, y2 = event.pageY;
            if (x1 > x2) { var tmp = x2; x2 = x1; x1 = tmp; }
            if (y1 > y2) { var tmp = y2; y2 = y1; y1 = tmp; }
            this.helper.css({ left: x1, top: y1, width: x2 - x1, height: y2 - y1 });

            this.selectees.each(function ()
            {
                var selectee = $.data(this, "selectable-item");
                //prevent helper from being selected if appendTo: selectable
                if (!selectee || selectee.element == self.element[0])
                    return;
                var hit = false;
                if (options.tolerance == 'touch')
                {
                    hit = (!(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1));
                } else if (options.tolerance == 'fit')
                {
                    hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);
                }

                if (hit)
                {
                    // SELECT
                    if (selectee.selected)
                    {
                        selectee.$element.removeClass('ui-selected');
                        selectee.selected = false;
                    }
                    if (selectee.unselecting)
                    {
                        selectee.$element.removeClass('ui-unselecting');
                        selectee.unselecting = false;
                    }
                    if (!selectee.selecting)
                    {
                        selectee.$element.addClass('ui-selecting');
                        selectee.selecting = true;
                        // selectable SELECTING callback
                        self._trigger("selecting", event, {
                            selecting: selectee.element
                        });
                    }
                } else
                {
                    // UNSELECT
                    if (selectee.selecting)
                    {
                        if (event.metaKey && selectee.startselected)
                        {
                            selectee.$element.removeClass('ui-selecting');
                            selectee.selecting = false;
                            selectee.$element.addClass('ui-selected');
                            selectee.selected = true;
                        } else
                        {
                            selectee.$element.removeClass('ui-selecting');
                            selectee.selecting = false;
                            if (selectee.startselected)
                            {
                                selectee.$element.addClass('ui-unselecting');
                                selectee.unselecting = true;
                            }
                            // selectable UNSELECTING callback
                            self._trigger("unselecting", event, {
                                unselecting: selectee.element
                            });
                        }
                    }
                    if (selectee.selected)
                    {
                        if (!event.metaKey && !selectee.startselected)
                        {
                            selectee.$element.removeClass('ui-selected');
                            selectee.selected = false;

                            selectee.$element.addClass('ui-unselecting');
                            selectee.unselecting = true;
                            // selectable UNSELECTING callback
                            self._trigger("unselecting", event, {
                                unselecting: selectee.element
                            });
                        }
                    }
                }
            });

            return false;
        },

        _mouseStop: function (event)
        {
            var self = this;

            this.dragged = false;

            var options = this.options;

            $('.ui-unselecting', this.element[0]).each(function ()
            {
                var selectee = $.data(this, "selectable-item");
                selectee.$element.removeClass('ui-unselecting');
                selectee.unselecting = false;
                selectee.startselected = false;
                self._trigger("unselected", event, {
                    unselected: selectee.element
                });
            });
            $('.ui-selecting', this.element[0]).each(function ()
            {
                var selectee = $.data(this, "selectable-item");
                selectee.$element.removeClass('ui-selecting').addClass('ui-selected');
                selectee.selecting = false;
                selectee.selected = true;
                selectee.startselected = true;
                self._trigger("selected", event, {
                    selected: selectee.element
                });
            });
            this._trigger("stop", event);

            this.helper.remove();

            return false;
        }

    });

    $.extend($.ui.selectable, {
        version: "1.8.2"
    });

})(jQuery);
(function (e)
{
    e.widget("ui.selectable", e.ui.mouse, { options: { appendTo: "body", autoRefresh: true, distance: 0, filter: "*", tolerance: "touch" }, _create: function ()
    {
        var c = this; this.element.addClass("ui-selectable"); this.dragged = false; var f; this.refresh = function ()
        {
            f = e(c.options.filter, c.element[0]); f.each(function ()
            {
                var d = e(this), b = d.offset(); e.data(this, "selectable-item", { element: this, $element: d, left: b.left, top: b.top, right: b.left + d.outerWidth(), bottom: b.top + d.outerHeight(), startselected: false, selected: d.hasClass("ui-selected"),
                    selecting: d.hasClass("ui-selecting"), unselecting: d.hasClass("ui-unselecting")
                })
            })
        }; this.refresh(); this.selectees = f.addClass("ui-selectee"); this._mouseInit(); this.helper = e("<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 (c)
    {
        var f = this; this.opos = [c.pageX,
c.pageY]; if (!this.options.disabled)
        {
            var d = this.options; this.selectees = e(d.filter, this.element[0]); this._trigger("start", c); e(d.appendTo).append(this.helper); this.helper.css({ "z-index": 100, position: "absolute", left: c.clientX, top: c.clientY, width: 0, height: 0 }); d.autoRefresh && this.refresh(); this.selectees.filter(".ui-selected").each(function ()
            {
                var b = e.data(this, "selectable-item"); b.startselected = true; if (!c.metaKey)
                {
                    b.$element.removeClass("ui-selected"); b.selected = false; b.$element.addClass("ui-unselecting");
                    b.unselecting = true; f._trigger("unselecting", c, { unselecting: b.element })
                } 
            }); e(c.target).parents().andSelf().each(function () { var b = e.data(this, "selectable-item"); if (b) { var g = !c.metaKey || !b.$element.hasClass("ui-selected"); b.$element.removeClass(g ? "ui-unselecting" : "ui-selected").addClass(g ? "ui-selecting" : "ui-unselecting"); b.unselecting = !g; b.selecting = g; (b.selected = g) ? f._trigger("selecting", c, { selecting: b.element }) : f._trigger("unselecting", c, { unselecting: b.element }); return false } })
        } 
    }, _mouseDrag: function (c)
    {
        var f =
this; this.dragged = true; if (!this.options.disabled)
        {
            var d = this.options, b = this.opos[0], g = this.opos[1], h = c.pageX, i = c.pageY; if (b > h) { var j = h; h = b; b = j } if (g > i) { j = i; i = g; g = j } this.helper.css({ left: b, top: g, width: h - b, height: i - g }); this.selectees.each(function ()
            {
                var a = e.data(this, "selectable-item"); if (!(!a || a.element == f.element[0]))
                {
                    var k = false; if (d.tolerance == "touch") k = !(a.left > h || a.right < b || a.top > i || a.bottom < g); else if (d.tolerance == "fit") k = a.left > b && a.right < h && a.top > g && a.bottom < i; if (k)
                    {
                        if (a.selected)
                        {
                            a.$element.removeClass("ui-selected");
                            a.selected = false
                        } if (a.unselecting) { a.$element.removeClass("ui-unselecting"); a.unselecting = false } if (!a.selecting) { a.$element.addClass("ui-selecting"); a.selecting = true; f._trigger("selecting", c, { selecting: a.element }) } 
                    } else
                    {
                        if (a.selecting) if (c.metaKey && a.startselected) { a.$element.removeClass("ui-selecting"); a.selecting = false; a.$element.addClass("ui-selected"); a.selected = true } else
                        {
                            a.$element.removeClass("ui-selecting"); a.selecting = false; if (a.startselected)
                            {
                                a.$element.addClass("ui-unselecting"); a.unselecting =
true
                            } f._trigger("unselecting", c, { unselecting: a.element })
                        } if (a.selected) if (!c.metaKey && !a.startselected) { a.$element.removeClass("ui-selected"); a.selected = false; a.$element.addClass("ui-unselecting"); a.unselecting = true; f._trigger("unselecting", c, { unselecting: a.element }) } 
                    } 
                } 
            }); return false
        } 
    }, _mouseStop: function (c)
    {
        var f = this; this.dragged = false; e(".ui-unselecting", this.element[0]).each(function ()
        {
            var d = e.data(this, "selectable-item"); d.$element.removeClass("ui-unselecting"); d.unselecting = false; d.startselected =
false; f._trigger("unselected", c, { unselected: d.element })
        }); e(".ui-selecting", this.element[0]).each(function () { var d = e.data(this, "selectable-item"); d.$element.removeClass("ui-selecting").addClass("ui-selected"); d.selecting = false; d.selected = true; d.startselected = true; f._trigger("selected", c, { selected: d.element }) }); this._trigger("stop", c); this.helper.remove(); return false
    } 
    }); e.extend(e.ui.selectable, { version: "1.8.2" })
})(jQuery);
; /*
 * jQuery UI Sortable 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Sortables
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.mouse.js
 *	jquery.ui.widget.js
 */
(function (d)
{
    d.widget("ui.sortable", d.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")) : 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 a = this.items.length - 1; a >= 0; a--) this.items[a].item.removeData("sortable-item"); return this }, _setOption: function (a, b)
    {
        if (a === "disabled") { this.options[a] = b; this.widget()[b ? "addClass" : "removeClass"]("ui-sortable-disabled") } else d.Widget.prototype._setOption.apply(this,
arguments)
    }, _mouseCapture: function (a, b)
    {
        if (this.reverting) return false; if (this.options.disabled || this.options.type == "static") return false; this._refreshItems(a); var c = null, e = this; d(a.target).parents().each(function () { if (d.data(this, "sortable-item") == e) { c = d(this); return false } }); if (d.data(a.target, "sortable-item") == e) c = d(a.target); if (!c) return false; if (this.options.handle && !b) { var f = false; d(this.options.handle, c).find("*").andSelf().each(function () { if (this == a.target) f = true }); if (!f) return false } this.currentItem =
c; this._removeCurrentsFromItems(); return true
    }, _mouseStart: function (a, b, c)
    {
        b = this.options; var e = this; this.currentContainer = this; this.refreshPositions(); this.helper = this._createHelper(a); 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"); d.extend(this.offset,
{ click: { left: a.pageX - this.offset.left, top: a.pageY - this.offset.top }, parent: this._getParentOffset(), relative: this._getRelativeOffset() }); this.originalPosition = this._generatePosition(a); this.originalPageX = a.pageX; this.originalPageY = a.pageY; b.cursorAt && this._adjustOffsetFromHelper(b.cursorAt); this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] }; this.helper[0] != this.currentItem[0] && this.currentItem.hide(); this._createPlaceholder(); b.containment && this._setContainment();
        if (b.cursor) { if (d("body").css("cursor")) this._storedCursor = d("body").css("cursor"); d("body").css("cursor", b.cursor) } if (b.opacity) { if (this.helper.css("opacity")) this._storedOpacity = this.helper.css("opacity"); this.helper.css("opacity", b.opacity) } if (b.zIndex) { if (this.helper.css("zIndex")) this._storedZIndex = this.helper.css("zIndex"); this.helper.css("zIndex", b.zIndex) } if (this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML") this.overflowOffset = this.scrollParent.offset(); this._trigger("start",
a, this._uiHash()); this._preserveHelperProportions || this._cacheHelperProportions(); if (!c) for (c = this.containers.length - 1; c >= 0; c--) this.containers[c]._trigger("activate", a, e._uiHash(this)); if (d.ui.ddmanager) d.ui.ddmanager.current = this; d.ui.ddmanager && !b.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a); this.dragging = true; this.helper.addClass("ui-sortable-helper"); this._mouseDrag(a); return true
    }, _mouseDrag: function (a)
    {
        this.position = this._generatePosition(a); this.positionAbs = this._convertPositionTo("absolute");
        if (!this.lastPositionAbs) this.lastPositionAbs = this.positionAbs; if (this.options.scroll)
        {
            var b = this.options, c = false; if (this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML")
            {
                if (this.overflowOffset.top + this.scrollParent[0].offsetHeight - a.pageY < b.scrollSensitivity) this.scrollParent[0].scrollTop = c = this.scrollParent[0].scrollTop + b.scrollSpeed; else if (a.pageY - this.overflowOffset.top < b.scrollSensitivity) this.scrollParent[0].scrollTop = c = this.scrollParent[0].scrollTop - b.scrollSpeed; if (this.overflowOffset.left +
this.scrollParent[0].offsetWidth - a.pageX < b.scrollSensitivity) this.scrollParent[0].scrollLeft = c = this.scrollParent[0].scrollLeft + b.scrollSpeed; else if (a.pageX - this.overflowOffset.left < b.scrollSensitivity) this.scrollParent[0].scrollLeft = c = this.scrollParent[0].scrollLeft - b.scrollSpeed
            } else
            {
                if (a.pageY - d(document).scrollTop() < b.scrollSensitivity) c = d(document).scrollTop(d(document).scrollTop() - b.scrollSpeed); else if (d(window).height() - (a.pageY - d(document).scrollTop()) < b.scrollSensitivity) c = d(document).scrollTop(d(document).scrollTop() +
b.scrollSpeed); if (a.pageX - d(document).scrollLeft() < b.scrollSensitivity) c = d(document).scrollLeft(d(document).scrollLeft() - b.scrollSpeed); else if (d(window).width() - (a.pageX - d(document).scrollLeft()) < b.scrollSensitivity) c = d(document).scrollLeft(d(document).scrollLeft() + b.scrollSpeed)
            } c !== false && d.ui.ddmanager && !b.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a)
        } 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 (b = this.items.length - 1; b >= 0; b--)
        {
            c = this.items[b]; var e = c.item[0], f = this._intersectsWithPointer(c); if (f) if (e != this.currentItem[0] && this.placeholder[f == 1 ? "next" : "prev"]()[0] != e && !d.ui.contains(this.placeholder[0], e) && (this.options.type == "semi-dynamic" ? !d.ui.contains(this.element[0], e) : true))
            {
                this.direction = f == 1 ? "down" : "up"; if (this.options.tolerance == "pointer" || this._intersectsWithSides(c)) this._rearrange(a,
c); else break; this._trigger("change", a, this._uiHash()); break
            } 
        } this._contactContainers(a); d.ui.ddmanager && d.ui.ddmanager.drag(this, a); this._trigger("sort", a, this._uiHash()); this.lastPositionAbs = this.positionAbs; return false
    }, _mouseStop: function (a, b)
    {
        if (a)
        {
            d.ui.ddmanager && !this.options.dropBehaviour && d.ui.ddmanager.drop(this, a); if (this.options.revert)
            {
                var c = this; b = c.placeholder.offset(); c.reverting = true; d(this.helper).animate({ left: b.left - this.offset.parent.left - c.margins.left + (this.offsetParent[0] ==
document.body ? 0 : this.offsetParent[0].scrollLeft), top: b.top - this.offset.parent.top - c.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)
                }, parseInt(this.options.revert, 10) || 500, function () { c._clear(a) })
            } else this._clear(a, b); return false
        } 
    }, cancel: function ()
    {
        var a = this; if (this.dragging)
        {
            this._mouseUp(); this.options.helper == "original" ? this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") : this.currentItem.show(); for (var b = this.containers.length - 1; b >= 0; b--)
            {
                this.containers[b]._trigger("deactivate",
null, a._uiHash(this)); if (this.containers[b].containerCache.over) { this.containers[b]._trigger("out", null, a._uiHash(this)); this.containers[b].containerCache.over = 0 } 
            } 
        } 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(); d.extend(this, { helper: null, dragging: false, reverting: false, _noFinalSort: null }); this.domPosition.prev ? d(this.domPosition.prev).after(this.currentItem) :
d(this.domPosition.parent).prepend(this.currentItem); return this
    }, serialize: function (a) { var b = this._getItemsAsjQuery(a && a.connected), c = []; a = a || {}; d(b).each(function () { var e = (d(a.item || this).attr(a.attribute || "id") || "").match(a.expression || /(.+)[-=_](.+)/); if (e) c.push((a.key || e[1] + "[]") + "=" + (a.key && a.expression ? e[1] : e[2])) }); return c.join("&") }, toArray: function (a) { var b = this._getItemsAsjQuery(a && a.connected), c = []; a = a || {}; b.each(function () { c.push(d(a.item || this).attr(a.attribute || "id") || "") }); return c },
        _intersectsWith: function (a)
        {
            var b = this.positionAbs.left, c = b + this.helperProportions.width, e = this.positionAbs.top, f = e + this.helperProportions.height, g = a.left, h = g + a.width, i = a.top, k = i + a.height, j = this.offset.click.top, l = this.offset.click.left; j = e + j > i && e + j < k && b + l > g && b + l < h; return this.options.tolerance == "pointer" || this.options.forcePointerForContainers || this.options.tolerance != "pointer" && this.helperProportions[this.floating ? "width" : "height"] > a[this.floating ? "width" : "height"] ? j : g < b + this.helperProportions.width /
2 && c - this.helperProportions.width / 2 < h && i < e + this.helperProportions.height / 2 && f - this.helperProportions.height / 2 < k
        }, _intersectsWithPointer: function (a) { var b = d.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, a.top, a.height); a = d.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, a.left, a.width); b = b && a; a = this._getDragVerticalDirection(); var c = this._getDragHorizontalDirection(); if (!b) return false; return this.floating ? c && c == "right" || a == "down" ? 2 : 1 : a && (a == "down" ? 2 : 1) }, _intersectsWithSides: function (a)
        {
            var b =
d.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, a.top + a.height / 2, a.height); a = d.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, a.left + a.width / 2, a.width); var c = this._getDragVerticalDirection(), e = this._getDragHorizontalDirection(); return this.floating && e ? e == "right" && a || e == "left" && !a : c && (c == "down" && b || c == "up" && !b)
        }, _getDragVerticalDirection: function () { var a = this.positionAbs.top - this.lastPositionAbs.top; return a != 0 && (a > 0 ? "down" : "up") }, _getDragHorizontalDirection: function ()
        {
            var a =
this.positionAbs.left - this.lastPositionAbs.left; return a != 0 && (a > 0 ? "right" : "left")
        }, refresh: function (a) { this._refreshItems(a); this.refreshPositions(); return this }, _connectWith: function () { var a = this.options; return a.connectWith.constructor == String ? [a.connectWith] : a.connectWith }, _getItemsAsjQuery: function (a)
        {
            var b = [], c = [], e = this._connectWith(); if (e && a) for (a = e.length - 1; a >= 0; a--) for (var f = d(e[a]), g = f.length - 1; g >= 0; g--)
            {
                var h = d.data(f[g], "sortable"); if (h && h != this && !h.options.disabled) c.push([d.isFunction(h.options.items) ?
h.options.items.call(h.element) : d(h.options.items, h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), h])
            } c.push([d.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : d(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]); for (a = c.length - 1; a >= 0; a--) c[a][0].each(function () { b.push(this) }); return d(b)
        }, _removeCurrentsFromItems: function ()
        {
            for (var a = this.currentItem.find(":data(sortable-item)"),
b = 0; b < this.items.length; b++) for (var c = 0; c < a.length; c++) a[c] == this.items[b].item[0] && this.items.splice(b, 1)
        }, _refreshItems: function (a)
        {
            this.items = []; this.containers = [this]; var b = this.items, c = [[d.isFunction(this.options.items) ? this.options.items.call(this.element[0], a, { item: this.currentItem }) : d(this.options.items, this.element), this]], e = this._connectWith(); if (e) for (var f = e.length - 1; f >= 0; f--) for (var g = d(e[f]), h = g.length - 1; h >= 0; h--)
            {
                var i = d.data(g[h], "sortable"); if (i && i != this && !i.options.disabled)
                {
                    c.push([d.isFunction(i.options.items) ?
i.options.items.call(i.element[0], a, { item: this.currentItem }) : d(i.options.items, i.element), i]); this.containers.push(i)
                } 
            } for (f = c.length - 1; f >= 0; f--) { a = c[f][1]; e = c[f][0]; h = 0; for (g = e.length; h < g; h++) { i = d(e[h]); i.data("sortable-item", a); b.push({ item: i, instance: a, width: 0, height: 0, left: 0, top: 0 }) } } 
        }, refreshPositions: function (a)
        {
            if (this.offsetParent && this.helper) this.offset.parent = this._getParentOffset(); for (var b = this.items.length - 1; b >= 0; b--)
            {
                var c = this.items[b], e = this.options.toleranceElement ? d(this.options.toleranceElement,
c.item) : c.item; if (!a) { c.width = e.outerWidth(); c.height = e.outerHeight() } e = e.offset(); c.left = e.left; c.top = e.top
            } if (this.options.custom && this.options.custom.refreshContainers) this.options.custom.refreshContainers.call(this); else for (b = this.containers.length - 1; b >= 0; b--)
            {
                e = this.containers[b].element.offset(); this.containers[b].containerCache.left = e.left; this.containers[b].containerCache.top = e.top; this.containers[b].containerCache.width = this.containers[b].element.outerWidth(); this.containers[b].containerCache.height =
this.containers[b].element.outerHeight()
            } return this
        }, _createPlaceholder: function (a)
        {
            var b = a || this, c = b.options; if (!c.placeholder || c.placeholder.constructor == String)
            {
                var e = c.placeholder; c.placeholder = { element: function () { var f = d(document.createElement(b.currentItem[0].nodeName)).addClass(e || b.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper")[0]; if (!e) f.style.visibility = "hidden"; return f }, update: function (f, g)
                {
                    if (!(e && !c.forcePlaceholderSize))
                    {
                        g.height() || g.height(b.currentItem.innerHeight() -
parseInt(b.currentItem.css("paddingTop") || 0, 10) - parseInt(b.currentItem.css("paddingBottom") || 0, 10)); g.width() || g.width(b.currentItem.innerWidth() - parseInt(b.currentItem.css("paddingLeft") || 0, 10) - parseInt(b.currentItem.css("paddingRight") || 0, 10))
                    } 
                } 
                }
            } b.placeholder = d(c.placeholder.element.call(b.element, b.currentItem)); b.currentItem.after(b.placeholder); c.placeholder.update(b, b.placeholder)
        }, _contactContainers: function (a)
        {
            for (var b = null, c = null, e = this.containers.length - 1; e >= 0; e--) if (!d.ui.contains(this.currentItem[0],
this.containers[e].element[0])) if (this._intersectsWith(this.containers[e].containerCache)) { if (!(b && d.ui.contains(this.containers[e].element[0], b.element[0]))) { b = this.containers[e]; c = e } } else if (this.containers[e].containerCache.over) { this.containers[e]._trigger("out", a, this._uiHash(this)); this.containers[e].containerCache.over = 0 } if (b) if (this.containers.length === 1) { this.containers[c]._trigger("over", a, this._uiHash(this)); this.containers[c].containerCache.over = 1 } else if (this.currentContainer != this.containers[c])
            {
                b =
1E4; e = null; for (var f = this.positionAbs[this.containers[c].floating ? "left" : "top"], g = this.items.length - 1; g >= 0; g--) if (d.ui.contains(this.containers[c].element[0], this.items[g].item[0])) { var h = this.items[g][this.containers[c].floating ? "left" : "top"]; if (Math.abs(h - f) < b) { b = Math.abs(h - f); e = this.items[g] } } if (e || this.options.dropOnEmpty)
                {
                    this.currentContainer = this.containers[c]; e ? this._rearrange(a, e, null, true) : this._rearrange(a, null, this.containers[c].element, true); this._trigger("change", a, this._uiHash()); this.containers[c]._trigger("change",
a, this._uiHash(this)); this.options.placeholder.update(this.currentContainer, this.placeholder); this.containers[c]._trigger("over", a, this._uiHash(this)); this.containers[c].containerCache.over = 1
                } 
            } 
        }, _createHelper: function (a)
        {
            var b = this.options; a = d.isFunction(b.helper) ? d(b.helper.apply(this.element[0], [a, this.currentItem])) : b.helper == "clone" ? this.currentItem.clone() : this.currentItem; a.parents("body").length || d(b.appendTo != "parent" ? b.appendTo : this.currentItem[0].parentNode)[0].appendChild(a[0]); if (a[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 (a[0].style.width == "" || b.forceHelperSize) a.width(this.currentItem.width()); if (a[0].style.height == "" || b.forceHelperSize) a.height(this.currentItem.height()); return a
        }, _adjustOffsetFromHelper: function (a)
        {
            if (typeof a == "string") a = a.split(" "); if (d.isArray(a)) a = { left: +a[0], top: +a[1] ||
0
            }; if ("left" in a) this.offset.click.left = a.left + this.margins.left; if ("right" in a) this.offset.click.left = this.helperProportions.width - a.right + this.margins.left; if ("top" in a) this.offset.click.top = a.top + this.margins.top; if ("bottom" in a) this.offset.click.top = this.helperProportions.height - a.bottom + this.margins.top
        }, _getParentOffset: function ()
        {
            this.offsetParent = this.helper.offsetParent(); var a = this.offsetParent.offset(); if (this.cssPosition == "absolute" && this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0],
this.offsetParent[0])) { a.left += this.scrollParent.scrollLeft(); a.top += this.scrollParent.scrollTop() } if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && d.browser.msie) a = { top: 0, left: 0 }; return { top: a.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), left: a.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)}
        }, _getRelativeOffset: function ()
        {
            if (this.cssPosition == "relative")
            {
                var a = this.currentItem.position(); return { top: a.top -
(parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), left: a.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 a = this.options;
            if (a.containment == "parent") a.containment = this.helper[0].parentNode; if (a.containment == "document" || a.containment == "window") this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, d(a.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (d(a.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]; if (!/^(document|window|parent)$/.test(a.containment))
            {
                var b =
d(a.containment)[0]; a = d(a.containment).offset(); var c = d(b).css("overflow") != "hidden"; this.containment = [a.left + (parseInt(d(b).css("borderLeftWidth"), 10) || 0) + (parseInt(d(b).css("paddingLeft"), 10) || 0) - this.margins.left, a.top + (parseInt(d(b).css("borderTopWidth"), 10) || 0) + (parseInt(d(b).css("paddingTop"), 10) || 0) - this.margins.top, a.left + (c ? Math.max(b.scrollWidth, b.offsetWidth) : b.offsetWidth) - (parseInt(d(b).css("borderLeftWidth"), 10) || 0) - (parseInt(d(b).css("paddingRight"), 10) || 0) - this.helperProportions.width -
this.margins.left, a.top + (c ? Math.max(b.scrollHeight, b.offsetHeight) : b.offsetHeight) - (parseInt(d(b).css("borderTopWidth"), 10) || 0) - (parseInt(d(b).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top]
            } 
        }, _convertPositionTo: function (a, b)
        {
            if (!b) b = this.position; a = a == "absolute" ? 1 : -1; var c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, e = /(html|body)/i.test(c[0].tagName); return { top: b.top +
this.offset.relative.top * a + this.offset.parent.top * a - (d.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : e ? 0 : c.scrollTop()) * a), left: b.left + this.offset.relative.left * a + this.offset.parent.left * a - (d.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : e ? 0 : c.scrollLeft()) * a)
            }
        }, _generatePosition: function (a)
        {
            var b = this.options, c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0],
this.offsetParent[0])) ? this.offsetParent : this.scrollParent, e = /(html|body)/i.test(c[0].tagName); if (this.cssPosition == "relative" && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) this.offset.relative = this._getRelativeOffset(); var f = a.pageX, g = a.pageY; if (this.originalPosition)
            {
                if (this.containment)
                {
                    if (a.pageX - this.offset.click.left < this.containment[0]) f = this.containment[0] + this.offset.click.left; if (a.pageY - this.offset.click.top < this.containment[1]) g = this.containment[1] + this.offset.click.top;
                    if (a.pageX - this.offset.click.left > this.containment[2]) f = this.containment[2] + this.offset.click.left; if (a.pageY - this.offset.click.top > this.containment[3]) g = this.containment[3] + this.offset.click.top
                } if (b.grid)
                {
                    g = this.originalPageY + Math.round((g - this.originalPageY) / b.grid[1]) * b.grid[1]; g = this.containment ? !(g - this.offset.click.top < this.containment[1] || g - this.offset.click.top > this.containment[3]) ? g : !(g - this.offset.click.top < this.containment[1]) ? g - b.grid[1] : g + b.grid[1] : g; f = this.originalPageX + Math.round((f -
this.originalPageX) / b.grid[0]) * b.grid[0]; f = this.containment ? !(f - this.offset.click.left < this.containment[0] || f - this.offset.click.left > this.containment[2]) ? f : !(f - this.offset.click.left < this.containment[0]) ? f - b.grid[0] : f + b.grid[0] : f
                } 
            } return { top: g - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (d.browser.safari && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : e ? 0 : c.scrollTop()), left: f - this.offset.click.left - this.offset.relative.left - this.offset.parent.left +
(d.browser.safari && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : e ? 0 : c.scrollLeft())
            }
        }, _rearrange: function (a, b, c, e) { c ? c[0].appendChild(this.placeholder[0]) : b.item[0].parentNode.insertBefore(this.placeholder[0], this.direction == "down" ? b.item[0] : b.item[0].nextSibling); this.counter = this.counter ? ++this.counter : 1; var f = this, g = this.counter; window.setTimeout(function () { g == f.counter && f.refreshPositions(!e) }, 0) }, _clear: function (a, b)
        {
            this.reverting = false; var c = []; !this._noFinalSort &&
this.currentItem[0].parentNode && this.placeholder.before(this.currentItem); this._noFinalSort = null; if (this.helper[0] == this.currentItem[0]) { for (var e in this._storedCSS) if (this._storedCSS[e] == "auto" || this._storedCSS[e] == "static") this._storedCSS[e] = ""; this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") } else this.currentItem.show(); this.fromOutside && !b && c.push(function (f) { this._trigger("receive", f, 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]) && !b) c.push(function (f) { this._trigger("update", f, this._uiHash()) }); if (!d.ui.contains(this.element[0], this.currentItem[0]))
            {
                b || c.push(function (f) { this._trigger("remove", f, this._uiHash()) }); for (e = this.containers.length - 1; e >= 0; e--) if (d.ui.contains(this.containers[e].element[0], this.currentItem[0]) && !b)
                {
                    c.push(function (f) { return function (g) { f._trigger("receive", g, this._uiHash(this)) } } .call(this, this.containers[e])); c.push(function (f)
                    {
                        return function (g)
                        {
                            f._trigger("update",
g, this._uiHash(this))
                        } 
                    } .call(this, this.containers[e]))
                } 
            } for (e = this.containers.length - 1; e >= 0; e--) { b || c.push(function (f) { return function (g) { f._trigger("deactivate", g, this._uiHash(this)) } } .call(this, this.containers[e])); if (this.containers[e].containerCache.over) { c.push(function (f) { return function (g) { f._trigger("out", g, this._uiHash(this)) } } .call(this, this.containers[e])); this.containers[e].containerCache.over = 0 } } this._storedCursor && d("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 (!b) { this._trigger("beforeStop", a, this._uiHash()); for (e = 0; e < c.length; e++) c[e].call(this, a); this._trigger("stop", a, this._uiHash()) } return false } b || this._trigger("beforeStop", a, this._uiHash()); this.placeholder[0].parentNode.removeChild(this.placeholder[0]); this.helper[0] != this.currentItem[0] && this.helper.remove(); this.helper = null; if (!b)
            {
                for (e =
0; e < c.length; e++) c[e].call(this, a); this._trigger("stop", a, this._uiHash())
            } this.fromOutside = false; return true
        }, _trigger: function () { d.Widget.prototype._trigger.apply(this, arguments) === false && this.cancel() }, _uiHash: function (a) { var b = a || this; return { helper: b.helper, placeholder: b.placeholder || d([]), position: b.position, originalPosition: b.originalPosition, offset: b.positionAbs, item: b.currentItem, sender: a ? a.element : null} } 
    }); d.extend(d.ui.sortable, { version: "1.8.2" })
})(jQuery);
; /*
 * jQuery UI Accordion 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Accordion
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.widget.js
 */
(function (c)
{
    c.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 a = this.options, b = this; this.running = 0; this.element.addClass("ui-accordion ui-widget ui-helper-reset");
        this.element.children("li").addClass("ui-accordion-li-fix"); this.headers = this.element.find(a.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion", function () { c(this).addClass("ui-state-hover") }).bind("mouseleave.accordion", function () { c(this).removeClass("ui-state-hover") }).bind("focus.accordion", function () { c(this).addClass("ui-state-focus") }).bind("blur.accordion", function () { c(this).removeClass("ui-state-focus") }); this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
        if (a.navigation) { var d = this.element.find("a").filter(a.navigationFilter); if (d.length) { var f = d.closest(".ui-accordion-header"); this.active = f.length ? f : d.closest(".ui-accordion-content").prev() } } this.active = this._findActive(this.active || a.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top"); this.active.next().addClass("ui-accordion-content-active"); this._createIcons(); this.resize(); this.element.attr("role", "tablist"); this.headers.attr("role",
"tab").bind("keydown", function (g) { return b._keydown(g) }).next().attr("role", "tabpanel"); this.headers.not(this.active || "").attr("aria-expanded", "false").attr("tabIndex", "-1").next().hide(); this.active.length ? this.active.attr("aria-expanded", "true").attr("tabIndex", "0") : this.headers.eq(0).attr("tabIndex", "0"); c.browser.safari || this.headers.find("a").attr("tabIndex", "-1"); a.event && this.headers.bind(a.event + ".accordion", function (g) { b._clickHandler.call(b, g, this); g.preventDefault() })
    }, _createIcons: function ()
    {
        var a =
this.options; if (a.icons) { c("<span/>").addClass("ui-icon " + a.icons.header).prependTo(this.headers); this.active.find(".ui-icon").toggleClass(a.icons.header).toggleClass(a.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 a = this.options; this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role").unbind(".accordion").removeData("accordion");
        this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex"); this.headers.find("a").removeAttr("tabIndex"); this._destroyIcons(); var b = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active"); if (a.autoHeight || a.fillHeight) b.css("height",
""); return this
    }, _setOption: function (a, b) { c.Widget.prototype._setOption.apply(this, arguments); a == "active" && this.activate(b); if (a == "icons") { this._destroyIcons(); b && this._createIcons() } }, _keydown: function (a)
    {
        var b = c.ui.keyCode; if (!(this.options.disabled || a.altKey || a.ctrlKey))
        {
            var d = this.headers.length, f = this.headers.index(a.target), g = false; switch (a.keyCode)
            {
                case b.RIGHT: case b.DOWN: g = this.headers[(f + 1) % d]; break; case b.LEFT: case b.UP: g = this.headers[(f - 1 + d) % d]; break; case b.SPACE: case b.ENTER: this._clickHandler({ target: a.target },
a.target); a.preventDefault()
            } if (g) { c(a.target).attr("tabIndex", "-1"); c(g).attr("tabIndex", "0"); g.focus(); return false } return true
        } 
    }, resize: function ()
    {
        var a = this.options, b; if (a.fillSpace)
        {
            if (c.browser.msie) { var d = this.element.parent().css("overflow"); this.element.parent().css("overflow", "hidden") } b = this.element.parent().height(); c.browser.msie && this.element.parent().css("overflow", d); this.headers.each(function () { b -= c(this).outerHeight(true) }); this.headers.next().each(function ()
            {
                c(this).height(Math.max(0,
b - c(this).innerHeight() + c(this).height()))
            }).css("overflow", "auto")
        } else if (a.autoHeight) { b = 0; this.headers.next().each(function () { b = Math.max(b, c(this).height()) }).height(b) } return this
    }, activate: function (a) { this.options.active = a; a = this._findActive(a)[0]; this._clickHandler({ target: a }, a); return this }, _findActive: function (a) { return a ? typeof a == "number" ? this.headers.filter(":eq(" + a + ")") : this.headers.not(this.headers.not(a)) : a === false ? c([]) : this.headers.filter(":eq(0)") }, _clickHandler: function (a, b)
    {
        var d =
this.options; if (!d.disabled) if (a.target)
        {
            a = c(a.currentTarget || b); b = a[0] == this.active[0]; d.active = d.collapsible && b ? false : c(".ui-accordion-header", this.element).index(a); if (!(this.running || !d.collapsible && b))
            {
                this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); if (!b)
                {
                    a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").find(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);
                    a.next().addClass("ui-accordion-content-active")
                } e = a.next(); f = this.active.next(); g = { options: d, newHeader: b && d.collapsible ? c([]) : a, oldHeader: this.active, newContent: b && d.collapsible ? c([]) : e, oldContent: f }; d = this.headers.index(this.active[0]) > this.headers.index(a[0]); this.active = b ? c([]) : a; this._toggle(e, f, g, b, d)
            } 
        } else if (d.collapsible)
        {
            this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
            this.active.next().addClass("ui-accordion-content-active"); var f = this.active.next(), g = { options: d, newHeader: c([]), oldHeader: d.active, newContent: c([]), oldContent: f }, e = this.active = c([]); this._toggle(e, f, g)
        } 
    }, _toggle: function (a, b, d, f, g)
    {
        var e = this.options, k = this; this.toShow = a; this.toHide = b; this.data = d; var i = function () { if (k) return k._completed.apply(k, arguments) }; this._trigger("changestart", null, this.data); this.running = b.size() === 0 ? a.size() : b.size(); if (e.animated)
        {
            d = {}; d = e.collapsible && f ? { toShow: c([]),
                toHide: b, complete: i, down: g, autoHeight: e.autoHeight || e.fillSpace
            } : { toShow: a, toHide: b, complete: i, down: g, autoHeight: e.autoHeight || e.fillSpace }; if (!e.proxied) e.proxied = e.animated; if (!e.proxiedDuration) e.proxiedDuration = e.duration; e.animated = c.isFunction(e.proxied) ? e.proxied(d) : e.proxied; e.duration = c.isFunction(e.proxiedDuration) ? e.proxiedDuration(d) : e.proxiedDuration; f = c.ui.accordion.animations; var h = e.duration, j = e.animated; if (j && !f[j] && !c.easing[j]) j = "slide"; f[j] || (f[j] = function (l)
            {
                this.slide(l, { easing: j,
                    duration: h || 700
                })
            }); f[j](d)
        } else { if (e.collapsible && f) a.toggle(); else { b.hide(); a.show() } i(true) } b.prev().attr("aria-expanded", "false").attr("tabIndex", "-1").blur(); a.prev().attr("aria-expanded", "true").attr("tabIndex", "0").focus()
    }, _completed: function (a) { var b = this.options; this.running = a ? 0 : --this.running; if (!this.running) { b.clearStyle && this.toShow.add(this.toHide).css({ height: "", overflow: "" }); this.toHide.removeClass("ui-accordion-content-active"); this._trigger("change", null, this.data) } } 
    }); c.extend(c.ui.accordion,
{ version: "1.8.2", animations: { slide: function (a, b)
{
    a = c.extend({ easing: "swing", duration: 300 }, a, b); if (a.toHide.size()) if (a.toShow.size())
    {
        var d = a.toShow.css("overflow"), f = 0, g = {}, e = {}, k; b = a.toShow; k = b[0].style.width; b.width(parseInt(b.parent().width(), 10) - parseInt(b.css("paddingLeft"), 10) - parseInt(b.css("paddingRight"), 10) - (parseInt(b.css("borderLeftWidth"), 10) || 0) - (parseInt(b.css("borderRightWidth"), 10) || 0)); c.each(["height", "paddingTop", "paddingBottom"], function (i, h)
        {
            e[h] = "hide"; i = ("" + c.css(a.toShow[0],
h)).match(/^([\d+-.]+)(.*)$/); g[h] = { value: i[1], unit: i[2] || "px"}
        }); a.toShow.css({ height: 0, overflow: "hidden" }).show(); a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(e, { step: function (i, h) { if (h.prop == "height") f = h.end - h.start === 0 ? 0 : (h.now - h.start) / (h.end - h.start); a.toShow[0].style[h.prop] = f * g[h.prop].value + g[h.prop].unit }, duration: a.duration, easing: a.easing, complete: function () { a.autoHeight || a.toShow.css("height", ""); a.toShow.css("width", k); a.toShow.css({ overflow: d }); a.complete() } })
    } else a.toHide.animate({ height: "hide" },
a); else a.toShow.animate({ height: "show" }, a)
}, bounceslide: function (a) { this.slide(a, { easing: a.down ? "easeOutBounce" : "swing", duration: a.down ? 1E3 : 200 }) } 
}
})
})(jQuery);
; /*
 * jQuery UI Autocomplete 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Autocomplete
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.widget.js
 *	jquery.ui.position.js
 */
(function (e)
{
    e.widget("ui.autocomplete", { options: { minLength: 1, delay: 300 }, _create: function ()
    {
        var a = this, c = this.element[0].ownerDocument; this.element.addClass("ui-autocomplete-input").attr("autocomplete", "off").attr({ role: "textbox", "aria-autocomplete": "list", "aria-haspopup": "true" }).bind("keydown.autocomplete", function (d)
        {
            var b = e.ui.keyCode; switch (d.keyCode)
            {
                case b.PAGE_UP: a._move("previousPage", d); break; case b.PAGE_DOWN: a._move("nextPage", d); break; case b.UP: a._move("previous", d); d.preventDefault();
                    break; case b.DOWN: a._move("next", d); d.preventDefault(); break; case b.ENTER: case b.NUMPAD_ENTER: a.menu.active && d.preventDefault(); case b.TAB: if (!a.menu.active) return; a.menu.select(d); break; case b.ESCAPE: a.element.val(a.term); a.close(d); break; case b.LEFT: case b.RIGHT: case b.SHIFT: case b.CONTROL: case b.ALT: case b.COMMAND: case b.COMMAND_RIGHT: case b.INSERT: case b.CAPS_LOCK: case b.END: case b.HOME: break; default: clearTimeout(a.searching); a.searching = setTimeout(function () { a.search(null, d) }, a.options.delay);
                    break
            } 
        }).bind("focus.autocomplete", function () { a.selectedItem = null; a.previous = a.element.val() }).bind("blur.autocomplete", function (d) { clearTimeout(a.searching); a.closing = setTimeout(function () { a.close(d); a._change(d) }, 150) }); this._initSource(); this.response = function () { return a._response.apply(a, arguments) }; this.menu = e("<ul></ul>").addClass("ui-autocomplete").appendTo("body", c).mousedown(function () { setTimeout(function () { clearTimeout(a.closing) }, 13) }).menu({ focus: function (d, b)
        {
            b = b.item.data("item.autocomplete");
            false !== a._trigger("focus", null, { item: b }) && /^key/.test(d.originalEvent.type) && a.element.val(b.value)
        }, selected: function (d, b) { b = b.item.data("item.autocomplete"); false !== a._trigger("select", d, { item: b }) && a.element.val(b.value); a.close(d); d = a.previous; if (a.element[0] !== c.activeElement) { a.element.focus(); a.previous = d } a.selectedItem = b }, blur: function () { a.menu.element.is(":visible") && a.element.val(a.term) } 
        }).zIndex(this.element.zIndex() + 1).css({ top: 0, left: 0 }).hide().data("menu"); e.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(); e.Widget.prototype.destroy.call(this) }, _setOption: function (a) { e.Widget.prototype._setOption.apply(this, arguments); a === "source" && this._initSource() }, _initSource: function ()
        {
            var a, c; if (e.isArray(this.options.source)) { a = this.options.source; this.source = function (d, b) { b(e.ui.autocomplete.filter(a, d.term)) } } else if (typeof this.options.source ===
"string") { c = this.options.source; this.source = function (d, b) { e.getJSON(c, d, b) } } else this.source = this.options.source
        }, search: function (a, c) { a = a != null ? a : this.element.val(); if (a.length < this.options.minLength) return this.close(c); clearTimeout(this.closing); if (this._trigger("search") !== false) return this._search(a) }, _search: function (a) { this.term = this.element.addClass("ui-autocomplete-loading").val(); this.source({ term: a }, this.response) }, _response: function (a)
        {
            if (a.length)
            {
                a = this._normalize(a); this._suggest(a);
                this._trigger("open")
            } else this.close(); this.element.removeClass("ui-autocomplete-loading")
        }, close: function (a) { clearTimeout(this.closing); if (this.menu.element.is(":visible")) { this._trigger("close", a); this.menu.element.hide(); this.menu.deactivate() } }, _change: function (a) { this.previous !== this.element.val() && this._trigger("change", a, { item: this.selectedItem }) }, _normalize: function (a)
        {
            if (a.length && a[0].label && a[0].value) return a; return e.map(a, function (c)
            {
                if (typeof c === "string") return { label: c, value: c }; return e.extend({ label: c.label ||
c.value, value: c.value || c.label
                }, c)
            })
        }, _suggest: function (a) { var c = this.menu.element.empty().zIndex(this.element.zIndex() + 1), d; this._renderMenu(c, a); this.menu.deactivate(); this.menu.refresh(); this.menu.element.show().position({ my: "left top", at: "left bottom", of: this.element, collision: "none" }); a = c.width("").width(); d = this.element.width(); c.width(Math.max(a, d)) }, _renderMenu: function (a, c) { var d = this; e.each(c, function (b, f) { d._renderItem(a, f) }) }, _renderItem: function (a, c)
        {
            return e("<li></li>").data("item.autocomplete",
c).append("<a>" + c.label + "</a>").appendTo(a)
        }, _move: function (a, c) { if (this.menu.element.is(":visible")) if (this.menu.first() && /^previous/.test(a) || this.menu.last() && /^next/.test(a)) { this.element.val(this.term); this.menu.deactivate() } else this.menu[a](c); else this.search(null, c) }, widget: function () { return this.menu.element } 
    }); e.extend(e.ui.autocomplete, { escapeRegex: function (a) { return a.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") }, filter: function (a, c)
    {
        var d = new RegExp(e.ui.autocomplete.escapeRegex(c),
"i"); return e.grep(a, function (b) { return d.test(b.label || b.value || b) })
    } 
    })
})(jQuery);
(function (e)
{
    e.widget("ui.menu", { _create: function () { var a = this; this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({ role: "listbox", "aria-activedescendant": "ui-active-menuitem" }).click(function (c) { if (e(c.target).closest(".ui-menu-item a").length) { c.preventDefault(); a.select(c) } }); this.refresh() }, refresh: function ()
    {
        var a = 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 (c) { a.activate(c, e(this).parent()) }).mouseleave(function () { a.deactivate() })
    }, activate: function (a, c) { this.deactivate(); if (this.hasScroll()) { var d = c.offset().top - this.element.offset().top, b = this.element.attr("scrollTop"), f = this.element.height(); if (d < 0) this.element.attr("scrollTop", b + d); else d > f && this.element.attr("scrollTop", b + d - f + c.height()) } this.active = c.eq(0).children("a").addClass("ui-state-hover").attr("id", "ui-active-menuitem").end(); this._trigger("focus", a, { item: c }) }, deactivate: function ()
    {
        if (this.active)
        {
            this.active.children("a").removeClass("ui-state-hover").removeAttr("id");
            this._trigger("blur"); this.active = null
        } 
    }, next: function (a) { this.move("next", ".ui-menu-item:first", a) }, previous: function (a) { this.move("prev", ".ui-menu-item:last", a) }, first: function () { return this.active && !this.active.prev().length }, last: function () { return this.active && !this.active.next().length }, move: function (a, c, d) { if (this.active) { a = this.active[a + "All"](".ui-menu-item").eq(0); a.length ? this.activate(d, a) : this.activate(d, this.element.children(c)) } else this.activate(d, this.element.children(c)) }, nextPage: function (a)
    {
        if (this.hasScroll()) if (!this.active ||
this.last()) this.activate(a, this.element.children(":first")); else { var c = this.active.offset().top, d = this.element.height(), b = this.element.children("li").filter(function () { var f = e(this).offset().top - c - d + e(this).height(); return f < 10 && f > -10 }); b.length || (b = this.element.children(":last")); this.activate(a, b) } else this.activate(a, this.element.children(!this.active || this.last() ? ":first" : ":last"))
    }, previousPage: function (a)
    {
        if (this.hasScroll()) if (!this.active || this.first()) this.activate(a, this.element.children(":last"));
        else { var c = this.active.offset().top, d = this.element.height(); result = this.element.children("li").filter(function () { var b = e(this).offset().top - c + d - e(this).height(); return b < 10 && b > -10 }); result.length || (result = this.element.children(":first")); this.activate(a, result) } else this.activate(a, this.element.children(!this.active || this.first() ? ":last" : ":first"))
    }, hasScroll: function () { return this.element.height() < this.element.attr("scrollHeight") }, select: function (a) { this._trigger("selected", a, { item: this.active }) } 
    })
})(jQuery);
; /*
 * jQuery UI Button 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Button
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.widget.js
 */
(function (a)
{
    var g, i = function (b) { a(":ui-button", b.target.form).each(function () { var c = a(this).data("button"); setTimeout(function () { c.refresh() }, 1) }) }, h = function (b) { var c = b.name, d = b.form, e = a([]); if (c) e = d ? a(d).find("[name='" + c + "']") : a("[name='" + c + "']", b.ownerDocument).filter(function () { return !this.form }); return e }; a.widget("ui.button", { options: { text: true, label: null, icons: { primary: null, secondary: null} }, _create: function ()
    {
        this.element.closest("form").unbind("reset.button").bind("reset.button", i); this._determineButtonType();
        this.hasTitle = !!this.buttonElement.attr("title"); var b = this, c = this.options, d = this.type === "checkbox" || this.type === "radio", e = "ui-state-hover" + (!d ? " ui-state-active" : ""); if (c.label === null) c.label = this.buttonElement.html(); if (this.element.is(":disabled")) c.disabled = true; this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role", "button").bind("mouseenter.button", function () { if (!c.disabled) { a(this).addClass("ui-state-hover"); this === g && a(this).addClass("ui-state-active") } }).bind("mouseleave.button",
function () { c.disabled || a(this).removeClass(e) }).bind("focus.button", function () { a(this).addClass("ui-state-focus") }).bind("blur.button", function () { a(this).removeClass("ui-state-focus") }); d && this.element.bind("change.button", function () { b.refresh() }); if (this.type === "checkbox") this.buttonElement.bind("click.button", function () { if (c.disabled) return false; a(this).toggleClass("ui-state-active"); b.buttonElement.attr("aria-pressed", b.element[0].checked) }); else if (this.type === "radio") this.buttonElement.bind("click.button",
function () { if (c.disabled) return false; a(this).addClass("ui-state-active"); b.buttonElement.attr("aria-pressed", true); var f = b.element[0]; h(f).not(f).map(function () { return a(this).button("widget")[0] }).removeClass("ui-state-active").attr("aria-pressed", false) }); else
        {
            this.buttonElement.bind("mousedown.button", function () { if (c.disabled) return false; a(this).addClass("ui-state-active"); g = this; a(document).one("mouseup", function () { g = null }) }).bind("mouseup.button", function () { if (c.disabled) return false; a(this).removeClass("ui-state-active") }).bind("keydown.button",
function (f) { if (c.disabled) return false; if (f.keyCode == a.ui.keyCode.SPACE || f.keyCode == a.ui.keyCode.ENTER) a(this).addClass("ui-state-active") }).bind("keyup.button", function () { a(this).removeClass("ui-state-active") }); this.buttonElement.is("a") && this.buttonElement.keyup(function (f) { f.keyCode === a.ui.keyCode.SPACE && a(this).click() })
        } this._setOption("disabled", c.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") { this.buttonElement = this.element.parents().last().find("[for=" + this.element.attr("id") + "]"); this.element.addClass("ui-helper-hidden-accessible"); var b = this.element.is(":checked"); b && this.buttonElement.addClass("ui-state-active"); this.buttonElement.attr("aria-pressed", b) } 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 ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());
        this.hasTitle || this.buttonElement.removeAttr("title"); a.Widget.prototype.destroy.call(this)
    }, _setOption: function (b, c) { a.Widget.prototype._setOption.apply(this, arguments); if (b === "disabled") c ? this.element.attr("disabled", true) : this.element.removeAttr("disabled"); this._resetButton() }, refresh: function ()
    {
        var b = this.element.is(":disabled"); b !== this.options.disabled && this._setOption("disabled", b); if (this.type === "radio") h(this.element[0]).each(function ()
        {
            a(this).is(":checked") ? a(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
true) : a(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 b = this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon ui-button-text-only"),
c = a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(), d = this.options.icons, e = d.primary && d.secondary; if (d.primary || d.secondary)
            {
                b.addClass("ui-button-text-icon" + (e ? "s" : "")); d.primary && b.prepend("<span class='ui-button-icon-primary ui-icon " + d.primary + "'></span>"); d.secondary && b.append("<span class='ui-button-icon-secondary ui-icon " + d.secondary + "'></span>"); if (!this.options.text)
                {
                    b.addClass(e ? "ui-button-icons-only" : "ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon");
                    this.hasTitle || b.attr("title", c)
                } 
            } else b.addClass("ui-button-text-only")
        } 
    } 
    }); a.widget("ui.buttonset", { _create: function () { this.element.addClass("ui-buttonset"); this._init() }, _init: function () { this.refresh() }, _setOption: function (b, c) { b === "disabled" && this.buttons.button("option", b, c); a.Widget.prototype._setOption.apply(this, arguments) }, refresh: function () { this.buttons = this.element.find(":button, :submit, :reset, :checkbox, :radio, a, :data(button)").filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function () { return a(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 a(this).button("widget")[0] }).removeClass("ui-corner-left ui-corner-right").end().button("destroy"); a.Widget.prototype.destroy.call(this) } 
    })
})(jQuery);
; /*
 * jQuery UI Dialog 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Dialog
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.widget.js
 *  jquery.ui.button.js
 *	jquery.ui.draggable.js
 *	jquery.ui.mouse.js
 *	jquery.ui.position.js
 *	jquery.ui.resizable.js
 */
(function (c)
{
    c.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: "center", resizable: true, show: null, stack: true, title: "", width: 300, zIndex: 1E3 }, _create: function ()
    {
        this.originalTitle = this.element.attr("title"); var a = this, b = a.options, d = b.title || a.originalTitle || "&#160;", e = c.ui.dialog.getTitleId(a.element), g = (a.uiDialog = c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all " +
b.dialogClass).css({ zIndex: b.zIndex }).attr("tabIndex", -1).css("outline", 0).keydown(function (i) { if (b.closeOnEscape && i.keyCode && i.keyCode === c.ui.keyCode.ESCAPE) { a.close(i); i.preventDefault() } }).attr({ role: "dialog", "aria-labelledby": e }).mousedown(function (i) { a.moveToTop(false, i) }); a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g); var f = (a.uiDialogTitlebar = c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),
h = c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", "button").hover(function () { h.addClass("ui-state-hover") }, function () { h.removeClass("ui-state-hover") }).focus(function () { h.addClass("ui-state-focus") }).blur(function () { h.removeClass("ui-state-focus") }).click(function (i) { a.close(i); return false }).appendTo(f); (a.uiDialogTitlebarCloseText = c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h); c("<span></span>").addClass("ui-dialog-title").attr("id",
e).html(d).prependTo(f); if (c.isFunction(b.beforeclose) && !c.isFunction(b.beforeClose)) b.beforeClose = b.beforeclose; f.find("*").add(f).disableSelection(); b.draggable && c.fn.draggable && a._makeDraggable(); b.resizable && c.fn.resizable && a._makeResizable(); a._createButtons(b.buttons); a._isOpen = false; c.fn.bgiframe && g.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 b = this, d; if (false !== b._trigger("beforeClose", a))
        {
            b.overlay && b.overlay.destroy(); b.uiDialog.unbind("keypress.ui-dialog"); b._isOpen = false; if (b.options.hide) b.uiDialog.hide(b.options.hide, function () { b._trigger("close", a) }); else { b.uiDialog.hide(); b._trigger("close", a) } c.ui.dialog.overlay.resize(); if (b.options.modal)
            {
                d = 0; c(".ui-dialog").each(function ()
                {
                    if (this !==
b.uiDialog[0]) d = Math.max(d, c(this).css("z-index"))
                }); c.ui.dialog.maxZ = d
            } return b
        } 
    }, isOpen: function () { return this._isOpen }, moveToTop: function (a, b)
    {
        var d = this, e = d.options; if (e.modal && !a || !e.stack && !e.modal) return d._trigger("focus", b); if (e.zIndex > c.ui.dialog.maxZ) c.ui.dialog.maxZ = e.zIndex; if (d.overlay) { c.ui.dialog.maxZ += 1; d.overlay.$el.css("z-index", c.ui.dialog.overlay.maxZ = c.ui.dialog.maxZ) } a = { scrollTop: d.element.attr("scrollTop"), scrollLeft: d.element.attr("scrollLeft") }; c.ui.dialog.maxZ += 1; d.uiDialog.css("z-index",
c.ui.dialog.maxZ); d.element.attr(a); d._trigger("focus", b); return d
    }, open: function ()
    {
        if (!this._isOpen)
        {
            var a = this, b = a.options, d = a.uiDialog; a.overlay = b.modal ? new c.ui.dialog.overlay(a) : null; d.next().length && d.appendTo("body"); a._size(); a._position(b.position); d.show(b.show); a.moveToTop(true); b.modal && d.bind("keypress.ui-dialog", function (e)
            {
                if (e.keyCode === c.ui.keyCode.TAB)
                {
                    var g = c(":tabbable", this), f = g.filter(":first"); g = g.filter(":last"); if (e.target === g[0] && !e.shiftKey) { f.focus(1); return false } else if (e.target ===
f[0] && e.shiftKey) { g.focus(1); return false } 
                } 
            }); c([]).add(d.find(".ui-dialog-content :tabbable:first")).add(d.find(".ui-dialog-buttonpane :tabbable:first")).add(d).filter(":first").focus(); a._trigger("open"); a._isOpen = true; return a
        } 
    }, _createButtons: function (a)
    {
        var b = this, d = false, e = c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"); b.uiDialog.find(".ui-dialog-buttonpane").remove(); typeof a === "object" && a !== null && c.each(a, function () { return !(d = true) }); if (d)
        {
            c.each(a,
function (g, f) { g = c('<button type="button"></button>').text(g).click(function () { f.apply(b.element[0], arguments) }).appendTo(e); c.fn.button && g.button() }); e.appendTo(b.uiDialog)
        } 
    }, _makeDraggable: function ()
    {
        function a(f) { return { position: f.position, offset: f.offset} } var b = this, d = b.options, e = c(document), g; b.uiDialog.draggable({ cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", handle: ".ui-dialog-titlebar", containment: "document", start: function (f, h)
        {
            g = d.height === "auto" ? "auto" : c(this).height(); c(this).height(c(this).height()).addClass("ui-dialog-dragging");
            b._trigger("dragStart", f, a(h))
        }, drag: function (f, h) { b._trigger("drag", f, a(h)) }, stop: function (f, h) { d.position = [h.position.left - e.scrollLeft(), h.position.top - e.scrollTop()]; c(this).removeClass("ui-dialog-dragging").height(g); b._trigger("dragStop", f, a(h)); c.ui.dialog.overlay.resize() } 
        })
    }, _makeResizable: function (a)
    {
        function b(f) { return { originalPosition: f.originalPosition, originalSize: f.originalSize, position: f.position, size: f.size} } a = a === undefined ? this.options.resizable : a; var d = this, e = d.options, g = d.uiDialog.css("position");
        a = typeof a === "string" ? a : "n,e,s,w,se,sw,ne,nw"; d.uiDialog.resizable({ cancel: ".ui-dialog-content", containment: "document", alsoResize: d.element, maxWidth: e.maxWidth, maxHeight: e.maxHeight, minWidth: e.minWidth, minHeight: d._minHeight(), handles: a, start: function (f, h) { c(this).addClass("ui-dialog-resizing"); d._trigger("resizeStart", f, b(h)) }, resize: function (f, h) { d._trigger("resize", f, b(h)) }, stop: function (f, h)
        {
            c(this).removeClass("ui-dialog-resizing"); e.height = c(this).height(); e.width = c(this).width(); d._trigger("resizeStop",
f, b(h)); c.ui.dialog.overlay.resize()
        } 
        }).css("position", g).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 b = [], d = [0, 0]; a = a || c.ui.dialog.prototype.options.position; if (typeof a === "string" || typeof a === "object" && "0" in a)
        {
            b = a.split ? a.split(" ") : [a[0], a[1]]; if (b.length === 1) b[1] = b[0]; c.each(["left", "top"], function (e, g)
            {
                if (+b[e] === b[e])
                {
                    d[e] = b[e]; b[e] =
g
                } 
            })
        } else if (typeof a === "object") { if ("left" in a) { b[0] = "left"; d[0] = a.left } else if ("right" in a) { b[0] = "right"; d[0] = -a.right } if ("top" in a) { b[1] = "top"; d[1] = a.top } else if ("bottom" in a) { b[1] = "bottom"; d[1] = -a.bottom } } (a = this.uiDialog.is(":visible")) || this.uiDialog.show(); this.uiDialog.css({ top: 0, left: 0 }).position({ my: b.join(" "), at: b.join(" "), offset: d.join(" "), of: window, collision: "fit", using: function (e) { var g = c(this).css(e).offset().top; g < 0 && c(this).css("top", e.top - g) } }); a || this.uiDialog.hide()
    }, _setOption: function (a,
b)
    {
        var d = this, e = d.uiDialog, g = e.is(":data(resizable)"), f = false; switch (a)
        {
            case "beforeclose": a = "beforeClose"; break; case "buttons": d._createButtons(b); break; case "closeText": d.uiDialogTitlebarCloseText.text("" + b); break; case "dialogClass": e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all " + b); break; case "disabled": b ? e.addClass("ui-dialog-disabled") : e.removeClass("ui-dialog-disabled"); break; case "draggable": b ? d._makeDraggable() : e.draggable("destroy"); break;
            case "height": f = true; break; case "maxHeight": g && e.resizable("option", "maxHeight", b); f = true; break; case "maxWidth": g && e.resizable("option", "maxWidth", b); f = true; break; case "minHeight": g && e.resizable("option", "minHeight", b); f = true; break; case "minWidth": g && e.resizable("option", "minWidth", b); f = true; break; case "position": d._position(b); break; case "resizable": g && !b && e.resizable("destroy"); g && typeof b === "string" && e.resizable("option", "handles", b); !g && b !== false && d._makeResizable(b); break; case "title": c(".ui-dialog-title",
d.uiDialogTitlebar).html("" + (b || "&#160;")); break; case "width": f = true; break
        } c.Widget.prototype._setOption.apply(d, arguments); f && d._size()
    }, _size: function ()
    {
        var a = this.options, b; this.element.css({ width: "auto", minHeight: 0, height: 0 }); b = this.uiDialog.css({ height: "auto", width: a.width }).height(); this.element.css(a.height === "auto" ? { minHeight: Math.max(a.minHeight - b, 0), height: "auto"} : { minHeight: 0, height: Math.max(a.height - b, 0) }).show(); this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", "minHeight",
this._minHeight())
    } 
    }); c.extend(c.ui.dialog, { version: "1.8.2", 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 = c.ui.dialog.overlay.create(a) } }); c.extend(c.ui.dialog.overlay, { instances: [], oldInstances: [], maxZ: 0, events: c.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 ()
            {
                c.ui.dialog.overlay.instances.length &&
c(document).bind(c.ui.dialog.overlay.events, function (d) { return c(d.target).zIndex() >= c.ui.dialog.overlay.maxZ })
            }, 1); c(document).bind("keydown.dialog-overlay", function (d) { if (a.options.closeOnEscape && d.keyCode && d.keyCode === c.ui.keyCode.ESCAPE) { a.close(d); d.preventDefault() } }); c(window).bind("resize.dialog-overlay", c.ui.dialog.overlay.resize)
        } var b = (this.oldInstances.pop() || c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({ width: this.width(), height: this.height() }); c.fn.bgiframe &&
b.bgiframe(); this.instances.push(b); return b
    }, destroy: function (a) { this.oldInstances.push(this.instances.splice(c.inArray(a, this.instances), 1)[0]); this.instances.length === 0 && c([document, window]).unbind(".dialog-overlay"); a.remove(); var b = 0; c.each(this.instances, function () { b = Math.max(b, this.css("z-index")) }); this.maxZ = b }, height: function ()
    {
        var a, b; if (c.browser.msie && c.browser.version < 7)
        {
            a = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight); b = Math.max(document.documentElement.offsetHeight,
document.body.offsetHeight); return a < b ? c(window).height() + "px" : a + "px"
        } else return c(document).height() + "px"
    }, width: function () { var a, b; if (c.browser.msie && c.browser.version < 7) { a = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth); b = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth); return a < b ? c(window).width() + "px" : a + "px" } else return c(document).width() + "px" }, resize: function ()
    {
        var a = c([]); c.each(c.ui.dialog.overlay.instances, function () { a = a.add(this) }); a.css({ width: 0,
            height: 0
        }).css({ width: c.ui.dialog.overlay.width(), height: c.ui.dialog.overlay.height() })
    } 
    }); c.extend(c.ui.dialog.overlay.prototype, { destroy: function () { c.ui.dialog.overlay.destroy(this.$el) } })
})(jQuery);
; /*
 * jQuery UI Slider 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Slider
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.mouse.js
 *	jquery.ui.widget.js
 */
(function (d)
{
    d.widget("ui.slider", d.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 a = this, b = 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"); b.disabled && this.element.addClass("ui-slider-disabled ui-disabled");
        this.range = d([]); if (b.range) { if (b.range === true) { this.range = d("<div></div>"); if (!b.values) b.values = [this._valueMin(), this._valueMin()]; if (b.values.length && b.values.length !== 2) b.values = [b.values[0], b.values[0]] } else this.range = d("<div></div>"); this.range.appendTo(this.element).addClass("ui-slider-range"); if (b.range === "min" || b.range === "max") this.range.addClass("ui-slider-range-" + b.range); this.range.addClass("ui-widget-header") } d(".ui-slider-handle", this.element).length === 0 && d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");
        if (b.values && b.values.length) for (; d(".ui-slider-handle", this.element).length < b.values.length; ) d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle"); this.handles = d(".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 (c) { c.preventDefault() }).hover(function () { b.disabled || d(this).addClass("ui-state-hover") }, function () { d(this).removeClass("ui-state-hover") }).focus(function ()
        {
            if (b.disabled) d(this).blur();
            else { d(".ui-slider .ui-state-focus").removeClass("ui-state-focus"); d(this).addClass("ui-state-focus") } 
        }).blur(function () { d(this).removeClass("ui-state-focus") }); this.handles.each(function (c) { d(this).data("index.ui-slider-handle", c) }); this.handles.keydown(function (c)
        {
            var e = true, f = d(this).data("index.ui-slider-handle"), g, h, i; if (!a.options.disabled)
            {
                switch (c.keyCode)
                {
                    case d.ui.keyCode.HOME: case d.ui.keyCode.END: case d.ui.keyCode.PAGE_UP: case d.ui.keyCode.PAGE_DOWN: case d.ui.keyCode.UP: case d.ui.keyCode.RIGHT: case d.ui.keyCode.DOWN: case d.ui.keyCode.LEFT: e =
false; if (!a._keySliding) { a._keySliding = true; d(this).addClass("ui-state-active"); g = a._start(c, f); if (g === false) return } break
                } i = a.options.step; g = a.options.values && a.options.values.length ? (h = a.values(f)) : (h = a.value()); switch (c.keyCode)
                {
                    case d.ui.keyCode.HOME: h = a._valueMin(); break; case d.ui.keyCode.END: h = a._valueMax(); break; case d.ui.keyCode.PAGE_UP: h = a._trimAlignValue(g + (a._valueMax() - a._valueMin()) / 5); break; case d.ui.keyCode.PAGE_DOWN: h = a._trimAlignValue(g - (a._valueMax() - a._valueMin()) / 5); break; case d.ui.keyCode.UP: case d.ui.keyCode.RIGHT: if (g ===
a._valueMax()) return; h = a._trimAlignValue(g + i); break; case d.ui.keyCode.DOWN: case d.ui.keyCode.LEFT: if (g === a._valueMin()) return; h = a._trimAlignValue(g - i); break
                } a._slide(c, f, h); return e
            } 
        }).keyup(function (c) { var e = d(this).data("index.ui-slider-handle"); if (a._keySliding) { a._keySliding = false; a._stop(c, e); a._change(c, e); d(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 (a)
    {
        var b = this.options, c, e, f, g, h, i; if (b.disabled) return false; this.elementSize = { width: this.element.outerWidth(), height: this.element.outerHeight() }; this.elementOffset = this.element.offset(); c = { x: a.pageX, y: a.pageY }; e = this._normValueFromMouse(c); f = this._valueMax() - this._valueMin() + 1; h = this; this.handles.each(function (j) { var k = Math.abs(e - h.values(j)); if (f > k) { f = k; g = d(this); i = j } }); if (b.range === true && this.values(1) === b.min) { i += 1; g = d(this.handles[i]) } if (this._start(a,
i) === false) return false; this._mouseSliding = true; h._handleIndex = i; g.addClass("ui-state-active").focus(); b = g.offset(); this._clickOffset = !d(a.target).parents().andSelf().is(".ui-slider-handle") ? { left: 0, top: 0} : { left: a.pageX - b.left - g.width() / 2, top: a.pageY - b.top - g.height() / 2 - (parseInt(g.css("borderTopWidth"), 10) || 0) - (parseInt(g.css("borderBottomWidth"), 10) || 0) + (parseInt(g.css("marginTop"), 10) || 0) }; e = this._normValueFromMouse(c); this._slide(a, i, e); return this._animateOff = true
    }, _mouseStart: function () { return true },
        _mouseDrag: function (a) { var b = this._normValueFromMouse({ x: a.pageX, y: a.pageY }); this._slide(a, this._handleIndex, b); return false }, _mouseStop: function (a) { this.handles.removeClass("ui-state-active"); this._mouseSliding = false; this._stop(a, this._handleIndex); this._change(a, this._handleIndex); this._clickOffset = this._handleIndex = null; return this._animateOff = false }, _detectOrientation: function () { this.orientation = this.options.orientation === "vertical" ? "vertical" : "horizontal" }, _normValueFromMouse: function (a)
        {
            var b;
            if (this.orientation === "horizontal") { b = this.elementSize.width; a = a.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0) } else { b = this.elementSize.height; a = a.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0) } b = a / b; if (b > 1) b = 1; if (b < 0) b = 0; if (this.orientation === "vertical") b = 1 - b; a = this._valueMax() - this._valueMin(); return this._trimAlignValue(this._valueMin() + b * a)
        }, _start: function (a, b)
        {
            var c = { handle: this.handles[b], value: this.value() }; if (this.options.values && this.options.values.length)
            {
                c.value =
this.values(b); c.values = this.values()
            } return this._trigger("start", a, c)
        }, _slide: function (a, b, c)
        {
            var e; if (this.options.values && this.options.values.length) { e = this.values(b ? 0 : 1); if (this.options.values.length === 2 && this.options.range === true && (b === 0 && c > e || b === 1 && c < e)) c = e; if (c !== this.values(b)) { e = this.values(); e[b] = c; a = this._trigger("slide", a, { handle: this.handles[b], value: c, values: e }); this.values(b ? 0 : 1); a !== false && this.values(b, c, true) } } else if (c !== this.value())
            {
                a = this._trigger("slide", a, { handle: this.handles[b],
                    value: c
                }); a !== false && this.value(c)
            } 
        }, _stop: function (a, b) { var c = { handle: this.handles[b], value: this.value() }; if (this.options.values && this.options.values.length) { c.value = this.values(b); c.values = this.values() } this._trigger("stop", a, c) }, _change: function (a, b) { if (!this._keySliding && !this._mouseSliding) { var c = { handle: this.handles[b], value: this.value() }; if (this.options.values && this.options.values.length) { c.value = this.values(b); c.values = this.values() } this._trigger("change", a, c) } }, value: function (a)
        {
            if (arguments.length)
            {
                this.options.value =
this._trimAlignValue(a); this._refreshValue(); this._change(null, 0)
            } return this._value()
        }, values: function (a, b)
        {
            var c, e, f; if (arguments.length > 1) { this.options.values[a] = this._trimAlignValue(b); this._refreshValue(); this._change(null, a) } if (arguments.length) if (d.isArray(arguments[0])) { c = this.options.values; e = arguments[0]; for (f = 0; f < c.length; f += 1) { c[f] = this._trimAlignValue(e[f]); this._change(null, f) } this._refreshValue() } else return this.options.values && this.options.values.length ? this._values(a) : this.value();
            else return this._values()
        }, _setOption: function (a, b)
        {
            var c, e = 0; if (d.isArray(this.options.values)) e = this.options.values.length; d.Widget.prototype._setOption.apply(this, arguments); switch (a)
            {
                case "disabled": if (b) { 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 (c = 0; c < e; c += 1) this._change(null, c); this._animateOff = false; break
            } 
        }, _value: function () { var a = this.options.value; return a = this._trimAlignValue(a) }, _values: function (a)
        {
            var b, c; if (arguments.length)
            {
                b = this.options.values[a];
                return b = this._trimAlignValue(b)
            } else { b = this.options.values.slice(); for (c = 0; c < b.length; c += 1) b[c] = this._trimAlignValue(b[c]); return b } 
        }, _trimAlignValue: function (a) { if (a < this._valueMin()) return this._valueMin(); if (a > this._valueMax()) return this._valueMax(); var b = this.options.step > 0 ? this.options.step : 1, c = a % b; a = a - c; if (Math.abs(c) * 2 >= b) a += c > 0 ? b : -b; return parseFloat(a.toFixed(5)) }, _valueMin: function () { return this.options.min }, _valueMax: function () { return this.options.max }, _refreshValue: function ()
        {
            var a =
this.options.range, b = this.options, c = this, e = !this._animateOff ? b.animate : false, f, g = {}, h, i, j, k; if (this.options.values && this.options.values.length) this.handles.each(function (l)
{
    f = (c.values(l) - c._valueMin()) / (c._valueMax() - c._valueMin()) * 100; g[c.orientation === "horizontal" ? "left" : "bottom"] = f + "%"; d(this).stop(1, 1)[e ? "animate" : "css"](g, b.animate); if (c.options.range === true) if (c.orientation === "horizontal")
    {
        if (l === 0) c.range.stop(1, 1)[e ? "animate" : "css"]({ left: f + "%" }, b.animate); if (l === 1) c.range[e ? "animate" : "css"]({ width: f -
h + "%"
        }, { queue: false, duration: b.animate })
    } else { if (l === 0) c.range.stop(1, 1)[e ? "animate" : "css"]({ bottom: f + "%" }, b.animate); if (l === 1) c.range[e ? "animate" : "css"]({ height: f - h + "%" }, { queue: false, duration: b.animate }) } h = f
}); else
            {
                i = this.value(); j = this._valueMin(); k = this._valueMax(); f = k !== j ? (i - j) / (k - j) * 100 : 0; g[c.orientation === "horizontal" ? "left" : "bottom"] = f + "%"; this.handle.stop(1, 1)[e ? "animate" : "css"](g, b.animate); if (a === "min" && this.orientation === "horizontal") this.range.stop(1, 1)[e ? "animate" : "css"]({ width: f + "%" },
b.animate); if (a === "max" && this.orientation === "horizontal") this.range[e ? "animate" : "css"]({ width: 100 - f + "%" }, { queue: false, duration: b.animate }); if (a === "min" && this.orientation === "vertical") this.range.stop(1, 1)[e ? "animate" : "css"]({ height: f + "%" }, b.animate); if (a === "max" && this.orientation === "vertical") this.range[e ? "animate" : "css"]({ height: 100 - f + "%" }, { queue: false, duration: b.animate })
            } 
        } 
    }); d.extend(d.ui.slider, { version: "1.8.2" })
})(jQuery);
; /*
 * jQuery UI Tabs 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Tabs
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.widget.js
 */
(function (d)
{
    function s() { return ++u } function v() { return ++w } var u = 0, w = 0; d.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, e)
    {
        if (c == "selected") this.options.collapsible &&
e == this.options.selected || this.select(e); else { this.options[c] = e; this._tabify() } 
    }, _tabId: function (c) { return c.title && c.title.replace(/\s/g, "_").replace(/[^A-Za-z0-9\-_:\.]/g, "") || this.options.idPrefix + s() }, _sanitizeSelector: function (c) { return c.replace(/:/g, "\\:") }, _cookie: function () { var c = this.cookie || (this.cookie = this.options.cookie.name || "ui-tabs-" + v()); return d.cookie.apply(null, [c].concat(d.makeArray(arguments))) }, _ui: function (c, e) { return { tab: c, panel: e, 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 =
d(this); c.html(c.data("label.tabs")).removeData("label.tabs")
        })
    }, _tabify: function (c)
    {
        function e(g, f) { g.css({ display: "" }); !d.support.opacity && f.opacity && g[0].style.removeAttribute("filter") } this.list = this.element.find("ol,ul").eq(0); this.lis = d("li:has(a[href])", this.list); this.anchors = this.lis.map(function () { return d("a", this)[0] }); this.panels = d([]); var a = this, b = this.options, h = /^#.+/; this.anchors.each(function (g, f)
        {
            var j = d(f).attr("href"), l = j.split("#")[0], p; if (l && (l === location.toString().split("#")[0] ||
(p = d("base")[0]) && l === p.href)) { j = f.hash; f.href = j } if (h.test(j)) a.panels = a.panels.add(a._sanitizeSelector(j)); else if (j != "#") { d.data(f, "href.tabs", j); d.data(f, "load.tabs", j.replace(/#.*$/, "")); j = a._tabId(f); f.href = "#" + j; f = d("#" + j); if (!f.length) { f = d(b.panelTemplate).attr("id", j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g - 1] || a.list); f.data("destroy.tabs", true) } a.panels = a.panels.add(f) } else b.disabled.push(g)
        }); 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 (b.selected === undefined)
            {
                location.hash && this.anchors.each(function (g, f) { if (f.hash == location.hash) { b.selected = g; return false } }); if (typeof b.selected != "number" && b.cookie) b.selected = parseInt(a._cookie(), 10); if (typeof b.selected != "number" && this.lis.filter(".ui-tabs-selected").length) b.selected =
this.lis.index(this.lis.filter(".ui-tabs-selected")); b.selected = b.selected || (this.lis.length ? 0 : -1)
            } else if (b.selected === null) b.selected = -1; b.selected = b.selected >= 0 && this.anchors[b.selected] || b.selected < 0 ? b.selected : 0; b.disabled = d.unique(b.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"), function (g) { return a.lis.index(g) }))).sort(); d.inArray(b.selected, b.disabled) != -1 && b.disabled.splice(d.inArray(b.selected, b.disabled), 1); this.panels.addClass("ui-tabs-hide"); this.lis.removeClass("ui-tabs-selected ui-state-active");
            if (b.selected >= 0 && this.anchors.length) { this.panels.eq(b.selected).removeClass("ui-tabs-hide"); this.lis.eq(b.selected).addClass("ui-tabs-selected ui-state-active"); a.element.queue("tabs", function () { a._trigger("show", null, a._ui(a.anchors[b.selected], a.panels[b.selected])) }); this.load(b.selected) } d(window).bind("unload", function () { a.lis.add(a.anchors).unbind(".tabs"); a.lis = a.anchors = a.panels = null })
        } else b.selected = this.lis.index(this.lis.filter(".ui-tabs-selected")); this.element[b.collapsible ? "addClass" :
"removeClass"]("ui-tabs-collapsible"); b.cookie && this._cookie(b.selected, b.cookie); c = 0; for (var i; i = this.lis[c]; c++) d(i)[d.inArray(c, b.disabled) != -1 && !d(i).hasClass("ui-tabs-selected") ? "addClass" : "removeClass"]("ui-state-disabled"); b.cache === false && this.anchors.removeData("cache.tabs"); this.lis.add(this.anchors).unbind(".tabs"); if (b.event != "mouseover")
        {
            var k = function (g, f) { f.is(":not(.ui-state-disabled)") && f.addClass("ui-state-" + g) }, n = function (g, f) { f.removeClass("ui-state-" + g) }; this.lis.bind("mouseover.tabs",
function () { k("hover", d(this)) }); this.lis.bind("mouseout.tabs", function () { n("hover", d(this)) }); this.anchors.bind("focus.tabs", function () { k("focus", d(this).closest("li")) }); this.anchors.bind("blur.tabs", function () { n("focus", d(this).closest("li")) })
        } var m, o; if (b.fx) if (d.isArray(b.fx)) { m = b.fx[0]; o = b.fx[1] } else m = o = b.fx; var q = o ? function (g, f)
        {
            d(g).closest("li").addClass("ui-tabs-selected ui-state-active"); f.hide().removeClass("ui-tabs-hide").animate(o, o.duration || "normal", function ()
            {
                e(f, o); a._trigger("show",
null, a._ui(g, f[0]))
            })
        } : function (g, f) { d(g).closest("li").addClass("ui-tabs-selected ui-state-active"); f.removeClass("ui-tabs-hide"); a._trigger("show", null, a._ui(g, f[0])) }, r = m ? function (g, f) { f.animate(m, m.duration || "normal", function () { a.lis.removeClass("ui-tabs-selected ui-state-active"); f.addClass("ui-tabs-hide"); e(f, m); a.element.dequeue("tabs") }) } : function (g, f) { a.lis.removeClass("ui-tabs-selected ui-state-active"); f.addClass("ui-tabs-hide"); a.element.dequeue("tabs") }; this.anchors.bind(b.event + ".tabs",
function ()
{
    var g = this, f = d(this).closest("li"), j = a.panels.filter(":not(.ui-tabs-hide)"), l = d(a._sanitizeSelector(this.hash)); if (f.hasClass("ui-tabs-selected") && !b.collapsible || f.hasClass("ui-state-disabled") || f.hasClass("ui-state-processing") || a._trigger("select", null, a._ui(this, l[0])) === false) { this.blur(); return false } b.selected = a.anchors.index(this); a.abort(); if (b.collapsible) if (f.hasClass("ui-tabs-selected"))
    {
        b.selected = -1; b.cookie && a._cookie(b.selected, b.cookie); a.element.queue("tabs", function ()
        {
            r(g,
j)
        }).dequeue("tabs"); this.blur(); return false
    } else if (!j.length) { b.cookie && a._cookie(b.selected, b.cookie); a.element.queue("tabs", function () { q(g, l) }); a.load(a.anchors.index(this)); this.blur(); return false } b.cookie && a._cookie(b.selected, b.cookie); if (l.length) { j.length && a.element.queue("tabs", function () { r(g, j) }); a.element.queue("tabs", function () { q(g, l) }); a.load(a.anchors.index(this)) } else throw "jQuery UI Tabs: Mismatching fragment identifier."; d.browser.msie && this.blur()
}); this.anchors.bind("click.tabs",
function () { return false })
    }, 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 e = d.data(this, "href.tabs"); if (e) this.href = e; var a = d(this).unbind(".tabs"); d.each(["href", "load", "cache"], function (b, h) { a.removeData(h + ".tabs") }) }); this.lis.unbind(".tabs").add(this.panels).each(function ()
        {
            d.data(this,
"destroy.tabs") ? d(this).remove() : d(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, e, a)
    {
        if (a === undefined) a = this.anchors.length; var b = this, h = this.options; e = d(h.tabTemplate.replace(/#\{href\}/g, c).replace(/#\{label\}/g, e)); c = !c.indexOf("#") ? c.replace("#", "") : this._tabId(d("a", e)[0]); e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",
true); var i = d("#" + c); i.length || (i = d(h.panelTemplate).attr("id", c).data("destroy.tabs", true)); i.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"); if (a >= this.lis.length) { e.appendTo(this.list); i.appendTo(this.list[0].parentNode) } else { e.insertBefore(this.lis[a]); i.insertBefore(this.panels[a]) } h.disabled = d.map(h.disabled, function (k) { return k >= a ? ++k : k }); this._tabify(); if (this.anchors.length == 1)
        {
            h.selected = 0; e.addClass("ui-tabs-selected ui-state-active"); i.removeClass("ui-tabs-hide");
            this.element.queue("tabs", function () { b._trigger("show", null, b._ui(b.anchors[0], b.panels[0])) }); this.load(0)
        } this._trigger("add", null, this._ui(this.anchors[a], this.panels[a])); return this
    }, remove: function (c)
    {
        var e = this.options, a = this.lis.eq(c).remove(), b = this.panels.eq(c).remove(); if (a.hasClass("ui-tabs-selected") && this.anchors.length > 1) this.select(c + (c + 1 < this.anchors.length ? 1 : -1)); e.disabled = d.map(d.grep(e.disabled, function (h) { return h != c }), function (h) { return h >= c ? --h : h }); this._tabify(); this._trigger("remove",
null, this._ui(a.find("a")[0], b[0])); return this
    }, enable: function (c) { var e = this.options; if (d.inArray(c, e.disabled) != -1) { this.lis.eq(c).removeClass("ui-state-disabled"); e.disabled = d.grep(e.disabled, function (a) { return a != c }); this._trigger("enable", null, this._ui(this.anchors[c], this.panels[c])); return this } }, disable: function (c) { var e = this.options; if (c != e.selected) { this.lis.eq(c).addClass("ui-state-disabled"); e.disabled.push(c); e.disabled.sort(); this._trigger("disable", null, this._ui(this.anchors[c], this.panels[c])) } return this },
        select: function (c) { if (typeof c == "string") c = this.anchors.index(this.anchors.filter("[href$=" + c + "]")); else if (c === null) c = -1; if (c == -1 && this.options.collapsible) c = this.options.selected; this.anchors.eq(c).trigger(this.options.event + ".tabs"); return this }, load: function (c)
        {
            var e = this, a = this.options, b = this.anchors.eq(c)[0], h = d.data(b, "load.tabs"); this.abort(); if (!h || this.element.queue("tabs").length !== 0 && d.data(b, "cache.tabs")) this.element.dequeue("tabs"); else
            {
                this.lis.eq(c).addClass("ui-state-processing");
                if (a.spinner) { var i = d("span", b); i.data("label.tabs", i.html()).html(a.spinner) } this.xhr = d.ajax(d.extend({}, a.ajaxOptions, { url: h, success: function (k, n) { d(e._sanitizeSelector(b.hash)).html(k); e._cleanup(); a.cache && d.data(b, "cache.tabs", true); e._trigger("load", null, e._ui(e.anchors[c], e.panels[c])); try { a.ajaxOptions.success(k, n) } catch (m) { } }, error: function (k, n) { e._cleanup(); e._trigger("load", null, e._ui(e.anchors[c], e.panels[c])); try { a.ajaxOptions.error(k, n, c, b) } catch (m) { } } })); e.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, e) { this.anchors.eq(c).removeData("cache.tabs").data("load.tabs", e); return this }, length: function () { return this.anchors.length } 
    }); d.extend(d.ui.tabs, { version: "1.8.2" }); d.extend(d.ui.tabs.prototype, { rotation: null, rotate: function (c, e)
    {
        var a = this, b = this.options, h = a._rotate || (a._rotate =
function (i) { clearTimeout(a.rotation); a.rotation = setTimeout(function () { var k = b.selected; a.select(++k < a.anchors.length ? k : 0) }, c); i && i.stopPropagation() }); e = a._unrotate || (a._unrotate = !e ? function (i) { i.clientX && a.rotate(null) } : function () { t = b.selected; h() }); if (c) { this.element.bind("tabsshow", h); this.anchors.bind(b.event + ".tabs", e); h() } else { clearTimeout(a.rotation); this.element.unbind("tabsshow", h); this.anchors.unbind(b.event + ".tabs", e); delete this._rotate; delete this._unrotate } return this
    } 
    })
})(jQuery);
; /*
 * jQuery UI Datepicker 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Datepicker
 *
 * Depends:
 *	jquery.ui.core.js
 */
(function (d)
{
    function J()
    {
        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
}; d.extend(this._defaults, this.regional[""]); this.dpDiv = d('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>')
    } function E(a, b)
    {
        d.extend(a,
b); for (var c in b) if (b[c] == null || b[c] == undefined) a[c] = b[c]; return a
    } d.extend(d.ui, { datepicker: { version: "1.8.2"} }); var y = (new Date).getTime(); d.extend(J.prototype, { markerClassName: "hasDatepicker", log: function () { this.debug && console.log.apply("", arguments) }, _widgetDatepicker: function () { return this.dpDiv }, setDefaults: function (a) { E(this._defaults, a || {}); return this }, _attachDatepicker: function (a, b)
    {
        var c = null; for (var e in this._defaults)
        {
            var f = a.getAttribute("date:" + e); if (f)
            {
                c = c || {}; try { c[e] = eval(f) } catch (h)
                {
                    c[e] =
f
                } 
            } 
        } e = a.nodeName.toLowerCase(); f = e == "div" || e == "span"; if (!a.id) { this.uuid += 1; a.id = "dp" + this.uuid } var i = this._newInst(d(a), f); i.settings = d.extend({}, b || {}, c || {}); if (e == "input") this._connectDatepicker(a, i); else f && this._inlineDatepicker(a, i)
    }, _newInst: function (a, b) { 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: b, dpDiv: !b ? this.dpDiv : d('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')} },
        _connectDatepicker: function (a, b) { var c = d(a); b.append = d([]); b.trigger = d([]); if (!c.hasClass(this.markerClassName)) { this._attachments(c, b); c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", function (e, f, h) { b.settings[f] = h }).bind("getData.datepicker", function (e, f) { return this._get(b, f) }); this._autoSize(b); d.data(a, "datepicker", b) } }, _attachments: function (a, b)
        {
            var c = this._get(b, "appendText"), e = this._get(b, "isRTL"); b.append &&
b.append.remove(); if (c) { b.append = d('<span class="' + this._appendClass + '">' + c + "</span>"); a[e ? "before" : "after"](b.append) } a.unbind("focus", this._showDatepicker); b.trigger && b.trigger.remove(); c = this._get(b, "showOn"); if (c == "focus" || c == "both") a.focus(this._showDatepicker); if (c == "button" || c == "both")
            {
                c = this._get(b, "buttonText"); var f = this._get(b, "buttonImage"); b.trigger = d(this._get(b, "buttonImageOnly") ? d("<img/>").addClass(this._triggerClass).attr({ src: f, alt: c, title: c }) : d('<button type="button"></button>').addClass(this._triggerClass).html(f ==
"" ? c : d("<img/>").attr({ src: f, alt: c, title: c }))); a[e ? "before" : "after"](b.trigger); b.trigger.click(function () { d.datepicker._datepickerShowing && d.datepicker._lastInput == a[0] ? d.datepicker._hideDatepicker() : d.datepicker._showDatepicker(a[0]); return false })
            } 
        }, _autoSize: function (a)
        {
            if (this._get(a, "autoSize") && !a.inline)
            {
                var b = new Date(2009, 11, 20), c = this._get(a, "dateFormat"); if (c.match(/[DM]/))
                {
                    var e = function (f) { for (var h = 0, i = 0, g = 0; g < f.length; g++) if (f[g].length > h) { h = f[g].length; i = g } return i }; b.setMonth(e(this._get(a,
c.match(/MM/) ? "monthNames" : "monthNamesShort"))); b.setDate(e(this._get(a, c.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - b.getDay())
                } a.input.attr("size", this._formatDate(a, b).length)
            } 
        }, _inlineDatepicker: function (a, b)
        {
            var c = d(a); if (!c.hasClass(this.markerClassName))
            {
                c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker", function (e, f, h) { b.settings[f] = h }).bind("getData.datepicker", function (e, f) { return this._get(b, f) }); d.data(a, "datepicker", b); this._setDate(b, this._getDefaultDate(b),
true); this._updateDatepicker(b); this._updateAlternate(b)
            } 
        }, _dialogDatepicker: function (a, b, c, e, f)
        {
            a = this._dialogInst; if (!a) { this.uuid += 1; this._dialogInput = d('<input type="text" id="' + ("dp" + this.uuid) + '" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>'); this._dialogInput.keydown(this._doKeyDown); d("body").append(this._dialogInput); a = this._dialogInst = this._newInst(this._dialogInput, false); a.settings = {}; d.data(this._dialogInput[0], "datepicker", a) } E(a.settings, e || {}); b = b && b.constructor ==
Date ? this._formatDate(a, b) : b; this._dialogInput.val(b); this._pos = f ? f.length ? f : [f.pageX, f.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 = c; this._inDialog = true; this.dpDiv.addClass(this._dialogClass); this._showDatepicker(this._dialogInput[0]);
            d.blockUI && d.blockUI(this.dpDiv); d.data(this._dialogInput[0], "datepicker", a); return this
        }, _destroyDatepicker: function (a) { var b = d(a), c = d.data(a, "datepicker"); if (b.hasClass(this.markerClassName)) { var e = a.nodeName.toLowerCase(); d.removeData(a, "datepicker"); if (e == "input") { c.append.remove(); c.trigger.remove(); b.removeClass(this.markerClassName).unbind("focus", this._showDatepicker).unbind("keydown", this._doKeyDown).unbind("keypress", this._doKeyPress).unbind("keyup", this._doKeyUp) } else if (e == "div" || e == "span") b.removeClass(this.markerClassName).empty() } },
        _enableDatepicker: function (a) { var b = d(a), c = d.data(a, "datepicker"); if (b.hasClass(this.markerClassName)) { var e = a.nodeName.toLowerCase(); if (e == "input") { a.disabled = false; c.trigger.filter("button").each(function () { this.disabled = false }).end().filter("img").css({ opacity: "1.0", cursor: "" }) } else if (e == "div" || e == "span") b.children("." + this._inlineClass).children().removeClass("ui-state-disabled"); this._disabledInputs = d.map(this._disabledInputs, function (f) { return f == a ? null : f }) } }, _disableDatepicker: function (a)
        {
            var b =
d(a), c = d.data(a, "datepicker"); if (b.hasClass(this.markerClassName)) { var e = a.nodeName.toLowerCase(); if (e == "input") { a.disabled = true; c.trigger.filter("button").each(function () { this.disabled = true }).end().filter("img").css({ opacity: "0.5", cursor: "default" }) } else if (e == "div" || e == "span") b.children("." + this._inlineClass).children().addClass("ui-state-disabled"); this._disabledInputs = d.map(this._disabledInputs, function (f) { return f == a ? null : f }); this._disabledInputs[this._disabledInputs.length] = a } 
        }, _isDisabledDatepicker: function (a)
        {
            if (!a) return false;
            for (var b = 0; b < this._disabledInputs.length; b++) if (this._disabledInputs[b] == a) return true; return false
        }, _getInst: function (a) { try { return d.data(a, "datepicker") } catch (b) { throw "Missing instance data for this datepicker"; } }, _optionDatepicker: function (a, b, c)
        {
            var e = this._getInst(a); if (arguments.length == 2 && typeof b == "string") return b == "defaults" ? d.extend({}, d.datepicker._defaults) : e ? b == "all" ? d.extend({}, e.settings) : this._get(e, b) : null; var f = b || {}; if (typeof b == "string") { f = {}; f[b] = c } if (e)
            {
                this._curInst == e &&
this._hideDatepicker(); var h = this._getDateDatepicker(a, true); E(e.settings, f); this._attachments(d(a), e); this._autoSize(e); this._setDateDatepicker(a, h); this._updateDatepicker(e)
            } 
        }, _changeDatepicker: function (a, b, c) { this._optionDatepicker(a, b, c) }, _refreshDatepicker: function (a) { (a = this._getInst(a)) && this._updateDatepicker(a) }, _setDateDatepicker: function (a, b) { if (a = this._getInst(a)) { this._setDate(a, b); this._updateDatepicker(a); this._updateAlternate(a) } }, _getDateDatepicker: function (a, b)
        {
            (a = this._getInst(a)) &&
!a.inline && this._setDateFromField(a, b); return a ? this._getDate(a) : null
        }, _doKeyDown: function (a)
        {
            var b = d.datepicker._getInst(a.target), c = true, e = b.dpDiv.is(".ui-datepicker-rtl"); b._keyEvent = true; if (d.datepicker._datepickerShowing) switch (a.keyCode)
            {
                case 9: d.datepicker._hideDatepicker(); c = false; break; case 13: c = d("td." + d.datepicker._dayOverClass, b.dpDiv).add(d("td." + d.datepicker._currentClass, b.dpDiv)); c[0] ? d.datepicker._selectDay(a.target, b.selectedMonth, b.selectedYear, c[0]) : d.datepicker._hideDatepicker();
                    return false; case 27: d.datepicker._hideDatepicker(); break; case 33: d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(b, "stepBigMonths") : -d.datepicker._get(b, "stepMonths"), "M"); break; case 34: d.datepicker._adjustDate(a.target, a.ctrlKey ? +d.datepicker._get(b, "stepBigMonths") : +d.datepicker._get(b, "stepMonths"), "M"); break; case 35: if (a.ctrlKey || a.metaKey) d.datepicker._clearDate(a.target); c = a.ctrlKey || a.metaKey; break; case 36: if (a.ctrlKey || a.metaKey) d.datepicker._gotoToday(a.target); c = a.ctrlKey ||
a.metaKey; break; case 37: if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, e ? +1 : -1, "D"); c = a.ctrlKey || a.metaKey; if (a.originalEvent.altKey) d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(b, "stepBigMonths") : -d.datepicker._get(b, "stepMonths"), "M"); break; case 38: if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, -7, "D"); c = a.ctrlKey || a.metaKey; break; case 39: if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, e ? -1 : +1, "D"); c = a.ctrlKey || a.metaKey; if (a.originalEvent.altKey) d.datepicker._adjustDate(a.target,
a.ctrlKey ? +d.datepicker._get(b, "stepBigMonths") : +d.datepicker._get(b, "stepMonths"), "M"); break; case 40: if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, +7, "D"); c = a.ctrlKey || a.metaKey; break; default: c = false
            } else if (a.keyCode == 36 && a.ctrlKey) d.datepicker._showDatepicker(this); else c = false; if (c) { a.preventDefault(); a.stopPropagation() } 
        }, _doKeyPress: function (a)
        {
            var b = d.datepicker._getInst(a.target); if (d.datepicker._get(b, "constrainInput"))
            {
                b = d.datepicker._possibleChars(d.datepicker._get(b, "dateFormat"));
                var c = String.fromCharCode(a.charCode == undefined ? a.keyCode : a.charCode); return a.ctrlKey || c < " " || !b || b.indexOf(c) > -1
            } 
        }, _doKeyUp: function (a) { a = d.datepicker._getInst(a.target); if (a.input.val() != a.lastVal) try { if (d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), a.input ? a.input.val() : null, d.datepicker._getFormatConfig(a))) { d.datepicker._setDateFromField(a); d.datepicker._updateAlternate(a); d.datepicker._updateDatepicker(a) } } catch (b) { d.datepicker.log(b) } return true }, _showDatepicker: function (a)
        {
            a = a.target ||
a; if (a.nodeName.toLowerCase() != "input") a = d("input", a.parentNode)[0]; if (!(d.datepicker._isDisabledDatepicker(a) || d.datepicker._lastInput == a))
            {
                var b = d.datepicker._getInst(a); d.datepicker._curInst && d.datepicker._curInst != b && d.datepicker._curInst.dpDiv.stop(true, true); var c = d.datepicker._get(b, "beforeShow"); E(b.settings, c ? c.apply(a, [a, b]) : {}); b.lastVal = null; d.datepicker._lastInput = a; d.datepicker._setDateFromField(b); if (d.datepicker._inDialog) a.value = ""; if (!d.datepicker._pos)
                {
                    d.datepicker._pos = d.datepicker._findPos(a);
                    d.datepicker._pos[1] += a.offsetHeight
                } var e = false; d(a).parents().each(function () { e |= d(this).css("position") == "fixed"; return !e }); if (e && d.browser.opera) { d.datepicker._pos[0] -= document.documentElement.scrollLeft; d.datepicker._pos[1] -= document.documentElement.scrollTop } c = { left: d.datepicker._pos[0], top: d.datepicker._pos[1] }; d.datepicker._pos = null; b.dpDiv.css({ position: "absolute", display: "block", top: "-1000px" }); d.datepicker._updateDatepicker(b); c = d.datepicker._checkOffset(b, c, e); b.dpDiv.css({ position: d.datepicker._inDialog &&
d.blockUI ? "static" : e ? "fixed" : "absolute", display: "none", left: c.left + "px", top: c.top + "px"
                }); if (!b.inline)
                {
                    c = d.datepicker._get(b, "showAnim"); var f = d.datepicker._get(b, "duration"), h = function () { d.datepicker._datepickerShowing = true; var i = d.datepicker._getBorders(b.dpDiv); b.dpDiv.find("iframe.ui-datepicker-cover").css({ left: -i[0], top: -i[1], width: b.dpDiv.outerWidth(), height: b.dpDiv.outerHeight() }) }; b.dpDiv.zIndex(d(a).zIndex() + 1); d.effects && d.effects[c] ? b.dpDiv.show(c, d.datepicker._get(b, "showOptions"), f,
h) : b.dpDiv[c || "show"](c ? f : null, h); if (!c || !f) h(); b.input.is(":visible") && !b.input.is(":disabled") && b.input.focus(); d.datepicker._curInst = b
                } 
            } 
        }, _updateDatepicker: function (a)
        {
            var b = this, c = d.datepicker._getBorders(a.dpDiv); a.dpDiv.empty().append(this._generateHTML(a)).find("iframe.ui-datepicker-cover").css({ left: -c[0], top: -c[1], width: a.dpDiv.outerWidth(), height: a.dpDiv.outerHeight() }).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout", function ()
            {
                d(this).removeClass("ui-state-hover");
                this.className.indexOf("ui-datepicker-prev") != -1 && d(this).removeClass("ui-datepicker-prev-hover"); this.className.indexOf("ui-datepicker-next") != -1 && d(this).removeClass("ui-datepicker-next-hover")
            }).bind("mouseover", function ()
            {
                if (!b._isDisabledDatepicker(a.inline ? a.dpDiv.parent()[0] : a.input[0]))
                {
                    d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); d(this).addClass("ui-state-hover"); this.className.indexOf("ui-datepicker-prev") != -1 && d(this).addClass("ui-datepicker-prev-hover");
                    this.className.indexOf("ui-datepicker-next") != -1 && d(this).addClass("ui-datepicker-next-hover")
                } 
            }).end().find("." + this._dayOverClass + " a").trigger("mouseover").end(); c = this._getNumberOfMonths(a); var e = c[1]; e > 1 ? a.dpDiv.addClass("ui-datepicker-multi-" + e).css("width", 17 * e + "em") : a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""); a.dpDiv[(c[0] != 1 || c[1] != 1 ? "add" : "remove") + "Class"]("ui-datepicker-multi"); a.dpDiv[(this._get(a, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl");
            a == d.datepicker._curInst && d.datepicker._datepickerShowing && a.input && a.input.is(":visible") && !a.input.is(":disabled") && a.input.focus()
        }, _getBorders: function (a) { var b = function (c) { return { thin: 1, medium: 2, thick: 3}[c] || c }; return [parseFloat(b(a.css("border-left-width"))), parseFloat(b(a.css("border-top-width")))] }, _checkOffset: function (a, b, c)
        {
            var e = a.dpDiv.outerWidth(), f = a.dpDiv.outerHeight(), h = a.input ? a.input.outerWidth() : 0, i = a.input ? a.input.outerHeight() : 0, g = document.documentElement.clientWidth + d(document).scrollLeft(),
k = document.documentElement.clientHeight + d(document).scrollTop(); b.left -= this._get(a, "isRTL") ? e - h : 0; b.left -= c && b.left == a.input.offset().left ? d(document).scrollLeft() : 0; b.top -= c && b.top == a.input.offset().top + i ? d(document).scrollTop() : 0; b.left -= Math.min(b.left, b.left + e > g && g > e ? Math.abs(b.left + e - g) : 0); b.top -= Math.min(b.top, b.top + f > k && k > f ? Math.abs(f + i) : 0); return b
        }, _findPos: function (a)
        {
            for (var b = this._get(this._getInst(a), "isRTL"); a && (a.type == "hidden" || a.nodeType != 1); ) a = a[b ? "previousSibling" : "nextSibling"];
            a = d(a).offset(); return [a.left, a.top]
        }, _hideDatepicker: function (a)
        {
            var b = this._curInst; if (!(!b || a && b != d.data(a, "datepicker"))) if (this._datepickerShowing)
            {
                a = this._get(b, "showAnim"); var c = this._get(b, "duration"), e = function () { d.datepicker._tidyDialog(b); this._curInst = null }; d.effects && d.effects[a] ? b.dpDiv.hide(a, d.datepicker._get(b, "showOptions"), c, e) : b.dpDiv[a == "slideDown" ? "slideUp" : a == "fadeIn" ? "fadeOut" : "hide"](a ? c : null, e); a || e(); if (a = this._get(b, "onClose")) a.apply(b.input ? b.input[0] : null, [b.input ? b.input.val() :
"", b]); this._datepickerShowing = false; this._lastInput = null; if (this._inDialog) { this._dialogInput.css({ position: "absolute", left: "0", top: "-100px" }); if (d.blockUI) { d.unblockUI(); d("body").append(this.dpDiv) } } this._inDialog = false
            } 
        }, _tidyDialog: function (a) { a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar") }, _checkExternalClick: function (a)
        {
            if (d.datepicker._curInst)
            {
                a = d(a.target); a[0].id != d.datepicker._mainDivId && a.parents("#" + d.datepicker._mainDivId).length == 0 && !a.hasClass(d.datepicker.markerClassName) &&
!a.hasClass(d.datepicker._triggerClass) && d.datepicker._datepickerShowing && !(d.datepicker._inDialog && d.blockUI) && d.datepicker._hideDatepicker()
            } 
        }, _adjustDate: function (a, b, c) { a = d(a); var e = this._getInst(a[0]); if (!this._isDisabledDatepicker(a[0])) { this._adjustInstDate(e, b + (c == "M" ? this._get(e, "showCurrentAtPos") : 0), c); this._updateDatepicker(e) } }, _gotoToday: function (a)
        {
            a = d(a); var b = this._getInst(a[0]); if (this._get(b, "gotoCurrent") && b.currentDay)
            {
                b.selectedDay = b.currentDay; b.drawMonth = b.selectedMonth = b.currentMonth;
                b.drawYear = b.selectedYear = b.currentYear
            } else { var c = new Date; b.selectedDay = c.getDate(); b.drawMonth = b.selectedMonth = c.getMonth(); b.drawYear = b.selectedYear = c.getFullYear() } this._notifyChange(b); this._adjustDate(a)
        }, _selectMonthYear: function (a, b, c) { a = d(a); var e = this._getInst(a[0]); e._selectingMonthYear = false; e["selected" + (c == "M" ? "Month" : "Year")] = e["draw" + (c == "M" ? "Month" : "Year")] = parseInt(b.options[b.selectedIndex].value, 10); this._notifyChange(e); this._adjustDate(a) }, _clickMonthYear: function (a)
        {
            a = this._getInst(d(a)[0]);
            a.input && a._selectingMonthYear && !d.browser.msie && a.input.focus(); a._selectingMonthYear = !a._selectingMonthYear
        }, _selectDay: function (a, b, c, e) { var f = d(a); if (!(d(e).hasClass(this._unselectableClass) || this._isDisabledDatepicker(f[0]))) { f = this._getInst(f[0]); f.selectedDay = f.currentDay = d("a", e).html(); f.selectedMonth = f.currentMonth = b; f.selectedYear = f.currentYear = c; this._selectDate(a, this._formatDate(f, f.currentDay, f.currentMonth, f.currentYear)) } }, _clearDate: function (a)
        {
            a = d(a); this._getInst(a[0]); this._selectDate(a,
"")
        }, _selectDate: function (a, b) { a = this._getInst(d(a)[0]); b = b != null ? b : this._formatDate(a); a.input && a.input.val(b); this._updateAlternate(a); var c = this._get(a, "onSelect"); if (c) c.apply(a.input ? a.input[0] : null, [b, 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 b = this._get(a, "altField"); if (b)
            {
                var c = this._get(a, "altFormat") ||
this._get(a, "dateFormat"), e = this._getDate(a), f = this.formatDate(c, e, this._getFormatConfig(a)); d(b).each(function () { d(this).val(f) })
            } 
        }, 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 b = a.getTime(); a.setMonth(0); a.setDate(1); return Math.floor(Math.round((b - a) / 864E5) / 7) + 1 }, parseDate: function (a, b, c)
        {
            if (a == null || b == null) throw "Invalid arguments"; b = typeof b == "object" ? b.toString() : b + ""; if (b == "") return null;
            for (var e = (c ? c.shortYearCutoff : null) || this._defaults.shortYearCutoff, f = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort, h = (c ? c.dayNames : null) || this._defaults.dayNames, i = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort, g = (c ? c.monthNames : null) || this._defaults.monthNames, k = c = -1, l = -1, u = -1, j = false, o = function (p) { (p = z + 1 < a.length && a.charAt(z + 1) == p) && z++; return p }, m = function (p)
            {
                o(p); p = new RegExp("^\\d{1," + (p == "@" ? 14 : p == "!" ? 20 : p == "y" ? 4 : p == "o" ? 3 : 2) + "}"); p = b.substring(s).match(p); if (!p) throw "Missing number at position " +
s; s += p[0].length; return parseInt(p[0], 10)
            }, n = function (p, w, G) { p = o(p) ? G : w; for (w = 0; w < p.length; w++) if (b.substr(s, p[w].length) == p[w]) { s += p[w].length; return w + 1 } throw "Unknown name at position " + s; }, r = function () { if (b.charAt(s) != a.charAt(z)) throw "Unexpected literal at position " + s; s++ }, s = 0, z = 0; z < a.length; z++) if (j) if (a.charAt(z) == "'" && !o("'")) j = false; else r(); else switch (a.charAt(z))
            {
                case "d": l = m("d"); break; case "D": n("D", f, h); break; case "o": u = m("o"); break; case "m": k = m("m"); break; case "M": k = n("M", i, g); break;
                case "y": c = m("y"); break; case "@": var v = new Date(m("@")); c = v.getFullYear(); k = v.getMonth() + 1; l = v.getDate(); break; case "!": v = new Date((m("!") - this._ticksTo1970) / 1E4); c = v.getFullYear(); k = v.getMonth() + 1; l = v.getDate(); break; case "'": if (o("'")) r(); else j = true; break; default: r()
            } if (c == -1) c = (new Date).getFullYear(); else if (c < 100) c += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (c <= e ? 0 : -100); if (u > -1) { k = 1; l = u; do { e = this._getDaysInMonth(c, k - 1); if (l <= e) break; k++; l -= e } while (1) } v = this._daylightSavingAdjust(new Date(c,
k - 1, l)); if (v.getFullYear() != c || v.getMonth() + 1 != k || v.getDate() != l) throw "Invalid date"; return v
        }, 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, b, c)
        {
            if (!b) return ""; var e = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort, f = (c ?
c.dayNames : null) || this._defaults.dayNames, h = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort; c = (c ? c.monthNames : null) || this._defaults.monthNames; var i = function (o) { (o = j + 1 < a.length && a.charAt(j + 1) == o) && j++; return o }, g = function (o, m, n) { m = "" + m; if (i(o)) for (; m.length < n; ) m = "0" + m; return m }, k = function (o, m, n, r) { return i(o) ? r[m] : n[m] }, l = "", u = false; if (b) for (var j = 0; j < a.length; j++) if (u) if (a.charAt(j) == "'" && !i("'")) u = false; else l += a.charAt(j); else switch (a.charAt(j))
            {
                case "d": l += g("d", b.getDate(), 2); break;
                case "D": l += k("D", b.getDay(), e, f); break; case "o": l += g("o", (b.getTime() - (new Date(b.getFullYear(), 0, 0)).getTime()) / 864E5, 3); break; case "m": l += g("m", b.getMonth() + 1, 2); break; case "M": l += k("M", b.getMonth(), h, c); break; case "y": l += i("y") ? b.getFullYear() : (b.getYear() % 100 < 10 ? "0" : "") + b.getYear() % 100; break; case "@": l += b.getTime(); break; case "!": l += b.getTime() * 1E4 + this._ticksTo1970; break; case "'": if (i("'")) l += "'"; else u = true; break; default: l += a.charAt(j)
            } return l
        }, _possibleChars: function (a)
        {
            for (var b = "", c = false,
e = function (h) { (h = f + 1 < a.length && a.charAt(f + 1) == h) && f++; return h }, f = 0; f < a.length; f++) if (c) if (a.charAt(f) == "'" && !e("'")) c = false; else b += a.charAt(f); else switch (a.charAt(f)) { case "d": case "m": case "y": case "@": b += "0123456789"; break; case "D": case "M": return null; case "'": if (e("'")) b += "'"; else c = true; break; default: b += a.charAt(f) } return b
        }, _get: function (a, b) { return a.settings[b] !== undefined ? a.settings[b] : this._defaults[b] }, _setDateFromField: function (a, b)
        {
            if (a.input.val() != a.lastVal)
            {
                var c = this._get(a, "dateFormat"),
e = a.lastVal = a.input ? a.input.val() : null, f, h; f = h = this._getDefaultDate(a); var i = this._getFormatConfig(a); try { f = this.parseDate(c, e, i) || h } catch (g) { this.log(g); e = b ? "" : e } a.selectedDay = f.getDate(); a.drawMonth = a.selectedMonth = f.getMonth(); a.drawYear = a.selectedYear = f.getFullYear(); a.currentDay = e ? f.getDate() : 0; a.currentMonth = e ? f.getMonth() : 0; a.currentYear = e ? f.getFullYear() : 0; this._adjustInstDate(a)
            } 
        }, _getDefaultDate: function (a) { return this._restrictMinMax(a, this._determineDate(a, this._get(a, "defaultDate"), new Date)) },
        _determineDate: function (a, b, c)
        {
            var e = function (h) { var i = new Date; i.setDate(i.getDate() + h); return i }, f = function (h)
            {
                try { return d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), h, d.datepicker._getFormatConfig(a)) } catch (i) { } var g = (h.toLowerCase().match(/^c/) ? d.datepicker._getDate(a) : null) || new Date, k = g.getFullYear(), l = g.getMonth(); g = g.getDate(); for (var u = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, j = u.exec(h); j; )
                {
                    switch (j[2] || "d")
                    {
                        case "d": case "D": g += parseInt(j[1], 10); break; case "w": case "W": g += parseInt(j[1],
10) * 7; break; case "m": case "M": l += parseInt(j[1], 10); g = Math.min(g, d.datepicker._getDaysInMonth(k, l)); break; case "y": case "Y": k += parseInt(j[1], 10); g = Math.min(g, d.datepicker._getDaysInMonth(k, l)); break
                    } j = u.exec(h)
                } return new Date(k, l, g)
            }; if (b = (b = b == null ? c : typeof b == "string" ? f(b) : typeof b == "number" ? isNaN(b) ? c : e(b) : b) && b.toString() == "Invalid Date" ? c : b) { b.setHours(0); b.setMinutes(0); b.setSeconds(0); b.setMilliseconds(0) } return this._daylightSavingAdjust(b)
        }, _daylightSavingAdjust: function (a)
        {
            if (!a) return null;
            a.setHours(a.getHours() > 12 ? a.getHours() + 2 : 0); return a
        }, _setDate: function (a, b, c) { var e = !b, f = a.selectedMonth, h = a.selectedYear; b = this._restrictMinMax(a, this._determineDate(a, b, new Date)); a.selectedDay = a.currentDay = b.getDate(); a.drawMonth = a.selectedMonth = a.currentMonth = b.getMonth(); a.drawYear = a.selectedYear = a.currentYear = b.getFullYear(); if ((f != a.selectedMonth || h != a.selectedYear) && !c) this._notifyChange(a); this._adjustInstDate(a); if (a.input) a.input.val(e ? "" : 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 b = new Date; b = this._daylightSavingAdjust(new Date(b.getFullYear(), b.getMonth(), b.getDate())); var c = this._get(a, "isRTL"), e = this._get(a, "showButtonPanel"), f = this._get(a, "hideIfNoPrevNext"), h = this._get(a, "navigationAsDateFormat"), i = this._getNumberOfMonths(a), g = this._get(a, "showCurrentAtPos"), k = this._get(a, "stepMonths"), l = i[0] != 1 || i[1] != 1, u = this._daylightSavingAdjust(!a.currentDay ?
new Date(9999, 9, 9) : new Date(a.currentYear, a.currentMonth, a.currentDay)), j = this._getMinMaxDate(a, "min"), o = this._getMinMaxDate(a, "max"); g = a.drawMonth - g; var m = a.drawYear; if (g < 0) { g += 12; m-- } if (o) { var n = this._daylightSavingAdjust(new Date(o.getFullYear(), o.getMonth() - i[0] * i[1] + 1, o.getDate())); for (n = j && n < j ? j : n; this._daylightSavingAdjust(new Date(m, g, 1)) > n; ) { g--; if (g < 0) { g = 11; m-- } } } a.drawMonth = g; a.drawYear = m; n = this._get(a, "prevText"); n = !h ? n : this.formatDate(n, this._daylightSavingAdjust(new Date(m, g - k, 1)), this._getFormatConfig(a));
            n = this._canAdjustMonth(a, -1, m, g) ? '<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + y + ".datepicker._adjustDate('#" + a.id + "', -" + k + ", 'M');\" title=\"" + n + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "e" : "w") + '">' + n + "</span></a>" : f ? "" : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="' + n + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "e" : "w") + '">' + n + "</span></a>"; var r = this._get(a, "nextText"); r = !h ? r : this.formatDate(r, this._daylightSavingAdjust(new Date(m,
g + k, 1)), this._getFormatConfig(a)); f = this._canAdjustMonth(a, +1, m, g) ? '<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + y + ".datepicker._adjustDate('#" + a.id + "', +" + k + ", 'M');\" title=\"" + r + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "w" : "e") + '">' + r + "</span></a>" : f ? "" : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="' + r + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "w" : "e") + '">' + r + "</span></a>"; k = this._get(a, "currentText"); r = this._get(a, "gotoCurrent") &&
a.currentDay ? u : b; k = !h ? k : this.formatDate(k, r, this._getFormatConfig(a)); h = !a.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + y + '.datepicker._hideDatepicker();">' + this._get(a, "closeText") + "</button>" : ""; e = e ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (c ? h : "") + (this._isInRange(a, r) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' +
y + ".datepicker._gotoToday('#" + a.id + "');\">" + k + "</button>" : "") + (c ? "" : h) + "</div>" : ""; h = parseInt(this._get(a, "firstDay"), 10); h = isNaN(h) ? 0 : h; k = this._get(a, "showWeek"); r = this._get(a, "dayNames"); this._get(a, "dayNamesShort"); var s = this._get(a, "dayNamesMin"), z = this._get(a, "monthNames"), v = this._get(a, "monthNamesShort"), p = this._get(a, "beforeShowDay"), w = this._get(a, "showOtherMonths"), G = this._get(a, "selectOtherMonths"); this._get(a, "calculateWeek"); for (var K = this._getDefaultDate(a), H = "", C = 0; C < i[0]; C++)
            {
                for (var L =
"", D = 0; D < i[1]; D++)
                {
                    var M = this._daylightSavingAdjust(new Date(m, g, a.selectedDay)), t = " ui-corner-all", x = ""; if (l) { x += '<div class="ui-datepicker-group'; if (i[1] > 1) switch (D) { case 0: x += " ui-datepicker-group-first"; t = " ui-corner-" + (c ? "right" : "left"); break; case i[1] - 1: x += " ui-datepicker-group-last"; t = " ui-corner-" + (c ? "left" : "right"); break; default: x += " ui-datepicker-group-middle"; t = ""; break } x += '">' } x += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + t + '">' + (/all|left/.test(t) && C == 0 ? c ?
f : n : "") + (/all|right/.test(t) && C == 0 ? c ? n : f : "") + this._generateMonthYearHeader(a, g, m, j, o, C > 0 || D > 0, z, v) + '</div><table class="ui-datepicker-calendar"><thead><tr>'; var A = k ? '<th class="ui-datepicker-week-col">' + this._get(a, "weekHeader") + "</th>" : ""; for (t = 0; t < 7; t++) { var q = (t + h) % 7; A += "<th" + ((t + h + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : "") + '><span title="' + r[q] + '">' + s[q] + "</span></th>" } x += A + "</tr></thead><tbody>"; A = this._getDaysInMonth(m, g); if (m == a.selectedYear && g == a.selectedMonth) a.selectedDay = Math.min(a.selectedDay,
A); t = (this._getFirstDayOfMonth(m, g) - h + 7) % 7; A = l ? 6 : Math.ceil((t + A) / 7); q = this._daylightSavingAdjust(new Date(m, g, 1 - t)); for (var N = 0; N < A; N++)
                    {
                        x += "<tr>"; var O = !k ? "" : '<td class="ui-datepicker-week-col">' + this._get(a, "calculateWeek")(q) + "</td>"; for (t = 0; t < 7; t++)
                        {
                            var F = p ? p.apply(a.input ? a.input[0] : null, [q]) : [true, ""], B = q.getMonth() != g, I = B && !G || !F[0] || j && q < j || o && q > o; O += '<td class="' + ((t + h + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + (B ? " ui-datepicker-other-month" : "") + (q.getTime() == M.getTime() && g == a.selectedMonth &&
a._keyEvent || K.getTime() == q.getTime() && K.getTime() == M.getTime() ? " " + this._dayOverClass : "") + (I ? " " + this._unselectableClass + " ui-state-disabled" : "") + (B && !w ? "" : " " + F[1] + (q.getTime() == u.getTime() ? " " + this._currentClass : "") + (q.getTime() == b.getTime() ? " ui-datepicker-today" : "")) + '"' + ((!B || w) && F[2] ? ' title="' + F[2] + '"' : "") + (I ? "" : ' onclick="DP_jQuery_' + y + ".datepicker._selectDay('#" + a.id + "'," + q.getMonth() + "," + q.getFullYear() + ', this);return false;"') + ">" + (B && !w ? "&#xa0;" : I ? '<span class="ui-state-default">' + q.getDate() +
"</span>" : '<a class="ui-state-default' + (q.getTime() == b.getTime() ? " ui-state-highlight" : "") + (q.getTime() == u.getTime() ? " ui-state-active" : "") + (B ? " ui-priority-secondary" : "") + '" href="#">' + q.getDate() + "</a>") + "</td>"; q.setDate(q.getDate() + 1); q = this._daylightSavingAdjust(q)
                        } x += O + "</tr>"
                    } g++; if (g > 11) { g = 0; m++ } x += "</tbody></table>" + (l ? "</div>" + (i[0] > 0 && D == i[1] - 1 ? '<div class="ui-datepicker-row-break"></div>' : "") : ""); L += x
                } H += L
            } H += e + (d.browser.msie && parseInt(d.browser.version, 10) < 7 && !a.inline ? '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' :
""); a._keyEvent = false; return H
        }, _generateMonthYearHeader: function (a, b, c, e, f, h, i, g)
        {
            var k = this._get(a, "changeMonth"), l = this._get(a, "changeYear"), u = this._get(a, "showMonthAfterYear"), j = '<div class="ui-datepicker-title">', o = ""; if (h || !k) o += '<span class="ui-datepicker-month">' + i[b] + "</span>"; else
            {
                i = e && e.getFullYear() == c; var m = f && f.getFullYear() == c; o += '<select class="ui-datepicker-month" onchange="DP_jQuery_' + y + ".datepicker._selectMonthYear('#" + a.id + "', this, 'M');\" onclick=\"DP_jQuery_" + y + ".datepicker._clickMonthYear('#" +
a.id + "');\">"; for (var n = 0; n < 12; n++) if ((!i || n >= e.getMonth()) && (!m || n <= f.getMonth())) o += '<option value="' + n + '"' + (n == b ? ' selected="selected"' : "") + ">" + g[n] + "</option>"; o += "</select>"
            } u || (j += o + (h || !(k && l) ? "&#xa0;" : "")); if (h || !l) j += '<span class="ui-datepicker-year">' + c + "</span>"; else
            {
                g = this._get(a, "yearRange").split(":"); var r = (new Date).getFullYear(); i = function (s) { s = s.match(/c[+-].*/) ? c + parseInt(s.substring(1), 10) : s.match(/[+-].*/) ? r + parseInt(s, 10) : parseInt(s, 10); return isNaN(s) ? r : s }; b = i(g[0]); g = Math.max(b,
i(g[1] || "")); b = e ? Math.max(b, e.getFullYear()) : b; g = f ? Math.min(g, f.getFullYear()) : g; for (j += '<select class="ui-datepicker-year" onchange="DP_jQuery_' + y + ".datepicker._selectMonthYear('#" + a.id + "', this, 'Y');\" onclick=\"DP_jQuery_" + y + ".datepicker._clickMonthYear('#" + a.id + "');\">"; b <= g; b++) j += '<option value="' + b + '"' + (b == c ? ' selected="selected"' : "") + ">" + b + "</option>"; j += "</select>"
            } j += this._get(a, "yearSuffix"); if (u) j += (h || !(k && l) ? "&#xa0;" : "") + o; j += "</div>"; return j
        }, _adjustInstDate: function (a, b, c)
        {
            var e =
a.drawYear + (c == "Y" ? b : 0), f = a.drawMonth + (c == "M" ? b : 0); b = Math.min(a.selectedDay, this._getDaysInMonth(e, f)) + (c == "D" ? b : 0); e = this._restrictMinMax(a, this._daylightSavingAdjust(new Date(e, f, b))); a.selectedDay = e.getDate(); a.drawMonth = a.selectedMonth = e.getMonth(); a.drawYear = a.selectedYear = e.getFullYear(); if (c == "M" || c == "Y") this._notifyChange(a)
        }, _restrictMinMax: function (a, b) { var c = this._getMinMaxDate(a, "min"); a = this._getMinMaxDate(a, "max"); b = c && b < c ? c : b; return b = a && b > a ? a : b }, _notifyChange: function (a)
        {
            var b = this._get(a,
"onChangeMonthYear"); if (b) b.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, b) { return this._determineDate(a, this._get(a, b + "Date"), null) }, _getDaysInMonth: function (a, b) { return 32 - (new Date(a, b, 32)).getDate() }, _getFirstDayOfMonth: function (a, b) { return (new Date(a, b, 1)).getDay() }, _canAdjustMonth: function (a, b, c, e)
        {
            var f = this._getNumberOfMonths(a);
            c = this._daylightSavingAdjust(new Date(c, e + (b < 0 ? b : f[0] * f[1]), 1)); b < 0 && c.setDate(this._getDaysInMonth(c.getFullYear(), c.getMonth())); return this._isInRange(a, c)
        }, _isInRange: function (a, b) { var c = this._getMinMaxDate(a, "min"); a = this._getMinMaxDate(a, "max"); return (!c || b.getTime() >= c.getTime()) && (!a || b.getTime() <= a.getTime()) }, _getFormatConfig: function (a)
        {
            var b = this._get(a, "shortYearCutoff"); b = typeof b != "string" ? b : (new Date).getFullYear() % 100 + parseInt(b, 10); return { shortYearCutoff: b, dayNamesShort: this._get(a,
"dayNamesShort"), dayNames: this._get(a, "dayNames"), monthNamesShort: this._get(a, "monthNamesShort"), monthNames: this._get(a, "monthNames")
            }
        }, _formatDate: function (a, b, c, e) { if (!b) { a.currentDay = a.selectedDay; a.currentMonth = a.selectedMonth; a.currentYear = a.selectedYear } b = b ? typeof b == "object" ? b : this._daylightSavingAdjust(new Date(e, c, b)) : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay)); return this.formatDate(this._get(a, "dateFormat"), b, this._getFormatConfig(a)) } 
    }); d.fn.datepicker =
function (a)
{
    if (!d.datepicker.initialized) { d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv); d.datepicker.initialized = true } var b = Array.prototype.slice.call(arguments, 1); if (typeof a == "string" && (a == "isDisabled" || a == "getDate" || a == "widget")) return d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(b)); if (a == "option" && arguments.length == 2 && typeof arguments[1] == "string") return d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(b));
    return this.each(function () { typeof a == "string" ? d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this].concat(b)) : d.datepicker._attachDatepicker(this, a) })
}; d.datepicker = new J; d.datepicker.initialized = false; d.datepicker.uuid = (new Date).getTime(); d.datepicker.version = "1.8.2"; window["DP_jQuery_" + y] = d
})(jQuery);
; /*
 * jQuery UI Progressbar 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Progressbar
 *
 * Depends:
 *   jquery.ui.core.js
 *   jquery.ui.widget.js
 */
(function (b)
{
    b.widget("ui.progressbar", { options: { value: 0 }, _create: function () { this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({ role: "progressbar", "aria-valuemin": this._valueMin(), "aria-valuemax": this._valueMax(), "aria-valuenow": this._value() }); this.valueDiv = b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element); 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 (a) { if (a === undefined) return this._value(); this._setOption("value", a); return this }, _setOption: function (a, c) { switch (a) { case "value": this.options.value = c; this._refreshValue(); this._trigger("change"); break } b.Widget.prototype._setOption.apply(this, arguments) }, _value: function () { var a = this.options.value; if (typeof a !== "number") a = 0; if (a < this._valueMin()) a = this._valueMin(); if (a > this._valueMax()) a = this._valueMax(); return a },
        _valueMin: function () { return 0 }, _valueMax: function () { return 100 }, _refreshValue: function () { var a = this.value(); this.valueDiv[a === this._valueMax() ? "addClass" : "removeClass"]("ui-corner-right").width(a + "%"); this.element.attr("aria-valuenow", a) } 
    }); b.extend(b.ui.progressbar, { version: "1.8.2" })
})(jQuery);
; /*
 * jQuery UI Effects 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/
 */
jQuery.effects || function (f)
{
    function k(c)
    {
        var a; if (c && c.constructor == Array && c.length == 3) return c; if (a = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c)) return [parseInt(a[1], 10), parseInt(a[2], 10), parseInt(a[3], 10)]; if (a = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c)) return [parseFloat(a[1]) * 2.55, parseFloat(a[2]) * 2.55, parseFloat(a[3]) * 2.55]; if (a = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c)) return [parseInt(a[1],
16), parseInt(a[2], 16), parseInt(a[3], 16)]; if (a = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c)) return [parseInt(a[1] + a[1], 16), parseInt(a[2] + a[2], 16), parseInt(a[3] + a[3], 16)]; if (/rgba\(0, 0, 0, 0\)/.exec(c)) return l.transparent; return l[f.trim(c).toLowerCase()]
    } function q(c, a) { var b; do { b = f.curCSS(c, a); if (b != "" && b != "transparent" || f.nodeName(c, "body")) break; a = "backgroundColor" } while (c = c.parentNode); return k(b) } function m()
    {
        var c = document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle,
a = {}, b, d; if (c && c.length && c[0] && c[c[0]]) for (var e = c.length; e--; ) { b = c[e]; if (typeof c[b] == "string") { d = b.replace(/\-(\w)/g, function (g, h) { return h.toUpperCase() }); a[d] = c[b] } } else for (b in c) if (typeof c[b] === "string") a[b] = c[b]; return a
    } function n(c) { var a, b; for (a in c) { b = c[a]; if (b == null || f.isFunction(b) || a in r || /scrollbar/.test(a) || !/color/i.test(a) && isNaN(parseFloat(b))) delete c[a] } return c } function s(c, a) { var b = { _: 0 }, d; for (d in a) if (c[d] != a[d]) b[d] = a[d]; return b } function j(c, a, b, d)
    {
        if (typeof c == "object")
        {
            d =
a; b = null; a = c; c = a.effect
        } if (f.isFunction(a)) { d = a; b = null; a = {} } if (f.isFunction(b)) { d = b; b = null } if (typeof a == "number" || f.fx.speeds[a]) { d = b; b = a; a = {} } a = a || {}; b = b || a.duration; b = f.fx.off ? 0 : typeof b == "number" ? b : f.fx.speeds[b] || f.fx.speeds._default; d = d || a.complete; return [c, a, b, d]
    } f.effects = {}; f.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "color", "outlineColor"], function (c, a)
    {
        f.fx.step[a] = function (b)
        {
            if (!b.colorInit)
            {
                b.start = q(b.elem, a); b.end = k(b.end); b.colorInit =
true
            } b.elem.style[a] = "rgb(" + Math.max(Math.min(parseInt(b.pos * (b.end[0] - b.start[0]) + b.start[0], 10), 255), 0) + "," + Math.max(Math.min(parseInt(b.pos * (b.end[1] - b.start[1]) + b.start[1], 10), 255), 0) + "," + Math.max(Math.min(parseInt(b.pos * (b.end[2] - b.start[2]) + b.start[2], 10), 255), 0) + ")"
        } 
    }); var l = { 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]
    }, o = ["add", "remove", "toggle"], r = { border: 1, borderBottom: 1, borderColor: 1, borderLeft: 1, borderRight: 1, borderTop: 1, borderWidth: 1, margin: 1, padding: 1 }; f.effects.animateClass = function (c, a, b, d)
    {
        if (f.isFunction(b)) { d = b; b = null } return this.each(function ()
        {
            var e = f(this), g = e.attr("style") || " ", h = n(m.call(this)), p, t = e.attr("className"); f.each(o, function (u,
i) { c[i] && e[i + "Class"](c[i]) }); p = n(m.call(this)); e.attr("className", t); e.animate(s(h, p), a, b, function () { f.each(o, function (u, i) { c[i] && e[i + "Class"](c[i]) }); if (typeof e.attr("style") == "object") { e.attr("style").cssText = ""; e.attr("style").cssText = g } else e.attr("style", g); d && d.apply(this, arguments) })
        })
    }; f.fn.extend({ _addClass: f.fn.addClass, addClass: function (c, a, b, d) { return a ? f.effects.animateClass.apply(this, [{ add: c }, a, b, d]) : this._addClass(c) }, _removeClass: f.fn.removeClass, removeClass: function (c, a, b, d)
    {
        return a ?
f.effects.animateClass.apply(this, [{ remove: c }, a, b, d]) : this._removeClass(c)
    }, _toggleClass: f.fn.toggleClass, toggleClass: function (c, a, b, d, e) { return typeof a == "boolean" || a === undefined ? b ? f.effects.animateClass.apply(this, [a ? { add: c} : { remove: c }, b, d, e]) : this._toggleClass(c, a) : f.effects.animateClass.apply(this, [{ toggle: c }, a, b, d]) }, switchClass: function (c, a, b, d, e) { return f.effects.animateClass.apply(this, [{ add: a, remove: c }, b, d, e]) } 
    }); f.extend(f.effects, { version: "1.8.2", save: function (c, a)
    {
        for (var b = 0; b < a.length; b++) a[b] !==
null && c.data("ec.storage." + a[b], c[0].style[a[b]])
    }, restore: function (c, a) { for (var b = 0; b < a.length; b++) a[b] !== null && c.css(a[b], c.data("ec.storage." + a[b])) }, setMode: function (c, a) { if (a == "toggle") a = c.is(":hidden") ? "show" : "hide"; return a }, getBaseline: function (c, a) { var b; switch (c[0]) { case "top": b = 0; break; case "middle": b = 0.5; break; case "bottom": b = 1; break; default: b = c[0] / a.height } switch (c[1]) { case "left": c = 0; break; case "center": c = 0.5; break; case "right": c = 1; break; default: c = c[1] / a.width } return { x: c, y: b} }, createWrapper: function (c)
    {
        if (c.parent().is(".ui-effects-wrapper")) return c.parent();
        var a = { width: c.outerWidth(true), height: c.outerHeight(true), "float": c.css("float") }, b = f("<div></div>").addClass("ui-effects-wrapper").css({ fontSize: "100%", background: "transparent", border: "none", margin: 0, padding: 0 }); c.wrap(b); b = c.parent(); if (c.css("position") == "static") { b.css({ position: "relative" }); c.css({ position: "relative" }) } else
        {
            f.extend(a, { position: c.css("position"), zIndex: c.css("z-index") }); f.each(["top", "left", "bottom", "right"], function (d, e) { a[e] = c.css(e); if (isNaN(parseInt(a[e], 10))) a[e] = "auto" });
            c.css({ position: "relative", top: 0, left: 0 })
        } return b.css(a).show()
    }, removeWrapper: function (c) { if (c.parent().is(".ui-effects-wrapper")) return c.parent().replaceWith(c); return c }, setTransition: function (c, a, b, d) { d = d || {}; f.each(a, function (e, g) { unit = c.cssUnit(g); if (unit[0] > 0) d[g] = unit[0] * b + unit[1] }); return d } 
    }); f.fn.extend({ effect: function (c) { var a = j.apply(this, arguments); a = { options: a[1], duration: a[2], callback: a[3] }; var b = f.effects[c]; return b && !f.fx.off ? b.call(this, a) : this }, _show: f.fn.show, show: function (c)
    {
        if (!c ||
typeof c == "number" || f.fx.speeds[c]) return this._show.apply(this, arguments); else { var a = j.apply(this, arguments); a[1].mode = "show"; return this.effect.apply(this, a) } 
    }, _hide: f.fn.hide, hide: function (c) { if (!c || typeof c == "number" || f.fx.speeds[c]) return this._hide.apply(this, arguments); else { var a = j.apply(this, arguments); a[1].mode = "hide"; return this.effect.apply(this, a) } }, __toggle: f.fn.toggle, toggle: function (c)
    {
        if (!c || typeof c == "number" || f.fx.speeds[c] || typeof c == "boolean" || f.isFunction(c)) return this.__toggle.apply(this,
arguments); else { var a = j.apply(this, arguments); a[1].mode = "toggle"; return this.effect.apply(this, a) } 
    }, cssUnit: function (c) { var a = this.css(c), b = []; f.each(["em", "px", "%", "pt"], function (d, e) { if (a.indexOf(e) > 0) b = [parseFloat(a), e] }); return b } 
    }); f.easing.jswing = f.easing.swing; f.extend(f.easing, { def: "easeOutQuad", swing: function (c, a, b, d, e) { return f.easing[f.easing.def](c, a, b, d, e) }, easeInQuad: function (c, a, b, d, e) { return d * (a /= e) * a + b }, easeOutQuad: function (c, a, b, d, e) { return -d * (a /= e) * (a - 2) + b }, easeInOutQuad: function (c,
a, b, d, e) { if ((a /= e / 2) < 1) return d / 2 * a * a + b; return -d / 2 * (--a * (a - 2) - 1) + b }, easeInCubic: function (c, a, b, d, e) { return d * (a /= e) * a * a + b }, easeOutCubic: function (c, a, b, d, e) { return d * ((a = a / e - 1) * a * a + 1) + b }, easeInOutCubic: function (c, a, b, d, e) { if ((a /= e / 2) < 1) return d / 2 * a * a * a + b; return d / 2 * ((a -= 2) * a * a + 2) + b }, easeInQuart: function (c, a, b, d, e) { return d * (a /= e) * a * a * a + b }, easeOutQuart: function (c, a, b, d, e) { return -d * ((a = a / e - 1) * a * a * a - 1) + b }, easeInOutQuart: function (c, a, b, d, e)
{
    if ((a /= e / 2) < 1) return d / 2 * a * a * a * a + b; return -d / 2 * ((a -= 2) * a * a * a - 2) +
b
}, easeInQuint: function (c, a, b, d, e) { return d * (a /= e) * a * a * a * a + b }, easeOutQuint: function (c, a, b, d, e) { return d * ((a = a / e - 1) * a * a * a * a + 1) + b }, easeInOutQuint: function (c, a, b, d, e) { if ((a /= e / 2) < 1) return d / 2 * a * a * a * a * a + b; return d / 2 * ((a -= 2) * a * a * a * a + 2) + b }, easeInSine: function (c, a, b, d, e) { return -d * Math.cos(a / e * (Math.PI / 2)) + d + b }, easeOutSine: function (c, a, b, d, e) { return d * Math.sin(a / e * (Math.PI / 2)) + b }, easeInOutSine: function (c, a, b, d, e) { return -d / 2 * (Math.cos(Math.PI * a / e) - 1) + b }, easeInExpo: function (c, a, b, d, e)
{
    return a == 0 ? b : d * Math.pow(2,
10 * (a / e - 1)) + b
}, easeOutExpo: function (c, a, b, d, e) { return a == e ? b + d : d * (-Math.pow(2, -10 * a / e) + 1) + b }, easeInOutExpo: function (c, a, b, d, e) { if (a == 0) return b; if (a == e) return b + d; if ((a /= e / 2) < 1) return d / 2 * Math.pow(2, 10 * (a - 1)) + b; return d / 2 * (-Math.pow(2, -10 * --a) + 2) + b }, easeInCirc: function (c, a, b, d, e) { return -d * (Math.sqrt(1 - (a /= e) * a) - 1) + b }, easeOutCirc: function (c, a, b, d, e) { return d * Math.sqrt(1 - (a = a / e - 1) * a) + b }, easeInOutCirc: function (c, a, b, d, e)
{
    if ((a /= e / 2) < 1) return -d / 2 * (Math.sqrt(1 - a * a) - 1) + b; return d / 2 * (Math.sqrt(1 - (a -= 2) *
a) + 1) + b
}, easeInElastic: function (c, a, b, d, e) { c = 1.70158; var g = 0, h = d; if (a == 0) return b; if ((a /= e) == 1) return b + d; g || (g = e * 0.3); if (h < Math.abs(d)) { h = d; c = g / 4 } else c = g / (2 * Math.PI) * Math.asin(d / h); return -(h * Math.pow(2, 10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g)) + b }, easeOutElastic: function (c, a, b, d, e) { c = 1.70158; var g = 0, h = d; if (a == 0) return b; if ((a /= e) == 1) return b + d; g || (g = e * 0.3); if (h < Math.abs(d)) { h = d; c = g / 4 } else c = g / (2 * Math.PI) * Math.asin(d / h); return h * Math.pow(2, -10 * a) * Math.sin((a * e - c) * 2 * Math.PI / g) + d + b }, easeInOutElastic: function (c,
a, b, d, e) { c = 1.70158; var g = 0, h = d; if (a == 0) return b; if ((a /= e / 2) == 2) return b + d; g || (g = e * 0.3 * 1.5); if (h < Math.abs(d)) { h = d; c = g / 4 } else c = g / (2 * Math.PI) * Math.asin(d / h); if (a < 1) return -0.5 * h * Math.pow(2, 10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g) + b; return h * Math.pow(2, -10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g) * 0.5 + d + b }, easeInBack: function (c, a, b, d, e, g) { if (g == undefined) g = 1.70158; return d * (a /= e) * a * ((g + 1) * a - g) + b }, easeOutBack: function (c, a, b, d, e, g) { if (g == undefined) g = 1.70158; return d * ((a = a / e - 1) * a * ((g + 1) * a + g) + 1) + b }, easeInOutBack: function (c,
a, b, d, e, g) { if (g == undefined) g = 1.70158; if ((a /= e / 2) < 1) return d / 2 * a * a * (((g *= 1.525) + 1) * a - g) + b; return d / 2 * ((a -= 2) * a * (((g *= 1.525) + 1) * a + g) + 2) + b }, easeInBounce: function (c, a, b, d, e) { return d - f.easing.easeOutBounce(c, e - a, 0, d, e) + b }, easeOutBounce: function (c, a, b, d, e) { return (a /= e) < 1 / 2.75 ? d * 7.5625 * a * a + b : a < 2 / 2.75 ? d * (7.5625 * (a -= 1.5 / 2.75) * a + 0.75) + b : a < 2.5 / 2.75 ? d * (7.5625 * (a -= 2.25 / 2.75) * a + 0.9375) + b : d * (7.5625 * (a -= 2.625 / 2.75) * a + 0.984375) + b }, easeInOutBounce: function (c, a, b, d, e)
{
    if (a < e / 2) return f.easing.easeInBounce(c, a * 2, 0,
d, e) * 0.5 + b; return f.easing.easeOutBounce(c, a * 2 - e, 0, d, e) * 0.5 + d * 0.5 + b
} 
    })
} (jQuery);
; /*
 * jQuery UI Effects Blind 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Blind
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function (b)
{
    b.effects.blind = function (c)
    {
        return this.queue(function ()
        {
            var a = b(this), g = ["position", "top", "left"], f = b.effects.setMode(a, c.options.mode || "hide"), d = c.options.direction || "vertical"; b.effects.save(a, g); a.show(); var e = b.effects.createWrapper(a).css({ overflow: "hidden" }), h = d == "vertical" ? "height" : "width"; d = d == "vertical" ? e.height() : e.width(); f == "show" && e.css(h, 0); var i = {}; i[h] = f == "show" ? d : 0; e.animate(i, c.duration, c.options.easing, function ()
            {
                f == "hide" && a.hide(); b.effects.restore(a, g); b.effects.removeWrapper(a);
                c.callback && c.callback.apply(a[0], arguments); a.dequeue()
            })
        })
    } 
})(jQuery);
; /*
 * jQuery UI Effects Bounce 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Bounce
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function (e)
{
    e.effects.bounce = function (b)
    {
        return this.queue(function ()
        {
            var a = e(this), l = ["position", "top", "left"], h = e.effects.setMode(a, b.options.mode || "effect"), d = b.options.direction || "up", c = b.options.distance || 20, m = b.options.times || 5, i = b.duration || 250; /show|hide/.test(h) && l.push("opacity"); e.effects.save(a, l); a.show(); e.effects.createWrapper(a); var f = d == "up" || d == "down" ? "top" : "left"; d = d == "up" || d == "left" ? "pos" : "neg"; c = b.options.distance || (f == "top" ? a.outerHeight({ margin: true }) / 3 : a.outerWidth({ margin: true }) /
3); if (h == "show") a.css("opacity", 0).css(f, d == "pos" ? -c : c); if (h == "hide") c /= m * 2; h != "hide" && m--; if (h == "show") { var g = { opacity: 1 }; g[f] = (d == "pos" ? "+=" : "-=") + c; a.animate(g, i / 2, b.options.easing); c /= 2; m-- } for (g = 0; g < m; g++) { var j = {}, k = {}; j[f] = (d == "pos" ? "-=" : "+=") + c; k[f] = (d == "pos" ? "+=" : "-=") + c; a.animate(j, i / 2, b.options.easing).animate(k, i / 2, b.options.easing); c = h == "hide" ? c * 2 : c / 2 } if (h == "hide")
            {
                g = { opacity: 0 }; g[f] = (d == "pos" ? "-=" : "+=") + c; a.animate(g, i / 2, b.options.easing, function ()
                {
                    a.hide(); e.effects.restore(a, l); e.effects.removeWrapper(a);
                    b.callback && b.callback.apply(this, arguments)
                })
            } else { j = {}; k = {}; j[f] = (d == "pos" ? "-=" : "+=") + c; k[f] = (d == "pos" ? "+=" : "-=") + c; a.animate(j, i / 2, b.options.easing).animate(k, i / 2, b.options.easing, function () { e.effects.restore(a, l); e.effects.removeWrapper(a); b.callback && b.callback.apply(this, arguments) }) } a.queue("fx", function () { a.dequeue() }); a.dequeue()
        })
    } 
})(jQuery);
; /*
 * jQuery UI Effects Clip 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Clip
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function (b)
{
    b.effects.clip = function (e)
    {
        return this.queue(function ()
        {
            var a = b(this), i = ["position", "top", "left", "height", "width"], f = b.effects.setMode(a, e.options.mode || "hide"), c = e.options.direction || "vertical"; b.effects.save(a, i); a.show(); var d = b.effects.createWrapper(a).css({ overflow: "hidden" }); d = a[0].tagName == "IMG" ? d : a; var g = { size: c == "vertical" ? "height" : "width", position: c == "vertical" ? "top" : "left" }; c = c == "vertical" ? d.height() : d.width(); if (f == "show") { d.css(g.size, 0); d.css(g.position, c / 2) } var h = {}; h[g.size] =
f == "show" ? c : 0; h[g.position] = f == "show" ? 0 : c / 2; d.animate(h, { queue: false, duration: e.duration, easing: e.options.easing, complete: function () { f == "hide" && a.hide(); b.effects.restore(a, i); b.effects.removeWrapper(a); e.callback && e.callback.apply(a[0], arguments); a.dequeue() } })
        })
    } 
})(jQuery);
; /*
 * jQuery UI Effects Drop 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Drop
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function (c)
{
    c.effects.drop = function (d)
    {
        return this.queue(function ()
        {
            var a = c(this), h = ["position", "top", "left", "opacity"], e = c.effects.setMode(a, d.options.mode || "hide"), b = d.options.direction || "left"; c.effects.save(a, h); a.show(); c.effects.createWrapper(a); var f = b == "up" || b == "down" ? "top" : "left"; b = b == "up" || b == "left" ? "pos" : "neg"; var g = d.options.distance || (f == "top" ? a.outerHeight({ margin: true }) / 2 : a.outerWidth({ margin: true }) / 2); if (e == "show") a.css("opacity", 0).css(f, b == "pos" ? -g : g); var i = { opacity: e == "show" ? 1 :
0
            }; i[f] = (e == "show" ? b == "pos" ? "+=" : "-=" : b == "pos" ? "-=" : "+=") + g; a.animate(i, { queue: false, duration: d.duration, easing: d.options.easing, complete: function () { e == "hide" && a.hide(); c.effects.restore(a, h); c.effects.removeWrapper(a); d.callback && d.callback.apply(this, arguments); a.dequeue() } })
        })
    } 
})(jQuery);
; /*
 * jQuery UI Effects Explode 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Explode
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function (j)
{
    j.effects.explode = function (a)
    {
        return this.queue(function ()
        {
            var c = a.options.pieces ? Math.round(Math.sqrt(a.options.pieces)) : 3, d = a.options.pieces ? Math.round(Math.sqrt(a.options.pieces)) : 3; a.options.mode = a.options.mode == "toggle" ? j(this).is(":visible") ? "hide" : "show" : a.options.mode; var b = j(this).show().css("visibility", "hidden"), g = b.offset(); g.top -= parseInt(b.css("marginTop"), 10) || 0; g.left -= parseInt(b.css("marginLeft"), 10) || 0; for (var h = b.outerWidth(true), i = b.outerHeight(true), e = 0; e < c; e++) for (var f =
0; f < d; f++) b.clone().appendTo("body").wrap("<div></div>").css({ position: "absolute", visibility: "visible", left: -f * (h / d), top: -e * (i / c) }).parent().addClass("ui-effects-explode").css({ position: "absolute", overflow: "hidden", width: h / d, height: i / c, left: g.left + f * (h / d) + (a.options.mode == "show" ? (f - Math.floor(d / 2)) * (h / d) : 0), top: g.top + e * (i / c) + (a.options.mode == "show" ? (e - Math.floor(c / 2)) * (i / c) : 0), opacity: a.options.mode == "show" ? 0 : 1 }).animate({ left: g.left + f * (h / d) + (a.options.mode == "show" ? 0 : (f - Math.floor(d / 2)) * (h / d)), top: g.top +
e * (i / c) + (a.options.mode == "show" ? 0 : (e - Math.floor(c / 2)) * (i / c)), opacity: a.options.mode == "show" ? 1 : 0
}, a.duration || 500); setTimeout(function () { a.options.mode == "show" ? b.css({ visibility: "visible" }) : b.css({ visibility: "visible" }).hide(); a.callback && a.callback.apply(b[0]); b.dequeue(); j("div.ui-effects-explode").remove() }, a.duration || 500)
        })
    } 
})(jQuery);
; /*
 * jQuery UI Effects Fold 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Fold
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function (c)
{
    c.effects.fold = function (a)
    {
        return this.queue(function ()
        {
            var b = c(this), j = ["position", "top", "left"], d = c.effects.setMode(b, a.options.mode || "hide"), g = a.options.size || 15, h = !!a.options.horizFirst, k = a.duration ? a.duration / 2 : c.fx.speeds._default / 2; c.effects.save(b, j); b.show(); var e = c.effects.createWrapper(b).css({ overflow: "hidden" }), f = d == "show" != h, l = f ? ["width", "height"] : ["height", "width"]; f = f ? [e.width(), e.height()] : [e.height(), e.width()]; var i = /([0-9]+)%/.exec(g); if (i) g = parseInt(i[1], 10) / 100 *
f[d == "hide" ? 0 : 1]; if (d == "show") e.css(h ? { height: 0, width: g} : { height: g, width: 0 }); h = {}; i = {}; h[l[0]] = d == "show" ? f[0] : g; i[l[1]] = d == "show" ? f[1] : 0; e.animate(h, k, a.options.easing).animate(i, k, a.options.easing, function () { d == "hide" && b.hide(); c.effects.restore(b, j); c.effects.removeWrapper(b); a.callback && a.callback.apply(b[0], arguments); b.dequeue() })
        })
    } 
})(jQuery);
; /*
 * jQuery UI Effects Highlight 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Highlight
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function (b)
{
    b.effects.highlight = function (c)
    {
        return this.queue(function ()
        {
            var a = b(this), e = ["backgroundImage", "backgroundColor", "opacity"], d = b.effects.setMode(a, c.options.mode || "show"), f = { backgroundColor: a.css("backgroundColor") }; if (d == "hide") f.opacity = 0; b.effects.save(a, e); a.show().css({ backgroundImage: "none", backgroundColor: c.options.color || "#ffff99" }).animate(f, { queue: false, duration: c.duration, easing: c.options.easing, complete: function ()
            {
                d == "hide" && a.hide(); b.effects.restore(a, e); d == "show" && !b.support.opacity &&
this.style.removeAttribute("filter"); c.callback && c.callback.apply(this, arguments); a.dequeue()
            } 
            })
        })
    } 
})(jQuery);
; /*
 * jQuery UI Effects Pulsate 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Pulsate
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function (d)
{
    d.effects.pulsate = function (a)
    {
        return this.queue(function ()
        {
            var b = d(this), c = d.effects.setMode(b, a.options.mode || "show"); times = (a.options.times || 5) * 2 - 1; duration = a.duration ? a.duration / 2 : d.fx.speeds._default / 2; isVisible = b.is(":visible"); animateTo = 0; if (!isVisible) { b.css("opacity", 0).show(); animateTo = 1 } if (c == "hide" && isVisible || c == "show" && !isVisible) times--; for (c = 0; c < times; c++) { b.animate({ opacity: animateTo }, duration, a.options.easing); animateTo = (animateTo + 1) % 2 } b.animate({ opacity: animateTo }, duration,
a.options.easing, function () { animateTo == 0 && b.hide(); a.callback && a.callback.apply(this, arguments) }); b.queue("fx", function () { b.dequeue() }).dequeue()
        })
    } 
})(jQuery);
; /*
 * jQuery UI Effects Scale 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Scale
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function (c)
{
    c.effects.puff = function (b) { return this.queue(function () { var a = c(this), e = c.effects.setMode(a, b.options.mode || "hide"), g = parseInt(b.options.percent, 10) || 150, h = g / 100, i = { height: a.height(), width: a.width() }; c.extend(b.options, { fade: true, mode: e, percent: e == "hide" ? g : 100, from: e == "hide" ? i : { height: i.height * h, width: i.width * h} }); a.effect("scale", b.options, b.duration, b.callback); a.dequeue() }) }; c.effects.scale = function (b)
    {
        return this.queue(function ()
        {
            var a = c(this), e = c.extend(true, {}, b.options), g = c.effects.setMode(a,
b.options.mode || "effect"), h = parseInt(b.options.percent, 10) || (parseInt(b.options.percent, 10) == 0 ? 0 : g == "hide" ? 0 : 100), i = b.options.direction || "both", f = b.options.origin; if (g != "effect") { e.origin = f || ["middle", "center"]; e.restore = true } f = { height: a.height(), width: a.width() }; a.from = b.options.from || (g == "show" ? { height: 0, width: 0} : f); h = { y: i != "horizontal" ? h / 100 : 1, x: i != "vertical" ? h / 100 : 1 }; a.to = { height: f.height * h.y, width: f.width * h.x }; if (b.options.fade)
            {
                if (g == "show") { a.from.opacity = 0; a.to.opacity = 1 } if (g == "hide")
                {
                    a.from.opacity =
1; a.to.opacity = 0
                } 
            } e.from = a.from; e.to = a.to; e.mode = g; a.effect("size", e, b.duration, b.callback); a.dequeue()
        })
    }; c.effects.size = function (b)
    {
        return this.queue(function ()
        {
            var a = c(this), e = ["position", "top", "left", "width", "height", "overflow", "opacity"], g = ["position", "top", "left", "overflow", "opacity"], h = ["width", "height", "overflow"], i = ["fontSize"], f = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"], k = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"], p = c.effects.setMode(a,
b.options.mode || "effect"), n = b.options.restore || false, m = b.options.scale || "both", l = b.options.origin, j = { height: a.height(), width: a.width() }; a.from = b.options.from || j; a.to = b.options.to || j; if (l) { l = c.effects.getBaseline(l, j); a.from.top = (j.height - a.from.height) * l.y; a.from.left = (j.width - a.from.width) * l.x; a.to.top = (j.height - a.to.height) * l.y; a.to.left = (j.width - a.to.width) * l.x } var d = { from: { y: a.from.height / j.height, x: a.from.width / j.width }, to: { y: a.to.height / j.height, x: a.to.width / j.width} }; if (m == "box" || m == "both")
            {
                if (d.from.y !=
d.to.y) { e = e.concat(f); a.from = c.effects.setTransition(a, f, d.from.y, a.from); a.to = c.effects.setTransition(a, f, d.to.y, a.to) } if (d.from.x != d.to.x) { e = e.concat(k); a.from = c.effects.setTransition(a, k, d.from.x, a.from); a.to = c.effects.setTransition(a, k, d.to.x, a.to) } 
            } if (m == "content" || m == "both") if (d.from.y != d.to.y) { e = e.concat(i); a.from = c.effects.setTransition(a, i, d.from.y, a.from); a.to = c.effects.setTransition(a, i, d.to.y, a.to) } c.effects.save(a, n ? e : g); a.show(); c.effects.createWrapper(a); a.css("overflow", "hidden").css(a.from);
            if (m == "content" || m == "both")
            {
                f = f.concat(["marginTop", "marginBottom"]).concat(i); k = k.concat(["marginLeft", "marginRight"]); h = e.concat(f).concat(k); a.find("*[width]").each(function ()
                {
                    child = c(this); n && c.effects.save(child, h); var o = { height: child.height(), width: child.width() }; child.from = { height: o.height * d.from.y, width: o.width * d.from.x }; child.to = { height: o.height * d.to.y, width: o.width * d.to.x }; if (d.from.y != d.to.y)
                    {
                        child.from = c.effects.setTransition(child, f, d.from.y, child.from); child.to = c.effects.setTransition(child,
f, d.to.y, child.to)
                    } if (d.from.x != d.to.x) { child.from = c.effects.setTransition(child, k, d.from.x, child.from); child.to = c.effects.setTransition(child, k, d.to.x, child.to) } child.css(child.from); child.animate(child.to, b.duration, b.options.easing, function () { n && c.effects.restore(child, h) })
                })
            } a.animate(a.to, { queue: false, duration: b.duration, easing: b.options.easing, complete: function ()
            {
                a.to.opacity === 0 && a.css("opacity", a.from.opacity); p == "hide" && a.hide(); c.effects.restore(a, n ? e : g); c.effects.removeWrapper(a); b.callback &&
b.callback.apply(this, arguments); a.dequeue()
            } 
            })
        })
    } 
})(jQuery);
; /*
 * jQuery UI Effects Shake 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Shake
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function (d)
{
    d.effects.shake = function (a)
    {
        return this.queue(function ()
        {
            var b = d(this), j = ["position", "top", "left"]; d.effects.setMode(b, a.options.mode || "effect"); var c = a.options.direction || "left", e = a.options.distance || 20, l = a.options.times || 3, f = a.duration || a.options.duration || 140; d.effects.save(b, j); b.show(); d.effects.createWrapper(b); var g = c == "up" || c == "down" ? "top" : "left", h = c == "up" || c == "left" ? "pos" : "neg"; c = {}; var i = {}, k = {}; c[g] = (h == "pos" ? "-=" : "+=") + e; i[g] = (h == "pos" ? "+=" : "-=") + e * 2; k[g] = (h == "pos" ? "-=" : "+=") +
e * 2; b.animate(c, f, a.options.easing); for (e = 1; e < l; e++) b.animate(i, f, a.options.easing).animate(k, f, a.options.easing); b.animate(i, f, a.options.easing).animate(c, f / 2, a.options.easing, function () { d.effects.restore(b, j); d.effects.removeWrapper(b); a.callback && a.callback.apply(this, arguments) }); b.queue("fx", function () { b.dequeue() }); b.dequeue()
        })
    } 
})(jQuery);
; /*
 * jQuery UI Effects Slide 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Slide
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function (c)
{
    c.effects.slide = function (d)
    {
        return this.queue(function ()
        {
            var a = c(this), h = ["position", "top", "left"], e = c.effects.setMode(a, d.options.mode || "show"), b = d.options.direction || "left"; c.effects.save(a, h); a.show(); c.effects.createWrapper(a).css({ overflow: "hidden" }); var f = b == "up" || b == "down" ? "top" : "left"; b = b == "up" || b == "left" ? "pos" : "neg"; var g = d.options.distance || (f == "top" ? a.outerHeight({ margin: true }) : a.outerWidth({ margin: true })); if (e == "show") a.css(f, b == "pos" ? -g : g); var i = {}; i[f] = (e == "show" ? b == "pos" ?
"+=" : "-=" : b == "pos" ? "-=" : "+=") + g; a.animate(i, { queue: false, duration: d.duration, easing: d.options.easing, complete: function () { e == "hide" && a.hide(); c.effects.restore(a, h); c.effects.removeWrapper(a); d.callback && d.callback.apply(this, arguments); a.dequeue() } })
        })
    } 
})(jQuery);
; /*
 * jQuery UI Effects Transfer 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Transfer
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function (e)
{
    e.effects.transfer = function (a)
    {
        return this.queue(function ()
        {
            var b = e(this), c = e(a.options.to), d = c.offset(); c = { top: d.top, left: d.left, height: c.innerHeight(), width: c.innerWidth() }; d = b.offset(); var f = e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({ top: d.top, left: d.left, height: b.innerHeight(), width: b.innerWidth(), position: "absolute" }).animate(c, a.duration, a.options.easing, function ()
            {
                f.remove(); a.callback && a.callback.apply(b[0], arguments);
                b.dequeue()
            })
        })
    } 
})(jQuery);
;

//jQuery Table Hover
(function (C) { var A = function (Q) { var S = Q.rows; var K = S.length; var P = []; for (var I = 0; I < K; I++) { var R = S[I].cells; var O = R.length; for (var H = 0; H < O; H++) { var N = R[H]; var M = N.rowSpan || 1; var J = N.colSpan || 1; var L = -1; if (!P[I]) { P[I] = [] } var E = P[I]; while (E[++L]) { } N.realIndex = L; for (var G = I; G < I + M; G++) { if (!P[G]) { P[G] = [] } var D = P[G]; for (var F = L; F < L + J; F++) { D[F] = 1 } } } } }; var B = function (H) { var E = 0, F, D, G = (H.tHead) ? H.tHead.rows : 0; if (G) { for (F = 0; F < G.length; F++) { G[F].realRIndex = E++ } } for (D = 0; D < H.tBodies.length; D++) { G = H.tBodies[D].rows; if (G) { for (F = 0; F < G.length; F++) { G[F].realRIndex = E++ } } } G = (H.tFoot) ? H.tFoot.rows : 0; if (G) { for (F = 0; F < G.length; F++) { G[F].realRIndex = E++ } } }; C.fn.tableHover = function (D) { var E = C.extend({ allowHead: true, allowBody: true, allowFoot: true, headRows: false, bodyRows: true, footRows: false, spanRows: true, headCols: false, bodyCols: true, footCols: false, spanCols: true, ignoreCols: [], headCells: false, bodyCells: true, footCells: false, rowClass: "hover", colClass: "", cellClass: "", clickClass: "" }, D); return this.each(function () { var N = [], M = [], J = this, F, K = 0, O = [-1, -1]; if (!J.tBodies || !J.tBodies.length) { return } var G = function (U, X) { var W, V, T, R, Q, S; for (T = 0; T < U.length; T++, K++) { V = U[T]; for (R = 0; R < V.cells.length; R++) { W = V.cells[R]; if ((X == "TBODY" && E.bodyRows) || (X == "TFOOT" && E.footRows) || (X == "THEAD" && E.headRows)) { S = W.rowSpan; while (--S >= 0) { M[K + S].push(W) } } if ((X == "TBODY" && E.bodyCols) || (X == "THEAD" && E.headCols) || (X == "TFOOT" && E.footCols)) { S = W.colSpan; while (--S >= 0) { Q = W.realIndex + S; if (C.inArray(Q + 1, E.ignoreCols) > -1) { break } if (!N[Q]) { N[Q] = [] } N[Q].push(W) } } if ((X == "TBODY" && E.allowBody) || (X == "THEAD" && E.allowHead) || (X == "TFOOT" && E.allowFoot)) { W.thover = true } } } }; var L = function (R) { var Q = R.target; while (Q != this && Q.thover !== true) { Q = Q.parentNode } if (Q.thover === true) { H(Q, true) } }; var I = function (R) { var Q = R.target; while (Q != this && Q.thover !== true) { Q = Q.parentNode } if (Q.thover === true) { H(Q, false) } }; var P = function (T) { var R = T.target; while (R && R != J && !R.thover) { R = R.parentNode } if (R.thover && E.clickClass != "") { var Q = R.realIndex, U = R.parentNode.realRIndex, S = ""; C("td." + E.clickClass + ", th." + E.clickClass, J).removeClass(E.clickClass); if (Q != O[0] || U != O[1]) { if (E.rowClass != "") { S += ",." + E.rowClass } if (E.colClass != "") { S += ",." + E.colClass } if (E.cellClass != "") { S += ",." + E.cellClass } if (S != "") { C("td, th", J).filter(S.substring(1)).addClass(E.clickClass) } O = [Q, U] } else { O = [-1, -1] } } }; var H = function (R, T) { if (T) { C.fn.tableHoverHover = C.fn.addClass } else { C.fn.tableHoverHover = C.fn.removeClass } var V = N[R.realIndex] || [], S = [], U = 0, Q, W; if (E.colClass != "") { while (E.spanCols && ++U < R.colSpan && N[R.realIndex + U]) { V = V.concat(N[R.realIndex + U]) } C(V).tableHoverHover(E.colClass) } if (E.rowClass != "") { Q = R.parentNode.realRIndex; if (M[Q]) { S = S.concat(M[Q]) } U = 0; while (E.spanRows && ++U < R.rowSpan) { if (M[Q + U]) { S = S.concat(M[Q + U]) } } C(S).tableHoverHover(E.rowClass) } if (E.cellClass != "") { W = R.parentNode.parentNode.nodeName.toUpperCase(); if ((W == "TBODY" && E.bodyCells) || (W == "THEAD" && E.headCells) || (W == "TFOOT" && E.footCells)) { C(R).tableHoverHover(E.cellClass) } } }; A(J); B(J); for (F = 0; F < J.rows.length; F++) { M[F] = [] } if (J.tHead) { G(J.tHead.rows, "THEAD") } for (F = 0; F < J.tBodies.length; F++) { G(J.tBodies[F].rows, "TBODY") } if (J.tFoot) { G(J.tFoot.rows, "TFOOT") } C(this).bind("mouseover", L).bind("mouseout", I).click(P) }) } })(jQuery);

//JSON
if (!this.JSON) { this.JSON = {}; }
(function ()
{
    function f(n) { return n < 10 ? '0' + n : n; }
    if (typeof Date.prototype.toJSON !== 'function')
    {
        Date.prototype.toJSON = function (key)
        {
            return isFinite(this.valueOf()) ? this.getUTCFullYear() + '-' +
f(this.getUTCMonth() + 1) + '-' +
f(this.getUTCDate()) + 'T' +
f(this.getUTCHours()) + ':' +
f(this.getUTCMinutes()) + ':' +
f(this.getUTCSeconds()) + 'Z' : null;
        }; String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function (key) { return this.valueOf(); };
    }
    var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, gap, indent, meta = { '\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"': '\\"', '\\': '\\\\' }, rep; function quote(string) { escapable.lastIndex = 0; return escapable.test(string) ? '"' + string.replace(escapable, function (a) { var c = meta[a]; return typeof c === 'string' ? c : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); }) + '"' : '"' + string + '"'; }
    function str(key, holder)
    {
        var i, k, v, length, mind = gap, partial, value = holder[key]; if (value && typeof value === 'object' && typeof value.toJSON === 'function') { value = value.toJSON(key); }
        if (typeof rep === 'function') { value = rep.call(holder, key, value); }
        switch (typeof value)
        {
            case 'string': return quote(value); case 'number': return isFinite(value) ? String(value) : 'null'; case 'boolean': case 'null': return String(value); case 'object': if (!value) { return 'null'; }
                gap += indent; partial = []; if (Object.prototype.toString.apply(value) === '[object Array]')
                {
                    length = value.length; for (i = 0; i < length; i += 1) { partial[i] = str(i, value) || 'null'; }
                    v = partial.length === 0 ? '[]' : gap ? '[\n' + gap +
partial.join(',\n' + gap) + '\n' +
mind + ']' : '[' + partial.join(',') + ']'; gap = mind; return v;
                }
                if (rep && typeof rep === 'object') { length = rep.length; for (i = 0; i < length; i += 1) { k = rep[i]; if (typeof k === 'string') { v = str(k, value); if (v) { partial.push(quote(k) + (gap ? ': ' : ':') + v); } } } } else { for (k in value) { if (Object.hasOwnProperty.call(value, k)) { v = str(k, value); if (v) { partial.push(quote(k) + (gap ? ': ' : ':') + v); } } } }
                v = partial.length === 0 ? '{}' : gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' +
mind + '}' : '{' + partial.join(',') + '}'; gap = mind; return v;
        } 
    }
    if (typeof JSON.stringify !== 'function')
    {
        JSON.stringify = function (value, replacer, space)
        {
            var i; gap = ''; indent = ''; if (typeof space === 'number') { for (i = 0; i < space; i += 1) { indent += ' '; } } else if (typeof space === 'string') { indent = space; }
            rep = replacer; if (replacer && typeof replacer !== 'function' && (typeof replacer !== 'object' || typeof replacer.length !== 'number')) { throw new Error('JSON.stringify'); }
            return str('', { '': value });
        };
    }
    if (typeof JSON.parse !== 'function')
    {
        JSON.parse = function (text, reviver)
        {
            var j; function walk(holder, key)
            {
                var k, v, value = holder[key]; if (value && typeof value === 'object') { for (k in value) { if (Object.hasOwnProperty.call(value, k)) { v = walk(value, k); if (v !== undefined) { value[k] = v; } else { delete value[k]; } } } }
                return reviver.call(holder, key, value);
            }
            cx.lastIndex = 0; if (cx.test(text))
            {
                text = text.replace(cx, function (a)
                {
                    return '\\u' +
('0000' + a.charCodeAt(0).toString(16)).slice(-4);
                });
            }
            if (/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { j = eval('(' + text + ')'); return typeof reviver === 'function' ? walk({ '': j }, '') : j; }
            throw new SyntaxError('JSON.parse');
        };
    } 
} ());

jQuery.fn.center = function ()
{
    this.css("position", "absolute");
    this.css("top", ($(window).height() - this.height()) / 2 + $(window).scrollTop() + "px");
    this.css("left", ($(window).width() - this.width()) / 2 + $(window).scrollLeft() + "px");
    return this;
}

//AJAX FUNCTION
function CreateXMLRequest(url, stateChange)
{
    var objXML;

    if (window.XMLHttpRequest)
    {
        objXML = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)    //IE 6-
    {
        objXML = new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (objXML != null)
    {
        objXML.onreadystatechange = stateChange;
        objXML.open("GET", url, true);
        objXML.send(null);
    }
    else
    {
        window.alert("Your browser does not support XMLHTTP.")
    }

    return objXML;
}

//FIND THE X POSITION OF THE PASSED IN OBJECT
function findPosX(obj)
{
    var iPos = 0;
    var iScrollX = (window.opera ? 0 : findScrollX(obj));  //OPERA DOESN'T LIKE THE SCROLL POSITION

    do
    {
        iPos += obj.offsetLeft;
    } while (obj = obj.offsetParent);

    return iPos - iScrollX;
}

function findScrollX(obj)
{
    var iPos = 0;

    do
    {
        if (obj.scrollLeft != null) iPos += obj.scrollLeft;
    } while (obj = obj.parentNode);

    return iPos;
}

//FIND THE Y POSITION OF THE PASSED IN OBJECT 
function findPosY(obj)
{
    var iPos = 0;
    var iScrollY = (window.opera ? 0 : findScrollY(obj));  //OPERA DOESN'T LIKE THE SCROLL POSITION

    do
    {
        iPos += obj.offsetTop;
    } while (obj = obj.offsetParent);

    return iPos - iScrollY;
}

function findScrollY(obj)
{
    var iPos = 0;

    do
    {
        if (obj.scrollTop != null) iPos += obj.scrollTop;
    } while (obj = obj.parentNode);

    return iPos;
}

//THIS FUNCTION POSITIONS A DIV TAG ACCORDING THE THE "POSITION OBJECT" THAT IS PASSED IN
function PositionDiv(DivObject, PositionObject, BodyWidth, ShowOffset)
{
    var iBodyWidth = BodyWidth, iBodyHeight = 0;
    var iLef = 0, iTop = 0, iTotalWidth = 0, iTotalHeight = 0, iScrollOffsetX = 0, iScrollOffsetY = 0;
    var iPositionObjHeight = 0, iPositionObjWidth = 0, iPositionObjX = 0, iPositionObjY = 0;

    iBodyHeight = 30;

    iTotalWidth = document.documentElement.clientWidth;
    iTotalHeight = document.documentElement.clientHeight;
    iScrollOffsetX = (window.opera ? 0 : (window.pageXOffset ? window.pageXOffset : document.documentElement.scrollLeft));
    iScrollOffsetY = (window.opera ? 0 : (window.pageYOffset ? window.pageYOffset : document.documentElement.scrollTop));

    iPositionObjHeight = (PositionObject.clientHeight ? PositionObject.clientHeight : PositionObject.height);
    iPositionObjWidth = (PositionObject.clientWidth ? PositionObject.clientWidth : PositionObject.width);
    iPositionObjX = findPosX(PositionObject);
    iPositionObjY = findPosY(PositionObject);

    if ((iTotalWidth - ((iPositionObjX - iScrollOffsetX) + iPositionObjWidth)) < iBodyWidth)
    {
        iLeft = iPositionObjX - ((ShowOffset ? iBodyWidth + 5 : 0)); //POSITION IS ON RIGHT EDGE, SHOW DIV TO THE LEFT         
    }
    else
    {
        iLeft = iPositionObjX + (ShowOffset ? iPositionObjWidth : 0); //SHOW DIV TO THE RIGHT 
    }

    if (iLeft + iBodyWidth + 20 > iTotalWidth)
    {
        iLeft = iTotalWidth - iBodyWidth - 20 + iScrollOffsetX;
    }

    //MOVE THE DIV OFF THE SCREEN AND SHOW IT SO WE CAN GET ITS DIMENSIONS
    DivObject.style.left = "-10000px";
    DivObject.style.top = "-10000px";
    DivObject.style.display = "block";
    iBodyHeight = DivObject.clientHeight;

    var bIsDownOK = ((iPositionObjY + iPositionObjHeight + iBodyHeight) < (iTotalHeight));
    var bIsUpOK = ((iPositionObjY - iBodyHeight) > 0);

    if (!bIsDownOK && !bIsUpOK)
    {
        iTop = iPositionObjY - (iBodyHeight / 2); //SHOW IN THE MIDDLE, DOWN AND UP WOULD CUT IMAGE 
    }
    else if (bIsDownOK || !bIsUpOK)
    {
        iTop = iPositionObjY + iPositionObjHeight + (ShowOffset ? 0 : 2); //SHOW DIV DOWN 
    }
    else
    {
        iTop = iPositionObjY - iBodyHeight - (ShowOffset ? 0 : 2); //POSITION IS TOO FAR DOWN, SHOW DIV UP 
    }

    iTop += iScrollOffsetY;

    if (!document.all)
    {
        iLeft += "px";
        iTop += "px";
        iBodyWidth += "px";
    }

    //NEED TO SHOW THE DIV BEFORE WE GET THE CLIENT HEIGHT
    DivObject.style.left = iLeft;
    DivObject.style.top = iTop;
    DivObject.style.width = iBodyWidth;
}

function CenterDiv(DivObject)
{
    //POSITION IN CENTER OF SCREEN
    var iLeft, iTop, iTotalWidth, iTotalHeight, iScrollOffsetX, iScrollOffsetY;

    iTotalWidth = (window.opera ? window.innerWidth : document.documentElement.clientWidth);
    iTotalHeight = (window.opera ? window.innerHeight : document.documentElement.clientHeight);
    iScrollOffsetX = (window.pageXOffset ? window.pageXOffset : document.documentElement.scrollLeft);
    iScrollOffsetY = (window.pageYOffset ? window.pageYOffset : document.documentElement.scrollTop);

    //MOVE THE DIV OFF THE SCREEN AND SHOW IT SO WE CAN GET ITS DIMENSIONS
    DivObject.style.left = "-10000px";
    DivObject.style.top = "-10000px";
    DivObject.style.display = "block";

    iLeft = (iTotalWidth / 2) + iScrollOffsetX - (DivObject.clientWidth / 2);
    iTop = (iTotalHeight / 2) + iScrollOffsetY - (DivObject.clientHeight / 2);

    DivObject.style.left = iLeft + "px";
    DivObject.style.top = iTop + "px";
}

function CenterDivInsideObject(DivObject, ContainerObject)
{
    var iLeft, iTop, iTotalWidth, iTotalHeight, iScrollOffsetX, iScrollOffsetY;

    iTotalWidth = ContainerObject.clientWidth;
    iTotalHeight = ContainerObject.clientHeight;
    iScrollOffsetX = ContainerObject.scrollLeft;
    iScrollOffsetY = ContainerObject.scrollTop;

    DivObject.style.display = "block";

    iLeft = (iTotalWidth / 2) + iScrollOffsetX - (DivObject.clientWidth / 2);
    iTop = (iTotalHeight / 2) + iScrollOffsetY - (DivObject.clientHeight / 2);

    DivObject.style.left = iLeft + "px";
    DivObject.style.top = iTop + "px";
}

function ShowBackgroundDiv()
{
    var divBackground = document.getElementById("_divBackground");
    var ifBackground = document.getElementById("_ifBackground");
    var iScrollOffsetX = 0;
    var iScrollOffsetY = (window.pageYOffset ? window.pageYOffset : document.documentElement.scrollTop);
    var iDivHeight = ReturnMaxHeight();

    if (divBackground == null)
    {
        divBackground = document.createElement('DIV');
        divBackground.id = '_divBackground';
        divBackground.style.zIndex = 100000;
        divBackground.style.backgroundColor = "#AAAAAA";
        divBackground.style.opacity = 0.6;
        divBackground.style.filter = "alpha(opacity=60)";
        divBackground.style.position = "absolute";
        document.body.appendChild(divBackground);
    }

    if (document.all && !window.opera && ifBackground == null)
    {
        ifBackground = document.createElement('IFRAME');
        ifBackground.id = '_ifBackground';
        ifBackground.style.zIndex = 99999;
        ifBackground.style.backgroundColor = "#AAAAAA";
        ifBackground.style.opacity = 0.6;
        ifBackground.style.filter = "alpha(opacity=60)";
        ifBackground.style.position = "absolute";
        document.body.appendChild(ifBackground);
    }

    if (iScrollOffsetY > 0 && (iScrollOffsetY - (iDivHeight / 2)) > 0) //IF THE PAGE IS SCROLLED, HAVE THE DIV COVER ABOVE AND BELOW IT EQUALLY
    {
        iScrollOffsetY = (iScrollOffsetY - (iDivHeight / 2));
    }
    else
    {
        iScrollOffsetY = 0;
    }

    divBackground.style.width = (document.documentElement.scrollWidth ? document.documentElement.scrollWidth : document.width) + "px";
    divBackground.style.height = iDivHeight + "px";
    divBackground.style.left = "0px";
    divBackground.style.top = iScrollOffsetY + "px";
    divBackground.style.display = "block";

    if (ifBackground != null)
    {
        ifBackground.style.width = (document.width ? document.width : document.documentElement.clientWidth) + "px";
        ifBackground.style.height = (document.height ? document.height : document.documentElement.clientHeight) + "px";
        ifBackground.style.left = "0px";
        ifBackground.style.top = iScrollOffsetY + "px";
        ifBackground.style.display = "block";
    }
}

function ReturnMaxHeight()
{
    var iReturn = document.documentElement.scrollHeight;

    if (document.documentElement.clientHeight > iReturn) iReturn = document.documentElement.clientHeight;
    if (document.documentElement.height > iReturn) iReturn = document.documentElement.height;
    if (document.height > iReturn) iReturn = document.height;
    if (document.body.clientHeight > iReturn) iReturn = document.body.clientHeight;
    if (window.innerHeight > iReturn) iReturn = window.innerHeight;

    return (iReturn > 2000 ? 2000 : iReturn);  //CAP THE HEIGHT AT 2000, OTHERWISE IE ALLOCATES A LOT OF MEMORY FOR THE DIV
}

function HideBackgroundDiv()
{
    var divBackground = document.getElementById("_divBackground");
    var ifBackground = document.getElementById("_ifBackground");

    if (divBackground != null) divBackground.style.display = "none";
    if (ifBackground != null) ifBackground.style.display = "none";
}

//THIS FUNCTION RETURNS TRUE IF THE USER HIT THE ENTER KEY
function IsEnter(event)
{
    var iKeyPressed;

    if (window.event != null) //IE
    {
        event = window.event;
        iKeyPressed = event.keyCode;
    }
    else //FIREFOX, etc.
    {
        iKeyPressed = event.which;
    }

    if (iKeyPressed == 13)
    {
        event.returnValue = false;
        event.cancel = true;

        return true;
    }

    return false;
}

function CloseWindow()
{
    window.open('', '_parent', '');
    window.close();
}

//EITHER DISPLAYS THE LOADING MESSAGE OR HIDES IT
function ShowHideLoading(IsLoading)
{
    var divWorking = document.getElementById("_divWorking");

    if (divWorking == null)
    {
        divWorking = document.createElement('DIV');
        divWorking.id = '_divWorking';
        document.body.appendChild(divWorking);
    }

    divWorking.style.zIndex = 100000000;
    divWorking.style.backgroundColor = "transparent";
    divWorking.style.position = "absolute";
    divWorking.style.width = "147";
    divWorking.style.height = "147";
    divWorking.style.verticalAlign = "middle";
    divWorking.innerHTML = "<img src=\"/Marketgate/images/processing.gif\" alt=\"Loading\" />";

    if (IsLoading)
    {
        CenterDiv(divWorking);
    }
    else
    {
        divWorking.style.display = "none";
    }
}

function ShowHideRow(img, rowID)
{
    if (document.getElementById(rowID).style.display == "none")
    {
        document.getElementById(rowID).style.display = (document.all && !window.opera ? "block" : "table-row");
        if (img != null) { img.src = img.src.replace('plus', 'minus'); }
    }
    else
    {
        document.getElementById(rowID).style.display = "none";
        if (img != null) { img.src = img.src.replace('minus', 'plus'); }
    }
}

function ShowHideGroup(Button, RowID)
{
    var images = Button.getElementsByTagName("img");
    var img;

    //THE IMAGE PARENT BEING PASSED IN IS THE TABLE-CELL THAT HOLDS THE ACTUAL IMAGE
    if (images.length > 0)
    {
        img = images[0];
    }

    if (document.getElementById(RowID).style.display == "none")
    {
        document.getElementById(RowID).style.display = (document.all && !window.opera ? "block" : "table-row");
        if (img != null) img.src = "/IconLibrary/ENB/Bus/V3/16/Collapse_Up.png";

    }
    else
    {
        document.getElementById(RowID).style.display = "none";
        if (img != null) img.src = "/IconLibrary/ENB/Bus/V3/16/Collapse_Down.png";
    }
}

function ShowHideGroupDiv(Button, DivID)
{
    var images = Button.getElementsByTagName("img");
    var img;

    //THE IMAGE PARENT BEING PASSED IN IS THE TABLE-CELL THAT HOLDS THE ACTUAL IMAGE
    if (images.length > 0)
    {
        img = images[0];
    }
    else if (Button.tagName == "IMG")
    {
        img = Button;
    }

    if (document.getElementById(DivID).style.display == "none")
    {
        if (img != null) img.src = "/IconLibrary/ENB/Bus/V3/16/Collapse_Up.png";

    }
    else
    {
        if (img != null) img.src = "/IconLibrary/ENB/Bus/V3/16/Collapse_Down.png";
    }

    AccordionShowHideDiv(document.getElementById(DivID), 300);
}

function AccordionShowHideDiv(DivObject, TimeToSlide)
{
    $(DivObject).slideToggle(TimeToSlide);
}

function AccordionSlide(LastTime, TimeLeft, DivID, ContentHeight, IsClosing, TimeToSlide)
{
    var dtCurrentTime = new Date().getTime();
    var iElapsedTicks = dtCurrentTime - LastTime;
    var div = document.getElementById(DivID);

    if (TimeLeft <= iElapsedTicks)
    {
        if (IsClosing)
        {
            div.style.display = "none";
        }
        else
        {
            if (div.getAttribute("OldOverflow") != null) div.style.overflow = div.getAttribute("OldOverflow");
            div.style.height = ContentHeight + "px";
        }

        div.setAttribute("IsMoving", "false");

        return;
    }

    TimeLeft -= iElapsedTicks;

    var iNewClosedHeight = Math.round((TimeLeft / TimeToSlide) * ContentHeight);

    if (div != null)
    {
        div.style.height = (IsClosing ? (iNewClosedHeight) : (ContentHeight - iNewClosedHeight)) + 'px';
    }

    window.setTimeout("AccordionSlide(" + dtCurrentTime + "," + TimeLeft + ",'" + DivID + "'," + ContentHeight + "," + IsClosing + "," + TimeToSlide + ")", 33);
}

var _objLastOpenDiv;
var _objLastOpenImage;

function SetLastOpenDiv(DivID, ImageID)
{
    _objLastOpenDiv = document.getElementById(DivID);
    _objLastOpenImage = document.getElementById(ImageID);
    _objLastOpenImage.src = "/IconLibrary/ENB/Soft/V2/16/Navigation_2_Down.png";
}

function ShowHideMultiDiv(DivToOpenID, ImageID)
{
    if (_objLastOpenDiv != null)
    {
        AccordionShowHideDiv(_objLastOpenDiv, 20);
    }

    if (_objLastOpenImage != null)
    {
        _objLastOpenImage.src = "/IconLibrary/ENB/Soft/V2/16/Navigation_2_Right.png";
    }

    AccordionShowHideDiv(document.getElementById(DivToOpenID), 20);

    SetLastOpenDiv(DivToOpenID, ImageID);
}

function RenderFlashObject(SmallMovie, LargeMovie, SmallWidth, SmallHeight, BigWidth, BigHeight, ContentDivID)
{
    var objFlash;

    if (document.documentElement.clientWidth >= 1200)
    {
        objFlash = new SWFObject(LargeMovie, "mymovie", BigWidth, BigHeight, "8", "#ffffff");
    }
    else
    {
        objFlash = new SWFObject(SmallMovie, "mymovie", SmallWidth, SmallHeight, "8", "#ffffff");
    }

    objFlash.addParam("wmode", "transparent");
    objFlash.write(ContentDivID);
}

function ShowHide(Control)
{
    if (Control.style.display == "none")
    {
        Control.style.display = "";
    }
    else
    {
        Control.style.display = "none";
    }
}

function ShowHideByName(ControlID)
{
    var obj = document.getElementById(ControlID);

    ShowHide(obj);
}

///<summary>
/// Extension for a case insensitive contains filter
///</summary>
$.expr[":"].containsNoCase = function (el, i, m)
{
    var search = m[3];
    if (!search) return false;
    return eval("/" + search + "/i").test($(el).text());
};

//For the iPad, Since it doesnt handle scrollable divs well, we will expand each of them so they do not scroll
function iPadExpandDivHeight()
{
    if(_bIsIPad)
        $(".overflow").each(function () { if (this.scrollHeight > this.clientHeight) { $(this).height(this.scrollHeight + "px"); } });
}

//Shows the given pop up div and the transparent background
function TPShowPopUp(divID)
{
    ShowBackgroundDiv();
    CenterDiv(document.getElementById(divID));

    return false;
}

//Hides the given pop up div and the transparent background
function TPHidePopUp(divID)
{
    document.getElementById(divID).style.display = "none";
    HideBackgroundDiv();
}

//Checks/Unchecks all checkbox objects in the given table based on whether checkBox is checked or not
function TPCheckAll(tableID, checkBox)
{
    $("#" + tableID + " input:checkbox:enabled").attr('checked', checkBox.checked);
}

//Checks/Unchecks all checkbox objects in the given table and calls delegateFunction on each box
function TPCheckAllWithFunction(tableID, checkBox, delegateFunction)
{
    $("#" + tableID + " input:checkbox:enabled:" + (checkBox.checked ? "not(checked)" : "checked")).attr('checked', checkBox.checked).each(delegateFunction);
}

//Checks/Unchecks all checkbox objects in given table that have _boxName in their id based on whether checkBox is checked or not
function TPCheckAllByName(tableID, checkBox, boxName)
{
    $("#" + tableID + " input:checkbox:enabled[id$=" + boxName + "]").attr('checked', checkBox.checked);
}

//Checks/Unchecks all checkbox objects in given table that have _boxName in their id based on whether checkBox is checked or not
function TPCheckAllByNameWithFunction(tableID, checkBox, boxName, delegateFunction)
{
    $("#" + tableID + " input:checkbox:enabled[id$=" + boxName + "]").attr('checked', checkBox.checked).each(delegateFunction);
}

//Wrapper function for GetControlPrefixByID
function TPGetControlPrefix(control)
{
    return TPGetControlPrefixByID(control.id);
}

//Returns the asp.net assigned prefix for a control
function TPGetControlPrefixByID(controlID)
{
    var iIndex = controlID.lastIndexOf("_");

    if (iIndex > 0)
    {
        return controlID.substring(0, iIndex + 1);
    }
    else
    {
        return "";
    }
}

//Since the onblur event is fired after the onchange, calling focus right away may not select the right element
function TPFocusElement(objectToFocus)
{
    setTimeout(function () { $(objectToFocus).focus(); }, 50);
}

//Vefifies the text enetered in a box is a number, if not shows error and clears box
function TPIsNumber(textBox, errorMsg)
{
    if (isNaN(textBox.value))
    {
        window.alert(errorMsg);
        textBox.value = "";
        TPFocusElement(textBox);

        return false;
    }

    return true;
}

//Wrapper function for IsNumber
function TPIsNumberByID(textBoxID, errorMsg)
{
    TPIsNumberByID(document.getElementById(textBoxID), errorMsg);
}

//Verifies the text entered in a box is an integer number, if not shows error and clears box
function TPIsInteger(textBox, errorMsg)
{
    if (textBox.value.length > 0 && (isNaN(textBox.value) || !/^-?\d+$/.test(textBox.value)))
    {
        window.alert(errorMsg);
        textBox.value = "";
        TPFocusElement(textBox);

        return false;
    }

    return true;
}

//Wrapper function for IsInteger
function TPIsIntegerByID(textBoxID)
{
    TPIsInteger(document.getElementById(textBoxID));
}

//Verifies the text entered in a box is a date, if not shows error and clears box
function TPIsDate(textBox, errorMsg)
{
    var objValues;
    var date = new Date(textBox.value);
    var iYear = parseInt(date.getFullYear());
    var bIsValid = true;

    if (textBox.value.length > 0)
    {
        if (textBox.value.indexOf("/") > 0)
        {
            objValues = textBox.value.split("/");
        }
        else
        {
            objValues = textBox.value.split("-");
        }

        if (objValues[0] > 12 || objValues[1] > 32)
        {
            bIsValid = false;
        }

        if (!isNaN(iYear))
        {
            while (date.getFullYear() < 2000)
            {
                date.setFullYear(date.getFullYear() + 100);
            }

            textBox.value = date.getMonth() + 1 + "/" + date.getDate() + "/" + date.getFullYear();

            if (date.getFullYear() > 2078)
            {
                bIsValid = false;
            }
        }
        else
        {
            bIsValid = false;
        }

        if (!bIsValid)
        {
            window.alert(errorMsg);
            textBox.value = "";
            TPFocusElement(textBox);
        }
    }

    return bIsValid;
}

//Wrapper function for IsDate
function TPIsDateByID(textBoxID, errorMsg)
{
    TPIsDate(document.getElementById(textBoxID), errorMsg);
}

//AUTO TRUNCATE TEXT PLUGIN
$.fn.jTruncate = function (options)
{
    var defaults = {
        length: 300,
        minTrail: 20,
        moreText: "more",
        lessText: "less",
        ellipsisText: "...",
        moreAni: "",
        lessAni: ""
    };

    var options = $.extend(defaults, options);

    return this.each(function ()
    {
        obj = $(this);
        var body = obj.html();

        if (body.length > options.length + options.minTrail)
        {
            var splitLocation = body.indexOf(' ', options.length);
            if (splitLocation != -1)
            {
                // truncate tip
                var splitLocation = body.indexOf(' ', options.length);
                var str1 = body.substring(0, splitLocation);
                var str2 = body.substring(splitLocation);
                obj.html(str1 + '<span class="truncate_ellipsis">' + options.ellipsisText +
						'</span>' + '<span class="truncate_more">' + str2 + '</span>');
                obj.find('.truncate_more').css("display", "none");

                // insert more link
                obj.append(
						'<div class="clearboth">' +
							'<a href="#" class="truncate_more_link">' + options.moreText + '</a>' +
						'</div>'
					);

                // set onclick event for more/less link
                var moreLink = $('.truncate_more_link', obj);
                var moreContent = $('.truncate_more', obj);
                var ellipsis = $('.truncate_ellipsis', obj);
                moreLink.click(function ()
                {
                    if (moreLink.text() == options.moreText)
                    {
                        moreContent.show(options.moreAni);
                        moreLink.text(options.lessText);
                        ellipsis.css("display", "none");
                    } else
                    {
                        moreContent.hide(options.lessAni);
                        moreLink.text(options.moreText);
                        ellipsis.css("display", "inline");
                    }
                    return false;
                });
            }
        } // end if
    });
};

//makes hover divs go to the left and never off the page
//popUp - thing we're positioning in relation to the static object
//staticObject - image/link that we hover over expecting pop-up descrictipion
function TPPosition(popUp, staticObject)
{
    $(popUp).position(
                        {
                            my: "left top",
                            at: "right bottom",
                            of: staticObject,
                            collision: "flip"
                        });
}

