define("rootName/JqueryUi-1.8.21.custom/1.0.0/jquery-ui-1.8.21.custom", ["gallery/jquery/1.8.3/jquery"], function(require, exports, module) {
	var jQuery = $ = $ || require("gallery/jquery/1.8.3/jquery");
	(function(a, b) {
		function c(b, c) {
			var e = b.nodeName.toLowerCase();
			if("area" === e) {
				var h, f = b.parentNode,
				return b.href && g && "map" === f.nodeName.toLowerCase() ? (h = a("img[usemap=#" + g + "]")[0], !! h && d(h)) : !1
			}
			return(/input|select|textarea|button|object/.test(e) ? !b.disabled : "a" == e ? b.href || c : c) && d(b)
		}
		function d(b) {
			return !a(b).parents().andSelf().filter(function() {
				return "hidden" === a.curCSS(this, "visibility") || a.expr.filters.hidden(this)
			}).length
		}
		a.ui = a.ui || {}, a.ui.version || (a.extend(a.ui, {
			version: "1.8.21",
			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
			}
		}), a.fn.extend({
			propAttr: a.fn.prop || a.fn.attr,
			_focus: a.fn.focus,
			focus: function(b, c) {
				return "number" == typeof b ? this.each(function() {
					var d = this;
					setTimeout(function() {
						a(d).focus(), c && c.call(d)
					}, b)
				}) : this._focus.apply(this, arguments)
			},
			scrollParent: function() {
				var b;
				return b = a.browser.msie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? this.parents().filter(function() {
					return /(relative|absolute|fixed)/.test(a.curCSS(this, "position", 1)) && /(auto|scroll)/.test(a.curCSS(this, "overflow", 1) + a.curCSS(this, "overflow-y", 1) + a.curCSS(this, "overflow-x", 1))
				}).eq(0) : this.parents().filter(function() {
					return /(auto|scroll)/.test(a.curCSS(this, "overflow", 1) + a.curCSS(this, "overflow-y", 1) + a.curCSS(this, "overflow-x", 1))
				}).eq(0), /fixed/.test(this.css("position")) || !b.length ? a(document) : b
			},
			zIndex: function(c) {
				if(c !== b) return this.css("zIndex", c);
				if(this.length) for(var e, f, d = a(this[0]); d.length && d[0] !== document;) {
					if(e = d.css("position"), ("absolute" === e || "relative" === e || "fixed" === e) && (f = parseInt(d.css("zIndex"), 10), !isNaN(f) && 0 !== f)) return f;
					d = d.parent()
				}
				return 0
			},
			disableSelection: function() {
				return this.bind((a.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection", function(a) {
					a.preventDefault()
				})
			},
			enableSelection: function() {
				return this.unbind(".ui-disableSelection")
			}
		}), a.each(["Width", "Height"], function(c, d) {
			function e(b, c, d, e) {
				return a.each(f, function() {
					c -= parseFloat(a.curCSS(b, "padding" + this, !0)) || 0, d && (c -= parseFloat(a.curCSS(b, "border" + this + "Width", !0)) || 0), e && (c -= parseFloat(a.curCSS(b, "margin" + this, !0)) || 0)
				}), c
			}
			var f = "Width" === d ? ["Left", "Right"] : ["Top", "Bottom"],
				g = d.toLowerCase(),
				h = {
					innerWidth: a.fn.innerWidth,
					innerHeight: a.fn.innerHeight,
					outerWidth: a.fn.outerWidth,
					outerHeight: a.fn.outerHeight
				};
			a.fn["inner" + d] = function(c) {
				return c === b ? h["inner" + d].call(this) : this.each(function() {
					a(this).css(g, e(this, c) + "px")
				})
			}, a.fn["outer" + d] = function(b, c) {
				return "number" != typeof b ? h["outer" + d].call(this, b) : this.each(function() {
					a(this).css(g, e(this, b, !0, c) + "px")
				})
			}
		}), a.extend(a.expr[":"], {
			data: function(b, c, d) {
				return !!a.data(b, d[3])
			},
			focusable: function(b) {
				return c(b, !isNaN(a.attr(b, "tabindex")))
			},
			tabbable: function(b) {
				var d = a.attr(b, "tabindex"),
					e = isNaN(d);
				return(e || d >= 0) && c(b, !e)
			}
		}), a(function() {
			var b = document.body,
				c = b.appendChild(c = document.createElement("div"));
			c.offsetHeight, a.extend(c.style, {
				minHeight: "100px",
				height: "auto",
				padding: 0,
				borderWidth: 0
			}), a.support.minHeight = 100 === c.offsetHeight, a.support.selectstart = "onselectstart" in c, b.removeChild(c).style.display = "none"
		}), a.extend(a.ui, {
			plugin: {
				add: function(b, c, d) {
					var e = a.ui[b].prototype;
					for(var f in d) e.plugins[f] = e.plugins[f] || [], e.plugins[f].push([c, d[f]])
				},
				call: function(a, b, c) {
					var d = a.plugins[b];
					if(d && a.element[0].parentNode) for(var e = 0; d.length > e; e++) a.options[d[e][0]] && d[e][1].apply(a.element, c)
				}
			},
			contains: function(a, b) {
				return document.compareDocumentPosition ? 16 & a.compareDocumentPosition(b) : a !== b && a.contains(b)
			},
			hasScroll: function(b, c) {
				if("hidden" === a(b).css("overflow")) return !1;
				var d = c && "left" === c ? "scrollLeft" : "scrollTop",
					e = !1;
				return b[d] > 0 ? !0 : (b[d] = 1, e = b[d] > 0, b[d] = 0, e)
			},
			isOverAxis: function(a, b, c) {
				return a > b && b + c > a
			},
			isOver: function(b, c, d, e, f, g) {
				return a.ui.isOverAxis(b, d, f) && a.ui.isOverAxis(c, e, g)
			}
		}))
	})(jQuery), function(a, b) {
		if(a.cleanData) {
			var c = a.cleanData;
			a.cleanData = function(b) {
				for(var e, d = 0; null != (e = b[d]); d++) try {
					a(e).triggerHandler("remove")
				} catch(f) {}
				c(b)
			}
		} else {
			var d = a.fn.remove;
			a.fn.remove = function(b, c) {
				return this.each(function() {
					return c || (!b || a.filter(b, [this]).length) && a("*", this).add([this]).each(function() {
						try {
							a(this).triggerHandler("remove")
						} catch(b) {}
					}), d.call(a(this), b, c)
				})
			}
		}
		a.widget = function(b, c, d) {
			var f, e = b.split(".")[0];
			b = b.split(".")[1], f = e + "-" + b, d || (d = c, c = a.Widget), a.expr[":"][f] = function(c) {
				return !!a.data(c, b)
			}, a[e] = a[e] || {}, a[e][b] = function(a, b) {
				arguments.length && this._createWidget(a, b)
			};
			var g = new c;
			g.options = a.extend(!0, {}, g.options), a[e][b].prototype = a.extend(!0, g, {
				namespace: e,
				widgetName: b,
				widgetEventPrefix: a[e][b].prototype.widgetEventPrefix || b,
				widgetBaseClass: f
			}, d), a.widget.bridge(b, a[e][b])
		}, a.widget.bridge = function(c, d) {
			a.fn[c] = function(e) {
				var f = "string" == typeof e,
					g = Array.prototype.slice.call(arguments, 1),
					h = this;
				return e = !f && g.length ? a.extend.apply(null, [!0, e].concat(g)) : e, f && "_" === e.charAt(0) ? h : (f ? this.each(function() {
					var d = a.data(this, c),
						f = d && a.isFunction(d[e]) ? d[e].apply(d, g) : d;
					return f !== d && f !== b ? (h = f, !1) : void 0
				}) : this.each(function() {
					var b = a.data(this, c);
					b ? b.option(e || {})._init() : a.data(this, c, new d(e, this))
				}), h)
			}
		}, a.Widget = function(a, b) {
			arguments.length && this._createWidget(a, b)
		}, a.Widget.prototype = {
			widgetName: "widget",
			widgetEventPrefix: "",
			options: {
				disabled: !1
			},
			_createWidget: function(b, c) {
				a.data(c, this.widgetName, this), this.element = a(c), this.options = a.extend(!0, {}, this.options, this._getCreateOptions(), b);
				var d = this;
				this.element.bind("remove." + this.widgetName, function() {
					d.destroy()
				}), this._create(), this._trigger("create"), this._init()
			},
			_getCreateOptions: function() {
				return a.metadata && a.metadata.get(this.element[0])[this.widgetName]
			},
			_create: function() {},
			_init: function() {},
			destroy: function() {
				this.element.unbind("." + this.widgetName).removeData(this.widgetName), this.widget().unbind("." + this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass + "-disabled " + "ui-state-disabled")
			},
			widget: function() {
				return this.element
			},
			option: function(c, d) {
				var e = c;
				if(0 === arguments.length) return a.extend({}, this.options);
				if("string" == typeof c) {
					if(d === b) return this.options[c];
					e = {}, e[c] = d
				}
				return this._setOptions(e), this
			},
			_setOptions: function(b) {
				var c = this;
				return a.each(b, function(a, b) {
					c._setOption(a, b)
				}), this
			},
			_setOption: function(a, b) {
				return this.options[a] = b, "disabled" === a && this.widget()[b ? "addClass" : "removeClass"](this.widgetBaseClass + "-disabled" + " " + "ui-state-disabled").attr("aria-disabled", b), this
			},
			enable: function() {
				return this._setOption("disabled", !1)
			},
			disable: function() {
				return this._setOption("disabled", !0)
			},
			_trigger: function(b, c, d) {
				var e, f, g = this.options[b];
				if(d = d || {}, c = a.Event(c), c.type = (b === this.widgetEventPrefix ? b : this.widgetEventPrefix + b).toLowerCase(), c.target = this.element[0], f = c.originalEvent, f) for(e in f) e in c || (c[e] = f[e]);
				return this.element.trigger(c, d), !(a.isFunction(g) && g.call(this.element[0], c, d) === !1 || c.isDefaultPrevented())
			}
		}
	}(jQuery), function(a) {
		var c = !1;
		a(document).mouseup(function() {
			c = !1
		}), a.widget("ui.mouse", {
			options: {
				cancel: ":input,option",
				distance: 1,
				delay: 0
			},
			_mouseInit: function() {
				var b = this;
				this.element.bind("mousedown." + this.widgetName, function(a) {
					return b._mouseDown(a)
				}).bind("click." + this.widgetName, function(c) {
					return !0 === a.data(c.target, b.widgetName + ".preventClickEvent") ? (a.removeData(c.target, b.widgetName + ".preventClickEvent"), c.stopImmediatePropagation(), !1) : void 0
				}), this.started = !1
			},
			_mouseDestroy: function() {
				this.element.unbind("." + this.widgetName), a(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate)
			},
			_mouseDown: function(b) {
				if(!c) {
					this._mouseStarted && this._mouseUp(b), this._mouseDownEvent = b;
					var d = this,
						e = 1 == b.which,
						f = "string" == typeof this.options.cancel && b.target.nodeName ? a(b.target).closest(this.options.cancel).length : !1;
					return e && !f && this._mouseCapture(b) ? (this.mouseDelayMet = !this.options.delay, this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function() {
						d.mouseDelayMet = !0
					}, this.options.delay)), this._mouseDistanceMet(b) && this._mouseDelayMet(b) && (this._mouseStarted = this._mouseStart(b) !== !1, !this._mouseStarted) ? (b.preventDefault(), !0) : (!0 === a.data(b.target, this.widgetName + ".preventClickEvent") && a.removeData(b.target, this.widgetName + ".preventClickEvent"), this._mouseMoveDelegate = function(a) {
						return d._mouseMove(a)
					}, this._mouseUpDelegate = function(a) {
						return d._mouseUp(a)
					}, a(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate), b.preventDefault(), c = !0, !0)) : !0
				}
			},
			_mouseMove: function(b) {
				return !a.browser.msie || document.documentMode >= 9 || b.button ? this._mouseStarted ? (this._mouseDrag(b), b.preventDefault()) : (this._mouseDistanceMet(b) && this._mouseDelayMet(b) && (this._mouseStarted = this._mouseStart(this._mouseDownEvent, b) !== !1, this._mouseStarted ? this._mouseDrag(b) : this._mouseUp(b)), !this._mouseStarted) : this._mouseUp(b)
			},
			_mouseUp: function(b) {
				return a(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate), this._mouseStarted && (this._mouseStarted = !1, b.target == this._mouseDownEvent.target && a.data(b.target, this.widgetName + ".preventClickEvent", !0), this._mouseStop(b)), !1
			},
			_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 !0
			}
		})
	}(jQuery), function(a) {
		a.ui = a.ui || {};
		var c = /left|center|right/,
			d = /top|center|bottom/,
			e = "center",
			f = {},
			g = a.fn.position,
			h = a.fn.offset;
		a.fn.position = function(b) {
			if(!b || !b.of) return g.apply(this, arguments);
			b = a.extend({}, b);
			var l, m, n, h = a(b.of),
				i = h[0],
				j = (b.collision || "flip").split(" "),
				k = b.offset ? b.offset.split(" ") : [0, 0];
			return 9 === i.nodeType ? (l = h.width(), m = h.height(), n = {
				top: 0,
				left: 0
			}) : i.setTimeout ? (l = h.width(), m = h.height(), n = {
				top: h.scrollTop(),
				left: h.scrollLeft()
			}) : i.preventDefault ? (
b.at = "left top", l = m = 0, n = {
 				top: b.of.pageY,
				left: b.of.pageX
			}) : (l = h.outerWidth(), m = h.outerHeight(), n = h.offset()), a.each(["my", "at"], function() {
				var a = (b[this] || "").split(" ");
				1 === a.length && (a = c.test(a[0]) ? a.concat([e]) : d.test(a[0]) ? [e].concat(a) : [e, e]), a[0] = c.test(a[0]) ? a[0] : e, a[1] = d.test(a[1]) ? a[1] : e, b[this] = a
			}), 1 === j.length && (j[1] = j[0]), k[0] = parseInt(k[0], 10) || 0, 1 === k.length && (k[1] = k[0]), k[1] = parseInt(k[1], 10) || 0, "right" === 
b.at[0] ? n.left += l : 
b.at[0] === e && (n.left += l / 2), "bottom" === 
b.at[1] ? n.top += m : 
b.at[1] === e && (n.top += m / 2), n.left += k[0], n.top += k[1], this.each(function() {
 				var r, c = a(this),
					d = c.outerWidth(),
					g = c.outerHeight(),
					h = parseInt(a.curCSS(this, "marginLeft", !0)) || 0,
					i = parseInt(a.curCSS(this, "marginTop", !0)) || 0,
					o = d + h + (parseInt(a.curCSS(this, "marginRight", !0)) || 0),
					p = g + i + (parseInt(a.curCSS(this, "marginBottom", !0)) || 0),
					q = a.extend({}, n);
				"right" === b.my[0] ? q.left -= d : b.my[0] === e && (q.left -= d / 2), "bottom" === b.my[1] ? q.top -= g : b.my[1] === e && (q.top -= g / 2), f.fractions || (q.left = Math.round(q.left), q.top = Math.round(q.top)), r = {
					left: q.left - h,
					top: q.top - i
				}, a.each(["left", "top"], function(c, e) {
					a.ui.position[j[c]] && a.ui.position[j[c]][e](q, {
						targetWidth: l,
						targetHeight: m,
						elemWidth: d,
						elemHeight: g,
						collisionPosition: r,
						collisionWidth: o,
						collisionHeight: p,
						offset: k,
						my: b.my,
					})
				}), a.fn.bgiframe && c.bgiframe(), c.offset(a.extend(q, {
					using: b.using
				}))
			})
		}, a.ui.position = {
			fit: {
				left: function(b, c) {
					var d = a(window),
						e = c.collisionPosition.left + c.collisionWidth - d.width() - d.scrollLeft();
					b.left = e > 0 ? b.left - e : Math.max(b.left - c.collisionPosition.left, b.left)
				},
				top: function(b, c) {
					var d = a(window),
						e = c.collisionPosition.top + c.collisionHeight - d.height() - d.scrollTop();
					b.top = e > 0 ? b.top - e : Math.max(b.top - c.collisionPosition.top, b.top)
				}
			},
			flip: {
				left: function(b, c) {
						var d = a(window),
							f = c.collisionPosition.left + c.collisionWidth - d.width() - d.scrollLeft(),
							g = "left" === c.my[0] ? -c.elemWidth : "right" === c.my[0] ? c.elemWidth : 0,
							h = "left" === 
c.at[0] ? c.targetWidth : -c.targetWidth,
 							i = -2 * c.offset[0];
						b.left += 0 > c.collisionPosition.left ? g + h + i : f > 0 ? g + h + i : 0
					}
				},
				top: function(b, c) {
						var d = a(window),
							f = c.collisionPosition.top + c.collisionHeight - d.height() - d.scrollTop(),
							g = "top" === c.my[1] ? -c.elemHeight : "bottom" === c.my[1] ? c.elemHeight : 0,
							h = "top" === 
c.at[1] ? c.targetHeight : -c.targetHeight,
 							i = -2 * c.offset[1];
						b.top += 0 > c.collisionPosition.top ? g + h + i : f > 0 ? g + h + i : 0
					}
				}
			}
		}, a.offset.setOffset || (a.offset.setOffset = function(b, c) {
			/static/.test(a.curCSS(b, "position")) && (b.style.position = "relative");
			var d = a(b),
				e = d.offset(),
				f = parseInt(a.curCSS(b, "top", !0), 10) || 0,
				g = parseInt(a.curCSS(b, "left", !0), 10) || 0,
				h = {
					top: c.top - e.top + f,
					left: c.left - e.left + g
				};
			"using" in c ? c.using.call(b, h) : d.css(h)
		}, a.fn.offset = function(b) {
			var c = this[0];
			return c && c.ownerDocument ? b ? a.isFunction(b) ? this.each(function(c) {
				a(this).offset(b.call(this, c, a(this).offset()))
			}) : this.each(function() {
				a.offset.setOffset(this, b)
			}) : h.call(this) : null
		}), function() {
			var d, e, g, h, i, b = document.getElementsByTagName("body")[0],
				c = document.createElement("div");
			d = document.createElement(b ? "div" : "body"), g = {
				visibility: "hidden",
				width: 0,
				height: 0,
				border: 0,
				margin: 0,
				background: "none"
			}, b && a.extend(g, {
				position: "absolute",
				left: "-1000px",
				top: "-1000px"
			});
			for(var j in g) d.style[j] = g[j];
			d.appendChild(c), e = b || document.documentElement, e.insertBefore(d, e.firstChild), c.style.cssText = "position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;", h = a(c).offset(function(a, b) {
				return b
			}).offset(), d.innerHTML = "", e.removeChild(d), i = h.top + h.left + (b ? 2e3 : 0), f.fractions = i > 21 && 22 > i
		}()
	}(jQuery), function(a) {
		a.widget("ui.draggable", a.ui.mouse, {
			widgetEventPrefix: "drag",
			options: {
				addClasses: !0,
				appendTo: "parent",
				axis: !1,
				connectToSortable: !1,
				containment: !1,
				cursor: "auto",
				cursorAt: !1,
				grid: !1,
				handle: !1,
				helper: "original",
				iframeFix: !1,
				opacity: !1,
				refreshPositions: !1,
				revert: !1,
				revertDuration: 500,
				scope: "default",
				scroll: !0,
				scrollSensitivity: 20,
				scrollSpeed: 20,
				snap: !1,
				snapMode: "both",
				snapTolerance: 20,
				stack: !1,
				zIndex: !1
			},
			_create: function() {
				"original" == this.options.helper && !/^(?: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() {
				return this.element.data("draggable") ? (this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"), this._mouseDestroy(), this) : void 0
			},
			_mouseCapture: function(b) {
				var c = this.options;
				return this.helper || c.disabled || a(b.target).is(".ui-resizable-handle") ? !1 : (this.handle = this._getHandle(b), this.handle ? (c.iframeFix && a(c.iframeFix === !0 ? "iframe" : c.iframeFix).each(function() {
					a('<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(a(this).offset()).appendTo("body")
				}), !0) : !1)
			},
			_mouseStart: function(b) {
				var c = this.options;
				return this.helper = this._createHelper(b), this.helper.addClass("ui-draggable-dragging"), this._cacheHelperProportions(), a.ui.ddmanager && (a.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
				}, a.extend(this.offset, {
					click: {
						left: b.pageX - this.offset.left,
						top: b.pageY - this.offset.top
					},
					parent: this._getParentOffset(),
					relative: this._getRelativeOffset()
				}), this.originalPosition = this.position = this._generatePosition(b), this.originalPageX = b.pageX, this.originalPageY = b.pageY, c.cursorAt && this._adjustOffsetFromHelper(c.cursorAt), c.containment && this._setContainment(), this._trigger("start", b) === !1 ? (this._clear(), !1) : (this._cacheHelperProportions(), a.ui.ddmanager && !c.dropBehaviour && a.ui.ddmanager.prepareOffsets(this, b), this._mouseDrag(b, !0), a.ui.ddmanager && a.ui.ddmanager.dragStart(this, b), !0)
			},
			_mouseDrag: function(b, c) {
				if(this.position = this._generatePosition(b), this.positionAbs = this._convertPositionTo("absolute"), !c) {
					var d = this._uiHash();
					if(this._trigger("drag", b, d) === !1) return this._mouseUp({}), !1;
					this.position = d.position
				}
				return this.options.axis && "y" == this.options.axis || (this.helper[0].style.left = this.position.left + "px"), this.options.axis && "x" == this.options.axis || (this.helper[0].style.top = this.position.top + "px"), a.ui.ddmanager && a.ui.ddmanager.drag(this, b), !1
			},
			_mouseStop: function(b) {
				var c = !1;
				a.ui.ddmanager && !this.options.dropBehaviour && (c = a.ui.ddmanager.drop(this, b)), this.dropped && (c = this.dropped, this.dropped = !1);
				for(var d = this.element[0], e = !1; d && (d = d.parentNode);) d == document && (e = !0);
				if(!e && "original" === this.options.helper) return !1;
				if("invalid" == this.options.revert && !c || "valid" == this.options.revert && c || this.options.revert === !0 || a.isFunction(this.options.revert) && this.options.revert.call(this.element, c)) {
					var f = this;
					a(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
						f._trigger("stop", b) !== !1 && f._clear()
					})
				} else this._trigger("stop", b) !== !1 && this._clear();
				return !1
			},
			_mouseUp: function(b) {
				return this.options.iframeFix === !0 && a("div.ui-draggable-iframeFix").each(function() {
					this.parentNode.removeChild(this)
				}), a.ui.ddmanager && a.ui.ddmanager.dragStop(this, b), a.ui.mouse.prototype._mouseUp.call(this, b)
			},
			cancel: function() {
				return 
this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear(), this
 			},
			_getHandle: function(b) {
				var c = this.options.handle && a(this.options.handle, this.element).length ? !1 : !0;
				return a(this.options.handle, this.element).find("*").andSelf().each(function() {
					this == b.target && (c = !0)
				}), c
			},
			_createHelper: function(b) {
				var c = this.options,
					d = a.isFunction(c.helper) ? a(c.helper.apply(this.element[0], [b])) : "clone" == c.helper ? this.element.clone().removeAttr("id") : this.element;
				return d.parents("body").length || d.appendTo("parent" == c.appendTo ? this.element[0].parentNode : c.appendTo), d[0] != this.element[0] && !/(fixed|absolute)/.test(d.css("position")) && d.css("position", "absolute"), d
			},
			_adjustOffsetFromHelper: function(b) {
				"string" == typeof b && (b = b.split(" ")), a.isArray(b) && (b = {
					left: +b[0],
					top: +b[1] || 0
				}), "left" in b && (this.offset.click.left = b.left + this.margins.left), "right" in b && (this.offset.click.left = this.helperProportions.width - b.right + this.margins.left), "top" in b && (this.offset.click.top = b.top + this.margins.top), "bottom" in b && (this.offset.click.top = this.helperProportions.height - b.bottom + this.margins.top)
			},
			_getParentOffset: function() {
				this.offsetParent = this.helper.offsetParent();
				var b = this.offsetParent.offset();
				return "absolute" == this.cssPosition && this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0]) && (b.left += this.scrollParent.scrollLeft(), b.top += this.scrollParent.scrollTop()), (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && "html" == this.offsetParent[0].tagName.toLowerCase() && a.browser.msie) && (b = {
					top: 0,
					left: 0
				}), {
					top: b.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
					left: b.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
				}
			},
			_getRelativeOffset: function() {
				if("relative" == this.cssPosition) {
					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()
					}
				}
				return {
					top: 0,
					left: 0
				}
			},
			_cacheMargins: function() {
				this.margins = {
					left: parseInt(this.element.css("marginLeft"), 10) || 0,
					top: parseInt(this.element.css("marginTop"), 10) || 0,
					right: parseInt(this.element.css("marginRight"), 10) || 0,
					bottom: parseInt(this.element.css("marginBottom"), 10) || 0
				}
			},
			_cacheHelperProportions: function() {
				this.helperProportions = {
					width: this.helper.outerWidth(),
					height: this.helper.outerHeight()
				}
			},
			_setContainment: function() {
				var b = this.options;
				if("parent" == b.containment && (b.containment = this.helper[0].parentNode), ("document" == b.containment || "window" == b.containment) && (this.containment = ["document" == b.containment ? 0 : a(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, "document" == b.containment ? 0 : a(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, ("document" == b.containment ? 0 : a(window).scrollLeft()) + a("document" == b.containment ? document : window).width() - this.helperProportions.width - this.margins.left, ("document" == b.containment ? 0 : a(window).scrollTop()) + (a("document" == b.containment ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]), /^(document|window|parent)$/.test(b.containment) || b.containment.constructor == Array) b.containment.constructor == Array && (this.containment = b.containment);
				else {
					var c = a(b.containment),
						d = c[0];
					if(!d) return;
					var f = (c.offset(), "hidden" != a(d).css("overflow"));
					this.containment = [(parseInt(a(d).css("borderLeftWidth"), 10) || 0) + (parseInt(a(d).css("paddingLeft"), 10) || 0), (parseInt(a(d).css("borderTopWidth"), 10) || 0) + (parseInt(a(d).css("paddingTop"), 10) || 0), (f ? Math.max(d.scrollWidth, d.offsetWidth) : d.offsetWidth) - (parseInt(a(d).css("borderLeftWidth"), 10) || 0) - (parseInt(a(d).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (f ? Math.max(d.scrollHeight, d.offsetHeight) : d.offsetHeight) - (parseInt(a(d).css("borderTopWidth"), 10) || 0) - (parseInt(a(d).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom], this.relative_container = c
				}
			},
			_convertPositionTo: function(b, c) {
				c || (c = this.position);
				var d = "absolute" == b ? 1 : -1,
					f = (this.options, "absolute" != this.cssPosition || this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent),
					g = /(html|body)/i.test(f[0].tagName);
				return {
					top: c.top + this.offset.relative.top * d + this.offset.parent.top * d - (a.browser.safari && 526 > a.browser.version && "fixed" == this.cssPosition ? 0 : ("fixed" == this.cssPosition ? -this.scrollParent.scrollTop() : g ? 0 : f.scrollTop()) * d),
					left: c.left + this.offset.relative.left * d + this.offset.parent.left * d - (a.browser.safari && 526 > a.browser.version && "fixed" == this.cssPosition ? 0 : ("fixed" == this.cssPosition ? -this.scrollParent.scrollLeft() : g ? 0 : f.scrollLeft()) * d)
				}
			},
			_generatePosition: function(b) {
				var c = this.options,
					d = "absolute" != this.cssPosition || this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent,
					e = /(html|body)/i.test(d[0].tagName),
					f = b.pageX,
					g = b.pageY;
				if(this.originalPosition) {
					var h;
					if(this.containment) {
						if(this.relative_container) {
							var i = this.relative_container.offset();
							h = [this.containment[0] + i.left, this.containment[1] + i.top, this.containment[2] + i.left, this.containment[3] + i.top]
						} else h = this.containment;
						b.pageX - this.offset.click.left < h[0] && (f = h[0] + this.offset.click.left), b.pageY - this.offset.click.top < h[1] && (g = h[1] + this.offset.click.top), b.pageX - this.offset.click.left > h[2] && (f = h[2] + this.offset.click.left), b.pageY - this.offset.click.top > h[3] && (g = h[3] + this.offset.click.top)
					}
					if(c.grid) {
						var j = c.grid[1] ? this.originalPageY + Math.round((g - this.originalPageY) / c.grid[1]) * c.grid[1] : this.originalPageY;
						g = h ? j - this.offset.click.top < h[1] || j - this.offset.click.top > h[3] ? j - this.offset.click.top < h[1] ? j + c.grid[1] : j - c.grid[1] : j : j;
						var k = c.grid[0] ? this.originalPageX + Math.round((f - this.originalPageX) / c.grid[0]) * c.grid[0] : this.originalPageX;
						f = h ? k - this.offset.click.left < h[0] || k - this.offset.click.left > h[2] ? k - this.offset.click.left < h[0] ? k + c.grid[0] : k - c.grid[0] : k : k
					}
				}
				return {
					top: g - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (a.browser.safari && 526 > a.browser.version && "fixed" == this.cssPosition ? 0 : "fixed" == this.cssPosition ? -this.scrollParent.scrollTop() : e ? 0 : d.scrollTop()),
					left: f - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (a.browser.safari && 526 > a.browser.version && "fixed" == this.cssPosition ? 0 : "fixed" == this.cssPosition ? -this.scrollParent.scrollLeft() : e ? 0 : d.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 = !1
			},
			_trigger: function(b, c, d) {
				return d = d || this._uiHash(), a.ui.plugin.call(this, b, [c, d]), "drag" == b && (this.positionAbs = this._convertPositionTo("absolute")), a.Widget.prototype._trigger.call(this, b, c, d)
			},
			plugins: {},
			_uiHash: function() {
				return {
					helper: this.helper,
					position: this.position,
					originalPosition: this.originalPosition,
					offset: this.positionAbs
				}
			}
		}), a.extend(a.ui.draggable, {
			version: "1.8.21"
		}), a.ui.plugin.add("draggable", "connectToSortable", {
			start: function(b, c) {
				var d = a(this).data("draggable"),
					e = d.options,
					f = a.extend({}, c, {
						item: d.element
					});
				d.sortables = [], a(e.connectToSortable).each(function() {
					var c = a.data(this, "sortable");
					c && !c.options.disabled && (d.sortables.push({
						instance: c,
						shouldRevert: c.options.revert
					}), c.refreshPositions(), c._trigger("activate", b, f))
				})
			},
			stop: function(b, c) {
				var d = a(this).data("draggable"),
					e = a.extend({}, c, {
						item: d.element
					});
				a.each(d.sortables, function() {
					this.instance.isOver ? (this.instance.isOver = 0, d.cancelHelperRemoval = !0, this.instance.cancelHelperRemoval = !1, this.shouldRevert && (this.instance.options.revert = !0), this.instance._mouseStop(b), this.instance.options.helper = this.instance.options._helper, "original" == d.options.helper && this.instance.currentItem.css({
						top: "auto",
						left: "auto"
					})) : (this.instance.cancelHelperRemoval = !1, this.instance._trigger("deactivate", b, e))
				})
			},
			drag: function(b, c) {
				var d = a(this).data("draggable"),
					e = this;
				a.each(d.sortables, function() {
					this.instance.positionAbs = d.positionAbs, this.instance.helperProportions = d.helperProportions, this.instance.offset.click = d.offset.click, this.instance._intersectsWith(this.instance.containerCache) ? (this.instance.isOver || (this.instance.isOver = 1, this.instance.currentItem = a(e).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item", !0), this.instance.options._helper = this.instance.options.helper, this.instance.options.helper = function() {
						return c.helper[0]
					}, b.target = this.instance.currentItem[0], this.instance._mouseCapture(b, !0), this.instance._mouseStart(b, !0, !0), this.instance.offset.click.top = d.offset.click.top, this.instance.offset.click.left = d.offset.click.left, this.instance.offset.parent.left -= d.offset.parent.left - this.instance.offset.parent.left, this.instance.offset.parent.top -= d.offset.parent.top - this.instance.offset.parent.top, d._trigger("toSortable", b), d.dropped = this.instance.element, d.currentItem = d.element, this.instance.fromOutside = d), this.instance.currentItem && this.instance._mouseDrag(b)) : this.instance.isOver && (this.instance.isOver = 0, this.instance.cancelHelperRemoval = !0, this.instance.options.revert = !1, this.instance._trigger("out", b, this.instance._uiHash(this.instance)), this.instance._mouseStop(b, !0), this.instance.options.helper = this.instance.options._helper, this.instance.currentItem.remove(), this.instance.placeholder && this.instance.placeholder.remove(), d._trigger("fromSortable", b), d.dropped = !1)
				})
			}
		}), a.ui.plugin.add("draggable", "cursor", {
			start: function() {
				var d = a("body"),
					e = a(this).data("draggable").options;
				d.css("cursor") && (e._cursor = d.css("cursor")), d.css("cursor", e.cursor)
			},
			stop: function() {
				var d = a(this).data("draggable").options;
				d._cursor && a("body").css("cursor", d._cursor)
			}
		}), a.ui.plugin.add("draggable", "opacity", {
			start: function(b, c) {
				var d = a(c.helper),
					e = a(this).data("draggable").options;
				d.css("opacity") && (e._opacity = d.css("opacity")), d.css("opacity", e.opacity)
			},
			stop: function(b, c) {
				var d = a(this).data("draggable").options;
				d._opacity && a(c.helper).css("opacity", d._opacity)
			}
		}), a.ui.plugin.add("draggable", "scroll", {
			start: function() {
				var d = a(this).data("draggable");
				d.scrollParent[0] != document && "HTML" != d.scrollParent[0].tagName && (d.overflowOffset = d.scrollParent.offset())
			},
			drag: function(b) {
				var d = a(this).data("draggable"),
					e = d.options,
					f = !1;
				d.scrollParent[0] != document && "HTML" != d.scrollParent[0].tagName ? (e.axis && "x" == e.axis || (d.overflowOffset.top + d.scrollParent[0].offsetHeight - b.pageY < e.scrollSensitivity ? d.scrollParent[0].scrollTop = f = d.scrollParent[0].scrollTop + e.scrollSpeed : b.pageY - d.overflowOffset.top < e.scrollSensitivity && (d.scrollParent[0].scrollTop = f = d.scrollParent[0].scrollTop - e.scrollSpeed)), e.axis && "y" == e.axis || (d.overflowOffset.left + d.scrollParent[0].offsetWidth - b.pageX < e.scrollSensitivity ? d.scrollParent[0].scrollLeft = f = d.scrollParent[0].scrollLeft + e.scrollSpeed : b.pageX - d.overflowOffset.left < e.scrollSensitivity && (d.scrollParent[0].scrollLeft = f = d.scrollParent[0].scrollLeft - e.scrollSpeed))) : (e.axis && "x" == e.axis || (b.pageY - a(document).scrollTop() < e.scrollSensitivity ? f = a(document).scrollTop(a(document).scrollTop() - e.scrollSpeed) : a(window).height() - (b.pageY - a(document).scrollTop()) < e.scrollSensitivity && (f = a(document).scrollTop(a(document).scrollTop() + e.scrollSpeed))), e.axis && "y" == e.axis || (b.pageX - a(document).scrollLeft() < e.scrollSensitivity ? f = a(document).scrollLeft(a(document).scrollLeft() - e.scrollSpeed) : a(window).width() - (b.pageX - a(document).scrollLeft()) < e.scrollSensitivity && (f = a(document).scrollLeft(a(document).scrollLeft() + e.scrollSpeed)))), f !== !1 && a.ui.ddmanager && !e.dropBehaviour && a.ui.ddmanager.prepareOffsets(d, b)
			}
		}), a.ui.plugin.add("draggable", "snap", {
			start: function() {
				var d = a(this).data("draggable"),
					e = d.options;
				d.snapElements = [], a(e.snap.constructor != String ? e.snap.items || ":data(draggable)" : e.snap).each(function() {
					var b = a(this),
						c = b.offset();
					this != d.element[0] && d.snapElements.push({
						item: this,
						width: b.outerWidth(),
						height: b.outerHeight(),
						top: c.top,
						left: c.left
					})
				})
			},
			drag: function(b, c) {
				for(var d = a(this).data("draggable"), e = d.options, f = e.snapTolerance, g = c.offset.left, h = g + d.helperProportions.width, i = c.offset.top, j = i + d.helperProportions.height, k = d.snapElements.length - 1; k >= 0; k--) {
					var l = d.snapElements[k].left,
						m = l + d.snapElements[k].width,
						n = d.snapElements[k].top,
						o = n + d.snapElements[k].height;
					if(g > l - f && m + f > g && i > n - f && o + f > i || g > l - f && m + f > g && j > n - f && o + f > j || h > l - f && m + f > h && i > n - f && o + f > i || h > l - f && m + f > h && j > n - f && o + f > j) {
						if("inner" != e.snapMode) {
							var p = f >= Math.abs(n - j),
								q = f >= Math.abs(o - i),
								r = f >= Math.abs(l - h),
								s = f >= Math.abs(m - g);
							p && (c.position.top = d._convertPositionTo("relative", {
								top: n - d.helperProportions.height,
								left: 0
							}).top - d.margins.top), q && (c.position.top = d._convertPositionTo("relative", {
								top: o,
								left: 0
							}).top - d.margins.top), r && (c.position.left = d._convertPositionTo("relative", {
								top: 0,
								left: l - d.helperProportions.width
							}).left - d.margins.left), s && (c.position.left = d._convertPositionTo("relative", {
								top: 0,
								left: m
							}).left - d.margins.left)
						}
						var t = p || q || r || s;
						if("outer" != e.snapMode) {
							var p = f >= Math.abs(n - i),
								q = f >= Math.abs(o - j),
								r = f >= Math.abs(l - g),
								s = f >= Math.abs(m - h);
							p && (c.position.top = d._convertPositionTo("relative", {
								top: n,
								left: 0
							}).top - d.margins.top), q && (c.position.top = d._convertPositionTo("relative", {
								top: o - d.helperProportions.height,
								left: 0
							}).top - d.margins.top), r && (c.position.left = d._convertPositionTo("relative", {
								top: 0,
								left: l
							}).left - d.margins.left), s && (c.position.left = d._convertPositionTo("relative", {
								top: 0,
								left: m - d.helperProportions.width
							}).left - d.margins.left)
						}!d.snapElements[k].snapping && (p || q || r || s || t) && d.options.snap.snap && d.options.snap.snap.call(d.element, b, a.extend(d._uiHash(), {
							snapItem: d.snapElements[k].item
						})), d.snapElements[k].snapping = p || q || r || s || t
					} else d.snapElements[k].snapping && d.options.snap.release && d.options.snap.release.call(d.element, b, a.extend(d._uiHash(), {
						snapItem: d.snapElements[k].item
					})), d.snapElements[k].snapping = !1
				}
			}
		}), a.ui.plugin.add("draggable", "stack", {
			start: function() {
				var d = a(this).data("draggable").options,
					e = a.makeArray(a(d.stack)).sort(function(b, c) {
						return(parseInt(a(b).css("zIndex"), 10) || 0) - (parseInt(a(c).css("zIndex"), 10) || 0)
					});
				if(e.length) {
					var f = parseInt(e[0].style.zIndex) || 0;
					a(e).each(function(a) {
						this.style.zIndex = f + a
					}), this[0].style.zIndex = f + e.length
				}
			}
		}), a.ui.plugin.add("draggable", "zIndex", {
			start: function(b, c) {
				var d = a(c.helper),
					e = a(this).data("draggable").options;
				d.css("zIndex") && (e._zIndex = d.css("zIndex")), d.css("zIndex", e.zIndex)
			},
			stop: function(b, c) {
				var d = a(this).data("draggable").options;
				d._zIndex && a(c.helper).css("zIndex", d._zIndex)
			}
		})
	}(jQuery), function(a) {
		a.widget("ui.droppable", {
			widgetEventPrefix: "drop",
			options: {
				accept: "*",
				activeClass: !1,
				addClasses: !0,
				greedy: !1,
				hoverClass: !1,
				scope: "default",
				tolerance: "intersect"
			},
			_create: function() {
				var b = this.options,
					c = b.accept;
				this.isover = 0, this.isout = 1, this.accept = a.isFunction(c) ? c : function(a) {
				}, this.proportions = {
					width: this.element[0].offsetWidth,
					height: this.element[0].offsetHeight
				}, a.ui.ddmanager.droppables[b.scope] = a.ui.ddmanager.droppables[b.scope] || [], a.ui.ddmanager.droppables[b.scope].push(this), b.addClasses && this.element.addClass("ui-droppable")
			},
			destroy: function() {
				for(var b = a.ui.ddmanager.droppables[this.options.scope], c = 0; b.length > c; c++) b[c] == this && b.splice(c, 1);
				return this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable"), this
			},
			_setOption: function(b, c) {
				"accept" == b && (this.accept = a.isFunction(c) ? c : function(a) {
				}), a.Widget.prototype._setOption.apply(this, arguments)
			},
			_activate: function(b) {
				var c = a.ui.ddmanager.current;
				this.options.activeClass && this.element.addClass(this.options.activeClass), c && this._trigger("activate", b, this.ui(c))
			},
			_deactivate: function(b) {
				var c = a.ui.ddmanager.current;
				this.options.activeClass && this.element.removeClass(this.options.activeClass), c && this._trigger("deactivate", b, this.ui(c))
			},
			_over: function(b) {
				var c = a.ui.ddmanager.current;
				c && (c.currentItem || c.element)[0] != this.element[0] && this.accept.call(this.element[0], c.currentItem || c.element) && (this.options.hoverClass && this.element.addClass(this.options.hoverClass), this._trigger("over", b, this.ui(c)))
			},
			_out: function(b) {
				var c = a.ui.ddmanager.current;
				c && (c.currentItem || c.element)[0] != this.element[0] && this.accept.call(this.element[0], c.currentItem || c.element) && (this.options.hoverClass && this.element.removeClass(this.options.hoverClass), this._trigger("out", b, this.ui(c)))
			},
			_drop: function(b, c) {
				var d = c || a.ui.ddmanager.current;
				if(!d || (d.currentItem || d.element)[0] == this.element[0]) return !1;
				var e = !1;
				return this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() {
					var b = a.data(this, "droppable");
					return b.options.greedy && !b.options.disabled && b.options.scope == d.options.scope && b.accept.call(b.element[0], d.currentItem || d.element) && a.ui.intersect(d, a.extend(b, {
						offset: b.element.offset()
					}), b.options.tolerance) ? (e = !0, !1) : void 0
				}), e ? !1 : this.accept.call(this.element[0], d.currentItem || d.element) ? (this.options.activeClass && this.element.removeClass(this.options.activeClass), this.options.hoverClass && this.element.removeClass(this.options.hoverClass), this._trigger("drop", b, this.ui(d)), this.element) : !1
			},
			ui: function(a) {
				return {
					draggable: a.currentItem || a.element,
					helper: a.helper,
					position: a.position,
					offset: a.positionAbs
				}
			}
		}), a.extend(a.ui.droppable, {
			version: "1.8.21"
		}), a.ui.intersect = function(b, c, d) {
			if(!c.offset) return !1;
			var e = (b.positionAbs || b.position.absolute).left,
				f = e + b.helperProportions.width,
				g = (b.positionAbs || b.position.absolute).top,
				h = g + b.helperProportions.height,
				i = c.offset.left,
				j = i + c.proportions.width,
				k = c.offset.top,
				l = k + c.proportions.height;
			switch(d) {
			case "fit":
				return e >= i && j >= f && g >= k && l >= h;
			case "intersect":
				return e + b.helperProportions.width / 2 > i && j > f - b.helperProportions.width / 2 && g + b.helperProportions.height / 2 > k && l > h - b.helperProportions.height / 2;
			case "pointer":
				var m = (b.positionAbs || b.position.absolute).left + (b.clickOffset || b.offset.click).left,
					n = (b.positionAbs || b.position.absolute).top + (b.clickOffset || b.offset.click).top,
					o = a.ui.isOver(n, m, k, i, c.proportions.height, c.proportions.width);
				return o;
			case "touch":
				return(g >= k && l >= g || h >= k && l >= h || k > g && h > l) && (e >= i && j >= e || f >= i && j >= f || i > e && f > j);
			default:
				return !1
			}
		}, a.ui.ddmanager = {
			current: null,
			droppables: {
				"default": []
			},
			prepareOffsets: function(b, c) {
				var d = a.ui.ddmanager.droppables[b.options.scope] || [],
					e = c ? c.type : null,
					f = (b.currentItem || b.element).find(":data(droppable)").andSelf();
				a: for(var g = 0; d.length > g; g++) if(!(d[g].options.disabled || b && !d[g].accept.call(d[g].element[0], b.currentItem || b.element))) {
					for(var h = 0; f.length > h; h++) if(f[h] == d[g].element[0]) {
						d[g].proportions.height = 0;
						continue a
					}
					d[g].visible = "none" != d[g].element.css("display"), d[g].visible && ("mousedown" == e && d[g]._activate.call(d[g], c), d[g].offset = d[g].element.offset(), d[g].proportions = {
						width: d[g].element[0].offsetWidth,
						height: d[g].element[0].offsetHeight
					})
				}
			},
			drop: function(b, c) {
				var d = !1;
				return a.each(a.ui.ddmanager.droppables[b.options.scope] || [], function() {
					this.options && (!this.options.disabled && this.visible && a.ui.intersect(b, this, this.options.tolerance) && (d = this._drop.call(this, c) || d), !this.options.disabled && this.visible && this.accept.call(this.element[0], b.currentItem || b.element) && (this.isout = 1, this.isover = 0, this._deactivate.call(this, c)))
				}), d
			},
			dragStart: function(b, c) {
				b.element.parents(":not(body,html)").bind("scroll.droppable", function() {
					b.options.refreshPositions || a.ui.ddmanager.prepareOffsets(b, c)
				})
			},
			drag: function(b, c) {
				b.options.refreshPositions && a.ui.ddmanager.prepareOffsets(b, c), a.each(a.ui.ddmanager.droppables[b.options.scope] || [], function() {
					if(!this.options.disabled && !this.greedyChild && this.visible) {
						var d = a.ui.intersect(b, this, this.options.tolerance),
							e = d || 1 != this.isover ? d && 0 == this.isover ? "isover" : null : "isout";
						if(e) {
							var f;
							if(this.options.greedy) {
								var g = this.element.parents(":data(droppable):eq(0)");
								g.length && (f = a.data(g[0], "droppable"), f.greedyChild = "isover" == e ? 1 : 0)
							}
							f && "isover" == e && (f.isover = 0, f.isout = 1, f._out.call(f, c)), this[e] = 1, this["isout" == e ? "isover" : "isout"] = 0, this["isover" == e ? "_over" : "_out"].call(this, c), f && "isout" == e && (f.isout = 0, f.isover = 1, f._over.call(f, c))
						}
					}
				})
			},
			dragStop: function(b, c) {
				b.element.parents(":not(body,html)").unbind("scroll.droppable"), b.options.refreshPositions || a.ui.ddmanager.prepareOffsets(b, c)
			}
		}
	}(jQuery), function(a) {
		a.widget("ui.resizable", a.ui.mouse, {
			widgetEventPrefix: "resize",
			options: {
				alsoResize: !1,
				animate: !1,
				animateDuration: "slow",
				animateEasing: "swing",
				aspectRatio: !1,
				autoHide: !1,
				containment: !1,
				ghost: !1,
				grid: !1,
				handles: "e,s,se",
				helper: !1,
				maxHeight: null,
				maxWidth: null,
				minHeight: 10,
				minWidth: 10,
				zIndex: 1e3
			},
			_create: function() {
				var b = this,
					c = this.options;
				if(this.element.addClass("ui-resizable"), a.extend(this, {
					_aspectRatio: !! c.aspectRatio,
					aspectRatio: c.aspectRatio,
					originalElement: this.element,
					_proportionallyResizeElements: [],
					_helper: c.helper || c.ghost || c.animate ? c.helper || "ui-resizable-helper" : null
				}), this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i) && (this.element.wrap(a('<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 = !0, 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 = c.handles || (a(".ui-resizable-handle", this.element).length ? {
					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"
				} : "e,s,se"), this.handles.constructor == String) {
					"all" == this.handles && (this.handles = "n,e,s,w,se,sw,ne,nw");
					var d = this.handles.split(",");
					this.handles = {};
					for(var e = 0; d.length > e; e++) {
						var f = a.trim(d[e]),
							g = "ui-resizable-" + f,
							h = a('<div class="ui-resizable-handle ' + g + '"></div>');
						h.css({
							zIndex: c.zIndex
						}), "se" == f && h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"), this.handles[f] = ".ui-resizable-" + f, this.element.append(h)
					}
				}
				this._renderAxis = function(b) {
					b = b || this.element;
					for(var c in this.handles) {
						if(this.handles[c].constructor == String && (this.handles[c] = a(this.handles[c], this.element).show()), this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {
							var d = a(this.handles[c], this.element),
								e = 0;
							e = /sw|ne|nw|se|n|s/.test(c) ? d.outerHeight() : d.outerWidth();
							var f = ["padding", /ne|nw|n/.test(c) ? "Top" : /se|sw|s/.test(c) ? "Bottom" : /^e$/.test(c) ? "Right" : "Left"].join("");
							b.css(f, e), this._proportionallyResize()
						}
						a(this.handles[c]).length
					}
				}, this._renderAxis(this.element), this._handles = a(".ui-resizable-handle", this.element).disableSelection(), this._handles.mouseover(function() {
					if(!b.resizing) {
						if(this.className) var a = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);
						b.axis = a && a[1] ? a[1] : "se"
					}
				}), c.autoHide && (this._handles.hide(), a(this.element).addClass("ui-resizable-autohide").hover(function() {
					c.disabled || (a(this).removeClass("ui-resizable-autohide"), b._handles.show())
				}, function() {
					c.disabled || b.resizing || (a(this).addClass("ui-resizable-autohide"), b._handles.hide())
				})), this._mouseInit()
			},
			destroy: function() {
				this._mouseDestroy();
				var b = function(b) {
						a(b).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 c = this.element;
					c.after(this.originalElement.css({
						position: c.css("position"),
						width: c.outerWidth(),
						height: c.outerHeight(),
						top: c.css("top"),
						left: c.css("left")
					})).remove()
				}
				return this.originalElement.css("resize", this.originalResizeStyle), b(this.originalElement), this
			},
			_mouseCapture: function(b) {
				var c = !1;
				for(var d in this.handles) a(this.handles[d])[0] == b.target && (c = !0);
				return !this.options.disabled && c
			},
			_mouseStart: function(b) {
				var d = this.options,
					e = this.element.position(),
					f = this.element;
				this.resizing = !0, this.documentScroll = {
					top: a(document).scrollTop(),
					left: a(document).scrollLeft()
				}, (
f.is(".ui-draggable") || /absolute/.test(f.css("position"))) && f.css({
 					position: "absolute",
					top: e.top,
					left: e.left
				}), this._renderProxy();
				var g = c(this.helper.css("left")),
					h = c(this.helper.css("top"));
				d.containment && (g += a(d.containment).scrollLeft() || 0, h += a(d.containment).scrollTop() || 0), this.offset = this.helper.offset(), this.position = {
					left: g,
					top: h
				}, this.size = this._helper ? {
					width: f.outerWidth(),
					height: f.outerHeight()
				} : {
					width: f.width(),
					height: f.height()
				}, this.originalSize = this._helper ? {
					width: f.outerWidth(),
					height: f.outerHeight()
				} : {
					width: f.width(),
					height: f.height()
				}, this.originalPosition = {
					left: g,
					top: h
				}, this.sizeDiff = {
					width: f.outerWidth() - f.width(),
					height: f.outerHeight() - f.height()
				}, this.originalMousePosition = {
					left: b.pageX,
					top: b.pageY
				}, this.aspectRatio = "number" == typeof d.aspectRatio ? d.aspectRatio : this.originalSize.width / this.originalSize.height || 1;
				var i = a(".ui-resizable-" + this.axis).css("cursor");
				return a("body").css("cursor", "auto" == i ? this.axis + "-resize" : i), f.addClass("ui-resizable-resizing"), this._propagate("start", b), !0
			},
			_mouseDrag: function(b) {
				var c = this.helper,
					g = (this.options, this.originalMousePosition),
					h = this.axis,
					i = b.pageX - g.left || 0,
					j = b.pageY - g.top || 0,
					k = this._change[h];
				if(!k) return !1;
				var l = k.apply(this, [b, i, j]);
				return a.browser.msie && 7 > a.browser.version, this.sizeDiff, this._updateVirtualBoundaries(b.shiftKey), (this._aspectRatio || b.shiftKey) && (l = this._updateRatio(l, b)), l = this._respectSize(l, b), this._propagate("resize", b), c.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(l), this._trigger("resize", b, this.ui()), !1
			},
			_mouseStop: function(b) {
				this.resizing = !1;
				var c = this.options,
					d = this;
				if(this._helper) {
					var e = this._proportionallyResizeElements,
						f = e.length && /textarea/i.test(e[0].nodeName),
						g = f && a.ui.hasScroll(e[0], "left") ? 0 : d.sizeDiff.height,
						h = f ? 0 : d.sizeDiff.width,
						i = {
							width: d.helper.width() - h,
							height: d.helper.height() - g
						},
						j = parseInt(d.element.css("left"), 10) + (d.position.left - d.originalPosition.left) || null,
						k = parseInt(d.element.css("top"), 10) + (d.position.top - d.originalPosition.top) || null;
					c.animate || this.element.css(a.extend(i, {
						top: k,
						left: j
					})), d.helper.height(d.size.height), d.helper.width(d.size.width), this._helper && !c.animate && this._proportionallyResize()
				}
				return a("body").css("cursor", "auto"), this.element.removeClass("ui-resizable-resizing"), this._propagate("stop", b), this._helper && this.helper.remove(), !1
			},
			_updateVirtualBoundaries: function(a) {
				var c, e, f, g, h, b = this.options;
				h = {
					minWidth: d(b.minWidth) ? b.minWidth : 0,
					maxWidth: d(b.maxWidth) ? b.maxWidth : 1 / 0,
					minHeight: d(b.minHeight) ? b.minHeight : 0,
					maxHeight: d(b.maxHeight) ? b.maxHeight : 1 / 0
				}, (this._aspectRatio || a) && (c = h.minHeight * this.aspectRatio, f = h.minWidth / this.aspectRatio, e = h.maxHeight * this.aspectRatio, g = h.maxWidth / this.aspectRatio, c > h.minWidth && (h.minWidth = c), f > h.minHeight && (h.minHeight = f), h.maxWidth > e && (h.maxWidth = e), h.maxHeight > g && (h.maxHeight = g)), this._vBoundaries = h
			},
			_updateCache: function(a) {
				this.options, this.offset = this.helper.offset(), d(a.left) && (this.position.left = a.left), d(a.top) && (this.position.top = a.top), d(a.height) && (this.size.height = a.height), d(a.width) && (this.size.width = a.width)
			},
			_updateRatio: function(a) {
				var e = (this.options, this.position),
					f = this.size,
					g = this.axis;
				return d(a.height) ? a.width = a.height * this.aspectRatio : d(a.width) && (a.height = a.width / this.aspectRatio), "sw" == g && (a.left = e.left + (f.width - a.width), a.top = null), "nw" == g && (a.top = e.top + (f.height - a.height), a.left = e.left + (f.width - a.width)), a
			},
			_respectSize: function(a, b) {
				var e = (this.helper, this._vBoundaries),
					g = (this._aspectRatio || b.shiftKey, this.axis),
					h = d(a.width) && e.maxWidth && e.maxWidth < a.width,
					i = d(a.height) && e.maxHeight && e.maxHeight < a.height,
					j = d(a.width) && e.minWidth && e.minWidth > a.width,
					k = d(a.height) && e.minHeight && e.minHeight > a.height;
				j && (a.width = e.minWidth), k && (a.height = e.minHeight), h && (a.width = e.maxWidth), i && (a.height = e.maxHeight);
				var l = this.originalPosition.left + this.originalSize.width,
					m = this.position.top + this.size.height,
					n = /sw|nw|w/.test(g),
					o = /nw|ne|n/.test(g);
				j && n && (a.left = l - e.minWidth), h && n && (a.left = l - e.maxWidth), k && o && (a.top = m - e.minHeight), i && o && (a.top = m - e.maxHeight);
				var p = !a.width && !a.height;
				return p && !a.left && a.top ? a.top = null : p && !a.top && a.left && (a.left = null), a
			},
			_proportionallyResize: function() {
				if(this.options, this._proportionallyResizeElements.length) for(var c = this.helper || this.element, d = 0; this._proportionallyResizeElements.length > d; d++) {
					var e = this._proportionallyResizeElements[d];
					if(!this.borderDif) {
						var f = [e.css("borderTopWidth"), e.css("borderRightWidth"), e.css("borderBottomWidth"), e.css("borderLeftWidth")],
							g = [e.css("paddingTop"), e.css("paddingRight"), e.css("paddingBottom"), e.css("paddingLeft")];
						this.borderDif = a.map(f, function(a, b) {
							var c = parseInt(a, 10) || 0,
								d = parseInt(g[b], 10) || 0;
							return c + d
						})
					}
					a.browser.msie && (a(c).is(":hidden") || a(c).parents(":hidden").length) || e.css({
						height: c.height() - this.borderDif[0] - this.borderDif[2] || 0,
						width: c.width() - this.borderDif[1] - this.borderDif[3] || 0
					})
				}
			},
			_renderProxy: function() {
				var b = this.element,
					c = this.options;
				if(this.elementOffset = b.offset(), this._helper) {
					this.helper = this.helper || a('<div style="overflow:hidden;"></div>');
					var d = a.browser.msie && 7 > a.browser.version,
						e = d ? 1 : 0,
						f = d ? 2 : -1;
					this.helper.addClass(this._helper).css({
						width: this.element.outerWidth() + f,
						height: this.element.outerHeight() + f,
						position: "absolute",
						left: this.elementOffset.left - e + "px",
						top: this.elementOffset.top - e + "px",
						zIndex: ++c.zIndex
					}), this.helper.appendTo("body").disableSelection()
				} else this.helper = this.element
			},
			_change: {
				e: function(a, b) {
					return {
						width: this.originalSize.width + b
					}
				},
				w: function(a, b) {
					var e = (this.options, this.originalSize),
						f = this.originalPosition;
					return {
						left: f.left + b,
						width: e.width - b
					}
				},
				n: function(a, b, c) {
					var e = (this.options, this.originalSize),
						f = this.originalPosition;
					return {
						top: f.top + c,
						height: e.height - c
					}
				},
				s: function(a, b, c) {
					return {
						height: this.originalSize.height + c
					}
				},
				se: function(b, c, d) {
					return a.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [b, c, d]))
				},
				sw: function(b, c, d) {
					return a.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [b, c, d]))
				},
				ne: function(b, c, d) {
					return a.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [b, c, d]))
				},
				nw: function(b, c, d) {
					return a.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [b, c, d]))
				}
			},
			_propagate: function(b, c) {
				a.ui.plugin.call(this, b, [c, this.ui()]), "resize" != b && this._trigger(b, c, 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
				}
			}
		}), a.extend(a.ui.resizable, {
			version: "1.8.21"
		}), a.ui.plugin.add("resizable", "alsoResize", {
			start: function() {
				var d = a(this).data("resizable"),
					e = d.options,
					f = function(b) {
						a(b).each(function() {
							var b = a(this);
							b.data("resizable-alsoresize", {
								width: parseInt(b.width(), 10),
								height: parseInt(b.height(), 10),
								left: parseInt(b.css("left"), 10),
								top: parseInt(b.css("top"), 10)
							})
						})
					};
				"object" != typeof e.alsoResize || e.alsoResize.parentNode ? f(e.alsoResize) : e.alsoResize.length ? (e.alsoResize = e.alsoResize[0], f(e.alsoResize)) : a.each(e.alsoResize, function(a) {
					f(a)
				})
			},
			resize: function(b, c) {
				var d = a(this).data("resizable"),
					e = d.options,
					f = d.originalSize,
					g = d.originalPosition,
					h = {
						height: d.size.height - f.height || 0,
						width: d.size.width - f.width || 0,
						top: d.position.top - g.top || 0,
						left: d.position.left - g.left || 0
					},
					i = function(b, d) {
						a(b).each(function() {
							var b = a(this),
								e = a(this).data("resizable-alsoresize"),
								f = {},
								g = d && d.length ? d : b.parents(c.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"];
							a.each(g, function(a, b) {
								var c = (e[b] || 0) + (h[b] || 0);
								c && c >= 0 && (f[b] = c || null)
							}), b.css(f)
						})
					};
				"object" != typeof e.alsoResize || e.alsoResize.nodeType ? i(e.alsoResize) : a.each(e.alsoResize, function(a, b) {
					i(a, b)
				})
			},
			stop: function() {
				a(this).removeData("resizable-alsoresize")
			}
		}), a.ui.plugin.add("resizable", "animate", {
			stop: function(b) {
				var d = a(this).data("resizable"),
					e = d.options,
					f = d._proportionallyResizeElements,
					g = f.length && /textarea/i.test(f[0].nodeName),
					h = g && a.ui.hasScroll(f[0], "left") ? 0 : d.sizeDiff.height,
					i = g ? 0 : d.sizeDiff.width,
					j = {
						width: d.size.width - i,
						height: d.size.height - h
					},
					k = parseInt(d.element.css("left"), 10) + (d.position.left - d.originalPosition.left) || null,
					l = parseInt(d.element.css("top"), 10) + (d.position.top - d.originalPosition.top) || null;
				d.element.animate(a.extend(j, l && k ? {
					top: l,
					left: k
				} : {}), {
					duration: e.animateDuration,
					easing: e.animateEasing,
					step: function() {
						var c = {
							width: parseInt(d.element.css("width"), 10),
							height: parseInt(d.element.css("height"), 10),
							top: parseInt(d.element.css("top"), 10),
							left: parseInt(d.element.css("left"), 10)
						};
						f && f.length && a(f[0]).css({
							width: c.width,
							height: c.height
						}), d._updateCache(c), d._propagate("resize", b)
					}
				})
			}
		}), a.ui.plugin.add("resizable", "containment", {
			start: function() {
				var e = a(this).data("resizable"),
					f = e.options,
					g = e.element,
					h = f.containment,
					i = h instanceof a ? h.get(0) : /parent/.test(h) ? g.parent().get(0) : h;
				if(i) if(e.containerElement = a(i), /document/.test(h) || h == document) e.containerOffset = {
					left: 0,
					top: 0
				}, e.containerPosition = {
					left: 0,
					top: 0
				}, e.parentData = {
					element: a(document),
					left: 0,
					top: 0,
					width: a(document).width(),
					height: a(document).height() || document.body.parentNode.scrollHeight
				};
				else {
					var j = a(i),
						k = [];
					a(["Top", "Right", "Left", "Bottom"]).each(function(a, b) {
						k[a] = c(j.css("padding" + b))
					}), e.containerOffset = j.offset(), e.containerPosition = j.position(), e.containerSize = {
						height: j.innerHeight() - k[3],
						width: j.innerWidth() - k[1]
					};
					var l = e.containerOffset,
						m = e.containerSize.height,
						n = e.containerSize.width,
						o = a.ui.hasScroll(i, "left") ? i.scrollWidth : n,
						p = a.ui.hasScroll(i) ? i.scrollHeight : m;
					e.parentData = {
						element: i,
						left: l.left,
						top: l.top,
						width: o,
						height: p
					}
				}
			},
			resize: function(b) {
				var d = a(this).data("resizable"),
					e = d.options,
					g = (d.containerSize, d.containerOffset),
					i = (d.size, d.position),
					j = d._aspectRatio || b.shiftKey,
					k = {
						top: 0,
						left: 0
					},
					l = d.containerElement;
				l[0] != document && /static/.test(l.css("position")) && (k = g), i.left < (d._helper ? g.left : 0) && (d.size.width = d.size.width + (d._helper ? d.position.left - g.left : d.position.left - k.left), j && (d.size.height = d.size.width / d.aspectRatio), d.position.left = e.helper ? g.left : 0), i.top < (d._helper ? g.top : 0) && (d.size.height = d.size.height + (d._helper ? d.position.top - g.top : d.position.top), j && (d.size.width = d.size.height * d.aspectRatio), d.position.top = d._helper ? g.top : 0), d.offset.left = d.parentData.left + d.position.left, d.offset.top = d.parentData.top + d.position.top;
				var m = Math.abs((d._helper ? d.offset.left - k.left : d.offset.left - k.left) + d.sizeDiff.width),
					n = Math.abs((d._helper ? d.offset.top - k.top : d.offset.top - g.top) + d.sizeDiff.height),
					o = d.containerElement.get(0) == d.element.parent().get(0),
					p = /relative|absolute/.test(d.containerElement.css("position"));
				o && p && (m -= d.parentData.left), m + d.size.width >= d.parentData.width && (d.size.width = d.parentData.width - m, j && (d.size.height = d.size.width / d.aspectRatio)), n + d.size.height >= d.parentData.height && (d.size.height = d.parentData.height - n, j && (d.size.width = d.size.height * d.aspectRatio))
			},
			stop: function() {
				var d = a(this).data("resizable"),
					e = d.options,
					g = (d.position, d.containerOffset),
					h = d.containerPosition,
					i = d.containerElement,
					j = a(d.helper),
					k = j.offset(),
					l = j.outerWidth() - d.sizeDiff.width,
					m = j.outerHeight() - d.sizeDiff.height;
				d._helper && !e.animate && /relative/.test(i.css("position")) && a(this).css({
					left: k.left - h.left - g.left,
					width: l,
					height: m
				}), d._helper && !e.animate && /static/.test(i.css("position")) && a(this).css({
					left: k.left - h.left - g.left,
					width: l,
					height: m
				})
			}
		}), a.ui.plugin.add("resizable", "ghost", {
			start: function() {
				var d = a(this).data("resizable"),
					e = d.options,
					f = d.size;
				d.ghost = d.originalElement.clone(), d.ghost.css({
					opacity: .25,
					display: "block",
					position: "relative",
					height: f.height,
					width: f.width,
					margin: 0,
					left: 0,
					top: 0
				}).addClass("ui-resizable-ghost").addClass("string" == typeof e.ghost ? e.ghost : ""), d.ghost.appendTo(d.helper)
			},
			resize: function() {
				var d = a(this).data("resizable");
				d.options, d.ghost && d.ghost.css({
					position: "relative",
					height: d.size.height,
					width: d.size.width
				})
			},
			stop: function() {
				var d = a(this).data("resizable");
				d.options, d.ghost && d.helper && d.helper.get(0).removeChild(d.ghost.get(0))
			}
		}), a.ui.plugin.add("resizable", "grid", {
			resize: function(b) {
				var d = a(this).data("resizable"),
					e = d.options,
					f = d.size,
					g = d.originalSize,
					h = d.originalPosition,
					i = d.axis;
				e._aspectRatio || b.shiftKey, e.grid = "number" == typeof e.grid ? [e.grid, e.grid] : e.grid;
				var k = Math.round((f.width - g.width) / (e.grid[0] || 1)) * (e.grid[0] || 1),
					l = Math.round((f.height - g.height) / (e.grid[1] || 1)) * (e.grid[1] || 1);
				/^(se|s|e)$/.test(i) ? (d.size.width = g.width + k, d.size.height = g.height + l) : /^(ne)$/.test(i) ? (d.size.width = g.width + k, d.size.height = g.height + l, d.position.top = h.top - l) : /^(sw)$/.test(i) ? (d.size.width = g.width + k, d.size.height = g.height + l, d.position.left = h.left - k) : (d.size.width = g.width + k, d.size.height = g.height + l, d.position.top = h.top - l, d.position.left = h.left - k)
			}
		});
		var c = function(a) {
				return parseInt(a, 10) || 0
			},
			d = function(a) {
				return !isNaN(parseInt(a, 10))
			}
	}(jQuery), function(a) {
		a.widget("ui.selectable", a.ui.mouse, {
			options: {
				appendTo: "body",
				autoRefresh: !0,
				distance: 0,
				filter: "*",
				tolerance: "touch"
			},
			_create: function() {
				var b = this;
				this.element.addClass("ui-selectable"), this.dragged = !1;
				var c;
				this.refresh = function() {
					c = a(b.options.filter, b.element[0]), c.addClass("ui-selectee"), c.each(function() {
						var b = a(this),
							c = b.offset();
						a.data(this, "selectable-item", {
							element: this,
							$element: b,
							left: c.left,
							top: c.top,
							right: c.left + b.outerWidth(),
							bottom: c.top + b.outerHeight(),
							startselected: !1,
							selected: b.hasClass("ui-selected"),
							selecting: b.hasClass("ui-selecting"),
							unselecting: b.hasClass("ui-unselecting")
						})
					})
				}, this.refresh(), this.selectees = c.addClass("ui-selectee"), this._mouseInit(), this.helper = a("<div class='ui-selectable-helper'></div>")
			},
			destroy: function() {
				return this.selectees.removeClass("ui-selectee").removeData("selectable-item"), this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"), this._mouseDestroy(), this
			},
			_mouseStart: function(b) {
				var c = this;
				if(this.opos = [b.pageX, b.pageY], !this.options.disabled) {
					var d = this.options;
					this.selectees = a(d.filter, this.element[0]), this._trigger("start", b), a(d.appendTo).append(this.helper), this.helper.css({
						left: b.clientX,
						top: b.clientY,
						width: 0,
						height: 0
					}), d.autoRefresh && this.refresh(), this.selectees.filter(".ui-selected").each(function() {
						var d = a.data(this, "selectable-item");
						d.startselected = !0, !b.metaKey && !b.ctrlKey && (d.$element.removeClass("ui-selected"), d.selected = !1, d.$element.addClass("ui-unselecting"), d.unselecting = !0, c._trigger("unselecting", b, {
							unselecting: d.element
						}))
					}), a(b.target).parents().andSelf().each(function() {
						var d = a.data(this, "selectable-item");
						if(d) {
							var e = !b.metaKey && !b.ctrlKey || !d.$element.hasClass("ui-selected");
							return d.$element.removeClass(e ? "ui-unselecting" : "ui-selected").addClass(e ? "ui-selecting" : "ui-unselecting"), d.unselecting = !e, d.selecting = e, d.selected = e, e ? c._trigger("selecting", b, {
								selecting: d.element
							}) : c._trigger("unselecting", b, {
								unselecting: d.element
							}), !1
						}
					})
				}
			},
			_mouseDrag: function(b) {
				var c = this;
				if(this.dragged = !0, !this.options.disabled) {
					var d = this.options,
						e = this.opos[0],
						f = this.opos[1],
						g = b.pageX,
						h = b.pageY;
					if(e > g) {
						var i = g;
						g = e, e = i
					}
					if(f > h) {
						var i = h;
						h = f, f = i
					}
					return this.helper.css({
						left: e,
						top: f,
						width: g - e,
						height: h - f
					}), this.selectees.each(function() {
						var i = a.data(this, "selectable-item");
						if(i && i.element != c.element[0]) {
							var j = !1;
							"touch" == d.tolerance ? j = !(i.left > g || e > i.right || i.top > h || f > i.bottom) : "fit" == d.tolerance && (j = i.left > e && g > i.right && i.top > f && h > i.bottom), j ? (i.selected && (i.$element.removeClass("ui-selected"), i.selected = !1), i.unselecting && (i.$element.removeClass("ui-unselecting"), i.unselecting = !1), i.selecting || (i.$element.addClass("ui-selecting"), i.selecting = !0, c._trigger("selecting", b, {
								selecting: i.element
							}))) : (i.selecting && ((b.metaKey || b.ctrlKey) && i.startselected ? (i.$element.removeClass("ui-selecting"), i.selecting = !1, i.$element.addClass("ui-selected"), i.selected = !0) : (i.$element.removeClass("ui-selecting"), i.selecting = !1, i.startselected && (i.$element.addClass("ui-unselecting"), i.unselecting = !0), c._trigger("unselecting", b, {
								unselecting: i.element
							}))), i.selected && !b.metaKey && !b.ctrlKey && !i.startselected && (i.$element.removeClass("ui-selected"), i.selected = !1, i.$element.addClass("ui-unselecting"), i.unselecting = !0, c._trigger("unselecting", b, {
								unselecting: i.element
							})))
						}
					}), !1
				}
			},
			_mouseStop: function(b) {
				var c = this;
				return this.dragged = !1, this.options, a(".ui-unselecting", this.element[0]).each(function() {
					var d = a.data(this, "selectable-item");
					d.$element.removeClass("ui-unselecting"), d.unselecting = !1, d.startselected = !1, c._trigger("unselected", b, {
						unselected: d.element
					})
				}), a(".ui-selecting", this.element[0]).each(function() {
					var d = a.data(this, "selectable-item");
					d.$element.removeClass("ui-selecting").addClass("ui-selected"), d.selecting = !1, d.selected = !0, d.startselected = !0, c._trigger("selected", b, {
						selected: d.element
					})
				}), this._trigger("stop", b), this.helper.remove(), !1
			}
		}), a.extend(a.ui.selectable, {
			version: "1.8.21"
		})
	}(jQuery), function(a) {
		a.widget("ui.sortable", a.ui.mouse, {
			widgetEventPrefix: "sort",
			ready: !1,
			options: {
				appendTo: "parent",
				axis: !1,
				connectWith: !1,
				containment: !1,
				cursor: "auto",
				cursorAt: !1,
				dropOnEmpty: !0,
				forcePlaceholderSize: !1,
				forceHelperSize: !1,
				grid: !1,
				handle: !1,
				helper: "original",
				items: "> *",
				opacity: !1,
				placeholder: !1,
				revert: !1,
				scroll: !0,
				scrollSensitivity: 20,
				scrollSpeed: 20,
				scope: "default",
				tolerance: "intersect",
				zIndex: 1e3
			},
			_create: function() {
				var a = this.options;
				this.containerCache = {}, this.element.addClass("ui-sortable"), this.refresh(), this.floating = this.items.length ? "x" === a.axis || /left|right/.test(this.items[0].item.css("float")) || /inline|table-cell/.test(this.items[0].item.css("display")) : !1, this.offset = this.element.offset(), this._mouseInit(), this.ready = !0
			},
			destroy: function() {
				a.Widget.prototype.destroy.call(this), this.element.removeClass("ui-sortable ui-sortable-disabled"), this._mouseDestroy();
				for(var b = this.items.length - 1; b >= 0; b--) this.items[b].item.removeData(this.widgetName + "-item");
				return this
			},
			_setOption: function(b, c) {
				"disabled" === b ? (this.options[b] = c, this.widget()[c ? "addClass" : "removeClass"]("ui-sortable-disabled")) : a.Widget.prototype._setOption.apply(this, arguments)
			},
			_mouseCapture: function(b, c) {
				var d = this;
				if(this.reverting) return !1;
				if(this.options.disabled || "static" == this.options.type) return !1;
				this._refreshItems(b);
				var e = null,
					f = this;
				if(a(b.target).parents().each(function() {
					return a.data(this, d.widgetName + "-item") == f ? (e = a(this), !1) : void 0
				}), a.data(b.target, d.widgetName + "-item") == f && (e = a(b.target)), !e) return !1;
				if(this.options.handle && !c) {
					var h = !1;
					if(a(this.options.handle, e).find("*").andSelf().each(function() {
						this == b.target && (h = !0)
					}), !h) return !1
				}
				return this.currentItem = e, this._removeCurrentsFromItems(), !0
			},
			_mouseStart: function(b, c, d) {
				var e = this.options,
					f = this;
				if(this.currentContainer = this, this.refreshPositions(), this.helper = this._createHelper(b), 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
				}, a.extend(this.offset, {
					click: {
						left: b.pageX - this.offset.left,
						top: b.pageY - this.offset.top
					},
					parent: this._getParentOffset(),
					relative: this._getRelativeOffset()
				}), this.helper.css("position", "absolute"), this.cssPosition = this.helper.css("position"), this.originalPosition = this._generatePosition(b), this.originalPageX = b.pageX, this.originalPageY = b.pageY, e.cursorAt && this._adjustOffsetFromHelper(e.cursorAt), this.domPosition = {
					prev: this.currentItem.prev()[0],
					parent: this.currentItem.parent()[0]
				}, this.helper[0] != this.currentItem[0] && this.currentItem.hide(), this._createPlaceholder(), e.containment && this._setContainment(), e.cursor && (a("body").css("cursor") && (this._storedCursor = a("body").css("cursor")), a("body").css("cursor", e.cursor)), e.opacity && (this.helper.css("opacity") && (this._storedOpacity = this.helper.css("opacity")), this.helper.css("opacity", e.opacity)), e.zIndex && (this.helper.css("zIndex") && (this._storedZIndex = this.helper.css("zIndex")), this.helper.css("zIndex", e.zIndex)), this.scrollParent[0] != document && "HTML" != this.scrollParent[0].tagName && (this.overflowOffset = this.scrollParent.offset()), this._trigger("start", b, this._uiHash()), this._preserveHelperProportions || this._cacheHelperProportions(), !d) for(var g = this.containers.length - 1; g >= 0; g--) this.containers[g]._trigger("activate", b, f._uiHash(this));
				return a.ui.ddmanager && (a.ui.ddmanager.current = this), a.ui.ddmanager && !e.dropBehaviour && a.ui.ddmanager.prepareOffsets(this, b), this.dragging = !0, this.helper.addClass("ui-sortable-helper"), this._mouseDrag(b), !0
			},
			_mouseDrag: function(b) {
				if(this.position = this._generatePosition(b), this.positionAbs = this._convertPositionTo("absolute"), this.lastPositionAbs || (this.lastPositionAbs = this.positionAbs), this.options.scroll) {
					var c = this.options,
						d = !1;
					this.scrollParent[0] != document && "HTML" != this.scrollParent[0].tagName ? (this.overflowOffset.top + this.scrollParent[0].offsetHeight - b.pageY < c.scrollSensitivity ? this.scrollParent[0].scrollTop = d = this.scrollParent[0].scrollTop + c.scrollSpeed : b.pageY - this.overflowOffset.top < c.scrollSensitivity && (this.scrollParent[0].scrollTop = d = this.scrollParent[0].scrollTop - c.scrollSpeed), this.overflowOffset.left + this.scrollParent[0].offsetWidth - b.pageX < c.scrollSensitivity ? this.scrollParent[0].scrollLeft = d = this.scrollParent[0].scrollLeft + c.scrollSpeed : b.pageX - this.overflowOffset.left < c.scrollSensitivity && (this.scrollParent[0].scrollLeft = d = this.scrollParent[0].scrollLeft - c.scrollSpeed)) : (b.pageY - a(document).scrollTop() < c.scrollSensitivity ? d = a(document).scrollTop(a(document).scrollTop() - c.scrollSpeed) : a(window).height() - (b.pageY - a(document).scrollTop()) < c.scrollSensitivity && (d = a(document).scrollTop(a(document).scrollTop() + c.scrollSpeed)), b.pageX - a(document).scrollLeft() < c.scrollSensitivity ? d = a(document).scrollLeft(a(document).scrollLeft() - c.scrollSpeed) : a(window).width() - (b.pageX - a(document).scrollLeft()) < c.scrollSensitivity && (d = a(document).scrollLeft(a(document).scrollLeft() + c.scrollSpeed))), d !== !1 && a.ui.ddmanager && !c.dropBehaviour && a.ui.ddmanager.prepareOffsets(this, b)
				}
				this.positionAbs = this._convertPositionTo("absolute"), this.options.axis && "y" == this.options.axis || (this.helper[0].style.left = this.position.left + "px"), this.options.axis && "x" == this.options.axis || (this.helper[0].style.top = this.position.top + "px");
				for(var e = this.items.length - 1; e >= 0; e--) {
					var f = this.items[e],
						g = f.item[0],
						h = this._intersectsWithPointer(f);
					if(h && g != this.currentItem[0] && this.placeholder[1 == h ? "next" : "prev"]()[0] != g && !a.ui.contains(this.placeholder[0], g) && ("semi-dynamic" == this.options.type ? !a.ui.contains(this.element[0], g) : !0)) {
						if(this.direction = 1 == h ? "down" : "up", "pointer" != this.options.tolerance && !this._intersectsWithSides(f)) break;
						this._rearrange(b, f), this._trigger("change", b, this._uiHash());
						break
					}
				}
				return this._contactContainers(b), a.ui.ddmanager && a.ui.ddmanager.drag(this, b), this._trigger("sort", b, this._uiHash()), this.lastPositionAbs = this.positionAbs, !1
			},
			_mouseStop: function(b, c) {
				if(b) {
					if(a.ui.ddmanager && !this.options.dropBehaviour && a.ui.ddmanager.drop(this, b), this.options.revert) {
						var d = this,
							e = d.placeholder.offset();
						d.reverting = !0, a(this.helper).animate({
							left: e.left - this.offset.parent.left - d.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft),
							top: e.top - this.offset.parent.top - d.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)
						}, parseInt(this.options.revert, 10) || 500, function() {
							d._clear(b)
						})
					} else this._clear(b, c);
					return !1
				}
			},
			cancel: function() {
				var b = this;
				if(this.dragging) {
					this._mouseUp({
						target: null
					}), "original" == this.options.helper ? this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") : this.currentItem.show();
					for(var c = this.containers.length - 1; c >= 0; c--) this.containers[c]._trigger("deactivate", null, b._uiHash(this)), this.containers[c].containerCache.over && (this.containers[c]._trigger("out", null, b._uiHash(this)), this.containers[c].containerCache.over = 0)
				}
				return this.placeholder && (this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]), "original" != this.options.helper && this.helper && this.helper[0].parentNode && this.helper.remove(), a.extend(this, {
					helper: null,
					dragging: !1,
					reverting: !1,
					_noFinalSort: null
				}), this.domPosition.prev ? a(this.domPosition.prev).after(this.currentItem) : a(this.domPosition.parent).prepend(this.currentItem)), this
			},
			serialize: function(b) {
				var c = this._getItemsAsjQuery(b && b.connected),
					d = [];
				return b = b || {}, a(c).each(function() {
					var c = (a(b.item || this).attr(b.attribute || "id") || "").match(b.expression || /(.+)[-=_](.+)/);
					c && d.push((b.key || c[1] + "[]") + "=" + (b.key && b.expression ? c[1] : c[2]))
				}), !d.length && b.key && d.push(b.key + "="), d.join("&")
			},
			toArray: function(b) {
				var c = this._getItemsAsjQuery(b && b.connected),
					d = [];
				return b = b || {}, c.each(function() {
					d.push(a(b.item || this).attr(b.attribute || "id") || "")
				}), d
			},
			_intersectsWith: function(a) {
				var b = this.positionAbs.left,
					c = b + this.helperProportions.width,
					d = this.positionAbs.top,
					e = d + this.helperProportions.height,
					f = a.left,
					g = f + a.width,
					h = a.top,
					i = h + a.height,
					j = this.offset.click.top,
					k = this.offset.click.left,
					l = d + j > h && i > d + j && b + k > f && g > b + k;
				return "pointer" == this.options.tolerance || this.options.forcePointerForContainers || "pointer" != this.options.tolerance && this.helperProportions[this.floating ? "width" : "height"] > a[this.floating ? "width" : "height"] ? l : b + this.helperProportions.width / 2 > f && g > c - this.helperProportions.width / 2 && d + this.helperProportions.height / 2 > h && i > e - this.helperProportions.height / 2
			},
			_intersectsWithPointer: function(b) {
				var c = "x" === this.options.axis || a.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, b.top, b.height),
					d = "y" === this.options.axis || a.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, b.left, b.width),
					e = c && d,
					f = this._getDragVerticalDirection(),
					g = this._getDragHorizontalDirection();
				return e ? this.floating ? g && "right" == g || "down" == f ? 2 : 1 : f && ("down" == f ? 2 : 1) : !1
			},
			_intersectsWithSides: function(b) {
				var c = a.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, b.top + b.height / 2, b.height),
					d = a.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, b.left + b.width / 2, b.width),
					e = this._getDragVerticalDirection(),
					f = this._getDragHorizontalDirection();
				return this.floating && f ? "right" == f && d || "left" == f && !d : e && ("down" == e && c || "up" == e && !c)
			},
			_getDragVerticalDirection: function() {
				var a = this.positionAbs.top - this.lastPositionAbs.top;
				return 0 != a && (a > 0 ? "down" : "up")
			},
			_getDragHorizontalDirection: function() {
				var a = this.positionAbs.left - this.lastPositionAbs.left;
				return 0 != a && (a > 0 ? "right" : "left")
			},
			refresh: function(a) {
				return this._refreshItems(a), this.refreshPositions(), this
			},
			_connectWith: function() {
				var a = this.options;
				return a.connectWith.constructor == String ? [a.connectWith] : a.connectWith
			},
			_getItemsAsjQuery: function(b) {
				var d = [],
					e = [],
					f = this._connectWith();
				if(f && b) for(var g = f.length - 1; g >= 0; g--) for(var h = a(f[g]), i = h.length - 1; i >= 0; i--) {
					var j = a.data(h[i], this.widgetName);
					j && j != this && !j.options.disabled && e.push([a.isFunction(j.options.items) ? j.options.items.call(j.element) : a(j.options.items, j.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), j])
				}
				e.push([a.isFunction(this.options.items) ? this.options.items.call(this.element, null, {
					options: this.options,
					item: this.currentItem
				}) : a(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]);
				for(var g = e.length - 1; g >= 0; g--) e[g][0].each(function() {
					d.push(this)
				});
				return a(d)
			},
			_removeCurrentsFromItems: function() {
				for(var a = this.currentItem.find(":data(" + this.widgetName + "-item)"), b = 0; this.items.length > b; b++) for(var c = 0; a.length > c; c++) a[c] == this.items[b].item[0] && this.items.splice(b, 1)
			},
			_refreshItems: function(b) {
				this.items = [], this.containers = [this];
				var c = this.items,
					e = [
						[a.isFunction(this.options.items) ? this.options.items.call(this.element[0], b, {
							item: this.currentItem
						}) : a(this.options.items, this.element), this]
					],
					f = this._connectWith();
				if(f && this.ready) for(var g = f.length - 1; g >= 0; g--) for(var h = a(f[g]), i = h.length - 1; i >= 0; i--) {
					var j = a.data(h[i], this.widgetName);
					j && j != this && !j.options.disabled && (e.push([a.isFunction(j.options.items) ? j.options.items.call(j.element[0], b, {
						item: this.currentItem
					}) : a(j.options.items, j.element), j]), this.containers.push(j))
				}
				for(var g = e.length - 1; g >= 0; g--) for(var k = e[g][1], l = e[g][0], i = 0, m = l.length; m > i; i++) {
					var n = a(l[i]);
					n.data(this.widgetName + "-item", k), c.push({
						item: n,
						instance: k,
						width: 0,
						height: 0,
						left: 0,
						top: 0
					})
				}
			},
			refreshPositions: function(b) {
				this.offsetParent && this.helper && (this.offset.parent = this._getParentOffset());
				for(var c = this.items.length - 1; c >= 0; c--) {
					var d = this.items[c];
					if(d.instance == this.currentContainer || !this.currentContainer || d.item[0] == this.currentItem[0]) {
						var e = this.options.toleranceElement ? a(this.options.toleranceElement, d.item) : d.item;
						b || (d.width = e.outerWidth(), d.height = e.outerHeight());
						var f = e.offset();
						d.left = f.left, d.top = f.top
					}
				}
				if(this.options.custom && this.options.custom.refreshContainers) this.options.custom.refreshContainers.call(this);
				else for(var c = this.containers.length - 1; c >= 0; c--) {
					var f = this.containers[c].element.offset();
					this.containers[c].containerCache.left = f.left, this.containers[c].containerCache.top = f.top, this.containers[c].containerCache.width = this.containers[c].element.outerWidth(), this.containers[c].containerCache.height = this.containers[c].element.outerHeight()
				}
				return this
			},
			_createPlaceholder: function(b) {
				var c = b || this,
					d = c.options;
				if(!d.placeholder || d.placeholder.constructor == String) {
					var e = d.placeholder;
					d.placeholder = {
						element: function() {
							var b = a(document.createElement(c.currentItem[0].nodeName)).addClass(e || c.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];
							return e || (b.style.visibility = "hidden"), b
						},
						update: function(a, b) {
							(!e || d.forcePlaceholderSize) && (b.height() || b.height(c.currentItem.innerHeight() - parseInt(c.currentItem.css("paddingTop") || 0, 10) - parseInt(c.currentItem.css("paddingBottom") || 0, 10)), b.width() || b.width(c.currentItem.innerWidth() - parseInt(c.currentItem.css("paddingLeft") || 0, 10) - parseInt(c.currentItem.css("paddingRight") || 0, 10)))
						}
					}
				}
				c.placeholder = a(d.placeholder.element.call(c.element, c.currentItem)), c.currentItem.after(c.placeholder), d.placeholder.update(c, c.placeholder)
			},
			_contactContainers: function(b) {
				for(var c = null, d = null, e = this.containers.length - 1; e >= 0; e--) if(!a.ui.contains(this.currentItem[0], this.containers[e].element[0])) if(this._intersectsWith(this.containers[e].containerCache)) {
					if(c && a.ui.contains(this.containers[e].element[0], c.element[0])) continue;
					c = this.containers[e], d = e
				} else this.containers[e].containerCache.over && (this.containers[e]._trigger("out", b, this._uiHash(this)), this.containers[e].containerCache.over = 0);
				if(c) if(1 === this.containers.length) this.containers[d]._trigger("over", b, this._uiHash(this)), this.containers[d].containerCache.over = 1;
				else if(this.currentContainer != this.containers[d]) {
					for(var f = 1e4, g = null, h = this.positionAbs[this.containers[d].floating ? "left" : "top"], i = this.items.length - 1; i >= 0; i--) if(a.ui.contains(this.containers[d].element[0], this.items[i].item[0])) {
						var j = this.containers[d].floating ? this.items[i].item.offset().left : this.items[i].item.offset().top;
						f > Math.abs(j - h) && (f = Math.abs(j - h), g = this.items[i], this.direction = j - h > 0 ? "down" : "up")
					}
					if(!g && !this.options.dropOnEmpty) return;
					this.currentContainer = this.containers[d], g ? this._rearrange(b, g, null, !0) : this._rearrange(b, null, this.containers[d].element, !0), this._trigger("change", b, this._uiHash()), this.containers[d]._trigger("change", b, this._uiHash(this)), this.options.placeholder.update(this.currentContainer, this.placeholder), this.containers[d]._trigger("over", b, this._uiHash(this)), this.containers[d].containerCache.over = 1
				}
			},
			_createHelper: function(b) {
				var c = this.options,
					d = a.isFunction(c.helper) ? a(c.helper.apply(this.element[0], [b, this.currentItem])) : "clone" == c.helper ? this.currentItem.clone() : this.currentItem;
				return d.parents("body").length || a("parent" != c.appendTo ? c.appendTo : this.currentItem[0].parentNode)[0].appendChild(d[0]), d[0] == this.currentItem[0] && (this._storedCSS = {
					width: this.currentItem[0].style.width,
					height: this.currentItem[0].style.height,
					position: this.currentItem.css("position"),
					top: this.currentItem.css("top"),
					left: this.currentItem.css("left")
				}), ("" == d[0].style.width || c.forceHelperSize) && d.width(this.currentItem.width()), ("" == d[0].style.height || c.forceHelperSize) && d.height(this.currentItem.height()), d
			},
			_adjustOffsetFromHelper: function(b) {
				"string" == typeof b && (b = b.split(" ")), a.isArray(b) && (b = {
					left: +b[0],
					top: +b[1] || 0
				}), "left" in b && (this.offset.click.left = b.left + this.margins.left), "right" in b && (this.offset.click.left = this.helperProportions.width - b.right + this.margins.left), "top" in b && (this.offset.click.top = b.top + this.margins.top), "bottom" in b && (this.offset.click.top = this.helperProportions.height - b.bottom + this.margins.top)
			},
			_getParentOffset: function() {
				this.offsetParent = this.helper.offsetParent();
				var b = this.offsetParent.offset();
				return "absolute" == this.cssPosition && this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0]) && (b.left += this.scrollParent.scrollLeft(), b.top += this.scrollParent.scrollTop()), (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && "html" == this.offsetParent[0].tagName.toLowerCase() && a.browser.msie) && (b = {
					top: 0,
					left: 0
				}), {
					top: b.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
					left: b.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
				}
			},
			_getRelativeOffset: function() {
				if("relative" == this.cssPosition) {
					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()
					}
				}
				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 b = this.options;
				if("parent" == b.containment && (b.containment = this.helper[0].parentNode), ("document" == b.containment || "window" == b.containment) && (this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, a("document" == b.containment ? document : window).width() - this.helperProportions.width - this.margins.left, (a("document" == b.containment ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]), !/^(document|window|parent)$/.test(b.containment)) {
					var c = a(b.containment)[0],
						d = a(b.containment).offset(),
						e = "hidden" != a(c).css("overflow");
					this.containment = [d.left + (parseInt(a(c).css("borderLeftWidth"), 10) || 0) + (parseInt(a(c).css("paddingLeft"), 10) || 0) - this.margins.left, d.top + (parseInt(a(c).css("borderTopWidth"), 10) || 0) + (parseInt(a(c).css("paddingTop"), 10) || 0) - this.margins.top, d.left + (e ? Math.max(c.scrollWidth, c.offsetWidth) : c.offsetWidth) - (parseInt(a(c).css("borderLeftWidth"), 10) || 0) - (parseInt(a(c).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, d.top + (e ? Math.max(c.scrollHeight, c.offsetHeight) : c.offsetHeight) - (parseInt(a(c).css("borderTopWidth"), 10) || 0) - (parseInt(a(c).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top]
				}
			},
			_convertPositionTo: function(b, c) {
				c || (c = this.position);
				var d = "absolute" == b ? 1 : -1,
					f = (this.options, "absolute" != this.cssPosition || this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent),
					g = /(html|body)/i.test(f[0].tagName);
				return {
					top: c.top + this.offset.relative.top * d + this.offset.parent.top * d - (a.browser.safari && "fixed" == this.cssPosition ? 0 : ("fixed" == this.cssPosition ? -this.scrollParent.scrollTop() : g ? 0 : f.scrollTop()) * d),
					left: c.left + this.offset.relative.left * d + this.offset.parent.left * d - (a.browser.safari && "fixed" == this.cssPosition ? 0 : ("fixed" == this.cssPosition ? -this.scrollParent.scrollLeft() : g ? 0 : f.scrollLeft()) * d)
				}
			},
			_generatePosition: function(b) {
				var c = this.options,
					d = "absolute" != this.cssPosition || this.scrollParent[0] != document && a.ui.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent,
					e = /(html|body)/i.test(d[0].tagName);
				"relative" == this.cssPosition && (this.scrollParent[0] == document || this.scrollParent[0] == this.offsetParent[0]) && (this.offset.relative = this._getRelativeOffset());
				var f = b.pageX,
					g = b.pageY;
				if(this.originalPosition && (this.containment && (b.pageX - this.offset.click.left < this.containment[0] && (f = this.containment[0] + this.offset.click.left), b.pageY - this.offset.click.top < this.containment[1] && (g = this.containment[1] + this.offset.click.top), b.pageX - this.offset.click.left > this.containment[2] && (f = this.containment[2] + this.offset.click.left), b.pageY - this.offset.click.top > this.containment[3] && (g = this.containment[3] + this.offset.click.top)), c.grid)) {
					var h = this.originalPageY + Math.round((g - this.originalPageY) / c.grid[1]) * c.grid[1];
					g = this.containment ? h - this.offset.click.top < this.containment[1] || h - this.offset.click.top > this.containment[3] ? h - this.offset.click.top < this.containment[1] ? h + c.grid[1] : h - c.grid[1] : h : h;
					var i = this.originalPageX + Math.round((f - this.originalPageX) / c.grid[0]) * c.grid[0];
					f = this.containment ? i - this.offset.click.left < this.containment[0] || i - this.offset.click.left > this.containment[2] ? i - this.offset.click.left < this.containment[0] ? i + c.grid[0] : i - c.grid[0] : i : i
				}
				return {
					top: g - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (a.browser.safari && "fixed" == this.cssPosition ? 0 : "fixed" == this.cssPosition ? -this.scrollParent.scrollTop() : e ? 0 : d.scrollTop()),
					left: f - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (a.browser.safari && "fixed" == this.cssPosition ? 0 : "fixed" == this.cssPosition ? -this.scrollParent.scrollLeft() : e ? 0 : d.scrollLeft())
				}
			},
			_rearrange: function(a, b, c, d) {
				c ? c[0].appendChild(this.placeholder[0]) : b.item[0].parentNode.insertBefore(this.placeholder[0], "down" == this.direction ? b.item[0] : b.item[0].nextSibling), this.counter = this.counter ? ++this.counter : 1;
				var e = this,
					f = this.counter;
				window.setTimeout(function() {
					f == e.counter && e.refreshPositions(!d)
				}, 0)
			},
			_clear: function(b, c) {
				this.reverting = !1;
				var d = [];
				if(!this._noFinalSort && this.currentItem.parent().length && this.placeholder.before(this.currentItem), this._noFinalSort = null, this.helper[0] == this.currentItem[0]) {
					for(var f in this._storedCSS)("auto" == this._storedCSS[f] || "static" == this._storedCSS[f]) && (this._storedCSS[f] = "");
					this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")
				} else this.currentItem.show();
				if(this.fromOutside && !c && d.push(function(a) {
					this._trigger("receive", a, this._uiHash(this.fromOutside))
				}), (this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !c && d.push(function(a) {
					this._trigger("update", a, this._uiHash())
				}), !a.ui.contains(this.element[0], this.currentItem[0])) {
					c || d.push(function(a) {
						this._trigger("remove", a, this._uiHash())
					});
					for(var f = this.containers.length - 1; f >= 0; f--) a.ui.contains(this.containers[f].element[0], this.currentItem[0]) && !c && (d.push(function(a) {
						return function(b) {
							a._trigger("receive", b, this._uiHash(this))
						}
					}.call(this, this.containers[f])), d.push(function(a) {
						return function(b) {
							a._trigger("update", b, this._uiHash(this))
						}
					}.call(this, this.containers[f])))
				}
				for(var f = this.containers.length - 1; f >= 0; f--) c || d.push(function(a) {
					return function(b) {
						a._trigger("deactivate", b, this._uiHash(this))
					}
				}.call(this, this.containers[f])), this.containers[f].containerCache.over && (d.push(function(a) {
					return function(b) {
						a._trigger("out", b, this._uiHash(this))
					}
				}.call(this, this.containers[f])), this.containers[f].containerCache.over = 0);
				if(this._storedCursor && a("body").css("cursor", this._storedCursor), this._storedOpacity && this.helper.css("opacity", this._storedOpacity), this._storedZIndex && this.helper.css("zIndex", "auto" == this._storedZIndex ? "" : this._storedZIndex), this.dragging = !1, this.cancelHelperRemoval) {
					if(!c) {
						this._trigger("beforeStop", b, this._uiHash());
						for(var f = 0; d.length > f; f++) d[f].call(this, b);
						this._trigger("stop", b, this._uiHash())
					}
					return !1
				}
				if(c || this._trigger("beforeStop", b, this._uiHash()), this.placeholder[0].parentNode.removeChild(this.placeholder[0]), this.helper[0] != this.currentItem[0] && this.helper.remove(), this.helper = null, !c) {
					for(var f = 0; d.length > f; f++) d[f].call(this, b);
					this._trigger("stop", b, this._uiHash())
				}
				return this.fromOutside = !1, !0
			},
			_trigger: function() {
				a.Widget.prototype._trigger.apply(this, arguments) === !1 && this.cancel()
			},
			_uiHash: function(b) {
				var c = b || this;
				return {
					helper: c.helper,
					placeholder: c.placeholder || a([]),
					position: c.position,
					originalPosition: c.originalPosition,
					offset: c.positionAbs,
					item: c.currentItem,
					sender: b ? b.element : null
				}
			}
		}), a.extend(a.ui.sortable, {
			version: "1.8.21"
		})
	}(jQuery), function(a) {
		a.widget("ui.accordion", {
			options: {
				active: 0,
				animated: "slide",
				autoHeight: !0,
				clearStyle: !1,
				collapsible: !1,
				event: "click",
				fillSpace: !1,
				header: "> li > :first-child,> :not(li):even",
				icons: {
					header: "ui-icon-triangle-1-e",
					headerSelected: "ui-icon-triangle-1-s"
				},
				navigation: !1,
				navigationFilter: function() {
					return this.href.toLowerCase() === location.href.toLowerCase()
				}
			},
			_create: function() {
				var b = this,
					c = b.options;
				if(b.running = 0, b.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"), b.headers = b.element.find(c.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion", function() {
					c.disabled || a(this).addClass("ui-state-hover")
				}).bind("mouseleave.accordion", function() {
					c.disabled || a(this).removeClass("ui-state-hover")
				}).bind("focus.accordion", function() {
					c.disabled || a(this).addClass("ui-state-focus")
				}).bind("blur.accordion", function() {
					c.disabled || a(this).removeClass("ui-state-focus")
				}), b.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"), c.navigation) {
					var d = b.element.find("a").filter(c.navigationFilter).eq(0);
					if(d.length) {
						var e = d.closest(".ui-accordion-header");
						b.active = e.length ? e : d.closest(".ui-accordion-content").prev()
					}
				}
				b.active = b._findActive(b.active || c.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top"), b.active.next().addClass("ui-accordion-content-active"), b._createIcons(), b.resize(), b.element.attr("role", "tablist"), b.headers.attr("role", "tab").bind("keydown.accordion", function(a) {
					return b._keydown(a)
				}).next().attr("role", "tabpanel"), b.headers.not(b.active || "").attr({
					"aria-expanded": "false",
					"aria-selected": "false",
					tabIndex: -1
				}).next().hide(), b.active.length ? b.active.attr({
					"aria-expanded": "true",
					"aria-selected": "true",
					tabIndex: 0
				}) : b.headers.eq(0).attr("tabIndex", 0), a.browser.safari || b.headers.find("a").attr("tabIndex", -1), c.event && b.headers.bind(c.event.split(" ").join(".accordion ") + ".accordion", function(a) {
					b._clickHandler.call(b, a, this), a.preventDefault()
				})
			},
			_createIcons: function() {
				var b = this.options;
				b.icons && (a("<span></span>").addClass("ui-icon " + b.icons.header).prependTo(this.headers), this.active.children(".ui-icon").toggleClass(b.icons.header).toggleClass(b.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 b = this.options;
				this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"), this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"), this.headers.find("a").removeAttr("tabIndex"), this._destroyIcons();
				var c = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");
				return(b.autoHeight || b.fillHeight) && c.css("height", ""), a.Widget.prototype.destroy.call(this)
			},
			_setOption: function(b, c) {
				a.Widget.prototype._setOption.apply(this, arguments), "active" == b && this.activate(c), "icons" == b && (this._destroyIcons(), c && this._createIcons()), "disabled" == b && this.headers.add(this.headers.next())[c ? "addClass" : "removeClass"]("ui-accordion-disabled ui-state-disabled")
			},
			_keydown: function(b) {
				if(!(this.options.disabled || b.altKey || b.ctrlKey)) {
					var c = a.ui.keyCode,
						d = this.headers.length,
						e = this.headers.index(b.target),
						f = !1;
					switch(b.keyCode) {
					case c.RIGHT:
					case c.DOWN:
						f = this.headers[(e + 1) % d];
						break;
					case c.LEFT:
					case c.UP:
						f = this.headers[(e - 1 + d) % d];
						break;
					case c.SPACE:
					case c.ENTER:
						this._clickHandler({
							target: b.target
						}, b.target), b.preventDefault()
					}
					return f ? (a(b.target).attr("tabIndex", -1), a(f).attr("tabIndex", 0), f.focus(), !1) : !0
				}
			},
			resize: function() {
				var c, b = this.options;
				if(b.fillSpace) {
					if(a.browser.msie) {
						var d = this.element.parent().css("overflow");
						this.element.parent().css("overflow", "hidden")
					}
					c = this.element.parent().height(), a.browser.msie && this.element.parent().css("overflow", d), this.headers.each(function() {
						c -= a(this).outerHeight(!0)
					}), this.headers.next().each(function() {
						a(this).height(Math.max(0, c - a(this).innerHeight() + a(this).height()))
					}).css("overflow", "auto")
				} else b.autoHeight && (c = 0, this.headers.next().each(function() {
					c = Math.max(c, a(this).height("").height())
				}).height(c));
				return this
			},
			activate: function(a) {
				this.options.active = a;
				var b = this._findActive(a)[0];
				return this._clickHandler({
					target: b
				}, b), this
			},
			_findActive: function(b) {
				return b ? "number" == typeof b ? this.headers.filter(":eq(" + b + ")") : this.headers.not(this.headers.not(b)) : b === !1 ? a([]) : this.headers.filter(":eq(0)")
			},
			_clickHandler: function(b, c) {
				var d = this.options;
				if(!d.disabled) {
					if(!b.target) {
						if(!d.collapsible) return;
						this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header), this.active.next().addClass("ui-accordion-content-active");
						var e = this.active.next(),
							f = {
								options: d,
								newHeader: a([]),
								oldHeader: d.active,
								newContent: a([]),
								oldContent: e
							},
							g = this.active = a([]);
						return this._toggle(g, e, f), void 0
					}
					var h = a(b.currentTarget || c),
						i = h[0] === this.active[0];
					if(d.active = d.collapsible && i ? !1 : this.headers.index(h), !(this.running || !d.collapsible && i)) {
						var j = this.active,
							g = h.next(),
							e = this.active.next(),
							f = {
								options: d,
								newHeader: i && d.collapsible ? a([]) : h,
								oldHeader: this.active,
								newContent: i && d.collapsible ? a([]) : g,
								oldContent: e
							},
							k = this.headers.index(this.active[0]) > this.headers.index(h[0]);
						this.active = i ? a([]) : h, this._toggle(g, e, f, i, k), j.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header), i || (h.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected), h.next().addClass("ui-accordion-content-active"))
					}
				}
			},
			_toggle: function(b, c, d, e, f) {
				var g = this,
					h = g.options;
				g.toShow = b, g.toHide = c, g.data = d;
				var i = function() {
						return g ? g._completed.apply(g, arguments) : void 0
					};
				if(g._trigger("changestart", null, g.data), g.running = 0 === c.size() ? b.size() : c.size(), h.animated) {
					var j = {};
					j = h.collapsible && e ? {
						toShow: a([]),
						toHide: c,
						complete: i,
						down: f,
						autoHeight: h.autoHeight || h.fillSpace
					} : {
						toShow: b,
						toHide: c,
						complete: i,
						down: f,
						autoHeight: h.autoHeight || h.fillSpace
					}, h.proxied || (h.proxied = h.animated), h.proxiedDuration || (h.proxiedDuration = h.duration), h.animated = a.isFunction(h.proxied) ? h.proxied(j) : h.proxied, h.duration = a.isFunction(h.proxiedDuration) ? h.proxiedDuration(j) : h.proxiedDuration;
					var k = a.ui.accordion.animations,
						l = h.duration,
						m = h.animated;
					m && !k[m] && !a.easing[m] && (m = "slide"), k[m] || (k[m] = function(a) {
						this.slide(a, {
							easing: m,
							duration: l || 700
						})
					}), k[m](j)
				} else h.collapsible && e ? b.toggle() : (c.hide(), b.show()), i(!0);
				c.prev().attr({
					"aria-expanded": "false",
					"aria-selected": "false",
					tabIndex: -1
				}).blur(), b.prev().attr({
					"aria-expanded": "true",
					"aria-selected": "true",
					tabIndex: 0
				}).focus()
			},
			_completed: function(a) {
				this.running = a ? 0 : --this.running, this.running || (this.options.clearStyle && this.toShow.add(this.toHide).css({
					height: "",
					overflow: ""
				}), this.toHide.removeClass("ui-accordion-content-active"), this.toHide.length && (this.toHide.parent()[0].className = this.toHide.parent()[0].className), this._trigger("change", null, this.data))
			}
		}), a.extend(a.ui.accordion, {
			version: "1.8.21",
			animations: {
				slide: function(b, c) {
					if(b = a.extend({
						easing: "swing",
						duration: 300
					}, b, c), !b.toHide.size()) return b.toShow.animate({
						height: "show",
						paddingTop: "show",
						paddingBottom: "show"
					}, b), void 0;
					if(!b.toShow.size()) return b.toHide.animate({
						height: "hide",
						paddingTop: "hide",
						paddingBottom: "hide"
					}, b), void 0;
					var i, d = b.toShow.css("overflow"),
						e = 0,
						f = {},
						g = {},
						h = ["height", "paddingTop", "paddingBottom"],
						j = b.toShow;
					i = j[0].style.width, j.width(j.parent().width() - parseFloat(j.css("paddingLeft")) - parseFloat(j.css("paddingRight")) - (parseFloat(j.css("borderLeftWidth")) || 0) - (parseFloat(j.css("borderRightWidth")) || 0)), a.each(h, function(c, d) {
						g[d] = "hide";
						var e = ("" + a.css(b.toShow[0], d)).match(/^([\d+-.]+)(.*)$/);
						f[d] = {
							value: e[1],
							unit: e[2] || "px"
						}
					}), b.toShow.css({
						height: 0,
						overflow: "hidden"
					}).show(), b.toHide.filter(":hidden").each(b.complete).end().filter(":visible").animate(g, {
						step: function(a, c) {
							"height" == c.prop && (e = 0 === c.end - c.start ? 0 : (c.now - c.start) / (c.end - c.start)), b.toShow[0].style[c.prop] = e * f[c.prop].value + f[c.prop].unit
						},
						duration: b.duration,
						easing: b.easing,
						complete: function() {
							b.autoHeight || b.toShow.css("height", ""), b.toShow.css({
								width: i,
								overflow: d
							}), b.complete()
						}
					})
				},
				bounceslide: function(a) {
					this.slide(a, {
						easing: a.down ? "easeOutBounce" : "swing",
						duration: a.down ? 1e3 : 200
					})
				}
			}
		})
	}(jQuery), function(a) {
		var c = 0;
		a.widget("ui.autocomplete", {
			options: {
				appendTo: "body",
				autoFocus: !1,
				delay: 300,
				minLength: 1,
				position: {
					my: "left top",
					at: "left bottom",
					collision: "none"
				},
				source: null
			},
			pending: 0,
			_create: function() {
				var d, b = this,
					c = this.element[0].ownerDocument;
				this.isMultiLine = 
this.element.is("textarea"), this.element.addClass("ui-autocomplete-input").attr("autocomplete", "off").attr({
 					role: "textbox",
					"aria-autocomplete": "list",
					"aria-haspopup": "true"
				}).bind("keydown.autocomplete", function(c) {
					if(!b.options.disabled && !b.element.propAttr("readOnly")) {
						d = !1;
						var e = a.ui.keyCode;
						switch(c.keyCode) {
						case e.PAGE_UP:
							b._move("previousPage", c);
							break;
						case e.PAGE_DOWN:
							b._move("nextPage", c);
							break;
						case e.UP:
							b._keyEvent("previous", c);
							break;
						case e.DOWN:
							b._keyEvent("next", c);
							break;
						case e.ENTER:
						case e.NUMPAD_ENTER:
							b.menu.active && (d = !0, c.preventDefault());
						case e.TAB:
							if(!b.menu.active) return;
							b.menu.select(c);
							break;
						case e.ESCAPE:
							b.element.val(b.term), b.close(c);
							break;
						default:
							clearTimeout(b.searching), b.searching = setTimeout(function() {
								b.term != b.element.val() && (b.selectedItem = null, b.search(null, c))
							}, b.options.delay)
						}
					}
				}).bind("keypress.autocomplete", function(a) {
					d && (d = !1, a.preventDefault())
				}).bind("focus.autocomplete", function() {
					b.options.disabled || (b.selectedItem = null, b.previous = b.element.val())
				}).bind("blur.autocomplete", function(a) {
					b.options.disabled || (clearTimeout(b.searching), b.closing = setTimeout(function() {
						b.close(a), b._change(a)
					}, 150))
				}), this._initSource(), this.menu = a("<ul></ul>").addClass("ui-autocomplete").appendTo(a(this.options.appendTo || "body", c)[0]).mousedown(function(c) {
					var d = b.menu.element[0];
					a(c.target).closest(".ui-menu-item").length || setTimeout(function() {
						a(document).one("mousedown", function(c) {
							c.target !== b.element[0] && c.target !== d && !a.ui.contains(d, c.target) && b.close()
						})
					}, 1), setTimeout(function() {
						clearTimeout(b.closing)
					}, 13)
				}).menu({
					focus: function(a, c) {
						var d = c.item.data("item.autocomplete");
						!1 !== b._trigger("focus", a, {
							item: d
						}) && /^key/.test(a.originalEvent.type) && b.element.val(d.value)
					},
					selected: function(a, d) {
						var e = d.item.data("item.autocomplete"),
							f = b.previous;
						b.element[0] !== c.activeElement && (b.element.focus(), b.previous = f, setTimeout(function() {
							b.previous = f, b.selectedItem = e
						}, 1)), !1 !== b._trigger("select", a, {
							item: e
						}) && b.element.val(e.value), b.term = b.element.val(), b.close(a), b.selectedItem = e
					},
					blur: function() {
					}
				}).zIndex(this.element.zIndex() + 1).css({
					top: 0,
					left: 0
				}).hide().data("menu"), a.fn.bgiframe && this.menu.element.bgiframe(), b.beforeunloadHandler = function() {
					b.element.removeAttr("autocomplete")
				}, a(window).bind("beforeunload", b.beforeunloadHandler)
			},
			destroy: function() {
				this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"), this.menu.element.remove(), a(window).unbind("beforeunload", this.beforeunloadHandler), a.Widget.prototype.destroy.call(this)
			},
			_setOption: function(b, c) {
				a.Widget.prototype._setOption.apply(this, arguments), "source" === b && this._initSource(), "appendTo" === b && this.menu.element.appendTo(a(c || "body", this.element[0].ownerDocument)[0]), "disabled" === b && c && this.xhr && this.xhr.abort()
			},
			_initSource: function() {
				var c, d, b = this;
				a.isArray(this.options.source) ? (c = this.options.source, this.source = function(b, d) {
					d(a.ui.autocomplete.filter(c, b.term))
				}) : "string" == typeof this.options.source ? (d = this.options.source, this.source = function(c, e) {
					b.xhr && b.xhr.abort(), b.xhr = a.ajax({
						url: d,
						data: c,
						dataType: "json",
						success: function(a) {
							e(a)
						},
						error: function() {
							e([])
						}
					})
				}) : this.source = this.options.source
			},
			search: function(a, b) {
				return a = null != a ? a : this.element.val(), this.term = this.element.val(), a.length < this.options.minLength ? this.close(b) : (clearTimeout(this.closing), this._trigger("search", b) !== !1 ? this._search(a) : void 0)
			},
			_search: function(a) {
				this.pending++, this.element.addClass("ui-autocomplete-loading"), this.source({
					term: a
				}, this._response())
			},
			_response: function() {
				var a = this,
					b = ++c;
				return function(d) {
					b === c && a.__response(d), a.pending--, a.pending || a.element.removeClass("ui-autocomplete-loading")
				}
			},
			__response: function(a) {
				!this.options.disabled && a && a.length ? (a = this._normalize(a), this._suggest(a), this._trigger("open")) : this.close()
			},
			close: function(a) {
				clearTimeout(this.closing), 
this.menu.element.is(":visible") && (this.menu.element.hide(), this.menu.deactivate(), this._trigger("close", a))
 			},
			_change: function(a) {
				this.previous !== this.element.val() && this._trigger("change", a, {
					item: this.selectedItem
				})
			},
			_normalize: function(b) {
				return b.length && b[0].label && b[0].value ? b : a.map(b, function(b) {
					return "string" == typeof b ? {
						label: b,
						value: b
					} : a.extend({
						label: b.label || b.value,
						value: b.value || b.label
					}, b)
				})
			},
			_suggest: function(b) {
				var c = this.menu.element.empty().zIndex(this.element.zIndex() + 1);
				this._renderMenu(c, b), this.menu.deactivate(), this.menu.refresh(), c.show(), this._resizeMenu(), c.position(a.extend({
					of: this.element
				}, this.options.position)), this.options.autoFocus && this.menu.next(new a.Event("mouseover"))
			},
			_resizeMenu: function() {
				var a = this.menu.element;
				a.outerWidth(Math.max(a.width("").outerWidth() + 1, this.element.outerWidth()))
			},
			_renderMenu: function(b, c) {
				var d = this;
				a.each(c, function(a, c) {
					d._renderItem(b, c)
				})
			},
			_renderItem: function(b, c) {
				return a("<li></li>").data("item.autocomplete", c).append(a("<a></a>").text(c.label)).appendTo(b)
			},
			_move: function(a, b) {
				return 
this.menu.element.is(":visible") ? this.menu.first() && /^previous/.test(a) || this.menu.last() && /^next/.test(a) ? (this.element.val(this.term), this.menu.deactivate(), void 0) : (this.menu[a](b), void 0) : (this.search(null, b), void 0)
 			},
			widget: function() {
				return this.menu.element
			},
			_keyEvent: function(a, b) {
			}
		}), a.extend(a.ui.autocomplete, {
			escapeRegex: function(a) {
				return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")
			},
			filter: function(b, c) {
				var d = new RegExp(a.ui.autocomplete.escapeRegex(c), "i");
				return a.grep(b, function(a) {
					return d.test(a.label || a.value || a)
				})
			}
		})
	}(jQuery), function(a) {
		a.widget("ui.menu", {
			_create: function() {
				var b = 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) {
					a(c.target).closest(".ui-menu-item a").length && (c.preventDefault(), b.select(c))
				}), this.refresh()
			},
			refresh: function() {
				var b = this,
					c = this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role", "menuitem");
				c.children("a").addClass("ui-corner-all").attr("tabindex", -1).mouseenter(function(c) {
					b.activate(c, a(this).parent())
				}).mouseleave(function() {
					b.deactivate()
				})
			},
			activate: function(a, b) {
				if(this.deactivate(), this.hasScroll()) {
					var c = b.offset().top - this.element.offset().top,
						d = this.element.scrollTop(),
						e = this.element.height();
					0 > c ? this.element.scrollTop(d + c) : c >= e && this.element.scrollTop(d + c - e + b.height())
				}
				this.active = b.eq(0).children("a").addClass("ui-state-hover").attr("id", "ui-active-menuitem").end(), this._trigger("focus", a, {
					item: b
				})
			},
			deactivate: function() {
				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.prevAll(".ui-menu-item").length
			},
			last: function() {
				return this.active && !this.active.nextAll(".ui-menu-item").length
			},
			move: function(a, b, c) {
				if(!this.active) return this.activate(c, this.element.children(b)), void 0;
				var d = this.active[a + "All"](".ui-menu-item").eq(0);
				d.length ? this.activate(c, d) : this.activate(c, this.element.children(b))
			},
			nextPage: function(b) {
				if(this.hasScroll()) {
					if(!this.active || this.last()) return this.activate(b, this.element.children(".ui-menu-item:first")), void 0;
					var c = this.active.offset().top,
						d = this.element.height(),
						e = this.element.children(".ui-menu-item").filter(function() {
							var b = a(this).offset().top - c - d + a(this).height();
							return 10 > b && b > -10
						});
					e.length || (e = this.element.children(".ui-menu-item:last")), this.activate(b, e)
				} else this.activate(b, this.element.children(".ui-menu-item").filter(!this.active || this.last() ? ":first" : ":last"))
			},
			previousPage: function(b) {
				if(this.hasScroll()) {
					if(!this.active || this.first()) return this.activate(b, this.element.children(".ui-menu-item:last")), void 0;
					var c = this.active.offset().top,
						d = this.element.height(),
						e = this.element.children(".ui-menu-item").filter(function() {
							var b = a(this).offset().top - c + d - a(this).height();
							return 10 > b && b > -10
						});
					e.length || (e = this.element.children(".ui-menu-item:first")), this.activate(b, e)
				} else this.activate(b, this.element.children(".ui-menu-item").filter(!this.active || this.first() ? ":last" : ":first"))
			},
			hasScroll: function() {
				return this.element.height() < this.element[a.fn.prop ? "prop" : "attr"]("scrollHeight")
			},
			select: function(a) {
				this._trigger("selected", a, {
					item: this.active
				})
			}
		})
	}(jQuery), function(a) {
		var c, d, e, f, g = "ui-button ui-widget ui-state-default ui-corner-all",
			h = "ui-state-hover ui-state-active ",
			i = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",
			j = function() {
				var b = a(this).find(":ui-button");
				setTimeout(function() {
					b.button("refresh")
				}, 1)
			},
			k = function(b) {
					d = b.form,
					e = a([]);
				return c && (e = d ? a(d).find("[name='" + c + "']") : a("[name='" + c + "']", b.ownerDocument).filter(function() {
					return !this.form
				})), e
			};
		a.widget("ui.button", {
			options: {
				disabled: null,
				text: !0,
				label: null,
				icons: {
					primary: null,
					secondary: null
				}
			},
			_create: function() {
				this.element.closest("form").unbind("reset.button").bind("reset.button", j), "boolean" != typeof this.options.disabled ? this.options.disabled = !! this.element.propAttr("disabled") : this.element.propAttr("disabled", this.options.disabled), this._determineButtonType(), this.hasTitle = !! this.buttonElement.attr("title");
				var b = this,
					h = this.options,
					i = "checkbox" === this.type || "radio" === this.type,
					l = "ui-state-hover" + (i ? "" : " ui-state-active"),
					m = "ui-state-focus";
				null === h.label && (h.label = this.buttonElement.html()), this.buttonElement.addClass(g).attr("role", "button").bind("mouseenter.button", function() {
					h.disabled || (a(this).addClass("ui-state-hover"), this === c && a(this).addClass("ui-state-active"))
				}).bind("mouseleave.button", function() {
					h.disabled || a(this).removeClass(l)
				}).bind("click.button", function(a) {
					h.disabled && (a.preventDefault(), a.stopImmediatePropagation())
				}), this.element.bind("focus.button", function() {
					b.buttonElement.addClass(m)
				}).bind("blur.button", function() {
					b.buttonElement.removeClass(m)
				}), i && (this.element.bind("change.button", function() {
					f || b.refresh()
				}), this.buttonElement.bind("mousedown.button", function(a) {
					h.disabled || (f = !1, d = a.pageX, e = a.pageY)
				}).bind("mouseup.button", function(a) {
					h.disabled || (d !== a.pageX || e !== a.pageY) && (f = !0)
				})), "checkbox" === this.type ? this.buttonElement.bind("click.button", function() {
					return h.disabled || f ? !1 : (a(this).toggleClass("ui-state-active"), b.buttonElement.attr("aria-pressed", b.element[0].checked), void 0)
				}) : "radio" === this.type ? this.buttonElement.bind("click.button", function() {
					if(h.disabled || f) return !1;
					a(this).addClass("ui-state-active"), b.buttonElement.attr("aria-pressed", "true");
					var c = b.element[0];
					k(c).not(c).map(function() {
						return a(this).button("widget")[0]
					}).removeClass("ui-state-active").attr("aria-pressed", "false")
				}) : (this.buttonElement.bind("mousedown.button", function() {
					return h.disabled ? !1 : (a(this).addClass("ui-state-active"), c = this, a(document).one("mouseup", function() {
						c = null
					}), void 0)
				}).bind("mouseup.button", function() {
					return h.disabled ? !1 : (a(this).removeClass("ui-state-active"), void 0)
				}).bind("keydown.button", function(b) {
					return h.disabled ? !1 : ((b.keyCode == 
a.ui.keyCode.SPACE || b.keyCode == a.ui.keyCode.ENTER) && a(this).addClass("ui-state-active"), void 0)
 				}).bind("keyup.button", function() {
					a(this).removeClass("ui-state-active")
				})), this._setOption("disabled", h.disabled), this._resetButton()
			},
			_determineButtonType: function() {
					var a = this.element.parents().filter(":last"),
						b = "label[for='" + this.element.attr("id") + "']";
					this.buttonElement = a.find(b), this.buttonElement.length || (a = a.length ? a.siblings() : this.element.siblings(), this.buttonElement = a.filter(b), this.buttonElement.length || (this.buttonElement = a.find(b))), this.element.addClass("ui-helper-hidden-accessible");
					c && this.buttonElement.addClass("ui-state-active"), this.buttonElement.attr("aria-pressed", c)
				} else this.buttonElement = this.element
			},
			widget: function() {
				return this.buttonElement
			},
			destroy: function() {
				this.element.removeClass("ui-helper-hidden-accessible"), this.buttonElement.removeClass(g + " " + h + " " + i).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) {
				return a.Widget.prototype._setOption.apply(this, arguments), "disabled" === b ? (c ? this.element.propAttr("disabled", !0) : this.element.propAttr("disabled", !1), void 0) : (this._resetButton(), void 0)
			},
			refresh: function() {
				b !== this.options.disabled && this._setOption("disabled", b), "radio" === this.type ? k(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")
				}) : "checkbox" === this.type && (
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("input" === this.type) return this.options.label && this.element.val(this.options.label), void 0;
				var b = this.buttonElement.removeClass(i),
					c = a("<span></span>", this.element[0].ownerDocument).addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),
					d = this.options.icons,
					e = d.primary && d.secondary,
					f = [];
				d.primary || d.secondary ? (this.options.text && f.push("ui-button-text-icon" + (e ? "s" : d.primary ? "-primary" : "-secondary")), 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>"), this.options.text || (f.push(e ? "ui-button-icons-only" : "ui-button-icon-only"), this.hasTitle || b.attr("title", c))) : f.push("ui-button-text-only"), b.addClass(f.join(" "))
			}
		}), a.widget("ui.buttonset", {
			options: {
				items: ":button, :submit, :reset, :checkbox, :radio, a, :data(button)"
			},
			_create: function() {
				this.element.addClass("ui-buttonset")
			},
			_init: function() {
				this.refresh()
			},
			_setOption: function(b, c) {
				"disabled" === b && this.buttons.button("option", b, c), a.Widget.prototype._setOption.apply(this, arguments)
			},
			refresh: function() {
				var b = "rtl" === this.element.css("direction");
				this.buttons = this.element.find(this.options.items).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(b ? "ui-corner-right" : "ui-corner-left").end().filter(":last").addClass(b ? "ui-corner-left" : "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), function(a, b) {
		var c = "ui-dialog ui-widget ui-widget-content ui-corner-all ",
			d = {
				buttons: !0,
				height: !0,
				maxHeight: !0,
				maxWidth: !0,
				minHeight: !0,
				minWidth: !0,
				width: !0
			},
			e = {
				maxHeight: !0,
				maxWidth: !0,
				minHeight: !0,
				minWidth: !0
			},
			f = a.attrFn || {
				val: !0,
				css: !0,
				html: !0,
				text: !0,
				data: !0,
				width: !0,
				height: !0,
				offset: !0,
				click: !0
			};
		a.widget("ui.dialog", {
			options: {
				autoOpen: !0,
				buttons: {},
				closeOnEscape: !0,
				closeText: "close",
				dialogClass: "",
				draggable: !0,
				hide: null,
				height: "auto",
				maxHeight: !1,
				maxWidth: !1,
				minHeight: 150,
				minWidth: 150,
				modal: !1,
				position: {
					my: "center",
					at: "center",
					collision: "fit",
					using: function(b) {
						var c = a(this).css(b).offset().top;
						0 > c && a(this).css("top", b.top - c)
					}
				},
				resizable: !0,
				show: null,
				stack: !0,
				title: "",
				width: 300,
				zIndex: 1e3
			},
			_create: function() {
				this.originalTitle = this.element.attr("title"), "string" != typeof this.originalTitle && (this.originalTitle = ""), this.options.title = this.options.title || this.originalTitle;
				var b = this,
					d = b.options,
					e = d.title || " ",
					f = a.ui.dialog.getTitleId(b.element),
					g = (b.uiDialog = a("<div></div>")).appendTo(document.body).hide().addClass(c + d.dialogClass).css({
						zIndex: d.zIndex
					}).attr("tabIndex", -1).css("outline", 0).keydown(function(c) {
						d.closeOnEscape && !c.isDefaultPrevented() && c.keyCode && c.keyCode === a.ui.keyCode.ESCAPE && (b.close(c), c.preventDefault())
					}).attr({
						role: "dialog",
						"aria-labelledby": f
					}).mousedown(function(a) {
						b.moveToTop(!1, a)
					}),
					i = (b.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g), (b.uiDialogTitlebar = a("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g)),
					j = a('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", "button").hover(function() {
						j.addClass("ui-state-hover")
					}, function() {
						j.removeClass("ui-state-hover")
					}).focus(function() {
						j.addClass("ui-state-focus")
					}).blur(function() {
						j.removeClass("ui-state-focus")
					}).click(function(a) {
						return b.close(a), !1
					}).appendTo(i);
				(b.uiDialogTitlebarCloseText = a("<span></span>")).addClass("ui-icon ui-icon-closethick").text(d.closeText).appendTo(j), a("<span></span>").addClass("ui-dialog-title").attr("id", f).html(e).prependTo(i), a.isFunction(d.beforeclose) && !a.isFunction(d.beforeClose) && (d.beforeClose = d.beforeclose), i.find("*").add(i).disableSelection(), d.draggable && a.fn.draggable && b._makeDraggable(), d.resizable && a.fn.resizable && b._makeResizable(), b._createButtons(d.buttons), b._isOpen = !1, a.fn.bgiframe && g.bgiframe()
			},
			_init: function() {
				this.options.autoOpen && this.open()
			},
			destroy: function() {
				var a = this;
				return 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), a
			},
			widget: function() {
				return this.uiDialog
			},
			close: function(b) {
				var d, e, c = this;
				if(!1 !== c._trigger("beforeClose", b)) return c.overlay && c.overlay.destroy(), c.uiDialog.unbind("keypress.ui-dialog"), c._isOpen = !1, c.options.hide ? c.uiDialog.hide(c.options.hide, function() {
					c._trigger("close", b)
				}) : (c.uiDialog.hide(), c._trigger("close", b)), a.ui.dialog.overlay.resize(), c.options.modal && (d = 0, a(".ui-dialog").each(function() {
					this !== c.uiDialog[0] && (e = a(this).css("z-index"), isNaN(e) || (d = Math.max(d, e)))
				}), a.ui.dialog.maxZ = d), c
			},
			isOpen: function() {
				return this._isOpen
			},
			moveToTop: function(b, c) {
				var f, d = this,
					e = d.options;
				return e.modal && !b || !e.stack && !e.modal ? d._trigger("focus", c) : (e.zIndex > a.ui.dialog.maxZ && (a.ui.dialog.maxZ = e.zIndex), d.overlay && (a.ui.dialog.maxZ += 1, d.overlay.$el.css("z-index", a.ui.dialog.overlay.maxZ = a.ui.dialog.maxZ)), f = {
					scrollTop: d.element.scrollTop(),
					scrollLeft: d.element.scrollLeft()
				}, a.ui.dialog.maxZ += 1, d.uiDialog.css("z-index", a.ui.dialog.maxZ), d.element.attr(f), d._trigger("focus", c), d)
			},
			open: function() {
				if(!this._isOpen) {
					var b = this,
						c = b.options,
						d = b.uiDialog;
					return b.overlay = c.modal ? new a.ui.dialog.overlay(b) : null, b._size(), b._position(c.position), d.show(c.show), b.moveToTop(!0), c.modal && d.bind("keydown.ui-dialog", function(b) {
						if(b.keyCode === a.ui.keyCode.TAB) {
							var c = a(":tabbable", this),
								d = c.filter(":first"),
								e = c.filter(":last");
							return b.target !== e[0] || b.shiftKey ? b.target === d[0] && b.shiftKey ? (e.focus(1), !1) : void 0 : (d.focus(1), !1)
						}
					}), a(b.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus(), b._isOpen = !0, b._trigger("open"), b
				}
			},
			_createButtons: function(b) {
				var c = this,
					d = !1,
					e = a("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),
					g = a("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);
				c.uiDialog.find(".ui-dialog-buttonpane").remove(), "object" == typeof b && null !== b && a.each(b, function() {
					return !(d = !0)
				}), d && (a.each(b, function(b, d) {
					d = a.isFunction(d) ? {
						click: d,
						text: b
					} : d;
					var e = a('<button type="button"></button>').click(function() {
						d.click.apply(c.element[0], arguments)
					}).appendTo(g);
					a.each(d, function(a, b) {
						"click" !== a && (a in f ? e[a](b) : e.attr(a, b))
					}), a.fn.button && e.button()
				}), e.appendTo(c.uiDialog))
			},
			_makeDraggable: function() {
				function b(a) {
					return {
						position: a.position,
						offset: a.offset
					}
				}
				var f, c = this,
					d = c.options,
					e = a(document);
				c.uiDialog.draggable({
					cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
					handle: ".ui-dialog-titlebar",
					containment: "document",
					start: function(e, g) {
						f = "auto" === d.height ? "auto" : a(this).height(), a(this).height(a(this).height()).addClass("ui-dialog-dragging"), c._trigger("dragStart", e, b(g))
					},
					drag: function(a, d) {
						c._trigger("drag", a, b(d))
					},
					stop: function(g, h) {
						d.position = [h.position.left - e.scrollLeft(), h.position.top - e.scrollTop()], a(this).removeClass("ui-dialog-dragging").height(f), c._trigger("dragStop", g, b(h)), a.ui.dialog.overlay.resize()
					}
				})
			},
			_makeResizable: function(c) {
				function d(a) {
					return {
						originalPosition: a.originalPosition,
						originalSize: a.originalSize,
						position: a.position,
						size: a.size
					}
				}
				c = c === b ? this.options.resizable : c;
				var e = this,
					f = e.options,
					g = e.uiDialog.css("position"),
					h = "string" == typeof c ? c : "n,e,s,w,se,sw,ne,nw";
				e.uiDialog.resizable({
					cancel: ".ui-dialog-content",
					containment: "document",
					alsoResize: e.element,
					maxWidth: f.maxWidth,
					maxHeight: f.maxHeight,
					minWidth: f.minWidth,
					minHeight: e._minHeight(),
					handles: h,
					start: function(b, c) {
						a(this).addClass("ui-dialog-resizing"), e._trigger("resizeStart", b, d(c))
					},
					resize: function(a, b) {
						e._trigger("resize", a, d(b))
					},
					stop: function(b, c) {
						a(this).removeClass("ui-dialog-resizing"), f.height = a(this).height(), f.width = a(this).width(), e._trigger("resizeStop", b, d(c)), a.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 "auto" === a.height ? a.minHeight : Math.min(a.minHeight, a.height)
			},
			_position: function(b) {
				var e, c = [],
					d = [0, 0];
				b ? (("string" == typeof b || "object" == typeof b && "0" in b) && (c = b.split ? b.split(" ") : [b[0], b[1]], 1 === c.length && (c[1] = c[0]), a.each(["left", "top"], function(a, b) {
					+c[a] === c[a] && (d[a] = c[a], c[a] = b)
				}), b = {
					my: c.join(" "),
					at: c.join(" "),
					offset: d.join(" ")
				}), b = a.extend({}, a.ui.dialog.prototype.options.position, b)) : b = a.ui.dialog.prototype.options.position, e = 
this.uiDialog.is(":visible"), e || this.uiDialog.show(), this.uiDialog.css({
 					top: 0,
					left: 0
				}).position(a.extend({
					of: window
				}, b)), e || this.uiDialog.hide()
			},
			_setOptions: function(b) {
				var c = this,
					f = {},
					g = !1;
				a.each(b, function(a, b) {
					c._setOption(a, b), a in d && (g = !0), a in e && (f[a] = b)
				}), g && this._size(), 
this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", f)
 			},
			_setOption: function(b, d) {
				var e = this,
					f = e.uiDialog;
				switch(b) {
				case "beforeclose":
					b = "beforeClose";
					break;
				case "buttons":
					e._createButtons(d);
					break;
				case "closeText":
					e.uiDialogTitlebarCloseText.text("" + d);
					break;
				case "dialogClass":
					f.removeClass(e.options.dialogClass).addClass(c + d);
					break;
				case "disabled":
					d ? f.addClass("ui-dialog-disabled") : f.removeClass("ui-dialog-disabled");
					break;
				case "draggable":
					var g = 
f.is(":data(draggable)");
 					g && !d && f.draggable("destroy"), !g && d && e._makeDraggable();
					break;
				case "position":
					e._position(d);
					break;
				case "resizable":
					var h = 
f.is(":data(resizable)");
 					h && !d && f.resizable("destroy"), h && "string" == typeof d && f.resizable("option", "handles", d), !h && d !== !1 && e._makeResizable(d);
					break;
				case "title":
					a(".ui-dialog-title", e.uiDialogTitlebar).html("" + (d || " "))
				}
				a.Widget.prototype._setOption.apply(e, arguments)
			},
			_size: function() {
				var c, d, b = this.options,
				if(this.element.show().css({
					width: "auto",
					minHeight: 0,
					height: 0
				}), b.minWidth > b.width && (b.width = b.minWidth), c = this.uiDialog.css({
					height: "auto",
					width: b.width
				}).height(), d = Math.max(0, b.minHeight - c), "auto" === b.height) if(a.support.minHeight) this.element.css({
					minHeight: d,
					height: "auto"
				});
				else {
					this.uiDialog.show();
					var f = this.element.css("height", "auto").height();
					e || this.uiDialog.hide(), this.element.height(Math.max(f, d))
				} else this.element.height(Math.max(b.height - c, 0));
				this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", "minHeight", this._minHeight())
 			}
		}), a.extend(a.ui.dialog, {
			version: "1.8.21",
			uuid: 0,
			maxZ: 0,
			getTitleId: function(a) {
				var b = a.attr("id");
				return b || (this.uuid += 1, b = this.uuid), "ui-dialog-title-" + b
			},
			overlay: function(b) {
				this.$el = a.ui.dialog.overlay.create(b)
			}
		}), a.extend(a.ui.dialog.overlay, {
			instances: [],
			oldInstances: [],
			maxZ: 0,
			events: a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","), function(a) {
				return a + ".dialog-overlay"
			}).join(" "),
			create: function(b) {
				0 === this.instances.length && (setTimeout(function() {
					a.ui.dialog.overlay.instances.length && a(document).bind(a.ui.dialog.overlay.events, function(b) {
						return a(b.target).zIndex() < a.ui.dialog.overlay.maxZ ? !1 : void 0
					})
				}, 1), a(document).bind("keydown.dialog-overlay", function(c) {
					b.options.closeOnEscape && !c.isDefaultPrevented() && c.keyCode && c.keyCode === a.ui.keyCode.ESCAPE && (b.close(c), c.preventDefault())
				}), a(window).bind("resize.dialog-overlay", a.ui.dialog.overlay.resize));
				var c = (this.oldInstances.pop() || a("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({
					width: this.width(),
					height: this.height()
				});
				return a.fn.bgiframe && c.bgiframe(), this.instances.push(c), c
			},
			destroy: function(b) {
				var c = a.inArray(b, this.instances); - 1 != c && this.oldInstances.push(this.instances.splice(c, 1)[0]), 0 === this.instances.length && a([document, window]).unbind(".dialog-overlay"), b.remove();
				var d = 0;
				a.each(this.instances, function() {
					d = Math.max(d, this.css("z-index"))
				}), this.maxZ = d
			},
			height: function() {
				var b, c;
				return a.browser.msie && 7 > a.browser.version ? (b = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight), c = Math.max(document.documentElement.offsetHeight, document.body.offsetHeight), c > b ? a(window).height() + "px" : b + "px") : a(document).height() + "px"
			},
			width: function() {
				var b, c;
				return a.browser.msie ? (b = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth), c = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth), c > b ? a(window).width() + "px" : b + "px") : a(document).width() + "px"
			},
			resize: function() {
				var b = a([]);
				a.each(a.ui.dialog.overlay.instances, function() {
					b = b.add(this)
				}), b.css({
					width: 0,
					height: 0
				}).css({
					width: a.ui.dialog.overlay.width(),
					height: a.ui.dialog.overlay.height()
				})
			}
		}), a.extend(a.ui.dialog.overlay.prototype, {
			destroy: function() {
				a.ui.dialog.overlay.destroy(this.$el)
			}
		})
	}(jQuery), function(a) {
		var c = 5;
		a.widget("ui.slider", a.ui.mouse, {
			widgetEventPrefix: "slide",
			options: {
				animate: !1,
				distance: 0,
				max: 100,
				min: 0,
				orientation: "horizontal",
				range: !1,
				step: 1,
				value: 0,
				values: null
			},
			_create: function() {
				var b = this,
					d = this.options,
					e = this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),
					f = "<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",
					g = d.values && d.values.length || 1,
					h = [];
				this._keySliding = !1, this._mouseSliding = !1, this._animateOff = !0, this._handleIndex = null, this._detectOrientation(), this._mouseInit(), this.element.addClass("ui-slider ui-slider-" + this.orientation + " ui-widget" + " ui-widget-content" + " ui-corner-all" + (d.disabled ? " ui-slider-disabled ui-disabled" : "")), this.range = a([]), d.range && (d.range === !0 && (d.values || (d.values = [this._valueMin(), this._valueMin()]), d.values.length && 2 !== d.values.length && (d.values = [d.values[0], d.values[0]])), this.range = a("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header" + ("min" === d.range || "max" === d.range ? " ui-slider-range-" + d.range : "")));
				for(var i = e.length; g > i; i += 1) h.push(f);
				this.handles = e.add(a(h.join("")).appendTo(b.element)), this.handle = this.handles.eq(0), this.handles.add(this.range).filter("a").click(function(a) {
					a.preventDefault()
				}).hover(function() {
					d.disabled || a(this).addClass("ui-state-hover")
				}, function() {
					a(this).removeClass("ui-state-hover")
				}).focus(function() {
					d.disabled ? a(this).blur() : (a(".ui-slider .ui-state-focus").removeClass("ui-state-focus"), a(this).addClass("ui-state-focus"))
				}).blur(function() {
					a(this).removeClass("ui-state-focus")
				}), this.handles.each(function(b) {
					a(this).data("index.ui-slider-handle", b)
				}), this.handles.keydown(function(d) {
					var f, g, h, i, e = a(this).data("index.ui-slider-handle");
					if(!b.options.disabled) {
						switch(d.keyCode) {
						case a.ui.keyCode.HOME:
						case a.ui.keyCode.END:
						case a.ui.keyCode.PAGE_UP:
						case a.ui.keyCode.PAGE_DOWN:
						case a.ui.keyCode.UP:
						case a.ui.keyCode.RIGHT:
						case a.ui.keyCode.DOWN:
						case a.ui.keyCode.LEFT:
							if(d.preventDefault(), !b._keySliding && (b._keySliding = !0, a(this).addClass("ui-state-active"), f = b._start(d, e), f === !1)) return
						}
						switch(i = b.options.step, g = h = b.options.values && b.options.values.length ? b.values(e) : b.value(), d.keyCode) {
						case a.ui.keyCode.HOME:
							h = b._valueMin();
							break;
						case a.ui.keyCode.END:
							h = b._valueMax();
							break;
						case a.ui.keyCode.PAGE_UP:
							h = b._trimAlignValue(g + (b._valueMax() - b._valueMin()) / c);
							break;
						case a.ui.keyCode.PAGE_DOWN:
							h = b._trimAlignValue(g - (b._valueMax() - b._valueMin()) / c);
							break;
						case a.ui.keyCode.UP:
						case a.ui.keyCode.RIGHT:
							if(g === b._valueMax()) return;
							h = b._trimAlignValue(g + i);
							break;
						case a.ui.keyCode.DOWN:
						case a.ui.keyCode.LEFT:
							if(g === b._valueMin()) return;
							h = b._trimAlignValue(g - i)
						}
						b._slide(d, e, h)
					}
				}).keyup(function(c) {
					var d = a(this).data("index.ui-slider-handle");
					b._keySliding && (b._keySliding = !1, b._stop(c, d), b._change(c, d), a(this).removeClass("ui-state-active"))
				}), this._refreshValue(), this._animateOff = !1
			},
			destroy: function() {
				return 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(), this
			},
			_mouseCapture: function(b) {
				var d, e, f, g, h, i, j, k, l, c = this.options;
				return c.disabled ? !1 : (this.elementSize = {
					width: this.element.outerWidth(),
					height: this.element.outerHeight()
				}, this.elementOffset = this.element.offset(), d = {
					x: b.pageX,
					y: b.pageY
				}, e = this._normValueFromMouse(d), f = this._valueMax() - this._valueMin() + 1, h = this, this.handles.each(function(b) {
					var c = Math.abs(e - h.values(b));
					f > c && (f = c, g = a(this), i = b)
				}), c.range === !0 && this.values(1) === c.min && (i += 1, g = a(this.handles[i])), j = this._start(b, i), j === !1 ? !1 : (this._mouseSliding = !0, h._handleIndex = i, g.addClass("ui-state-active").focus(), k = g.offset(), l = !a(b.target).parents().andSelf().is(".ui-slider-handle"), this._clickOffset = l ? {
					left: 0,
					top: 0
				} : {
					left: b.pageX - k.left - g.width() / 2,
					top: b.pageY - k.top - g.height() / 2 - (parseInt(g.css("borderTopWidth"), 10) || 0) - (parseInt(g.css("borderBottomWidth"), 10) || 0) + (parseInt(g.css("marginTop"), 10) || 0)
				}, this.handles.hasClass("ui-state-hover") || this._slide(b, i, e), this._animateOff = !0, !0))
			},
			_mouseStart: function() {
				return !0
			},
			_mouseDrag: function(a) {
				var b = {
					x: a.pageX,
					y: a.pageY
				},
					c = this._normValueFromMouse(b);
				return this._slide(a, this._handleIndex, c), !1
			},
			_mouseStop: function(a) {
				return this.handles.removeClass("ui-state-active"), this._mouseSliding = !1, this._stop(a, this._handleIndex), this._change(a, this._handleIndex), this._handleIndex = null, this._clickOffset = null, this._animateOff = !1, !1
			},
			_detectOrientation: function() {
				this.orientation = "vertical" === this.options.orientation ? "vertical" : "horizontal"
			},
			_normValueFromMouse: function(a) {
				var b, c, d, e, f;
				return "horizontal" === this.orientation ? (b = this.elementSize.width, c = a.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)) : (b = this.elementSize.height, c = a.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)), d = c / b, d > 1 && (d = 1), 0 > d && (d = 0), "vertical" === this.orientation && (d = 1 - d), e = this._valueMax() - this._valueMin(), f = this._valueMin() + d * e, this._trimAlignValue(f)
			},
			_start: function(a, b) {
				var c = {
					handle: this.handles[b],
					value: this.value()
				};
				return this.options.values && this.options.values.length && (c.value = this.values(b), c.values = this.values()), this._trigger("start", a, c)
			},
			_slide: function(a, b, c) {
				var d, e, f;
				this.options.values && this.options.values.length ? (d = this.values(b ? 0 : 1), 2 === this.options.values.length && this.options.range === !0 && (0 === b && c > d || 1 === b && d > c) && (c = d), c !== this.values(b) && (e = this.values(), e[b] = c, f = this._trigger("slide", a, {
					handle: this.handles[b],
					value: c,
					values: e
				}), d = this.values(b ? 0 : 1), f !== !1 && this.values(b, c, !0))) : c !== this.value() && (f = this._trigger("slide", a, {
					handle: this.handles[b],
					value: c
				}), f !== !1 && this.value(c))
			},
			_stop: function(a, b) {
				var c = {
					handle: this.handles[b],
					value: this.value()
				};
				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()
					};
					this.options.values && this.options.values.length && (c.value = this.values(b), c.values = this.values()), this._trigger("change", a, c)
				}
			},
			value: function(a) {
				return arguments.length ? (this.options.value = this._trimAlignValue(a), this._refreshValue(), this._change(null, 0), void 0) : this._value()
			},
			values: function(b, c) {
				var d, e, f;
				if(arguments.length > 1) return this.options.values[b] = this._trimAlignValue(c), this._refreshValue(), this._change(null, b), void 0;
				if(!arguments.length) return this._values();
				if(!a.isArray(arguments[0])) return this.options.values && this.options.values.length ? this._values(b) : this.value();
				for(d = this.options.values, e = arguments[0], f = 0; d.length > f; f += 1) d[f] = this._trimAlignValue(e[f]), this._change(null, f);
				this._refreshValue()
			},
			_setOption: function(b, c) {
				var d, e = 0;
				switch(a.isArray(this.options.values) && (e = this.options.values.length), a.Widget.prototype._setOption.apply(this, arguments), b) {
				case "disabled":
					c ? (this.handles.filter(".ui-state-focus").blur(), this.handles.removeClass("ui-state-hover"), this.handles.propAttr("disabled", !0), this.element.addClass("ui-disabled")) : (this.handles.propAttr("disabled", !1), 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 = !0, this._refreshValue(), this._change(null, 0), this._animateOff = !1;
					break;
				case "values":
					for(this._animateOff = !0, this._refreshValue(), d = 0; e > d; d += 1) this._change(null, d);
					this._animateOff = !1
				}
			},
			_value: function() {
				var a = this.options.value;
				return a = this._trimAlignValue(a)
			},
			_values: function(a) {
				var b, c, d;
				if(arguments.length) return b = this.options.values[a], b = this._trimAlignValue(b);
				for(c = this.options.values.slice(), d = 0; c.length > d; d += 1) c[d] = this._trimAlignValue(c[d]);
				return c
			},
			_trimAlignValue: function(a) {
				if(this._valueMin() >= a) return this._valueMin();
				if(a >= this._valueMax()) return this._valueMax();
				var b = this.options.step > 0 ? this.options.step : 1,
					c = (a - this._valueMin()) % b,
					d = a - c;
				return 2 * Math.abs(c) >= b && (d += c > 0 ? b : -b), parseFloat(d.toFixed(5))
			},
			_valueMin: function() {
				return this.options.min
			},
			_valueMax: function() {
				return this.options.max
			},
			_refreshValue: function() {
				var f, h, i, j, k, b = this.options.range,
					c = this.options,
					d = this,
					e = this._animateOff ? !1 : c.animate,
					g = {};
				this.options.values && this.options.values.length ? this.handles.each(function(b) {
					f = 100 * ((d.values(b) - d._valueMin()) / (d._valueMax() - d._valueMin())), g["horizontal" === d.orientation ? "left" : "bottom"] = f + "%", a(this).stop(1, 1)[e ? "animate" : "css"](g, c.animate), d.options.range === !0 && ("horizontal" === d.orientation ? (0 === b && d.range.stop(1, 1)[e ? "animate" : "css"]({
						left: f + "%"
					}, c.animate), 1 === b && d.range[e ? "animate" : "css"]({
						width: f - h + "%"
					}, {
						queue: !1,
						duration: c.animate
					})) : (0 === b && d.range.stop(1, 1)[e ? "animate" : "css"]({
						bottom: f + "%"
					}, c.animate), 1 === b && d.range[e ? "animate" : "css"]({
						height: f - h + "%"
					}, {
						queue: !1,
						duration: c.animate
					}))), h = f
				}) : (i = this.value(), j = this._valueMin(), k = this._valueMax(), f = k !== j ? 100 * ((i - j) / (k - j)) : 0, g["horizontal" === d.orientation ? "left" : "bottom"] = f + "%", this.handle.stop(1, 1)[e ? "animate" : "css"](g, c.animate), "min" === b && "horizontal" === this.orientation && this.range.stop(1, 1)[e ? "animate" : "css"]({
					width: f + "%"
				}, c.animate), "max" === b && "horizontal" === this.orientation && this.range[e ? "animate" : "css"]({
					width: 100 - f + "%"
				}, {
					queue: !1,
					duration: c.animate
				}), "min" === b && "vertical" === this.orientation && this.range.stop(1, 1)[e ? "animate" : "css"]({
					height: f + "%"
				}, c.animate), "max" === b && "vertical" === this.orientation && this.range[e ? "animate" : "css"]({
					height: 100 - f + "%"
				}, {
					queue: !1,
					duration: c.animate
				}))
			}
		}), a.extend(a.ui.slider, {
			version: "1.8.21"
		})
	}(jQuery), function(a, b) {
		function c() {
			return ++e
		}
		function d() {
			return ++f
		}
		var e = 0,
			f = 0;
		a.widget("ui.tabs", {
			options: {
				add: null,
				ajaxOptions: null,
				cache: !1,
				cookie: null,
				collapsible: !1,
				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…</em>",
				tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>"
			},
			_create: function() {
				this._tabify(!0)
			},
			_setOption: function(a, b) {
				if("selected" == a) {
					if(this.options.collapsible && b == this.options.selected) return;
					this.select(b)
				} else this.options[a] = b, this._tabify()
			},
			_tabId: function(a) {
				return a.title && a.title.replace(/\s/g, "_").replace(/[^\w\u00c0-\uFFFF-]/g, "") || this.options.idPrefix + c()
			},
			_sanitizeSelector: function(a) {
				return a.replace(/:/g, "\\:")
			},
			_cookie: function() {
				return a.cookie.apply(null, [b].concat(a.makeArray(arguments)))
			},
			_ui: function(a, b) {
				return {
					tab: a,
					panel: b,
					index: this.anchors.index(a)
				}
			},
			_cleanup: function() {
				this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function() {
					var b = a(this);
					b.html(b.data("label.tabs")).removeData("label.tabs")
				})
			},
			_tabify: function(c) {
				function d(b, c) {
					b.css("display", ""), !a.support.opacity && c.opacity && b[0].style.removeAttribute("filter")
				}
				var e = this,
					f = this.options,
					g = /^#.+/;
				this.list = this.element.find("ol,ul").eq(0), this.lis = a(" > li:has(a[href])", this.list), this.anchors = this.lis.map(function() {
					return a("a", this)[0]
				}), this.panels = a([]), this.anchors.each(function(b, c) {
					var i, d = a(c).attr("href"),
						h = d.split("#")[0];
					if(h && (h === location.toString().split("#")[0] || (i = a("base")[0]) && h === i.href) && (d = c.hash, c.href = d), g.test(d)) e.panels = e.panels.add(e.element.find(e._sanitizeSelector(d)));
					else if(d && "#" !== d) {
						a.data(c, "href.tabs", d), a.data(c, "load.tabs", d.replace(/#.*$/, ""));
						var j = e._tabId(c);
						c.href = "#" + j;
						var k = e.element.find("#" + j);
						k.length || (k = a(f.panelTemplate).attr("id", j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(e.panels[b - 1] || e.list), k.data("destroy.tabs", !0)), e.panels = e.panels.add(k)
					} else f.disabled.push(b)
				}), 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"), f.selected === b ? (location.hash && this.anchors.each(function(a, b) {
					return b.hash == location.hash ? (f.selected = a, !1) : void 0
				}), "number" != typeof f.selected && f.cookie && (f.selected = parseInt(e._cookie(), 10)), "number" != typeof f.selected && this.lis.filter(".ui-tabs-selected").length && (f.selected = this.lis.index(this.lis.filter(".ui-tabs-selected"))), f.selected = f.selected || (this.lis.length ? 0 : -1)) : null === f.selected && (f.selected = -1), f.selected = f.selected >= 0 && this.anchors[f.selected] || 0 > f.selected ? f.selected : 0, f.disabled = a.unique(f.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"), function(a) {
					return e.lis.index(a)
				}))).sort(), -1 != a.inArray(f.selected, f.disabled) && f.disabled.splice(a.inArray(f.selected, f.disabled), 1), this.panels.addClass("ui-tabs-hide"), this.lis.removeClass("ui-tabs-selected ui-state-active"), f.selected >= 0 && this.anchors.length && (e.element.find(e._sanitizeSelector(e.anchors[f.selected].hash)).removeClass("ui-tabs-hide"), this.lis.eq(f.selected).addClass("ui-tabs-selected ui-state-active"), e.element.queue("tabs", function() {
					e._trigger("show", null, e._ui(e.anchors[f.selected], e.element.find(e._sanitizeSelector(e.anchors[f.selected].hash))[0]))
				}), this.load(f.selected)), a(window).bind("unload", function() {
					e.lis.add(e.anchors).unbind(".tabs"), e.lis = e.anchors = e.panels = null
				})) : f.selected = this.lis.index(this.lis.filter(".ui-tabs-selected")), this.element[f.collapsible ? "addClass" : "removeClass"]("ui-tabs-collapsible"), f.cookie && this._cookie(f.selected, f.cookie);
				for(var i, h = 0; i = this.lis[h]; h++) a(i)[-1 == a.inArray(h, f.disabled) || a(i).hasClass("ui-tabs-selected") ? "removeClass" : "addClass"]("ui-state-disabled");
				if(f.cache === !1 && this.anchors.removeData("cache.tabs"), this.lis.add(this.anchors).unbind(".tabs"), "mouseover" !== f.event) {
					var j = function(a, b) {
							b.is(":not(.ui-state-disabled)") && b.addClass("ui-state-" + a)
 						},
						k = function(a, b) {
							b.removeClass("ui-state-" + a)
						};
					this.lis.bind("mouseover.tabs", function() {
						j("hover", a(this))
					}), this.lis.bind("mouseout.tabs", function() {
						k("hover", a(this))
					}), this.anchors.bind("focus.tabs", function() {
						j("focus", a(this).closest("li"))
					}), this.anchors.bind("blur.tabs", function() {
						k("focus", a(this).closest("li"))
					})
				}
				var l, m;
				f.fx && (a.isArray(f.fx) ? (l = f.fx[0], m = f.fx[1]) : l = m = f.fx);
				var n = m ?
				function(b, c) {
					a(b).closest("li").addClass("ui-tabs-selected ui-state-active"), c.hide().removeClass("ui-tabs-hide").animate(m, m.duration || "normal", function() {
						d(c, m), e._trigger("show", null, e._ui(b, c[0]))
					})
				} : function(b, c) {
					a(b).closest("li").addClass("ui-tabs-selected ui-state-active"), c.removeClass("ui-tabs-hide"), e._trigger("show", null, e._ui(b, c[0]))
				}, o = l ?
				function(a, b) {
					b.animate(l, l.duration || "normal", function() {
						e.lis.removeClass("ui-tabs-selected ui-state-active"), b.addClass("ui-tabs-hide"), d(b, l), e.element.dequeue("tabs")
					})
				} : function(a, b) {
					e.lis.removeClass("ui-tabs-selected ui-state-active"), b.addClass("ui-tabs-hide"), e.element.dequeue("tabs")
				};
				this.anchors.bind(f.event + ".tabs", function() {
					var b = this,
						c = a(b).closest("li"),
						d = e.panels.filter(":not(.ui-tabs-hide)"),
						g = e.element.find(e._sanitizeSelector(b.hash));
					if(c.hasClass("ui-tabs-selected") && !f.collapsible || c.hasClass("ui-state-disabled") || c.hasClass("ui-state-processing") || e.panels.filter(":animated").length || e._trigger("select", null, e._ui(this, g[0])) === !1) return this.blur(), !1;
					if(f.selected = e.anchors.index(this), e.abort(), f.collapsible) {
						if(c.hasClass("ui-tabs-selected")) return f.selected = -1, f.cookie && e._cookie(f.selected, f.cookie), e.element.queue("tabs", function() {
							o(b, d)
						}).dequeue("tabs"), this.blur(), !1;
						if(!d.length) return f.cookie && e._cookie(f.selected, f.cookie), e.element.queue("tabs", function() {
							n(b, g)
						}), e.load(e.anchors.index(this)), this.blur(), !1
					}
					if(f.cookie && e._cookie(f.selected, f.cookie), !g.length) throw "jQuery UI Tabs: Mismatching fragment identifier.";
					d.length && e.element.queue("tabs", function() {
						o(b, d)
					}), e.element.queue("tabs", function() {
						n(b, g)
					}), e.load(e.anchors.index(this)), a.browser.msie && this.blur()
				}), this.anchors.bind("click.tabs", function() {
					return !1
				})
			},
			_getIndex: function(a) {
				return "string" == typeof a && (a = this.anchors.index(this.anchors.filter("[href$='" + a + "']"))), a
			},
			destroy: function() {
				var b = this.options;
				return 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 b = a.data(this, "href.tabs");
					b && (this.href = b);
					var c = a(this).unbind(".tabs");
					a.each(["href", "load", "cache"], function(a, b) {
						c.removeData(b + ".tabs")
					})
				}), this.lis.unbind(".tabs").add(this.panels).each(function() {
					a.data(this, "destroy.tabs") ? a(this).remove() : a(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"].join(" "))
				}), b.cookie && this._cookie(null, b.cookie), this
			},
			add: function(c, d, e) {
				e === b && (e = this.anchors.length);
				var f = this,
					g = this.options,
					h = a(g.tabTemplate.replace(/#\{href\}/g, c).replace(/#\{label\}/g, d)),
					i = c.indexOf("#") ? this._tabId(a("a", h)[0]) : c.replace("#", "");
				h.addClass("ui-state-default ui-corner-top").data("destroy.tabs", !0);
				var j = f.element.find("#" + i);
				return j.length || (j = a(g.panelTemplate).attr("id", i).data("destroy.tabs", !0)), j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"), e >= this.lis.length ? (h.appendTo(this.list), j.appendTo(this.list[0].parentNode)) : (h.insertBefore(this.lis[e]), j.insertBefore(this.panels[e])), g.disabled = a.map(g.disabled, function(a) {
					return a >= e ? ++a : a
				}), this._tabify(), 1 == this.anchors.length && (g.selected = 0, h.addClass("ui-tabs-selected ui-state-active"), j.removeClass("ui-tabs-hide"), this.element.queue("tabs", function() {
					f._trigger("show", null, f._ui(f.anchors[0], f.panels[0]))
				}), this.load(0)), this._trigger("add", null, this._ui(this.anchors[e], this.panels[e])), this
			},
			remove: function(b) {
				b = this._getIndex(b);
				var c = this.options,
					d = this.lis.eq(b).remove(),
					e = this.panels.eq(b).remove();
				return d.hasClass("ui-tabs-selected") && this.anchors.length > 1 && this.select(b + (this.anchors.length > b + 1 ? 1 : -1)), c.disabled = a.map(a.grep(c.disabled, function(a) {
					return a != b
				}), function(a) {
					return a >= b ? --a : a
				}), this._tabify(), this._trigger("remove", null, this._ui(d.find("a")[0], e[0])), this
			},
			enable: function(b) {
				b = this._getIndex(b);
				var c = this.options;
				if(-1 != a.inArray(b, c.disabled)) return this.lis.eq(b).removeClass("ui-state-disabled"), c.disabled = a.grep(c.disabled, function(a) {
					return a != b
				}), this._trigger("enable", null, this._ui(this.anchors[b], this.panels[b])), this
			},
			disable: function(a) {
				a = this._getIndex(a);
				var c = this.options;
				return a != c.selected && (this.lis.eq(a).addClass("ui-state-disabled"), c.disabled.push(a), c.disabled.sort(), this._trigger("disable", null, this._ui(this.anchors[a], this.panels[a]))), this
			},
			select: function(a) {
				if(a = this._getIndex(a), -1 == a) {
					if(!this.options.collapsible || -1 == this.options.selected) return this;
					a = this.options.selected
				}
				return this.anchors.eq(a).trigger(this.options.event + ".tabs"), this
			},
			load: function(b) {
				b = this._getIndex(b);
				var c = this,
					d = this.options,
					e = this.anchors.eq(b)[0],
					f = a.data(e, "load.tabs");
				if(this.abort(), !f || 0 !== this.element.queue("tabs").length && a.data(e, "cache.tabs")) return this.element.dequeue("tabs"), void 0;
				if(this.lis.eq(b).addClass("ui-state-processing"), d.spinner) {
					var g = a("span", e);
					g.data("label.tabs", g.html()).html(d.spinner)
				}
				return this.xhr = a.ajax(a.extend({}, d.ajaxOptions, {
					url: f,
					success: function(f, g) {
						c.element.find(c._sanitizeSelector(e.hash)).html(f), c._cleanup(), d.cache && a.data(e, "cache.tabs", !0), c._trigger("load", null, c._ui(c.anchors[b], c.panels[b]));
						try {
							d.ajaxOptions.success(f, g)
						} catch(h) {}
					},
					error: function(a, f) {
						c._cleanup(), c._trigger("load", null, c._ui(c.anchors[b], c.panels[b]));
						try {
							d.ajaxOptions.error(a, f, b, e)
						} catch(g) {}
					}
				})), c.element.dequeue("tabs"), this
			},
			abort: function() {
				return this.element.queue([]), this.panels.stop(!1, !0), this.element.queue("tabs", this.element.queue("tabs").splice(-2, 2)), this.xhr && (this.xhr.abort(), delete this.xhr), this._cleanup(), this
			},
			url: function(a, b) {
				return this.anchors.eq(a).removeData("cache.tabs").data("load.tabs", b), this
			},
			length: function() {
				return this.anchors.length
			}
		}), a.extend(a.ui.tabs, {
			version: "1.8.21"
		}), a.extend(a.ui.tabs.prototype, {
			rotation: null,
			rotate: function(a, b) {
				var c = this,
					d = this.options,
					e = c._rotate || (c._rotate = function(b) {
						clearTimeout(c.rotation), c.rotation = setTimeout(function() {
							var a = d.selected;
							c.select(++a < c.anchors.length ? a : 0)
						}, a), b && b.stopPropagation()
					}),
					f = c._unrotate || (c._unrotate = b ?
					function() {
						e()
					} : function(a) {
						a.clientX && c.rotate(null)
					});
				return a ? (this.element.bind("tabsshow", e), this.anchors.bind(d.event + ".tabs", f), e()) : (clearTimeout(c.rotation), this.element.unbind("tabsshow", e), this.anchors.unbind(d.event + ".tabs", f), delete this._rotate, delete this._unrotate), this
			}
		})
	}(jQuery), function($, undefined) {
		function Datepicker() {
			this.debug = !1, this._curInst = null, this._keyEvent = !1, this._disabledInputs = [], this._datepickerShowing = !1, this._inDialog = !1, 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: !1,
				showMonthAfterYear: !1,
				yearSuffix: ""
			}, this._defaults = {
				showOn: "focus",
				showAnim: "fadeIn",
				showOptions: {},
				defaultDate: null,
				appendText: "",
				buttonText: "...",
				buttonImage: "",
				buttonImageOnly: !1,
				hideIfNoPrevNext: !1,
				navigationAsDateFormat: !1,
				gotoCurrent: !1,
				changeMonth: !1,
				changeYear: !1,
				yearRange: "c-10:c+10",
				showOtherMonths: !1,
				selectOtherMonths: !1,
				showWeek: !1,
				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: !0,
				showButtonPanel: !1,
				autoSize: !1,
				disabled: !1
			}, $.extend(this._defaults, this.regional[""]), this.dpDiv = bindHover($('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))
		}
		function bindHover(a) {
			var b = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";
			return a.bind("mouseout", function(a) {
				var c = $(a.target).closest(b);
				c.length && c.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")
			}).bind("mouseover", function(c) {
				var d = $(c.target).closest(b);
				!$.datepicker._isDisabledDatepicker(instActive.inline ? a.parent()[0] : instActive.input[0]) && d.length && (d.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"), d.addClass("ui-state-hover"), d.hasClass("ui-datepicker-prev") && d.addClass("ui-datepicker-prev-hover"), d.hasClass("ui-datepicker-next") && d.addClass("ui-datepicker-next-hover"))
			})
		}
		function extendRemove(a, b) {
			$.extend(a, b);
			for(var c in b)(null == b[c] || b[c] == undefined) && (a[c] = b[c]);
			return a
		}
		function isArray(a) {
			return a && ($.browser.safari && "object" == typeof a && a.length || a.constructor && a.constructor.toString().match(/\Array\(\)/))
		}
		$.extend($.ui, {
			datepicker: {
				version: "1.8.21"
			}
		});
		var PROP_NAME = "datepicker",
			dpuuid = (new Date).getTime(),
			instActive;
		$.extend(Datepicker.prototype, {
			markerClassName: "hasDatepicker",
			maxRows: 4,
			log: function() {
				this.debug && console.log.apply("", arguments)
			},
			_widgetDatepicker: function() {
				return this.dpDiv
			},
			setDefaults: function(a) {
				return extendRemove(this._defaults, a || {}), this
			},
			_attachDatepicker: function(target, settings) {
				var inlineSettings = null;
				for(var attrName in this._defaults) {
					var attrValue = target.getAttribute("date:" + attrName);
					if(attrValue) {
						inlineSettings = inlineSettings || {};
						try {
							inlineSettings[attrName] = eval(attrValue)
						} catch(err) {
							inlineSettings[attrName] = attrValue
						}
					}
				}
				var nodeName = target.nodeName.toLowerCase(),
					inline = "div" == nodeName || "span" == nodeName;
				var inst = this._newInst($(target), inline);
				inst.settings = $.extend({}, settings || {}, inlineSettings || {}), "input" == nodeName ? this._connectDatepicker(target, inst) : inline && this._inlineDatepicker(target, inst)
			},
			_newInst: function(a, b) {
				var c = a[0].id.replace(/([^A-Za-z0-9_-])/g, "\\\\$1");
				return {
					id: c,
					input: a,
					selectedDay: 0,
					selectedMonth: 0,
					selectedYear: 0,
					drawMonth: 0,
					drawYear: 0,
					inline: b,
					dpDiv: b ? bindHover($('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')) : this.dpDiv
				}
			},
			_connectDatepicker: function(a, b) {
				var c = $(a);
				b.append = $([]), b.trigger = $([]), 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(a, c, d) {
					b.settings[c] = d
				}).bind("getData.datepicker", function(a, c) {
					return this._get(b, c)
				}), this._autoSize(b), $.data(a, PROP_NAME, b), b.settings.disabled && this._disableDatepicker(a))
			},
			_attachments: function(a, b) {
				var c = this._get(b, "appendText"),
					d = this._get(b, "isRTL");
				b.append && b.append.remove(), c && (b.append = $('<span class="' + this._appendClass + '">' + c + "</span>"), a[d ? "before" : "after"](b.append)), a.unbind("focus", this._showDatepicker), b.trigger && b.trigger.remove();
				var e = this._get(b, "showOn");
				if(("focus" == e || "both" == e) && a.focus(this._showDatepicker), "button" == e || "both" == e) {
					var f = this._get(b, "buttonText"),
						g = this._get(b, "buttonImage");
					b.trigger = $(this._get(b, "buttonImageOnly") ? $("<img/>").addClass(this._triggerClass).attr({
						src: g,
						alt: f,
						title: f
					}) : $('<button type="button"></button>').addClass(this._triggerClass).html("" == g ? f : $("<img/>").attr({
						src: g,
						alt: f,
						title: f
					}))), a[d ? "before" : "after"](b.trigger), b.trigger.click(function() {
						return $.datepicker._datepickerShowing && $.datepicker._lastInput == a[0] ? $.datepicker._hideDatepicker() : $.datepicker._datepickerShowing && $.datepicker._lastInput != a[0] ? ($.datepicker._hideDatepicker(), $.datepicker._showDatepicker(a[0])) : $.datepicker._showDatepicker(a[0]), !1
					})
				}
			},
			_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 d = function(a) {
								for(var b = 0, c = 0, d = 0; a.length > d; d++) a[d].length > b && (b = a[d].length, c = d);
								return c
							};
						b.setMonth(d(this._get(a, c.match(/MM/) ? "monthNames" : "monthNamesShort"))), b.setDate(d(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 = $(a);
				c.hasClass(this.markerClassName) || (c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker", function(a, c, d) {
					b.settings[c] = d
				}).bind("getData.datepicker", function(a, c) {
					return this._get(b, c)
				}), $.data(a, PROP_NAME, b), this._setDate(b, this._getDefaultDate(b), !0), this._updateDatepicker(b), this._updateAlternate(b), b.settings.disabled && this._disableDatepicker(a), b.dpDiv.css("display", "block"))
			},
			_dialogDatepicker: function(a, b, c, d, e) {
				var f = this._dialogInst;
				if(!f) {
					this.uuid += 1;
					var g = "dp" + this.uuid;
					this._dialogInput = $('<input type="text" id="' + g + '" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>'), this._dialogInput.keydown(this._doKeyDown), $("body").append(this._dialogInput), f = this._dialogInst = this._newInst(this._dialogInput, !1), f.settings = {}, $.data(this._dialogInput[0], PROP_NAME, f)
				}
				if(extendRemove(f.settings, d || {}), b = b && b.constructor == Date ? this._formatDate(f, b) : b, this._dialogInput.val(b), this._pos = e ? e.length ? e : [e.pageX, e.pageY] : null, !this._pos) {
					var h = document.documentElement.clientWidth,
						i = document.documentElement.clientHeight,
						j = document.documentElement.scrollLeft || document.body.scrollLeft,
						k = document.documentElement.scrollTop || document.body.scrollTop;
					this._pos = [h / 2 - 100 + j, i / 2 - 150 + k]
				}
				return this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px"), f.settings.onSelect = c, this._inDialog = !0, this.dpDiv.addClass(this._dialogClass), this._showDatepicker(this._dialogInput[0]), $.blockUI && $.blockUI(this.dpDiv), $.data(this._dialogInput[0], PROP_NAME, f), this
			},
			_destroyDatepicker: function(a) {
				var b = $(a),
					c = $.data(a, PROP_NAME);
				if(b.hasClass(this.markerClassName)) {
					var d = a.nodeName.toLowerCase();
					$.removeData(a, PROP_NAME), "input" == d ? (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)) : ("div" == d || "span" == d) && b.removeClass(this.markerClassName).empty()
				}
			},
			_enableDatepicker: function(a) {
				var b = $(a),
					c = $.data(a, PROP_NAME);
				if(b.hasClass(this.markerClassName)) {
					var d = a.nodeName.toLowerCase();
					if("input" == d) a.disabled = !1, c.trigger.filter("button").each(function() {
						this.disabled = !1
					}).end().filter("img").css({
						opacity: "1.0",
						cursor: ""
					});
					else if("div" == d || "span" == d) {
						var e = b.children("." + this._inlineClass);
						e.children().removeClass("ui-state-disabled"), e.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")
					}
					this._disabledInputs = $.map(this._disabledInputs, function(b) {
						return b == a ? null : b
					})
				}
			},
			_disableDatepicker: function(a) {
				var b = $(a),
					c = $.data(a, PROP_NAME);
				if(b.hasClass(this.markerClassName)) {
					var d = a.nodeName.toLowerCase();
					if("input" == d) a.disabled = !0, c.trigger.filter("button").each(function() {
						this.disabled = !0
					}).end().filter("img").css({
						opacity: "0.5",
						cursor: "default"
					});
					else if("div" == d || "span" == d) {
						var e = b.children("." + this._inlineClass);
						e.children().addClass("ui-state-disabled"), e.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled", "disabled")
					}
					this._disabledInputs = $.map(this._disabledInputs, function(b) {
						return b == a ? null : b
					}), this._disabledInputs[this._disabledInputs.length] = a
				}
			},
			_isDisabledDatepicker: function(a) {
				if(!a) return !1;
				for(var b = 0; this._disabledInputs.length > b; b++) if(this._disabledInputs[b] == a) return !0;
				return !1
			},
			_getInst: function(a) {
				try {
					return $.data(a, PROP_NAME)
				} catch(b) {
					throw "Missing instance data for this datepicker"
				}
			},
			_optionDatepicker: function(a, b, c) {
				var d = this._getInst(a);
				if(2 == arguments.length && "string" == typeof b) return "defaults" == b ? $.extend({}, $.datepicker._defaults) : d ? "all" == b ? $.extend({}, d.settings) : this._get(d, b) : null;
				var e = b || {};
				if("string" == typeof b && (e = {}, e[b] = c), d) {
					this._curInst == d && this._hideDatepicker();
					var f = this._getDateDatepicker(a, !0),
						g = this._getMinMaxDate(d, "min"),
						h = this._getMinMaxDate(d, "max");
					extendRemove(d.settings, e), null !== g && e.dateFormat !== undefined && e.minDate === undefined && (d.settings.minDate = this._formatDate(d, g)), null !== h && e.dateFormat !== undefined && e.maxDate === undefined && (d.settings.maxDate = this._formatDate(d, h)), this._attachments($(a), d), this._autoSize(d), this._setDate(d, f), this._updateAlternate(d), this._updateDatepicker(d)
				}
			},
			_changeDatepicker: function(a, b, c) {
				this._optionDatepicker(a, b, c)
			},
			_refreshDatepicker: function(a) {
				var b = this._getInst(a);
				b && this._updateDatepicker(b)
			},
			_setDateDatepicker: function(a, b) {
				var c = this._getInst(a);
				c && (this._setDate(c, b), this._updateDatepicker(c), this._updateAlternate(c))
			},
			_getDateDatepicker: function(a, b) {
				var c = this._getInst(a);
				return c && !c.inline && this._setDateFromField(c, b), c ? this._getDate(c) : null
			},
			_doKeyDown: function(a) {
				var b = $.datepicker._getInst(a.target),
					c = !0,
				if(b._keyEvent = !0, $.datepicker._datepickerShowing) switch(a.keyCode) {
				case 9:
					$.datepicker._hideDatepicker(), c = !1;
					break;
				case 13:
					var e = $("td." + $.datepicker._dayOverClass + ":not(." + $.datepicker._currentClass + ")", b.dpDiv);
					e[0] && $.datepicker._selectDay(a.target, b.selectedMonth, b.selectedYear, e[0]);
					var f = $.datepicker._get(b, "onSelect");
					if(f) {
						var g = $.datepicker._formatDate(b);
						f.apply(b.input ? b.input[0] : null, [g, b])
					} else $.datepicker._hideDatepicker();
					return !1;
				case 27:
					$.datepicker._hideDatepicker();
					break;
				case 33:
					$.datepicker._adjustDate(a.target, a.ctrlKey ? -$.datepicker._get(b, "stepBigMonths") : -$.datepicker._get(b, "stepMonths"), "M");
					break;
				case 34:
					$.datepicker._adjustDate(a.target, a.ctrlKey ? +$.datepicker._get(b, "stepBigMonths") : +$.datepicker._get(b, "stepMonths"), "M");
					break;
				case 35:
					(a.ctrlKey || a.metaKey) && $.datepicker._clearDate(a.target), c = a.ctrlKey || a.metaKey;
					break;
				case 36:
					(a.ctrlKey || a.metaKey) && $.datepicker._gotoToday(a.target), c = a.ctrlKey || a.metaKey;
					break;
				case 37:
					(a.ctrlKey || a.metaKey) && $.datepicker._adjustDate(a.target, d ? 1 : -1, "D"), c = a.ctrlKey || a.metaKey, a.originalEvent.altKey && $.datepicker._adjustDate(a.target, a.ctrlKey ? -$.datepicker._get(b, "stepBigMonths") : -$.datepicker._get(b, "stepMonths"), "M");
					break;
				case 38:
					(a.ctrlKey || a.metaKey) && $.datepicker._adjustDate(a.target, -7, "D"), c = a.ctrlKey || a.metaKey;
					break;
				case 39:
					(a.ctrlKey || a.metaKey) && $.datepicker._adjustDate(a.target, d ? -1 : 1, "D"), c = a.ctrlKey || a.metaKey, a.originalEvent.altKey && $.datepicker._adjustDate(a.target, a.ctrlKey ? +$.datepicker._get(b, "stepBigMonths") : +$.datepicker._get(b, "stepMonths"), "M");
					break;
				case 40:
					(a.ctrlKey || a.metaKey) && $.datepicker._adjustDate(a.target, 7, "D"), c = a.ctrlKey || a.metaKey;
					break;
				default:
					c = !1
				} else 36 == a.keyCode && a.ctrlKey ? $.datepicker._showDatepicker(this) : c = !1;
				c && (a.preventDefault(), a.stopPropagation())
			},
			_doKeyPress: function(a) {
				var b = $.datepicker._getInst(a.target);
				if($.datepicker._get(b, "constrainInput")) {
					var c = $.datepicker._possibleChars($.datepicker._get(b, "dateFormat")),
						d = String.fromCharCode(a.charCode == undefined ? a.keyCode : a.charCode);
					return a.ctrlKey || a.metaKey || " " > d || !c || c.indexOf(d) > -1
				}
			},
			_doKeyUp: function(a) {
				var b = $.datepicker._getInst(a.target);
				if(b.input.val() != b.lastVal) try {
					var c = $.datepicker.parseDate($.datepicker._get(b, "dateFormat"), b.input ? b.input.val() : null, $.datepicker._getFormatConfig(b));
					c && ($.datepicker._setDateFromField(b), $.datepicker._updateAlternate(b), $.datepicker._updateDatepicker(b))
				} catch(d) {
					$.datepicker.log(d)
				}
				return !0
			},
			_showDatepicker: function(a) {
				if(a = a.target || a, "input" != a.nodeName.toLowerCase() && (a = $("input", a.parentNode)[0]), !$.datepicker._isDisabledDatepicker(a) && $.datepicker._lastInput != a) {
					var b = $.datepicker._getInst(a);
					$.datepicker._curInst && $.datepicker._curInst != b && ($.datepicker._curInst.dpDiv.stop(!0, !0), b && $.datepicker._datepickerShowing && $.datepicker._hideDatepicker($.datepicker._curInst.input[0]));
					var c = $.datepicker._get(b, "beforeShow"),
						d = c ? c.apply(a, [a, b]) : {};
					if(d !== !1) {
						extendRemove(b.settings, d), b.lastVal = null, $.datepicker._lastInput = a, $.datepicker._setDateFromField(b), $.datepicker._inDialog && (a.value = ""), $.datepicker._pos || ($.datepicker._pos = $.datepicker._findPos(a), $.datepicker._pos[1] += a.offsetHeight);
						var e = !1;
						$(a).parents().each(function() {
							return e |= "fixed" == $(this).css("position"), !e
						}), e && $.browser.opera && ($.datepicker._pos[0] -= document.documentElement.scrollLeft, $.datepicker._pos[1] -= document.documentElement.scrollTop);
						var f = {
							left: $.datepicker._pos[0],
							top: $.datepicker._pos[1]
						};
						if($.datepicker._pos = null, b.dpDiv.empty(), b.dpDiv.css({
							position: "absolute",
							display: "block",
							top: "-1000px"
						}), $.datepicker._updateDatepicker(b), f = $.datepicker._checkOffset(b, f, e), b.dpDiv.css({
							position: $.datepicker._inDialog && $.blockUI ? "static" : e ? "fixed" : "absolute",
							display: "none",
							left: f.left + "px",
							top: f.top + "px"
						}), !b.inline) {
							var g = $.datepicker._get(b, "showAnim"),
								h = $.datepicker._get(b, "duration"),
								i = function() {
									var a = b.dpDiv.find("iframe.ui-datepicker-cover");
									if(a.length) {
										var c = $.datepicker._getBorders(b.dpDiv);
										a.css({
											left: -c[0],
											top: -c[1],
											width: b.dpDiv.outerWidth(),
											height: b.dpDiv.outerHeight()
										})
									}
								};
							b.dpDiv.zIndex($(a).zIndex() + 1), $.datepicker._datepickerShowing = !0, $.effects && $.effects[g] ? b.dpDiv.show(g, $.datepicker._get(b, "showOptions"), h, i) : b.dpDiv[g || "show"](g ? h : null, i), (!g || !h) && i(), 
b.input.is(":visible") && !
b.input.is(":disabled") && b.input.focus(), $.datepicker._curInst = b
 						}
					}
				}
			},
			_updateDatepicker: function(a) {
				var b = this;
				b.maxRows = 4;
				var c = $.datepicker._getBorders(a.dpDiv);
				instActive = a, a.dpDiv.empty().append(this._generateHTML(a));
				var d = a.dpDiv.find("iframe.ui-datepicker-cover");
				!d.length || d.css({
					left: -c[0],
					top: -c[1],
					width: a.dpDiv.outerWidth(),
					height: a.dpDiv.outerHeight()
				}), a.dpDiv.find("." + this._dayOverClass + " a").mouseover();
				var e = this._getNumberOfMonths(a),
					f = e[1],
					g = 17;
				if(a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""), f > 1 && a.dpDiv.addClass("ui-datepicker-multi-" + f).css("width", g * f + "em"), a.dpDiv[(1 != e[0] || 1 != e[1] ? "add" : "remove") + "Class"]("ui-datepicker-multi"), a.dpDiv[(this._get(a, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl"), a == $.datepicker._curInst && $.datepicker._datepickerShowing && a.input && 
a.input.is(":visible") && !
a.input.is(":disabled") && a.input[0] != document.activeElement && a.input.focus(), a.yearshtml) {
 					var h = a.yearshtml;
					setTimeout(function() {
						h === a.yearshtml && a.yearshtml && a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml), h = a.yearshtml = null
					}, 0)
				}
			},
			_getBorders: function(a) {
				var b = function(a) {
						return {
							thin: 1,
							medium: 2,
							thick: 3
						}[a] || a
					};
				return [parseFloat(b(a.css("border-left-width"))), parseFloat(b(a.css("border-top-width")))]
			},
			_checkOffset: function(a, b, c) {
				var d = a.dpDiv.outerWidth(),
					e = a.dpDiv.outerHeight(),
					f = a.input ? a.input.outerWidth() : 0,
					g = a.input ? a.input.outerHeight() : 0,
					h = document.documentElement.clientWidth + $(document).scrollLeft(),
					i = document.documentElement.clientHeight + $(document).scrollTop();
				return b.left -= this._get(a, "isRTL") ? d - f : 0, b.left -= c && b.left == a.input.offset().left ? $(document).scrollLeft() : 0, b.top -= c && b.top == a.input.offset().top + g ? $(document).scrollTop() : 0, b.left -= Math.min(b.left, b.left + d > h && h > d ? Math.abs(b.left + d - h) : 0), b.top -= Math.min(b.top, b.top + e > i && i > e ? Math.abs(e + g) : 0), b
			},
			_findPos: function(a) {
				for(var b = this._getInst(a), c = this._get(b, "isRTL"); a && ("hidden" == a.type || 1 != a.nodeType || $.expr.filters.hidden(a));) a = a[c ? "previousSibling" : "nextSibling"];
				var d = $(a).offset();
				return [d.left, d.top]
			},
			_hideDatepicker: function(a) {
				var b = this._curInst;
				if(b && (!a || b == $.data(a, PROP_NAME)) && this._datepickerShowing) {
					var c = this._get(b, "showAnim"),
						d = this._get(b, "duration"),
						e = function() {
							$.datepicker._tidyDialog(b)
						};
					$.effects && $.effects[c] ? b.dpDiv.hide(c, $.datepicker._get(b, "showOptions"), d, e) : b.dpDiv["slideDown" == c ? "slideUp" : "fadeIn" == c ? "fadeOut" : "hide"](c ? d : null, e), c || e(), this._datepickerShowing = !1;
					var f = this._get(b, "onClose");
					f && f.apply(b.input ? b.input[0] : null, [b.input ? b.input.val() : "", b]), this._lastInput = null, this._inDialog && (this._dialogInput.css({
						position: "absolute",
						left: "0",
						top: "-100px"
					}), $.blockUI && ($.unblockUI(), $("body").append(this.dpDiv))), this._inDialog = !1
				}
			},
			_tidyDialog: function(a) {
				a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")
			},
			_checkExternalClick: function(a) {
				if($.datepicker._curInst) {
					var b = $(a.target),
						c = $.datepicker._getInst(b[0]);
					(b[0].id != $.datepicker._mainDivId && 0 == b.parents("#" + $.datepicker._mainDivId).length && !b.hasClass($.datepicker.markerClassName) && !b.closest("." + $.datepicker._triggerClass).length && $.datepicker._datepickerShowing && (!$.datepicker._inDialog || !$.blockUI) || b.hasClass($.datepicker.markerClassName) && $.datepicker._curInst != c) && $.datepicker._hideDatepicker()
				}
			},
			_adjustDate: function(a, b, c) {
				var d = $(a),
					e = this._getInst(d[0]);
				this._isDisabledDatepicker(d[0]) || (this._adjustInstDate(e, b + ("M" == c ? this._get(e, "showCurrentAtPos") : 0), c), this._updateDatepicker(e))
			},
			_gotoToday: function(a) {
				var b = $(a),
					c = this._getInst(b[0]);
				if(this._get(c, "gotoCurrent") && c.currentDay) c.selectedDay = c.currentDay, c.drawMonth = c.selectedMonth = c.currentMonth, c.drawYear = c.selectedYear = c.currentYear;
				else {
					var d = new Date;
					c.selectedDay = d.getDate(), c.drawMonth = c.selectedMonth = d.getMonth(), c.drawYear = c.selectedYear = d.getFullYear()
				}
				this._notifyChange(c), this._adjustDate(b)
			},
			_selectMonthYear: function(a, b, c) {
				var d = $(a),
					e = this._getInst(d[0]);
				e["selected" + ("M" == c ? "Month" : "Year")] = e["draw" + ("M" == c ? "Month" : "Year")] = parseInt(b.options[b.selectedIndex].value, 10), this._notifyChange(e), this._adjustDate(d)
			},
			_selectDay: function(a, b, c, d) {
				var e = $(a);
				if(!$(d).hasClass(this._unselectableClass) && !this._isDisabledDatepicker(e[0])) {
					var f = this._getInst(e[0]);
					f.selectedDay = f.currentDay = $("a", d).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) {
				var b = $(a);
				this._getInst(b[0]), this._selectDate(b, "")
			},
			_selectDate: function(a, b) {
				var c = $(a),
					d = this._getInst(c[0]);
				b = null != b ? b : this._formatDate(d), d.input && d.input.val(b), this._updateAlternate(d);
				var e = this._get(d, "onSelect");
				e ? e.apply(d.input ? d.input[0] : null, [b, d]) : d.input && d.input.trigger("change"), d.inline ? this._updateDatepicker(d) : (this._hideDatepicker(), this._lastInput = d.input[0], "object" != typeof d.input[0] && d.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"),
						d = this._getDate(a),
						e = this.formatDate(c, d, this._getFormatConfig(a));
					$(b).each(function() {
						$(this).val(e)
					})
				}
			},
			noWeekends: function(a) {
				var b = a.getDay();
				return [b > 0 && 6 > b, ""]
			},
			iso8601Week: function(a) {
				var b = new Date(a.getTime());
				b.setDate(b.getDate() + 4 - (b.getDay() || 7));
				var c = b.getTime();
				return b.setMonth(0), b.setDate(1), Math.floor(Math.round((c - b) / 864e5) / 7) + 1
			},
			parseDate: function(a, b, c) {
				if(null == a || null == b) throw "Invalid arguments";
				if(b = "object" == typeof b ? b.toString() : b + "", "" == b) return null;
				var d = (c ? c.shortYearCutoff : null) || this._defaults.shortYearCutoff;
				d = "string" != typeof d ? d : (new Date).getFullYear() % 100 + parseInt(d, 10);
				for(var e = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort, f = (c ? c.dayNames : null) || this._defaults.dayNames, g = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort, h = (c ? c.monthNames : null) || this._defaults.monthNames, i = -1, j = -1, k = -1, l = -1, m = !1, n = function(b) {
						var c = a.length > s + 1 && a.charAt(s + 1) == b;
						return c && s++, c
					}, o = function(a) {
						var c = n(a),
							d = "@" == a ? 14 : "!" == a ? 20 : "y" == a && c ? 4 : "o" == a ? 3 : 2,
							e = new RegExp("^\\d{1," + d + "}"),
							f = b.substring(r).match(e);
						if(!f) throw "Missing number at position " + r;
						return r += f[0].length, parseInt(f[0], 10)
					}, p = function(a, c, d) {
						var e = $.map(n(a) ? d : c, function(a, b) {
							return [[b, a]]
						}).sort(function(a, b) {
							return -(a[1].length - b[1].length)
						}),
							f = -1;
						if($.each(e, function(a, c) {
							var d = c[1];
							return b.substr(r, d.length).toLowerCase() == d.toLowerCase() ? (f = c[0], r += d.length, !1) : void 0
						}), -1 != f) return f + 1;
						throw "Unknown name at position " + r
					}, q = function() {
						if(b.charAt(r) != a.charAt(s)) throw "Unexpected literal at position " + r;
						r++
					}, r = 0, s = 0; a.length > s; s++) if(m) "'" != a.charAt(s) || n("'") ? q() : m = !1;
				else switch(a.charAt(s)) {
				case "d":
					k = o("d");
					break;
				case "D":
					p("D", e, f);
					break;
				case "o":
					l = o("o");
					break;
				case "m":
					j = o("m");
					break;
				case "M":
					j = p("M", g, h);
					break;
				case "y":
					i = o("y");
					break;
				case "@":
					var t = new Date(o("@"));
					i = t.getFullYear(), j = t.getMonth() + 1, k = t.getDate();
					break;
				case "!":
					var t = new Date((o("!") - this._ticksTo1970) / 1e4);
					i = t.getFullYear(), j = t.getMonth() + 1, k = t.getDate();
					break;
				case "'":
					n("'") ? q() : m = !0;
					break;
				default:
					q()
				}
				if(b.length > r) throw "Extra/unparsed characters found in date: " + b.substring(r);
				if(-1 == i ? i = (new Date).getFullYear() : 100 > i && (i += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (d >= i ? 0 : -100)), l > -1) for(j = 1, k = l;;) {
					var u = this._getDaysInMonth(i, j - 1);
					if(u >= k) break;
					j++, k -= u
				}
				var t = this._daylightSavingAdjust(new Date(i, j - 1, k));
				if(t.getFullYear() != i || t.getMonth() + 1 != j || t.getDate() != k) throw "Invalid date";
				return t
			},
			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: 1e7 * 60 * 60 * 24 * (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)),
			formatDate: function(a, b, c) {
				if(!b) return "";
				var d = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort,
					e = (c ? c.dayNames : null) || this._defaults.dayNames,
					f = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort,
					g = (c ? c.monthNames : null) || this._defaults.monthNames,
					h = function(b) {
						var c = a.length > m + 1 && a.charAt(m + 1) == b;
						return c && m++, c
					},
					i = function(a, b, c) {
						var d = "" + b;
						if(h(a)) for(; c > d.length;) d = "0" + d;
						return d
					},
					j = function(a, b, c, d) {
						return h(a) ? d[b] : c[b]
					},
					k = "",
					l = !1;
				if(b) for(var m = 0; a.length > m; m++) if(l) "'" != a.charAt(m) || h("'") ? k += a.charAt(m) : l = !1;
				else switch(a.charAt(m)) {
				case "d":
					k += i("d", b.getDate(), 2);
					break;
				case "D":
					k += j("D", b.getDay(), d, e);
					break;
				case "o":
					k += i("o", Math.round((new Date(b.getFullYear(), b.getMonth(), b.getDate()).getTime() - new Date(b.getFullYear(), 0, 0).getTime()) / 864e5), 3);
					break;
				case "m":
					k += i("m", b.getMonth() + 1, 2);
					break;
				case "M":
					k += j("M", b.getMonth(), f, g);
					break;
				case "y":
					k += h("y") ? b.getFullYear() : (10 > b.getYear() % 100 ? "0" : "") + b.getYear() % 100;
					break;
				case "@":
					k += b.getTime();
					break;
				case "!":
					k += 1e4 * b.getTime() + this._ticksTo1970;
					break;
				case "'":
					h("'") ? k += "'" : l = !0;
					break;
				default:
					k += a.charAt(m)
				}
				return k
			},
			_possibleChars: function(a) {
				for(var b = "", c = !1, d = function(b) {
						var c = a.length > e + 1 && a.charAt(e + 1) == b;
						return c && e++, c
					}, e = 0; a.length > e; e++) if(c) "'" != a.charAt(e) || d("'") ? b += a.charAt(e) : c = !1;
				else switch(a.charAt(e)) {
				case "d":
				case "m":
				case "y":
				case "@":
					b += "0123456789";
					break;
				case "D":
				case "M":
					return null;
				case "'":
					d("'") ? b += "'" : c = !0;
					break;
				default:
					b += a.charAt(e)
				}
				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 e, f, c = this._get(a, "dateFormat"),
						d = a.lastVal = a.input ? a.input.val() : null;
					e = f = this._getDefaultDate(a);
					var g = this._getFormatConfig(a);
					try {
						e = this.parseDate(c, d, g) || f
					} catch(h) {
						this.log(h), d = b ? "" : d
					}
					a.selectedDay = e.getDate(), a.drawMonth = a.selectedMonth = e.getMonth(), a.drawYear = a.selectedYear = e.getFullYear(), a.currentDay = d ? e.getDate() : 0, a.currentMonth = d ? e.getMonth() : 0, a.currentYear = d ? e.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 d = function(a) {
						var b = new Date;
						return b.setDate(b.getDate() + a), b
					},
					e = function(b) {
						try {
							return $.datepicker.parseDate($.datepicker._get(a, "dateFormat"), b, $.datepicker._getFormatConfig(a))
						} catch(c) {}
						for(var d = (b.toLowerCase().match(/^c/) ? $.datepicker._getDate(a) : null) || new Date, e = d.getFullYear(), f = d.getMonth(), g = d.getDate(), h = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, i = h.exec(b); i;) {
							switch(i[2] || "d") {
							case "d":
							case "D":
								g += parseInt(i[1], 10);
								break;
							case "w":
							case "W":
								g += 7 * parseInt(i[1], 10);
								break;
							case "m":
							case "M":
								f += parseInt(i[1], 10), g = Math.min(g, $.datepicker._getDaysInMonth(e, f));
								break;
							case "y":
							case "Y":
								e += parseInt(i[1], 10), g = Math.min(g, $.datepicker._getDaysInMonth(e, f))
							}
							i = h.exec(b)
						}
						return new Date(e, f, g)
					},
					f = null == b || "" === b ? c : "string" == typeof b ? e(b) : "number" == typeof b ? isNaN(b) ? c : d(b) : new Date(b.getTime());
				return f = f && "Invalid Date" == f.toString() ? c : f, f && (f.setHours(0), f.setMinutes(0), f.setSeconds(0), f.setMilliseconds(0)), this._daylightSavingAdjust(f)
			},
			_daylightSavingAdjust: function(a) {
				return a ? (a.setHours(a.getHours() > 12 ? a.getHours() + 2 : 0), a) : null
			},
			_setDate: function(a, b, c) {
				var d = !b,
					e = a.selectedMonth,
					f = a.selectedYear,
					g = this._restrictMinMax(a, this._determineDate(a, b, new Date));
				a.selectedDay = a.currentDay = g.getDate(), a.drawMonth = a.selectedMonth = a.currentMonth = g.getMonth(), a.drawYear = a.selectedYear = a.currentYear = g.getFullYear(), (e != a.selectedMonth || f != a.selectedYear) && !c && this._notifyChange(a), this._adjustInstDate(a), a.input && a.input.val(d ? "" : this._formatDate(a))
			},
			_getDate: function(a) {
				var b = !a.currentYear || a.input && "" == a.input.val() ? null : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay));
				return b
			},
			_generateHTML: function(a) {
				var b = new Date;
				b = this._daylightSavingAdjust(new Date(b.getFullYear(), b.getMonth(), b.getDate()));
				var c = this._get(a, "isRTL"),
					d = this._get(a, "showButtonPanel"),
					e = this._get(a, "hideIfNoPrevNext"),
					f = this._get(a, "navigationAsDateFormat"),
					g = this._getNumberOfMonths(a),
					h = this._get(a, "showCurrentAtPos"),
					i = this._get(a, "stepMonths"),
					j = 1 != g[0] || 1 != g[1],
					k = this._daylightSavingAdjust(a.currentDay ? new Date(a.currentYear, a.currentMonth, a.currentDay) : new Date(9999, 9, 9)),
					l = this._getMinMaxDate(a, "min"),
					m = this._getMinMaxDate(a, "max"),
					n = a.drawMonth - h,
					o = a.drawYear;
				if(0 > n && (n += 12, o--), m) {
					var p = this._daylightSavingAdjust(new Date(m.getFullYear(), m.getMonth() - g[0] * g[1] + 1, m.getDate()));
					for(p = l && l > p ? l : p; this._daylightSavingAdjust(new Date(o, n, 1)) > p;) n--, 0 > n && (n = 11, o--)
				}
				a.drawMonth = n, a.drawYear = o;
				var q = this._get(a, "prevText");
				q = f ? this.formatDate(q, this._daylightSavingAdjust(new Date(o, n - i, 1)), this._getFormatConfig(a)) : q;
				var r = this._canAdjustMonth(a, -1, o, n) ? '<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + dpuuid + ".datepicker._adjustDate('#" + 
a.id + "', -" + i + ", 'M');\"" + ' title="' + q + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "e" : "w") + '">' + q + "</span></a>" : e ? "" : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="' + q + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "e" : "w") + '">' + q + "</span></a>",
 					s = this._get(a, "nextText");
				s = f ? this.formatDate(s, this._daylightSavingAdjust(new Date(o, n + i, 1)), this._getFormatConfig(a)) : s;
				var t = this._canAdjustMonth(a, 1, o, n) ? '<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + dpuuid + ".datepicker._adjustDate('#" + 
