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