/*!
 * jQuery UI 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI
 */
(function(c) {
	c.ui = c.ui || {};
	if (!c.ui.version) {
		c.extend(c.ui, {
			version: "1.8.2",
			plugin: {
				add: function(a, b, d) {
					a = c.ui[a].prototype;
					for (var e in d) {
						a.plugins[e] = a.plugins[e] || [];
						a.plugins[e].push([b, d[e]])
					}
				},
				call: function(a, b, d) {
					if ((b = a.plugins[b]) && a.element[0].parentNode) for (var e = 0; e < b.length; e++) a.options[b[e][0]] && b[e][1].apply(a.element, d)
				}
			},
			contains: function(a, b) {
				return document.compareDocumentPosition ? a.compareDocumentPosition(b) & 16 : a !== b && a.contains(b)
			},
			hasScroll: function(a, b) {
				if (c(a).css("overflow") == "hidden") return false;
				b = b && b == "left" ? "scrollLeft" : "scrollTop";
				var d = false;
				if (a[b] > 0) return true;
				a[b] = 1;
				d = a[b] > 0;
				a[b] = 0;
				return d
			},
			isOverAxis: function(a, b, d) {
				return a > b && a < b + d
			},
			isOver: function(a, b, d, e, f, g) {
				return c.ui.isOverAxis(a, d, f) && c.ui.isOverAxis(b, e, g)
			},
			keyCode: {
				ALT: 18,
				BACKSPACE: 8,
				CAPS_LOCK: 20,
				COMMA: 188,
				COMMAND: 91,
				COMMAND_LEFT: 91,
				COMMAND_RIGHT: 93,
				CONTROL: 17,
				DELETE: 46,
				DOWN: 40,
				END: 35,
				ENTER: 13,
				ESCAPE: 27,
				HOME: 36,
				INSERT: 45,
				LEFT: 37,
				MENU: 93,
				NUMPAD_ADD: 107,
				NUMPAD_DECIMAL: 110,
				NUMPAD_DIVIDE: 111,
				NUMPAD_ENTER: 108,
				NUMPAD_MULTIPLY: 106,
				NUMPAD_SUBTRACT: 109,
				PAGE_DOWN: 34,
				PAGE_UP: 33,
				PERIOD: 190,
				RIGHT: 39,
				SHIFT: 16,
				SPACE: 32,
				TAB: 9,
				UP: 38,
				WINDOWS: 91
			}
		});
		c.fn.extend({
			_focus: c.fn.focus,
			focus: function(a, b) {
				return typeof a === "number" ? this.each(function() {
					var d = this;
					setTimeout(function() {
						c(d).focus();
						b && b.call(d)
					},
					a)
				}) : this._focus.apply(this, arguments)
			},
			enableSelection: function() {
				return this.attr("unselectable", "off").css("MozUserSelect", "")
			},
			disableSelection: function() {
				return this.attr("unselectable", "on").css("MozUserSelect", "none")
			},
			scrollParent: function() {
				var a;
				a = c.browser.msie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? this.parents().filter(function() {
					return /(relative|absolute|fixed)/.test(c.curCSS(this, "position", 1)) && /(auto|scroll)/.test(c.curCSS(this, "overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x", 1))
				}).eq(0) : this.parents().filter(function() {
					return /(auto|scroll)/.test(c.curCSS(this, "overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x", 1))
				}).eq(0);
				return /fixed/.test(this.css("position")) || !a.length ? c(document) : a
			},
			zIndex: function(a) {
				if (a !== undefined) return this.css("zIndex", a);
				if (this.length) {
					a = c(this[0]);
					for (var b; a.length && a[0] !== document;) {
						b = a.css("position");
						if (b == "absolute" || b == "relative" || b == "fixed") {
							b = parseInt(a.css("zIndex"));
							if (!isNaN(b) && b != 0) return b
						}
						a = a.parent()
					}
				}
				return 0
			}
		});
		c.extend(c.expr[":"], {
			data: function(a, b, d) {
				return !!c.data(a, d[3])
			},
			focusable: function(a) {
				var b = a.nodeName.toLowerCase(),
					d = c.attr(a, "tabindex");
				return (/input|select|textarea|button|object/.test(b) ? !a.disabled : "a" == b || "area" == b ? a.href || !isNaN(d) : !isNaN(d)) && !c(a)["area" == b ? "parents" : "closest"](":hidden").length
			},
			tabbable: function(a) {
				var b = c.attr(a, "tabindex");
				return (isNaN(b) || b >= 0) && c(a).is(":focusable")
			}
		})
	}
})(jQuery);;
/*!
 * jQuery UI Widget 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Widget
 */
(function(b) {
	var j = b.fn.remove;
	b.fn.remove = function(a, c) {
		return this.each(function() {
			if (!c) if (!a || b.filter(a, [this]).length) b("*", this).add(this).each(function() {
				b(this).triggerHandler("remove")
			});
			return j.call(b(this), a, c)
		})
	};
	b.widget = function(a, c, d) {
		var e = a.split(".")[0],
			f;
		a = a.split(".")[1];
		f = e + "-" + a;
		if (!d) {
			d = c;
			c = b.Widget
		}
		b.expr[":"][f] = function(h) {
			return !!b.data(h, a)
		};
		b[e] = b[e] || {};
		b[e][a] = function(h, g) {
			arguments.length && this._createWidget(h, g)
		};
		c = new c;
		c.options = b.extend({},
		c.options);
		b[e][a].prototype = b.extend(true, c, {
			namespace: e,
			widgetName: a,
			widgetEventPrefix: b[e][a].prototype.widgetEventPrefix || a,
			widgetBaseClass: f
		},
		d);
		b.widget.bridge(a, b[e][a])
	};
	b.widget.bridge = function(a, c) {
		b.fn[a] = function(d) {
			var e = typeof d === "string",
				f = Array.prototype.slice.call(arguments, 1),
				h = this;
			d = !e && f.length ? b.extend.apply(null, [true, d].concat(f)) : d;
			if (e && d.substring(0, 1) === "_") return h;
			e ? this.each(function() {
				var g = b.data(this, a),
					i = g && b.isFunction(g[d]) ? g[d].apply(g, f) : g;
				if (i !== g && i !== undefined) {
					h = i;
					return false
				}
			}) : this.each(function() {
				var g = b.data(this, a);
				if (g) {
					d && g.option(d);
					g._init()
				} else b.data(this, a, new c(d, this))
			});
			return h
		}
	};
	b.Widget = function(a, c) {
		arguments.length && this._createWidget(a, c)
	};
	b.Widget.prototype = {
		widgetName: "widget",
		widgetEventPrefix: "",
		options: {
			disabled: false
		},
		_createWidget: function(a, c) {
			this.element = b(c).data(this.widgetName, this);
			this.options = b.extend(true, {},
			this.options, b.metadata && b.metadata.get(c)[this.widgetName], a);
			var d = this;
			this.element.bind("remove." + this.widgetName, function() {
				d.destroy()
			});
			this._create();
			this._init()
		},
		_create: function() {},
		_init: function() {},
		destroy: function() {
			this.element.unbind("." + this.widgetName).removeData(this.widgetName);
			this.widget().unbind("." + this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass + "-disabled ui-state-disabled")
		},
		widget: function() {
			return this.element
		},
		option: function(a, c) {
			var d = a,
				e = this;
			if (arguments.length === 0) return b.extend({},
			e.options);
			if (typeof a === "string") {
				if (c === undefined) return this.options[a];
				d = {};
				d[a] = c
			}
			b.each(d, function(f, h) {
				e._setOption(f, h)
			});
			return e
		},
		_setOption: function(a, c) {
			this.options[a] = c;
			if (a === "disabled") this.widget()[c ? "addClass" : "removeClass"](this.widgetBaseClass + "-disabled ui-state-disabled").attr("aria-disabled", c);
			return this
		},
		enable: function() {
			return this._setOption("disabled", false)
		},
		disable: function() {
			return this._setOption("disabled", true)
		},
		_trigger: function(a, c, d) {
			var e = this.options[a];
			c = b.Event(c);
			c.type = (a === this.widgetEventPrefix ? a : this.widgetEventPrefix + a).toLowerCase();
			d = d || {};
			if (c.originalEvent) {
				a = b.event.props.length;
				for (var f; a;) {
					f = b.event.props[--a];
					c[f] = c.originalEvent[f]
				}
			}
			this.element.trigger(c, d);
			return ! (b.isFunction(e) && e.call(this.element[0], c, d) === false || c.isDefaultPrevented())
		}
	}
})(jQuery);;
/*!
 * jQuery UI Mouse 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Mouse
 *
 * Depends:
 *	jquery.ui.widget.js
 */
(function(c) {
	c.widget("ui.mouse", {
		options: {
			cancel: ":input,option",
			distance: 1,
			delay: 0
		},
		_mouseInit: function() {
			var a = this;
			this.element.bind("mousedown." + this.widgetName, function(b) {
				return a._mouseDown(b)
			}).bind("click." + this.widgetName, function(b) {
				if (a._preventClickEvent) {
					a._preventClickEvent = false;
					b.stopImmediatePropagation();
					return false
				}
			});
			this.started = false
		},
		_mouseDestroy: function() {
			this.element.unbind("." + this.widgetName)
		},
		_mouseDown: function(a) {
			a.originalEvent = a.originalEvent || {};
			if (!a.originalEvent.mouseHandled) {
				this._mouseStarted && this._mouseUp(a);
				this._mouseDownEvent = a;
				var b = this,
					e = a.which == 1,
					f = typeof this.options.cancel == "string" ? c(a.target).parents().add(a.target).filter(this.options.cancel).length : false;
				if (!e || f || !this._mouseCapture(a)) return true;
				this.mouseDelayMet = !this.options.delay;
				if (!this.mouseDelayMet) this._mouseDelayTimer = setTimeout(function() {
					b.mouseDelayMet = true
				},
				this.options.delay);
				if (this._mouseDistanceMet(a) && this._mouseDelayMet(a)) {
					this._mouseStarted = this._mouseStart(a) !== false;
					if (!this._mouseStarted) {
						a.preventDefault();
						return true
					}
				}
				this._mouseMoveDelegate = function(d) {
					return b._mouseMove(d)
				};
				this._mouseUpDelegate = function(d) {
					return b._mouseUp(d)
				};
				c(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate);
				c.browser.safari || a.preventDefault();
				return a.originalEvent.mouseHandled = true
			}
		},
		_mouseMove: function(a) {
			if (c.browser.msie && !a.button) return this._mouseUp(a);
			if (this._mouseStarted) {
				this._mouseDrag(a);
				return a.preventDefault()
			}
			if (this._mouseDistanceMet(a) && this._mouseDelayMet(a))(this._mouseStarted = this._mouseStart(this._mouseDownEvent, a) !== false) ? this._mouseDrag(a) : this._mouseUp(a);
			return !this._mouseStarted
		},
		_mouseUp: function(a) {
			c(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate);
			if (this._mouseStarted) {
				this._mouseStarted = false;
				this._preventClickEvent = a.target == this._mouseDownEvent.target;
				this._mouseStop(a)
			}
			return false
		},
		_mouseDistanceMet: function(a) {
			return Math.max(Math.abs(this._mouseDownEvent.pageX - a.pageX), Math.abs(this._mouseDownEvent.pageY - a.pageY)) >= this.options.distance
		},
		_mouseDelayMet: function() {
			return this.mouseDelayMet
		},
		_mouseStart: function() {},
		_mouseDrag: function() {},
		_mouseStop: function() {},
		_mouseCapture: function() {
			return true
		}
	})
})(jQuery);;
/*
 * jQuery UI Position 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Position
 */
(function(c) {
	c.ui = c.ui || {};
	var m = /left|center|right/,
		n = /top|center|bottom/,
		p = c.fn.position,
		q = c.fn.offset;
	c.fn.position = function(a) {
		if (!a || !a.of) return p.apply(this, arguments);
		a = c.extend({},
		a);
		var b = c(a.of),
			d = (a.collision || "flip").split(" "),
			e = a.offset ? a.offset.split(" ") : [0, 0],
		g,
		h,
		i;
		if (a.of.nodeType === 9) {
			g = b.width();
			h = b.height();
			i = {
				top: 0,
				left: 0
			}
		} else if (a.of.scrollTo && a.of.document) {
			g = b.width();
			h = b.height();
			i = {
				top: b.scrollTop(),
				left: b.scrollLeft()
			}
		} else if (a.of.preventDefault) {
			a.at = "left top";
			g = h = 0;
			i = {
				top: a.of.pageY,
				left: a.of.pageX
			}
		} else {
			g = b.outerWidth();
			h = b.outerHeight();
			i = b.offset()
		}
		c.each(["my", "at"], function() {
			var f = (a[this] || "").split(" ");
			if (f.length === 1) f = m.test(f[0]) ? f.concat(["center"]) : n.test(f[0]) ? ["center"].concat(f) : ["center", "center"];
			f[0] = m.test(f[0]) ? f[0] : "center";
			f[1] = n.test(f[1]) ? f[1] : "center";
			a[this] = f
		});
		if (d.length === 1) d[1] = d[0];
		e[0] = parseInt(e[0], 10) || 0;
		if (e.length === 1) e[1] = e[0];
		e[1] = parseInt(e[1], 10) || 0;
		if (a.at[0] === "right") i.left += g;
		else if (a.at[0] === "center") i.left += g / 2;
		if (a.at[1] === "bottom") i.top += h;
		else if (a.at[1] === "center") i.top += h / 2;
		i.left += e[0];
		i.top += e[1];
		return this.each(function() {
			var f = c(this),
				k = f.outerWidth(),
				l = f.outerHeight(),
				j = c.extend({},
			i);
			if (a.my[0] === "right") j.left -= k;
			else if (a.my[0] === "center") j.left -= k / 2;
			if (a.my[1] === "bottom") j.top -= l;
			else if (a.my[1] === "center") j.top -= l / 2;
			j.left = parseInt(j.left);
			j.top = parseInt(j.top);
			c.each(["left", "top"], function(o, r) {
				c.ui.position[d[o]] && c.ui.position[d[o]][r](j, {
					targetWidth: g,
					targetHeight: h,
					elemWidth: k,
					elemHeight: l,
					offset: e,
					my: a.my,
					at: a.at
				})
			});
			c.fn.bgiframe && f.bgiframe();
			f.offset(c.extend(j, {
				using: a.using
			}))
		})
	};
	c.ui.position = {
		fit: {
			left: function(a, b) {
				var d = c(window);
				b = a.left + b.elemWidth - d.width() - d.scrollLeft();
				a.left = b > 0 ? a.left - b : Math.max(0, a.left)
			},
			top: function(a, b) {
				var d = c(window);
				b = a.top + b.elemHeight - d.height() - d.scrollTop();
				a.top = b > 0 ? a.top - b : Math.max(0, a.top)
			}
		},
		flip: {
			left: function(a, b) {
				if (b.at[0] !== "center") {
					var d = c(window);
					d = a.left + b.elemWidth - d.width() - d.scrollLeft();
					var e = b.my[0] === "left" ? -b.elemWidth : b.my[0] === "right" ? b.elemWidth : 0,
					g = -2 * b.offset[0];
					a.left += a.left < 0 ? e + b.targetWidth + g : d > 0 ? e - b.targetWidth + g : 0
				}
			},
			top: function(a, b) {
				if (b.at[1] !== "center") {
					var d = c(window);
					d = a.top + b.elemHeight - d.height() - d.scrollTop();
					var e = b.my[1] === "top" ? -b.elemHeight : b.my[1] === "bottom" ? b.elemHeight : 0,
					g = b.at[1] === "top" ? b.targetHeight : -b.targetHeight,
					h = -2 * b.offset[1];
					a.top += a.top < 0 ? e + b.targetHeight + h : d > 0 ? e + g + h : 0
				}
			}
		}
	};
	if (!c.offset.setOffset) {
		c.offset.setOffset = function(a, b) {
			if (/static/.test(c.curCSS(a, "position"))) a.style.position = "relative";
			var d = c(a),
				e = d.offset(),
				g = parseInt(c.curCSS(a, "top", true), 10) || 0,
				h = parseInt(c.curCSS(a, "left", true), 10) || 0;
			e = {
				top: b.top - e.top + g,
				left: b.left - e.left + h
			};
			"using" in b ? b.using.call(a, e) : d.css(e)
		};
		c.fn.offset = function(a) {
			var b = this[0];
			if (!b || !b.ownerDocument) return null;
			if (a) return this.each(function() {
				c.offset.setOffset(this, a)
			});
			return q.call(this)
		}
	}
})(jQuery);;
/*
 * jQuery UI Draggable 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Draggables
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.mouse.js
 *	jquery.ui.widget.js
 */
(function(d) {
	d.widget("ui.draggable", d.ui.mouse, {
		widgetEventPrefix: "drag",
		options: {
			addClasses: true,
			appendTo: "parent",
			axis: false,
			connectToSortable: false,
			containment: false,
			cursor: "auto",
			cursorAt: false,
			grid: false,
			handle: false,
			helper: "original",
			iframeFix: false,
			opacity: false,
			refreshPositions: false,
			revert: false,
			revertDuration: 500,
			scope: "default",
			scroll: true,
			scrollSensitivity: 20,
			scrollSpeed: 20,
			snap: false,
			snapMode: "both",
			snapTolerance: 20,
			stack: false,
			zIndex: false
		},
		_create: function() {
			if (this.options.helper == "original" && !/^(?:r|a|f)/.test(this.element.css("position"))) this.element[0].style.position = "relative";
			this.options.addClasses && this.element.addClass("ui-draggable");
			this.options.disabled && this.element.addClass("ui-draggable-disabled");
			this._mouseInit()
		},
		destroy: function() {
			if (this.element.data("draggable")) {
				this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");
				this._mouseDestroy();
				return this
			}
		},
		_mouseCapture: function(a) {
			var b = this.options;
			if (this.helper || b.disabled || d(a.target).is(".ui-resizable-handle")) return false;
			this.handle = this._getHandle(a);
			if (!this.handle) return false;
			return true
		},
		_mouseStart: function(a) {
			var b = this.options;
			this.helper = this._createHelper(a);
			this._cacheHelperProportions();
			if (d.ui.ddmanager) d.ui.ddmanager.current = this;
			this._cacheMargins();
			this.cssPosition = this.helper.css("position");
			this.scrollParent = this.helper.scrollParent();
			this.offset = this.positionAbs = this.element.offset();
			this.offset = {
				top: this.offset.top - this.margins.top,
				left: this.offset.left - this.margins.left
			};
			d.extend(this.offset, {
				click: {
					left: a.pageX - this.offset.left,
					top: a.pageY - this.offset.top
				},
				parent: this._getParentOffset(),
				relative: this._getRelativeOffset()
			});
			this.originalPosition = this.position = this._generatePosition(a);
			this.originalPageX = a.pageX;
			this.originalPageY = a.pageY;
			b.cursorAt && this._adjustOffsetFromHelper(b.cursorAt);
			b.containment && this._setContainment();
			if (this._trigger("start", a) === false) {
				this._clear();
				return false
			}
			this._cacheHelperProportions();
			d.ui.ddmanager && !b.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a);
			this.helper.addClass("ui-draggable-dragging");
			this._mouseDrag(a, true);
			return true
		},
		_mouseDrag: function(a, b) {
			this.position = this._generatePosition(a);
			this.positionAbs = this._convertPositionTo("absolute");
			if (!b) {
				b = this._uiHash();
				if (this._trigger("drag", a, b) === false) {
					this._mouseUp({});
					return false
				}
				this.position = b.position
			}
			if (!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left + "px";
			if (!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top + "px";
			d.ui.ddmanager && d.ui.ddmanager.drag(this, a);
			return false
		},
		_mouseStop: function(a) {
			var b = false;
			if (d.ui.ddmanager && !this.options.dropBehaviour) b = d.ui.ddmanager.drop(this, a);
			if (this.dropped) {
				b = this.dropped;
				this.dropped = false
			}
			if (!this.element[0] || !this.element[0].parentNode) return false;
			if (this.options.revert == "invalid" && !b || this.options.revert == "valid" && b || this.options.revert === true || d.isFunction(this.options.revert) && this.options.revert.call(this.element, b)) {
				var c = this;
				d(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
					c._trigger("stop", a) !== false && c._clear()
				})
			} else this._trigger("stop", a) !== false && this._clear();
			return false
		},
		cancel: function() {
			this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear();
			return this
		},
		_getHandle: function(a) {
			var b = !this.options.handle || !d(this.options.handle, this.element).length ? true : false;
			d(this.options.handle, this.element).find("*").andSelf().each(function() {
				if (this == a.target) b = true
			});
			return b
		},
		_createHelper: function(a) {
			var b = this.options;
			a = d.isFunction(b.helper) ? d(b.helper.apply(this.element[0], [a])) : b.helper == "clone" ? this.element.clone() : this.element;
			a.parents("body").length || a.appendTo(b.appendTo == "parent" ? this.element[0].parentNode : b.appendTo);
			a[0] != this.element[0] && !/(fixed|absolute)/.test(a.css("position")) && a.css("position", "absolute");
			return a
		},
		_adjustOffsetFromHelper: function(a) {
			if (typeof a == "string") a = a.split(" ");
			if (d.isArray(a)) a = {
				left: +a[0],
				top: +a[1] || 0
			};
			if ("left" in a) this.offset.click.left = a.left + this.margins.left;
			if ("right" in a) this.offset.click.left = this.helperProportions.width - a.right + this.margins.left;
			if ("top" in a) this.offset.click.top = a.top + this.margins.top;
			if ("bottom" in a) this.offset.click.top = this.helperProportions.height - a.bottom + this.margins.top
		},
		_getParentOffset: function() {
			this.offsetParent = this.helper.offsetParent();
			var a = this.offsetParent.offset();
			if (this.cssPosition == "absolute" && this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) {
				a.left += this.scrollParent.scrollLeft();
				a.top += this.scrollParent.scrollTop()
			}
			if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && d.browser.msie) a = {
				top: 0,
				left: 0
			};
			return {
				top: a.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
				left: a.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
			}
		},
		_getRelativeOffset: function() {
			if (this.cssPosition == "relative") {
				var a = this.element.position();
				return {
					top: a.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(),
					left: a.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
				}
			} else return {
				top: 0,
				left: 0
			}
		},
		_cacheMargins: function() {
			this.margins = {
				left: parseInt(this.element.css("marginLeft"), 10) || 0,
				top: parseInt(this.element.css("marginTop"), 10) || 0
			}
		},
		_cacheHelperProportions: function() {
			this.helperProportions = {
				width: this.helper.outerWidth(),
				height: this.helper.outerHeight()
			}
		},
		_setContainment: function() {
			var a = this.options;
			if (a.containment == "parent") a.containment = this.helper[0].parentNode;
			if (a.containment == "document" || a.containment == "window") this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, d(a.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (d(a.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top];
			if (!/^(document|window|parent)$/.test(a.containment) && a.containment.constructor != Array) {
				var b = d(a.containment)[0];
				if (b) {
					a = d(a.containment).offset();
					var c = d(b).css("overflow") != "hidden";
					this.containment = [a.left + (parseInt(d(b).css("borderLeftWidth"), 10) || 0) + (parseInt(d(b).css("paddingLeft"), 10) || 0) - this.margins.left, a.top + (parseInt(d(b).css("borderTopWidth"), 10) || 0) + (parseInt(d(b).css("paddingTop"), 10) || 0) - this.margins.top, a.left + (c ? Math.max(b.scrollWidth, b.offsetWidth) : b.offsetWidth) - (parseInt(d(b).css("borderLeftWidth"), 10) || 0) - (parseInt(d(b).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, a.top + (c ? Math.max(b.scrollHeight, b.offsetHeight) : b.offsetHeight) - (parseInt(d(b).css("borderTopWidth"), 10) || 0) - (parseInt(d(b).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top]
				}
			} else if (a.containment.constructor == Array) this.containment = a.containment
		},
		_convertPositionTo: function(a, b) {
			if (!b) b = this.position;
			a = a == "absolute" ? 1 : -1;
			var c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent,
			f = /(html|body)/i.test(c[0].tagName);
			return {
				top: b.top + this.offset.relative.top * a + this.offset.parent.top * a - (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : f ? 0 : c.scrollTop()) * a),
				left: b.left + this.offset.relative.left * a + this.offset.parent.left * a - (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : f ? 0 : c.scrollLeft()) * a)
			}
		},
		_generatePosition: function(a) {
			var b = this.options,
				c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent,
			f = /(html|body)/i.test(c[0].tagName),
			e = a.pageX,
			g = a.pageY;
			if (this.originalPosition) {
				if (this.containment) {
					if (a.pageX - this.offset.click.left < this.containment[0]) e = this.containment[0] + this.offset.click.left;
					if (a.pageY - this.offset.click.top < this.containment[1]) g = this.containment[1] + this.offset.click.top;
					if (a.pageX - this.offset.click.left > this.containment[2]) e = this.containment[2] + this.offset.click.left;
					if (a.pageY - this.offset.click.top > this.containment[3]) g = this.containment[3] + this.offset.click.top
				}
				if (b.grid) {
					g = this.originalPageY + Math.round((g - this.originalPageY) / b.grid[1]) * b.grid[1];
					g = this.containment ? !(g - this.offset.click.top < this.containment[1] || g - this.offset.click.top > this.containment[3]) ? g : !(g - this.offset.click.top < this.containment[1]) ? g - b.grid[1] : g + b.grid[1] : g;
					e = this.originalPageX + Math.round((e - this.originalPageX) / b.grid[0]) * b.grid[0];
					e = this.containment ? !(e - this.offset.click.left < this.containment[0] || e - this.offset.click.left > this.containment[2]) ? e : !(e - this.offset.click.left < this.containment[0]) ? e - b.grid[0] : e + b.grid[0] : e
				}
			}
			return {
				top: g - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : f ? 0 : c.scrollTop()),
				left: e - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : f ? 0 : c.scrollLeft())
			}
		},
		_clear: function() {
			this.helper.removeClass("ui-draggable-dragging");
			this.helper[0] != this.element[0] && !this.cancelHelperRemoval && this.helper.remove();
			this.helper = null;
			this.cancelHelperRemoval = false
		},
		_trigger: function(a, b, c) {
			c = c || this._uiHash();
			d.ui.plugin.call(this, a, [b, c]);
			if (a == "drag") this.positionAbs = this._convertPositionTo("absolute");
			return d.Widget.prototype._trigger.call(this, a, b, c)
		},
		plugins: {},
		_uiHash: function() {
			return {
				helper: this.helper,
				position: this.position,
				originalPosition: this.originalPosition,
				offset: this.positionAbs
			}
		}
	});
	d.extend(d.ui.draggable, {
		version: "1.8.2"
	});
	d.ui.plugin.add("draggable", "connectToSortable", {
		start: function(a, b) {
			var c = d(this).data("draggable"),
				f = c.options,
				e = d.extend({},
			b, {
				item: c.element
			});
			c.sortables = [];
			d(f.connectToSortable).each(function() {
				var g = d.data(this, "sortable");
				if (g && !g.options.disabled) {
					c.sortables.push({
						instance: g,
						shouldRevert: g.options.revert
					});
					g._refreshItems();
					g._trigger("activate", a, e)
				}
			})
		},
		stop: function(a, b) {
			var c = d(this).data("draggable"),
				f = d.extend({},
			b, {
				item: c.element
			});
			d.each(c.sortables, function() {
				if (this.instance.isOver) {
					this.instance.isOver = 0;
					c.cancelHelperRemoval = true;
					this.instance.cancelHelperRemoval = false;
					if (this.shouldRevert) this.instance.options.revert = true;
					this.instance._mouseStop(a);
					this.instance.options.helper = this.instance.options._helper;
					c.options.helper == "original" && this.instance.currentItem.css({
						top: "auto",
						left: "auto"
					})
				} else {
					this.instance.cancelHelperRemoval = false;
					this.instance._trigger("deactivate", a, f)
				}
			})
		},
		drag: function(a, b) {
			var c = d(this).data("draggable"),
				f = this;
			d.each(c.sortables, function() {
				this.instance.positionAbs = c.positionAbs;
				this.instance.helperProportions = c.helperProportions;
				this.instance.offset.click = c.offset.click;
				if (this.instance._intersectsWith(this.instance.containerCache)) {
					if (!this.instance.isOver) {
						this.instance.isOver = 1;
						this.instance.currentItem = d(f).clone().appendTo(this.instance.element).data("sortable-item", true);
						this.instance.options._helper = this.instance.options.helper;
						this.instance.options.helper = function() {
							return b.helper[0]
						};
						a.target = this.instance.currentItem[0];
						this.instance._mouseCapture(a, true);
						this.instance._mouseStart(a, true, true);
						this.instance.offset.click.top = c.offset.click.top;
						this.instance.offset.click.left = c.offset.click.left;
						this.instance.offset.parent.left -= c.offset.parent.left - this.instance.offset.parent.left;
						this.instance.offset.parent.top -= c.offset.parent.top - this.instance.offset.parent.top;
						c._trigger("toSortable", a);
						c.dropped = this.instance.element;
						c.currentItem = c.element;
						this.instance.fromOutside = c
					}
					this.instance.currentItem && this.instance._mouseDrag(a)
				} else if (this.instance.isOver) {
					this.instance.isOver = 0;
					this.instance.cancelHelperRemoval = true;
					this.instance.options.revert = false;
					this.instance._trigger("out", a, this.instance._uiHash(this.instance));
					this.instance._mouseStop(a, true);
					this.instance.options.helper = this.instance.options._helper;
					this.instance.currentItem.remove();
					this.instance.placeholder && this.instance.placeholder.remove();
					c._trigger("fromSortable", a);
					c.dropped = false
				}
			})
		}
	});
	d.ui.plugin.add("draggable", "cursor", {
		start: function() {
			var a = d("body"),
				b = d(this).data("draggable").options;
			if (a.css("cursor")) b._cursor = a.css("cursor");
			a.css("cursor", b.cursor)
		},
		stop: function() {
			var a = d(this).data("draggable").options;
			a._cursor && d("body").css("cursor", a._cursor)
		}
	});
	d.ui.plugin.add("draggable", "iframeFix", {
		start: function() {
			var a = d(this).data("draggable").options;
			d(a.iframeFix === true ? "iframe" : a.iframeFix).each(function() {
				d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({
					width: this.offsetWidth + "px",
					height: this.offsetHeight + "px",
					position: "absolute",
					opacity: "0.001",
					zIndex: 1E3
				}).css(d(this).offset()).appendTo("body")
			})
		},
		stop: function() {
			d("div.ui-draggable-iframeFix").each(function() {
				this.parentNode.removeChild(this)
			})
		}
	});
	d.ui.plugin.add("draggable", "opacity", {
		start: function(a, b) {
			a = d(b.helper);
			b = d(this).data("draggable").options;
			if (a.css("opacity")) b._opacity = a.css("opacity");
			a.css("opacity", b.opacity)
		},
		stop: function(a, b) {
			a = d(this).data("draggable").options;
			a._opacity && d(b.helper).css("opacity", a._opacity)
		}
	});
	d.ui.plugin.add("draggable", "scroll", {
		start: function() {
			var a = d(this).data("draggable");
			if (a.scrollParent[0] != document && a.scrollParent[0].tagName != "HTML") a.overflowOffset = a.scrollParent.offset()
		},
		drag: function(a) {
			var b = d(this).data("draggable"),
				c = b.options,
				f = false;
			if (b.scrollParent[0] != document && b.scrollParent[0].tagName != "HTML") {
				if (!c.axis || c.axis != "x") if (b.overflowOffset.top + b.scrollParent[0].offsetHeight - a.pageY < c.scrollSensitivity) b.scrollParent[0].scrollTop = f = b.scrollParent[0].scrollTop + c.scrollSpeed;
				else if (a.pageY - b.overflowOffset.top < c.scrollSensitivity) b.scrollParent[0].scrollTop = f = b.scrollParent[0].scrollTop - c.scrollSpeed;
				if (!c.axis || c.axis != "y") if (b.overflowOffset.left + b.scrollParent[0].offsetWidth - a.pageX < c.scrollSensitivity) b.scrollParent[0].scrollLeft = f = b.scrollParent[0].scrollLeft + c.scrollSpeed;
				else if (a.pageX - b.overflowOffset.left < c.scrollSensitivity) b.scrollParent[0].scrollLeft = f = b.scrollParent[0].scrollLeft - c.scrollSpeed
			} else {
				if (!c.axis || c.axis != "x") if (a.pageY - d(document).scrollTop() < c.scrollSensitivity) f = d(document).scrollTop(d(document).scrollTop() - c.scrollSpeed);
				else if (d(window).height() - (a.pageY - d(document).scrollTop()) < c.scrollSensitivity) f = d(document).scrollTop(d(document).scrollTop() + c.scrollSpeed);
				if (!c.axis || c.axis != "y") if (a.pageX - d(document).scrollLeft() < c.scrollSensitivity) f = d(document).scrollLeft(d(document).scrollLeft() - c.scrollSpeed);
				else if (d(window).width() - (a.pageX - d(document).scrollLeft()) < c.scrollSensitivity) f = d(document).scrollLeft(d(document).scrollLeft() + c.scrollSpeed)
			}
			f !== false && d.ui.ddmanager && !c.dropBehaviour && d.ui.ddmanager.prepareOffsets(b, a)
		}
	});
	d.ui.plugin.add("draggable", "snap", {
		start: function() {
			var a = d(this).data("draggable"),
				b = a.options;
			a.snapElements = [];
			d(b.snap.constructor != String ? b.snap.items || ":data(draggable)" : b.snap).each(function() {
				var c = d(this),
					f = c.offset();
				this != a.element[0] && a.snapElements.push({
					item: this,
					width: c.outerWidth(),
					height: c.outerHeight(),
					top: f.top,
					left: f.left
				})
			})
		},
		drag: function(a, b) {
			for (var c = d(this).data("draggable"), f = c.options, e = f.snapTolerance, g = b.offset.left, n = g + c.helperProportions.width, m = b.offset.top, o = m + c.helperProportions.height, h = c.snapElements.length - 1; h >= 0; h--) {
				var i = c.snapElements[h].left,
					k = i + c.snapElements[h].width,
					j = c.snapElements[h].top,
					l = j + c.snapElements[h].height;
				if (i - e < g && g < k + e && j - e < m && m < l + e || i - e < g && g < k + e && j - e < o && o < l + e || i - e < n && n < k + e && j - e < m && m < l + e || i - e < n && n < k + e && j - e < o && o < l + e) {
					if (f.snapMode != "inner") {
						var p = Math.abs(j - o) <= e,
							q = Math.abs(l - m) <= e,
							r = Math.abs(i - n) <= e,
							s = Math.abs(k - g) <= e;
						if (p) b.position.top = c._convertPositionTo("relative", {
							top: j - c.helperProportions.height,
							left: 0
						}).top - c.margins.top;
						if (q) b.position.top = c._convertPositionTo("relative", {
							top: l,
							left: 0
						}).top - c.margins.top;
						if (r) b.position.left = c._convertPositionTo("relative", {
							top: 0,
							left: i - c.helperProportions.width
						}).left - c.margins.left;
						if (s) b.position.left = c._convertPositionTo("relative", {
							top: 0,
							left: k
						}).left - c.margins.left
					}
					var t = p || q || r || s;
					if (f.snapMode != "outer") {
						p = Math.abs(j - m) <= e;
						q = Math.abs(l - o) <= e;
						r = Math.abs(i - g) <= e;
						s = Math.abs(k - n) <= e;
						if (p) b.position.top = c._convertPositionTo("relative", {
							top: j,
							left: 0
						}).top - c.margins.top;
						if (q) b.position.top = c._convertPositionTo("relative", {
							top: l - c.helperProportions.height,
							left: 0
						}).top - c.margins.top;
						if (r) b.position.left = c._convertPositionTo("relative", {
							top: 0,
							left: i
						}).left - c.margins.left;
						if (s) b.position.left = c._convertPositionTo("relative", {
							top: 0,
							left: k - c.helperProportions.width
						}).left - c.margins.left
					}
					if (!c.snapElements[h].snapping && (p || q || r || s || t)) c.options.snap.snap && c.options.snap.snap.call(c.element, a, d.extend(c._uiHash(), {
						snapItem: c.snapElements[h].item
					}));
					c.snapElements[h].snapping = p || q || r || s || t
				} else {
					c.snapElements[h].snapping && c.options.snap.release && c.options.snap.release.call(c.element, a, d.extend(c._uiHash(), {
						snapItem: c.snapElements[h].item
					}));
					c.snapElements[h].snapping = false
				}
			}
		}
	});
	d.ui.plugin.add("draggable", "stack", {
		start: function() {
			var a = d(this).data("draggable").options;
			a = d.makeArray(d(a.stack)).sort(function(c, f) {
				return (parseInt(d(c).css("zIndex"), 10) || 0) - (parseInt(d(f).css("zIndex"), 10) || 0)
			});
			if (a.length) {
				var b = parseInt(a[0].style.zIndex) || 0;
				d(a).each(function(c) {
					this.style.zIndex = b + c
				});
				this[0].style.zIndex = b + a.length
			}
		}
	});
	d.ui.plugin.add("draggable", "zIndex", {
		start: function(a, b) {
			a = d(b.helper);
			b = d(this).data("draggable").options;
			if (a.css("zIndex")) b._zIndex = a.css("zIndex");
			a.css("zIndex", b.zIndex)
		},
		stop: function(a, b) {
			a = d(this).data("draggable").options;
			a._zIndex && d(b.helper).css("zIndex", a._zIndex)
		}
	})
})(jQuery);;
/*
 * jQuery UI Droppable 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Droppables
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.widget.js
 *	jquery.ui.mouse.js
 *	jquery.ui.draggable.js
 */
(function(d) {
	d.widget("ui.droppable", {
		widgetEventPrefix: "drop",
		options: {
			accept: "*",
			activeClass: false,
			addClasses: true,
			greedy: false,
			hoverClass: false,
			scope: "default",
			tolerance: "intersect"
		},
		_create: function() {
			var a = this.options,
				b = a.accept;
			this.isover = 0;
			this.isout = 1;
			this.accept = d.isFunction(b) ? b : function(c) {
				return c.is(b)
			};
			this.proportions = {
				width: this.element[0].offsetWidth,
				height: this.element[0].offsetHeight
			};
			d.ui.ddmanager.droppables[a.scope] = d.ui.ddmanager.droppables[a.scope] || [];
			d.ui.ddmanager.droppables[a.scope].push(this);
			a.addClasses && this.element.addClass("ui-droppable")
		},
		destroy: function() {
			for (var a = d.ui.ddmanager.droppables[this.options.scope], b = 0; b < a.length; b++) a[b] == this && a.splice(b, 1);
			this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");
			return this
		},
		_setOption: function(a, b) {
			if (a == "accept") this.accept = d.isFunction(b) ? b : function(c) {
				return c.is(b)
			};
			d.Widget.prototype._setOption.apply(this, arguments)
		},
		_activate: function(a) {
			var b = d.ui.ddmanager.current;
			this.options.activeClass && this.element.addClass(this.options.activeClass);
			b && this._trigger("activate", a, this.ui(b))
		},
		_deactivate: function(a) {
			var b = d.ui.ddmanager.current;
			this.options.activeClass && this.element.removeClass(this.options.activeClass);
			b && this._trigger("deactivate", a, this.ui(b))
		},
		_over: function(a) {
			var b = d.ui.ddmanager.current;
			if (! (!b || (b.currentItem || b.element)[0] == this.element[0])) if (this.accept.call(this.element[0], b.currentItem || b.element)) {
				this.options.hoverClass && this.element.addClass(this.options.hoverClass);
				this._trigger("over", a, this.ui(b))
			}
		},
		_out: function(a) {
			var b = d.ui.ddmanager.current;
			if (! (!b || (b.currentItem || b.element)[0] == this.element[0])) if (this.accept.call(this.element[0], b.currentItem || b.element)) {
				this.options.hoverClass && this.element.removeClass(this.options.hoverClass);
				this._trigger("out", a, this.ui(b))
			}
		},
		_drop: function(a, b) {
			var c = b || d.ui.ddmanager.current;
			if (!c || (c.currentItem || c.element)[0] == this.element[0]) return false;
			var e = false;
			this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() {
				var g = d.data(this, "droppable");
				if (g.options.greedy && !g.options.disabled && g.options.scope == c.options.scope && g.accept.call(g.element[0], c.currentItem || c.element) && d.ui.intersect(c, d.extend(g, {
					offset: g.element.offset()
				}), g.options.tolerance)) {
					e = true;
					return false
				}
			});
			if (e) return false;
			if (this.accept.call(this.element[0], c.currentItem || c.element)) {
				this.options.activeClass && this.element.removeClass(this.options.activeClass);
				this.options.hoverClass && this.element.removeClass(this.options.hoverClass);
				this._trigger("drop", a, this.ui(c));
				return this.element
			}
			return false
		},
		ui: function(a) {
			return {
				draggable: a.currentItem || a.element,
				helper: a.helper,
				position: a.position,
				offset: a.positionAbs
			}
		}
	});
	d.extend(d.ui.droppable, {
		version: "1.8.2"
	});
	d.ui.intersect = function(a, b, c) {
		if (!b.offset) return false;
		var e = (a.positionAbs || a.position.absolute).left,
			g = e + a.helperProportions.width,
			f = (a.positionAbs || a.position.absolute).top,
			h = f + a.helperProportions.height,
			i = b.offset.left,
			k = i + b.proportions.width,
			j = b.offset.top,
			l = j + b.proportions.height;
		switch (c) {
		case "fit":
			return i < e && g < k && j < f && h < l;
		case "intersect":
			return i < e + a.helperProportions.width / 2 && g - a.helperProportions.width / 2 < k && j < f + a.helperProportions.height / 2 && h - a.helperProportions.height / 2 < l;
		case "pointer":
			return d.ui.isOver((a.positionAbs || a.position.absolute).top + (a.clickOffset || a.offset.click).top, (a.positionAbs || a.position.absolute).left + (a.clickOffset || a.offset.click).left, j, i, b.proportions.height, b.proportions.width);
		case "touch":
			return (f >= j && f <= l || h >= j && h <= l || f < j && h > l) && (e >= i && e <= k || g >= i && g <= k || e < i && g > k);
		default:
			return false
		}
	};
	d.ui.ddmanager = {
		current: null,
		droppables: {
			"default": []
		},
		prepareOffsets: function(a, b) {
			var c = d.ui.ddmanager.droppables[a.options.scope] || [],
				e = b ? b.type : null,
			g = (a.currentItem || a.element).find(":data(droppable)").andSelf(),
			f = 0;
			a: for (; f < c.length; f++) if (! (c[f].options.disabled || a && !c[f].accept.call(c[f].element[0], a.currentItem || a.element))) {
				for (var h = 0; h < g.length; h++) if (g[h] == c[f].element[0]) {
					c[f].proportions.height = 0;
					continue a
				}
				c[f].visible = c[f].element.css("display") != "none";
				if (c[f].visible) {
					c[f].offset = c[f].element.offset();
					c[f].proportions = {
						width: c[f].element[0].offsetWidth,
						height: c[f].element[0].offsetHeight
					};
					e == "mousedown" && c[f]._activate.call(c[f], b)
				}
			}
		},
		drop: function(a, b) {
			var c = false;
			d.each(d.ui.ddmanager.droppables[a.options.scope] || [], function() {
				if (this.options) {
					if (!this.options.disabled && this.visible && d.ui.intersect(a, this, this.options.tolerance)) c = c || this._drop.call(this, b);
					if (!this.options.disabled && this.visible && this.accept.call(this.element[0], a.currentItem || a.element)) {
						this.isout = 1;
						this.isover = 0;
						this._deactivate.call(this, b)
					}
				}
			});
			return c
		},
		drag: function(a, b) {
			a.options.refreshPositions && d.ui.ddmanager.prepareOffsets(a, b);
			d.each(d.ui.ddmanager.droppables[a.options.scope] || [], function() {
				if (! (this.options.disabled || this.greedyChild || !this.visible)) {
					var c = d.ui.intersect(a, this, this.options.tolerance);
					if (c = !c && this.isover == 1 ? "isout" : c && this.isover == 0 ? "isover" : null) {
						var e;
						if (this.options.greedy) {
							var g = this.element.parents(":data(droppable):eq(0)");
							if (g.length) {
								e = d.data(g[0], "droppable");
								e.greedyChild = c == "isover" ? 1 : 0
							}
						}
						if (e && c == "isover") {
							e.isover = 0;
							e.isout = 1;
							e._out.call(e, b)
						}
						this[c] = 1;
						this[c == "isout" ? "isover" : "isout"] = 0;
						this[c == "isover" ? "_over" : "_out"].call(this, b);
						if (e && c == "isout") {
							e.isout = 0;
							e.isover = 1;
							e._over.call(e, b)
						}
					}
				}
			})
		}
	}
})(jQuery);;
/*
 * jQuery UI Resizable 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Resizables
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.mouse.js
 *	jquery.ui.widget.js
 */
(function(d) {
	d.widget("ui.resizable", d.ui.mouse, {
		widgetEventPrefix: "resize",
		options: {
			alsoResize: false,
			animate: false,
			animateDuration: "slow",
			animateEasing: "swing",
			aspectRatio: false,
			autoHide: false,
			containment: false,
			ghost: false,
			grid: false,
			handles: "e,s,se",
			helper: false,
			maxHeight: null,
			maxWidth: null,
			minHeight: 10,
			minWidth: 10,
			zIndex: 1E3
		},
		_create: function() {
			var b = this,
				a = this.options;
			this.element.addClass("ui-resizable");
			d.extend(this, {
				_aspectRatio: !!a.aspectRatio,
				aspectRatio: a.aspectRatio,
				originalElement: this.element,
				_proportionallyResizeElements: [],
				_helper: a.helper || a.ghost || a.animate ? a.helper || "ui-resizable-helper" : null
			});
			if (this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) {
				/relative/.test(this.element.css("position")) && d.browser.opera && this.element.css({
					position: "relative",
					top: "auto",
					left: "auto"
				});
				this.element.wrap(d('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({
					position: this.element.css("position"),
					width: this.element.outerWidth(),
					height: this.element.outerHeight(),
					top: this.element.css("top"),
					left: this.element.css("left")
				}));
				this.element = this.element.parent().data("resizable", this.element.data("resizable"));
				this.elementIsWrapper = true;
				this.element.css({
					marginLeft: this.originalElement.css("marginLeft"),
					marginTop: this.originalElement.css("marginTop"),
					marginRight: this.originalElement.css("marginRight"),
					marginBottom: this.originalElement.css("marginBottom")
				});
				this.originalElement.css({
					marginLeft: 0,
					marginTop: 0,
					marginRight: 0,
					marginBottom: 0
				});
				this.originalResizeStyle = this.originalElement.css("resize");
				this.originalElement.css("resize", "none");
				this._proportionallyResizeElements.push(this.originalElement.css({
					position: "static",
					zoom: 1,
					display: "block"
				}));
				this.originalElement.css({
					margin: this.originalElement.css("margin")
				});
				this._proportionallyResize()
			}
			this.handles = a.handles || (!d(".ui-resizable-handle", this.element).length ? "e,s,se" : {
				n: ".ui-resizable-n",
				e: ".ui-resizable-e",
				s: ".ui-resizable-s",
				w: ".ui-resizable-w",
				se: ".ui-resizable-se",
				sw: ".ui-resizable-sw",
				ne: ".ui-resizable-ne",
				nw: ".ui-resizable-nw"
			});
			if (this.handles.constructor == String) {
				if (this.handles == "all") this.handles = "n,e,s,w,se,sw,ne,nw";
				var c = this.handles.split(",");
				this.handles = {};
				for (var e = 0; e < c.length; e++) {
					var g = d.trim(c[e]),
						f = d('<div class="ui-resizable-handle ' + ("ui-resizable-" + g) + '"></div>');
					/sw|se|ne|nw/.test(g) && f.css({
						zIndex: ++a.zIndex
					});
					"se" == g && f.addClass("ui-icon ui-icon-gripsmall-diagonal-se");
					this.handles[g] = ".ui-resizable-" + g;
					this.element.append(f)
				}
			}
			this._renderAxis = function(h) {
				h = h || this.element;
				for (var i in this.handles) {
					if (this.handles[i].constructor == String) this.handles[i] = d(this.handles[i], this.element).show();
					if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {
						var j = d(this.handles[i], this.element),
							l = 0;
						l = /sw|ne|nw|se|n|s/.test(i) ? j.outerHeight() : j.outerWidth();
						j = ["padding", /ne|nw|n/.test(i) ? "Top" : /se|sw|s/.test(i) ? "Bottom" : /^e$/.test(i) ? "Right" : "Left"].join("");
						h.css(j, l);
						this._proportionallyResize()
					}
					d(this.handles[i])
				}
			};
			this._renderAxis(this.element);
			this._handles = d(".ui-resizable-handle", this.element).disableSelection();
			this._handles.mouseover(function() {
				if (!b.resizing) {
					if (this.className) var h = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);
					b.axis = h && h[1] ? h[1] : "se"
				}
			});
			if (a.autoHide) {
				this._handles.hide();
				d(this.element).addClass("ui-resizable-autohide").hover(function() {
					d(this).removeClass("ui-resizable-autohide");
					b._handles.show()
				},
				function() {
					if (!b.resizing) {
						d(this).addClass("ui-resizable-autohide");
						b._handles.hide()
					}
				})
			}
			this._mouseInit()
		},
		destroy: function() {
			this._mouseDestroy();
			var b = function(c) {
				d(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()
			};
			if (this.elementIsWrapper) {
				b(this.element);
				var a = this.element;
				a.after(this.originalElement.css({
					position: a.css("position"),
					width: a.outerWidth(),
					height: a.outerHeight(),
					top: a.css("top"),
					left: a.css("left")
				})).remove()
			}
			this.originalElement.css("resize", this.originalResizeStyle);
			b(this.originalElement);
			return this
		},
		_mouseCapture: function(b) {
			var a = false;
			for (var c in this.handles) if (d(this.handles[c])[0] == b.target) a = true;
			return !this.options.disabled && a
		},
		_mouseStart: function(b) {
			var a = this.options,
				c = this.element.position(),
				e = this.element;
			this.resizing = true;
			this.documentScroll = {
				top: d(document).scrollTop(),
				left: d(document).scrollLeft()
			};
			if (e.is(".ui-draggable") || /absolute/.test(e.css("position"))) e.css({
				position: "absolute",
				top: c.top,
				left: c.left
			});
			d.browser.opera && /relative/.test(e.css("position")) && e.css({
				position: "relative",
				top: "auto",
				left: "auto"
			});
			this._renderProxy();
			c = m(this.helper.css("left"));
			var g = m(this.helper.css("top"));
			if (a.containment) {
				c += d(a.containment).scrollLeft() || 0;
				g += d(a.containment).scrollTop() || 0
			}
			this.offset = this.helper.offset();
			this.position = {
				left: c,
				top: g
			};
			this.size = this._helper ? {
				width: e.outerWidth(),
				height: e.outerHeight()
			} : {
				width: e.width(),
				height: e.height()
			};
			this.originalSize = this._helper ? {
				width: e.outerWidth(),
				height: e.outerHeight()
			} : {
				width: e.width(),
				height: e.height()
			};
			this.originalPosition = {
				left: c,
				top: g
			};
			this.sizeDiff = {
				width: e.outerWidth() - e.width(),
				height: e.outerHeight() - e.height()
			};
			this.originalMousePosition = {
				left: b.pageX,
				top: b.pageY
			};
			this.aspectRatio = typeof a.aspectRatio == "number" ? a.aspectRatio : this.originalSize.width / this.originalSize.height || 1;
			a = d(".ui-resizable-" + this.axis).css("cursor");
			d("body").css("cursor", a == "auto" ? this.axis + "-resize" : a);
			e.addClass("ui-resizable-resizing");
			this._propagate("start", b);
			return true
		},
		_mouseDrag: function(b) {
			var a = this.helper,
				c = this.originalMousePosition,
				e = this._change[this.axis];
			if (!e) return false;
			c = e.apply(this, [b, b.pageX - c.left || 0, b.pageY - c.top || 0]);
			if (this._aspectRatio || b.shiftKey) c = this._updateRatio(c, b);
			c = this._respectSize(c, b);
			this._propagate("resize", b);
			a.css({
				top: this.position.top + "px",
				left: this.position.left + "px",
				width: this.size.width + "px",
				height: this.size.height + "px"
			}); ! this._helper && this._proportionallyResizeElements.length && this._proportionallyResize();
			this._updateCache(c);
			this._trigger("resize", b, this.ui());
			return false
		},
		_mouseStop: function(b) {
			this.resizing = false;
			var a = this.options,
				c = this;
			if (this._helper) {
				var e = this._proportionallyResizeElements,
					g = e.length && /textarea/i.test(e[0].nodeName);
				e = g && d.ui.hasScroll(e[0], "left") ? 0 : c.sizeDiff.height;
				g = {
					width: c.size.width - (g ? 0 : c.sizeDiff.width),
					height: c.size.height - e
				};
				e = parseInt(c.element.css("left"), 10) + (c.position.left - c.originalPosition.left) || null;
				var f = parseInt(c.element.css("top"), 10) + (c.position.top - c.originalPosition.top) || null;
				a.animate || this.element.css(d.extend(g, {
					top: f,
					left: e
				}));
				c.helper.height(c.size.height);
				c.helper.width(c.size.width);
				this._helper && !a.animate && this._proportionallyResize()
			}
			d("body").css("cursor", "auto");
			this.element.removeClass("ui-resizable-resizing");
			this._propagate("stop", b);
			this._helper && this.helper.remove();
			return false
		},
		_updateCache: function(b) {
			this.offset = this.helper.offset();
			if (k(b.left)) this.position.left = b.left;
			if (k(b.top)) this.position.top = b.top;
			if (k(b.height)) this.size.height = b.height;
			if (k(b.width)) this.size.width = b.width
		},
		_updateRatio: function(b) {
			var a = this.position,
				c = this.size,
				e = this.axis;
			if (b.height) b.width = c.height * this.aspectRatio;
			else if (b.width) b.height = c.width / this.aspectRatio;
			if (e == "sw") {
				b.left = a.left + (c.width - b.width);
				b.top = null
			}
			if (e == "nw") {
				b.top = a.top + (c.height - b.height);
				b.left = a.left + (c.width - b.width)
			}
			return b
		},
		_respectSize: function(b) {
			var a = this.options,
				c = this.axis,
				e = k(b.width) && a.maxWidth && a.maxWidth < b.width,
				g = k(b.height) && a.maxHeight && a.maxHeight < b.height,
				f = k(b.width) && a.minWidth && a.minWidth > b.width,
				h = k(b.height) && a.minHeight && a.minHeight > b.height;
			if (f) b.width = a.minWidth;
			if (h) b.height = a.minHeight;
			if (e) b.width = a.maxWidth;
			if (g) b.height = a.maxHeight;
			var i = this.originalPosition.left + this.originalSize.width,
				j = this.position.top + this.size.height,
				l = /sw|nw|w/.test(c);
			c = /nw|ne|n/.test(c);
			if (f && l) b.left = i - a.minWidth;
			if (e && l) b.left = i - a.maxWidth;
			if (h && c) b.top = j - a.minHeight;
			if (g && c) b.top = j - a.maxHeight;
			if ((a = !b.width && !b.height) && !b.left && b.top) b.top = null;
			else if (a && !b.top && b.left) b.left = null;
			return b
		},
		_proportionallyResize: function() {
			if (this._proportionallyResizeElements.length) for (var b = this.helper || this.element, a = 0; a < this._proportionallyResizeElements.length; a++) {
				var c = this._proportionallyResizeElements[a];
				if (!this.borderDif) {
					var e = [c.css("borderTopWidth"), c.css("borderRightWidth"), c.css("borderBottomWidth"), c.css("borderLeftWidth")],
						g = [c.css("paddingTop"), c.css("paddingRight"), c.css("paddingBottom"), c.css("paddingLeft")];
					this.borderDif = d.map(e, function(f, h) {
						f = parseInt(f, 10) || 0;
						h = parseInt(g[h], 10) || 0;
						return f + h
					})
				}
				d.browser.msie && (d(b).is(":hidden") || d(b).parents(":hidden").length) || c.css({
					height: b.height() - this.borderDif[0] - this.borderDif[2] || 0,
					width: b.width() - this.borderDif[1] - this.borderDif[3] || 0
				})
			}
		},
		_renderProxy: function() {
			var b = this.options;
			this.elementOffset = this.element.offset();
			if (this._helper) {
				this.helper = this.helper || d('<div style="overflow:hidden;"></div>');
				var a = d.browser.msie && d.browser.version < 7,
					c = a ? 1 : 0;
				a = a ? 2 : -1;
				this.helper.addClass(this._helper).css({
					width: this.element.outerWidth() + a,
					height: this.element.outerHeight() + a,
					position: "absolute",
					left: this.elementOffset.left - c + "px",
					top: this.elementOffset.top - c + "px",
					zIndex: ++b.zIndex
				});
				this.helper.appendTo("body").disableSelection()
			} else this.helper = this.element
		},
		_change: {
			e: function(b, a) {
				return {
					width: this.originalSize.width + a
				}
			},
			w: function(b, a) {
				return {
					left: this.originalPosition.left + a,
					width: this.originalSize.width - a
				}
			},
			n: function(b, a, c) {
				return {
					top: this.originalPosition.top + c,
					height: this.originalSize.height - c
				}
			},
			s: function(b, a, c) {
				return {
					height: this.originalSize.height + c
				}
			},
			se: function(b, a, c) {
				return d.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [b, a, c]))
			},
			sw: function(b, a, c) {
				return d.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [b, a, c]))
			},
			ne: function(b, a, c) {
				return d.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [b, a, c]))
			},
			nw: function(b, a, c) {
				return d.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [b, a, c]))
			}
		},
		_propagate: function(b, a) {
			d.ui.plugin.call(this, b, [a, this.ui()]);
			b != "resize" && this._trigger(b, a, this.ui())
		},
		plugins: {},
		ui: function() {
			return {
				originalElement: this.originalElement,
				element: this.element,
				helper: this.helper,
				position: this.position,
				size: this.size,
				originalSize: this.originalSize,
				originalPosition: this.originalPosition
			}
		}
	});
	d.extend(d.ui.resizable, {
		version: "1.8.2"
	});
	d.ui.plugin.add("resizable", "alsoResize", {
		start: function() {
			var b = d(this).data("resizable").options,
				a = function(c) {
				d(c).each(function() {
					d(this).data("resizable-alsoresize", {
						width: parseInt(d(this).width(), 10),
						height: parseInt(d(this).height(), 10),
						left: parseInt(d(this).css("left"), 10),
						top: parseInt(d(this).css("top"), 10)
					})
				})
			};
			if (typeof b.alsoResize == "object" && !b.alsoResize.parentNode) if (b.alsoResize.length) {
				b.alsoResize = b.alsoResize[0];
				a(b.alsoResize)
			} else d.each(b.alsoResize, function(c) {
				a(c)
			});
			else a(b.alsoResize)
		},
		resize: function() {
			var b = d(this).data("resizable"),
				a = b.options,
				c = b.originalSize,
				e = b.originalPosition,
				g = {
				height: b.size.height - c.height || 0,
				width: b.size.width - c.width || 0,
				top: b.position.top - e.top || 0,
				left: b.position.left - e.left || 0
			},
				f = function(h, i) {
				d(h).each(function() {
					var j = d(this),
						l = d(this).data("resizable-alsoresize"),
						p = {};
					d.each((i && i.length ? i : ["width", "height", "top", "left"]) || ["width", "height", "top", "left"], function(n, o) {
						if ((n = (l[o] || 0) + (g[o] || 0)) && n >= 0) p[o] = n || null
					});
					if (/relative/.test(j.css("position")) && d.browser.opera) {
						b._revertToRelativePosition = true;
						j.css({
							position: "absolute",
							top: "auto",
							left: "auto"
						})
					}
					j.css(p)
				})
			};
			typeof a.alsoResize == "object" && !a.alsoResize.nodeType ? d.each(a.alsoResize, function(h, i) {
				f(h, i)
			}) : f(a.alsoResize)
		},
		stop: function() {
			var b = d(this).data("resizable");
			if (b._revertToRelativePosition && d.browser.opera) {
				b._revertToRelativePosition = false;
				el.css({
					position: "relative"
				})
			}
			d(this).removeData("resizable-alsoresize-start")
		}
	});
	d.ui.plugin.add("resizable", "animate", {
		stop: function(b) {
			var a = d(this).data("resizable"),
				c = a.options,
				e = a._proportionallyResizeElements,
				g = e.length && /textarea/i.test(e[0].nodeName),
				f = g && d.ui.hasScroll(e[0], "left") ? 0 : a.sizeDiff.height;
			g = {
				width: a.size.width - (g ? 0 : a.sizeDiff.width),
				height: a.size.height - f
			};
			f = parseInt(a.element.css("left"), 10) + (a.position.left - a.originalPosition.left) || null;
			var h = parseInt(a.element.css("top"), 10) + (a.position.top - a.originalPosition.top) || null;
			a.element.animate(d.extend(g, h && f ? {
				top: h,
				left: f
			} : {}), {
				duration: c.animateDuration,
				easing: c.animateEasing,
				step: function() {
					var i = {
						width: parseInt(a.element.css("width"), 10),
						height: parseInt(a.element.css("height"), 10),
						top: parseInt(a.element.css("top"), 10),
						left: parseInt(a.element.css("left"), 10)
					};
					e && e.length && d(e[0]).css({
						width: i.width,
						height: i.height
					});
					a._updateCache(i);
					a._propagate("resize", b)
				}
			})
		}
	});
	d.ui.plugin.add("resizable", "containment", {
		start: function() {
			var b = d(this).data("resizable"),
				a = b.element,
				c = b.options.containment;
			if (a = c instanceof d ? c.get(0) : /parent/.test(c) ? a.parent().get(0) : c) {
				b.containerElement = d(a);
				if (/document/.test(c) || c == document) {
					b.containerOffset = {
						left: 0,
						top: 0
					};
					b.containerPosition = {
						left: 0,
						top: 0
					};
					b.parentData = {
						element: d(document),
						left: 0,
						top: 0,
						width: d(document).width(),
						height: d(document).height() || document.body.parentNode.scrollHeight
					}
				} else {
					var e = d(a),
						g = [];
					d(["Top", "Right", "Left", "Bottom"]).each(function(i, j) {
						g[i] = m(e.css("padding" + j))
					});
					b.containerOffset = e.offset();
					b.containerPosition = e.position();
					b.containerSize = {
						height: e.innerHeight() - g[3],
						width: e.innerWidth() - g[1]
					};
					c = b.containerOffset;
					var f = b.containerSize.height,
						h = b.containerSize.width;
					h = d.ui.hasScroll(a, "left") ? a.scrollWidth : h;
					f = d.ui.hasScroll(a) ? a.scrollHeight : f;
					b.parentData = {
						element: a,
						left: c.left,
						top: c.top,
						width: h,
						height: f
					}
				}
			}
		},
		resize: function(b) {
			var a = d(this).data("resizable"),
				c = a.options,
				e = a.containerOffset,
				g = a.position;
			b = a._aspectRatio || b.shiftKey;
			var f = {
				top: 0,
				left: 0
			},
				h = a.containerElement;
			if (h[0] != document && /static/.test(h.css("position"))) f = e;
			if (g.left < (a._helper ? e.left : 0)) {
				a.size.width += a._helper ? a.position.left - e.left : a.position.left - f.left;
				if (b) a.size.height = a.size.width / c.aspectRatio;
				a.position.left = c.helper ? e.left : 0
			}
			if (g.top < (a._helper ? e.top : 0)) {
				a.size.height += a._helper ? a.position.top - e.top : a.position.top;
				if (b) a.size.width = a.size.height * c.aspectRatio;
				a.position.top = a._helper ? e.top : 0
			}
			a.offset.left = a.parentData.left + a.position.left;
			a.offset.top = a.parentData.top + a.position.top;
			c = Math.abs((a._helper ? a.offset.left - f.left : a.offset.left - f.left) + a.sizeDiff.width);
			e = Math.abs((a._helper ? a.offset.top - f.top : a.offset.top - e.top) + a.sizeDiff.height);
			g = a.containerElement.get(0) == a.element.parent().get(0);
			f = /relative|absolute/.test(a.containerElement.css("position"));
			if (g && f) c -= a.parentData.left;
			if (c + a.size.width >= a.parentData.width) {
				a.size.width = a.parentData.width - c;
				if (b) a.size.height = a.size.width / a.aspectRatio
			}
			if (e + a.size.height >= a.parentData.height) {
				a.size.height = a.parentData.height - e;
				if (b) a.size.width = a.size.height * a.aspectRatio
			}
		},
		stop: function() {
			var b = d(this).data("resizable"),
				a = b.options,
				c = b.containerOffset,
				e = b.containerPosition,
				g = b.containerElement,
				f = d(b.helper),
				h = f.offset(),
				i = f.outerWidth() - b.sizeDiff.width;
			f = f.outerHeight() - b.sizeDiff.height;
			b._helper && !a.animate && /relative/.test(g.css("position")) && d(this).css({
				left: h.left - e.left - c.left,
				width: i,
				height: f
			});
			b._helper && !a.animate && /static/.test(g.css("position")) && d(this).css({
				left: h.left - e.left - c.left,
				width: i,
				height: f
			})
		}
	});
	d.ui.plugin.add("resizable", "ghost", {
		start: function() {
			var b = d(this).data("resizable"),
				a = b.options,
				c = b.size;
			b.ghost = b.originalElement.clone();
			b.ghost.css({
				opacity: 0.25,
				display: "block",
				position: "relative",
				height: c.height,
				width: c.width,
				margin: 0,
				left: 0,
				top: 0
			}).addClass("ui-resizable-ghost").addClass(typeof a.ghost == "string" ? a.ghost : "");
			b.ghost.appendTo(b.helper)
		},
		resize: function() {
			var b = d(this).data("resizable");
			b.ghost && b.ghost.css({
				position: "relative",
				height: b.size.height,
				width: b.size.width
			})
		},
		stop: function() {
			var b = d(this).data("resizable");
			b.ghost && b.helper && b.helper.get(0).removeChild(b.ghost.get(0))
		}
	});
	d.ui.plugin.add("resizable", "grid", {
		resize: function() {
			var b = d(this).data("resizable"),
				a = b.options,
				c = b.size,
				e = b.originalSize,
				g = b.originalPosition,
				f = b.axis;
			a.grid = typeof a.grid == "number" ? [a.grid, a.grid] : a.grid;
			var h = Math.round((c.width - e.width) / (a.grid[0] || 1)) * (a.grid[0] || 1);
			a = Math.round((c.height - e.height) / (a.grid[1] || 1)) * (a.grid[1] || 1);
			if (/^(se|s|e)$/.test(f)) {
				b.size.width = e.width + h;
				b.size.height = e.height + a
			} else if (/^(ne)$/.test(f)) {
				b.size.width = e.width + h;
				b.size.height = e.height + a;
				b.position.top = g.top - a
			} else {
				if (/^(sw)$/.test(f)) {
					b.size.width = e.width + h;
					b.size.height = e.height + a
				} else {
					b.size.width = e.width + h;
					b.size.height = e.height + a;
					b.position.top = g.top - a
				}
				b.position.left = g.left - h
			}
		}
	});
	var m = function(b) {
		return parseInt(b, 10) || 0
	},
		k = function(b) {
		return !isNaN(parseInt(b, 10))
	}
})(jQuery);;
/*
 * jQuery UI Selectable 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Selectables
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.mouse.js
 *	jquery.ui.widget.js
 */
(function($) {

	$.widget("ui.selectable", $.ui.mouse, {
		options: {
			appendTo: 'body',
			autoRefresh: true,
			distance: 0,
			filter: '*',
			tolerance: 'touch'
		},
		_create: function() {
			var self = this;

			this.element.addClass("ui-selectable");

			this.dragged = false;

			// cache selectee children based on filter
			var selectees;
			this.refresh = function() {
				selectees = $(self.options.filter, self.element[0]);
				selectees.each(function() {
					var $this = $(this);
					var pos = $this.offset();
					$.data(this, "selectable-item", {
						element: this,
						$element: $this,
						left: pos.left,
						top: pos.top,
						right: pos.left + $this.outerWidth(),
						bottom: pos.top + $this.outerHeight(),
						startselected: false,
						selected: $this.hasClass('ui-selected'),
						selecting: $this.hasClass('ui-selecting'),
						unselecting: $this.hasClass('ui-unselecting')
					});
				});
			};
			this.refresh();

			this.selectees = selectees.addClass("ui-selectee");

			this._mouseInit();

			this.helper = $("<div class='ui-selectable-helper'></div>");
		},

		destroy: function() {
			this.selectees.removeClass("ui-selectee").removeData("selectable-item");
			this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");
			this._mouseDestroy();

			return this;
		},

		_mouseStart: function(event) {
			var self = this;

			this.opos = [event.pageX, event.pageY];

			if (this.options.disabled) return;

			var options = this.options;

			this.selectees = $(options.filter, this.element[0]);

			this._trigger("start", event);

			$(options.appendTo).append(this.helper);
			// position helper (lasso)
			this.helper.css({
				"z-index": 100,
				"position": "absolute",
				"left": event.clientX,
				"top": event.clientY,
				"width": 0,
				"height": 0
			});

			if (options.autoRefresh) {
				this.refresh();
			}

			this.selectees.filter('.ui-selected').each(function() {
				var selectee = $.data(this, "selectable-item");
				selectee.startselected = true;
				if (!event.metaKey) {
					selectee.$element.removeClass('ui-selected');
					selectee.selected = false;
					selectee.$element.addClass('ui-unselecting');
					selectee.unselecting = true;
					// selectable UNSELECTING callback
					self._trigger("unselecting", event, {
						unselecting: selectee.element
					});
				}
			});

			$(event.target).parents().andSelf().each(function() {
				var selectee = $.data(this, "selectable-item");
				if (selectee) {
					var doSelect = !event.metaKey || !selectee.$element.hasClass('ui-selected');
					selectee.$element.removeClass(doSelect ? "ui-unselecting" : "ui-selected").addClass(doSelect ? "ui-selecting" : "ui-unselecting");
					selectee.unselecting = !doSelect;
					selectee.selecting = doSelect;
					selectee.selected = doSelect;
					// selectable (UN)SELECTING callback
					if (doSelect) {
						self._trigger("selecting", event, {
							selecting: selectee.element
						});
					} else {
						self._trigger("unselecting", event, {
							unselecting: selectee.element
						});
					}
					return false;
				}
			});

		},

		_mouseDrag: function(event) {
			var self = this;
			this.dragged = true;

			if (this.options.disabled) return;

			var options = this.options;

			var x1 = this.opos[0],
				y1 = this.opos[1],
				x2 = event.pageX,
				y2 = event.pageY;
			if (x1 > x2) {
				var tmp = x2;
				x2 = x1;
				x1 = tmp;
			}
			if (y1 > y2) {
				var tmp = y2;
				y2 = y1;
				y1 = tmp;
			}
			this.helper.css({
				left: x1,
				top: y1,
				width: x2 - x1,
				height: y2 - y1
			});

			this.selectees.each(function() {
				var selectee = $.data(this, "selectable-item");
				//prevent helper from being selected if appendTo: selectable
				if (!selectee || selectee.element == self.element[0]) return;
				var hit = false;
				if (options.tolerance == 'touch') {
					hit = (!(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1));
				} else if (options.tolerance == 'fit') {
					hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);
				}

				if (hit) {
					// SELECT
					if (selectee.selected) {
						selectee.$element.removeClass('ui-selected');
						selectee.selected = false;
					}
					if (selectee.unselecting) {
						selectee.$element.removeClass('ui-unselecting');
						selectee.unselecting = false;
					}
					if (!selectee.selecting) {
						selectee.$element.addClass('ui-selecting');
						selectee.selecting = true;
						// selectable SELECTING callback
						self._trigger("selecting", event, {
							selecting: selectee.element
						});
					}
				} else {
					// UNSELECT
					if (selectee.selecting) {
						if (event.metaKey && selectee.startselected) {
							selectee.$element.removeClass('ui-selecting');
							selectee.selecting = false;
							selectee.$element.addClass('ui-selected');
							selectee.selected = true;
						} else {
							selectee.$element.removeClass('ui-selecting');
							selectee.selecting = false;
							if (selectee.startselected) {
								selectee.$element.addClass('ui-unselecting');
								selectee.unselecting = true;
							}
							// selectable UNSELECTING callback
							self._trigger("unselecting", event, {
								unselecting: selectee.element
							});
						}
					}
					if (selectee.selected) {
						if (!event.metaKey && !selectee.startselected) {
							selectee.$element.removeClass('ui-selected');
							selectee.selected = false;

							selectee.$element.addClass('ui-unselecting');
							selectee.unselecting = true;
							// selectable UNSELECTING callback
							self._trigger("unselecting", event, {
								unselecting: selectee.element
							});
						}
					}
				}
			});

			return false;
		},

		_mouseStop: function(event) {
			var self = this;

			this.dragged = false;

			var options = this.options;

			$('.ui-unselecting', this.element[0]).each(function() {
				var selectee = $.data(this, "selectable-item");
				selectee.$element.removeClass('ui-unselecting');
				selectee.unselecting = false;
				selectee.startselected = false;
				self._trigger("unselected", event, {
					unselected: selectee.element
				});
			});
			$('.ui-selecting', this.element[0]).each(function() {
				var selectee = $.data(this, "selectable-item");
				selectee.$element.removeClass('ui-selecting').addClass('ui-selected');
				selectee.selecting = false;
				selectee.selected = true;
				selectee.startselected = true;
				self._trigger("selected", event, {
					selected: selectee.element
				});
			});
			this._trigger("stop", event);

			this.helper.remove();

			return false;
		}

	});

	$.extend($.ui.selectable, {
		version: "1.8.2"
	});

})(jQuery);
(function(e) {
	e.widget("ui.selectable", e.ui.mouse, {
		options: {
			appendTo: "body",
			autoRefresh: true,
			distance: 0,
			filter: "*",
			tolerance: "touch"
		},
		_create: function() {
			var c = this;
			this.element.addClass("ui-selectable");
			this.dragged = false;
			var f;
			this.refresh = function() {
				f = e(c.options.filter, c.element[0]);
				f.each(function() {
					var d = e(this),
						b = d.offset();
					e.data(this, "selectable-item", {
						element: this,
						$element: d,
						left: b.left,
						top: b.top,
						right: b.left + d.outerWidth(),
						bottom: b.top + d.outerHeight(),
						startselected: false,
						selected: d.hasClass("ui-selected"),
						selecting: d.hasClass("ui-selecting"),
						unselecting: d.hasClass("ui-unselecting")
					})
				})
			};
			this.refresh();
			this.selectees = f.addClass("ui-selectee");
			this._mouseInit();
			this.helper = e("<div class='ui-selectable-helper'></div>")
		},
		destroy: function() {
			this.selectees.removeClass("ui-selectee").removeData("selectable-item");
			this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");
			this._mouseDestroy();
			return this
		},
		_mouseStart: function(c) {
			var f = this;
			this.opos = [c.pageX, c.pageY];
			if (!this.options.disabled) {
				var d = this.options;
				this.selectees = e(d.filter, this.element[0]);
				this._trigger("start", c);
				e(d.appendTo).append(this.helper);
				this.helper.css({
					"z-index": 100,
					position: "absolute",
					left: c.clientX,
					top: c.clientY,
					width: 0,
					height: 0
				});
				d.autoRefresh && this.refresh();
				this.selectees.filter(".ui-selected").each(function() {
					var b = e.data(this, "selectable-item");
					b.startselected = true;
					if (!c.metaKey) {
						b.$element.removeClass("ui-selected");
						b.selected = false;
						b.$element.addClass("ui-unselecting");
						b.unselecting = true;
						f._trigger("unselecting", c, {
							unselecting: b.element
						})
					}
				});
				e(c.target).parents().andSelf().each(function() {
					var b = e.data(this, "selectable-item");
					if (b) {
						var g = !c.metaKey || !b.$element.hasClass("ui-selected");
						b.$element.removeClass(g ? "ui-unselecting" : "ui-selected").addClass(g ? "ui-selecting" : "ui-unselecting");
						b.unselecting = !g;
						b.selecting = g;
						(b.selected = g) ? f._trigger("selecting", c, {
							selecting: b.element
						}) : f._trigger("unselecting", c, {
							unselecting: b.element
						});
						return false
					}
				})
			}
		},
		_mouseDrag: function(c) {
			var f = this;
			this.dragged = true;
			if (!this.options.disabled) {
				var d = this.options,
					b = this.opos[0],
					g = this.opos[1],
					h = c.pageX,
					i = c.pageY;
				if (b > h) {
					var j = h;
					h = b;
					b = j
				}
				if (g > i) {
					j = i;
					i = g;
					g = j
				}
				this.helper.css({
					left: b,
					top: g,
					width: h - b,
					height: i - g
				});
				this.selectees.each(function() {
					var a = e.data(this, "selectable-item");
					if (! (!a || a.element == f.element[0])) {
						var k = false;
						if (d.tolerance == "touch") k = !(a.left > h || a.right < b || a.top > i || a.bottom < g);
						else if (d.tolerance == "fit") k = a.left > b && a.right < h && a.top > g && a.bottom < i;
						if (k) {
							if (a.selected) {
								a.$element.removeClass("ui-selected");
								a.selected = false
							}
							if (a.unselecting) {
								a.$element.removeClass("ui-unselecting");
								a.unselecting = false
							}
							if (!a.selecting) {
								a.$element.addClass("ui-selecting");
								a.selecting = true;
								f._trigger("selecting", c, {
									selecting: a.element
								})
							}
						} else {
							if (a.selecting) if (c.metaKey && a.startselected) {
								a.$element.removeClass("ui-selecting");
								a.selecting = false;
								a.$element.addClass("ui-selected");
								a.selected = true
							} else {
								a.$element.removeClass("ui-selecting");
								a.selecting = false;
								if (a.startselected) {
									a.$element.addClass("ui-unselecting");
									a.unselecting = true
								}
								f._trigger("unselecting", c, {
									unselecting: a.element
								})
							}
							if (a.selected) if (!c.metaKey && !a.startselected) {
								a.$element.removeClass("ui-selected");
								a.selected = false;
								a.$element.addClass("ui-unselecting");
								a.unselecting = true;
								f._trigger("unselecting", c, {
									unselecting: a.element
								})
							}
						}
					}
				});
				return false
			}
		},
		_mouseStop: function(c) {
			var f = this;
			this.dragged = false;
			e(".ui-unselecting", this.element[0]).each(function() {
				var d = e.data(this, "selectable-item");
				d.$element.removeClass("ui-unselecting");
				d.unselecting = false;
				d.startselected = false;
				f._trigger("unselected", c, {
					unselected: d.element
				})
			});
			e(".ui-selecting", this.element[0]).each(function() {
				var d = e.data(this, "selectable-item");
				d.$element.removeClass("ui-selecting").addClass("ui-selected");
				d.selecting = false;
				d.selected = true;
				d.startselected = true;
				f._trigger("selected", c, {
					selected: d.element
				})
			});
			this._trigger("stop", c);
			this.helper.remove();
			return false
		}
	});
	e.extend(e.ui.selectable, {
		version: "1.8.2"
	})
})(jQuery);;
/*
 * jQuery UI Sortable 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Sortables
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.mouse.js
 *	jquery.ui.widget.js
 */
(function(d) {
	d.widget("ui.sortable", d.ui.mouse, {
		widgetEventPrefix: "sort",
		options: {
			appendTo: "parent",
			axis: false,
			connectWith: false,
			containment: false,
			cursor: "auto",
			cursorAt: false,
			dropOnEmpty: true,
			forcePlaceholderSize: false,
			forceHelperSize: false,
			grid: false,
			handle: false,
			helper: "original",
			items: "> *",
			opacity: false,
			placeholder: false,
			revert: false,
			scroll: true,
			scrollSensitivity: 20,
			scrollSpeed: 20,
			scope: "default",
			tolerance: "intersect",
			zIndex: 1E3
		},
		_create: function() {
			this.containerCache = {};
			this.element.addClass("ui-sortable");
			this.refresh();
			this.floating = this.items.length ? /left|right/.test(this.items[0].item.css("float")) : false;
			this.offset = this.element.offset();
			this._mouseInit()
		},
		destroy: function() {
			this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");
			this._mouseDestroy();
			for (var a = this.items.length - 1; a >= 0; a--) this.items[a].item.removeData("sortable-item");
			return this
		},
		_setOption: function(a, b) {
			if (a === "disabled") {
				this.options[a] = b;
				this.widget()[b ? "addClass" : "removeClass"]("ui-sortable-disabled")
			} else d.Widget.prototype._setOption.apply(this, arguments)
		},
		_mouseCapture: function(a, b) {
			if (this.reverting) return false;
			if (this.options.disabled || this.options.type == "static") return false;
			this._refreshItems(a);
			var c = null,
				e = this;
			d(a.target).parents().each(function() {
				if (d.data(this, "sortable-item") == e) {
					c = d(this);
					return false
				}
			});
			if (d.data(a.target, "sortable-item") == e) c = d(a.target);
			if (!c) return false;
			if (this.options.handle && !b) {
				var f = false;
				d(this.options.handle, c).find("*").andSelf().each(function() {
					if (this == a.target) f = true
				});
				if (!f) return false
			}
			this.currentItem = c;
			this._removeCurrentsFromItems();
			return true
		},
		_mouseStart: function(a, b, c) {
			b = this.options;
			var e = this;
			this.currentContainer = this;
			this.refreshPositions();
			this.helper = this._createHelper(a);
			this._cacheHelperProportions();
			this._cacheMargins();
			this.scrollParent = this.helper.scrollParent();
			this.offset = this.currentItem.offset();
			this.offset = {
				top: this.offset.top - this.margins.top,
				left: this.offset.left - this.margins.left
			};
			this.helper.css("position", "absolute");
			this.cssPosition = this.helper.css("position");
			d.extend(this.offset, {
				click: {
					left: a.pageX - this.offset.left,
					top: a.pageY - this.offset.top
				},
				parent: this._getParentOffset(),
				relative: this._getRelativeOffset()
			});
			this.originalPosition = this._generatePosition(a);
			this.originalPageX = a.pageX;
			this.originalPageY = a.pageY;
			b.cursorAt && this._adjustOffsetFromHelper(b.cursorAt);
			this.domPosition = {
				prev: this.currentItem.prev()[0],
				parent: this.currentItem.parent()[0]
			};
			this.helper[0] != this.currentItem[0] && this.currentItem.hide();
			this._createPlaceholder();
			b.containment && this._setContainment();
			if (b.cursor) {
				if (d("body").css("cursor")) this._storedCursor = d("body").css("cursor");
				d("body").css("cursor", b.cursor)
			}
			if (b.opacity) {
				if (this.helper.css("opacity")) this._storedOpacity = this.helper.css("opacity");
				this.helper.css("opacity", b.opacity)
			}
			if (b.zIndex) {
				if (this.helper.css("zIndex")) this._storedZIndex = this.helper.css("zIndex");
				this.helper.css("zIndex", b.zIndex)
			}
			if (this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML") this.overflowOffset = this.scrollParent.offset();
			this._trigger("start", a, this._uiHash());
			this._preserveHelperProportions || this._cacheHelperProportions();
			if (!c) for (c = this.containers.length - 1; c >= 0; c--) this.containers[c]._trigger("activate", a, e._uiHash(this));
			if (d.ui.ddmanager) d.ui.ddmanager.current = this;
			d.ui.ddmanager && !b.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a);
			this.dragging = true;
			this.helper.addClass("ui-sortable-helper");
			this._mouseDrag(a);
			return true
		},
		_mouseDrag: function(a) {
			this.position = this._generatePosition(a);
			this.positionAbs = this._convertPositionTo("absolute");
			if (!this.lastPositionAbs) this.lastPositionAbs = this.positionAbs;
			if (this.options.scroll) {
				var b = this.options,
					c = false;
				if (this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML") {
					if (this.overflowOffset.top + this.scrollParent[0].offsetHeight - a.pageY < b.scrollSensitivity) this.scrollParent[0].scrollTop = c = this.scrollParent[0].scrollTop + b.scrollSpeed;
					else if (a.pageY - this.overflowOffset.top < b.scrollSensitivity) this.scrollParent[0].scrollTop = c = this.scrollParent[0].scrollTop - b.scrollSpeed;
					if (this.overflowOffset.left + this.scrollParent[0].offsetWidth - a.pageX < b.scrollSensitivity) this.scrollParent[0].scrollLeft = c = this.scrollParent[0].scrollLeft + b.scrollSpeed;
					else if (a.pageX - this.overflowOffset.left < b.scrollSensitivity) this.scrollParent[0].scrollLeft = c = this.scrollParent[0].scrollLeft - b.scrollSpeed
				} else {
					if (a.pageY - d(document).scrollTop() < b.scrollSensitivity) c = d(document).scrollTop(d(document).scrollTop() - b.scrollSpeed);
					else if (d(window).height() - (a.pageY - d(document).scrollTop()) < b.scrollSensitivity) c = d(document).scrollTop(d(document).scrollTop() + b.scrollSpeed);
					if (a.pageX - d(document).scrollLeft() < b.scrollSensitivity) c = d(document).scrollLeft(d(document).scrollLeft() - b.scrollSpeed);
					else if (d(window).width() - (a.pageX - d(document).scrollLeft()) < b.scrollSensitivity) c = d(document).scrollLeft(d(document).scrollLeft() + b.scrollSpeed)
				}
				c !== false && d.ui.ddmanager && !b.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a)
			}
			this.positionAbs = this._convertPositionTo("absolute");
			if (!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left + "px";
			if (!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top + "px";
			for (b = this.items.length - 1; b >= 0; b--) {
				c = this.items[b];
				var e = c.item[0],
					f = this._intersectsWithPointer(c);
				if (f) if (e != this.currentItem[0] && this.placeholder[f == 1 ? "next" : "prev"]()[0] != e && !d.ui.contains(this.placeholder[0], e) && (this.options.type == "semi-dynamic" ? !d.ui.contains(this.element[0], e) : true)) {
					this.direction = f == 1 ? "down" : "up";
					if (this.options.tolerance == "pointer" || this._intersectsWithSides(c)) this._rearrange(a, c);
					else break;
					this._trigger("change", a, this._uiHash());
					break
				}
			}
			this._contactContainers(a);
			d.ui.ddmanager && d.ui.ddmanager.drag(this, a);
			this._trigger("sort", a, this._uiHash());
			this.lastPositionAbs = this.positionAbs;
			return false
		},
		_mouseStop: function(a, b) {
			if (a) {
				d.ui.ddmanager && !this.options.dropBehaviour && d.ui.ddmanager.drop(this, a);
				if (this.options.revert) {
					var c = this;
					b = c.placeholder.offset();
					c.reverting = true;
					d(this.helper).animate({
						left: b.left - this.offset.parent.left - c.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft),
						top: b.top - this.offset.parent.top - c.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)
					},
					parseInt(this.options.revert, 10) || 500, function() {
						c._clear(a)
					})
				} else this._clear(a, b);
				return false
			}
		},
		cancel: function() {
			var a = this;
			if (this.dragging) {
				this._mouseUp();
				this.options.helper == "original" ? this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") : this.currentItem.show();
				for (var b = this.containers.length - 1; b >= 0; b--) {
					this.containers[b]._trigger("deactivate", null, a._uiHash(this));
					if (this.containers[b].containerCache.over) {
						this.containers[b]._trigger("out", null, a._uiHash(this));
						this.containers[b].containerCache.over = 0
					}
				}
			}
			this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
			this.options.helper != "original" && this.helper && this.helper[0].parentNode && this.helper.remove();
			d.extend(this, {
				helper: null,
				dragging: false,
				reverting: false,
				_noFinalSort: null
			});
			this.domPosition.prev ? d(this.domPosition.prev).after(this.currentItem) : d(this.domPosition.parent).prepend(this.currentItem);
			return this
		},
		serialize: function(a) {
			var b = this._getItemsAsjQuery(a && a.connected),
				c = [];
			a = a || {};
			d(b).each(function() {
				var e = (d(a.item || this).attr(a.attribute || "id") || "").match(a.expression || /(.+)[-=_](.+)/);
				if (e) c.push((a.key || e[1] + "[]") + "=" + (a.key && a.expression ? e[1] : e[2]))
			});
			return c.join("&")
		},
		toArray: function(a) {
			var b = this._getItemsAsjQuery(a && a.connected),
				c = [];
			a = a || {};
			b.each(function() {
				c.push(d(a.item || this).attr(a.attribute || "id") || "")
			});
			return c
		},
		_intersectsWith: function(a) {
			var b = this.positionAbs.left,
				c = b + this.helperProportions.width,
				e = this.positionAbs.top,
				f = e + this.helperProportions.height,
				g = a.left,
				h = g + a.width,
				i = a.top,
				k = i + a.height,
				j = this.offset.click.top,
				l = this.offset.click.left;
			j = e + j > i && e + j < k && b + l > g && b + l < h;
			return this.options.tolerance == "pointer" || this.options.forcePointerForContainers || this.options.tolerance != "pointer" && this.helperProportions[this.floating ? "width" : "height"] > a[this.floating ? "width" : "height"] ? j : g < b + this.helperProportions.width / 2 && c - this.helperProportions.width / 2 < h && i < e + this.helperProportions.height / 2 && f - this.helperProportions.height / 2 < k
		},
		_intersectsWithPointer: function(a) {
			var b = d.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, a.top, a.height);
			a = d.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, a.left, a.width);
			b = b && a;
			a = this._getDragVerticalDirection();
			var c = this._getDragHorizontalDirection();
			if (!b) return false;
			return this.floating ? c && c == "right" || a == "down" ? 2 : 1 : a && (a == "down" ? 2 : 1)
		},
		_intersectsWithSides: function(a) {
			var b = d.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, a.top + a.height / 2, a.height);
			a = d.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, a.left + a.width / 2, a.width);
			var c = this._getDragVerticalDirection(),
				e = this._getDragHorizontalDirection();
			return this.floating && e ? e == "right" && a || e == "left" && !a : c && (c == "down" && b || c == "up" && !b)
		},
		_getDragVerticalDirection: function() {
			var a = this.positionAbs.top - this.lastPositionAbs.top;
			return a != 0 && (a > 0 ? "down" : "up")
		},
		_getDragHorizontalDirection: function() {
			var a = this.positionAbs.left - this.lastPositionAbs.left;
			return a != 0 && (a > 0 ? "right" : "left")
		},
		refresh: function(a) {
			this._refreshItems(a);
			this.refreshPositions();
			return this
		},
		_connectWith: function() {
			var a = this.options;
			return a.connectWith.constructor == String ? [a.connectWith] : a.connectWith
		},
		_getItemsAsjQuery: function(a) {
			var b = [],
				c = [],
				e = this._connectWith();
			if (e && a) for (a = e.length - 1; a >= 0; a--) for (var f = d(e[a]), g = f.length - 1; g >= 0; g--) {
				var h = d.data(f[g], "sortable");
				if (h && h != this && !h.options.disabled) c.push([d.isFunction(h.options.items) ? h.options.items.call(h.element) : d(h.options.items, h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), h])
			}
			c.push([d.isFunction(this.options.items) ? this.options.items.call(this.element, null, {
				options: this.options,
				item: this.currentItem
			}) : d(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]);
			for (a = c.length - 1; a >= 0; a--) c[a][0].each(function() {
				b.push(this)
			});
			return d(b)
		},
		_removeCurrentsFromItems: function() {
			for (var a = this.currentItem.find(":data(sortable-item)"), b = 0; b < this.items.length; b++) for (var c = 0; c < a.length; c++) a[c] == this.items[b].item[0] && this.items.splice(b, 1)
		},
		_refreshItems: function(a) {
			this.items = [];
			this.containers = [this];
			var b = this.items,
				c = [
				[d.isFunction(this.options.items) ? this.options.items.call(this.element[0], a, {
					item: this.currentItem
				}) : d(this.options.items, this.element), this]],
				e = this._connectWith();
			if (e) for (var f = e.length - 1; f >= 0; f--) for (var g = d(e[f]), h = g.length - 1; h >= 0; h--) {
				var i = d.data(g[h], "sortable");
				if (i && i != this && !i.options.disabled) {
					c.push([d.isFunction(i.options.items) ? i.options.items.call(i.element[0], a, {
						item: this.currentItem
					}) : d(i.options.items, i.element), i]);
					this.containers.push(i)
				}
			}
			for (f = c.length - 1; f >= 0; f--) {
				a = c[f][1];
				e = c[f][0];
				h = 0;
				for (g = e.length; h < g; h++) {
					i = d(e[h]);
					i.data("sortable-item", a);
					b.push({
						item: i,
						instance: a,
						width: 0,
						height: 0,
						left: 0,
						top: 0
					})
				}
			}
		},
		refreshPositions: function(a) {
			if (this.offsetParent && this.helper) this.offset.parent = this._getParentOffset();
			for (var b = this.items.length - 1; b >= 0; b--) {
				var c = this.items[b],
					e = this.options.toleranceElement ? d(this.options.toleranceElement, c.item) : c.item;
				if (!a) {
					c.width = e.outerWidth();
					c.height = e.outerHeight()
				}
				e = e.offset();
				c.left = e.left;
				c.top = e.top
			}
			if (this.options.custom && this.options.custom.refreshContainers) this.options.custom.refreshContainers.call(this);
			else for (b = this.containers.length - 1; b >= 0; b--) {
				e = this.containers[b].element.offset();
				this.containers[b].containerCache.left = e.left;
				this.containers[b].containerCache.top = e.top;
				this.containers[b].containerCache.width = this.containers[b].element.outerWidth();
				this.containers[b].containerCache.height = this.containers[b].element.outerHeight()
			}
			return this
		},
		_createPlaceholder: function(a) {
			var b = a || this,
				c = b.options;
			if (!c.placeholder || c.placeholder.constructor == String) {
				var e = c.placeholder;
				c.placeholder = {
					element: function() {
						var f = d(document.createElement(b.currentItem[0].nodeName)).addClass(e || b.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];
						if (!e) f.style.visibility = "hidden";
						return f
					},
					update: function(f, g) {
						if (! (e && !c.forcePlaceholderSize)) {
							g.height() || g.height(b.currentItem.innerHeight() - parseInt(b.currentItem.css("paddingTop") || 0, 10) - parseInt(b.currentItem.css("paddingBottom") || 0, 10));
							g.width() || g.width(b.currentItem.innerWidth() - parseInt(b.currentItem.css("paddingLeft") || 0, 10) - parseInt(b.currentItem.css("paddingRight") || 0, 10))
						}
					}
				}
			}
			b.placeholder = d(c.placeholder.element.call(b.element, b.currentItem));
			b.currentItem.after(b.placeholder);
			c.placeholder.update(b, b.placeholder)
		},
		_contactContainers: function(a) {
			for (var b = null, c = null, e = this.containers.length - 1; e >= 0; e--) if (!d.ui.contains(this.currentItem[0], this.containers[e].element[0])) if (this._intersectsWith(this.containers[e].containerCache)) {
				if (! (b && d.ui.contains(this.containers[e].element[0], b.element[0]))) {
					b = this.containers[e];
					c = e
				}
			} else if (this.containers[e].containerCache.over) {
				this.containers[e]._trigger("out", a, this._uiHash(this));
				this.containers[e].containerCache.over = 0
			}
			if (b) if (this.containers.length === 1) {
				this.containers[c]._trigger("over", a, this._uiHash(this));
				this.containers[c].containerCache.over = 1
			} else if (this.currentContainer != this.containers[c]) {
				b = 1E4;
				e = null;
				for (var f = this.positionAbs[this.containers[c].floating ? "left" : "top"], g = this.items.length - 1; g >= 0; g--) if (d.ui.contains(this.containers[c].element[0], this.items[g].item[0])) {
					var h = this.items[g][this.containers[c].floating ? "left" : "top"];
					if (Math.abs(h - f) < b) {
						b = Math.abs(h - f);
						e = this.items[g]
					}
				}
				if (e || this.options.dropOnEmpty) {
					this.currentContainer = this.containers[c];
					e ? this._rearrange(a, e, null, true) : this._rearrange(a, null, this.containers[c].element, true);
					this._trigger("change", a, this._uiHash());
					this.containers[c]._trigger("change", a, this._uiHash(this));
					this.options.placeholder.update(this.currentContainer, this.placeholder);
					this.containers[c]._trigger("over", a, this._uiHash(this));
					this.containers[c].containerCache.over = 1
				}
			}
		},
		_createHelper: function(a) {
			var b = this.options;
			a = d.isFunction(b.helper) ? d(b.helper.apply(this.element[0], [a, this.currentItem])) : b.helper == "clone" ? this.currentItem.clone() : this.currentItem;
			a.parents("body").length || d(b.appendTo != "parent" ? b.appendTo : this.currentItem[0].parentNode)[0].appendChild(a[0]);
			if (a[0] == this.currentItem[0]) this._storedCSS = {
				width: this.currentItem[0].style.width,
				height: this.currentItem[0].style.height,
				position: this.currentItem.css("position"),
				top: this.currentItem.css("top"),
				left: this.currentItem.css("left")
			};
			if (a[0].style.width == "" || b.forceHelperSize) a.width(this.currentItem.width());
			if (a[0].style.height == "" || b.forceHelperSize) a.height(this.currentItem.height());
			return a
		},
		_adjustOffsetFromHelper: function(a) {
			if (typeof a == "string") a = a.split(" ");
			if (d.isArray(a)) a = {
				left: +a[0],
				top: +a[1] || 0
			};
			if ("left" in a) this.offset.click.left = a.left + this.margins.left;
			if ("right" in a) this.offset.click.left = this.helperProportions.width - a.right + this.margins.left;
			if ("top" in a) this.offset.click.top = a.top + this.margins.top;
			if ("bottom" in a) this.offset.click.top = this.helperProportions.height - a.bottom + this.margins.top
		},
		_getParentOffset: function() {
			this.offsetParent = this.helper.offsetParent();
			var a = this.offsetParent.offset();
			if (this.cssPosition == "absolute" && this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) {
				a.left += this.scrollParent.scrollLeft();
				a.top += this.scrollParent.scrollTop()
			}
			if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && d.browser.msie) a = {
				top: 0,
				left: 0
			};
			return {
				top: a.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
				left: a.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)
			}
		},
		_getRelativeOffset: function() {
			if (this.cssPosition == "relative") {
				var a = this.currentItem.position();
				return {
					top: a.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(),
					left: a.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()
				}
			} else return {
				top: 0,
				left: 0
			}
		},
		_cacheMargins: function() {
			this.margins = {
				left: parseInt(this.currentItem.css("marginLeft"), 10) || 0,
				top: parseInt(this.currentItem.css("marginTop"), 10) || 0
			}
		},
		_cacheHelperProportions: function() {
			this.helperProportions = {
				width: this.helper.outerWidth(),
				height: this.helper.outerHeight()
			}
		},
		_setContainment: function() {
			var a = this.options;
			if (a.containment == "parent") a.containment = this.helper[0].parentNode;
			if (a.containment == "document" || a.containment == "window") this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, d(a.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (d(a.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top];
			if (!/^(document|window|parent)$/.test(a.containment)) {
				var b = d(a.containment)[0];
				a = d(a.containment).offset();
				var c = d(b).css("overflow") != "hidden";
				this.containment = [a.left + (parseInt(d(b).css("borderLeftWidth"), 10) || 0) + (parseInt(d(b).css("paddingLeft"), 10) || 0) - this.margins.left, a.top + (parseInt(d(b).css("borderTopWidth"), 10) || 0) + (parseInt(d(b).css("paddingTop"), 10) || 0) - this.margins.top, a.left + (c ? Math.max(b.scrollWidth, b.offsetWidth) : b.offsetWidth) - (parseInt(d(b).css("borderLeftWidth"), 10) || 0) - (parseInt(d(b).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, a.top + (c ? Math.max(b.scrollHeight, b.offsetHeight) : b.offsetHeight) - (parseInt(d(b).css("borderTopWidth"), 10) || 0) - (parseInt(d(b).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top]
			}
		},
		_convertPositionTo: function(a, b) {
			if (!b) b = this.position;
			a = a == "absolute" ? 1 : -1;
			var c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent,
			e = /(html|body)/i.test(c[0].tagName);
			return {
				top: b.top + this.offset.relative.top * a + this.offset.parent.top * a - (d.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : e ? 0 : c.scrollTop()) * a),
				left: b.left + this.offset.relative.left * a + this.offset.parent.left * a - (d.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : e ? 0 : c.scrollLeft()) * a)
			}
		},
		_generatePosition: function(a) {
			var b = this.options,
				c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent,
			e = /(html|body)/i.test(c[0].tagName);
			if (this.cssPosition == "relative" && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) this.offset.relative = this._getRelativeOffset();
			var f = a.pageX,
				g = a.pageY;
			if (this.originalPosition) {
				if (this.containment) {
					if (a.pageX - this.offset.click.left < this.containment[0]) f = this.containment[0] + this.offset.click.left;
					if (a.pageY - this.offset.click.top < this.containment[1]) g = this.containment[1] + this.offset.click.top;
					if (a.pageX - this.offset.click.left > this.containment[2]) f = this.containment[2] + this.offset.click.left;
					if (a.pageY - this.offset.click.top > this.containment[3]) g = this.containment[3] + this.offset.click.top
				}
				if (b.grid) {
					g = this.originalPageY + Math.round((g - this.originalPageY) / b.grid[1]) * b.grid[1];
					g = this.containment ? !(g - this.offset.click.top < this.containment[1] || g - this.offset.click.top > this.containment[3]) ? g : !(g - this.offset.click.top < this.containment[1]) ? g - b.grid[1] : g + b.grid[1] : g;
					f = this.originalPageX + Math.round((f - this.originalPageX) / b.grid[0]) * b.grid[0];
					f = this.containment ? !(f - this.offset.click.left < this.containment[0] || f - this.offset.click.left > this.containment[2]) ? f : !(f - this.offset.click.left < this.containment[0]) ? f - b.grid[0] : f + b.grid[0] : f
				}
			}
			return {
				top: g - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (d.browser.safari && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : e ? 0 : c.scrollTop()),
				left: f - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (d.browser.safari && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : e ? 0 : c.scrollLeft())
			}
		},
		_rearrange: function(a, b, c, e) {
			c ? c[0].appendChild(this.placeholder[0]) : b.item[0].parentNode.insertBefore(this.placeholder[0], this.direction == "down" ? b.item[0] : b.item[0].nextSibling);
			this.counter = this.counter ? ++this.counter : 1;
			var f = this,
				g = this.counter;
			window.setTimeout(function() {
				g == f.counter && f.refreshPositions(!e)
			},
			0)
		},
		_clear: function(a, b) {
			this.reverting = false;
			var c = []; ! this._noFinalSort && this.currentItem[0].parentNode && this.placeholder.before(this.currentItem);
			this._noFinalSort = null;
			if (this.helper[0] == this.currentItem[0]) {
				for (var e in this._storedCSS) if (this._storedCSS[e] == "auto" || this._storedCSS[e] == "static") this._storedCSS[e] = "";
				this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")
			} else this.currentItem.show();
			this.fromOutside && !b && c.push(function(f) {
				this._trigger("receive", f, this._uiHash(this.fromOutside))
			});
			if ((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !b) c.push(function(f) {
				this._trigger("update", f, this._uiHash())
			});
			if (!d.ui.contains(this.element[0], this.currentItem[0])) {
				b || c.push(function(f) {
					this._trigger("remove", f, this._uiHash())
				});
				for (e = this.containers.length - 1; e >= 0; e--) if (d.ui.contains(this.containers[e].element[0], this.currentItem[0]) && !b) {
					c.push(function(f) {
						return function(g) {
							f._trigger("receive", g, this._uiHash(this))
						}
					}.call(this, this.containers[e]));
					c.push(function(f) {
						return function(g) {
							f._trigger("update", g, this._uiHash(this))
						}
					}.call(this, this.containers[e]))
				}
			}
			for (e = this.containers.length - 1; e >= 0; e--) {
				b || c.push(function(f) {
					return function(g) {
						f._trigger("deactivate", g, this._uiHash(this))
					}
				}.call(this, this.containers[e]));
				if (this.containers[e].containerCache.over) {
					c.push(function(f) {
						return function(g) {
							f._trigger("out", g, this._uiHash(this))
						}
					}.call(this, this.containers[e]));
					this.containers[e].containerCache.over = 0
				}
			}
			this._storedCursor && d("body").css("cursor", this._storedCursor);
			this._storedOpacity && this.helper.css("opacity", this._storedOpacity);
			if (this._storedZIndex) this.helper.css("zIndex", this._storedZIndex == "auto" ? "" : this._storedZIndex);
			this.dragging = false;
			if (this.cancelHelperRemoval) {
				if (!b) {
					this._trigger("beforeStop", a, this._uiHash());
					for (e = 0; e < c.length; e++) c[e].call(this, a);
					this._trigger("stop", a, this._uiHash())
				}
				return false
			}
			b || this._trigger("beforeStop", a, this._uiHash());
			this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
			this.helper[0] != this.currentItem[0] && this.helper.remove();
			this.helper = null;
			if (!b) {
				for (e = 0; e < c.length; e++) c[e].call(this, a);
				this._trigger("stop", a, this._uiHash())
			}
			this.fromOutside = false;
			return true
		},
		_trigger: function() {
			d.Widget.prototype._trigger.apply(this, arguments) === false && this.cancel()
		},
		_uiHash: function(a) {
			var b = a || this;
			return {
				helper: b.helper,
				placeholder: b.placeholder || d([]),
				position: b.position,
				originalPosition: b.originalPosition,
				offset: b.positionAbs,
				item: b.currentItem,
				sender: a ? a.element : null
			}
		}
	});
	d.extend(d.ui.sortable, {
		version: "1.8.2"
	})
})(jQuery);;
/*
 * jQuery UI Accordion 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Accordion
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.widget.js
 */
(function(c) {
	c.widget("ui.accordion", {
		options: {
			active: 0,
			animated: "slide",
			autoHeight: true,
			clearStyle: false,
			collapsible: false,
			event: "click",
			fillSpace: false,
			header: "> li > :first-child,> :not(li):even",
			icons: {
				header: "ui-icon-triangle-1-e",
				headerSelected: "ui-icon-triangle-1-s"
			},
			navigation: false,
			navigationFilter: function() {
				return this.href.toLowerCase() == location.href.toLowerCase()
			}
		},
		_create: function() {
			var a = this.options,
				b = this;
			this.running = 0;
			this.element.addClass("ui-accordion ui-widget ui-helper-reset");
			this.element.children("li").addClass("ui-accordion-li-fix");
			this.headers = this.element.find(a.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion", function() {
				c(this).addClass("ui-state-hover")
			}).bind("mouseleave.accordion", function() {
				c(this).removeClass("ui-state-hover")
			}).bind("focus.accordion", function() {
				c(this).addClass("ui-state-focus")
			}).bind("blur.accordion", function() {
				c(this).removeClass("ui-state-focus")
			});
			this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
			if (a.navigation) {
				var d = this.element.find("a").filter(a.navigationFilter);
				if (d.length) {
					var f = d.closest(".ui-accordion-header");
					this.active = f.length ? f : d.closest(".ui-accordion-content").prev()
				}
			}
			this.active = this._findActive(this.active || a.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");
			this.active.next().addClass("ui-accordion-content-active");
			this._createIcons();
			this.resize();
			this.element.attr("role", "tablist");
			this.headers.attr("role", "tab").bind("keydown", function(g) {
				return b._keydown(g)
			}).next().attr("role", "tabpanel");
			this.headers.not(this.active || "").attr("aria-expanded", "false").attr("tabIndex", "-1").next().hide();
			this.active.length ? this.active.attr("aria-expanded", "true").attr("tabIndex", "0") : this.headers.eq(0).attr("tabIndex", "0");
			c.browser.safari || this.headers.find("a").attr("tabIndex", "-1");
			a.event && this.headers.bind(a.event + ".accordion", function(g) {
				b._clickHandler.call(b, g, this);
				g.preventDefault()
			})
		},
		_createIcons: function() {
			var a = this.options;
			if (a.icons) {
				c("<span/>").addClass("ui-icon " + a.icons.header).prependTo(this.headers);
				this.active.find(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);
				this.element.addClass("ui-accordion-icons")
			}
		},
		_destroyIcons: function() {
			this.headers.children(".ui-icon").remove();
			this.element.removeClass("ui-accordion-icons")
		},
		destroy: function() {
			var a = this.options;
			this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role").unbind(".accordion").removeData("accordion");
			this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex");
			this.headers.find("a").removeAttr("tabIndex");
			this._destroyIcons();
			var b = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");
			if (a.autoHeight || a.fillHeight) b.css("height", "");
			return this
		},
		_setOption: function(a, b) {
			c.Widget.prototype._setOption.apply(this, arguments);
			a == "active" && this.activate(b);
			if (a == "icons") {
				this._destroyIcons();
				b && this._createIcons()
			}
		},
		_keydown: function(a) {
			var b = c.ui.keyCode;
			if (! (this.options.disabled || a.altKey || a.ctrlKey)) {
				var d = this.headers.length,
					f = this.headers.index(a.target),
					g = false;
				switch (a.keyCode) {
				case b.RIGHT:
				case b.DOWN:
					g = this.headers[(f + 1) % d];
					break;
				case b.LEFT:
				case b.UP:
					g = this.headers[(f - 1 + d) % d];
					break;
				case b.SPACE:
				case b.ENTER:
					this._clickHandler({
						target: a.target
					},
					a.target);
					a.preventDefault()
				}
				if (g) {
					c(a.target).attr("tabIndex", "-1");
					c(g).attr("tabIndex", "0");
					g.focus();
					return false
				}
				return true
			}
		},
		resize: function() {
			var a = this.options,
				b;
			if (a.fillSpace) {
				if (c.browser.msie) {
					var d = this.element.parent().css("overflow");
					this.element.parent().css("overflow", "hidden")
				}
				b = this.element.parent().height();
				c.browser.msie && this.element.parent().css("overflow", d);
				this.headers.each(function() {
					b -= c(this).outerHeight(true)
				});
				this.headers.next().each(function() {
					c(this).height(Math.max(0, b - c(this).innerHeight() + c(this).height()))
				}).css("overflow", "auto")
			} else if (a.autoHeight) {
				b = 0;
				this.headers.next().each(function() {
					b = Math.max(b, c(this).height())
				}).height(b)
			}
			return this
		},
		activate: function(a) {
			this.options.active = a;
			a = this._findActive(a)[0];
			this._clickHandler({
				target: a
			},
			a);
			return this
		},
		_findActive: function(a) {
			return a ? typeof a == "number" ? this.headers.filter(":eq(" + a + ")") : this.headers.not(this.headers.not(a)) : a === false ? c([]) : this.headers.filter(":eq(0)")
		},
		_clickHandler: function(a, b) {
			var d = this.options;
			if (!d.disabled) if (a.target) {
				a = c(a.currentTarget || b);
				b = a[0] == this.active[0];
				d.active = d.collapsible && b ? false : c(".ui-accordion-header", this.element).index(a);
				if (! (this.running || !d.collapsible && b)) {
					this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
					if (!b) {
						a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").find(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);
						a.next().addClass("ui-accordion-content-active")
					}
					e = a.next();
					f = this.active.next();
					g = {
						options: d,
						newHeader: b && d.collapsible ? c([]) : a,
						oldHeader: this.active,
						newContent: b && d.collapsible ? c([]) : e,
						oldContent: f
					};
					d = this.headers.index(this.active[0]) > this.headers.index(a[0]);
					this.active = b ? c([]) : a;
					this._toggle(e, f, g, b, d)
				}
			} else if (d.collapsible) {
				this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
				this.active.next().addClass("ui-accordion-content-active");
				var f = this.active.next(),
					g = {
					options: d,
					newHeader: c([]),
					oldHeader: d.active,
					newContent: c([]),
					oldContent: f
				},
					e = this.active = c([]);
				this._toggle(e, f, g)
			}
		},
		_toggle: function(a, b, d, f, g) {
			var e = this.options,
				k = this;
			this.toShow = a;
			this.toHide = b;
			this.data = d;
			var i = function() {
				if (k) return k._completed.apply(k, arguments)
			};
			this._trigger("changestart", null, this.data);
			this.running = b.size() === 0 ? a.size() : b.size();
			if (e.animated) {
				d = {};
				d = e.collapsible && f ? {
					toShow: c([]),
					toHide: b,
					complete: i,
					down: g,
					autoHeight: e.autoHeight || e.fillSpace
				} : {
					toShow: a,
					toHide: b,
					complete: i,
					down: g,
					autoHeight: e.autoHeight || e.fillSpace
				};
				if (!e.proxied) e.proxied = e.animated;
				if (!e.proxiedDuration) e.proxiedDuration = e.duration;
				e.animated = c.isFunction(e.proxied) ? e.proxied(d) : e.proxied;
				e.duration = c.isFunction(e.proxiedDuration) ? e.proxiedDuration(d) : e.proxiedDuration;
				f = c.ui.accordion.animations;
				var h = e.duration,
					j = e.animated;
				if (j && !f[j] && !c.easing[j]) j = "slide";
				f[j] || (f[j] = function(l) {
					this.slide(l, {
						easing: j,
						duration: h || 700
					})
				});
				f[j](d)
			} else {
				if (e.collapsible && f) a.toggle();
				else {
					b.hide();
					a.show()
				}
				i(true)
			}
			b.prev().attr("aria-expanded", "false").attr("tabIndex", "-1").blur();
			a.prev().attr("aria-expanded", "true").attr("tabIndex", "0").focus()
		},
		_completed: function(a) {
			var b = this.options;
			this.running = a ? 0 : --this.running;
			if (!this.running) {
				b.clearStyle && this.toShow.add(this.toHide).css({
					height: "",
					overflow: ""
				});
				this.toHide.removeClass("ui-accordion-content-active");
				this._trigger("change", null, this.data)
			}
		}
	});
	c.extend(c.ui.accordion, {
		version: "1.8.2",
		animations: {
			slide: function(a, b) {
				a = c.extend({
					easing: "swing",
					duration: 300
				},
				a, b);
				if (a.toHide.size()) if (a.toShow.size()) {
					var d = a.toShow.css("overflow"),
						f = 0,
						g = {},
						e = {},
						k;
					b = a.toShow;
					k = b[0].style.width;
					b.width(parseInt(b.parent().width(), 10) - parseInt(b.css("paddingLeft"), 10) - parseInt(b.css("paddingRight"), 10) - (parseInt(b.css("borderLeftWidth"), 10) || 0) - (parseInt(b.css("borderRightWidth"), 10) || 0));
					c.each(["height", "paddingTop", "paddingBottom"], function(i, h) {
						e[h] = "hide";
						i = ("" + c.css(a.toShow[0], h)).match(/^([\d+-.]+)(.*)$/);
						g[h] = {
							value: i[1],
							unit: i[2] || "px"
						}
					});
					a.toShow.css({
						height: 0,
						overflow: "hidden"
					}).show();
					a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(e, {
						step: function(i, h) {
							if (h.prop == "height") f = h.end - h.start === 0 ? 0 : (h.now - h.start) / (h.end - h.start);
							a.toShow[0].style[h.prop] = f * g[h.prop].value + g[h.prop].unit
						},
						duration: a.duration,
						easing: a.easing,
						complete: function() {
							a.autoHeight || a.toShow.css("height", "");
							a.toShow.css("width", k);
							a.toShow.css({
								overflow: d
							});
							a.complete()
						}
					})
				} else a.toHide.animate({
					height: "hide"
				},
				a);
				else a.toShow.animate({
					height: "show"
				},
				a)
			},
			bounceslide: function(a) {
				this.slide(a, {
					easing: a.down ? "easeOutBounce" : "swing",
					duration: a.down ? 1E3 : 200
				})
			}
		}
	})
})(jQuery);;
/*
 * jQuery UI Autocomplete 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Autocomplete
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.widget.js
 *	jquery.ui.position.js
 */
(function(e) {
	e.widget("ui.autocomplete", {
		options: {
			minLength: 1,
			delay: 300
		},
		_create: function() {
			var a = this,
				c = this.element[0].ownerDocument;
			this.element.addClass("ui-autocomplete-input").attr("autocomplete", "off").attr({
				role: "textbox",
				"aria-autocomplete": "list",
				"aria-haspopup": "true"
			}).bind("keydown.autocomplete", function(d) {
				var b = e.ui.keyCode;
				switch (d.keyCode) {
				case b.PAGE_UP:
					a._move("previousPage", d);
					break;
				case b.PAGE_DOWN:
					a._move("nextPage", d);
					break;
				case b.UP:
					a._move("previous", d);
					d.preventDefault();
					break;
				case b.DOWN:
					a._move("next", d);
					d.preventDefault();
					break;
				case b.ENTER:
				case b.NUMPAD_ENTER:
					a.menu.active && d.preventDefault();
				case b.TAB:
					if (!a.menu.active) return;
					a.menu.select(d);
					break;
				case b.ESCAPE:
					a.element.val(a.term);
					a.close(d);
					break;
				case b.LEFT:
				case b.RIGHT:
				case b.SHIFT:
				case b.CONTROL:
				case b.ALT:
				case b.COMMAND:
				case b.COMMAND_RIGHT:
				case b.INSERT:
				case b.CAPS_LOCK:
				case b.END:
				case b.HOME:
					break;
				default:
					clearTimeout(a.searching);
					a.searching = setTimeout(function() {
						a.search(null, d)
					},
					a.options.delay);
					break
				}
			}).bind("focus.autocomplete", function() {
				a.selectedItem = null;
				a.previous = a.element.val()
			}).bind("blur.autocomplete", function(d) {
				clearTimeout(a.searching);
				a.closing = setTimeout(function() {
					a.close(d);
					a._change(d)
				},
				150)
			});
			this._initSource();
			this.response = function() {
				return a._response.apply(a, arguments)
			};
			this.menu = e("<ul></ul>").addClass("ui-autocomplete").appendTo("body", c).mousedown(function() {
				setTimeout(function() {
					clearTimeout(a.closing)
				},
				13)
			}).menu({
				focus: function(d, b) {
					b = b.item.data("item.autocomplete");
					false !== a._trigger("focus", null, {
						item: b
					}) && /^key/.test(d.originalEvent.type) && a.element.val(b.value)
				},
				selected: function(d, b) {
					b = b.item.data("item.autocomplete");
					false !== a._trigger("select", d, {
						item: b
					}) && a.element.val(b.value);
					a.close(d);
					d = a.previous;
					if (a.element[0] !== c.activeElement) {
						a.element.focus();
						a.previous = d
					}
					a.selectedItem = b
				},
				blur: function() {
					a.menu.element.is(":visible") && a.element.val(a.term)
				}
			}).zIndex(this.element.zIndex() + 1).css({
				top: 0,
				left: 0
			}).hide().data("menu");
			e.fn.bgiframe && this.menu.element.bgiframe()
		},
		destroy: function() {
			this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");
			this.menu.element.remove();
			e.Widget.prototype.destroy.call(this)
		},
		_setOption: function(a) {
			e.Widget.prototype._setOption.apply(this, arguments);
			a === "source" && this._initSource()
		},
		_initSource: function() {
			var a, c;
			if (e.isArray(this.options.source)) {
				a = this.options.source;
				this.source = function(d, b) {
					b(e.ui.autocomplete.filter(a, d.term))
				}
			} else if (typeof this.options.source === "string") {
				c = this.options.source;
				this.source = function(d, b) {
					e.getJSON(c, d, b)
				}
			} else this.source = this.options.source
		},
		search: function(a, c) {
			a = a != null ? a : this.element.val();
			if (a.length < this.options.minLength) return this.close(c);
			clearTimeout(this.closing);
			if (this._trigger("search") !== false) return this._search(a)
		},
		_search: function(a) {
			this.term = this.element.addClass("ui-autocomplete-loading").val();
			this.source({
				term: a
			},
			this.response)
		},
		_response: function(a) {
			if (a.length) {
				a = this._normalize(a);
				this._suggest(a);
				this._trigger("open")
			} else this.close();
			this.element.removeClass("ui-autocomplete-loading")
		},
		close: function(a) {
			clearTimeout(this.closing);
			if (this.menu.element.is(":visible")) {
				this._trigger("close", a);
				this.menu.element.hide();
				this.menu.deactivate()
			}
		},
		_change: function(a) {
			this.previous !== this.element.val() && this._trigger("change", a, {
				item: this.selectedItem
			})
		},
		_normalize: function(a) {
			if (a.length && a[0].label && a[0].value) return a;
			return e.map(a, function(c) {
				if (typeof c === "string") return {
					label: c,
					value: c
				};
				return e.extend({
					label: c.label || c.value,
					value: c.value || c.label
				},
				c)
			})
		},
		_suggest: function(a) {
			var c = this.menu.element.empty().zIndex(this.element.zIndex() + 1),
				d;
			this._renderMenu(c, a);
			this.menu.deactivate();
			this.menu.refresh();
			this.menu.element.show().position({
				my: "left top",
				at: "left bottom",
				of: this.element,
				collision: "none"
			});
			a = c.width("").width();
			d = this.element.width();
			c.width(Math.max(a, d))
		},
		_renderMenu: function(a, c) {
			var d = this;
			e.each(c, function(b, f) {
				d._renderItem(a, f)
			})
		},
		_renderItem: function(a, c) {
			return e("<li></li>").data("item.autocomplete", c).append("<a>" + c.label + "</a>").appendTo(a)
		},
		_move: function(a, c) {
			if (this.menu.element.is(":visible")) if (this.menu.first() && /^previous/.test(a) || this.menu.last() && /^next/.test(a)) {
				this.element.val(this.term);
				this.menu.deactivate()
			} else this.menu[a](c);
			else this.search(null, c)
		},
		widget: function() {
			return this.menu.element
		}
	});
	e.extend(e.ui.autocomplete, {
		escapeRegex: function(a) {
			return a.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1")
		},
		filter: function(a, c) {
			var d = new RegExp(e.ui.autocomplete.escapeRegex(c), "i");
			return e.grep(a, function(b) {
				return d.test(b.label || b.value || b)
			})
		}
	})
})(jQuery);
(function(e) {
	e.widget("ui.menu", {
		_create: function() {
			var a = this;
			this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({
				role: "listbox",
				"aria-activedescendant": "ui-active-menuitem"
			}).click(function(c) {
				if (e(c.target).closest(".ui-menu-item a").length) {
					c.preventDefault();
					a.select(c)
				}
			});
			this.refresh()
		},
		refresh: function() {
			var a = this;
			this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role", "menuitem").children("a").addClass("ui-corner-all").attr("tabindex", -1).mouseenter(function(c) {
				a.activate(c, e(this).parent())
			}).mouseleave(function() {
				a.deactivate()
			})
		},
		activate: function(a, c) {
			this.deactivate();
			if (this.hasScroll()) {
				var d = c.offset().top - this.element.offset().top,
					b = this.element.attr("scrollTop"),
					f = this.element.height();
				if (d < 0) this.element.attr("scrollTop", b + d);
				else d > f && this.element.attr("scrollTop", b + d - f + c.height())
			}
			this.active = c.eq(0).children("a").addClass("ui-state-hover").attr("id", "ui-active-menuitem").end();
			this._trigger("focus", a, {
				item: c
			})
		},
		deactivate: function() {
			if (this.active) {
				this.active.children("a").removeClass("ui-state-hover").removeAttr("id");
				this._trigger("blur");
				this.active = null
			}
		},
		next: function(a) {
			this.move("next", ".ui-menu-item:first", a)
		},
		previous: function(a) {
			this.move("prev", ".ui-menu-item:last", a)
		},
		first: function() {
			return this.active && !this.active.prev().length
		},
		last: function() {
			return this.active && !this.active.next().length
		},
		move: function(a, c, d) {
			if (this.active) {
				a = this.active[a + "All"](".ui-menu-item").eq(0);
				a.length ? this.activate(d, a) : this.activate(d, this.element.children(c))
			} else this.activate(d, this.element.children(c))
		},
		nextPage: function(a) {
			if (this.hasScroll()) if (!this.active || this.last()) this.activate(a, this.element.children(":first"));
			else {
				var c = this.active.offset().top,
					d = this.element.height(),
					b = this.element.children("li").filter(function() {
					var f = e(this).offset().top - c - d + e(this).height();
					return f < 10 && f > -10
				});
				b.length || (b = this.element.children(":last"));
				this.activate(a, b)
			} else this.activate(a, this.element.children(!this.active || this.last() ? ":first" : ":last"))
		},
		previousPage: function(a) {
			if (this.hasScroll()) if (!this.active || this.first()) this.activate(a, this.element.children(":last"));
			else {
				var c = this.active.offset().top,
					d = this.element.height();
				result = this.element.children("li").filter(function() {
					var b = e(this).offset().top - c + d - e(this).height();
					return b < 10 && b > -10
				});
				result.length || (result = this.element.children(":first"));
				this.activate(a, result)
			} else this.activate(a, this.element.children(!this.active || this.first() ? ":last" : ":first"))
		},
		hasScroll: function() {
			return this.element.height() < this.element.attr("scrollHeight")
		},
		select: function(a) {
			this._trigger("selected", a, {
				item: this.active
			})
		}
	})
})(jQuery);;
/*
 * jQuery UI Button 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Button
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.widget.js
 */
(function(a) {
	var g, i = function(b) {
		a(":ui-button", b.target.form).each(function() {
			var c = a(this).data("button");
			setTimeout(function() {
				c.refresh()
			},
			1)
		})
	},
		h = function(b) {
		var c = b.name,
			d = b.form,
			e = a([]);
		if (c) e = d ? a(d).find("[name='" + c + "']") : a("[name='" + c + "']", b.ownerDocument).filter(function() {
			return !this.form
		});
		return e
	};
	a.widget("ui.button", {
		options: {
			text: true,
			label: null,
			icons: {
				primary: null,
				secondary: null
			}
		},
		_create: function() {
			this.element.closest("form").unbind("reset.button").bind("reset.button", i);
			this._determineButtonType();
			this.hasTitle = !!this.buttonElement.attr("title");
			var b = this,
				c = this.options,
				d = this.type === "checkbox" || this.type === "radio",
				e = "ui-state-hover" + (!d ? " ui-state-active" : "");
			if (c.label === null) c.label = this.buttonElement.html();
			if (this.element.is(":disabled")) c.disabled = true;
			this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role", "button").bind("mouseenter.button", function() {
				if (!c.disabled) {
					a(this).addClass("ui-state-hover");
					this === g && a(this).addClass("ui-state-active")
				}
			}).bind("mouseleave.button", function() {
				c.disabled || a(this).removeClass(e)
			}).bind("focus.button", function() {
				a(this).addClass("ui-state-focus")
			}).bind("blur.button", function() {
				a(this).removeClass("ui-state-focus")
			});
			d && this.element.bind("change.button", function() {
				b.refresh()
			});
			if (this.type === "checkbox") this.buttonElement.bind("click.button", function() {
				if (c.disabled) return false;
				a(this).toggleClass("ui-state-active");
				b.buttonElement.attr("aria-pressed", b.element[0].checked)
			});
			else if (this.type === "radio") this.buttonElement.bind("click.button", function() {
				if (c.disabled) return false;
				a(this).addClass("ui-state-active");
				b.buttonElement.attr("aria-pressed", true);
				var f = b.element[0];
				h(f).not(f).map(function() {
					return a(this).button("widget")[0]
				}).removeClass("ui-state-active").attr("aria-pressed", false)
			});
			else {
				this.buttonElement.bind("mousedown.button", function() {
					if (c.disabled) return false;
					a(this).addClass("ui-state-active");
					g = this;
					a(document).one("mouseup", function() {
						g = null
					})
				}).bind("mouseup.button", function() {
					if (c.disabled) return false;
					a(this).removeClass("ui-state-active")
				}).bind("keydown.button", function(f) {
					if (c.disabled) return false;
					if (f.keyCode == a.ui.keyCode.SPACE || f.keyCode == a.ui.keyCode.ENTER) a(this).addClass("ui-state-active")
				}).bind("keyup.button", function() {
					a(this).removeClass("ui-state-active")
				});
				this.buttonElement.is("a") && this.buttonElement.keyup(function(f) {
					f.keyCode === a.ui.keyCode.SPACE && a(this).click()
				})
			}
			this._setOption("disabled", c.disabled)
		},
		_determineButtonType: function() {
			this.type = this.element.is(":checkbox") ? "checkbox" : this.element.is(":radio") ? "radio" : this.element.is("input") ? "input" : "button";
			if (this.type === "checkbox" || this.type === "radio") {
				this.buttonElement = this.element.parents().last().find("[for=" + this.element.attr("id") + "]");
				this.element.addClass("ui-helper-hidden-accessible");
				var b = this.element.is(":checked");
				b && this.buttonElement.addClass("ui-state-active");
				this.buttonElement.attr("aria-pressed", b)
			} else this.buttonElement = this.element
		},
		widget: function() {
			return this.buttonElement
		},
		destroy: function() {
			this.element.removeClass("ui-helper-hidden-accessible");
			this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active  ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());
			this.hasTitle || this.buttonElement.removeAttr("title");
			a.Widget.prototype.destroy.call(this)
		},
		_setOption: function(b, c) {
			a.Widget.prototype._setOption.apply(this, arguments);
			if (b === "disabled") c ? this.element.attr("disabled", true) : this.element.removeAttr("disabled");
			this._resetButton()
		},
		refresh: function() {
			var b = this.element.is(":disabled");
			b !== this.options.disabled && this._setOption("disabled", b);
			if (this.type === "radio") h(this.element[0]).each(function() {
				a(this).is(":checked") ? a(this).button("widget").addClass("ui-state-active").attr("aria-pressed", true) : a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed", false)
			});
			else if (this.type === "checkbox") this.element.is(":checked") ? this.buttonElement.addClass("ui-state-active").attr("aria-pressed", true) : this.buttonElement.removeClass("ui-state-active").attr("aria-pressed", false)
		},
		_resetButton: function() {
			if (this.type === "input") this.options.label && this.element.val(this.options.label);
			else {
				var b = this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon ui-button-text-only"),
					c = a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),
					d = this.options.icons,
					e = d.primary && d.secondary;
				if (d.primary || d.secondary) {
					b.addClass("ui-button-text-icon" + (e ? "s" : ""));
					d.primary && b.prepend("<span class='ui-button-icon-primary ui-icon " + d.primary + "'></span>");
					d.secondary && b.append("<span class='ui-button-icon-secondary ui-icon " + d.secondary + "'></span>");
					if (!this.options.text) {
						b.addClass(e ? "ui-button-icons-only" : "ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon");
						this.hasTitle || b.attr("title", c)
					}
				} else b.addClass("ui-button-text-only")
			}
		}
	});
	a.widget("ui.buttonset", {
		_create: function() {
			this.element.addClass("ui-buttonset");
			this._init()
		},
		_init: function() {
			this.refresh()
		},
		_setOption: function(b, c) {
			b === "disabled" && this.buttons.button("option", b, c);
			a.Widget.prototype._setOption.apply(this, arguments)
		},
		refresh: function() {
			this.buttons = this.element.find(":button, :submit, :reset, :checkbox, :radio, a, :data(button)").filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function() {
				return a(this).button("widget")[0]
			}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()
		},
		destroy: function() {
			this.element.removeClass("ui-buttonset");
			this.buttons.map(function() {
				return a(this).button("widget")[0]
			}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");
			a.Widget.prototype.destroy.call(this)
		}
	})
})(jQuery);;
/*
 * jQuery UI Dialog 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Dialog
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.widget.js
 *  jquery.ui.button.js
 *	jquery.ui.draggable.js
 *	jquery.ui.mouse.js
 *	jquery.ui.position.js
 *	jquery.ui.resizable.js
 */