a.id + "', +" + i + ", 'M');\"" + ' title="' + s + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "w" : "e") + '">' + s + "</span></a>" : e ? "" : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="' + s + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "w" : "e") + '">' + s + "</span></a>",
 					u = this._get(a, "currentText"),
					v = this._get(a, "gotoCurrent") && a.currentDay ? k : b;
				u = f ? this.formatDate(u, v, this._getFormatConfig(a)) : u;
				var w = a.inline ? "" : '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + dpuuid + '.datepicker._hideDatepicker();">' + this._get(a, "closeText") + "</button>",
					x = d ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (c ? w : "") + (this._isInRange(a, v) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' + dpuuid + ".datepicker._gotoToday('#" + 
a.id + "');\"" + ">" + u + "</button>" : "") + (c ? "" : w) + "</div>" : "",
 					y = parseInt(this._get(a, "firstDay"), 10);
				y = isNaN(y) ? 0 : y;
				for(var z = this._get(a, "showWeek"), A = this._get(a, "dayNames"), C = (this._get(a, "dayNamesShort"), this._get(a, "dayNamesMin")), D = this._get(a, "monthNames"), E = this._get(a, "monthNamesShort"), F = this._get(a, "beforeShowDay"), G = this._get(a, "showOtherMonths"), H = this._get(a, "selectOtherMonths"), J = (this._get(a, "calculateWeek") || this.iso8601Week, this._getDefaultDate(a)), K = "", L = 0; g[0] > L; L++) {
					var M = "";
					this.maxRows = 4;
					for(var N = 0; g[1] > N; N++) {
						var O = this._daylightSavingAdjust(new Date(o, n, a.selectedDay)),
							P = " ui-corner-all",
							Q = "";
						if(j) {
							if(Q += '<div class="ui-datepicker-group', g[1] > 1) switch(N) {
							case 0:
								Q += " ui-datepicker-group-first", P = " ui-corner-" + (c ? "right" : "left");
								break;
							case g[1] - 1:
								Q += " ui-datepicker-group-last", P = " ui-corner-" + (c ? "left" : "right");
								break;
							default:
								Q += " ui-datepicker-group-middle", P = ""
							}
							Q += '">'
						}
						Q += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + P + '">' + (/all|left/.test(P) && 0 == L ? c ? t : r : "") + (/all|right/.test(P) && 0 == L ? c ? r : t : "") + this._generateMonthYearHeader(a, n, o, l, m, L > 0 || N > 0, D, E) + '</div><table class="ui-datepicker-calendar"><thead>' + "<tr>";
						for(var R = z ? '<th class="ui-datepicker-week-col">' + this._get(a, "weekHeader") + "</th>" : "", S = 0; 7 > S; S++) {
							var T = (S + y) % 7;
							R += "<th" + ((S + y + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : "") + ">" + '<span title="' + A[T] + '">' + C[T] + "</span></th>"
						}
						Q += R + "</tr></thead><tbody>";
						var U = this._getDaysInMonth(o, n);
						o == a.selectedYear && n == a.selectedMonth && (a.selectedDay = Math.min(a.selectedDay, U));
						var V = (this._getFirstDayOfMonth(o, n) - y + 7) % 7,
							W = Math.ceil((V + U) / 7),
							X = j ? this.maxRows > W ? this.maxRows : W : W;
						this.maxRows = X;
						for(var Y = this._daylightSavingAdjust(new Date(o, n, 1 - V)), Z = 0; X > Z; Z++) {
							Q += "<tr>";
							for(var _ = z ? '<td class="ui-datepicker-week-col">' + this._get(a, "calculateWeek")(Y) + "</td>" : "", S = 0; 7 > S; S++) {
								var ab = F ? F.apply(a.input ? a.input[0] : null, [Y]) : [!0, ""],
									bb = Y.getMonth() != n,
									cb = bb && !H || !ab[0] || l && l > Y || m && Y > m;
								_ += '<td class="' + ((S + y + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + (bb ? " ui-datepicker-other-month" : "") + (Y.getTime() == O.getTime() && n == a.selectedMonth && a._keyEvent || J.getTime() == Y.getTime() && J.getTime() == O.getTime() ? " " + this._dayOverClass : "") + (cb ? " " + this._unselectableClass + " ui-state-disabled" : "") + (bb && !G ? "" : " " + ab[1] + (Y.getTime() == k.getTime() ? " " + this._currentClass : "") + (Y.getTime() == b.getTime() ? " ui-datepicker-today" : "")) + '"' + (bb && !G || !ab[2] ? "" : ' title="' + ab[2] + '"') + (cb ? "" : ' onclick="DP_jQuery_' + dpuuid + ".datepicker._selectDay('#" + 
a.id + "'," + Y.getMonth() + "," + Y.getFullYear() + ', this);return false;"') + ">" + (bb && !G ? " " : cb ? '<span class="ui-state-default">' + Y.getDate() + "</span>" : '<a class="ui-state-default' + (Y.getTime() == b.getTime() ? " ui-state-highlight" : "") + (Y.getTime() == k.getTime() ? " ui-state-active" : "") + (bb ? " ui-priority-secondary" : "") + '" href="#">' + Y.getDate() + "</a>") + "</td>", Y.setDate(Y.getDate() + 1), Y = this._daylightSavingAdjust(Y)
 							}
							Q += _ + "</tr>"
						}
						n++, n > 11 && (n = 0, o++), Q += "</tbody></table>" + (j ? "</div>" + (g[0] > 0 && N == g[1] - 1 ? '<div class="ui-datepicker-row-break"></div>' : "") : ""), M += Q
					}
					K += M
				}
				return K += x + ($.browser.msie && 7 > parseInt($.browser.version, 10) && !a.inline ? '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : ""), a._keyEvent = !1, K
			},
			_generateMonthYearHeader: function(a, b, c, d, e, f, g, h) {
				var i = this._get(a, "changeMonth"),
					j = this._get(a, "changeYear"),
					k = this._get(a, "showMonthAfterYear"),
					l = '<div class="ui-datepicker-title">',
					m = "";
				if(f || !i) m += '<span class="ui-datepicker-month">' + g[b] + "</span>";
				else {
					var n = d && d.getFullYear() == c,
						o = e && e.getFullYear() == c;
					m += '<select class="ui-datepicker-month" onchange="DP_jQuery_' + dpuuid + ".datepicker._selectMonthYear('#" + 
a.id + "', this, 'M');\" " + ">";
 					for(var p = 0; 12 > p; p++)(!n || p >= d.getMonth()) && (!o || e.getMonth() >= p) && (m += '<option value="' + p + '"' + (p == b ? ' selected="selected"' : "") + ">" + h[p] + "</option>");
					m += "</select>"
				}
				if(k || (l += m + (!f && i && j ? "" : " ")), !a.yearshtml) if(a.yearshtml = "", f || !j) l += '<span class="ui-datepicker-year">' + c + "</span>";
				else {
					var q = this._get(a, "yearRange").split(":"),
						r = (new Date).getFullYear(),
						s = function(a) {
							var b = a.match(/c[+-].*/) ? c + parseInt(a.substring(1), 10) : a.match(/[+-].*/) ? r + parseInt(a, 10) : parseInt(a, 10);
							return isNaN(b) ? r : b
						},
						t = s(q[0]),
						u = Math.max(t, s(q[1] || ""));
					for(t = d ? Math.max(t, d.getFullYear()) : t, u = e ? Math.min(u, e.getFullYear()) : u, a.yearshtml += '<select class="ui-datepicker-year" onchange="DP_jQuery_' + dpuuid + ".datepicker._selectMonthYear('#" + 
a.id + "', this, 'Y');\" " + ">"; u >= t; t++) a.yearshtml += '<option value="' + t + '"' + (t == c ? ' selected="selected"' : "") + ">" + t + "</option>";
 					a.yearshtml += "</select>", l += a.yearshtml, a.yearshtml = null
				}
				return l += this._get(a, "yearSuffix"), k && (l += (!f && i && j ? "" : " ") + m), l += "</div>"
			},
			_adjustInstDate: function(a, b, c) {
				var d = a.drawYear + ("Y" == c ? b : 0),
					e = a.drawMonth + ("M" == c ? b : 0),
					f = Math.min(a.selectedDay, this._getDaysInMonth(d, e)) + ("D" == c ? b : 0),
					g = this._restrictMinMax(a, this._daylightSavingAdjust(new Date(d, e, f)));
				a.selectedDay = g.getDate(), a.drawMonth = a.selectedMonth = g.getMonth(), a.drawYear = a.selectedYear = g.getFullYear(), ("M" == c || "Y" == c) && this._notifyChange(a)
			},
			_restrictMinMax: function(a, b) {
				var c = this._getMinMaxDate(a, "min"),
					d = this._getMinMaxDate(a, "max"),
					e = c && c > b ? c : b;
				return e = d && e > d ? d : e
			},
			_notifyChange: function(a) {
				var b = this._get(a, "onChangeMonthYear");
				b && b.apply(a.input ? a.input[0] : null, [a.selectedYear, a.selectedMonth + 1, a])
			},
			_getNumberOfMonths: function(a) {
				var b = this._get(a, "numberOfMonths");
				return null == b ? [1, 1] : "number" == typeof b ? [1, b] : b
			},
			_getMinMaxDate: function(a, b) {
				return this._determineDate(a, this._get(a, b + "Date"), null)
			},
			_getDaysInMonth: function(a, b) {
				return 32 - this._daylightSavingAdjust(new Date(a, b, 32)).getDate()
			},
			_getFirstDayOfMonth: function(a, b) {
				return new Date(a, b, 1).getDay()
			},
			_canAdjustMonth: function(a, b, c, d) {
				var e = this._getNumberOfMonths(a),
					f = this._daylightSavingAdjust(new Date(c, d + (0 > b ? b : e[0] * e[1]), 1));
				return 0 > b && f.setDate(this._getDaysInMonth(f.getFullYear(), f.getMonth())), this._isInRange(a, f)
			},
			_isInRange: function(a, b) {
				var c = this._getMinMaxDate(a, "min"),
					d = this._getMinMaxDate(a, "max");
				return(!c || b.getTime() >= c.getTime()) && (!d || b.getTime() <= d.getTime())
			},
			_getFormatConfig: function(a) {
				var b = this._get(a, "shortYearCutoff");
				return b = "string" != typeof b ? b : (new Date).getFullYear() % 100 + parseInt(b, 10), {
					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, d) {
				b || (a.currentDay = a.selectedDay, a.currentMonth = a.selectedMonth, a.currentYear = a.selectedYear);
				var e = b ? "object" == typeof b ? b : this._daylightSavingAdjust(new Date(d, c, b)) : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay));
				return this.formatDate(this._get(a, "dateFormat"), e, this._getFormatConfig(a))
			}
		}), $.fn.datepicker = function(a) {
			if(!this.length) return this;
			$.datepicker.initialized || ($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv), $.datepicker.initialized = !0);
			var b = Array.prototype.slice.call(arguments, 1);
			return "string" != typeof a || "isDisabled" != a && "getDate" != a && "widget" != a ? "option" == a && 2 == arguments.length && "string" == typeof arguments[1] ? $.datepicker["_" + a + "Datepicker"].apply($.datepicker, [this[0]].concat(b)) : this.each(function() {
				"string" == typeof a ? $.datepicker["_" + a + "Datepicker"].apply($.datepicker, [this].concat(b)) : $.datepicker._attachDatepicker(this, a)
			}) : $.datepicker["_" + a + "Datepicker"].apply($.datepicker, [this[0]].concat(b))
		}, $.datepicker = new Datepicker, $.datepicker.initialized = !1, $.datepicker.uuid = (new Date).getTime(), $.datepicker.version = "1.8.21", window["DP_jQuery_" + dpuuid] = $
	}(jQuery), function(a, b) {
		a.widget("ui.progressbar", {
			options: {
				value: 0,
				max: 100
			},
			min: 0,
			_create: function() {
				this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({
					role: "progressbar",
					"aria-valuemin": this.min,
					"aria-valuemax": this.options.max,
					"aria-valuenow": this._value()
				}), this.valueDiv = a("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element), this.oldValue = this._value(), this._refreshValue()
			},
			destroy: function() {
				this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"), this.valueDiv.remove(), a.Widget.prototype.destroy.apply(this, arguments)
			},
			value: function(a) {
				return a === b ? this._value() : (this._setOption("value", a), this)
			},
			_setOption: function(b, c) {
				"value" === b && (this.options.value = c, this._refreshValue(), this._value() === this.options.max && this._trigger("complete")), a.Widget.prototype._setOption.apply(this, arguments)
			},
			_value: function() {
				var a = this.options.value;
				return "number" != typeof a && (a = 0), Math.min(this.options.max, Math.max(this.min, a))
			},
			_percentage: function() {
				return 100 * this._value() / this.options.max
			},
			_refreshValue: function() {
				var a = this.value(),
					b = this._percentage();
				this.oldValue !== a && (this.oldValue = a, this._trigger("change")), this.valueDiv.toggle(a > this.min).toggleClass("ui-corner-right", a === this.options.max).width(b.toFixed(0) + "%"), this.element.attr("aria-valuenow", a)
			}
		}), a.extend(a.ui.progressbar, {
			version: "1.8.21"
		})
	}(jQuery), jQuery.effects ||
	function(a, b) {
		function c(b) {
			var c;
			return b && b.constructor == Array && 3 == b.length ? b : (c = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(b)) ? [parseInt(c[1], 10), parseInt(c[2], 10), parseInt(c[3], 10)] : (c = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(b)) ? [2.55 * parseFloat(c[1]), 2.55 * parseFloat(c[2]), 2.55 * parseFloat(c[3])] : (c = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(b)) ? [parseInt(c[1], 16), parseInt(c[2], 16), parseInt(c[3], 16)] : (c = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(b)) ? [parseInt(c[1] + c[1], 16), parseInt(c[2] + c[2], 16), parseInt(c[3] + c[3], 16)] : (c = /rgba\(0, 0, 0, 0\)/.exec(b)) ? j.transparent : j[a.trim(b).toLowerCase()]
		}
		function d(b, d) {
			var e;
			do {
				if(e = a.curCSS(b, d), "" != e && "transparent" != e || a.nodeName(b, "body")) break;
				d = "backgroundColor"
			} while (b = b.parentNode);
			return c(e)
		}
		function e() {
			var c, d, a = document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle,
				b = {};
			if(a && a.length && a[0] && a[a[0]]) for(var e = a.length; e--;) c = a[e], "string" == typeof a[c] && (d = c.replace(/\-(\w)/g, function(a, b) {
				return b.toUpperCase()
			}), b[d] = a[c]);
			else for(c in a) "string" == typeof a[c] && (b[c] = a[c]);
			return b
		}
		function f(b) {
			var c, d;
			for(c in b) d = b[c], (null == d || a.isFunction(d) || c in l || /scrollbar/.test(c) || !/color/i.test(c) && isNaN(parseFloat(d))) && delete b[c];
			return b
		}
		function g(a, b) {
			var d, c = {
				_: 0
			};
			for(d in b) a[d] != b[d] && (c[d] = b[d]);
			return c
		}
		function h(b, c, d, e) {
			return "object" == typeof b && (e = c, d = null, c = b, b = c.effect), a.isFunction(c) && (e = c, d = null, c = {}), ("number" == typeof c || a.fx.speeds[c]) && (e = d, d = c, c = {}), a.isFunction(d) && (e = d, d = null), c = c || {}, d = d || c.duration, d = a.fx.off ? 0 : "number" == typeof d ? d : d in a.fx.speeds ? a.fx.speeds[d] : a.fx.speeds._default, e = e || c.complete, [b, c, d, e]
		}
		function i(b) {
			return !b || "number" == typeof b || a.fx.speeds[b] ? !0 : "string" != typeof b || a.effects[b] ? !1 : !0
		}
		a.effects = {}, a.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "borderColor", "color", "outlineColor"], function(b, e) {
			a.fx.step[e] = function(a) {
				a.colorInit || (a.start = d(a.elem, e), a.end = c(a.end), a.colorInit = !0), a.elem.style[e] = "rgb(" + Math.max(Math.min(parseInt(a.pos * (a.end[0] - a.start[0]) + a.start[0], 10), 255), 0) + "," + Math.max(Math.min(parseInt(a.pos * (a.end[1] - a.start[1]) + a.start[1], 10), 255), 0) + "," + Math.max(Math.min(parseInt(a.pos * (a.end[2] - a.start[2]) + a.start[2], 10), 255), 0) + ")"
			}
		});
		var j = {
			aqua: [0, 255, 255],
			azure: [240, 255, 255],
			beige: [245, 245, 220],
			black: [0, 0, 0],
			blue: [0, 0, 255],
			brown: [165, 42, 42],
			cyan: [0, 255, 255],
			darkblue: [0, 0, 139],
			darkcyan: [0, 139, 139],
			darkgrey: [169, 169, 169],
			darkgreen: [0, 100, 0],
			darkkhaki: [189, 183, 107],
			darkmagenta: [139, 0, 139],
			darkolivegreen: [85, 107, 47],
			darkorange: [255, 140, 0],
			darkorchid: [153, 50, 204],
			darkred: [139, 0, 0],
			darksalmon: [233, 150, 122],
			darkviolet: [148, 0, 211],
			fuchsia: [255, 0, 255],
			gold: [255, 215, 0],
			green: [0, 128, 0],
			indigo: [75, 0, 130],
			khaki: [240, 230, 140],
			lightblue: [173, 216, 230],
			lightcyan: [224, 255, 255],
			lightgreen: [144, 238, 144],
			lightgrey: [211, 211, 211],
			lightpink: [255, 182, 193],
			lightyellow: [255, 255, 224],
			lime: [0, 255, 0],
			magenta: [255, 0, 255],
			maroon: [128, 0, 0],
			navy: [0, 0, 128],
			olive: [128, 128, 0],
			orange: [255, 165, 0],
			pink: [255, 192, 203],
			purple: [128, 0, 128],
			violet: [128, 0, 128],
			red: [255, 0, 0],
			silver: [192, 192, 192],
			white: [255, 255, 255],
			yellow: [255, 255, 0],
			transparent: [255, 255, 255]
		},
			k = ["add", "remove", "toggle"],
			l = {
				border: 1,
				borderBottom: 1,
				borderColor: 1,
				borderLeft: 1,
				borderRight: 1,
				borderTop: 1,
				borderWidth: 1,
				margin: 1,
				padding: 1
			};
		a.effects.animateClass = function(b, c, d, h) {
			return a.isFunction(d) && (h = d, d = null), this.queue(function() {
				var m, i = a(this),
					j = i.attr("style") || " ",
					l = f(e.call(this)),
					n = i.attr("class") || "";
				a.each(k, function(a, c) {
					b[c] && i[c + "Class"](b[c])
				}), m = f(e.call(this)), i.attr("class", n), i.animate(g(l, m), {
					queue: !1,
					duration: c,
					easing: d,
					complete: function() {
						a.each(k, function(a, c) {
							b[c] && i[c + "Class"](b[c])
						}), "object" == typeof i.attr("style") ? (i.attr("style").cssText = "", i.attr("style").cssText = j) : i.attr("style", j), h && h.apply(this, arguments), a.dequeue(this)
					}
				})
			})
		}, a.fn.extend({
			_addClass: a.fn.addClass,
			addClass: function(b, c, d, e) {
				return c ? a.effects.animateClass.apply(this, [{
					add: b
				},
				c, d, e]) : this._addClass(b)
			},
			_removeClass: a.fn.removeClass,
			removeClass: function(b, c, d, e) {
				return c ? a.effects.animateClass.apply(this, [{
					remove: b
				},
				c, d, e]) : this._removeClass(b)
			},
			_toggleClass: a.fn.toggleClass,
			toggleClass: function(c, d, e, f, g) {
				return "boolean" == typeof d || d === b ? e ? a.effects.animateClass.apply(this, [d ? {
					add: c
				} : {
					remove: c
				},
				e, f, g]) : this._toggleClass(c, d) : a.effects.animateClass.apply(this, [{
					toggle: c
				},
				d, e, f])
			},
			switchClass: function(b, c, d, e, f) {
				return a.effects.animateClass.apply(this, [{
					add: c,
					remove: b
				},
				d, e, f])
			}
		}), a.extend(a.effects, {
			version: "1.8.21",
			save: function(a, b) {
				for(var c = 0; b.length > c; c++) null !== b[c] && a.data("ec.storage." + b[c], a[0].style[b[c]])
			},
			restore: function(a, b) {
				for(var c = 0; b.length > c; c++) null !== b[c] && a.css(b[c], a.data("ec.storage." + b[c]))
			},
			setMode: function(a, b) {
				return "toggle" == b && (b = 
a.is(":hidden") ? "show" : "hide"), b
 			},
			getBaseline: function(a, b) {
				var c, d;
				switch(a[0]) {
				case "top":
					c = 0;
					break;
				case "middle":
					c = .5;
					break;
				case "bottom":
					c = 1;
					break;
				default:
					c = a[0] / b.height
				}
				switch(a[1]) {
				case "left":
					d = 0;
					break;
				case "center":
					d = .5;
					break;
				case "right":
					d = 1;
					break;
				default:
					d = a[1] / b.width
				}
				return {
					x: d,
					y: c
				}
			},
			createWrapper: function(b) {
				if(b.parent().is(".ui-effects-wrapper")) return b.parent();
				var c = {
					width: b.outerWidth(!0),
					height: b.outerHeight(!0),
					"float": b.css("float")
				},
					d = a("<div></div>").addClass("ui-effects-wrapper").css({
						fontSize: "100%",
						background: "transparent",
						border: "none",
						margin: 0,
						padding: 0
					}),
					e = document.activeElement;
				try {
				} catch(f) {
					e = document.body
				}
				return b.wrap(d), (b[0] === e || a.contains(b[0], e)) && a(e).focus(), d = b.parent(), "static" == b.css("position") ? (d.css({
					position: "relative"
				}), b.css({
					position: "relative"
				})) : (a.extend(c, {
					position: b.css("position"),
					zIndex: b.css("z-index")
				}), a.each(["top", "left", "bottom", "right"], function(a, d) {
					c[d] = b.css(d), isNaN(parseInt(c[d], 10)) && (c[d] = "auto")
				}), b.css({
					position: "relative",
					top: 0,
					left: 0,
					right: "auto",
					bottom: "auto"
				})), d.css(c).show()
			},
			removeWrapper: function(b) {
				var c, d = document.activeElement;
				return b.parent().is(".ui-effects-wrapper") ? (c = b.parent().replaceWith(b), (b[0] === d || a.contains(b[0], d)) && a(d).focus(), c) : b
			},
			setTransition: function(b, c, d, e) {
				return e = e || {}, a.each(c, function(a, c) {
					var f = b.cssUnit(c);
					f[0] > 0 && (e[c] = f[0] * d + f[1])
				}), e
			}
		}), a.fn.extend({
			effect: function(b) {
				var f = h.apply(this, arguments),
					g = {
						options: f[1],
						duration: f[2],
						callback: f[3]
					},
					i = g.options.mode,
					j = a.effects[b];
				return a.fx.off || !j ? i ? this[i](g.duration, g.callback) : this.each(function() {
					g.callback && g.callback.call(this)
				}) : j.call(this, g)
			},
			_show: a.fn.show,
			show: function(a) {
				if(i(a)) return this._show.apply(this, arguments);
				var b = h.apply(this, arguments);
				return b[1].mode = "show", this.effect.apply(this, b)
			},
			_hide: a.fn.hide,
			hide: function(a) {
				if(i(a)) return this._hide.apply(this, arguments);
				var b = h.apply(this, arguments);
				return b[1].mode = "hide", this.effect.apply(this, b)
			},
			__toggle: a.fn.toggle,
			toggle: function(b) {
				if(i(b) || "boolean" == typeof b || a.isFunction(b)) return this.__toggle.apply(this, arguments);
				var c = h.apply(this, arguments);
				return c[1].mode = "toggle", this.effect.apply(this, c)
			},
			cssUnit: function(b) {
				var c = this.css(b),
					d = [];
				return a.each(["em", "px", "%", "pt"], function(a, b) {
					c.indexOf(b) > 0 && (d = [parseFloat(c), b])
				}), d
			}
		}), a.easing.jswing = a.easing.swing, a.extend(a.easing, {
			def: "easeOutQuad",
			swing: function(b, c, d, e, f) {
				return a.easing[a.easing.def](b, c, d, e, f)
			},
			easeInQuad: function(a, b, c, d, e) {
				return d * (b /= e) * b + c
			},
			easeOutQuad: function(a, b, c, d, e) {
				return -d * (b /= e) * (b - 2) + c
			},
			easeInOutQuad: function(a, b, c, d, e) {
				return 1 > (b /= e / 2) ? d / 2 * b * b + c : -d / 2 * (--b * (b - 2) - 1) + c
			},
			easeInCubic: function(a, b, c, d, e) {
				return d * (b /= e) * b * b + c
			},
			easeOutCubic: function(a, b, c, d, e) {
				return d * ((b = b / e - 1) * b * b + 1) + c
			},
			easeInOutCubic: function(a, b, c, d, e) {
				return 1 > (b /= e / 2) ? d / 2 * b * b * b + c : d / 2 * ((b -= 2) * b * b + 2) + c
			},
			easeInQuart: function(a, b, c, d, e) {
				return d * (b /= e) * b * b * b + c
			},
			easeOutQuart: function(a, b, c, d, e) {
				return -d * ((b = b / e - 1) * b * b * b - 1) + c
			},
			easeInOutQuart: function(a, b, c, d, e) {
				return 1 > (b /= e / 2) ? d / 2 * b * b * b * b + c : -d / 2 * ((b -= 2) * b * b * b - 2) + c
			},
			easeInQuint: function(a, b, c, d, e) {
				return d * (b /= e) * b * b * b * b + c
			},
			easeOutQuint: function(a, b, c, d, e) {
				return d * ((b = b / e - 1) * b * b * b * b + 1) + c
			},
			easeInOutQuint: function(a, b, c, d, e) {
				return 1 > (b /= e / 2) ? d / 2 * b * b * b * b * b + c : d / 2 * ((b -= 2) * b * b * b * b + 2) + c
			},
			easeInSine: function(a, b, c, d, e) {
				return -d * Math.cos(b / e * (Math.PI / 2)) + d + c
			},
			easeOutSine: function(a, b, c, d, e) {
				return d * Math.sin(b / e * (Math.PI / 2)) + c
			},
			easeInOutSine: function(a, b, c, d, e) {
				return -d / 2 * (Math.cos(Math.PI * b / e) - 1) + c
			},
			easeInExpo: function(a, b, c, d, e) {
				return 0 == b ? c : d * Math.pow(2, 10 * (b / e - 1)) + c
			},
			easeOutExpo: function(a, b, c, d, e) {
				return b == e ? c + d : d * (-Math.pow(2, -10 * b / e) + 1) + c
			},
			easeInOutExpo: function(a, b, c, d, e) {
				return 0 == b ? c : b == e ? c + d : 1 > (b /= e / 2) ? d / 2 * Math.pow(2, 10 * (b - 1)) + c : d / 2 * (-Math.pow(2, -10 * --b) + 2) + c
			},
			easeInCirc: function(a, b, c, d, e) {
				return -d * (Math.sqrt(1 - (b /= e) * b) - 1) + c
			},
			easeOutCirc: function(a, b, c, d, e) {
				return d * Math.sqrt(1 - (b = b / e - 1) * b) + c
			},
			easeInOutCirc: function(a, b, c, d, e) {
				return 1 > (b /= e / 2) ? -d / 2 * (Math.sqrt(1 - b * b) - 1) + c : d / 2 * (Math.sqrt(1 - (b -= 2) * b) + 1) + c
			},
			easeInElastic: function(a, b, c, d, e) {
				var f = 1.70158,
					g = 0,
					h = d;
				if(0 == b) return c;
				if(1 == (b /= e)) return c + d;
				if(g || (g = .3 * e), Math.abs(d) > h) {
					h = d;
					var f = g / 4
				} else var f = g / (2 * Math.PI) * Math.asin(d / h);
				return -(h * Math.pow(2, 10 * (b -= 1)) * Math.sin(2 * (b * e - f) * Math.PI / g)) + c
			},
			easeOutElastic: function(a, b, c, d, e) {
				var f = 1.70158,
					g = 0,
					h = d;
				if(0 == b) return c;
				if(1 == (b /= e)) return c + d;
				if(g || (g = .3 * e), Math.abs(d) > h) {
					h = d;
					var f = g / 4
				} else var f = g / (2 * Math.PI) * Math.asin(d / h);
				return h * Math.pow(2, -10 * b) * Math.sin(2 * (b * e - f) * Math.PI / g) + d + c
			},
			easeInOutElastic: function(a, b, c, d, e) {
				var f = 1.70158,
					g = 0,
					h = d;
				if(0 == b) return c;
				if(2 == (b /= e / 2)) return c + d;
				if(g || (g = 1.5 * .3 * e), Math.abs(d) > h) {
					h = d;
					var f = g / 4
				} else var f = g / (2 * Math.PI) * Math.asin(d / h);
				return 1 > b ? -.5 * h * Math.pow(2, 10 * (b -= 1)) * Math.sin(2 * (b * e - f) * Math.PI / g) + c : .5 * h * Math.pow(2, -10 * (b -= 1)) * Math.sin(2 * (b * e - f) * Math.PI / g) + d + c
			},
			easeInBack: function(a, c, d, e, f, g) {
				return g == b && (g = 1.70158), e * (c /= f) * c * ((g + 1) * c - g) + d
			},
			easeOutBack: function(a, c, d, e, f, g) {
				return g == b && (g = 1.70158), e * ((c = c / f - 1) * c * ((g + 1) * c + g) + 1) + d
			},
			easeInOutBack: function(a, c, d, e, f, g) {
				return g == b && (g = 1.70158), 1 > (c /= f / 2) ? e / 2 * c * c * (((g *= 1.525) + 1) * c - g) + d : e / 2 * ((c -= 2) * c * (((g *= 1.525) + 1) * c + g) + 2) + d
			},
			easeInBounce: function(b, c, d, e, f) {
				return e - a.easing.easeOutBounce(b, f - c, 0, e, f) + d
			},
			easeOutBounce: function(a, b, c, d, e) {
				return 1 / 2.75 > (b /= e) ? 7.5625 * d * b * b + c : 2 / 2.75 > b ? d * (7.5625 * (b -= 1.5 / 2.75) * b + .75) + c : 2.5 / 2.75 > b ? d * (7.5625 * (b -= 2.25 / 2.75) * b + .9375) + c : d * (7.5625 * (b -= 2.625 / 2.75) * b + .984375) + c
			},
			easeInOutBounce: function(b, c, d, e, f) {
				return f / 2 > c ? .5 * a.easing.easeInBounce(b, 2 * c, 0, e, f) + d : .5 * a.easing.easeOutBounce(b, 2 * c - f, 0, e, f) + .5 * e + d
			}
		})
	}(jQuery), function(a) {
		a.effects.blind = function(b) {
			return this.queue(function() {
				var c = a(this),
					d = ["position", "top", "bottom", "left", "right"],
					e = a.effects.setMode(c, b.options.mode || "hide"),
					f = b.options.direction || "vertical";
				a.effects.save(c, d), c.show();
				var g = a.effects.createWrapper(c).css({
					overflow: "hidden"
				}),
					h = "vertical" == f ? "height" : "width",
					i = "vertical" == f ? g.height() : g.width();
				"show" == e && g.css(h, 0);
				var j = {};
				j[h] = "show" == e ? i : 0, g.animate(j, b.duration, b.options.easing, function() {
					"hide" == e && c.hide(), a.effects.restore(c, d), a.effects.removeWrapper(c), b.callback && b.callback.apply(c[0], arguments), c.dequeue()
				})
			})
		}
	}(jQuery), function(a) {
		a.effects.bounce = function(b) {
			return this.queue(function() {
				var c = a(this),
					d = ["position", "top", "bottom", "left", "right"],
					e = a.effects.setMode(c, b.options.mode || "effect"),
					f = b.options.direction || "up",
					g = b.options.distance || 20,
					h = b.options.times || 5,
					i = b.duration || 250;
				/show|hide/.test(e) && d.push("opacity"), a.effects.save(c, d), c.show(), a.effects.createWrapper(c);
				var j = "up" == f || "down" == f ? "top" : "left",
					k = "up" == f || "left" == f ? "pos" : "neg",
					g = b.options.distance || ("top" == j ? c.outerHeight({
						margin: !0
					}) / 3 : c.outerWidth({
						margin: !0
					}) / 3);
				if("show" == e && c.css("opacity", 0).css(j, "pos" == k ? -g : g), "hide" == e && (g /= 2 * h), "hide" != e && h--, "show" == e) {
					var l = {
						opacity: 1
					};
					l[j] = ("pos" == k ? "+=" : "-=") + g, c.animate(l, i / 2, b.options.easing), g /= 2, h--
				}
				for(var m = 0; h > m; m++) {
					var n = {},
						o = {};
					n[j] = ("pos" == k ? "-=" : "+=") + g, o[j] = ("pos" == k ? "+=" : "-=") + g, c.animate(n, i / 2, b.options.easing).animate(o, i / 2, b.options.easing), g = "hide" == e ? 2 * g : g / 2
				}
				if("hide" == e) {
					var l = {
						opacity: 0
					};
					l[j] = ("pos" == k ? "-=" : "+=") + g, c.animate(l, i / 2, b.options.easing, function() {
						c.hide(), a.effects.restore(c, d), a.effects.removeWrapper(c), b.callback && b.callback.apply(this, arguments)
					})
				} else {
					var n = {},
						o = {};
					n[j] = ("pos" == k ? "-=" : "+=") + g, o[j] = ("pos" == k ? "+=" : "-=") + g, c.animate(n, i / 2, b.options.easing).animate(o, i / 2, b.options.easing, function() {
						a.effects.restore(c, d), a.effects.removeWrapper(c), b.callback && b.callback.apply(this, arguments)
					})
				}
				c.queue("fx", function() {
					c.dequeue()
				}), c.dequeue()
			})
		}
	}(jQuery), function(a) {
		a.effects.clip = function(b) {
			return this.queue(function() {
				var c = a(this),
					d = ["position", "top", "bottom", "left", "right", "height", "width"],
					e = a.effects.setMode(c, b.options.mode || "hide"),
					f = b.options.direction || "vertical";
				a.effects.save(c, d), c.show();
				var g = a.effects.createWrapper(c).css({
					overflow: "hidden"
				}),
					h = "IMG" == c[0].tagName ? g : c,
					i = {
						size: "vertical" == f ? "height" : "width",
						position: "vertical" == f ? "top" : "left"
					},
					j = "vertical" == f ? h.height() : h.width();
				"show" == e && (h.css(i.size, 0), h.css(i.position, j / 2));
				var k = {};
				k[i.size] = "show" == e ? j : 0, k[i.position] = "show" == e ? 0 : j / 2, h.animate(k, {
					queue: !1,
					duration: b.duration,
					easing: b.options.easing,
					complete: function() {
						"hide" == e && c.hide(), a.effects.restore(c, d), a.effects.removeWrapper(c), b.callback && b.callback.apply(c[0], arguments), c.dequeue()
					}
				})
			})
		}
	}(jQuery), function(a) {
		a.effects.drop = function(b) {
			return this.queue(function() {
				var c = a(this),
					d = ["position", "top", "bottom", "left", "right", "opacity"],
					e = a.effects.setMode(c, b.options.mode || "hide"),
					f = b.options.direction || "left";
				a.effects.save(c, d), c.show(), a.effects.createWrapper(c);
				var g = "up" == f || "down" == f ? "top" : "left",
					h = "up" == f || "left" == f ? "pos" : "neg",
					i = b.options.distance || ("top" == g ? c.outerHeight({
						margin: !0
					}) / 2 : c.outerWidth({
						margin: !0
					}) / 2);
				"show" == e && c.css("opacity", 0).css(g, "pos" == h ? -i : i);
				var j = {
					opacity: "show" == e ? 1 : 0
				};
				j[g] = ("show" == e ? "pos" == h ? "+=" : "-=" : "pos" == h ? "-=" : "+=") + i, c.animate(j, {
					queue: !1,
					duration: b.duration,
					easing: b.options.easing,
					complete: function() {
						"hide" == e && c.hide(), a.effects.restore(c, d), a.effects.removeWrapper(c), b.callback && b.callback.apply(this, arguments), c.dequeue()
					}
				})
			})
		}
	}(jQuery), function(a) {
		a.effects.explode = function(b) {
			return this.queue(function() {
				var c = b.options.pieces ? Math.round(Math.sqrt(b.options.pieces)) : 3,
					d = b.options.pieces ? Math.round(Math.sqrt(b.options.pieces)) : 3;
				b.options.mode = "toggle" == b.options.mode ? a(this).is(":visible") ? "hide" : "show" : b.options.mode;
				var e = a(this).show().css("visibility", "hidden"),
					f = e.offset();
				f.top -= parseInt(e.css("marginTop"), 10) || 0, f.left -= parseInt(e.css("marginLeft"), 10) || 0;
				for(var g = e.outerWidth(!0), h = e.outerHeight(!0), i = 0; c > i; i++) for(var j = 0; d > j; j++) e.clone().appendTo("body").wrap("<div></div>").css({
					position: "absolute",
					visibility: "visible",
					left: -j * (g / d),
					top: -i * (h / c)
				}).parent().addClass("ui-effects-explode").css({
					position: "absolute",
					overflow: "hidden",
					width: g / d,
					height: h / c,
					left: f.left + j * (g / d) + ("show" == b.options.mode ? (j - Math.floor(d / 2)) * (g / d) : 0),
					top: f.top + i * (h / c) + ("show" == b.options.mode ? (i - Math.floor(c / 2)) * (h / c) : 0),
					opacity: "show" == b.options.mode ? 0 : 1
				}).animate({
					left: f.left + j * (g / d) + ("show" == b.options.mode ? 0 : (j - Math.floor(d / 2)) * (g / d)),
					top: f.top + i * (h / c) + ("show" == b.options.mode ? 0 : (i - Math.floor(c / 2)) * (h / c)),
					opacity: "show" == b.options.mode ? 1 : 0
				}, b.duration || 500);
				setTimeout(function() {
					"show" == b.options.mode ? e.css({
						visibility: "visible"
					}) : e.css({
						visibility: "visible"
					}).hide(), b.callback && b.callback.apply(e[0]), e.dequeue(), a("div.ui-effects-explode").remove()
				}, b.duration || 500)
			})
		}
	}(jQuery), function(a) {
		a.effects.fade = function(b) {
			return this.queue(function() {
				var c = a(this),
					d = a.effects.setMode(c, b.options.mode || "hide");
				c.animate({
					opacity: d
				}, {
					queue: !1,
					duration: b.duration,
					easing: b.options.easing,
					complete: function() {
						b.callback && b.callback.apply(this, arguments), c.dequeue()
					}
				})
			})
		}
	}(jQuery), function(a) {
		a.effects.fold = function(b) {
			return this.queue(function() {
				var c = a(this),
					d = ["position", "top", "bottom", "left", "right"],
					e = a.effects.setMode(c, b.options.mode || "hide"),
					f = b.options.size || 15,
					g = !! b.options.horizFirst,
					h = b.duration ? b.duration / 2 : a.fx.speeds._default / 2;
				a.effects.save(c, d), c.show();
				var i = a.effects.createWrapper(c).css({
					overflow: "hidden"
				}),
					j = "show" == e != g,
					k = j ? ["width", "height"] : ["height", "width"],
					l = j ? [i.width(), i.height()] : [i.height(), i.width()],
					m = /([0-9]+)%/.exec(f);
				m && (f = parseInt(m[1], 10) / 100 * l["hide" == e ? 0 : 1]), "show" == e && i.css(g ? {
					height: 0,
					width: f
				} : {
					height: f,
					width: 0
				});
				var n = {},
					o = {};
				n[k[0]] = "show" == e ? l[0] : f, o[k[1]] = "show" == e ? l[1] : 0, i.animate(n, h, b.options.easing).animate(o, h, b.options.easing, function() {
					"hide" == e && c.hide(), a.effects.restore(c, d), a.effects.removeWrapper(c), b.callback && b.callback.apply(c[0], arguments), c.dequeue()
				})
			})
		}
	}(jQuery), function(a) {
		a.effects.highlight = function(b) {
			return this.queue(function() {
				var c = a(this),
					d = ["backgroundImage", "backgroundColor", "opacity"],
					e = a.effects.setMode(c, b.options.mode || "show"),
					f = {
						backgroundColor: c.css("backgroundColor")
					};
				"hide" == e && (f.opacity = 0), a.effects.save(c, d), c.show().css({
					backgroundImage: "none",
					backgroundColor: b.options.color || "#ffff99"
				}).animate(f, {
					queue: !1,
					duration: b.duration,
					easing: b.options.easing,
					complete: function() {
						"hide" == e && c.hide(), a.effects.restore(c, d), "show" == e && !a.support.opacity && this.style.removeAttribute("filter"), b.callback && b.callback.apply(this, arguments), c.dequeue()
					}
				})
			})
		}
	}(jQuery), function(a) {
		a.effects.pulsate = function(b) {
			return this.queue(function() {
				var c = a(this),
					d = a.effects.setMode(c, b.options.mode || "show"),
					e = 2 * (b.options.times || 5) - 1,
					f = b.duration ? b.duration / 2 : a.fx.speeds._default / 2,
					h = 0;
				g || (c.css("opacity", 0).show(), h = 1), ("hide" == d && g || "show" == d && !g) && e--;
				for(var i = 0; e > i; i++) c.animate({
					opacity: h
				}, f, b.options.easing), h = (h + 1) % 2;
				c.animate({
					opacity: h
				}, f, b.options.easing, function() {
					0 == h && c.hide(), b.callback && b.callback.apply(this, arguments)
				}), c.queue("fx", function() {
					c.dequeue()
				}).dequeue()
			})
		}
	}(jQuery), function(a) {
		a.effects.puff = function(b) {
			return this.queue(function() {
				var c = a(this),
					d = a.effects.setMode(c, b.options.mode || "hide"),
					e = parseInt(b.options.percent, 10) || 150,
					f = e / 100,
					g = {
						height: c.height(),
						width: c.width()
					};
				a.extend(b.options, {
					fade: !0,
					mode: d,
					percent: "hide" == d ? e : 100,
					from: "hide" == d ? g : {
						height: g.height * f,
						width: g.width * f
					}
				}), c.effect("scale", b.options, b.duration, b.callback), c.dequeue()
			})
		}, a.effects.scale = function(b) {
			return this.queue(function() {
				var c = a(this),
					d = a.extend(!0, {}, b.options),
					e = a.effects.setMode(c, b.options.mode || "effect"),
					f = parseInt(b.options.percent, 10) || (0 == parseInt(b.options.percent, 10) ? 0 : "hide" == e ? 0 : 100),
					g = b.options.direction || "both",
					h = b.options.origin;
				"effect" != e && (d.origin = h || ["middle", "center"], d.restore = !0);
				var i = {
					height: c.height(),
					width: c.width()
				};
				c.from = b.options.from || ("show" == e ? {
					height: 0,
					width: 0
				} : i);
				var j = {
					y: "horizontal" != g ? f / 100 : 1,
					x: "vertical" != g ? f / 100 : 1
				};
					height: i.height * j.y,
					width: i.width * j.x
				}, b.options.fade && ("show" == e && (c.from.opacity = 0, c.to.opacity = 1), "hide" == e && (c.from.opacity = 1, c.to.opacity = 0)), d.from = c.from, 
d.to = 
c.to, d.mode = e, c.effect("size", d, b.duration, b.callback), c.dequeue()
 			})
		}, a.effects.size = function(b) {
			return this.queue(function() {
				var c = a(this),
					d = ["position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity"],
					e = ["position", "top", "bottom", "left", "right", "overflow", "opacity"],
					f = ["width", "height", "overflow"],
					g = ["fontSize"],
					h = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"],
					i = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"],
					j = a.effects.setMode(c, b.options.mode || "effect"),
					k = b.options.restore || !1,
					l = b.options.scale || "both",
					m = b.options.origin,
					n = {
						height: c.height(),
						width: c.width()
					};
					var o = a.effects.getBaseline(m, n);
					c.from.top = (n.height - c.from.height) * o.y, c.from.left = (n.width - c.from.width) * o.x, c.to.top = (n.height - c.to.height) * o.y, c.to.left = (n.width - c.to.width) * o.x
				}
				var p = {
					from: {
						y: c.from.height / n.height,
						x: c.from.width / n.width
					},
					to: {
						y: c.to.height / n.height,
						x: c.to.width / n.width
					}
				};
				("box" == l || "both" == l) && (p.from.y != p.to.y && (d = d.concat(h), c.from = a.effects.setTransition(c, h, p.from.y, c.from), 
c.to = a.effects.setTransition(c, h, p.to.y, 
c.to)), p.from.x != p.to.x && (d = d.concat(i), c.from = a.effects.setTransition(c, i, p.from.x, c.from), 
c.to = a.effects.setTransition(c, i, p.to.x, 
c.to))), ("content" == l || "both" == l) && p.from.y != p.to.y && (d = d.concat(g), c.from = a.effects.setTransition(c, g, p.from.y, c.from), 
c.to = a.effects.setTransition(c, g, p.to.y, 
c.to)), a.effects.save(c, k ? d : e), c.show(), a.effects.createWrapper(c), c.css("overflow", "hidden").css(c.from), ("content" == l || "both" == l) && (h = h.concat(["marginTop", "marginBottom"]).concat(g), i = i.concat(["marginLeft", "marginRight"]), f = d.concat(h).concat(i), c.find("*[width]").each(function() {
 					var c = a(this);
					k && a.effects.save(c, f);
					var d = {
						height: c.height(),
						width: c.width()
					};
					c.from = {
						height: d.height * p.from.y,
						width: d.width * p.from.x
						height: d.height * p.to.y,
						width: d.width * p.to.x
					}, p.from.y != p.to.y && (c.from = a.effects.setTransition(c, h, p.from.y, c.from), 
c.to = a.effects.setTransition(c, h, p.to.y, 
c.to)), p.from.x != p.to.x && (c.from = a.effects.setTransition(c, i, p.from.x, c.from), 
c.to = a.effects.setTransition(c, i, p.to.x, 
c.to)), c.css(c.from), c.animate(
c.to, b.duration, b.options.easing, function() {
 						k && a.effects.restore(c, f)
					})
					queue: !1,
					duration: b.duration,
					easing: b.options.easing,
					complete: function() {
						0 === c.to.opacity && c.css("opacity", c.from.opacity), "hide" == j && c.hide(), a.effects.restore(c, k ? d : e), a.effects.removeWrapper(c), b.callback && b.callback.apply(this, arguments), c.dequeue()
					}
				})
			})
		}
	}(jQuery), function(a) {
		a.effects.shake = function(b) {
			return this.queue(function() {
				var c = a(this),
					d = ["position", "top", "bottom", "left", "right"],
					f = (a.effects.setMode(c, b.options.mode || "effect"), b.options.direction || "left"),
					g = b.options.distance || 20,
					h = b.options.times || 3,
					i = b.duration || b.options.duration || 140;
				a.effects.save(c, d), c.show(), a.effects.createWrapper(c);
				var j = "up" == f || "down" == f ? "top" : "left",
					k = "up" == f || "left" == f ? "pos" : "neg",
					l = {},
					m = {},
					n = {};
				l[j] = ("pos" == k ? "-=" : "+=") + g, m[j] = ("pos" == k ? "+=" : "-=") + 2 * g, n[j] = ("pos" == k ? "-=" : "+=") + 2 * g, c.animate(l, i, b.options.easing);
				for(var o = 1; h > o; o++) c.animate(m, i, b.options.easing).animate(n, i, b.options.easing);
				c.animate(m, i, b.options.easing).animate(l, i / 2, b.options.easing, function() {
					a.effects.restore(c, d), a.effects.removeWrapper(c), b.callback && b.callback.apply(this, arguments)
				}), c.queue("fx", function() {
					c.dequeue()
				}), c.dequeue()
			})
		}
	}(jQuery), function(a) {
		a.effects.slide = function(b) {
			return this.queue(function() {
				var c = a(this),
					d = ["position", "top", "bottom", "left", "right"],
					e = a.effects.setMode(c, b.options.mode || "show"),
					f = b.options.direction || "left";
				a.effects.save(c, d), c.show(), a.effects.createWrapper(c).css({
					overflow: "hidden"
				});
				var g = "up" == f || "down" == f ? "top" : "left",
					h = "up" == f || "left" == f ? "pos" : "neg",
					i = b.options.distance || ("top" == g ? c.outerHeight({
						margin: !0
					}) : c.outerWidth({
						margin: !0
					}));
				"show" == e && c.css(g, "pos" == h ? isNaN(i) ? "-" + i : -i : i);
				var j = {};
				j[g] = ("show" == e ? "pos" == h ? "+=" : "-=" : "pos" == h ? "-=" : "+=") + i, c.animate(j, {
					queue: !1,
					duration: b.duration,
					easing: b.options.easing,
					complete: function() {
						"hide" == e && c.hide(), a.effects.restore(c, d), a.effects.removeWrapper(c), b.callback && b.callback.apply(this, arguments), c.dequeue()
					}
				})
			})
		}
	}(jQuery), function(a) {
		a.effects.transfer = function(b) {
			return this.queue(function() {
				var c = a(this),
					e = d.offset(),
					f = {
						top: e.top,
						left: e.left,
						height: d.innerHeight(),
						width: d.innerWidth()
					},
					g = c.offset(),
					h = a('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(b.options.className).css({
						top: g.top,
						left: g.left,
						height: c.innerHeight(),
						width: c.innerWidth(),
						position: "absolute"
					}).animate(f, b.duration, b.options.easing, function() {
						h.remove(), b.callback && b.callback.apply(c[0], arguments), c.dequeue()
					})
			})
		}
	}(jQuery), module.exports = $
});
在 2012年8月1日星期三UTC+8上午11时45分17秒,泡泡写道: