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