(function(c) {
	c.widget("ui.dialog", {
		options: {
			autoOpen: true,
			buttons: {},
			closeOnEscape: true,
			closeText: "close",
			dialogClass: "",
			draggable: true,
			hide: null,
			height: "auto",
			maxHeight: false,
			maxWidth: false,
			minHeight: 150,
			minWidth: 150,
			modal: false,
			position: "center",
			resizable: true,
			show: null,
			stack: true,
			title: "",
			width: 300,
			zIndex: 1E3
		},
		_create: function() {
			this.originalTitle = this.element.attr("title");
			var a = this,
				b = a.options,
				d = b.title || a.originalTitle || "&#160;",
				e = c.ui.dialog.getTitleId(a.element),
				g = (a.uiDialog = c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all " + b.dialogClass).css({
				zIndex: b.zIndex
			}).attr("tabIndex", -1).css("outline", 0).keydown(function(i) {
				if (b.closeOnEscape && i.keyCode && i.keyCode === c.ui.keyCode.ESCAPE) {
					a.close(i);
					i.preventDefault()
				}
			}).attr({
				role: "dialog",
				"aria-labelledby": e
			}).mousedown(function(i) {
				a.moveToTop(false, i)
			});
			a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);
			var f = (a.uiDialogTitlebar = c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),
				h = c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", "button").hover(function() {
				h.addClass("ui-state-hover")
			},
			function() {
				h.removeClass("ui-state-hover")
			}).focus(function() {
				h.addClass("ui-state-focus")
			}).blur(function() {
				h.removeClass("ui-state-focus")
			}).click(function(i) {
				a.close(i);
				return false
			}).appendTo(f);
			(a.uiDialogTitlebarCloseText = c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);
			c("<span></span>").addClass("ui-dialog-title").attr("id", e).html(d).prependTo(f);
			if (c.isFunction(b.beforeclose) && !c.isFunction(b.beforeClose)) b.beforeClose = b.beforeclose;
			f.find("*").add(f).disableSelection();
			b.draggable && c.fn.draggable && a._makeDraggable();
			b.resizable && c.fn.resizable && a._makeResizable();
			a._createButtons(b.buttons);
			a._isOpen = false;
			c.fn.bgiframe && g.bgiframe()
		},
		_init: function() {
			this.options.autoOpen && this.open()
		},
		destroy: function() {
			var a = this;
			a.overlay && a.overlay.destroy();
			a.uiDialog.hide();
			a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");
			a.uiDialog.remove();
			a.originalTitle && a.element.attr("title", a.originalTitle);
			return a
		},
		widget: function() {
			return this.uiDialog
		},
		close: function(a) {
			var b = this,
				d;
			if (false !== b._trigger("beforeClose", a)) {
				b.overlay && b.overlay.destroy();
				b.uiDialog.unbind("keypress.ui-dialog");
				b._isOpen = false;
				if (b.options.hide) b.uiDialog.hide(b.options.hide, function() {
					b._trigger("close", a)
				});
				else {
					b.uiDialog.hide();
					b._trigger("close", a)
				}
				c.ui.dialog.overlay.resize();
				if (b.options.modal) {
					d = 0;
					c(".ui-dialog").each(function() {
						if (this !== b.uiDialog[0]) d = Math.max(d, c(this).css("z-index"))
					});
					c.ui.dialog.maxZ = d
				}
				return b
			}
		},
		isOpen: function() {
			return this._isOpen
		},
		moveToTop: function(a, b) {
			var d = this,
				e = d.options;
			if (e.modal && !a || !e.stack && !e.modal) return d._trigger("focus", b);
			if (e.zIndex > c.ui.dialog.maxZ) c.ui.dialog.maxZ = e.zIndex;
			if (d.overlay) {
				c.ui.dialog.maxZ += 1;
				d.overlay.$el.css("z-index", c.ui.dialog.overlay.maxZ = c.ui.dialog.maxZ)
			}
			a = {
				scrollTop: d.element.attr("scrollTop"),
				scrollLeft: d.element.attr("scrollLeft")
			};
			c.ui.dialog.maxZ += 1;
			d.uiDialog.css("z-index", c.ui.dialog.maxZ);
			d.element.attr(a);
			d._trigger("focus", b);
			return d
		},
		open: function() {
			if (!this._isOpen) {
				var a = this,
					b = a.options,
					d = a.uiDialog;
				a.overlay = b.modal ? new c.ui.dialog.overlay(a) : null;
				d.next().length && d.appendTo("body");
				a._size();
				a._position(b.position);
				d.show(b.show);
				a.moveToTop(true);
				b.modal && d.bind("keypress.ui-dialog", function(e) {
					if (e.keyCode === c.ui.keyCode.TAB) {
						var g = c(":tabbable", this),
							f = g.filter(":first");
						g = g.filter(":last");
						if (e.target === g[0] && !e.shiftKey) {
							f.focus(1);
							return false
						} else if (e.target === f[0] && e.shiftKey) {
							g.focus(1);
							return false
						}
					}
				});
				c([]).add(d.find(".ui-dialog-content :tabbable:first")).add(d.find(".ui-dialog-buttonpane :tabbable:first")).add(d).filter(":first").focus();
				a._trigger("open");
				a._isOpen = true;
				return a
			}
		},
		_createButtons: function(a) {
			var b = this,
				d = false,
				e = c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");
			b.uiDialog.find(".ui-dialog-buttonpane").remove();
			typeof a === "object" && a !== null && c.each(a, function() {
				return ! (d = true)
			});
			if (d) {
				c.each(a, function(g, f) {
					g = c('<button type="button"></button>').text(g).click(function() {
						f.apply(b.element[0], arguments)
					}).appendTo(e);
					c.fn.button && g.button()
				});
				e.appendTo(b.uiDialog)
			}
		},
		_makeDraggable: function() {
			function a(f) {
				return {
					position: f.position,
					offset: f.offset
				}
			}
			var b = this,
				d = b.options,
				e = c(document),
				g;
			b.uiDialog.draggable({
				cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
				handle: ".ui-dialog-titlebar",
				containment: "document",
				start: function(f, h) {
					g = d.height === "auto" ? "auto" : c(this).height();
					c(this).height(c(this).height()).addClass("ui-dialog-dragging");
					b._trigger("dragStart", f, a(h))
				},
				drag: function(f, h) {
					b._trigger("drag", f, a(h))
				},
				stop: function(f, h) {
					d.position = [h.position.left - e.scrollLeft(), h.position.top - e.scrollTop()];
					c(this).removeClass("ui-dialog-dragging").height(g);
					b._trigger("dragStop", f, a(h));
					c.ui.dialog.overlay.resize()
				}
			})
		},
		_makeResizable: function(a) {
			function b(f) {
				return {
					originalPosition: f.originalPosition,
					originalSize: f.originalSize,
					position: f.position,
					size: f.size
				}
			}
			a = a === undefined ? this.options.resizable : a;
			var d = this,
				e = d.options,
				g = d.uiDialog.css("position");
			a = typeof a === "string" ? a : "n,e,s,w,se,sw,ne,nw";
			d.uiDialog.resizable({
				cancel: ".ui-dialog-content",
				containment: "document",
				alsoResize: d.element,
				maxWidth: e.maxWidth,
				maxHeight: e.maxHeight,
				minWidth: e.minWidth,
				minHeight: d._minHeight(),
				handles: a,
				start: function(f, h) {
					c(this).addClass("ui-dialog-resizing");
					d._trigger("resizeStart", f, b(h))
				},
				resize: function(f, h) {
					d._trigger("resize", f, b(h))
				},
				stop: function(f, h) {
					c(this).removeClass("ui-dialog-resizing");
					e.height = c(this).height();
					e.width = c(this).width();
					d._trigger("resizeStop", f, b(h));
					c.ui.dialog.overlay.resize()
				}
			}).css("position", g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")
		},
		_minHeight: function() {
			var a = this.options;
			return a.height === "auto" ? a.minHeight : Math.min(a.minHeight, a.height)
		},
		_position: function(a) {
			var b = [],
				d = [0, 0];
			a = a || c.ui.dialog.prototype.options.position;
			if (typeof a === "string" || typeof a === "object" && "0" in a) {
				b = a.split ? a.split(" ") : [a[0], a[1]];
				if (b.length === 1) b[1] = b[0];
				c.each(["left", "top"], function(e, g) {
					if (+b[e] === b[e]) {
						d[e] = b[e];
						b[e] = g
					}
				})
			} else if (typeof a === "object") {
				if ("left" in a) {
					b[0] = "left";
					d[0] = a.left
				} else if ("right" in a) {
					b[0] = "right";
					d[0] = -a.right
				}
				if ("top" in a) {
					b[1] = "top";
					d[1] = a.top
				} else if ("bottom" in a) {
					b[1] = "bottom";
					d[1] = -a.bottom
				}
			} (a = this.uiDialog.is(":visible")) || this.uiDialog.show();
			this.uiDialog.css({
				top: 0,
				left: 0
			}).position({
				my: b.join(" "),
				at: b.join(" "),
				offset: d.join(" "),
				of: window,
				collision: "fit",
				using: function(e) {
					var g = c(this).css(e).offset().top;
					g < 0 && c(this).css("top", e.top - g)
				}
			});
			a || this.uiDialog.hide()
		},
		_setOption: function(a, b) {
			var d = this,
				e = d.uiDialog,
				g = e.is(":data(resizable)"),
				f = false;
			switch (a) {
			case "beforeclose":
				a = "beforeClose";
				break;
			case "buttons":
				d._createButtons(b);
				break;
			case "closeText":
				d.uiDialogTitlebarCloseText.text("" + b);
				break;
			case "dialogClass":
				e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all " + b);
				break;
			case "disabled":
				b ? e.addClass("ui-dialog-disabled") : e.removeClass("ui-dialog-disabled");
				break;
			case "draggable":
				b ? d._makeDraggable() : e.draggable("destroy");
				break;
			case "height":
				f = true;
				break;
			case "maxHeight":
				g && e.resizable("option", "maxHeight", b);
				f = true;
				break;
			case "maxWidth":
				g && e.resizable("option", "maxWidth", b);
				f = true;
				break;
			case "minHeight":
				g && e.resizable("option", "minHeight", b);
				f = true;
				break;
			case "minWidth":
				g && e.resizable("option", "minWidth", b);
				f = true;
				break;
			case "position":
				d._position(b);
				break;
			case "resizable":
				g && !b && e.resizable("destroy");
				g && typeof b === "string" && e.resizable("option", "handles", b); ! g && b !== false && d._makeResizable(b);
				break;
			case "title":
				c(".ui-dialog-title", d.uiDialogTitlebar).html("" + (b || "&#160;"));
				break;
			case "width":
				f = true;
				break
			}
			c.Widget.prototype._setOption.apply(d, arguments);
			f && d._size()
		},
		_size: function() {
			var a = this.options,
				b;
			this.element.css({
				width: "auto",
				minHeight: 0,
				height: 0
			});
			b = this.uiDialog.css({
				height: "auto",
				width: a.width
			}).height();
			this.element.css(a.height === "auto" ? {
				minHeight: Math.max(a.minHeight - b, 0),
				height: "auto"
			} : {
				minHeight: 0,
				height: Math.max(a.height - b, 0)
			}).show();
			this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", "minHeight", this._minHeight())
		}
	});
	c.extend(c.ui.dialog, {
		version: "1.8.2",
		uuid: 0,
		maxZ: 0,
		getTitleId: function(a) {
			a = a.attr("id");
			if (!a) {
				this.uuid += 1;
				a = this.uuid
			}
			return "ui-dialog-title-" + a
		},
		overlay: function(a) {
			this.$el = c.ui.dialog.overlay.create(a)
		}
	});
	c.extend(c.ui.dialog.overlay, {
		instances: [],
		oldInstances: [],
		maxZ: 0,
		events: c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","), function(a) {
			return a + ".dialog-overlay"
		}).join(" "),
		create: function(a) {
			if (this.instances.length === 0) {
				setTimeout(function() {
					c.ui.dialog.overlay.instances.length && c(document).bind(c.ui.dialog.overlay.events, function(d) {
						return c(d.target).zIndex() >= c.ui.dialog.overlay.maxZ
					})
				},
				1);
				c(document).bind("keydown.dialog-overlay", function(d) {
					if (a.options.closeOnEscape && d.keyCode && d.keyCode === c.ui.keyCode.ESCAPE) {
						a.close(d);
						d.preventDefault()
					}
				});
				c(window).bind("resize.dialog-overlay", c.ui.dialog.overlay.resize)
			}
			var b = (this.oldInstances.pop() || c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({
				width: this.width(),
				height: this.height()
			});
			c.fn.bgiframe && b.bgiframe();
			this.instances.push(b);
			return b
		},
		destroy: function(a) {
			this.oldInstances.push(this.instances.splice(c.inArray(a, this.instances), 1)[0]);
			this.instances.length === 0 && c([document, window]).unbind(".dialog-overlay");
			a.remove();
			var b = 0;
			c.each(this.instances, function() {
				b = Math.max(b, this.css("z-index"))
			});
			this.maxZ = b
		},
		height: function() {
			var a, b;
			if (c.browser.msie && c.browser.version < 7) {
				a = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);
				b = Math.max(document.documentElement.offsetHeight, document.body.offsetHeight);
				return a < b ? c(window).height() + "px" : a + "px"
			} else return c(document).height() + "px"
		},
		width: function() {
			var a, b;
			if (c.browser.msie && c.browser.version < 7) {
				a = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);
				b = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);
				return a < b ? c(window).width() + "px" : a + "px"
			} else return c(document).width() + "px"
		},
		resize: function() {
			var a = c([]);
			c.each(c.ui.dialog.overlay.instances, function() {
				a = a.add(this)
			});
			a.css({
				width: 0,
				height: 0
			}).css({
				width: c.ui.dialog.overlay.width(),
				height: c.ui.dialog.overlay.height()
			})
		}
	});
	c.extend(c.ui.dialog.overlay.prototype, {
		destroy: function() {
			c.ui.dialog.overlay.destroy(this.$el)
		}
	})
})(jQuery);;
/*
 * jQuery UI Slider 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Slider
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.mouse.js
 *	jquery.ui.widget.js
 */
(function(d) {
	d.widget("ui.slider", d.ui.mouse, {
		widgetEventPrefix: "slide",
		options: {
			animate: false,
			distance: 0,
			max: 100,
			min: 0,
			orientation: "horizontal",
			range: false,
			step: 1,
			value: 0,
			values: null
		},
		_create: function() {
			var a = this,
				b = this.options;
			this._mouseSliding = this._keySliding = false;
			this._animateOff = true;
			this._handleIndex = null;
			this._detectOrientation();
			this._mouseInit();
			this.element.addClass("ui-slider ui-slider-" + this.orientation + " ui-widget ui-widget-content ui-corner-all");
			b.disabled && this.element.addClass("ui-slider-disabled ui-disabled");
			this.range = d([]);
			if (b.range) {
				if (b.range === true) {
					this.range = d("<div></div>");
					if (!b.values) b.values = [this._valueMin(), this._valueMin()];
					if (b.values.length && b.values.length !== 2) b.values = [b.values[0], b.values[0]]
				} else this.range = d("<div></div>");
				this.range.appendTo(this.element).addClass("ui-slider-range");
				if (b.range === "min" || b.range === "max") this.range.addClass("ui-slider-range-" + b.range);
				this.range.addClass("ui-widget-header")
			}
			d(".ui-slider-handle", this.element).length === 0 && d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");
			if (b.values && b.values.length) for (; d(".ui-slider-handle", this.element).length < b.values.length;) d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");
			this.handles = d(".ui-slider-handle", this.element).addClass("ui-state-default ui-corner-all");
			this.handle = this.handles.eq(0);
			this.handles.add(this.range).filter("a").click(function(c) {
				c.preventDefault()
			}).hover(function() {
				b.disabled || d(this).addClass("ui-state-hover")
			},
			function() {
				d(this).removeClass("ui-state-hover")
			}).focus(function() {
				if (b.disabled) d(this).blur();
				else {
					d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");
					d(this).addClass("ui-state-focus")
				}
			}).blur(function() {
				d(this).removeClass("ui-state-focus")
			});
			this.handles.each(function(c) {
				d(this).data("index.ui-slider-handle", c)
			});
			this.handles.keydown(function(c) {
				var e = true,
					f = d(this).data("index.ui-slider-handle"),
					g, h, i;
				if (!a.options.disabled) {
					switch (c.keyCode) {
					case d.ui.keyCode.HOME:
					case d.ui.keyCode.END:
					case d.ui.keyCode.PAGE_UP:
					case d.ui.keyCode.PAGE_DOWN:
					case d.ui.keyCode.UP:
					case d.ui.keyCode.RIGHT:
					case d.ui.keyCode.DOWN:
					case d.ui.keyCode.LEFT:
						e = false;
						if (!a._keySliding) {
							a._keySliding = true;
							d(this).addClass("ui-state-active");
							g = a._start(c, f);
							if (g === false) return
						}
						break
					}
					i = a.options.step;
					g = a.options.values && a.options.values.length ? (h = a.values(f)) : (h = a.value());
					switch (c.keyCode) {
					case d.ui.keyCode.HOME:
						h = a._valueMin();
						break;
					case d.ui.keyCode.END:
						h = a._valueMax();
						break;
					case d.ui.keyCode.PAGE_UP:
						h = a._trimAlignValue(g + (a._valueMax() - a._valueMin()) / 5);
						break;
					case d.ui.keyCode.PAGE_DOWN:
						h = a._trimAlignValue(g - (a._valueMax() - a._valueMin()) / 5);
						break;
					case d.ui.keyCode.UP:
					case d.ui.keyCode.RIGHT:
						if (g === a._valueMax()) return;
						h = a._trimAlignValue(g + i);
						break;
					case d.ui.keyCode.DOWN:
					case d.ui.keyCode.LEFT:
						if (g === a._valueMin()) return;
						h = a._trimAlignValue(g - i);
						break
					}
					a._slide(c, f, h);
					return e
				}
			}).keyup(function(c) {
				var e = d(this).data("index.ui-slider-handle");
				if (a._keySliding) {
					a._keySliding = false;
					a._stop(c, e);
					a._change(c, e);
					d(this).removeClass("ui-state-active")
				}
			});
			this._refreshValue();
			this._animateOff = false
		},
		destroy: function() {
			this.handles.remove();
			this.range.remove();
			this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");
			this._mouseDestroy();
			return this
		},
		_mouseCapture: function(a) {
			var b = this.options,
				c, e, f, g, h, i;
			if (b.disabled) return false;
			this.elementSize = {
				width: this.element.outerWidth(),
				height: this.element.outerHeight()
			};
			this.elementOffset = this.element.offset();
			c = {
				x: a.pageX,
				y: a.pageY
			};
			e = this._normValueFromMouse(c);
			f = this._valueMax() - this._valueMin() + 1;
			h = this;
			this.handles.each(function(j) {
				var k = Math.abs(e - h.values(j));
				if (f > k) {
					f = k;
					g = d(this);
					i = j
				}
			});
			if (b.range === true && this.values(1) === b.min) {
				i += 1;
				g = d(this.handles[i])
			}
			if (this._start(a, i) === false) return false;
			this._mouseSliding = true;
			h._handleIndex = i;
			g.addClass("ui-state-active").focus();
			b = g.offset();
			this._clickOffset = !d(a.target).parents().andSelf().is(".ui-slider-handle") ? {
				left: 0,
				top: 0
			} : {
				left: a.pageX - b.left - g.width() / 2,
				top: a.pageY - b.top - g.height() / 2 - (parseInt(g.css("borderTopWidth"), 10) || 0) - (parseInt(g.css("borderBottomWidth"), 10) || 0) + (parseInt(g.css("marginTop"), 10) || 0)
			};
			e = this._normValueFromMouse(c);
			this._slide(a, i, e);
			return this._animateOff = true
		},
		_mouseStart: function() {
			return true
		},
		_mouseDrag: function(a) {
			var b = this._normValueFromMouse({
				x: a.pageX,
				y: a.pageY
			});
			this._slide(a, this._handleIndex, b);
			return false
		},
		_mouseStop: function(a) {
			this.handles.removeClass("ui-state-active");
			this._mouseSliding = false;
			this._stop(a, this._handleIndex);
			this._change(a, this._handleIndex);
			this._clickOffset = this._handleIndex = null;
			return this._animateOff = false
		},
		_detectOrientation: function() {
			this.orientation = this.options.orientation === "vertical" ? "vertical" : "horizontal"
		},
		_normValueFromMouse: function(a) {
			var b;
			if (this.orientation === "horizontal") {
				b = this.elementSize.width;
				a = a.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)
			} else {
				b = this.elementSize.height;
				a = a.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0)
			}
			b = a / b;
			if (b > 1) b = 1;
			if (b < 0) b = 0;
			if (this.orientation === "vertical") b = 1 - b;
			a = this._valueMax() - this._valueMin();
			return this._trimAlignValue(this._valueMin() + b * a)
		},
		_start: function(a, b) {
			var c = {
				handle: this.handles[b],
				value: this.value()
			};
			if (this.options.values && this.options.values.length) {
				c.value = this.values(b);
				c.values = this.values()
			}
			return this._trigger("start", a, c)
		},
		_slide: function(a, b, c) {
			var e;
			if (this.options.values && this.options.values.length) {
				e = this.values(b ? 0 : 1);
				if (this.options.values.length === 2 && this.options.range === true && (b === 0 && c > e || b === 1 && c < e)) c = e;
				if (c !== this.values(b)) {
					e = this.values();
					e[b] = c;
					a = this._trigger("slide", a, {
						handle: this.handles[b],
						value: c,
						values: e
					});
					this.values(b ? 0 : 1);
					a !== false && this.values(b, c, true)
				}
			} else if (c !== this.value()) {
				a = this._trigger("slide", a, {
					handle: this.handles[b],
					value: c
				});
				a !== false && this.value(c)
			}
		},
		_stop: function(a, b) {
			var c = {
				handle: this.handles[b],
				value: this.value()
			};
			if (this.options.values && this.options.values.length) {
				c.value = this.values(b);
				c.values = this.values()
			}
			this._trigger("stop", a, c)
		},
		_change: function(a, b) {
			if (!this._keySliding && !this._mouseSliding) {
				var c = {
					handle: this.handles[b],
					value: this.value()
				};
				if (this.options.values && this.options.values.length) {
					c.value = this.values(b);
					c.values = this.values()
				}
				this._trigger("change", a, c)
			}
		},
		value: function(a) {
			if (arguments.length) {
				this.options.value = this._trimAlignValue(a);
				this._refreshValue();
				this._change(null, 0)
			}
			return this._value()
		},
		values: function(a, b) {
			var c, e, f;
			if (arguments.length > 1) {
				this.options.values[a] = this._trimAlignValue(b);
				this._refreshValue();
				this._change(null, a)
			}
			if (arguments.length) if (d.isArray(arguments[0])) {
				c = this.options.values;
				e = arguments[0];
				for (f = 0; f < c.length; f += 1) {
					c[f] = this._trimAlignValue(e[f]);
					this._change(null, f)
				}
				this._refreshValue()
			} else return this.options.values && this.options.values.length ? this._values(a) : this.value();
			else return this._values()
		},
		_setOption: function(a, b) {
			var c, e = 0;
			if (d.isArray(this.options.values)) e = this.options.values.length;
			d.Widget.prototype._setOption.apply(this, arguments);
			switch (a) {
			case "disabled":
				if (b) {
					this.handles.filter(".ui-state-focus").blur();
					this.handles.removeClass("ui-state-hover");
					this.handles.attr("disabled", "disabled");
					this.element.addClass("ui-disabled")
				} else {
					this.handles.removeAttr("disabled");
					this.element.removeClass("ui-disabled")
				}
				break;
			case "orientation":
				this._detectOrientation();
				this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-" + this.orientation);
				this._refreshValue();
				break;
			case "value":
				this._animateOff = true;
				this._refreshValue();
				this._change(null, 0);
				this._animateOff = false;
				break;
			case "values":
				this._animateOff = true;
				this._refreshValue();
				for (c = 0; c < e; c += 1) this._change(null, c);
				this._animateOff = false;
				break
			}
		},
		_value: function() {
			var a = this.options.value;
			return a = this._trimAlignValue(a)
		},
		_values: function(a) {
			var b, c;
			if (arguments.length) {
				b = this.options.values[a];
				return b = this._trimAlignValue(b)
			} else {
				b = this.options.values.slice();
				for (c = 0; c < b.length; c += 1) b[c] = this._trimAlignValue(b[c]);
				return b
			}
		},
		_trimAlignValue: function(a) {
			if (a < this._valueMin()) return this._valueMin();
			if (a > this._valueMax()) return this._valueMax();
			var b = this.options.step > 0 ? this.options.step : 1,
			c = a % b;
			a = a - c;
			if (Math.abs(c) * 2 >= b) a += c > 0 ? b : -b;
			return parseFloat(a.toFixed(5))
		},
		_valueMin: function() {
			return this.options.min
		},
		_valueMax: function() {
			return this.options.max
		},
		_refreshValue: function() {
			var a = this.options.range,
				b = this.options,
				c = this,
				e = !this._animateOff ? b.animate : false,
			f,
			g = {},
			h,
			i,
			j,
			k;
			if (this.options.values && this.options.values.length) this.handles.each(function(l) {
				f = (c.values(l) - c._valueMin()) / (c._valueMax() - c._valueMin()) * 100;
				g[c.orientation === "horizontal" ? "left" : "bottom"] = f + "%";
				d(this).stop(1, 1)[e ? "animate" : "css"](g, b.animate);
				if (c.options.range === true) if (c.orientation === "horizontal") {
					if (l === 0) c.range.stop(1, 1)[e ? "animate" : "css"]({
						left: f + "%"
					},
					b.animate);
					if (l === 1) c.range[e ? "animate" : "css"]({
						width: f - h + "%"
					},
					{
						queue: false,
						duration: b.animate
					})
				} else {
					if (l === 0) c.range.stop(1, 1)[e ? "animate" : "css"]({
						bottom: f + "%"
					},
					b.animate);
					if (l === 1) c.range[e ? "animate" : "css"]({
						height: f - h + "%"
					},
					{
						queue: false,
						duration: b.animate
					})
				}
				h = f
			});
			else {
				i = this.value();
				j = this._valueMin();
				k = this._valueMax();
				f = k !== j ? (i - j) / (k - j) * 100 : 0;
				g[c.orientation === "horizontal" ? "left" : "bottom"] = f + "%";
				this.handle.stop(1, 1)[e ? "animate" : "css"](g, b.animate);
				if (a === "min" && this.orientation === "horizontal") this.range.stop(1, 1)[e ? "animate" : "css"]({
					width: f + "%"
				},
				b.animate);
				if (a === "max" && this.orientation === "horizontal") this.range[e ? "animate" : "css"]({
					width: 100 - f + "%"
				},
				{
					queue: false,
					duration: b.animate
				});
				if (a === "min" && this.orientation === "vertical") this.range.stop(1, 1)[e ? "animate" : "css"]({
					height: f + "%"
				},
				b.animate);
				if (a === "max" && this.orientation === "vertical") this.range[e ? "animate" : "css"]({
					height: 100 - f + "%"
				},
				{
					queue: false,
					duration: b.animate
				})
			}
		}
	});
	d.extend(d.ui.slider, {
		version: "1.8.2"
	})
})(jQuery);;
/*
 * jQuery UI Tabs 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Tabs
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.widget.js
 */
(function(d) {
	function s() {
		return ++u
	}

	function v() {
		return ++w
	}
	var u = 0,
		w = 0;
	d.widget("ui.tabs", {
		options: {
			add: null,
			ajaxOptions: null,
			cache: false,
			cookie: null,
			collapsible: false,
			disable: null,
			disabled: [],
			enable: null,
			event: "click",
			fx: null,
			idPrefix: "ui-tabs-",
			load: null,
			panelTemplate: "<div></div>",
			remove: null,
			select: null,
			show: null,
			spinner: "<em>Loading&#8230;</em>",
			tabTemplate: '<li><a href="#{href}"><span>#{label}</span></a></li>'
		},
		_create: function() {
			this._tabify(true)
		},
		_setOption: function(c, e) {
			if (c == "selected") this.options.collapsible && e == this.options.selected || this.select(e);
			else {
				this.options[c] = e;
				this._tabify()
			}
		},
		_tabId: function(c) {
			return c.title && c.title.replace(/\s/g, "_").replace(/[^A-Za-z0-9\-_:\.]/g, "") || this.options.idPrefix + s()
		},
		_sanitizeSelector: function(c) {
			return c.replace(/:/g, "\\:")
		},
		_cookie: function() {
			var c = this.cookie || (this.cookie = this.options.cookie.name || "ui-tabs-" + v());
			return d.cookie.apply(null, [c].concat(d.makeArray(arguments)))
		},
		_ui: function(c, e) {
			return {
				tab: c,
				panel: e,
				index: this.anchors.index(c)
			}
		},
		_cleanup: function() {
			this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function() {
				var c = d(this);
				c.html(c.data("label.tabs")).removeData("label.tabs")
			})
		},
		_tabify: function(c) {
			function e(g, f) {
				g.css({
					display: ""
				}); ! d.support.opacity && f.opacity && g[0].style.removeAttribute("filter")
			}
			this.list = this.element.find("ol,ul").eq(0);
			this.lis = d("li:has(a[href])", this.list);
			this.anchors = this.lis.map(function() {
				return d("a", this)[0]
			});
			this.panels = d([]);
			var a = this,
				b = this.options,
				h = /^#.+/;
			this.anchors.each(function(g, f) {
				var j = d(f).attr("href"),
					l = j.split("#")[0],
					p;
				if (l && (l === location.toString().split("#")[0] || (p = d("base")[0]) && l === p.href)) {
					j = f.hash;
					f.href = j
				}
				if (h.test(j)) a.panels = a.panels.add(a._sanitizeSelector(j));
				else if (j != "#") {
					d.data(f, "href.tabs", j);
					d.data(f, "load.tabs", j.replace(/#.*$/, ""));
					j = a._tabId(f);
					f.href = "#" + j;
					f = d("#" + j);
					if (!f.length) {
						f = d(b.panelTemplate).attr("id", j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g - 1] || a.list);
						f.data("destroy.tabs", true)
					}
					a.panels = a.panels.add(f)
				} else b.disabled.push(g)
			});
			if (c) {
				this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");
				this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");
				this.lis.addClass("ui-state-default ui-corner-top");
				this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");
				if (b.selected === undefined) {
					location.hash && this.anchors.each(function(g, f) {
						if (f.hash == location.hash) {
							b.selected = g;
							return false
						}
					});
					if (typeof b.selected != "number" && b.cookie) b.selected = parseInt(a._cookie(), 10);
					if (typeof b.selected != "number" && this.lis.filter(".ui-tabs-selected").length) b.selected = this.lis.index(this.lis.filter(".ui-tabs-selected"));
					b.selected = b.selected || (this.lis.length ? 0 : -1)
				} else if (b.selected === null) b.selected = -1;
				b.selected = b.selected >= 0 && this.anchors[b.selected] || b.selected < 0 ? b.selected : 0;
				b.disabled = d.unique(b.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"), function(g) {
					return a.lis.index(g)
				}))).sort();
				d.inArray(b.selected, b.disabled) != -1 && b.disabled.splice(d.inArray(b.selected, b.disabled), 1);
				this.panels.addClass("ui-tabs-hide");
				this.lis.removeClass("ui-tabs-selected ui-state-active");
				if (b.selected >= 0 && this.anchors.length) {
					this.panels.eq(b.selected).removeClass("ui-tabs-hide");
					this.lis.eq(b.selected).addClass("ui-tabs-selected ui-state-active");
					a.element.queue("tabs", function() {
						a._trigger("show", null, a._ui(a.anchors[b.selected], a.panels[b.selected]))
					});
					this.load(b.selected)
				}
				d(window).bind("unload", function() {
					a.lis.add(a.anchors).unbind(".tabs");
					a.lis = a.anchors = a.panels = null
				})
			} else b.selected = this.lis.index(this.lis.filter(".ui-tabs-selected"));
			this.element[b.collapsible ? "addClass" : "removeClass"]("ui-tabs-collapsible");
			b.cookie && this._cookie(b.selected, b.cookie);
			c = 0;
			for (var i; i = this.lis[c]; c++) d(i)[d.inArray(c, b.disabled) != -1 && !d(i).hasClass("ui-tabs-selected") ? "addClass" : "removeClass"]("ui-state-disabled");
			b.cache === false && this.anchors.removeData("cache.tabs");
			this.lis.add(this.anchors).unbind(".tabs");
			if (b.event != "mouseover") {
				var k = function(g, f) {
					f.is(":not(.ui-state-disabled)") && f.addClass("ui-state-" + g)
				},
					n = function(g, f) {
					f.removeClass("ui-state-" + g)
				};
				this.lis.bind("mouseover.tabs", function() {
					k("hover", d(this))
				});
				this.lis.bind("mouseout.tabs", function() {
					n("hover", d(this))
				});
				this.anchors.bind("focus.tabs", function() {
					k("focus", d(this).closest("li"))
				});
				this.anchors.bind("blur.tabs", function() {
					n("focus", d(this).closest("li"))
				})
			}
			var m, o;
			if (b.fx) if (d.isArray(b.fx)) {
				m = b.fx[0];
				o = b.fx[1]
			} else m = o = b.fx;
			var q = o ?
			function(g, f) {
				d(g).closest("li").addClass("ui-tabs-selected ui-state-active");
				f.hide().removeClass("ui-tabs-hide").animate(o, o.duration || "normal", function() {
					e(f, o);
					a._trigger("show", null, a._ui(g, f[0]))
				})
			} : function(g, f) {
				d(g).closest("li").addClass("ui-tabs-selected ui-state-active");
				f.removeClass("ui-tabs-hide");
				a._trigger("show", null, a._ui(g, f[0]))
			},
			r = m ?
			function(g, f) {
				f.animate(m, m.duration || "normal", function() {
					a.lis.removeClass("ui-tabs-selected ui-state-active");
					f.addClass("ui-tabs-hide");
					e(f, m);
					a.element.dequeue("tabs")
				})
			} : function(g, f) {
				a.lis.removeClass("ui-tabs-selected ui-state-active");
				f.addClass("ui-tabs-hide");
				a.element.dequeue("tabs")
			};
			this.anchors.bind(b.event + ".tabs", function() {
				var g = this,
					f = d(this).closest("li"),
					j = a.panels.filter(":not(.ui-tabs-hide)"),
					l = d(a._sanitizeSelector(this.hash));
				if (f.hasClass("ui-tabs-selected") && !b.collapsible || f.hasClass("ui-state-disabled") || f.hasClass("ui-state-processing") || a._trigger("select", null, a._ui(this, l[0])) === false) {
					this.blur();
					return false
				}
				b.selected = a.anchors.index(this);
				a.abort();
				if (b.collapsible) if (f.hasClass("ui-tabs-selected")) {
					b.selected = -1;
					b.cookie && a._cookie(b.selected, b.cookie);
					a.element.queue("tabs", function() {
						r(g, j)
					}).dequeue("tabs");
					this.blur();
					return false
				} else if (!j.length) {
					b.cookie && a._cookie(b.selected, b.cookie);
					a.element.queue("tabs", function() {
						q(g, l)
					});
					a.load(a.anchors.index(this));
					this.blur();
					return false
				}
				b.cookie && a._cookie(b.selected, b.cookie);
				if (l.length) {
					j.length && a.element.queue("tabs", function() {
						r(g, j)
					});
					a.element.queue("tabs", function() {
						q(g, l)
					});
					a.load(a.anchors.index(this))
				} else throw "jQuery UI Tabs: Mismatching fragment identifier.";
				d.browser.msie && this.blur()
			});
			this.anchors.bind("click.tabs", function() {
				return false
			})
		},
		destroy: function() {
			var c = this.options;
			this.abort();
			this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");
			this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");
			this.anchors.each(function() {
				var e = d.data(this, "href.tabs");
				if (e) this.href = e;
				var a = d(this).unbind(".tabs");
				d.each(["href", "load", "cache"], function(b, h) {
					a.removeData(h + ".tabs")
				})
			});
			this.lis.unbind(".tabs").add(this.panels).each(function() {
				d.data(this, "destroy.tabs") ? d(this).remove() : d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")
			});
			c.cookie && this._cookie(null, c.cookie);
			return this
		},
		add: function(c, e, a) {
			if (a === undefined) a = this.anchors.length;
			var b = this,
				h = this.options;
			e = d(h.tabTemplate.replace(/#\{href\}/g, c).replace(/#\{label\}/g, e));
			c = !c.indexOf("#") ? c.replace("#", "") : this._tabId(d("a", e)[0]);
			e.addClass("ui-state-default ui-corner-top").data("destroy.tabs", true);
			var i = d("#" + c);
			i.length || (i = d(h.panelTemplate).attr("id", c).data("destroy.tabs", true));
			i.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");
			if (a >= this.lis.length) {
				e.appendTo(this.list);
				i.appendTo(this.list[0].parentNode)
			} else {
				e.insertBefore(this.lis[a]);
				i.insertBefore(this.panels[a])
			}
			h.disabled = d.map(h.disabled, function(k) {
				return k >= a ? ++k : k
			});
			this._tabify();
			if (this.anchors.length == 1) {
				h.selected = 0;
				e.addClass("ui-tabs-selected ui-state-active");
				i.removeClass("ui-tabs-hide");
				this.element.queue("tabs", function() {
					b._trigger("show", null, b._ui(b.anchors[0], b.panels[0]))
				});
				this.load(0)
			}
			this._trigger("add", null, this._ui(this.anchors[a], this.panels[a]));
			return this
		},
		remove: function(c) {
			var e = this.options,
				a = this.lis.eq(c).remove(),
				b = this.panels.eq(c).remove();
			if (a.hasClass("ui-tabs-selected") && this.anchors.length > 1) this.select(c + (c + 1 < this.anchors.length ? 1 : -1));
			e.disabled = d.map(d.grep(e.disabled, function(h) {
				return h != c
			}), function(h) {
				return h >= c ? --h : h
			});
			this._tabify();
			this._trigger("remove", null, this._ui(a.find("a")[0], b[0]));
			return this
		},
		enable: function(c) {
			var e = this.options;
			if (d.inArray(c, e.disabled) != -1) {
				this.lis.eq(c).removeClass("ui-state-disabled");
				e.disabled = d.grep(e.disabled, function(a) {
					return a != c
				});
				this._trigger("enable", null, this._ui(this.anchors[c], this.panels[c]));
				return this
			}
		},
		disable: function(c) {
			var e = this.options;
			if (c != e.selected) {
				this.lis.eq(c).addClass("ui-state-disabled");
				e.disabled.push(c);
				e.disabled.sort();
				this._trigger("disable", null, this._ui(this.anchors[c], this.panels[c]))
			}
			return this
		},
		select: function(c) {
			if (typeof c == "string") c = this.anchors.index(this.anchors.filter("[href$=" + c + "]"));
			else if (c === null) c = -1;
			if (c == -1 && this.options.collapsible) c = this.options.selected;
			this.anchors.eq(c).trigger(this.options.event + ".tabs");
			return this
		},
		load: function(c) {
			var e = this,
				a = this.options,
				b = this.anchors.eq(c)[0],
				h = d.data(b, "load.tabs");
			this.abort();
			if (!h || this.element.queue("tabs").length !== 0 && d.data(b, "cache.tabs")) this.element.dequeue("tabs");
			else {
				this.lis.eq(c).addClass("ui-state-processing");
				if (a.spinner) {
					var i = d("span", b);
					i.data("label.tabs", i.html()).html(a.spinner)
				}
				this.xhr = d.ajax(d.extend({},
				a.ajaxOptions, {
					url: h,
					success: function(k, n) {
						d(e._sanitizeSelector(b.hash)).html(k);
						e._cleanup();
						a.cache && d.data(b, "cache.tabs", true);
						e._trigger("load", null, e._ui(e.anchors[c], e.panels[c]));
						try {
							a.ajaxOptions.success(k, n)
						} catch(m) {}
					},
					error: function(k, n) {
						e._cleanup();
						e._trigger("load", null, e._ui(e.anchors[c], e.panels[c]));
						try {
							a.ajaxOptions.error(k, n, c, b)
						} catch(m) {}
					}
				}));
				e.element.dequeue("tabs");
				return this
			}
		},
		abort: function() {
			this.element.queue([]);
			this.panels.stop(false, true);
			this.element.queue("tabs", this.element.queue("tabs").splice(-2, 2));
			if (this.xhr) {
				this.xhr.abort();
				delete this.xhr
			}
			this._cleanup();
			return this
		},
		url: function(c, e) {
			this.anchors.eq(c).removeData("cache.tabs").data("load.tabs", e);
			return this
		},
		length: function() {
			return this.anchors.length
		}
	});
	d.extend(d.ui.tabs, {
		version: "1.8.2"
	});
	d.extend(d.ui.tabs.prototype, {
		rotation: null,
		rotate: function(c, e) {
			var a = this,
				b = this.options,
				h = a._rotate || (a._rotate = function(i) {
				clearTimeout(a.rotation);
				a.rotation = setTimeout(function() {
					var k = b.selected;
					a.select(++k < a.anchors.length ? k : 0)
				},
				c);
				i && i.stopPropagation()
			});
			e = a._unrotate || (a._unrotate = !e ?
			function(i) {
				i.clientX && a.rotate(null)
			} : function() {
				t = b.selected;
				h()
			});
			if (c) {
				this.element.bind("tabsshow", h);
				this.anchors.bind(b.event + ".tabs", e);
				h()
			} else {
				clearTimeout(a.rotation);
				this.element.unbind("tabsshow", h);
				this.anchors.unbind(b.event + ".tabs", e);
				delete this._rotate;
				delete this._unrotate
			}
			return this
		}
	})
})(jQuery);;
/*
 * jQuery UI Datepicker 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Datepicker
 *
 * Depends:
 *	jquery.ui.core.js
 */
(function(d) {
	function J() {
		this.debug = false;
		this._curInst = null;
		this._keyEvent = false;
		this._disabledInputs = [];
		this._inDialog = this._datepickerShowing = false;
		this._mainDivId = "ui-datepicker-div";
		this._inlineClass = "ui-datepicker-inline";
		this._appendClass = "ui-datepicker-append";
		this._triggerClass = "ui-datepicker-trigger";
		this._dialogClass = "ui-datepicker-dialog";
		this._disableClass = "ui-datepicker-disabled";
		this._unselectableClass = "ui-datepicker-unselectable";
		this._currentClass = "ui-datepicker-current-day";
		this._dayOverClass = "ui-datepicker-days-cell-over";
		this.regional = [];
		this.regional[""] = {
			closeText: "Done",
			prevText: "Prev",
			nextText: "Next",
			currentText: "Today",
			monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
			monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
			dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
			dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
			dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
			weekHeader: "Wk",
			dateFormat: "mm/dd/yy",
			firstDay: 0,
			isRTL: false,
			showMonthAfterYear: false,
			yearSuffix: ""
		};
		this._defaults = {
			showOn: "focus",
			showAnim: "fadeIn",
			showOptions: {},
			defaultDate: null,
			appendText: "",
			buttonText: "...",
			buttonImage: "",
			buttonImageOnly: false,
			hideIfNoPrevNext: false,
			navigationAsDateFormat: false,
			gotoCurrent: false,
			changeMonth: false,
			changeYear: false,
			yearRange: "c-10:c+10",
			showOtherMonths: false,
			selectOtherMonths: false,
			showWeek: false,
			calculateWeek: this.iso8601Week,
			shortYearCutoff: "+10",
			minDate: null,
			maxDate: null,
			duration: "fast",
			beforeShowDay: null,
			beforeShow: null,
			onSelect: null,
			onChangeMonthYear: null,
			onClose: null,
			numberOfMonths: 1,
			showCurrentAtPos: 0,
			stepMonths: 1,
			stepBigMonths: 12,
			altField: "",
			altFormat: "",
			constrainInput: true,
			showButtonPanel: false,
			autoSize: false
		};
		d.extend(this._defaults, this.regional[""]);
		this.dpDiv = d('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>')
	}

	function E(a, b) {
		d.extend(a, b);
		for (var c in b) if (b[c] == null || b[c] == undefined) a[c] = b[c];
		return a
	}
	d.extend(d.ui, {
		datepicker: {
			version: "1.8.2"
		}
	});
	var y = (new Date).getTime();
	d.extend(J.prototype, {
		markerClassName: "hasDatepicker",
		log: function() {
			this.debug && console.log.apply("", arguments)
		},
		_widgetDatepicker: function() {
			return this.dpDiv
		},
		setDefaults: function(a) {
			E(this._defaults, a || {});
			return this
		},
		_attachDatepicker: function(a, b) {
			var c = null;
			for (var e in this._defaults) {
				var f = a.getAttribute("date:" + e);
				if (f) {
					c = c || {};
					try {
						c[e] = eval(f)
					} catch(h) {
						c[e] = f
					}
				}
			}
			e = a.nodeName.toLowerCase();
			f = e == "div" || e == "span";
			if (!a.id) {
				this.uuid += 1;
				a.id = "dp" + this.uuid
			}
			var i = this._newInst(d(a), f);
			i.settings = d.extend({},
			b || {},
			c || {});
			if (e == "input") this._connectDatepicker(a, i);
			else f && this._inlineDatepicker(a, i)
		},
		_newInst: function(a, b) {
			return {
				id: a[0].id.replace(/([^A-Za-z0-9_])/g, "\\\\$1"),
				input: a,
				selectedDay: 0,
				selectedMonth: 0,
				selectedYear: 0,
				drawMonth: 0,
				drawYear: 0,
				inline: b,
				dpDiv: !b ? this.dpDiv : d('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')
			}
		},
		_connectDatepicker: function(a, b) {
			var c = d(a);
			b.append = d([]);
			b.trigger = d([]);
			if (!c.hasClass(this.markerClassName)) {
				this._attachments(c, b);
				c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", function(e, f, h) {
					b.settings[f] = h
				}).bind("getData.datepicker", function(e, f) {
					return this._get(b, f)
				});
				this._autoSize(b);
				d.data(a, "datepicker", b)
			}
		},
		_attachments: function(a, b) {
			var c = this._get(b, "appendText"),
				e = this._get(b, "isRTL");
			b.append && b.append.remove();
			if (c) {
				b.append = d('<span class="' + this._appendClass + '">' + c + "</span>");
				a[e ? "before" : "after"](b.append)
			}
			a.unbind("focus", this._showDatepicker);
			b.trigger && b.trigger.remove();
			c = this._get(b, "showOn");
			if (c == "focus" || c == "both") a.focus(this._showDatepicker);
			if (c == "button" || c == "both") {
				c = this._get(b, "buttonText");
				var f = this._get(b, "buttonImage");
				b.trigger = d(this._get(b, "buttonImageOnly") ? d("<img/>").addClass(this._triggerClass).attr({
					src: f,
					alt: c,
					title: c
				}) : d('<button type="button"></button>').addClass(this._triggerClass).html(f == "" ? c : d("<img/>").attr({
					src: f,
					alt: c,
					title: c
				})));
				a[e ? "before" : "after"](b.trigger);
				b.trigger.click(function() {
					d.datepicker._datepickerShowing && d.datepicker._lastInput == a[0] ? d.datepicker._hideDatepicker() : d.datepicker._showDatepicker(a[0]);
					return false
				})
			}
		},
		_autoSize: function(a) {
			if (this._get(a, "autoSize") && !a.inline) {
				var b = new Date(2009, 11, 20),
					c = this._get(a, "dateFormat");
				if (c.match(/[DM]/)) {
					var e = function(f) {
						for (var h = 0, i = 0, g = 0; g < f.length; g++) if (f[g].length > h) {
							h = f[g].length;
							i = g
						}
						return i
					};
					b.setMonth(e(this._get(a, c.match(/MM/) ? "monthNames" : "monthNamesShort")));
					b.setDate(e(this._get(a, c.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - b.getDay())
				}
				a.input.attr("size", this._formatDate(a, b).length)
			}
		},
		_inlineDatepicker: function(a, b) {
			var c = d(a);
			if (!c.hasClass(this.markerClassName)) {
				c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker", function(e, f, h) {
					b.settings[f] = h
				}).bind("getData.datepicker", function(e, f) {
					return this._get(b, f)
				});
				d.data(a, "datepicker", b);
				this._setDate(b, this._getDefaultDate(b), true);
				this._updateDatepicker(b);
				this._updateAlternate(b)
			}
		},
		_dialogDatepicker: function(a, b, c, e, f) {
			a = this._dialogInst;
			if (!a) {
				this.uuid += 1;
				this._dialogInput = d('<input type="text" id="' + ("dp" + this.uuid) + '" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');
				this._dialogInput.keydown(this._doKeyDown);
				d("body").append(this._dialogInput);
				a = this._dialogInst = this._newInst(this._dialogInput, false);
				a.settings = {};
				d.data(this._dialogInput[0], "datepicker", a)
			}
			E(a.settings, e || {});
			b = b && b.constructor == Date ? this._formatDate(a, b) : b;
			this._dialogInput.val(b);
			this._pos = f ? f.length ? f : [f.pageX, f.pageY] : null;
			if (!this._pos) this._pos = [document.documentElement.clientWidth / 2 - 100 + (document.documentElement.scrollLeft || document.body.scrollLeft), document.documentElement.clientHeight / 2 - 150 + (document.documentElement.scrollTop || document.body.scrollTop)];
			this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px");
			a.settings.onSelect = c;
			this._inDialog = true;
			this.dpDiv.addClass(this._dialogClass);
			this._showDatepicker(this._dialogInput[0]);
			d.blockUI && d.blockUI(this.dpDiv);
			d.data(this._dialogInput[0], "datepicker", a);
			return this
		},
		_destroyDatepicker: function(a) {
			var b = d(a),
				c = d.data(a, "datepicker");
			if (b.hasClass(this.markerClassName)) {
				var e = a.nodeName.toLowerCase();
				d.removeData(a, "datepicker");
				if (e == "input") {
					c.append.remove();
					c.trigger.remove();
					b.removeClass(this.markerClassName).unbind("focus", this._showDatepicker).unbind("keydown", this._doKeyDown).unbind("keypress", this._doKeyPress).unbind("keyup", this._doKeyUp)
				} else if (e == "div" || e == "span") b.removeClass(this.markerClassName).empty()
			}
		},
		_enableDatepicker: function(a) {
			var b = d(a),
				c = d.data(a, "datepicker");
			if (b.hasClass(this.markerClassName)) {
				var e = a.nodeName.toLowerCase();
				if (e == "input") {
					a.disabled = false;
					c.trigger.filter("button").each(function() {
						this.disabled = false
					}).end().filter("img").css({
						opacity: "1.0",
						cursor: ""
					})
				} else if (e == "div" || e == "span") b.children("." + this._inlineClass).children().removeClass("ui-state-disabled");
				this._disabledInputs = d.map(this._disabledInputs, function(f) {
					return f == a ? null : f
				})
			}
		},
		_disableDatepicker: function(a) {
			var b = d(a),
				c = d.data(a, "datepicker");
			if (b.hasClass(this.markerClassName)) {
				var e = a.nodeName.toLowerCase();
				if (e == "input") {
					a.disabled = true;
					c.trigger.filter("button").each(function() {
						this.disabled = true
					}).end().filter("img").css({
						opacity: "0.5",
						cursor: "default"
					})
				} else if (e == "div" || e == "span") b.children("." + this._inlineClass).children().addClass("ui-state-disabled");
				this._disabledInputs = d.map(this._disabledInputs, function(f) {
					return f == a ? null : f
				});
				this._disabledInputs[this._disabledInputs.length] = a
			}
		},
		_isDisabledDatepicker: function(a) {
			if (!a) return false;
			for (var b = 0; b < this._disabledInputs.length; b++) if (this._disabledInputs[b] == a) return true;
			return false
		},
		_getInst: function(a) {
			try {
				return d.data(a, "datepicker")
			} catch(b) {
				throw "Missing instance data for this datepicker";
			}
		},
		_optionDatepicker: function(a, b, c) {
			var e = this._getInst(a);
			if (arguments.length == 2 && typeof b == "string") return b == "defaults" ? d.extend({},
			d.datepicker._defaults) : e ? b == "all" ? d.extend({},
			e.settings) : this._get(e, b) : null;
			var f = b || {};
			if (typeof b == "string") {
				f = {};
				f[b] = c
			}
			if (e) {
				this._curInst == e && this._hideDatepicker();
				var h = this._getDateDatepicker(a, true);
				E(e.settings, f);
				this._attachments(d(a), e);
				this._autoSize(e);
				this._setDateDatepicker(a, h);
				this._updateDatepicker(e)
			}
		},
		_changeDatepicker: function(a, b, c) {
			this._optionDatepicker(a, b, c)
		},
		_refreshDatepicker: function(a) {
			(a = this._getInst(a)) && this._updateDatepicker(a)
		},
		_setDateDatepicker: function(a, b) {
			if (a = this._getInst(a)) {
				this._setDate(a, b);
				this._updateDatepicker(a);
				this._updateAlternate(a)
			}
		},
		_getDateDatepicker: function(a, b) {
			(a = this._getInst(a)) && !a.inline && this._setDateFromField(a, b);
			return a ? this._getDate(a) : null
		},
		_doKeyDown: function(a) {
			var b = d.datepicker._getInst(a.target),
				c = true,
				e = b.dpDiv.is(".ui-datepicker-rtl");
			b._keyEvent = true;
			if (d.datepicker._datepickerShowing) switch (a.keyCode) {
			case 9:
				d.datepicker._hideDatepicker();
				c = false;
				break;
			case 13:
				c = d("td." + d.datepicker._dayOverClass, b.dpDiv).add(d("td." + d.datepicker._currentClass, b.dpDiv));
				c[0] ? d.datepicker._selectDay(a.target, b.selectedMonth, b.selectedYear, c[0]) : d.datepicker._hideDatepicker();
				return false;
			case 27:
				d.datepicker._hideDatepicker();
				break;
			case 33:
				d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(b, "stepBigMonths") : -d.datepicker._get(b, "stepMonths"), "M");
				break;
			case 34:
				d.datepicker._adjustDate(a.target, a.ctrlKey ? +d.datepicker._get(b, "stepBigMonths") : +d.datepicker._get(b, "stepMonths"), "M");
				break;
			case 35:
				if (a.ctrlKey || a.metaKey) d.datepicker._clearDate(a.target);
				c = a.ctrlKey || a.metaKey;
				break;
			case 36:
				if (a.ctrlKey || a.metaKey) d.datepicker._gotoToday(a.target);
				c = a.ctrlKey || a.metaKey;
				break;
			case 37:
				if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, e ? +1 : -1, "D");
				c = a.ctrlKey || a.metaKey;
				if (a.originalEvent.altKey) d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(b, "stepBigMonths") : -d.datepicker._get(b, "stepMonths"), "M");
				break;
			case 38:
				if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, -7, "D");
				c = a.ctrlKey || a.metaKey;
				break;
			case 39:
				if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, e ? -1 : +1, "D");
				c = a.ctrlKey || a.metaKey;
				if (a.originalEvent.altKey) d.datepicker._adjustDate(a.target, a.ctrlKey ? +d.datepicker._get(b, "stepBigMonths") : +d.datepicker._get(b, "stepMonths"), "M");
				break;
			case 40:
				if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, +7, "D");
				c = a.ctrlKey || a.metaKey;
				break;
			default:
				c = false
			} else if (a.keyCode == 36 && a.ctrlKey) d.datepicker._showDatepicker(this);
			else c = false;
			if (c) {
				a.preventDefault();
				a.stopPropagation()
			}
		},
		_doKeyPress: function(a) {
			var b = d.datepicker._getInst(a.target);
			if (d.datepicker._get(b, "constrainInput")) {
				b = d.datepicker._possibleChars(d.datepicker._get(b, "dateFormat"));
				var c = String.fromCharCode(a.charCode == undefined ? a.keyCode : a.charCode);
				return a.ctrlKey || c < " " || !b || b.indexOf(c) > -1
			}
		},
		_doKeyUp: function(a) {
			a = d.datepicker._getInst(a.target);
			if (a.input.val() != a.lastVal) try {
				if (d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), a.input ? a.input.val() : null, d.datepicker._getFormatConfig(a))) {
					d.datepicker._setDateFromField(a);
					d.datepicker._updateAlternate(a);
					d.datepicker._updateDatepicker(a)
				}
			} catch(b) {
				d.datepicker.log(b)
			}
			return true
		},
		_showDatepicker: function(a) {
			a = a.target || a;
			if (a.nodeName.toLowerCase() != "input") a = d("input", a.parentNode)[0];
			if (! (d.datepicker._isDisabledDatepicker(a) || d.datepicker._lastInput == a)) {
				var b = d.datepicker._getInst(a);
				d.datepicker._curInst && d.datepicker._curInst != b && d.datepicker._curInst.dpDiv.stop(true, true);
				var c = d.datepicker._get(b, "beforeShow");
				E(b.settings, c ? c.apply(a, [a, b]) : {});
				b.lastVal = null;
				d.datepicker._lastInput = a;
				d.datepicker._setDateFromField(b);
				if (d.datepicker._inDialog) a.value = "";
				if (!d.datepicker._pos) {
					d.datepicker._pos = d.datepicker._findPos(a);
					d.datepicker._pos[1] += a.offsetHeight
				}
				var e = false;
				d(a).parents().each(function() {
					e |= d(this).css("position") == "fixed";
					return !e
				});
				if (e && d.browser.opera) {
					d.datepicker._pos[0] -= document.documentElement.scrollLeft;
					d.datepicker._pos[1] -= document.documentElement.scrollTop
				}
				c = {
					left: d.datepicker._pos[0],
					top: d.datepicker._pos[1]
				};
				d.datepicker._pos = null;
				b.dpDiv.css({
					position: "absolute",
					display: "block",
					top: "-1000px"
				});
				d.datepicker._updateDatepicker(b);
				c = d.datepicker._checkOffset(b, c, e);
				b.dpDiv.css({
					position: d.datepicker._inDialog && d.blockUI ? "static" : e ? "fixed" : "absolute",
					display: "none",
					left: c.left + "px",
					top: c.top + "px"
				});
				if (!b.inline) {
					c = d.datepicker._get(b, "showAnim");
					var f = d.datepicker._get(b, "duration"),
						h = function() {
						d.datepicker._datepickerShowing = true;
						var i = d.datepicker._getBorders(b.dpDiv);
						b.dpDiv.find("iframe.ui-datepicker-cover").css({
							left: -i[0],
							top: -i[1],
							width: b.dpDiv.outerWidth(),
							height: b.dpDiv.outerHeight()
						})
					};
					b.dpDiv.zIndex(d(a).zIndex() + 1);
					d.effects && d.effects[c] ? b.dpDiv.show(c, d.datepicker._get(b, "showOptions"), f, h) : b.dpDiv[c || "show"](c ? f : null, h);
					if (!c || !f) h();
					b.input.is(":visible") && !b.input.is(":disabled") && b.input.focus();
					d.datepicker._curInst = b
				}
			}
		},
		_updateDatepicker: function(a) {
			var b = this,
				c = d.datepicker._getBorders(a.dpDiv);
			a.dpDiv.empty().append(this._generateHTML(a)).find("iframe.ui-datepicker-cover").css({
				left: -c[0],
				top: -c[1],
				width: a.dpDiv.outerWidth(),
				height: a.dpDiv.outerHeight()
			}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout", function() {
				d(this).removeClass("ui-state-hover");
				this.className.indexOf("ui-datepicker-prev") != -1 && d(this).removeClass("ui-datepicker-prev-hover");
				this.className.indexOf("ui-datepicker-next") != -1 && d(this).removeClass("ui-datepicker-next-hover")
			}).bind("mouseover", function() {
				if (!b._isDisabledDatepicker(a.inline ? a.dpDiv.parent()[0] : a.input[0])) {
					d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");
					d(this).addClass("ui-state-hover");
					this.className.indexOf("ui-datepicker-prev") != -1 && d(this).addClass("ui-datepicker-prev-hover");
					this.className.indexOf("ui-datepicker-next") != -1 && d(this).addClass("ui-datepicker-next-hover")
				}
			}).end().find("." + this._dayOverClass + " a").trigger("mouseover").end();
			c = this._getNumberOfMonths(a);
			var e = c[1];
			e > 1 ? a.dpDiv.addClass("ui-datepicker-multi-" + e).css("width", 17 * e + "em") : a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");
			a.dpDiv[(c[0] != 1 || c[1] != 1 ? "add" : "remove") + "Class"]("ui-datepicker-multi");
			a.dpDiv[(this._get(a, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl");
			a == d.datepicker._curInst && d.datepicker._datepickerShowing && a.input && a.input.is(":visible") && !a.input.is(":disabled") && a.input.focus()
		},
		_getBorders: function(a) {
			var b = function(c) {
				return {
					thin: 1,
					medium: 2,
					thick: 3
				} [c] || c
			};
			return [parseFloat(b(a.css("border-left-width"))), parseFloat(b(a.css("border-top-width")))]
		},
		_checkOffset: function(a, b, c) {
			var e = a.dpDiv.outerWidth(),
				f = a.dpDiv.outerHeight(),
				h = a.input ? a.input.outerWidth() : 0,
			i = a.input ? a.input.outerHeight() : 0,
			g = document.documentElement.clientWidth + d(document).scrollLeft(),
			k = document.documentElement.clientHeight + d(document).scrollTop();
			b.left -= this._get(a, "isRTL") ? e - h : 0;
			b.left -= c && b.left == a.input.offset().left ? d(document).scrollLeft() : 0;
			b.top -= c && b.top == a.input.offset().top + i ? d(document).scrollTop() : 0;
			b.left -= Math.min(b.left, b.left + e > g && g > e ? Math.abs(b.left + e - g) : 0);
			b.top -= Math.min(b.top, b.top + f > k && k > f ? Math.abs(f + i) : 0);
			return b
		},
		_findPos: function(a) {
			for (var b = this._get(this._getInst(a), "isRTL"); a && (a.type == "hidden" || a.nodeType != 1);) a = a[b ? "previousSibling" : "nextSibling"];
			a = d(a).offset();
			return [a.left, a.top]
		},
		_hideDatepicker: function(a) {
			var b = this._curInst;
			if (! (!b || a && b != d.data(a, "datepicker"))) if (this._datepickerShowing) {
				a = this._get(b, "showAnim");
				var c = this._get(b, "duration"),
					e = function() {
					d.datepicker._tidyDialog(b);
					this._curInst = null
				};
				d.effects && d.effects[a] ? b.dpDiv.hide(a, d.datepicker._get(b, "showOptions"), c, e) : b.dpDiv[a == "slideDown" ? "slideUp" : a == "fadeIn" ? "fadeOut" : "hide"](a ? c : null, e);
				a || e();
				if (a = this._get(b, "onClose")) a.apply(b.input ? b.input[0] : null, [b.input ? b.input.val() : "", b]);
				this._datepickerShowing = false;
				this._lastInput = null;
				if (this._inDialog) {
					this._dialogInput.css({
						position: "absolute",
						left: "0",
						top: "-100px"
					});
					if (d.blockUI) {
						d.unblockUI();
						d("body").append(this.dpDiv)
					}
				}
				this._inDialog = false
			}
		},
		_tidyDialog: function(a) {
			a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")
		},
		_checkExternalClick: function(a) {
			if (d.datepicker._curInst) {
				a = d(a.target);
				a[0].id != d.datepicker._mainDivId && a.parents("#" + d.datepicker._mainDivId).length == 0 && !a.hasClass(d.datepicker.markerClassName) && !a.hasClass(d.datepicker._triggerClass) && d.datepicker._datepickerShowing && !(d.datepicker._inDialog && d.blockUI) && d.datepicker._hideDatepicker()
			}
		},
		_adjustDate: function(a, b, c) {
			a = d(a);
			var e = this._getInst(a[0]);
			if (!this._isDisabledDatepicker(a[0])) {
				this._adjustInstDate(e, b + (c == "M" ? this._get(e, "showCurrentAtPos") : 0), c);
				this._updateDatepicker(e)
			}
		},
		_gotoToday: function(a) {
			a = d(a);
			var b = this._getInst(a[0]);
			if (this._get(b, "gotoCurrent") && b.currentDay) {
				b.selectedDay = b.currentDay;
				b.drawMonth = b.selectedMonth = b.currentMonth;
				b.drawYear = b.selectedYear = b.currentYear
			} else {
				var c = new Date;
				b.selectedDay = c.getDate();
				b.drawMonth = b.selectedMonth = c.getMonth();
				b.drawYear = b.selectedYear = c.getFullYear()
			}
			this._notifyChange(b);
			this._adjustDate(a)
		},
		_selectMonthYear: function(a, b, c) {
			a = d(a);
			var e = this._getInst(a[0]);
			e._selectingMonthYear = false;
			e["selected" + (c == "M" ? "Month" : "Year")] = e["draw" + (c == "M" ? "Month" : "Year")] = parseInt(b.options[b.selectedIndex].value, 10);
			this._notifyChange(e);
			this._adjustDate(a)
		},
		_clickMonthYear: function(a) {
			a = this._getInst(d(a)[0]);
			a.input && a._selectingMonthYear && !d.browser.msie && a.input.focus();
			a._selectingMonthYear = !a._selectingMonthYear
		},
		_selectDay: function(a, b, c, e) {
			var f = d(a);
			if (! (d(e).hasClass(this._unselectableClass) || this._isDisabledDatepicker(f[0]))) {
				f = this._getInst(f[0]);
				f.selectedDay = f.currentDay = d("a", e).html();
				f.selectedMonth = f.currentMonth = b;
				f.selectedYear = f.currentYear = c;
				this._selectDate(a, this._formatDate(f, f.currentDay, f.currentMonth, f.currentYear))
			}
		},
		_clearDate: function(a) {
			a = d(a);
			this._getInst(a[0]);
			this._selectDate(a, "")
		},
		_selectDate: function(a, b) {
			a = this._getInst(d(a)[0]);
			b = b != null ? b : this._formatDate(a);
			a.input && a.input.val(b);
			this._updateAlternate(a);
			var c = this._get(a, "onSelect");
			if (c) c.apply(a.input ? a.input[0] : null, [b, a]);
			else a.input && a.input.trigger("change");
			if (a.inline) this._updateDatepicker(a);
			else {
				this._hideDatepicker();
				this._lastInput = a.input[0];
				typeof a.input[0] != "object" && a.input.focus();
				this._lastInput = null
			}
		},
		_updateAlternate: function(a) {
			var b = this._get(a, "altField");
			if (b) {
				var c = this._get(a, "altFormat") || this._get(a, "dateFormat"),
					e = this._getDate(a),
					f = this.formatDate(c, e, this._getFormatConfig(a));
				d(b).each(function() {
					d(this).val(f)
				})
			}
		},
		noWeekends: function(a) {
			a = a.getDay();
			return [a > 0 && a < 6, ""]
		},
		iso8601Week: function(a) {
			a = new Date(a.getTime());
			a.setDate(a.getDate() + 4 - (a.getDay() || 7));
			var b = a.getTime();
			a.setMonth(0);
			a.setDate(1);
			return Math.floor(Math.round((b - a) / 864E5) / 7) + 1
		},
		parseDate: function(a, b, c) {
			if (a == null || b == null) throw "Invalid arguments";
			b = typeof b == "object" ? b.toString() : b + "";
			if (b == "") return null;
			for (var e = (c ? c.shortYearCutoff : null) || this._defaults.shortYearCutoff, f = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort, h = (c ? c.dayNames : null) || this._defaults.dayNames, i = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort, g = (c ? c.monthNames : null) || this._defaults.monthNames, k = c = -1, l = -1, u = -1, j = false, o = function(p) {
				(p = z + 1 < a.length && a.charAt(z + 1) == p) && z++;
				return p
			}, m = function(p) {
				o(p);
				p = new RegExp("^\\d{1," + (p == "@" ? 14 : p == "!" ? 20 : p == "y" ? 4 : p == "o" ? 3 : 2) + "}");
				p = b.substring(s).match(p);
				if (!p) throw "Missing number at position " + s;
				s += p[0].length;
				return parseInt(p[0], 10)
			}, n = function(p, w, G) {
				p = o(p) ? G : w;
				for (w = 0; w < p.length; w++) if (b.substr(s, p[w].length) == p[w]) {
					s += p[w].length;
					return w + 1
				}
				throw "Unknown name at position " + s;
			}, r = function() {
				if (b.charAt(s) != a.charAt(z)) throw "Unexpected literal at position " + s;
				s++
			}, s = 0, z = 0; z < a.length; z++) if (j) if (a.charAt(z) == "'" && !o("'")) j = false;
			else r();
			else switch (a.charAt(z)) {
			case "d":
				l = m("d");
				break;
			case "D":
				n("D", f, h);
				break;
			case "o":
				u = m("o");
				break;
			case "m":
				k = m("m");
				break;
			case "M":
				k = n("M", i, g);
				break;
			case "y":
				c = m("y");
				break;
			case "@":
				var v = new Date(m("@"));
				c = v.getFullYear();
				k = v.getMonth() + 1;
				l = v.getDate();
				break;
			case "!":
				v = new Date((m("!") - this._ticksTo1970) / 1E4);
				c = v.getFullYear();
				k = v.getMonth() + 1;
				l = v.getDate();
				break;
			case "'":
				if (o("'")) r();
				else j = true;
				break;
			default:
				r()
			}
			if (c == -1) c = (new Date).getFullYear();
			else if (c < 100) c += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (c <= e ? 0 : -100);
			if (u > -1) {
				k = 1;
				l = u;
				do {
					e = this._getDaysInMonth(c, k - 1);
					if (l <= e) break;
					k++;
					l -= e
				} while (1)
			}
			v = this._daylightSavingAdjust(new Date(c, k - 1, l));
			if (v.getFullYear() != c || v.getMonth() + 1 != k || v.getDate() != l) throw "Invalid date";
			return v
		},
		ATOM: "yy-mm-dd",
		COOKIE: "D, dd M yy",
		ISO_8601: "yy-mm-dd",
		RFC_822: "D, d M y",
		RFC_850: "DD, dd-M-y",
		RFC_1036: "D, d M y",
		RFC_1123: "D, d M yy",
		RFC_2822: "D, d M yy",
		RSS: "D, d M y",
		TICKS: "!",
		TIMESTAMP: "@",
		W3C: "yy-mm-dd",
		_ticksTo1970: (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)) * 24 * 60 * 60 * 1E7,
		formatDate: function(a, b, c) {
			if (!b) return "";
			var e = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort,
				f = (c ? c.dayNames : null) || this._defaults.dayNames,
				h = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort;
			c = (c ? c.monthNames : null) || this._defaults.monthNames;
			var i = function(o) {
				(o = j + 1 < a.length && a.charAt(j + 1) == o) && j++;
				return o
			},
				g = function(o, m, n) {
				m = "" + m;
				if (i(o)) for (; m.length < n;) m = "0" + m;
				return m
			},
				k = function(o, m, n, r) {
				return i(o) ? r[m] : n[m]
			},
				l = "",
				u = false;
			if (b) for (var j = 0; j < a.length; j++) if (u) if (a.charAt(j) == "'" && !i("'")) u = false;
			else l += a.charAt(j);
			else switch (a.charAt(j)) {
			case "d":
				l += g("d", b.getDate(), 2);
				break;
			case "D":
				l += k("D", b.getDay(), e, f);
				break;
			case "o":
				l += g("o", (b.getTime() - (new Date(b.getFullYear(), 0, 0)).getTime()) / 864E5, 3);
				break;
			case "m":
				l += g("m", b.getMonth() + 1, 2);
				break;
			case "M":
				l += k("M", b.getMonth(), h, c);
				break;
			case "y":
				l += i("y") ? b.getFullYear() : (b.getYear() % 100 < 10 ? "0" : "") + b.getYear() % 100;
				break;
			case "@":
				l += b.getTime();
				break;
			case "!":
				l += b.getTime() * 1E4 + this._ticksTo1970;
				break;
			case "'":
				if (i("'")) l += "'";
				else u = true;
				break;
			default:
				l += a.charAt(j)
			}
			return l
		},
		_possibleChars: function(a) {
			for (var b = "", c = false, e = function(h) {
				(h = f + 1 < a.length && a.charAt(f + 1) == h) && f++;
				return h
			}, f = 0; f < a.length; f++) if (c) if (a.charAt(f) == "'" && !e("'")) c = false;
			else b += a.charAt(f);
			else switch (a.charAt(f)) {
			case "d":
			case "m":
			case "y":
			case "@":
				b += "0123456789";
				break;
			case "D":
			case "M":
				return null;
			case "'":
				if (e("'")) b += "'";
				else c = true;
				break;
			default:
				b += a.charAt(f)
			}
			return b
		},
		_get: function(a, b) {
			return a.settings[b] !== undefined ? a.settings[b] : this._defaults[b]
		},
		_setDateFromField: function(a, b) {
			if (a.input.val() != a.lastVal) {
				var c = this._get(a, "dateFormat"),
					e = a.lastVal = a.input ? a.input.val() : null,
				f,
				h;
				f = h = this._getDefaultDate(a);
				var i = this._getFormatConfig(a);
				try {
					f = this.parseDate(c, e, i) || h
				} catch(g) {
					this.log(g);
					e = b ? "" : e
				}
				a.selectedDay = f.getDate();
				a.drawMonth = a.selectedMonth = f.getMonth();
				a.drawYear = a.selectedYear = f.getFullYear();
				a.currentDay = e ? f.getDate() : 0;
				a.currentMonth = e ? f.getMonth() : 0;
				a.currentYear = e ? f.getFullYear() : 0;
				this._adjustInstDate(a)
			}
		},
		_getDefaultDate: function(a) {
			return this._restrictMinMax(a, this._determineDate(a, this._get(a, "defaultDate"), new Date))
		},
		_determineDate: function(a, b, c) {
			var e = function(h) {
				var i = new Date;
				i.setDate(i.getDate() + h);
				return i
			},
				f = function(h) {
				try {
					return d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), h, d.datepicker._getFormatConfig(a))
				} catch(i) {}
				var g = (h.toLowerCase().match(/^c/) ? d.datepicker._getDate(a) : null) || new Date,
					k = g.getFullYear(),
					l = g.getMonth();
				g = g.getDate();
				for (var u = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, j = u.exec(h); j;) {
					switch (j[2] || "d") {
					case "d":
					case "D":
						g += parseInt(j[1], 10);
						break;
					case "w":
					case "W":
						g += parseInt(j[1], 10) * 7;
						break;
					case "m":
					case "M":
						l += parseInt(j[1], 10);
						g = Math.min(g, d.datepicker._getDaysInMonth(k, l));
						break;
					case "y":
					case "Y":
						k += parseInt(j[1], 10);
						g = Math.min(g, d.datepicker._getDaysInMonth(k, l));
						break
					}
					j = u.exec(h)
				}
				return new Date(k, l, g)
			};
			if (b = (b = b == null ? c : typeof b == "string" ? f(b) : typeof b == "number" ? isNaN(b) ? c : e(b) : b) && b.toString() == "Invalid Date" ? c : b) {
				b.setHours(0);
				b.setMinutes(0);
				b.setSeconds(0);
				b.setMilliseconds(0)
			}
			return this._daylightSavingAdjust(b)
		},
		_daylightSavingAdjust: function(a) {
			if (!a) return null;
			a.setHours(a.getHours() > 12 ? a.getHours() + 2 : 0);
			return a
		},
		_setDate: function(a, b, c) {
			var e = !b,
				f = a.selectedMonth,
				h = a.selectedYear;
			b = this._restrictMinMax(a, this._determineDate(a, b, new Date));
			a.selectedDay = a.currentDay = b.getDate();
			a.drawMonth = a.selectedMonth = a.currentMonth = b.getMonth();
			a.drawYear = a.selectedYear = a.currentYear = b.getFullYear();
			if ((f != a.selectedMonth || h != a.selectedYear) && !c) this._notifyChange(a);
			this._adjustInstDate(a);
			if (a.input) a.input.val(e ? "" : this._formatDate(a))
		},
		_getDate: function(a) {
			return !a.currentYear || a.input && a.input.val() == "" ? null : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay))
		},
		_generateHTML: function(a) {
			var b = new Date;
			b = this._daylightSavingAdjust(new Date(b.getFullYear(), b.getMonth(), b.getDate()));
			var c = this._get(a, "isRTL"),
				e = this._get(a, "showButtonPanel"),
				f = this._get(a, "hideIfNoPrevNext"),
				h = this._get(a, "navigationAsDateFormat"),
				i = this._getNumberOfMonths(a),
				g = this._get(a, "showCurrentAtPos"),
				k = this._get(a, "stepMonths"),
				l = i[0] != 1 || i[1] != 1,
				u = this._daylightSavingAdjust(!a.currentDay ? new Date(9999, 9, 9) : new Date(a.currentYear, a.currentMonth, a.currentDay)),
				j = this._getMinMaxDate(a, "min"),
				o = this._getMinMaxDate(a, "max");
			g = a.drawMonth - g;
			var m = a.drawYear;
			if (g < 0) {
				g += 12;
				m--
			}
			if (o) {
				var n = this._daylightSavingAdjust(new Date(o.getFullYear(), o.getMonth() - i[0] * i[1] + 1, o.getDate()));
				for (n = j && n < j ? j : n; this._daylightSavingAdjust(new Date(m, g, 1)) > n;) {
					g--;
					if (g < 0) {
						g = 11;
						m--
					}
				}
			}
			a.drawMonth = g;
			a.drawYear = m;
			n = this._get(a, "prevText");
			n = !h ? n : this.formatDate(n, this._daylightSavingAdjust(new Date(m, g - k, 1)), this._getFormatConfig(a));
			n = this._canAdjustMonth(a, -1, m, g) ? '<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + y + ".datepicker._adjustDate('#" + a.id + "', -" + k + ", 'M');\" title=\"" + n + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "e" : "w") + '">' + n + "</span></a>" : f ? "" : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="' + n + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "e" : "w") + '">' + n + "</span></a>";
			var r = this._get(a, "nextText");
			r = !h ? r : this.formatDate(r, this._daylightSavingAdjust(new Date(m, g + k, 1)), this._getFormatConfig(a));
			f = this._canAdjustMonth(a, +1, m, g) ? '<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + y + ".datepicker._adjustDate('#" + a.id + "', +" + k + ", 'M');\" title=\"" + r + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "w" : "e") + '">' + r + "</span></a>" : f ? "" : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="' + r + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "w" : "e") + '">' + r + "</span></a>";
			k = this._get(a, "currentText");
			r = this._get(a, "gotoCurrent") && a.currentDay ? u : b;
			k = !h ? k : this.formatDate(k, r, this._getFormatConfig(a));
			h = !a.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + y + '.datepicker._hideDatepicker();">' + this._get(a, "closeText") + "</button>" : "";
			e = e ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (c ? h : "") + (this._isInRange(a, r) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' + y + ".datepicker._gotoToday('#" + a.id + "');\">" + k + "</button>" : "") + (c ? "" : h) + "</div>" : "";
			h = parseInt(this._get(a, "firstDay"), 10);
			h = isNaN(h) ? 0 : h;
			k = this._get(a, "showWeek");
			r = this._get(a, "dayNames");
			this._get(a, "dayNamesShort");
			var s = this._get(a, "dayNamesMin"),
				z = this._get(a, "monthNames"),
				v = this._get(a, "monthNamesShort"),
				p = this._get(a, "beforeShowDay"),
				w = this._get(a, "showOtherMonths"),
				G = this._get(a, "selectOtherMonths");
			this._get(a, "calculateWeek");
			for (var K = this._getDefaultDate(a), H = "", C = 0; C < i[0]; C++) {
				for (var L = "", D = 0; D < i[1]; D++) {
					var M = this._daylightSavingAdjust(new Date(m, g, a.selectedDay)),
						t = " ui-corner-all",
						x = "";
					if (l) {
						x += '<div class="ui-datepicker-group';
						if (i[1] > 1) switch (D) {
						case 0:
							x += " ui-datepicker-group-first";
							t = " ui-corner-" + (c ? "right" : "left");
							break;
						case i[1] - 1:
							x += " ui-datepicker-group-last";
							t = " ui-corner-" + (c ? "left" : "right");
							break;
						default:
							x += " ui-datepicker-group-middle";
							t = "";
							break
						}
						x += '">'
					}
					x += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + t + '">' + (/all|left/.test(t) && C == 0 ? c ? f : n : "") + (/all|right/.test(t) && C == 0 ? c ? n : f : "") + this._generateMonthYearHeader(a, g, m, j, o, C > 0 || D > 0, z, v) + '</div><table class="ui-datepicker-calendar"><thead><tr>';
					var A = k ? '<th class="ui-datepicker-week-col">' + this._get(a, "weekHeader") + "</th>" : "";
					for (t = 0; t < 7; t++) {
						var q = (t + h) % 7;
						A += "<th" + ((t + h + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : "") + '><span title="' + r[q] + '">' + s[q] + "</span></th>"
					}
					x += A + "</tr></thead><tbody>";
					A = this._getDaysInMonth(m, g);
					if (m == a.selectedYear && g == a.selectedMonth) a.selectedDay = Math.min(a.selectedDay, A);
					t = (this._getFirstDayOfMonth(m, g) - h + 7) % 7;
					A = l ? 6 : Math.ceil((t + A) / 7);
					q = this._daylightSavingAdjust(new Date(m, g, 1 - t));
					for (var N = 0; N < A; N++) {
						x += "<tr>";
						var O = !k ? "" : '<td class="ui-datepicker-week-col">' + this._get(a, "calculateWeek")(q) + "</td>";
						for (t = 0; t < 7; t++) {
							var F = p ? p.apply(a.input ? a.input[0] : null, [q]) : [true, ""],
							B = q.getMonth() != g,
							I = B && !G || !F[0] || j && q < j || o && q > o;
							O += '<td class="' + ((t + h + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + (B ? " ui-datepicker-other-month" : "") + (q.getTime() == M.getTime() && g == a.selectedMonth && a._keyEvent || K.getTime() == q.getTime() && K.getTime() == M.getTime() ? " " + this._dayOverClass : "") + (I ? " " + this._unselectableClass + " ui-state-disabled" : "") + (B && !w ? "" : " " + F[1] + (q.getTime() == u.getTime() ? " " + this._currentClass : "") + (q.getTime() == b.getTime() ? " ui-datepicker-today" : "")) + '"' + ((!B || w) && F[2] ? ' title="' + F[2] + '"' : "") + (I ? "" : ' onclick="DP_jQuery_' + y + ".datepicker._selectDay('#" + a.id + "'," + q.getMonth() + "," + q.getFullYear() + ', this);return false;"') + ">" + (B && !w ? "&#xa0;" : I ? '<span class="ui-state-default">' + q.getDate() + "</span>" : '<a class="ui-state-default' + (q.getTime() == b.getTime() ? " ui-state-highlight" : "") + (q.getTime() == u.getTime() ? " ui-state-active" : "") + (B ? " ui-priority-secondary" : "") + '" href="#">' + q.getDate() + "</a>") + "</td>";
							q.setDate(q.getDate() + 1);
							q = this._daylightSavingAdjust(q)
						}
						x += O + "</tr>"
					}
					g++;
					if (g > 11) {
						g = 0;
						m++
					}
					x += "</tbody></table>" + (l ? "</div>" + (i[0] > 0 && D == i[1] - 1 ? '<div class="ui-datepicker-row-break"></div>' : "") : "");
					L += x
				}
				H += L
			}
			H += e + (d.browser.msie && parseInt(d.browser.version, 10) < 7 && !a.inline ? '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : "");
			a._keyEvent = false;
			return H
		},
		_generateMonthYearHeader: function(a, b, c, e, f, h, i, g) {
			var k = this._get(a, "changeMonth"),
				l = this._get(a, "changeYear"),
				u = this._get(a, "showMonthAfterYear"),
				j = '<div class="ui-datepicker-title">',
				o = "";
			if (h || !k) o += '<span class="ui-datepicker-month">' + i[b] + "</span>";
			else {
				i = e && e.getFullYear() == c;
				var m = f && f.getFullYear() == c;
				o += '<select class="ui-datepicker-month" onchange="DP_jQuery_' + y + ".datepicker._selectMonthYear('#" + a.id + "', this, 'M');\" onclick=\"DP_jQuery_" + y + ".datepicker._clickMonthYear('#" + a.id + "');\">";
				for (var n = 0; n < 12; n++) if ((!i || n >= e.getMonth()) && (!m || n <= f.getMonth())) o += '<option value="' + n + '"' + (n == b ? ' selected="selected"' : "") + ">" + g[n] + "</option>";
				o += "</select>"
			}
			u || (j += o + (h || !(k && l) ? "&#xa0;" : ""));
			if (h || !l) j += '<span class="ui-datepicker-year">' + c + "</span>";
			else {
				g = this._get(a, "yearRange").split(":");
				var r = (new Date).getFullYear();
				i = function(s) {
					s = s.match(/c[+-].*/) ? c + parseInt(s.substring(1), 10) : s.match(/[+-].*/) ? r + parseInt(s, 10) : parseInt(s, 10);
					return isNaN(s) ? r : s
				};
				b = i(g[0]);
				g = Math.max(b, i(g[1] || ""));
				b = e ? Math.max(b, e.getFullYear()) : b;
				g = f ? Math.min(g, f.getFullYear()) : g;
				for (j += '<select class="ui-datepicker-year" onchange="DP_jQuery_' + y + ".datepicker._selectMonthYear('#" + a.id + "', this, 'Y');\" onclick=\"DP_jQuery_" + y + ".datepicker._clickMonthYear('#" + a.id + "');\">"; b <= g; b++) j += '<option value="' + b + '"' + (b == c ? ' selected="selected"' : "") + ">" + b + "</option>";
				j += "</select>"
			}
			j += this._get(a, "yearSuffix");
			if (u) j += (h || !(k && l) ? "&#xa0;" : "") + o;
			j += "</div>";
			return j
		},
		_adjustInstDate: function(a, b, c) {
			var e = a.drawYear + (c == "Y" ? b : 0),
				f = a.drawMonth + (c == "M" ? b : 0);
			b = Math.min(a.selectedDay, this._getDaysInMonth(e, f)) + (c == "D" ? b : 0);
			e = this._restrictMinMax(a, this._daylightSavingAdjust(new Date(e, f, b)));
			a.selectedDay = e.getDate();
			a.drawMonth = a.selectedMonth = e.getMonth();
			a.drawYear = a.selectedYear = e.getFullYear();
			if (c == "M" || c == "Y") this._notifyChange(a)
		},
		_restrictMinMax: function(a, b) {
			var c = this._getMinMaxDate(a, "min");
			a = this._getMinMaxDate(a, "max");
			b = c && b < c ? c : b;
			return b = a && b > a ? a : b
		},
		_notifyChange: function(a) {
			var b = this._get(a, "onChangeMonthYear");
			if (b) b.apply(a.input ? a.input[0] : null, [a.selectedYear, a.selectedMonth + 1, a])
		},
		_getNumberOfMonths: function(a) {
			a = this._get(a, "numberOfMonths");
			return a == null ? [1, 1] : typeof a == "number" ? [1, a] : a
		},
		_getMinMaxDate: function(a, b) {
			return this._determineDate(a, this._get(a, b + "Date"), null)
		},
		_getDaysInMonth: function(a, b) {
			return 32 - (new Date(a, b, 32)).getDate()
		},
		_getFirstDayOfMonth: function(a, b) {
			return (new Date(a, b, 1)).getDay()
		},
		_canAdjustMonth: function(a, b, c, e) {
			var f = this._getNumberOfMonths(a);
			c = this._daylightSavingAdjust(new Date(c, e + (b < 0 ? b : f[0] * f[1]), 1));
			b < 0 && c.setDate(this._getDaysInMonth(c.getFullYear(), c.getMonth()));
			return this._isInRange(a, c)
		},
		_isInRange: function(a, b) {
			var c = this._getMinMaxDate(a, "min");
			a = this._getMinMaxDate(a, "max");
			return (!c || b.getTime() >= c.getTime()) && (!a || b.getTime() <= a.getTime())
		},
		_getFormatConfig: function(a) {
			var b = this._get(a, "shortYearCutoff");
			b = typeof b != "string" ? b : (new Date).getFullYear() % 100 + parseInt(b, 10);
			return {
				shortYearCutoff: b,
				dayNamesShort: this._get(a, "dayNamesShort"),
				dayNames: this._get(a, "dayNames"),
				monthNamesShort: this._get(a, "monthNamesShort"),
				monthNames: this._get(a, "monthNames")
			}
		},
		_formatDate: function(a, b, c, e) {
			if (!b) {
				a.currentDay = a.selectedDay;
				a.currentMonth = a.selectedMonth;
				a.currentYear = a.selectedYear
			}
			b = b ? typeof b == "object" ? b : this._daylightSavingAdjust(new Date(e, c, b)) : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay));
			return this.formatDate(this._get(a, "dateFormat"), b, this._getFormatConfig(a))
		}
	});
	d.fn.datepicker = function(a) {
		if (!d.datepicker.initialized) {
			d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);
			d.datepicker.initialized = true
		}
		var b = Array.prototype.slice.call(arguments, 1);
		if (typeof a == "string" && (a == "isDisabled" || a == "getDate" || a == "widget")) return d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(b));
		if (a == "option" && arguments.length == 2 && typeof arguments[1] == "string") return d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(b));
		return this.each(function() {
			typeof a == "string" ? d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this].concat(b)) : d.datepicker._attachDatepicker(this, a)
		})
	};
	d.datepicker = new J;
	d.datepicker.initialized = false;
	d.datepicker.uuid = (new Date).getTime();
	d.datepicker.version = "1.8.2";
	window["DP_jQuery_" + y] = d
})(jQuery);;
/*
 * jQuery UI Progressbar 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Progressbar
 *
 * Depends:
 *   jquery.ui.core.js
 *   jquery.ui.widget.js
 */
(function(b) {
	b.widget("ui.progressbar", {
		options: {
			value: 0
		},
		_create: function() {
			this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({
				role: "progressbar",
				"aria-valuemin": this._valueMin(),
				"aria-valuemax": this._valueMax(),
				"aria-valuenow": this._value()
			});
			this.valueDiv = b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);
			this._refreshValue()
		},
		destroy: function() {
			this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
			this.valueDiv.remove();
			b.Widget.prototype.destroy.apply(this, arguments)
		},
		value: function(a) {
			if (a === undefined) return this._value();
			this._setOption("value", a);
			return this
		},
		_setOption: function(a, c) {
			switch (a) {
			case "value":
				this.options.value = c;
				this._refreshValue();
				this._trigger("change");
				break
			}
			b.Widget.prototype._setOption.apply(this, arguments)
		},
		_value: function() {
			var a = this.options.value;
			if (typeof a !== "number") a = 0;
			if (a < this._valueMin()) a = this._valueMin();
			if (a > this._valueMax()) a = this._valueMax();
			return a
		},
		_valueMin: function() {
			return 0
		},
		_valueMax: function() {
			return 100
		},
		_refreshValue: function() {
			var a = this.value();
			this.valueDiv[a === this._valueMax() ? "addClass" : "removeClass"]("ui-corner-right").width(a + "%");
			this.element.attr("aria-valuenow", a)
		}
	});
	b.extend(b.ui.progressbar, {
		version: "1.8.2"
	})
})(jQuery);;
/*
 * jQuery UI Effects 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/
 */
jQuery.effects ||
function(f) {
	function k(c) {
		var a;
		if (c && c.constructor == Array && c.length == 3) return c;
		if (a = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c)) return [parseInt(a[1], 10), parseInt(a[2], 10), parseInt(a[3], 10)];
		if (a = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c)) return [parseFloat(a[1]) * 2.55, parseFloat(a[2]) * 2.55, parseFloat(a[3]) * 2.55];
		if (a = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c)) return [parseInt(a[1], 16), parseInt(a[2], 16), parseInt(a[3], 16)];
		if (a = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c)) return [parseInt(a[1] + a[1], 16), parseInt(a[2] + a[2], 16), parseInt(a[3] + a[3], 16)];
		if (/rgba\(0, 0, 0, 0\)/.exec(c)) return l.transparent;
		return l[f.trim(c).toLowerCase()]
	}

	function q(c, a) {
		var b;
		do {
			b = f.curCSS(c, a);
			if (b != "" && b != "transparent" || f.nodeName(c, "body")) break;
			a = "backgroundColor"
		} while (c = c.parentNode);
		return k(b)
	}

	function m() {
		var c = document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle,
		a = {},
		b,
		d;
		if (c && c.length && c[0] && c[c[0]]) for (var e = c.length; e--;) {
			b = c[e];
			if (typeof c[b] == "string") {
				d = b.replace(/\-(\w)/g, function(g, h) {
					return h.toUpperCase()
				});
				a[d] = c[b]
			}
		} else for (b in c) if (typeof c[b] === "string") a[b] = c[b];
		return a
	}

	function n(c) {
		var a, b;
		for (a in c) {
			b = c[a];
			if (b == null || f.isFunction(b) || a in r || /scrollbar/.test(a) || !/color/i.test(a) && isNaN(parseFloat(b))) delete c[a]
		}
		return c
	}

	function s(c, a) {
		var b = {
			_: 0
		},
			d;
		for (d in a) if (c[d] != a[d]) b[d] = a[d];
		return b
	}

	function j(c, a, b, d) {
		if (typeof c == "object") {
			d = a;
			b = null;
			a = c;
			c = a.effect
		}
		if (f.isFunction(a)) {
			d = a;
			b = null;
			a = {}
		}
		if (f.isFunction(b)) {
			d = b;
			b = null
		}
		if (typeof a == "number" || f.fx.speeds[a]) {
			d = b;
			b = a;
			a = {}
		}
		a = a || {};
		b = b || a.duration;
		b = f.fx.off ? 0 : typeof b == "number" ? b : f.fx.speeds[b] || f.fx.speeds._default;
		d = d || a.complete;
		return [c, a, b, d]
	}
	f.effects = {};
	f.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "color", "outlineColor"], function(c, a) {
		f.fx.step[a] = function(b) {
			if (!b.colorInit) {
				b.start = q(b.elem, a);
				b.end = k(b.end);
				b.colorInit = true
			}
			b.elem.style[a] = "rgb(" + Math.max(Math.min(parseInt(b.pos * (b.end[0] - b.start[0]) + b.start[0], 10), 255), 0) + "," + Math.max(Math.min(parseInt(b.pos * (b.end[1] - b.start[1]) + b.start[1], 10), 255), 0) + "," + Math.max(Math.min(parseInt(b.pos * (b.end[2] - b.start[2]) + b.start[2], 10), 255), 0) + ")"
		}
	});
	var l = {
		aqua: [0, 255, 255],
		azure: [240, 255, 255],
		beige: [245, 245, 220],
		black: [0, 0, 0],
		blue: [0, 0, 255],
		brown: [165, 42, 42],
		cyan: [0, 255, 255],
		darkblue: [0, 0, 139],
		darkcyan: [0, 139, 139],
		darkgrey: [169, 169, 169],
		darkgreen: [0, 100, 0],
		darkkhaki: [189, 183, 107],
		darkmagenta: [139, 0, 139],
		darkolivegreen: [85, 107, 47],
		darkorange: [255, 140, 0],
		darkorchid: [153, 50, 204],
		darkred: [139, 0, 0],
		darksalmon: [233, 150, 122],
		darkviolet: [148, 0, 211],
		fuchsia: [255, 0, 255],
		gold: [255, 215, 0],
		green: [0, 128, 0],
		indigo: [75, 0, 130],
		khaki: [240, 230, 140],
		lightblue: [173, 216, 230],
		lightcyan: [224, 255, 255],
		lightgreen: [144, 238, 144],
		lightgrey: [211, 211, 211],
		lightpink: [255, 182, 193],
		lightyellow: [255, 255, 224],
		lime: [0, 255, 0],
		magenta: [255, 0, 255],
		maroon: [128, 0, 0],
		navy: [0, 0, 128],
		olive: [128, 128, 0],
		orange: [255, 165, 0],
		pink: [255, 192, 203],
		purple: [128, 0, 128],
		violet: [128, 0, 128],
		red: [255, 0, 0],
		silver: [192, 192, 192],
		white: [255, 255, 255],
		yellow: [255, 255, 0],
		transparent: [255, 255, 255]
	},
		o = ["add", "remove", "toggle"],
		r = {
		border: 1,
		borderBottom: 1,
		borderColor: 1,
		borderLeft: 1,
		borderRight: 1,
		borderTop: 1,
		borderWidth: 1,
		margin: 1,
		padding: 1
	};
	f.effects.animateClass = function(c, a, b, d) {
		if (f.isFunction(b)) {
			d = b;
			b = null
		}
		return this.each(function() {
			var e = f(this),
				g = e.attr("style") || " ",
				h = n(m.call(this)),
				p, t = e.attr("className");
			f.each(o, function(u, i) {
				c[i] && e[i + "Class"](c[i])
			});
			p = n(m.call(this));
			e.attr("className", t);
			e.animate(s(h, p), a, b, function() {
				f.each(o, function(u, i) {
					c[i] && e[i + "Class"](c[i])
				});
				if (typeof e.attr("style") == "object") {
					e.attr("style").cssText = "";
					e.attr("style").cssText = g
				} else e.attr("style", g);
				d && d.apply(this, arguments)
			})
		})
	};
	f.fn.extend({
		_addClass: f.fn.addClass,
		addClass: function(c, a, b, d) {
			return a ? f.effects.animateClass.apply(this, [{
				add: c
			},
			a, b, d]) : this._addClass(c)
		},
		_removeClass: f.fn.removeClass,
		removeClass: function(c, a, b, d) {
			return a ? f.effects.animateClass.apply(this, [{
				remove: c
			},
			a, b, d]) : this._removeClass(c)
		},
		_toggleClass: f.fn.toggleClass,
		toggleClass: function(c, a, b, d, e) {
			return typeof a == "boolean" || a === undefined ? b ? f.effects.animateClass.apply(this, [a ? {
				add: c
			} : {
				remove: c
			},
			b, d, e]) : this._toggleClass(c, a) : f.effects.animateClass.apply(this, [{
				toggle: c
			},
			a, b, d])
		},
		switchClass: function(c, a, b, d, e) {
			return f.effects.animateClass.apply(this, [{
				add: a,
				remove: c
			},
			b, d, e])
		}
	});
	f.extend(f.effects, {
		version: "1.8.2",
		save: function(c, a) {
			for (var b = 0; b < a.length; b++) a[b] !== null && c.data("ec.storage." + a[b], c[0].style[a[b]])
		},
		restore: function(c, a) {
			for (var b = 0; b < a.length; b++) a[b] !== null && c.css(a[b], c.data("ec.storage." + a[b]))
		},
		setMode: function(c, a) {
			if (a == "toggle") a = c.is(":hidden") ? "show" : "hide";
			return a
		},
		getBaseline: function(c, a) {
			var b;
			switch (c[0]) {
			case "top":
				b = 0;
				break;
			case "middle":
				b = 0.5;
				break;
			case "bottom":
				b = 1;
				break;
			default:
				b = c[0] / a.height
			}
			switch (c[1]) {
			case "left":
				c = 0;
				break;
			case "center":
				c = 0.5;
				break;
			case "right":
				c = 1;
				break;
			default:
				c = c[1] / a.width
			}
			return {
				x: c,
				y: b
			}
		},
		createWrapper: function(c) {
			if (c.parent().is(".ui-effects-wrapper")) return c.parent();
			var a = {
				width: c.outerWidth(true),
				height: c.outerHeight(true),
				"float": c.css("float")
			},
				b = f("<div></div>").addClass("ui-effects-wrapper").css({
				fontSize: "100%",
				background: "transparent",
				border: "none",
				margin: 0,
				padding: 0
			});
			c.wrap(b);
			b = c.parent();
			if (c.css("position") == "static") {
				b.css({
					position: "relative"
				});
				c.css({
					position: "relative"
				})
			} else {
				f.extend(a, {
					position: c.css("position"),
					zIndex: c.css("z-index")
				});
				f.each(["top", "left", "bottom", "right"], function(d, e) {
					a[e] = c.css(e);
					if (isNaN(parseInt(a[e], 10))) a[e] = "auto"
				});
				c.css({
					position: "relative",
					top: 0,
					left: 0
				})
			}
			return b.css(a).show()
		},
		removeWrapper: function(c) {
			if (c.parent().is(".ui-effects-wrapper")) return c.parent().replaceWith(c);
			return c
		},
		setTransition: function(c, a, b, d) {
			d = d || {};
			f.each(a, function(e, g) {
				unit = c.cssUnit(g);
				if (unit[0] > 0) d[g] = unit[0] * b + unit[1]
			});
			return d
		}
	});
	f.fn.extend({
		effect: function(c) {
			var a = j.apply(this, arguments);
			a = {
				options: a[1],
				duration: a[2],
				callback: a[3]
			};
			var b = f.effects[c];
			return b && !f.fx.off ? b.call(this, a) : this
		},
		_show: f.fn.show,
		show: function(c) {
			if (!c || typeof c == "number" || f.fx.speeds[c]) return this._show.apply(this, arguments);
			else {
				var a = j.apply(this, arguments);
				a[1].mode = "show";
				return this.effect.apply(this, a)
			}
		},
		_hide: f.fn.hide,
		hide: function(c) {
			if (!c || typeof c == "number" || f.fx.speeds[c]) return this._hide.apply(this, arguments);
			else {
				var a = j.apply(this, arguments);
				a[1].mode = "hide";
				return this.effect.apply(this, a)
			}
		},
		__toggle: f.fn.toggle,
		toggle: function(c) {
			if (!c || typeof c == "number" || f.fx.speeds[c] || typeof c == "boolean" || f.isFunction(c)) return this.__toggle.apply(this, arguments);
			else {
				var a = j.apply(this, arguments);
				a[1].mode = "toggle";
				return this.effect.apply(this, a)
			}
		},
		cssUnit: function(c) {
			var a = this.css(c),
				b = [];
			f.each(["em", "px", "%", "pt"], function(d, e) {
				if (a.indexOf(e) > 0) b = [parseFloat(a), e]
			});
			return b
		}
	});
	f.easing.jswing = f.easing.swing;
	f.extend(f.easing, {
		def: "easeOutQuad",
		swing: function(c, a, b, d, e) {
			return f.easing[f.easing.def](c, a, b, d, e)
		},
		easeInQuad: function(c, a, b, d, e) {
			return d * (a /= e) * a + b
		},
		easeOutQuad: function(c, a, b, d, e) {
			return -d * (a /= e) * (a - 2) + b
		},
		easeInOutQuad: function(c, a, b, d, e) {
			if ((a /= e / 2) < 1) return d / 2 * a * a + b;
			return -d / 2 * (--a * (a - 2) - 1) + b
		},
		easeInCubic: function(c, a, b, d, e) {
			return d * (a /= e) * a * a + b
		},
		easeOutCubic: function(c, a, b, d, e) {
			return d * ((a = a / e - 1) * a * a + 1) + b
		},
		easeInOutCubic: function(c, a, b, d, e) {
			if ((a /= e / 2) < 1) return d / 2 * a * a * a + b;
			return d / 2 * ((a -= 2) * a * a + 2) + b
		},
		easeInQuart: function(c, a, b, d, e) {
			return d * (a /= e) * a * a * a + b
		},
		easeOutQuart: function(c, a, b, d, e) {
			return -d * ((a = a / e - 1) * a * a * a - 1) + b
		},
		easeInOutQuart: function(c, a, b, d, e) {
			if ((a /= e / 2) < 1) return d / 2 * a * a * a * a + b;
			return -d / 2 * ((a -= 2) * a * a * a - 2) + b
		},
		easeInQuint: function(c, a, b, d, e) {
			return d * (a /= e) * a * a * a * a + b
		},
		easeOutQuint: function(c, a, b, d, e) {
			return d * ((a = a / e - 1) * a * a * a * a + 1) + b
		},
		easeInOutQuint: function(c, a, b, d, e) {
			if ((a /= e / 2) < 1) return d / 2 * a * a * a * a * a + b;
			return d / 2 * ((a -= 2) * a * a * a * a + 2) + b
		},
		easeInSine: function(c, a, b, d, e) {
			return -d * Math.cos(a / e * (Math.PI / 2)) + d + b
		},
		easeOutSine: function(c, a, b, d, e) {
			return d * Math.sin(a / e * (Math.PI / 2)) + b
		},
		easeInOutSine: function(c, a, b, d, e) {
			return -d / 2 * (Math.cos(Math.PI * a / e) - 1) + b
		},
		easeInExpo: function(c, a, b, d, e) {
			return a == 0 ? b : d * Math.pow(2, 10 * (a / e - 1)) + b
		},
		easeOutExpo: function(c, a, b, d, e) {
			return a == e ? b + d : d * (-Math.pow(2, -10 * a / e) + 1) + b
		},
		easeInOutExpo: function(c, a, b, d, e) {
			if (a == 0) return b;
			if (a == e) return b + d;
			if ((a /= e / 2) < 1) return d / 2 * Math.pow(2, 10 * (a - 1)) + b;
			return d / 2 * (-Math.pow(2, -10 * --a) + 2) + b
		},
		easeInCirc: function(c, a, b, d, e) {
			return -d * (Math.sqrt(1 - (a /= e) * a) - 1) + b
		},
		easeOutCirc: function(c, a, b, d, e) {
			return d * Math.sqrt(1 - (a = a / e - 1) * a) + b
		},
		easeInOutCirc: function(c, a, b, d, e) {
			if ((a /= e / 2) < 1) return -d / 2 * (Math.sqrt(1 - a * a) - 1) + b;
			return d / 2 * (Math.sqrt(1 - (a -= 2) * a) + 1) + b
		},
		easeInElastic: function(c, a, b, d, e) {
			c = 1.70158;
			var g = 0,
				h = d;
			if (a == 0) return b;
			if ((a /= e) == 1) return b + d;
			g || (g = e * 0.3);
			if (h < Math.abs(d)) {
				h = d;
				c = g / 4
			} else c = g / (2 * Math.PI) * Math.asin(d / h);
			return - (h * Math.pow(2, 10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g)) + b
		},
		easeOutElastic: function(c, a, b, d, e) {
			c = 1.70158;
			var g = 0,
				h = d;
			if (a == 0) return b;
			if ((a /= e) == 1) return b + d;
			g || (g = e * 0.3);
			if (h < Math.abs(d)) {
				h = d;
				c = g / 4
			} else c = g / (2 * Math.PI) * Math.asin(d / h);
			return h * Math.pow(2, -10 * a) * Math.sin((a * e - c) * 2 * Math.PI / g) + d + b
		},
		easeInOutElastic: function(c, a, b, d, e) {
			c = 1.70158;
			var g = 0,
				h = d;
			if (a == 0) return b;
			if ((a /= e / 2) == 2) return b + d;
			g || (g = e * 0.3 * 1.5);
			if (h < Math.abs(d)) {
				h = d;
				c = g / 4
			} else c = g / (2 * Math.PI) * Math.asin(d / h);
			if (a < 1) return -0.5 * h * Math.pow(2, 10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g) + b;
			return h * Math.pow(2, -10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g) * 0.5 + d + b
		},
		easeInBack: function(c, a, b, d, e, g) {
			if (g == undefined) g = 1.70158;
			return d * (a /= e) * a * ((g + 1) * a - g) + b
		},
		easeOutBack: function(c, a, b, d, e, g) {
			if (g == undefined) g = 1.70158;
			return d * ((a = a / e - 1) * a * ((g + 1) * a + g) + 1) + b
		},
		easeInOutBack: function(c, a, b, d, e, g) {
			if (g == undefined) g = 1.70158;
			if ((a /= e / 2) < 1) return d / 2 * a * a * (((g *= 1.525) + 1) * a - g) + b;
			return d / 2 * ((a -= 2) * a * (((g *= 1.525) + 1) * a + g) + 2) + b
		},
		easeInBounce: function(c, a, b, d, e) {
			return d - f.easing.easeOutBounce(c, e - a, 0, d, e) + b
		},
		easeOutBounce: function(c, a, b, d, e) {
			return (a /= e) < 1 / 2.75 ? d * 7.5625 * a * a + b : a < 2 / 2.75 ? d * (7.5625 * (a -= 1.5 / 2.75) * a + 0.75) + b : a < 2.5 / 2.75 ? d * (7.5625 * (a -= 2.25 / 2.75) * a + 0.9375) + b : d * (7.5625 * (a -= 2.625 / 2.75) * a + 0.984375) + b
		},
		easeInOutBounce: function(c, a, b, d, e) {
			if (a < e / 2) return f.easing.easeInBounce(c, a * 2, 0, d, e) * 0.5 + b;
			return f.easing.easeOutBounce(c, a * 2 - e, 0, d, e) * 0.5 + d * 0.5 + b
		}
	})
} (jQuery);;
/*
 * jQuery UI Effects Blind 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Blind
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function(b) {
	b.effects.blind = function(c) {
		return this.queue(function() {
			var a = b(this),
				g = ["position", "top", "left"],
				f = b.effects.setMode(a, c.options.mode || "hide"),
				d = c.options.direction || "vertical";
			b.effects.save(a, g);
			a.show();
			var e = b.effects.createWrapper(a).css({
				overflow: "hidden"
			}),
				h = d == "vertical" ? "height" : "width";
			d = d == "vertical" ? e.height() : e.width();
			f == "show" && e.css(h, 0);
			var i = {};
			i[h] = f == "show" ? d : 0;
			e.animate(i, c.duration, c.options.easing, function() {
				f == "hide" && a.hide();
				b.effects.restore(a, g);
				b.effects.removeWrapper(a);
				c.callback && c.callback.apply(a[0], arguments);
				a.dequeue()
			})
		})
	}
})(jQuery);;
/*
 * jQuery UI Effects Bounce 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Bounce
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function(e) {
	e.effects.bounce = function(b) {
		return this.queue(function() {
			var a = e(this),
				l = ["position", "top", "left"],
				h = e.effects.setMode(a, b.options.mode || "effect"),
				d = b.options.direction || "up",
				c = b.options.distance || 20,
				m = b.options.times || 5,
				i = b.duration || 250;
			/show|hide/.test(h) && l.push("opacity");
			e.effects.save(a, l);
			a.show();
			e.effects.createWrapper(a);
			var f = d == "up" || d == "down" ? "top" : "left";
			d = d == "up" || d == "left" ? "pos" : "neg";
			c = b.options.distance || (f == "top" ? a.outerHeight({
				margin: true
			}) / 3 : a.outerWidth({
				margin: true
			}) / 3);
			if (h == "show") a.css("opacity", 0).css(f, d == "pos" ? -c : c);
			if (h == "hide") c /= m * 2;
			h != "hide" && m--;
			if (h == "show") {
				var g = {
					opacity: 1
				};
				g[f] = (d == "pos" ? "+=" : "-=") + c;
				a.animate(g, i / 2, b.options.easing);
				c /= 2;
				m--
			}
			for (g = 0; g < m; g++) {
				var j = {},
					k = {};
				j[f] = (d == "pos" ? "-=" : "+=") + c;
				k[f] = (d == "pos" ? "+=" : "-=") + c;
				a.animate(j, i / 2, b.options.easing).animate(k, i / 2, b.options.easing);
				c = h == "hide" ? c * 2 : c / 2
			}
			if (h == "hide") {
				g = {
					opacity: 0
				};
				g[f] = (d == "pos" ? "-=" : "+=") + c;
				a.animate(g, i / 2, b.options.easing, function() {
					a.hide();
					e.effects.restore(a, l);
					e.effects.removeWrapper(a);
					b.callback && b.callback.apply(this, arguments)
				})
			} else {
				j = {};
				k = {};
				j[f] = (d == "pos" ? "-=" : "+=") + c;
				k[f] = (d == "pos" ? "+=" : "-=") + c;
				a.animate(j, i / 2, b.options.easing).animate(k, i / 2, b.options.easing, function() {
					e.effects.restore(a, l);
					e.effects.removeWrapper(a);
					b.callback && b.callback.apply(this, arguments)
				})
			}
			a.queue("fx", function() {
				a.dequeue()
			});
			a.dequeue()
		})
	}
})(jQuery);;
/*
 * jQuery UI Effects Clip 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Clip
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function(b) {
	b.effects.clip = function(e) {
		return this.queue(function() {
			var a = b(this),
				i = ["position", "top", "left", "height", "width"],
				f = b.effects.setMode(a, e.options.mode || "hide"),
				c = e.options.direction || "vertical";
			b.effects.save(a, i);
			a.show();
			var d = b.effects.createWrapper(a).css({
				overflow: "hidden"
			});
			d = a[0].tagName == "IMG" ? d : a;
			var g = {
				size: c == "vertical" ? "height" : "width",
				position: c == "vertical" ? "top" : "left"
			};
			c = c == "vertical" ? d.height() : d.width();
			if (f == "show") {
				d.css(g.size, 0);
				d.css(g.position, c / 2)
			}
			var h = {};
			h[g.size] = f == "show" ? c : 0;
			h[g.position] = f == "show" ? 0 : c / 2;
			d.animate(h, {
				queue: false,
				duration: e.duration,
				easing: e.options.easing,
				complete: function() {
					f == "hide" && a.hide();
					b.effects.restore(a, i);
					b.effects.removeWrapper(a);
					e.callback && e.callback.apply(a[0], arguments);
					a.dequeue()
				}
			})
		})
	}
})(jQuery);;
/*
 * jQuery UI Effects Drop 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Drop
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function(c) {
	c.effects.drop = function(d) {
		return this.queue(function() {
			var a = c(this),
				h = ["position", "top", "left", "opacity"],
				e = c.effects.setMode(a, d.options.mode || "hide"),
				b = d.options.direction || "left";
			c.effects.save(a, h);
			a.show();
			c.effects.createWrapper(a);
			var f = b == "up" || b == "down" ? "top" : "left";
			b = b == "up" || b == "left" ? "pos" : "neg";
			var g = d.options.distance || (f == "top" ? a.outerHeight({
				margin: true
			}) / 2 : a.outerWidth({
				margin: true
			}) / 2);
			if (e == "show") a.css("opacity", 0).css(f, b == "pos" ? -g : g);
			var i = {
				opacity: e == "show" ? 1 : 0
			};
			i[f] = (e == "show" ? b == "pos" ? "+=" : "-=" : b == "pos" ? "-=" : "+=") + g;
			a.animate(i, {
				queue: false,
				duration: d.duration,
				easing: d.options.easing,
				complete: function() {
					e == "hide" && a.hide();
					c.effects.restore(a, h);
					c.effects.removeWrapper(a);
					d.callback && d.callback.apply(this, arguments);
					a.dequeue()
				}
			})
		})
	}
})(jQuery);;
/*
 * jQuery UI Effects Explode 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Explode
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function(j) {
	j.effects.explode = function(a) {
		return this.queue(function() {
			var c = a.options.pieces ? Math.round(Math.sqrt(a.options.pieces)) : 3,
			d = a.options.pieces ? Math.round(Math.sqrt(a.options.pieces)) : 3;
			a.options.mode = a.options.mode == "toggle" ? j(this).is(":visible") ? "hide" : "show" : a.options.mode;
			var b = j(this).show().css("visibility", "hidden"),
				g = b.offset();
			g.top -= parseInt(b.css("marginTop"), 10) || 0;
			g.left -= parseInt(b.css("marginLeft"), 10) || 0;
			for (var h = b.outerWidth(true), i = b.outerHeight(true), e = 0; e < c; e++) for (var f = 0; f < d; f++) b.clone().appendTo("body").wrap("<div></div>").css({
				position: "absolute",
				visibility: "visible",
				left: -f * (h / d),
				top: -e * (i / c)
			}).parent().addClass("ui-effects-explode").css({
				position: "absolute",
				overflow: "hidden",
				width: h / d,
				height: i / c,
				left: g.left + f * (h / d) + (a.options.mode == "show" ? (f - Math.floor(d / 2)) * (h / d) : 0),
				top: g.top + e * (i / c) + (a.options.mode == "show" ? (e - Math.floor(c / 2)) * (i / c) : 0),
				opacity: a.options.mode == "show" ? 0 : 1
			}).animate({
				left: g.left + f * (h / d) + (a.options.mode == "show" ? 0 : (f - Math.floor(d / 2)) * (h / d)),
				top: g.top + e * (i / c) + (a.options.mode == "show" ? 0 : (e - Math.floor(c / 2)) * (i / c)),
				opacity: a.options.mode == "show" ? 1 : 0
			},
			a.duration || 500);
			setTimeout(function() {
				a.options.mode == "show" ? b.css({
					visibility: "visible"
				}) : b.css({
					visibility: "visible"
				}).hide();
				a.callback && a.callback.apply(b[0]);
				b.dequeue();
				j("div.ui-effects-explode").remove()
			},
			a.duration || 500)
		})
	}
})(jQuery);;
/*
 * jQuery UI Effects Fold 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Fold
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function(c) {
	c.effects.fold = function(a) {
		return this.queue(function() {
			var b = c(this),
				j = ["position", "top", "left"],
				d = c.effects.setMode(b, a.options.mode || "hide"),
				g = a.options.size || 15,
				h = !!a.options.horizFirst,
				k = a.duration ? a.duration / 2 : c.fx.speeds._default / 2;
			c.effects.save(b, j);
			b.show();
			var e = c.effects.createWrapper(b).css({
				overflow: "hidden"
			}),
				f = d == "show" != h,
				l = f ? ["width", "height"] : ["height", "width"];
			f = f ? [e.width(), e.height()] : [e.height(), e.width()];
			var i = /([0-9]+)%/.exec(g);
			if (i) g = parseInt(i[1], 10) / 100 * f[d == "hide" ? 0 : 1];
			if (d == "show") e.css(h ? {
				height: 0,
				width: g
			} : {
				height: g,
				width: 0
			});
			h = {};
			i = {};
			h[l[0]] = d == "show" ? f[0] : g;
			i[l[1]] = d == "show" ? f[1] : 0;
			e.animate(h, k, a.options.easing).animate(i, k, a.options.easing, function() {
				d == "hide" && b.hide();
				c.effects.restore(b, j);
				c.effects.removeWrapper(b);
				a.callback && a.callback.apply(b[0], arguments);
				b.dequeue()
			})
		})
	}
})(jQuery);;
/*
 * jQuery UI Effects Highlight 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Highlight
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function(b) {
	b.effects.highlight = function(c) {
		return this.queue(function() {
			var a = b(this),
				e = ["backgroundImage", "backgroundColor", "opacity"],
				d = b.effects.setMode(a, c.options.mode || "show"),
				f = {
				backgroundColor: a.css("backgroundColor")
			};
			if (d == "hide") f.opacity = 0;
			b.effects.save(a, e);
			a.show().css({
				backgroundImage: "none",
				backgroundColor: c.options.color || "#ffff99"
			}).animate(f, {
				queue: false,
				duration: c.duration,
				easing: c.options.easing,
				complete: function() {
					d == "hide" && a.hide();
					b.effects.restore(a, e);
					d == "show" && !b.support.opacity && this.style.removeAttribute("filter");
					c.callback && c.callback.apply(this, arguments);
					a.dequeue()
				}
			})
		})
	}
})(jQuery);;
/*
 * jQuery UI Effects Pulsate 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Pulsate
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function(d) {
	d.effects.pulsate = function(a) {
		return this.queue(function() {
			var b = d(this),
				c = d.effects.setMode(b, a.options.mode || "show");
			times = (a.options.times || 5) * 2 - 1;
			duration = a.duration ? a.duration / 2 : d.fx.speeds._default / 2;
			isVisible = b.is(":visible");
			animateTo = 0;
			if (!isVisible) {
				b.css("opacity", 0).show();
				animateTo = 1
			}
			if (c == "hide" && isVisible || c == "show" && !isVisible) times--;
			for (c = 0; c < times; c++) {
				b.animate({
					opacity: animateTo
				},
				duration, a.options.easing);
				animateTo = (animateTo + 1) % 2
			}
			b.animate({
				opacity: animateTo
			},
			duration, a.options.easing, function() {
				animateTo == 0 && b.hide();
				a.callback && a.callback.apply(this, arguments)
			});
			b.queue("fx", function() {
				b.dequeue()
			}).dequeue()
		})
	}
})(jQuery);;
/*
 * jQuery UI Effects Scale 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Scale
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function(c) {
	c.effects.puff = function(b) {
		return this.queue(function() {
			var a = c(this),
				e = c.effects.setMode(a, b.options.mode || "hide"),
				g = parseInt(b.options.percent, 10) || 150,
				h = g / 100,
				i = {
				height: a.height(),
				width: a.width()
			};
			c.extend(b.options, {
				fade: true,
				mode: e,
				percent: e == "hide" ? g : 100,
				from: e == "hide" ? i : {
					height: i.height * h,
					width: i.width * h
				}
			});
			a.effect("scale", b.options, b.duration, b.callback);
			a.dequeue()
		})
	};
	c.effects.scale = function(b) {
		return this.queue(function() {
			var a = c(this),
				e = c.extend(true, {},
			b.options),
				g = c.effects.setMode(a, b.options.mode || "effect"),
				h = parseInt(b.options.percent, 10) || (parseInt(b.options.percent, 10) == 0 ? 0 : g == "hide" ? 0 : 100),
				i = b.options.direction || "both",
				f = b.options.origin;
			if (g != "effect") {
				e.origin = f || ["middle", "center"];
				e.restore = true
			}
			f = {
				height: a.height(),
				width: a.width()
			};
			a.from = b.options.from || (g == "show" ? {
				height: 0,
				width: 0
			} : f);
			h = {
				y: i != "horizontal" ? h / 100 : 1,
				x: i != "vertical" ? h / 100 : 1
			};
			a.to = {
				height: f.height * h.y,
				width: f.width * h.x
			};
			if (b.options.fade) {
				if (g == "show") {
					a.from.opacity = 0;
					a.to.opacity = 1
				}
				if (g == "hide") {
					a.from.opacity = 1;
					a.to.opacity = 0
				}
			}
			e.from = a.from;
			e.to = a.to;
			e.mode = g;
			a.effect("size", e, b.duration, b.callback);
			a.dequeue()
		})
	};
	c.effects.size = function(b) {
		return this.queue(function() {
			var a = c(this),
				e = ["position", "top", "left", "width", "height", "overflow", "opacity"],
				g = ["position", "top", "left", "overflow", "opacity"],
				h = ["width", "height", "overflow"],
				i = ["fontSize"],
				f = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"],
				k = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"],
				p = c.effects.setMode(a, b.options.mode || "effect"),
				n = b.options.restore || false,
				m = b.options.scale || "both",
				l = b.options.origin,
				j = {
				height: a.height(),
				width: a.width()
			};
			a.from = b.options.from || j;
			a.to = b.options.to || j;
			if (l) {
				l = c.effects.getBaseline(l, j);
				a.from.top = (j.height - a.from.height) * l.y;
				a.from.left = (j.width - a.from.width) * l.x;
				a.to.top = (j.height - a.to.height) * l.y;
				a.to.left = (j.width - a.to.width) * l.x
			}
			var d = {
				from: {
					y: a.from.height / j.height,
					x: a.from.width / j.width
				},
				to: {
					y: a.to.height / j.height,
					x: a.to.width / j.width
				}
			};
			if (m == "box" || m == "both") {
				if (d.from.y != d.to.y) {
					e = e.concat(f);
					a.from = c.effects.setTransition(a, f, d.from.y, a.from);
					a.to = c.effects.setTransition(a, f, d.to.y, a.to)
				}
				if (d.from.x != d.to.x) {
					e = e.concat(k);
					a.from = c.effects.setTransition(a, k, d.from.x, a.from);
					a.to = c.effects.setTransition(a, k, d.to.x, a.to)
				}
			}
			if (m == "content" || m == "both") if (d.from.y != d.to.y) {
				e = e.concat(i);
				a.from = c.effects.setTransition(a, i, d.from.y, a.from);
				a.to = c.effects.setTransition(a, i, d.to.y, a.to)
			}
			c.effects.save(a, n ? e : g);
			a.show();
			c.effects.createWrapper(a);
			a.css("overflow", "hidden").css(a.from);
			if (m == "content" || m == "both") {
				f = f.concat(["marginTop", "marginBottom"]).concat(i);
				k = k.concat(["marginLeft", "marginRight"]);
				h = e.concat(f).concat(k);
				a.find("*[width]").each(function() {
					child = c(this);
					n && c.effects.save(child, h);
					var o = {
						height: child.height(),
						width: child.width()
					};
					child.from = {
						height: o.height * d.from.y,
						width: o.width * d.from.x
					};
					child.to = {
						height: o.height * d.to.y,
						width: o.width * d.to.x
					};
					if (d.from.y != d.to.y) {
						child.from = c.effects.setTransition(child, f, d.from.y, child.from);
						child.to = c.effects.setTransition(child, f, d.to.y, child.to)
					}
					if (d.from.x != d.to.x) {
						child.from = c.effects.setTransition(child, k, d.from.x, child.from);
						child.to = c.effects.setTransition(child, k, d.to.x, child.to)
					}
					child.css(child.from);
					child.animate(child.to, b.duration, b.options.easing, function() {
						n && c.effects.restore(child, h)
					})
				})
			}
			a.animate(a.to, {
				queue: false,
				duration: b.duration,
				easing: b.options.easing,
				complete: function() {
					a.to.opacity === 0 && a.css("opacity", a.from.opacity);
					p == "hide" && a.hide();
					c.effects.restore(a, n ? e : g);
					c.effects.removeWrapper(a);
					b.callback && b.callback.apply(this, arguments);
					a.dequeue()
				}
			})
		})
	}
})(jQuery);;
/*
 * jQuery UI Effects Shake 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Shake
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function(d) {
	d.effects.shake = function(a) {
		return this.queue(function() {
			var b = d(this),
				j = ["position", "top", "left"];
			d.effects.setMode(b, a.options.mode || "effect");
			var c = a.options.direction || "left",
				e = a.options.distance || 20,
				l = a.options.times || 3,
				f = a.duration || a.options.duration || 140;
			d.effects.save(b, j);
			b.show();
			d.effects.createWrapper(b);
			var g = c == "up" || c == "down" ? "top" : "left",
			h = c == "up" || c == "left" ? "pos" : "neg";
			c = {};
			var i = {},
				k = {};
			c[g] = (h == "pos" ? "-=" : "+=") + e;
			i[g] = (h == "pos" ? "+=" : "-=") + e * 2;
			k[g] = (h == "pos" ? "-=" : "+=") + e * 2;
			b.animate(c, f, a.options.easing);
			for (e = 1; e < l; e++) b.animate(i, f, a.options.easing).animate(k, f, a.options.easing);
			b.animate(i, f, a.options.easing).animate(c, f / 2, a.options.easing, function() {
				d.effects.restore(b, j);
				d.effects.removeWrapper(b);
				a.callback && a.callback.apply(this, arguments)
			});
			b.queue("fx", function() {
				b.dequeue()
			});
			b.dequeue()
		})
	}
})(jQuery);;
/*
 * jQuery UI Effects Slide 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Slide
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function(c) {
	c.effects.slide = function(d) {
		return this.queue(function() {
			var a = c(this),
				h = ["position", "top", "left"],
				e = c.effects.setMode(a, d.options.mode || "show"),
				b = d.options.direction || "left";
			c.effects.save(a, h);
			a.show();
			c.effects.createWrapper(a).css({
				overflow: "hidden"
			});
			var f = b == "up" || b == "down" ? "top" : "left";
			b = b == "up" || b == "left" ? "pos" : "neg";
			var g = d.options.distance || (f == "top" ? a.outerHeight({
				margin: true
			}) : a.outerWidth({
				margin: true
			}));
			if (e == "show") a.css(f, b == "pos" ? -g : g);
			var i = {};
			i[f] = (e == "show" ? b == "pos" ? "+=" : "-=" : b == "pos" ? "-=" : "+=") + g;
			a.animate(i, {
				queue: false,
				duration: d.duration,
				easing: d.options.easing,
				complete: function() {
					e == "hide" && a.hide();
					c.effects.restore(a, h);
					c.effects.removeWrapper(a);
					d.callback && d.callback.apply(this, arguments);
					a.dequeue()
				}
			})
		})
	}
})(jQuery);;
/*
 * jQuery UI Effects Transfer 1.8.2
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Transfer
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function(e) {
	e.effects.transfer = function(a) {
		return this.queue(function() {
			var b = e(this),
				c = e(a.options.to),
				d = c.offset();
			c = {
				top: d.top,
				left: d.left,
				height: c.innerHeight(),
				width: c.innerWidth()
			};
			d = b.offset();
			var f = e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({
				top: d.top,
				left: d.left,
				height: b.innerHeight(),
				width: b.innerWidth(),
				position: "absolute"
			}).animate(c, a.duration, a.options.easing, function() {
				f.remove();
				a.callback && a.callback.apply(b[0], arguments);
				b.dequeue()
			})
		})
	}
})(jQuery);;

