/**
 * Apex Auctions Note:
 * 
 * !! See the Wiki for more information before editing or replacing this file !!
 * 
 * This file was originally downloaded from jQuery with ALL options checked.
 * 
 */

/*
 * jQuery UI 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI
 */
jQuery.ui
		|| (function(c) {
			var i = c.fn.remove, d = c.browser.mozilla
					&& (parseFloat(c.browser.version) < 1.9);
			c.ui = {
				version : "1.7.2",
				plugin : {
					add : function(k, l, n) {
						var m = c.ui[k].prototype;
						for ( var j in n) {
							m.plugins[j] = m.plugins[j] || [];
							m.plugins[j].push( [ l, n[j] ])
						}
					},
					call : function(j, l, k) {
						var n = j.plugins[l];
						if (!n || !j.element[0].parentNode) {
							return
						}
						for ( var m = 0; m < n.length; m++) {
							if (j.options[n[m][0]]) {
								n[m][1].apply(j.element, k)
							}
						}
					}
				},
				contains : function(k, j) {
					return document.compareDocumentPosition ? k
							.compareDocumentPosition(j) & 16 : k !== j
							&& k.contains(j)
				},
				hasScroll : function(m, k) {
					if (c(m).css("overflow") == "hidden") {
						return false
					}
					var j = (k && k == "left") ? "scrollLeft" : "scrollTop", l = false;
					if (m[j] > 0) {
						return true
					}
					m[j] = 1;
					l = (m[j] > 0);
					m[j] = 0;
					return l
				},
				isOverAxis : function(k, j, l) {
					return (k > j) && (k < (j + l))
				},
				isOver : function(o, k, n, m, j, l) {
					return c.ui.isOverAxis(o, n, j) && c.ui.isOverAxis(k, m, l)
				},
				keyCode : {
					BACKSPACE : 8,
					CAPS_LOCK : 20,
					COMMA : 188,
					CONTROL : 17,
					DELETE : 46,
					DOWN : 40,
					END : 35,
					ENTER : 13,
					ESCAPE : 27,
					HOME : 36,
					INSERT : 45,
					LEFT : 37,
					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
				}
			};
			if (d) {
				var f = c.attr, e = c.fn.removeAttr, h = "http://www.w3.org/2005/07/aaa", a = /^aria-/, b = /^wairole:/;
				c.attr = function(k, j, l) {
					var m = l !== undefined;
					return (j == "role" ? (m ? f.call(this, k, j, "wairole:"
							+ l) : (f.apply(this, arguments) || "").replace(b,
							"")) : (a.test(j) ? (m ? k.setAttributeNS(h, j
							.replace(a, "aaa:"), l) : f.call(this, k, j
							.replace(a, "aaa:"))) : f.apply(this, arguments)))
				};
				c.fn.removeAttr = function(j) {
					return (a.test(j) ? this.each(function() {
						this.removeAttributeNS(h, j.replace(a, ""))
					}) : e.call(this, j))
				}
			}
			c.fn
					.extend( {
						remove : function() {
							c("*", this).add(this).each(function() {
								c(this).triggerHandler("remove")
							});
							return i.apply(this, arguments)
						},
						enableSelection : function() {
							return this.attr("unselectable", "off").css(
									"MozUserSelect", "").unbind(
									"selectstart.ui")
						},
						disableSelection : function() {
							return this.attr("unselectable", "on").css(
									"MozUserSelect", "none").bind(
									"selectstart.ui", function() {
										return false
									})
						},
						scrollParent : function() {
							var j;
							if ((c.browser.msie && (/(static|relative)/)
									.test(this.css("position")))
									|| (/absolute/).test(this.css("position"))) {
								j = 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)
							} else {
								j = 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"))
									|| !j.length ? c(document) : j
						}
					});
			c.extend(c.expr[":"],
					{
						data : function(l, k, j) {
							return !!c.data(l, j[3])
						},
						focusable : function(k) {
							var l = k.nodeName.toLowerCase(), j = c.attr(k,
									"tabindex");
							return (/input|select|textarea|button|object/
									.test(l) ? !k.disabled : "a" == l
									|| "area" == l ? k.href || !isNaN(j)
									: !isNaN(j))
									&& !c(k)["area" == l ? "parents"
											: "closest"](":hidden").length
						},
						tabbable : function(k) {
							var j = c.attr(k, "tabindex");
							return (isNaN(j) || j >= 0)
									&& c(k).is(":focusable")
						}
					});
			function g(m, n, o, l) {
				function k(q) {
					var p = c[m][n][q] || [];
					return (typeof p == "string" ? p.split(/,?\s+/) : p)
				}
				var j = k("getter");
				if (l.length == 1 && typeof l[0] == "string") {
					j = j.concat(k("getterSetter"))
				}
				return (c.inArray(o, j) != -1)
			}
			c.widget = function(k, j) {
				var l = k.split(".")[0];
				k = k.split(".")[1];
				c.fn[k] = function(p) {
					var n = (typeof p == "string"), o = Array.prototype.slice
							.call(arguments, 1);
					if (n && p.substring(0, 1) == "_") {
						return this
					}
					if (n && g(l, k, p, o)) {
						var m = c.data(this[0], k);
						return (m ? m[p].apply(m, o) : undefined)
					}
					return this.each(function() {
						var q = c.data(this, k);
						(!q && !n && c.data(this, k, new c[l][k](this, p))
								._init());
						(q && n && c.isFunction(q[p]) && q[p].apply(q, o))
					})
				};
				c[l] = c[l] || {};
				c[l][k] = function(o, n) {
					var m = this;
					this.namespace = l;
					this.widgetName = k;
					this.widgetEventPrefix = c[l][k].eventPrefix || k;
					this.widgetBaseClass = l + "-" + k;
					this.options = c.extend( {}, c.widget.defaults,
							c[l][k].defaults, c.metadata
									&& c.metadata.get(o)[k], n);
					this.element = c(o).bind("setData." + k, function(q, p, r) {
						if (q.target == o) {
							return m._setData(p, r)
						}
					}).bind("getData." + k, function(q, p) {
						if (q.target == o) {
							return m._getData(p)
						}
					}).bind("remove", function() {
						return m.destroy()
					})
				};
				c[l][k].prototype = c.extend( {}, c.widget.prototype, j);
				c[l][k].getterSetter = "option"
			};
			c.widget.prototype = {
				_init : function() {
				},
				destroy : function() {
					this.element.removeData(this.widgetName).removeClass(
							this.widgetBaseClass + "-disabled "
									+ this.namespace + "-state-disabled")
							.removeAttr("aria-disabled")
				},
				option : function(l, m) {
					var k = l, j = this;
					if (typeof l == "string") {
						if (m === undefined) {
							return this._getData(l)
						}
						k = {};
						k[l] = m
					}
					c.each(k, function(n, o) {
						j._setData(n, o)
					})
				},
				_getData : function(j) {
					return this.options[j]
				},
				_setData : function(j, k) {
					this.options[j] = k;
					if (j == "disabled") {
						this.element[k ? "addClass" : "removeClass"](
								this.widgetBaseClass + "-disabled "
										+ this.namespace + "-state-disabled")
								.attr("aria-disabled", k)
					}
				},
				enable : function() {
					this._setData("disabled", false)
				},
				disable : function() {
					this._setData("disabled", true)
				},
				_trigger : function(l, m, n) {
					var p = this.options[l], j = (l == this.widgetEventPrefix ? l
							: this.widgetEventPrefix + l);
					m = c.Event(m);
					m.type = j;
					if (m.originalEvent) {
						for ( var k = c.event.props.length, o; k;) {
							o = c.event.props[--k];
							m[o] = m.originalEvent[o]
						}
					}
					this.element.trigger(m, n);
					return !(c.isFunction(p)
							&& p.call(this.element[0], m, n) === false || m
							.isDefaultPrevented())
				}
			};
			c.widget.defaults = {
				disabled : false
			};
			c.ui.mouse = {
				_mouseInit : function() {
					var j = this;
					this.element.bind("mousedown." + this.widgetName,
							function(k) {
								return j._mouseDown(k)
							}).bind("click." + this.widgetName, function(k) {
						if (j._preventClickEvent) {
							j._preventClickEvent = false;
							k.stopImmediatePropagation();
							return false
						}
					});
					if (c.browser.msie) {
						this._mouseUnselectable = this.element
								.attr("unselectable");
						this.element.attr("unselectable", "on")
					}
					this.started = false
				},
				_mouseDestroy : function() {
					this.element.unbind("." + this.widgetName);
					(c.browser.msie && this.element.attr("unselectable",
							this._mouseUnselectable))
				},
				_mouseDown : function(l) {
					l.originalEvent = l.originalEvent || {};
					if (l.originalEvent.mouseHandled) {
						return
					}
					(this._mouseStarted && this._mouseUp(l));
					this._mouseDownEvent = l;
					var k = this, m = (l.which == 1), j = (typeof this.options.cancel == "string" ? c(
							l.target).parents().add(l.target).filter(
							this.options.cancel).length
							: false);
					if (!m || j || !this._mouseCapture(l)) {
						return true
					}
					this.mouseDelayMet = !this.options.delay;
					if (!this.mouseDelayMet) {
						this._mouseDelayTimer = setTimeout(function() {
							k.mouseDelayMet = true
						}, this.options.delay)
					}
					if (this._mouseDistanceMet(l) && this._mouseDelayMet(l)) {
						this._mouseStarted = (this._mouseStart(l) !== false);
						if (!this._mouseStarted) {
							l.preventDefault();
							return true
						}
					}
					this._mouseMoveDelegate = function(n) {
						return k._mouseMove(n)
					};
					this._mouseUpDelegate = function(n) {
						return k._mouseUp(n)
					};
					c(document).bind("mousemove." + this.widgetName,
							this._mouseMoveDelegate)
							.bind("mouseup." + this.widgetName,
									this._mouseUpDelegate);
					(c.browser.safari || l.preventDefault());
					l.originalEvent.mouseHandled = true;
					return true
				},
				_mouseMove : function(j) {
					if (c.browser.msie && !j.button) {
						return this._mouseUp(j)
					}
					if (this._mouseStarted) {
						this._mouseDrag(j);
						return j.preventDefault()
					}
					if (this._mouseDistanceMet(j) && this._mouseDelayMet(j)) {
						this._mouseStarted = (this._mouseStart(
								this._mouseDownEvent, j) !== false);
						(this._mouseStarted ? this._mouseDrag(j) : this
								._mouseUp(j))
					}
					return !this._mouseStarted
				},
				_mouseUp : function(j) {
					c(document).unbind("mousemove." + this.widgetName,
							this._mouseMoveDelegate)
							.unbind("mouseup." + this.widgetName,
									this._mouseUpDelegate);
					if (this._mouseStarted) {
						this._mouseStarted = false;
						this._preventClickEvent = (j.target == this._mouseDownEvent.target);
						this._mouseStop(j)
					}
					return false
				},
				_mouseDistanceMet : function(j) {
					return (Math.max(Math.abs(this._mouseDownEvent.pageX
							- j.pageX), Math.abs(this._mouseDownEvent.pageY
							- j.pageY)) >= this.options.distance)
				},
				_mouseDelayMet : function(j) {
					return this.mouseDelayMet
				},
				_mouseStart : function(j) {
				},
				_mouseDrag : function(j) {
				},
				_mouseStop : function(j) {
				},
				_mouseCapture : function(j) {
					return true
				}
			};
			c.ui.mouse.defaults = {
				cancel : null,
				distance : 1,
				delay : 0
			}
		})(jQuery);;/*
					 * jQuery UI Draggable 1.7.2
					 * 
					 * Copyright (c) 2009 AUTHORS.txt
					 * (http://jqueryui.com/about) Dual licensed under the MIT
					 * (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
					 * 
					 * http://docs.jquery.com/UI/Draggables
					 * 
					 * Depends: ui.core.js
					 */
(function(a) {
	a
			.widget(
					"ui.draggable",
					a
							.extend(
									{},
									a.ui.mouse,
									{
										_init : 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")) {
												return
											}
											this.element
													.removeData("draggable")
													.unbind(".draggable")
													.removeClass(
															"ui-draggable ui-draggable-dragging ui-draggable-disabled");
											this._mouseDestroy()
										},
										_mouseCapture : function(b) {
											var c = this.options;
											if (this.helper
													|| c.disabled
													|| a(b.target)
															.is(
																	".ui-resizable-handle")) {
												return false
											}
											this.handle = this._getHandle(b);
											if (!this.handle) {
												return false
											}
											return true
										},
										_mouseStart : function(b) {
											var c = this.options;
											this.helper = this._createHelper(b);
											this._cacheHelperProportions();
											if (a.ui.ddmanager) {
												a.ui.ddmanager.current = this
											}
											this._cacheMargins();
											this.cssPosition = this.helper
													.css("position");
											this.scrollParent = this.helper
													.scrollParent();
											this.offset = this.element.offset();
											this.offset = {
												top : this.offset.top
														- this.margins.top,
												left : this.offset.left
														- this.margins.left
											};
											a.extend(this.offset, {
												click : {
													left : b.pageX
															- this.offset.left,
													top : b.pageY
															- this.offset.top
												},
												parent : this
														._getParentOffset(),
												relative : this
														._getRelativeOffset()
											});
											this.originalPosition = this
													._generatePosition(b);
											this.originalPageX = b.pageX;
											this.originalPageY = b.pageY;
											if (c.cursorAt) {
												this
														._adjustOffsetFromHelper(c.cursorAt)
											}
											if (c.containment) {
												this._setContainment()
											}
											this._trigger("start", b);
											this._cacheHelperProportions();
											if (a.ui.ddmanager
													&& !c.dropBehaviour) {
												a.ui.ddmanager.prepareOffsets(
														this, b)
											}
											this.helper
													.addClass("ui-draggable-dragging");
											this._mouseDrag(b, true);
											return true
										},
										_mouseDrag : function(b, d) {
											this.position = this
													._generatePosition(b);
											this.positionAbs = this
													._convertPositionTo("absolute");
											if (!d) {
												var c = this._uiHash();
												this._trigger("drag", b, c);
												this.position = c.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"
											}
											if (a.ui.ddmanager) {
												a.ui.ddmanager.drag(this, b)
											}
											return false
										},
										_mouseStop : function(c) {
											var d = false;
											if (a.ui.ddmanager
													&& !this.options.dropBehaviour) {
												d = a.ui.ddmanager
														.drop(this, c)
											}
											if (this.dropped) {
												d = this.dropped;
												this.dropped = false
											}
											if ((this.options.revert == "invalid" && !d)
													|| (this.options.revert == "valid" && d)
													|| this.options.revert === true
													|| (a
															.isFunction(this.options.revert) && this.options.revert
															.call(this.element,
																	d))) {
												var b = this;
												a(this.helper)
														.animate(
																this.originalPosition,
																parseInt(
																		this.options.revertDuration,
																		10),
																function() {
																	b
																			._trigger(
																					"stop",
																					c);
																	b._clear()
																})
											} else {
												this._trigger("stop", c);
												this._clear()
											}
											return false
										},
										_getHandle : function(b) {
											var c = !this.options.handle
													|| !a(this.options.handle,
															this.element).length ? true
													: false;
											a(this.options.handle, this.element)
													.find("*").andSelf()
													.each(function() {
														if (this == b.target) {
															c = true
														}
													});
											return c
										},
										_createHelper : function(c) {
											var d = this.options;
											var b = a.isFunction(d.helper) ? a(d.helper
													.apply(this.element[0],
															[ c ]))
													: (d.helper == "clone" ? this.element
															.clone()
															: this.element);
											if (!b.parents("body").length) {
												b
														.appendTo((d.appendTo == "parent" ? this.element[0].parentNode
																: d.appendTo))
											}
											if (b[0] != this.element[0]
													&& !(/(fixed|absolute)/)
															.test(b
																	.css("position"))) {
												b.css("position", "absolute")
											}
											return b
										},
										_adjustOffsetFromHelper : function(b) {
											if (b.left != undefined) {
												this.offset.click.left = b.left
														+ this.margins.left
											}
											if (b.right != undefined) {
												this.offset.click.left = this.helperProportions.width
														- b.right
														+ this.margins.left
											}
											if (b.top != undefined) {
												this.offset.click.top = b.top
														+ this.margins.top
											}
											if (b.bottom != undefined) {
												this.offset.click.top = this.helperProportions.height
														- b.bottom
														+ this.margins.top
											}
										},
										_getParentOffset : function() {
											this.offsetParent = this.helper
													.offsetParent();
											var b = this.offsetParent.offset();
											if (this.cssPosition == "absolute"
													&& this.scrollParent[0] != document
													&& a.ui
															.contains(
																	this.scrollParent[0],
																	this.offsetParent[0])) {
												b.left += this.scrollParent
														.scrollLeft();
												b.top += this.scrollParent
														.scrollTop()
											}
											if ((this.offsetParent[0] == document.body)
													|| (this.offsetParent[0].tagName
															&& this.offsetParent[0].tagName
																	.toLowerCase() == "html" && a.browser.msie)) {
												b = {
													top : 0,
													left : 0
												}
											}
											return {
												top : b.top
														+ (parseInt(
																this.offsetParent
																		.css("borderTopWidth"),
																10) || 0),
												left : b.left
														+ (parseInt(
																this.offsetParent
																		.css("borderLeftWidth"),
																10) || 0)
											}
										},
										_getRelativeOffset : function() {
											if (this.cssPosition == "relative") {
												var b = this.element.position();
												return {
													top : b.top
															- (parseInt(
																	this.helper
																			.css("top"),
																	10) || 0)
															+ this.scrollParent
																	.scrollTop(),
													left : b.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 e = this.options;
											if (e.containment == "parent") {
												e.containment = this.helper[0].parentNode
											}
											if (e.containment == "document"
													|| e.containment == "window") {
												this.containment = [
														0
																- this.offset.relative.left
																- this.offset.parent.left,
														0
																- this.offset.relative.top
																- this.offset.parent.top,
														a(
																e.containment == "document" ? document
																		: window)
																.width()
																- this.helperProportions.width
																- this.margins.left,
														(a(
																e.containment == "document" ? document
																		: window)
																.height() || document.body.parentNode.scrollHeight)
																- this.helperProportions.height
																- this.margins.top ]
											}
											if (!(/^(document|window|parent)$/)
													.test(e.containment)
													&& e.containment.constructor != Array) {
												var c = a(e.containment)[0];
												if (!c) {
													return
												}
												var d = a(e.containment)
														.offset();
												var b = (a(c).css("overflow") != "hidden");
												this.containment = [
														d.left
																+ (parseInt(
																		a(c)
																				.css(
																						"borderLeftWidth"),
																		10) || 0)
																+ (parseInt(
																		a(c)
																				.css(
																						"paddingLeft"),
																		10) || 0)
																- this.margins.left,
														d.top
																+ (parseInt(
																		a(c)
																				.css(
																						"borderTopWidth"),
																		10) || 0)
																+ (parseInt(
																		a(c)
																				.css(
																						"paddingTop"),
																		10) || 0)
																- this.margins.top,
														d.left
																+ (b ? Math
																		.max(
																				c.scrollWidth,
																				c.offsetWidth)
																		: c.offsetWidth)
																- (parseInt(
																		a(c)
																				.css(
																						"borderLeftWidth"),
																		10) || 0)
																- (parseInt(
																		a(c)
																				.css(
																						"paddingRight"),
																		10) || 0)
																- this.helperProportions.width
																- this.margins.left,
														d.top
																+ (b ? Math
																		.max(
																				c.scrollHeight,
																				c.offsetHeight)
																		: c.offsetHeight)
																- (parseInt(
																		a(c)
																				.css(
																						"borderTopWidth"),
																		10) || 0)
																- (parseInt(
																		a(c)
																				.css(
																						"paddingBottom"),
																		10) || 0)
																- this.helperProportions.height
																- this.margins.top ]
											} else {
												if (e.containment.constructor == Array) {
													this.containment = e.containment
												}
											}
										},
										_convertPositionTo : function(f, h) {
											if (!h) {
												h = this.position
											}
											var c = f == "absolute" ? 1 : -1;
											var e = this.options, b = this.cssPosition == "absolute"
													&& !(this.scrollParent[0] != document && a.ui
															.contains(
																	this.scrollParent[0],
																	this.offsetParent[0])) ? this.offsetParent
													: this.scrollParent, g = (/(html|body)/i)
													.test(b[0].tagName);
											return {
												top : (h.top
														+ this.offset.relative.top
														* c
														+ this.offset.parent.top
														* c - (a.browser.safari
														&& this.cssPosition == "fixed" ? 0
														: (this.cssPosition == "fixed" ? -this.scrollParent
																.scrollTop()
																: (g ? 0
																		: b
																				.scrollTop()))
																* c)),
												left : (h.left
														+ this.offset.relative.left
														* c
														+ this.offset.parent.left
														* c - (a.browser.safari
														&& this.cssPosition == "fixed" ? 0
														: (this.cssPosition == "fixed" ? -this.scrollParent
																.scrollLeft()
																: g ? 0
																		: b
																				.scrollLeft())
																* c))
											}
										},
										_generatePosition : function(e) {
											var h = this.options, b = this.cssPosition == "absolute"
													&& !(this.scrollParent[0] != document && a.ui
															.contains(
																	this.scrollParent[0],
																	this.offsetParent[0])) ? this.offsetParent
													: this.scrollParent, i = (/(html|body)/i)
													.test(b[0].tagName);
											if (this.cssPosition == "relative"
													&& !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) {
												this.offset.relative = this
														._getRelativeOffset()
											}
											var d = e.pageX;
											var c = e.pageY;
											if (this.originalPosition) {
												if (this.containment) {
													if (e.pageX
															- this.offset.click.left < this.containment[0]) {
														d = this.containment[0]
																+ this.offset.click.left
													}
													if (e.pageY
															- this.offset.click.top < this.containment[1]) {
														c = this.containment[1]
																+ this.offset.click.top
													}
													if (e.pageX
															- this.offset.click.left > this.containment[2]) {
														d = this.containment[2]
																+ this.offset.click.left
													}
													if (e.pageY
															- this.offset.click.top > this.containment[3]) {
														c = this.containment[3]
																+ this.offset.click.top
													}
												}
												if (h.grid) {
													var g = this.originalPageY
															+ Math
																	.round((c - this.originalPageY)
																			/ h.grid[1])
															* h.grid[1];
													c = 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
																	- h.grid[1]
																	: g
																			+ h.grid[1]))
															: g;
													var f = this.originalPageX
															+ Math
																	.round((d - this.originalPageX)
																			/ h.grid[0])
															* h.grid[0];
													d = 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
																	- h.grid[0]
																	: f
																			+ h.grid[0]))
															: f
												}
											}
											return {
												top : (c
														- this.offset.click.top
														- this.offset.relative.top
														- this.offset.parent.top + (a.browser.safari
														&& this.cssPosition == "fixed" ? 0
														: (this.cssPosition == "fixed" ? -this.scrollParent
																.scrollTop()
																: (i ? 0
																		: b
																				.scrollTop())))),
												left : (d
														- this.offset.click.left
														- this.offset.relative.left
														- this.offset.parent.left + (a.browser.safari
														&& this.cssPosition == "fixed" ? 0
														: (this.cssPosition == "fixed" ? -this.scrollParent
																.scrollLeft()
																: i ? 0
																		: b
																				.scrollLeft())))
											}
										},
										_clear : function() {
											this.helper
													.removeClass("ui-draggable-dragging");
											if (this.helper[0] != this.element[0]
													&& !this.cancelHelperRemoval) {
												this.helper.remove()
											}
											this.helper = null;
											this.cancelHelperRemoval = false
										},
										_trigger : function(b, c, d) {
											d = d || this._uiHash();
											a.ui.plugin.call(this, b, [ c, d ]);
											if (b == "drag") {
												this.positionAbs = this
														._convertPositionTo("absolute")
											}
											return a.widget.prototype._trigger
													.call(this, b, c, d)
										},
										plugins : {},
										_uiHash : function(b) {
											return {
												helper : this.helper,
												position : this.position,
												absolutePosition : this.positionAbs,
												offset : this.positionAbs
											}
										}
									}));
	a.extend(a.ui.draggable, {
		version : "1.7.2",
		eventPrefix : "drag",
		defaults : {
			addClasses : true,
			appendTo : "parent",
			axis : false,
			cancel : ":input,option",
			connectToSortable : false,
			containment : false,
			cursor : "auto",
			cursorAt : false,
			delay : 0,
			distance : 1,
			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
		}
	});
	a.ui.plugin
			.add(
					"draggable",
					"connectToSortable",
					{
						start : function(c, e) {
							var d = a(this).data("draggable"), f = d.options, b = a
									.extend( {}, e, {
										item : d.element
									});
							d.sortables = [];
							a(f.connectToSortable).each(function() {
								var g = a.data(this, "sortable");
								if (g && !g.options.disabled) {
									d.sortables.push( {
										instance : g,
										shouldRevert : g.options.revert
									});
									g._refreshItems();
									g._trigger("activate", c, b)
								}
							})
						},
						stop : function(c, e) {
							var d = a(this).data("draggable"), b = a.extend(
									{}, e, {
										item : d.element
									});
							a
									.each(
											d.sortables,
											function() {
												if (this.instance.isOver) {
													this.instance.isOver = 0;
													d.cancelHelperRemoval = true;
													this.instance.cancelHelperRemoval = false;
													if (this.shouldRevert) {
														this.instance.options.revert = true
													}
													this.instance._mouseStop(c);
													this.instance.options.helper = this.instance.options._helper;
													if (d.options.helper == "original") {
														this.instance.currentItem
																.css( {
																	top : "auto",
																	left : "auto"
																})
													}
												} else {
													this.instance.cancelHelperRemoval = false;
													this.instance._trigger(
															"deactivate", c, b)
												}
											})
						},
						drag : function(c, f) {
							var e = a(this).data("draggable"), b = this;
							var d = function(i) {
								var n = this.offset.click.top, m = this.offset.click.left;
								var g = this.positionAbs.top, k = this.positionAbs.left;
								var j = i.height, l = i.width;
								var p = i.top, h = i.left;
								return a.ui.isOver(g + n, k + m, p, h, j, l)
							};
							a
									.each(
											e.sortables,
											function(g) {
												this.instance.positionAbs = e.positionAbs;
												this.instance.helperProportions = e.helperProportions;
												this.instance.offset.click = e.offset.click;
												if (this.instance
														._intersectsWith(this.instance.containerCache)) {
													if (!this.instance.isOver) {
														this.instance.isOver = 1;
														this.instance.currentItem = a(
																b)
																.clone()
																.appendTo(
																		this.instance.element)
																.data(
																		"sortable-item",
																		true);
														this.instance.options._helper = this.instance.options.helper;
														this.instance.options.helper = function() {
															return f.helper[0]
														};
														c.target = this.instance.currentItem[0];
														this.instance
																._mouseCapture(
																		c, true);
														this.instance
																._mouseStart(c,
																		true,
																		true);
														this.instance.offset.click.top = e.offset.click.top;
														this.instance.offset.click.left = e.offset.click.left;
														this.instance.offset.parent.left -= e.offset.parent.left
																- this.instance.offset.parent.left;
														this.instance.offset.parent.top -= e.offset.parent.top
																- this.instance.offset.parent.top;
														e
																._trigger(
																		"toSortable",
																		c);
														e.dropped = this.instance.element;
														e.currentItem = e.element;
														this.instance.fromOutside = e
													}
													if (this.instance.currentItem) {
														this.instance
																._mouseDrag(c)
													}
												} else {
													if (this.instance.isOver) {
														this.instance.isOver = 0;
														this.instance.cancelHelperRemoval = true;
														this.instance.options.revert = false;
														this.instance
																._trigger(
																		"out",
																		c,
																		this.instance
																				._uiHash(this.instance));
														this.instance
																._mouseStop(c,
																		true);
														this.instance.options.helper = this.instance.options._helper;
														this.instance.currentItem
																.remove();
														if (this.instance.placeholder) {
															this.instance.placeholder
																	.remove()
														}
														e._trigger(
																"fromSortable",
																c);
														e.dropped = false
													}
												}
											})
						}
					});
	a.ui.plugin.add("draggable", "cursor", {
		start : function(c, d) {
			var b = a("body"), e = a(this).data("draggable").options;
			if (b.css("cursor")) {
				e._cursor = b.css("cursor")
			}
			b.css("cursor", e.cursor)
		},
		stop : function(b, c) {
			var d = a(this).data("draggable").options;
			if (d._cursor) {
				a("body").css("cursor", d._cursor)
			}
		}
	});
	a.ui.plugin
			.add(
					"draggable",
					"iframeFix",
					{
						start : function(b, c) {
							var d = a(this).data("draggable").options;
							a(d.iframeFix === true ? "iframe" : d.iframeFix)
									.each(
											function() {
												a(
														'<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
														.css(
																{
																	width : this.offsetWidth
																			+ "px",
																	height : this.offsetHeight
																			+ "px",
																	position : "absolute",
																	opacity : "0.001",
																	zIndex : 1000
																})
														.css(a(this).offset())
														.appendTo("body")
											})
						},
						stop : function(b, c) {
							a("div.ui-draggable-iframeFix").each(function() {
								this.parentNode.removeChild(this)
							})
						}
					});
	a.ui.plugin.add("draggable", "opacity", {
		start : function(c, d) {
			var b = a(d.helper), e = a(this).data("draggable").options;
			if (b.css("opacity")) {
				e._opacity = b.css("opacity")
			}
			b.css("opacity", e.opacity)
		},
		stop : function(b, c) {
			var d = a(this).data("draggable").options;
			if (d._opacity) {
				a(c.helper).css("opacity", d._opacity)
			}
		}
	});
	a.ui.plugin
			.add(
					"draggable",
					"scroll",
					{
						start : function(c, d) {
							var b = a(this).data("draggable");
							if (b.scrollParent[0] != document
									&& b.scrollParent[0].tagName != "HTML") {
								b.overflowOffset = b.scrollParent.offset()
							}
						},
						drag : function(d, e) {
							var c = a(this).data("draggable"), f = c.options, b = false;
							if (c.scrollParent[0] != document
									&& c.scrollParent[0].tagName != "HTML") {
								if (!f.axis || f.axis != "x") {
									if ((c.overflowOffset.top + c.scrollParent[0].offsetHeight)
											- d.pageY < f.scrollSensitivity) {
										c.scrollParent[0].scrollTop = b = c.scrollParent[0].scrollTop
												+ f.scrollSpeed
									} else {
										if (d.pageY - c.overflowOffset.top < f.scrollSensitivity) {
											c.scrollParent[0].scrollTop = b = c.scrollParent[0].scrollTop
													- f.scrollSpeed
										}
									}
								}
								if (!f.axis || f.axis != "y") {
									if ((c.overflowOffset.left + c.scrollParent[0].offsetWidth)
											- d.pageX < f.scrollSensitivity) {
										c.scrollParent[0].scrollLeft = b = c.scrollParent[0].scrollLeft
												+ f.scrollSpeed
									} else {
										if (d.pageX - c.overflowOffset.left < f.scrollSensitivity) {
											c.scrollParent[0].scrollLeft = b = c.scrollParent[0].scrollLeft
													- f.scrollSpeed
										}
									}
								}
							} else {
								if (!f.axis || f.axis != "x") {
									if (d.pageY - a(document).scrollTop() < f.scrollSensitivity) {
										b = a(document).scrollTop(
												a(document).scrollTop()
														- f.scrollSpeed)
									} else {
										if (a(window).height()
												- (d.pageY - a(document)
														.scrollTop()) < f.scrollSensitivity) {
											b = a(document).scrollTop(
													a(document).scrollTop()
															+ f.scrollSpeed)
										}
									}
								}
								if (!f.axis || f.axis != "y") {
									if (d.pageX - a(document).scrollLeft() < f.scrollSensitivity) {
										b = a(document).scrollLeft(
												a(document).scrollLeft()
														- f.scrollSpeed)
									} else {
										if (a(window).width()
												- (d.pageX - a(document)
														.scrollLeft()) < f.scrollSensitivity) {
											b = a(document).scrollLeft(
													a(document).scrollLeft()
															+ f.scrollSpeed)
										}
									}
								}
							}
							if (b !== false && a.ui.ddmanager
									&& !f.dropBehaviour) {
								a.ui.ddmanager.prepareOffsets(c, d)
							}
						}
					});
	a.ui.plugin
			.add(
					"draggable",
					"snap",
					{
						start : function(c, d) {
							var b = a(this).data("draggable"), e = b.options;
							b.snapElements = [];
							a(
									e.snap.constructor != String ? (e.snap.items || ":data(draggable)")
											: e.snap).each(function() {
								var g = a(this);
								var f = g.offset();
								if (this != b.element[0]) {
									b.snapElements.push( {
										item : this,
										width : g.outerWidth(),
										height : g.outerHeight(),
										top : f.top,
										left : f.left
									})
								}
							})
						},
						drag : function(u, p) {
							var g = a(this).data("draggable"), q = g.options;
							var y = q.snapTolerance;
							var x = p.offset.left, w = x
									+ g.helperProportions.width, f = p.offset.top, e = f
									+ g.helperProportions.height;
							for ( var v = g.snapElements.length - 1; v >= 0; v--) {
								var s = g.snapElements[v].left, n = s
										+ g.snapElements[v].width, m = g.snapElements[v].top, A = m
										+ g.snapElements[v].height;
								if (!((s - y < x && x < n + y && m - y < f && f < A
										+ y)
										|| (s - y < x && x < n + y && m - y < e && e < A
												+ y)
										|| (s - y < w && w < n + y && m - y < f && f < A
												+ y) || (s - y < w && w < n + y
										&& m - y < e && e < A + y))) {
									if (g.snapElements[v].snapping) {
										(g.options.snap.release && g.options.snap.release
												.call(
														g.element,
														u,
														a
																.extend(
																		g
																				._uiHash(),
																		{
																			snapItem : g.snapElements[v].item
																		})))
									}
									g.snapElements[v].snapping = false;
									continue
								}
								if (q.snapMode != "inner") {
									var c = Math.abs(m - e) <= y;
									var z = Math.abs(A - f) <= y;
									var j = Math.abs(s - w) <= y;
									var k = Math.abs(n - x) <= y;
									if (c) {
										p.position.top = g
												._convertPositionTo(
														"relative",
														{
															top : m
																	- g.helperProportions.height,
															left : 0
														}).top
												- g.margins.top
									}
									if (z) {
										p.position.top = g._convertPositionTo(
												"relative", {
													top : A,
													left : 0
												}).top
												- g.margins.top
									}
									if (j) {
										p.position.left = g
												._convertPositionTo(
														"relative",
														{
															top : 0,
															left : s
																	- g.helperProportions.width
														}).left
												- g.margins.left
									}
									if (k) {
										p.position.left = g._convertPositionTo(
												"relative", {
													top : 0,
													left : n
												}).left
												- g.margins.left
									}
								}
								var h = (c || z || j || k);
								if (q.snapMode != "outer") {
									var c = Math.abs(m - f) <= y;
									var z = Math.abs(A - e) <= y;
									var j = Math.abs(s - x) <= y;
									var k = Math.abs(n - w) <= y;
									if (c) {
										p.position.top = g._convertPositionTo(
												"relative", {
													top : m,
													left : 0
												}).top
												- g.margins.top
									}
									if (z) {
										p.position.top = g
												._convertPositionTo(
														"relative",
														{
															top : A
																	- g.helperProportions.height,
															left : 0
														}).top
												- g.margins.top
									}
									if (j) {
										p.position.left = g._convertPositionTo(
												"relative", {
													top : 0,
													left : s
												}).left
												- g.margins.left
									}
									if (k) {
										p.position.left = g
												._convertPositionTo(
														"relative",
														{
															top : 0,
															left : n
																	- g.helperProportions.width
														}).left
												- g.margins.left
									}
								}
								if (!g.snapElements[v].snapping
										&& (c || z || j || k || h)) {
									(g.options.snap.snap && g.options.snap.snap
											.call(
													g.element,
													u,
													a
															.extend(
																	g._uiHash(),
																	{
																		snapItem : g.snapElements[v].item
																	})))
								}
								g.snapElements[v].snapping = (c || z || j || k || h)
							}
						}
					});
	a.ui.plugin
			.add(
					"draggable",
					"stack",
					{
						start : function(b, c) {
							var e = a(this).data("draggable").options;
							var d = a
									.makeArray(a(e.stack.group))
									.sort(
											function(g, f) {
												return (parseInt(a(g).css(
														"zIndex"), 10) || e.stack.min)
														- (parseInt(a(f).css(
																"zIndex"), 10) || e.stack.min)
											});
							a(d).each(function(f) {
								this.style.zIndex = e.stack.min + f
							});
							this[0].style.zIndex = e.stack.min + d.length
						}
					});
	a.ui.plugin.add("draggable", "zIndex", {
		start : function(c, d) {
			var b = a(d.helper), e = a(this).data("draggable").options;
			if (b.css("zIndex")) {
				e._zIndex = b.css("zIndex")
			}
			b.css("zIndex", e.zIndex)
		},
		stop : function(b, c) {
			var d = a(this).data("draggable").options;
			if (d._zIndex) {
				a(c.helper).css("zIndex", d._zIndex)
			}
		}
	})
})(jQuery);;/*
			 * jQuery UI Droppable 1.7.2
			 * 
			 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) Dual
			 * licensed under the MIT (MIT-LICENSE.txt) and GPL
			 * (GPL-LICENSE.txt) licenses.
			 * 
			 * http://docs.jquery.com/UI/Droppables
			 * 
			 * Depends: ui.core.js ui.draggable.js
			 */
(function(a) {
	a
			.widget(
					"ui.droppable",
					{
						_init : function() {
							var c = this.options, b = c.accept;
							this.isover = 0;
							this.isout = 1;
							this.options.accept = this.options.accept
									&& a.isFunction(this.options.accept) ? this.options.accept
									: function(e) {
										return e.is(b)
									};
							this.proportions = {
								width : this.element[0].offsetWidth,
								height : this.element[0].offsetHeight
							};
							a.ui.ddmanager.droppables[this.options.scope] = a.ui.ddmanager.droppables[this.options.scope]
									|| [];
							a.ui.ddmanager.droppables[this.options.scope]
									.push(this);
							(this.options.addClasses && this.element
									.addClass("ui-droppable"))
						},
						destroy : function() {
							var b = a.ui.ddmanager.droppables[this.options.scope];
							for ( var c = 0; c < b.length; c++) {
								if (b[c] == this) {
									b.splice(c, 1)
								}
							}
							this.element.removeClass(
									"ui-droppable ui-droppable-disabled")
									.removeData("droppable").unbind(
											".droppable")
						},
						_setData : function(b, c) {
							if (b == "accept") {
								this.options.accept = c && a.isFunction(c) ? c
										: function(e) {
											return e.is(c)
										}
							} else {
								a.widget.prototype._setData.apply(this,
										arguments)
							}
						},
						_activate : function(c) {
							var b = a.ui.ddmanager.current;
							if (this.options.activeClass) {
								this.element.addClass(this.options.activeClass)
							}
							(b && this._trigger("activate", c, this.ui(b)))
						},
						_deactivate : function(c) {
							var b = a.ui.ddmanager.current;
							if (this.options.activeClass) {
								this.element
										.removeClass(this.options.activeClass)
							}
							(b && this._trigger("deactivate", c, this.ui(b)))
						},
						_over : function(c) {
							var b = a.ui.ddmanager.current;
							if (!b
									|| (b.currentItem || b.element)[0] == this.element[0]) {
								return
							}
							if (this.options.accept.call(this.element[0],
									(b.currentItem || b.element))) {
								if (this.options.hoverClass) {
									this.element
											.addClass(this.options.hoverClass)
								}
								this._trigger("over", c, this.ui(b))
							}
						},
						_out : function(c) {
							var b = a.ui.ddmanager.current;
							if (!b
									|| (b.currentItem || b.element)[0] == this.element[0]) {
								return
							}
							if (this.options.accept.call(this.element[0],
									(b.currentItem || b.element))) {
								if (this.options.hoverClass) {
									this.element
											.removeClass(this.options.hoverClass)
								}
								this._trigger("out", c, this.ui(b))
							}
						},
						_drop : function(c, d) {
							var b = d || a.ui.ddmanager.current;
							if (!b
									|| (b.currentItem || b.element)[0] == this.element[0]) {
								return false
							}
							var e = false;
							this.element
									.find(":data(droppable)")
									.not(".ui-draggable-dragging")
									.each(
											function() {
												var f = a.data(this,
														"droppable");
												if (f.options.greedy
														&& a.ui
																.intersect(
																		b,
																		a
																				.extend(
																						f,
																						{
																							offset : f.element
																									.offset()
																						}),
																		f.options.tolerance)) {
													e = true;
													return false
												}
											});
							if (e) {
								return false
							}
							if (this.options.accept.call(this.element[0],
									(b.currentItem || b.element))) {
								if (this.options.activeClass) {
									this.element
											.removeClass(this.options.activeClass)
								}
								if (this.options.hoverClass) {
									this.element
											.removeClass(this.options.hoverClass)
								}
								this._trigger("drop", c, this.ui(b));
								return this.element
							}
							return false
						},
						ui : function(b) {
							return {
								draggable : (b.currentItem || b.element),
								helper : b.helper,
								position : b.position,
								absolutePosition : b.positionAbs,
								offset : b.positionAbs
							}
						}
					});
	a.extend(a.ui.droppable, {
		version : "1.7.2",
		eventPrefix : "drop",
		defaults : {
			accept : "*",
			activeClass : false,
			addClasses : true,
			greedy : false,
			hoverClass : false,
			scope : "default",
			tolerance : "intersect"
		}
	});
	a.ui.intersect = function(q, j, o) {
		if (!j.offset) {
			return false
		}
		var e = (q.positionAbs || q.position.absolute).left, d = e
				+ q.helperProportions.width, n = (q.positionAbs || q.position.absolute).top, m = n
				+ q.helperProportions.height;
		var g = j.offset.left, c = g + j.proportions.width, p = j.offset.top, k = p
				+ j.proportions.height;
		switch (o) {
		case "fit":
			return (g < e && d < c && p < n && m < k);
			break;
		case "intersect":
			return (g < e + (q.helperProportions.width / 2)
					&& d - (q.helperProportions.width / 2) < c
					&& p < n + (q.helperProportions.height / 2) && m
					- (q.helperProportions.height / 2) < k);
			break;
		case "pointer":
			var h = ((q.positionAbs || q.position.absolute).left + (q.clickOffset || q.offset.click).left), i = ((q.positionAbs || q.position.absolute).top + (q.clickOffset || q.offset.click).top), f = a.ui
					.isOver(i, h, p, g, j.proportions.height,
							j.proportions.width);
			return f;
			break;
		case "touch":
			return ((n >= p && n <= k) || (m >= p && m <= k) || (n < p && m > k))
					&& ((e >= g && e <= c) || (d >= g && d <= c) || (e < g && d > c));
			break;
		default:
			return false;
			break
		}
	};
	a.ui.ddmanager = {
		current : null,
		droppables : {
			"default" : []
		},
		prepareOffsets : function(e, g) {
			var b = a.ui.ddmanager.droppables[e.options.scope];
			var f = g ? g.type : null;
			var h = (e.currentItem || e.element).find(":data(droppable)")
					.andSelf();
			droppablesLoop: for ( var d = 0; d < b.length; d++) {
				if (b[d].options.disabled
						|| (e && !b[d].options.accept.call(b[d].element[0],
								(e.currentItem || e.element)))) {
					continue
				}
				for ( var c = 0; c < h.length; c++) {
					if (h[c] == b[d].element[0]) {
						b[d].proportions.height = 0;
						continue droppablesLoop
					}
				}
				b[d].visible = b[d].element.css("display") != "none";
				if (!b[d].visible) {
					continue
				}
				b[d].offset = b[d].element.offset();
				b[d].proportions = {
					width : b[d].element[0].offsetWidth,
					height : b[d].element[0].offsetHeight
				};
				if (f == "mousedown") {
					b[d]._activate.call(b[d], g)
				}
			}
		},
		drop : function(b, c) {
			var d = false;
			a.each(a.ui.ddmanager.droppables[b.options.scope], function() {
				if (!this.options) {
					return
				}
				if (!this.options.disabled && this.visible
						&& a.ui.intersect(b, this, this.options.tolerance)) {
					d = this._drop.call(this, c)
				}
				if (!this.options.disabled
						&& this.visible
						&& this.options.accept.call(this.element[0],
								(b.currentItem || b.element))) {
					this.isout = 1;
					this.isover = 0;
					this._deactivate.call(this, c)
				}
			});
			return d
		},
		drag : function(b, c) {
			if (b.options.refreshPositions) {
				a.ui.ddmanager.prepareOffsets(b, c)
			}
			a
					.each(a.ui.ddmanager.droppables[b.options.scope],
							function() {
								if (this.options.disabled || this.greedyChild
										|| !this.visible) {
									return
								}
								var e = a.ui.intersect(b, this,
										this.options.tolerance);
								var g = !e && this.isover == 1 ? "isout" : (e
										&& this.isover == 0 ? "isover" : null);
								if (!g) {
									return
								}
								var f;
								if (this.options.greedy) {
									var d = this.element
											.parents(":data(droppable):eq(0)");
									if (d.length) {
										f = a.data(d[0], "droppable");
										f.greedyChild = (g == "isover" ? 1 : 0)
									}
								}
								if (f && g == "isover") {
									f.isover = 0;
									f.isout = 1;
									f._out.call(f, c)
								}
								this[g] = 1;
								this[g == "isout" ? "isover" : "isout"] = 0;
								this[g == "isover" ? "_over" : "_out"].call(
										this, c);
								if (f && g == "isout") {
									f.isout = 0;
									f.isover = 1;
									f._over.call(f, c)
								}
							})
		}
	}
})(jQuery);;/*
			 * jQuery UI Resizable 1.7.2
			 * 
			 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) Dual
			 * licensed under the MIT (MIT-LICENSE.txt) and GPL
			 * (GPL-LICENSE.txt) licenses.
			 * 
			 * http://docs.jquery.com/UI/Resizables
			 * 
			 * Depends: ui.core.js
			 */
(function(c) {
	c
			.widget(
					"ui.resizable",
					c
							.extend(
									{},
									c.ui.mouse,
									{
										_init : function() {
											var e = this, j = this.options;
											this.element
													.addClass("ui-resizable");
											c
													.extend(
															this,
															{
																_aspectRatio : !!(j.aspectRatio),
																aspectRatio : j.aspectRatio,
																originalElement : this.element,
																_proportionallyResizeElements : [],
																_helper : j.helper
																		|| j.ghost
																		|| j.animate ? j.helper
																		|| "ui-resizable-helper"
																		: null
															});
											if (this.element[0].nodeName
													.match(/canvas|textarea|input|select|button|img/i)) {
												if (/relative/
														.test(this.element
																.css("position"))
														&& c.browser.opera) {
													this.element.css( {
														position : "relative",
														top : "auto",
														left : "auto"
													})
												}
												this.element
														.wrap(c(
																'<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 = j.handles
													|| (!c(
															".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 k = this.handles.split(",");
												this.handles = {};
												for ( var f = 0; f < k.length; f++) {
													var h = c.trim(k[f]), d = "ui-resizable-"
															+ h;
													var g = c('<div class="ui-resizable-handle ' + d + '"></div>');
													if (/sw|se|ne|nw/.test(h)) {
														g.css( {
															zIndex : ++j.zIndex
														})
													}
													if ("se" == h) {
														g
																.addClass("ui-icon ui-icon-gripsmall-diagonal-se")
													}
													this.handles[h] = ".ui-resizable-"
															+ h;
													this.element.append(g)
												}
											}
											this._renderAxis = function(p) {
												p = p || this.element;
												for ( var m in this.handles) {
													if (this.handles[m].constructor == String) {
														this.handles[m] = c(
																this.handles[m],
																this.element)
																.show()
													}
													if (this.elementIsWrapper
															&& this.originalElement[0].nodeName
																	.match(/textarea|input|select|button/i)) {
														var n = c(
																this.handles[m],
																this.element), o = 0;
														o = /sw|ne|nw|se|n|s/
																.test(m) ? n
																.outerHeight()
																: n
																		.outerWidth();
														var l = [
																"padding",
																/ne|nw|n/
																		.test(m) ? "Top"
																		: /se|sw|s/
																				.test(m) ? "Bottom"
																				: /^e$/
																						.test(m) ? "Right"
																						: "Left" ]
																.join("");
														p.css(l, o);
														this
																._proportionallyResize()
													}
													if (!c(this.handles[m]).length) {
														continue
													}
												}
											};
											this._renderAxis(this.element);
											this._handles = c(
													".ui-resizable-handle",
													this.element)
													.disableSelection();
											this._handles
													.mouseover(function() {
														if (!e.resizing) {
															if (this.className) {
																var i = this.className
																		.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)
															}
															e.axis = i && i[1] ? i[1]
																	: "se"
														}
													});
											if (j.autoHide) {
												this._handles.hide();
												c(this.element)
														.addClass(
																"ui-resizable-autohide")
														.hover(
																function() {
																	c(this)
																			.removeClass(
																					"ui-resizable-autohide");
																	e._handles
																			.show()
																},
																function() {
																	if (!e.resizing) {
																		c(this)
																				.addClass(
																						"ui-resizable-autohide");
																		e._handles
																				.hide()
																	}
																})
											}
											this._mouseInit()
										},
										destroy : function() {
											this._mouseDestroy();
											var d = function(f) {
												c(f)
														.removeClass(
																"ui-resizable ui-resizable-disabled ui-resizable-resizing")
														.removeData("resizable")
														.unbind(".resizable")
														.find(
																".ui-resizable-handle")
														.remove()
											};
											if (this.elementIsWrapper) {
												d(this.element);
												var e = this.element;
												e
														.parent()
														.append(
																this.originalElement
																		.css( {
																			position : e
																					.css("position"),
																			width : e
																					.outerWidth(),
																			height : e
																					.outerHeight(),
																			top : e
																					.css("top"),
																			left : e
																					.css("left")
																		}))
														.end().remove()
											}
											this.originalElement.css("resize",
													this.originalResizeStyle);
											d(this.originalElement)
										},
										_mouseCapture : function(e) {
											var f = false;
											for ( var d in this.handles) {
												if (c(this.handles[d])[0] == e.target) {
													f = true
												}
											}
											return this.options.disabled || !!f
										},
										_mouseStart : function(f) {
											var i = this.options, e = this.element
													.position(), d = this.element;
											this.resizing = true;
											this.documentScroll = {
												top : c(document).scrollTop(),
												left : c(document).scrollLeft()
											};
											if (d.is(".ui-draggable")
													|| (/absolute/).test(d
															.css("position"))) {
												d.css( {
													position : "absolute",
													top : e.top,
													left : e.left
												})
											}
											if (c.browser.opera
													&& (/relative/).test(d
															.css("position"))) {
												d.css( {
													position : "relative",
													top : "auto",
													left : "auto"
												})
											}
											this._renderProxy();
											var j = b(this.helper.css("left")), g = b(this.helper
													.css("top"));
											if (i.containment) {
												j += c(i.containment)
														.scrollLeft() || 0;
												g += c(i.containment)
														.scrollTop() || 0
											}
											this.offset = this.helper.offset();
											this.position = {
												left : j,
												top : g
											};
											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 : j,
												top : g
											};
											this.sizeDiff = {
												width : d.outerWidth()
														- d.width(),
												height : d.outerHeight()
														- d.height()
											};
											this.originalMousePosition = {
												left : f.pageX,
												top : f.pageY
											};
											this.aspectRatio = (typeof i.aspectRatio == "number") ? i.aspectRatio
													: ((this.originalSize.width / this.originalSize.height) || 1);
											var h = c(
													".ui-resizable-"
															+ this.axis).css(
													"cursor");
											c("body").css(
													"cursor",
													h == "auto" ? this.axis
															+ "-resize" : h);
											d.addClass("ui-resizable-resizing");
											this._propagate("start", f);
											return true
										},
										_mouseDrag : function(d) {
											var g = this.helper, f = this.options, l = {}, p = this, i = this.originalMousePosition, m = this.axis;
											var q = (d.pageX - i.left) || 0, n = (d.pageY - i.top) || 0;
											var h = this._change[m];
											if (!h) {
												return false
											}
											var k = h.apply(this, [ d, q, n ]), j = c.browser.msie
													&& c.browser.version < 7, e = this.sizeDiff;
											if (this._aspectRatio || d.shiftKey) {
												k = this._updateRatio(k, d)
											}
											k = this._respectSize(k, d);
											this._propagate("resize", d);
											g.css( {
												top : this.position.top + "px",
												left : this.position.left
														+ "px",
												width : this.size.width + "px",
												height : this.size.height
														+ "px"
											});
											if (!this._helper
													&& this._proportionallyResizeElements.length) {
												this._proportionallyResize()
											}
											this._updateCache(k);
											this._trigger("resize", d, this
													.ui());
											return false
										},
										_mouseStop : function(g) {
											this.resizing = false;
											var h = this.options, l = this;
											if (this._helper) {
												var f = this._proportionallyResizeElements, d = f.length
														&& (/textarea/i)
																.test(f[0].nodeName), e = d
														&& c.ui.hasScroll(f[0],
																"left") ? 0
														: l.sizeDiff.height, j = d ? 0
														: l.sizeDiff.width;
												var m = {
													width : (l.size.width - j),
													height : (l.size.height - e)
												}, i = (parseInt(l.element
														.css("left"), 10) + (l.position.left - l.originalPosition.left))
														|| null, k = (parseInt(
														l.element.css("top"),
														10) + (l.position.top - l.originalPosition.top))
														|| null;
												if (!h.animate) {
													this.element.css(c.extend(
															m, {
																top : k,
																left : i
															}))
												}
												l.helper.height(l.size.height);
												l.helper.width(l.size.width);
												if (this._helper && !h.animate) {
													this
															._proportionallyResize()
												}
											}
											c("body").css("cursor", "auto");
											this.element
													.removeClass("ui-resizable-resizing");
											this._propagate("stop", g);
											if (this._helper) {
												this.helper.remove()
											}
											return false
										},
										_updateCache : function(d) {
											var e = this.options;
											this.offset = this.helper.offset();
											if (a(d.left)) {
												this.position.left = d.left
											}
											if (a(d.top)) {
												this.position.top = d.top
											}
											if (a(d.height)) {
												this.size.height = d.height
											}
											if (a(d.width)) {
												this.size.width = d.width
											}
										},
										_updateRatio : function(g, f) {
											var h = this.options, i = this.position, e = this.size, d = this.axis;
											if (g.height) {
												g.width = (e.height * this.aspectRatio)
											} else {
												if (g.width) {
													g.height = (e.width / this.aspectRatio)
												}
											}
											if (d == "sw") {
												g.left = i.left
														+ (e.width - g.width);
												g.top = null
											}
											if (d == "nw") {
												g.top = i.top
														+ (e.height - g.height);
												g.left = i.left
														+ (e.width - g.width)
											}
											return g
										},
										_respectSize : function(k, f) {
											var i = this.helper, h = this.options, q = this._aspectRatio
													|| f.shiftKey, p = this.axis, s = a(k.width)
													&& h.maxWidth
													&& (h.maxWidth < k.width), l = a(k.height)
													&& h.maxHeight
													&& (h.maxHeight < k.height), g = a(k.width)
													&& h.minWidth
													&& (h.minWidth > k.width), r = a(k.height)
													&& h.minHeight
													&& (h.minHeight > k.height);
											if (g) {
												k.width = h.minWidth
											}
											if (r) {
												k.height = h.minHeight
											}
											if (s) {
												k.width = h.maxWidth
											}
											if (l) {
												k.height = h.maxHeight
											}
											var e = this.originalPosition.left
													+ this.originalSize.width, n = this.position.top
													+ this.size.height;
											var j = /sw|nw|w/.test(p), d = /nw|ne|n/
													.test(p);
											if (g && j) {
												k.left = e - h.minWidth
											}
											if (s && j) {
												k.left = e - h.maxWidth
											}
											if (r && d) {
												k.top = n - h.minHeight
											}
											if (l && d) {
												k.top = n - h.maxHeight
											}
											var m = !k.width && !k.height;
											if (m && !k.left && k.top) {
												k.top = null
											} else {
												if (m && !k.top && k.left) {
													k.left = null
												}
											}
											return k
										},
										_proportionallyResize : function() {
											var j = this.options;
											if (!this._proportionallyResizeElements.length) {
												return
											}
											var f = this.helper || this.element;
											for ( var e = 0; e < this._proportionallyResizeElements.length; e++) {
												var g = this._proportionallyResizeElements[e];
												if (!this.borderDif) {
													var d = [
															g
																	.css("borderTopWidth"),
															g
																	.css("borderRightWidth"),
															g
																	.css("borderBottomWidth"),
															g
																	.css("borderLeftWidth") ], h = [
															g.css("paddingTop"),
															g
																	.css("paddingRight"),
															g
																	.css("paddingBottom"),
															g
																	.css("paddingLeft") ];
													this.borderDif = c
															.map(
																	d,
																	function(k,
																			m) {
																		var l = parseInt(
																				k,
																				10) || 0, n = parseInt(
																				h[m],
																				10) || 0;
																		return l
																				+ n
																	})
												}
												if (c.browser.msie
														&& !(!(c(f).is(
																":hidden") || c(
																f).parents(
																":hidden").length))) {
													continue
												}
												g
														.css( {
															height : (f
																	.height()
																	- this.borderDif[0] - this.borderDif[2]) || 0,
															width : (f.width()
																	- this.borderDif[1] - this.borderDif[3]) || 0
														})
											}
										},
										_renderProxy : function() {
											var e = this.element, h = this.options;
											this.elementOffset = e.offset();
											if (this._helper) {
												this.helper = this.helper
														|| c('<div style="overflow:hidden;"></div>');
												var d = c.browser.msie
														&& c.browser.version < 7, f = (d ? 1
														: 0), g = (d ? 2 : -1);
												this.helper
														.addClass(this._helper)
														.css(
																{
																	width : this.element
																			.outerWidth()
																			+ g,
																	height : this.element
																			.outerHeight()
																			+ g,
																	position : "absolute",
																	left : this.elementOffset.left
																			- f
																			+ "px",
																	top : this.elementOffset.top
																			- f
																			+ "px",
																	zIndex : ++h.zIndex
																});
												this.helper.appendTo("body")
														.disableSelection()
											} else {
												this.helper = this.element
											}
										},
										_change : {
											e : function(f, e, d) {
												return {
													width : this.originalSize.width
															+ e
												}
											},
											w : function(g, e, d) {
												var i = this.options, f = this.originalSize, h = this.originalPosition;
												return {
													left : h.left + e,
													width : f.width - e
												}
											},
											n : function(g, e, d) {
												var i = this.options, f = this.originalSize, h = this.originalPosition;
												return {
													top : h.top + d,
													height : f.height - d
												}
											},
											s : function(f, e, d) {
												return {
													height : this.originalSize.height
															+ d
												}
											},
											se : function(f, e, d) {
												return c
														.extend(
																this._change.s
																		.apply(
																				this,
																				arguments),
																this._change.e
																		.apply(
																				this,
																				[
																						f,
																						e,
																						d ]))
											},
											sw : function(f, e, d) {
												return c
														.extend(
																this._change.s
																		.apply(
																				this,
																				arguments),
																this._change.w
																		.apply(
																				this,
																				[
																						f,
																						e,
																						d ]))
											},
											ne : function(f, e, d) {
												return c
														.extend(
																this._change.n
																		.apply(
																				this,
																				arguments),
																this._change.e
																		.apply(
																				this,
																				[
																						f,
																						e,
																						d ]))
											},
											nw : function(f, e, d) {
												return c
														.extend(
																this._change.n
																		.apply(
																				this,
																				arguments),
																this._change.w
																		.apply(
																				this,
																				[
																						f,
																						e,
																						d ]))
											}
										},
										_propagate : function(e, d) {
											c.ui.plugin.call(this, e, [ d,
													this.ui() ]);
											(e != "resize" && this._trigger(e,
													d, 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
											}
										}
									}));
	c.extend(c.ui.resizable, {
		version : "1.7.2",
		eventPrefix : "resize",
		defaults : {
			alsoResize : false,
			animate : false,
			animateDuration : "slow",
			animateEasing : "swing",
			aspectRatio : false,
			autoHide : false,
			cancel : ":input,option",
			containment : false,
			delay : 0,
			distance : 1,
			ghost : false,
			grid : false,
			handles : "e,s,se",
			helper : false,
			maxHeight : null,
			maxWidth : null,
			minHeight : 10,
			minWidth : 10,
			zIndex : 1000
		}
	});
	c.ui.plugin
			.add(
					"resizable",
					"alsoResize",
					{
						start : function(e, f) {
							var d = c(this).data("resizable"), g = d.options;
							_store = function(h) {
								c(h)
										.each(
												function() {
													c(this)
															.data(
																	"resizable-alsoresize",
																	{
																		width : parseInt(
																				c(
																						this)
																						.width(),
																				10),
																		height : parseInt(
																				c(
																						this)
																						.height(),
																				10),
																		left : parseInt(
																				c(
																						this)
																						.css(
																								"left"),
																				10),
																		top : parseInt(
																				c(
																						this)
																						.css(
																								"top"),
																				10)
																	})
												})
							};
							if (typeof (g.alsoResize) == "object"
									&& !g.alsoResize.parentNode) {
								if (g.alsoResize.length) {
									g.alsoResize = g.alsoResize[0];
									_store(g.alsoResize)
								} else {
									c.each(g.alsoResize, function(h, i) {
										_store(h)
									})
								}
							} else {
								_store(g.alsoResize)
							}
						},
						resize : function(f, h) {
							var e = c(this).data("resizable"), i = e.options, g = e.originalSize, k = e.originalPosition;
							var j = {
								height : (e.size.height - g.height) || 0,
								width : (e.size.width - g.width) || 0,
								top : (e.position.top - k.top) || 0,
								left : (e.position.left - k.left) || 0
							}, d = function(l, m) {
								c(l)
										.each(
												function() {
													var p = c(this), q = c(this)
															.data(
																	"resizable-alsoresize"), o = {}, n = m
															&& m.length ? m : [
															"width", "height",
															"top", "left" ];
													c
															.each(
																	n
																			|| [
																					"width",
																					"height",
																					"top",
																					"left" ],
																	function(r,
																			t) {
																		var s = (q[t] || 0)
																				+ (j[t] || 0);
																		if (s
																				&& s >= 0) {
																			o[t] = s
																					|| null
																		}
																	});
													if (/relative/.test(p
															.css("position"))
															&& c.browser.opera) {
														e._revertToRelativePosition = true;
														p
																.css( {
																	position : "absolute",
																	top : "auto",
																	left : "auto"
																})
													}
													p.css(o)
												})
							};
							if (typeof (i.alsoResize) == "object"
									&& !i.alsoResize.nodeType) {
								c.each(i.alsoResize, function(l, m) {
									d(l, m)
								})
							} else {
								d(i.alsoResize)
							}
						},
						stop : function(e, f) {
							var d = c(this).data("resizable");
							if (d._revertToRelativePosition && c.browser.opera) {
								d._revertToRelativePosition = false;
								el.css( {
									position : "relative"
								})
							}
							c(this).removeData("resizable-alsoresize-start")
						}
					});
	c.ui.plugin
			.add(
					"resizable",
					"animate",
					{
						stop : function(h, m) {
							var n = c(this).data("resizable"), i = n.options;
							var g = n._proportionallyResizeElements, d = g.length
									&& (/textarea/i).test(g[0].nodeName), e = d
									&& c.ui.hasScroll(g[0], "left") ? 0
									: n.sizeDiff.height, k = d ? 0
									: n.sizeDiff.width;
							var f = {
								width : (n.size.width - k),
								height : (n.size.height - e)
							}, j = (parseInt(n.element.css("left"), 10) + (n.position.left - n.originalPosition.left))
									|| null, l = (parseInt(
									n.element.css("top"), 10) + (n.position.top - n.originalPosition.top))
									|| null;
							n.element.animate(c.extend(f, l && j ? {
								top : l,
								left : j
							} : {}),
									{
										duration : i.animateDuration,
										easing : i.animateEasing,
										step : function() {
											var o = {
												width : parseInt(n.element
														.css("width"), 10),
												height : parseInt(n.element
														.css("height"), 10),
												top : parseInt(n.element
														.css("top"), 10),
												left : parseInt(n.element
														.css("left"), 10)
											};
											if (g && g.length) {
												c(g[0]).css( {
													width : o.width,
													height : o.height
												})
											}
											n._updateCache(o);
											n._propagate("resize", h)
										}
									})
						}
					});
	c.ui.plugin
			.add(
					"resizable",
					"containment",
					{
						start : function(e, q) {
							var s = c(this).data("resizable"), i = s.options, k = s.element;
							var f = i.containment, j = (f instanceof c) ? f
									.get(0) : (/parent/.test(f)) ? k.parent()
									.get(0) : f;
							if (!j) {
								return
							}
							s.containerElement = c(j);
							if (/document/.test(f) || f == document) {
								s.containerOffset = {
									left : 0,
									top : 0
								};
								s.containerPosition = {
									left : 0,
									top : 0
								};
								s.parentData = {
									element : c(document),
									left : 0,
									top : 0,
									width : c(document).width(),
									height : c(document).height()
											|| document.body.parentNode.scrollHeight
								}
							} else {
								var m = c(j), h = [];
								c( [ "Top", "Right", "Left", "Bottom" ]).each(
										function(p, o) {
											h[p] = b(m.css("padding" + o))
										});
								s.containerOffset = m.offset();
								s.containerPosition = m.position();
								s.containerSize = {
									height : (m.innerHeight() - h[3]),
									width : (m.innerWidth() - h[1])
								};
								var n = s.containerOffset, d = s.containerSize.height, l = s.containerSize.width, g = (c.ui
										.hasScroll(j, "left") ? j.scrollWidth
										: l), r = (c.ui.hasScroll(j) ? j.scrollHeight
										: d);
								s.parentData = {
									element : j,
									left : n.left,
									top : n.top,
									width : g,
									height : r
								}
							}
						},
						resize : function(f, p) {
							var s = c(this).data("resizable"), h = s.options, e = s.containerSize, n = s.containerOffset, l = s.size, m = s.position, q = s._aspectRatio
									|| f.shiftKey, d = {
								top : 0,
								left : 0
							}, g = s.containerElement;
							if (g[0] != document
									&& (/static/).test(g.css("position"))) {
								d = n
							}
							if (m.left < (s._helper ? n.left : 0)) {
								s.size.width = s.size.width
										+ (s._helper ? (s.position.left - n.left)
												: (s.position.left - d.left));
								if (q) {
									s.size.height = s.size.width
											/ h.aspectRatio
								}
								s.position.left = h.helper ? n.left : 0
							}
							if (m.top < (s._helper ? n.top : 0)) {
								s.size.height = s.size.height
										+ (s._helper ? (s.position.top - n.top)
												: s.position.top);
								if (q) {
									s.size.width = s.size.height
											* h.aspectRatio
								}
								s.position.top = s._helper ? n.top : 0
							}
							s.offset.left = s.parentData.left + s.position.left;
							s.offset.top = s.parentData.top + s.position.top;
							var k = Math.abs((s._helper ? s.offset.left
									- d.left : (s.offset.left - d.left))
									+ s.sizeDiff.width), r = Math
									.abs((s._helper ? s.offset.top - d.top
											: (s.offset.top - n.top))
											+ s.sizeDiff.height);
							var j = s.containerElement.get(0) == s.element
									.parent().get(0), i = /relative|absolute/
									.test(s.containerElement.css("position"));
							if (j && i) {
								k -= s.parentData.left
							}
							if (k + s.size.width >= s.parentData.width) {
								s.size.width = s.parentData.width - k;
								if (q) {
									s.size.height = s.size.width
											/ s.aspectRatio
								}
							}
							if (r + s.size.height >= s.parentData.height) {
								s.size.height = s.parentData.height - r;
								if (q) {
									s.size.width = s.size.height
											* s.aspectRatio
								}
							}
						},
						stop : function(e, m) {
							var p = c(this).data("resizable"), f = p.options, k = p.position, l = p.containerOffset, d = p.containerPosition, g = p.containerElement;
							var i = c(p.helper), q = i.offset(), n = i
									.outerWidth()
									- p.sizeDiff.width, j = i.outerHeight()
									- p.sizeDiff.height;
							if (p._helper && !f.animate
									&& (/relative/).test(g.css("position"))) {
								c(this).css( {
									left : q.left - d.left - l.left,
									width : n,
									height : j
								})
							}
							if (p._helper && !f.animate
									&& (/static/).test(g.css("position"))) {
								c(this).css( {
									left : q.left - d.left - l.left,
									width : n,
									height : j
								})
							}
						}
					});
	c.ui.plugin.add("resizable", "ghost", {
		start : function(f, g) {
			var d = c(this).data("resizable"), h = d.options, e = d.size;
			d.ghost = d.originalElement.clone();
			d.ghost.css( {
				opacity : 0.25,
				display : "block",
				position : "relative",
				height : e.height,
				width : e.width,
				margin : 0,
				left : 0,
				top : 0
			}).addClass("ui-resizable-ghost").addClass(
					typeof h.ghost == "string" ? h.ghost : "");
			d.ghost.appendTo(d.helper)
		},
		resize : function(e, f) {
			var d = c(this).data("resizable"), g = d.options;
			if (d.ghost) {
				d.ghost.css( {
					position : "relative",
					height : d.size.height,
					width : d.size.width
				})
			}
		},
		stop : function(e, f) {
			var d = c(this).data("resizable"), g = d.options;
			if (d.ghost && d.helper) {
				d.helper.get(0).removeChild(d.ghost.get(0))
			}
		}
	});
	c.ui.plugin
			.add(
					"resizable",
					"grid",
					{
						resize : function(d, l) {
							var n = c(this).data("resizable"), g = n.options, j = n.size, h = n.originalSize, i = n.originalPosition, m = n.axis, k = g._aspectRatio
									|| d.shiftKey;
							g.grid = typeof g.grid == "number" ? [ g.grid,
									g.grid ] : g.grid;
							var f = Math.round((j.width - h.width)
									/ (g.grid[0] || 1))
									* (g.grid[0] || 1), e = Math
									.round((j.height - h.height)
											/ (g.grid[1] || 1))
									* (g.grid[1] || 1);
							if (/^(se|s|e)$/.test(m)) {
								n.size.width = h.width + f;
								n.size.height = h.height + e
							} else {
								if (/^(ne)$/.test(m)) {
									n.size.width = h.width + f;
									n.size.height = h.height + e;
									n.position.top = i.top - e
								} else {
									if (/^(sw)$/.test(m)) {
										n.size.width = h.width + f;
										n.size.height = h.height + e;
										n.position.left = i.left - f
									} else {
										n.size.width = h.width + f;
										n.size.height = h.height + e;
										n.position.top = i.top - e;
										n.position.left = i.left - f
									}
								}
							}
						}
					});
	var b = function(d) {
		return parseInt(d, 10) || 0
	};
	var a = function(d) {
		return !isNaN(parseInt(d, 10))
	}
})(jQuery);;/*
			 * jQuery UI Selectable 1.7.2
			 * 
			 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) Dual
			 * licensed under the MIT (MIT-LICENSE.txt) and GPL
			 * (GPL-LICENSE.txt) licenses.
			 * 
			 * http://docs.jquery.com/UI/Selectables
			 * 
			 * Depends: ui.core.js
			 */
(function(a) {
	a
			.widget(
					"ui.selectable",
					a
							.extend(
									{},
									a.ui.mouse,
									{
										_init : function() {
											var b = this;
											this.element
													.addClass("ui-selectable");
											this.dragged = false;
											var c;
											this.refresh = function() {
												c = a(b.options.filter,
														b.element[0]);
												c
														.each(function() {
															var d = a(this);
															var e = d.offset();
															a
																	.data(
																			this,
																			"selectable-item",
																			{
																				element : this,
																				$element : d,
																				left : e.left,
																				top : e.top,
																				right : e.left
																						+ d
																								.outerWidth(),
																				bottom : e.top
																						+ d
																								.outerHeight(),
																				startselected : false,
																				selected : d
																						.hasClass("ui-selected"),
																				selecting : d
																						.hasClass("ui-selecting"),
																				unselecting : d
																						.hasClass("ui-unselecting")
																			})
														})
											};
											this.refresh();
											this.selectees = c
													.addClass("ui-selectee");
											this._mouseInit();
											this.helper = a(
													document
															.createElement("div"))
													.css(
															{
																border : "1px dotted black"
															})
													.addClass(
															"ui-selectable-helper")
										},
										destroy : function() {
											this.element
													.removeClass(
															"ui-selectable ui-selectable-disabled")
													.removeData("selectable")
													.unbind(".selectable");
											this._mouseDestroy()
										},
										_mouseStart : function(d) {
											var b = this;
											this.opos = [ d.pageX, d.pageY ];
											if (this.options.disabled) {
												return
											}
											var c = this.options;
											this.selectees = a(c.filter,
													this.element[0]);
											this._trigger("start", d);
											a(c.appendTo).append(this.helper);
											this.helper.css( {
												"z-index" : 100,
												position : "absolute",
												left : d.clientX,
												top : d.clientY,
												width : 0,
												height : 0
											});
											if (c.autoRefresh) {
												this.refresh()
											}
											this.selectees
													.filter(".ui-selected")
													.each(
															function() {
																var e = a
																		.data(
																				this,
																				"selectable-item");
																e.startselected = true;
																if (!d.metaKey) {
																	e.$element
																			.removeClass("ui-selected");
																	e.selected = false;
																	e.$element
																			.addClass("ui-unselecting");
																	e.unselecting = true;
																	b
																			._trigger(
																					"unselecting",
																					d,
																					{
																						unselecting : e.element
																					})
																}
															});
											a(d.target)
													.parents()
													.andSelf()
													.each(
															function() {
																var e = a
																		.data(
																				this,
																				"selectable-item");
																if (e) {
																	e.$element
																			.removeClass(
																					"ui-unselecting")
																			.addClass(
																					"ui-selecting");
																	e.unselecting = false;
																	e.selecting = true;
																	e.selected = true;
																	b
																			._trigger(
																					"selecting",
																					d,
																					{
																						selecting : e.element
																					});
																	return false
																}
															})
										},
										_mouseDrag : function(i) {
											var c = this;
											this.dragged = true;
											if (this.options.disabled) {
												return
											}
											var e = this.options;
											var d = this.opos[0], h = this.opos[1], b = i.pageX, g = i.pageY;
											if (d > b) {
												var f = b;
												b = d;
												d = f
											}
											if (h > g) {
												var f = g;
												g = h;
												h = f
											}
											this.helper.css( {
												left : d,
												top : h,
												width : b - d,
												height : g - h
											});
											this.selectees
													.each(function() {
														var j = a
																.data(this,
																		"selectable-item");
														if (!j
																|| j.element == c.element[0]) {
															return
														}
														var k = false;
														if (e.tolerance == "touch") {
															k = (!(j.left > b
																	|| j.right < d
																	|| j.top > g || j.bottom < h))
														} else {
															if (e.tolerance == "fit") {
																k = (j.left > d
																		&& j.right < b
																		&& j.top > h && j.bottom < g)
															}
														}
														if (k) {
															if (j.selected) {
																j.$element
																		.removeClass("ui-selected");
																j.selected = false
															}
															if (j.unselecting) {
																j.$element
																		.removeClass("ui-unselecting");
																j.unselecting = false
															}
															if (!j.selecting) {
																j.$element
																		.addClass("ui-selecting");
																j.selecting = true;
																c
																		._trigger(
																				"selecting",
																				i,
																				{
																					selecting : j.element
																				})
															}
														} else {
															if (j.selecting) {
																if (i.metaKey
																		&& j.startselected) {
																	j.$element
																			.removeClass("ui-selecting");
																	j.selecting = false;
																	j.$element
																			.addClass("ui-selected");
																	j.selected = true
																} else {
																	j.$element
																			.removeClass("ui-selecting");
																	j.selecting = false;
																	if (j.startselected) {
																		j.$element
																				.addClass("ui-unselecting");
																		j.unselecting = true
																	}
																	c
																			._trigger(
																					"unselecting",
																					i,
																					{
																						unselecting : j.element
																					})
																}
															}
															if (j.selected) {
																if (!i.metaKey
																		&& !j.startselected) {
																	j.$element
																			.removeClass("ui-selected");
																	j.selected = false;
																	j.$element
																			.addClass("ui-unselecting");
																	j.unselecting = true;
																	c
																			._trigger(
																					"unselecting",
																					i,
																					{
																						unselecting : j.element
																					})
																}
															}
														}
													});
											return false
										},
										_mouseStop : function(d) {
											var b = this;
											this.dragged = false;
											var c = this.options;
											a(".ui-unselecting",
													this.element[0])
													.each(
															function() {
																var e = a
																		.data(
																				this,
																				"selectable-item");
																e.$element
																		.removeClass("ui-unselecting");
																e.unselecting = false;
																e.startselected = false;
																b
																		._trigger(
																				"unselected",
																				d,
																				{
																					unselected : e.element
																				})
															});
											a(".ui-selecting", this.element[0])
													.each(
															function() {
																var e = a
																		.data(
																				this,
																				"selectable-item");
																e.$element
																		.removeClass(
																				"ui-selecting")
																		.addClass(
																				"ui-selected");
																e.selecting = false;
																e.selected = true;
																e.startselected = true;
																b
																		._trigger(
																				"selected",
																				d,
																				{
																					selected : e.element
																				})
															});
											this._trigger("stop", d);
											this.helper.remove();
											return false
										}
									}));
	a.extend(a.ui.selectable, {
		version : "1.7.2",
		defaults : {
			appendTo : "body",
			autoRefresh : true,
			cancel : ":input,option",
			delay : 0,
			distance : 0,
			filter : "*",
			tolerance : "touch"
		}
	})
})(jQuery);;/*
			 * jQuery UI Sortable 1.7.2
			 * 
			 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) Dual
			 * licensed under the MIT (MIT-LICENSE.txt) and GPL
			 * (GPL-LICENSE.txt) licenses.
			 * 
			 * http://docs.jquery.com/UI/Sortables
			 * 
			 * Depends: ui.core.js
			 */
(function(a) {
	a
			.widget(
					"ui.sortable",
					a
							.extend(
									{},
									a.ui.mouse,
									{
										_init : function() {
											var b = this.options;
											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 b = this.items.length - 1; b >= 0; b--) {
												this.items[b].item
														.removeData("sortable-item")
											}
										},
										_mouseCapture : function(e, f) {
											if (this.reverting) {
												return false
											}
											if (this.options.disabled
													|| this.options.type == "static") {
												return false
											}
											this._refreshItems(e);
											var d = null, c = this, b = a(
													e.target)
													.parents()
													.each(
															function() {
																if (a
																		.data(
																				this,
																				"sortable-item") == c) {
																	d = a(this);
																	return false
																}
															});
											if (a.data(e.target,
													"sortable-item") == c) {
												d = a(e.target)
											}
											if (!d) {
												return false
											}
											if (this.options.handle && !f) {
												var g = false;
												a(this.options.handle, d)
														.find("*")
														.andSelf()
														.each(
																function() {
																	if (this == e.target) {
																		g = true
																	}
																});
												if (!g) {
													return false
												}
											}
											this.currentItem = d;
											this._removeCurrentsFromItems();
											return true
										},
										_mouseStart : function(e, f, b) {
											var g = this.options, c = this;
											this.currentContainer = this;
											this.refreshPositions();
											this.helper = this._createHelper(e);
											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");
											a.extend(this.offset, {
												click : {
													left : e.pageX
															- this.offset.left,
													top : e.pageY
															- this.offset.top
												},
												parent : this
														._getParentOffset(),
												relative : this
														._getRelativeOffset()
											});
											this.originalPosition = this
													._generatePosition(e);
											this.originalPageX = e.pageX;
											this.originalPageY = e.pageY;
											if (g.cursorAt) {
												this
														._adjustOffsetFromHelper(g.cursorAt)
											}
											this.domPosition = {
												prev : this.currentItem.prev()[0],
												parent : this.currentItem
														.parent()[0]
											};
											if (this.helper[0] != this.currentItem[0]) {
												this.currentItem.hide()
											}
											this._createPlaceholder();
											if (g.containment) {
												this._setContainment()
											}
											if (g.cursor) {
												if (a("body").css("cursor")) {
													this._storedCursor = a(
															"body").css(
															"cursor")
												}
												a("body").css("cursor",
														g.cursor)
											}
											if (g.opacity) {
												if (this.helper.css("opacity")) {
													this._storedOpacity = this.helper
															.css("opacity")
												}
												this.helper.css("opacity",
														g.opacity)
											}
											if (g.zIndex) {
												if (this.helper.css("zIndex")) {
													this._storedZIndex = this.helper
															.css("zIndex")
												}
												this.helper.css("zIndex",
														g.zIndex)
											}
											if (this.scrollParent[0] != document
													&& this.scrollParent[0].tagName != "HTML") {
												this.overflowOffset = this.scrollParent
														.offset()
											}
											this._trigger("start", e, this
													._uiHash());
											if (!this._preserveHelperProportions) {
												this._cacheHelperProportions()
											}
											if (!b) {
												for ( var d = this.containers.length - 1; d >= 0; d--) {
													this.containers[d]
															._trigger(
																	"activate",
																	e,
																	c
																			._uiHash(this))
												}
											}
											if (a.ui.ddmanager) {
												a.ui.ddmanager.current = this
											}
											if (a.ui.ddmanager
													&& !g.dropBehaviour) {
												a.ui.ddmanager.prepareOffsets(
														this, e)
											}
											this.dragging = true;
											this.helper
													.addClass("ui-sortable-helper");
											this._mouseDrag(e);
											return true
										},
										_mouseDrag : function(f) {
											this.position = this
													._generatePosition(f);
											this.positionAbs = this
													._convertPositionTo("absolute");
											if (!this.lastPositionAbs) {
												this.lastPositionAbs = this.positionAbs
											}
											if (this.options.scroll) {
												var g = this.options, b = false;
												if (this.scrollParent[0] != document
														&& this.scrollParent[0].tagName != "HTML") {
													if ((this.overflowOffset.top + this.scrollParent[0].offsetHeight)
															- f.pageY < g.scrollSensitivity) {
														this.scrollParent[0].scrollTop = b = this.scrollParent[0].scrollTop
																+ g.scrollSpeed
													} else {
														if (f.pageY
																- this.overflowOffset.top < g.scrollSensitivity) {
															this.scrollParent[0].scrollTop = b = this.scrollParent[0].scrollTop
																	- g.scrollSpeed
														}
													}
													if ((this.overflowOffset.left + this.scrollParent[0].offsetWidth)
															- f.pageX < g.scrollSensitivity) {
														this.scrollParent[0].scrollLeft = b = this.scrollParent[0].scrollLeft
																+ g.scrollSpeed
													} else {
														if (f.pageX
																- this.overflowOffset.left < g.scrollSensitivity) {
															this.scrollParent[0].scrollLeft = b = this.scrollParent[0].scrollLeft
																	- g.scrollSpeed
														}
													}
												} else {
													if (f.pageY
															- a(document)
																	.scrollTop() < g.scrollSensitivity) {
														b = a(document)
																.scrollTop(
																		a(
																				document)
																				.scrollTop()
																				- g.scrollSpeed)
													} else {
														if (a(window).height()
																- (f.pageY - a(
																		document)
																		.scrollTop()) < g.scrollSensitivity) {
															b = a(document)
																	.scrollTop(
																			a(
																					document)
																					.scrollTop()
																					+ g.scrollSpeed)
														}
													}
													if (f.pageX
															- a(document)
																	.scrollLeft() < g.scrollSensitivity) {
														b = a(document)
																.scrollLeft(
																		a(
																				document)
																				.scrollLeft()
																				- g.scrollSpeed)
													} else {
														if (a(window).width()
																- (f.pageX - a(
																		document)
																		.scrollLeft()) < g.scrollSensitivity) {
															b = a(document)
																	.scrollLeft(
																			a(
																					document)
																					.scrollLeft()
																					+ g.scrollSpeed)
														}
													}
												}
												if (b !== false
														&& a.ui.ddmanager
														&& !g.dropBehaviour) {
													a.ui.ddmanager
															.prepareOffsets(
																	this, f)
												}
											}
											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 ( var d = this.items.length - 1; d >= 0; d--) {
												var e = this.items[d], c = e.item[0], h = this
														._intersectsWithPointer(e);
												if (!h) {
													continue
												}
												if (c != this.currentItem[0]
														&& this.placeholder[h == 1 ? "next"
																: "prev"]()[0] != c
														&& !a.ui
																.contains(
																		this.placeholder[0],
																		c)
														&& (this.options.type == "semi-dynamic" ? !a.ui
																.contains(
																		this.element[0],
																		c)
																: true)) {
													this.direction = h == 1 ? "down"
															: "up";
													if (this.options.tolerance == "pointer"
															|| this
																	._intersectsWithSides(e)) {
														this._rearrange(f, e)
													} else {
														break
													}
													this._trigger("change", f,
															this._uiHash());
													break
												}
											}
											this._contactContainers(f);
											if (a.ui.ddmanager) {
												a.ui.ddmanager.drag(this, f)
											}
											this._trigger("sort", f, this
													._uiHash());
											this.lastPositionAbs = this.positionAbs;
											return false
										},
										_mouseStop : function(c, d) {
											if (!c) {
												return
											}
											if (a.ui.ddmanager
													&& !this.options.dropBehaviour) {
												a.ui.ddmanager.drop(this, c)
											}
											if (this.options.revert) {
												var b = this;
												var e = b.placeholder.offset();
												b.reverting = true;
												a(this.helper)
														.animate(
																{
																	left : e.left
																			- this.offset.parent.left
																			- b.margins.left
																			+ (this.offsetParent[0] == document.body ? 0
																					: this.offsetParent[0].scrollLeft),
																	top : e.top
																			- this.offset.parent.top
																			- b.margins.top
																			+ (this.offsetParent[0] == document.body ? 0
																					: this.offsetParent[0].scrollTop)
																},
																parseInt(
																		this.options.revert,
																		10) || 500,
																function() {
																	b._clear(c)
																})
											} else {
												this._clear(c, d)
											}
											return false
										},
										cancel : function() {
											var b = this;
											if (this.dragging) {
												this._mouseUp();
												if (this.options.helper == "original") {
													this.currentItem
															.css(
																	this._storedCSS)
															.removeClass(
																	"ui-sortable-helper")
												} else {
													this.currentItem.show()
												}
												for ( var c = this.containers.length - 1; c >= 0; c--) {
													this.containers[c]
															._trigger(
																	"deactivate",
																	null,
																	b
																			._uiHash(this));
													if (this.containers[c].containerCache.over) {
														this.containers[c]
																._trigger(
																		"out",
																		null,
																		b
																				._uiHash(this));
														this.containers[c].containerCache.over = 0
													}
												}
											}
											if (this.placeholder[0].parentNode) {
												this.placeholder[0].parentNode
														.removeChild(this.placeholder[0])
											}
											if (this.options.helper != "original"
													&& this.helper
													&& this.helper[0].parentNode) {
												this.helper.remove()
											}
											a.extend(this, {
												helper : null,
												dragging : false,
												reverting : false,
												_noFinalSort : null
											});
											if (this.domPosition.prev) {
												a(this.domPosition.prev).after(
														this.currentItem)
											} else {
												a(this.domPosition.parent)
														.prepend(
																this.currentItem)
											}
											return true
										},
										serialize : function(d) {
											var b = this._getItemsAsjQuery(d
													&& d.connected);
											var c = [];
											d = d || {};
											a(b)
													.each(
															function() {
																var e = (a(
																		d.item
																				|| this)
																		.attr(
																				d.attribute
																						|| "id") || "")
																		.match(d.expression || (/(.+)[-=_](.+)/));
																if (e) {
																	c
																			.push((d.key || e[1]
																					+ "[]")
																					+ "="
																					+ (d.key
																							&& d.expression ? e[1]
																							: e[2]))
																}
															});
											return c.join("&")
										},
										toArray : function(d) {
											var b = this._getItemsAsjQuery(d
													&& d.connected);
											var c = [];
											d = d || {};
											b.each(function() {
												c.push(a(d.item || this).attr(
														d.attribute || "id")
														|| "")
											});
											return c
										},
										_intersectsWith : function(m) {
											var e = this.positionAbs.left, d = e
													+ this.helperProportions.width, k = this.positionAbs.top, j = k
													+ this.helperProportions.height;
											var f = m.left, c = f + m.width, n = m.top, i = n
													+ m.height;
											var o = this.offset.click.top, h = this.offset.click.left;
											var g = (k + o) > n && (k + o) < i
													&& (e + h) > f
													&& (e + h) < c;
											if (this.options.tolerance == "pointer"
													|| this.options.forcePointerForContainers
													|| (this.options.tolerance != "pointer" && this.helperProportions[this.floating ? "width"
															: "height"] > m[this.floating ? "width"
															: "height"])) {
												return g
											} else {
												return (f < e
														+ (this.helperProportions.width / 2)
														&& d
																- (this.helperProportions.width / 2) < c
														&& n < k
																+ (this.helperProportions.height / 2) && j
														- (this.helperProportions.height / 2) < i)
											}
										},
										_intersectsWithPointer : function(d) {
											var e = a.ui
													.isOverAxis(
															this.positionAbs.top
																	+ this.offset.click.top,
															d.top, d.height), c = a.ui
													.isOverAxis(
															this.positionAbs.left
																	+ this.offset.click.left,
															d.left, d.width), g = e
													&& c, b = this
													._getDragVerticalDirection(), f = this
													._getDragHorizontalDirection();
											if (!g) {
												return false
											}
											return this.floating ? (((f && f == "right") || b == "down") ? 2
													: 1)
													: (b && (b == "down" ? 2
															: 1))
										},
										_intersectsWithSides : function(e) {
											var c = a.ui
													.isOverAxis(
															this.positionAbs.top
																	+ this.offset.click.top,
															e.top
																	+ (e.height / 2),
															e.height), d = a.ui
													.isOverAxis(
															this.positionAbs.left
																	+ this.offset.click.left,
															e.left
																	+ (e.width / 2),
															e.width), b = this
													._getDragVerticalDirection(), f = this
													._getDragHorizontalDirection();
											if (this.floating && f) {
												return ((f == "right" && d) || (f == "left" && !d))
											} else {
												return b
														&& ((b == "down" && c) || (b == "up" && !c))
											}
										},
										_getDragVerticalDirection : function() {
											var b = this.positionAbs.top
													- this.lastPositionAbs.top;
											return b != 0
													&& (b > 0 ? "down" : "up")
										},
										_getDragHorizontalDirection : function() {
											var b = this.positionAbs.left
													- this.lastPositionAbs.left;
											return b != 0
													&& (b > 0 ? "right"
															: "left")
										},
										refresh : function(b) {
											this._refreshItems(b);
											this.refreshPositions()
										},
										_connectWith : function() {
											var b = this.options;
											return b.connectWith.constructor == String ? [ b.connectWith ]
													: b.connectWith
										},
										_getItemsAsjQuery : function(b) {
											var l = this;
											var g = [];
											var e = [];
											var h = this._connectWith();
											if (h && b) {
												for ( var d = h.length - 1; d >= 0; d--) {
													var k = a(h[d]);
													for ( var c = k.length - 1; c >= 0; c--) {
														var f = a.data(k[c],
																"sortable");
														if (f
																&& f != this
																&& !f.options.disabled) {
															e
																	.push( [
																			a
																					.isFunction(f.options.items) ? f.options.items
																					.call(f.element)
																					: a(
																							f.options.items,
																							f.element)
																							.not(
																									".ui-sortable-helper"),
																			f ])
														}
													}
												}
											}
											e
													.push( [
															a
																	.isFunction(this.options.items) ? this.options.items
																	.call(
																			this.element,
																			null,
																			{
																				options : this.options,
																				item : this.currentItem
																			})
																	: a(
																			this.options.items,
																			this.element)
																			.not(
																					".ui-sortable-helper"),
															this ]);
											for ( var d = e.length - 1; d >= 0; d--) {
												e[d][0].each(function() {
													g.push(this)
												})
											}
											return a(g)
										},
										_removeCurrentsFromItems : function() {
											var d = this.currentItem
													.find(":data(sortable-item)");
											for ( var c = 0; c < this.items.length; c++) {
												for ( var b = 0; b < d.length; b++) {
													if (d[b] == this.items[c].item[0]) {
														this.items.splice(c, 1)
													}
												}
											}
										},
										_refreshItems : function(b) {
											this.items = [];
											this.containers = [ this ];
											var h = this.items;
											var p = this;
											var f = [ [
													a
															.isFunction(this.options.items) ? this.options.items
															.call(
																	this.element[0],
																	b,
																	{
																		item : this.currentItem
																	})
															: a(
																	this.options.items,
																	this.element),
													this ] ];
											var l = this._connectWith();
											if (l) {
												for ( var e = l.length - 1; e >= 0; e--) {
													var m = a(l[e]);
													for ( var d = m.length - 1; d >= 0; d--) {
														var g = a.data(m[d],
																"sortable");
														if (g
																&& g != this
																&& !g.options.disabled) {
															f
																	.push( [
																			a
																					.isFunction(g.options.items) ? g.options.items
																					.call(
																							g.element[0],
																							b,
																							{
																								item : this.currentItem
																							})
																					: a(
																							g.options.items,
																							g.element),
																			g ]);
															this.containers
																	.push(g)
														}
													}
												}
											}
											for ( var e = f.length - 1; e >= 0; e--) {
												var k = f[e][1];
												var c = f[e][0];
												for ( var d = 0, n = c.length; d < n; d++) {
													var o = a(c[d]);
													o.data("sortable-item", k);
													h.push( {
														item : o,
														instance : k,
														width : 0,
														height : 0,
														left : 0,
														top : 0
													})
												}
											}
										},
										refreshPositions : function(b) {
											if (this.offsetParent
													&& this.helper) {
												this.offset.parent = this
														._getParentOffset()
											}
											for ( var d = this.items.length - 1; d >= 0; d--) {
												var e = this.items[d];
												if (e.instance != this.currentContainer
														&& this.currentContainer
														&& e.item[0] != this.currentItem[0]) {
													continue
												}
												var c = this.options.toleranceElement ? a(
														this.options.toleranceElement,
														e.item)
														: e.item;
												if (!b) {
													e.width = c.outerWidth();
													e.height = c.outerHeight()
												}
												var f = c.offset();
												e.left = f.left;
												e.top = f.top
											}
											if (this.options.custom
													&& this.options.custom.refreshContainers) {
												this.options.custom.refreshContainers
														.call(this)
											} else {
												for ( var d = this.containers.length - 1; d >= 0; d--) {
													var f = this.containers[d].element
															.offset();
													this.containers[d].containerCache.left = f.left;
													this.containers[d].containerCache.top = f.top;
													this.containers[d].containerCache.width = this.containers[d].element
															.outerWidth();
													this.containers[d].containerCache.height = this.containers[d].element
															.outerHeight()
												}
											}
										},
										_createPlaceholder : function(d) {
											var b = d || this, e = b.options;
											if (!e.placeholder
													|| e.placeholder.constructor == String) {
												var c = e.placeholder;
												e.placeholder = {
													element : function() {
														var f = a(
																document
																		.createElement(b.currentItem[0].nodeName))
																.addClass(
																		c
																				|| b.currentItem[0].className
																				+ " ui-sortable-placeholder")
																.removeClass(
																		"ui-sortable-helper")[0];
														if (!c) {
															f.style.visibility = "hidden"
														}
														return f
													},
													update : function(f, g) {
														if (c
																&& !e.forcePlaceholderSize) {
															return
														}
														if (!g.height()) {
															g
																	.height(b.currentItem
																			.innerHeight()
																			- parseInt(
																					b.currentItem
																							.css("paddingTop") || 0,
																					10)
																			- parseInt(
																					b.currentItem
																							.css("paddingBottom") || 0,
																					10))
														}
														if (!g.width()) {
															g
																	.width(b.currentItem
																			.innerWidth()
																			- parseInt(
																					b.currentItem
																							.css("paddingLeft") || 0,
																					10)
																			- parseInt(
																					b.currentItem
																							.css("paddingRight") || 0,
																					10))
														}
													}
												}
											}
											b.placeholder = a(e.placeholder.element
													.call(b.element,
															b.currentItem));
											b.currentItem.after(b.placeholder);
											e.placeholder.update(b,
													b.placeholder)
										},
										_contactContainers : function(d) {
											for ( var c = this.containers.length - 1; c >= 0; c--) {
												if (this
														._intersectsWith(this.containers[c].containerCache)) {
													if (!this.containers[c].containerCache.over) {
														if (this.currentContainer != this.containers[c]) {
															var h = 10000;
															var g = null;
															var e = this.positionAbs[this.containers[c].floating ? "left"
																	: "top"];
															for ( var b = this.items.length - 1; b >= 0; b--) {
																if (!a.ui
																		.contains(
																				this.containers[c].element[0],
																				this.items[b].item[0])) {
																	continue
																}
																var f = this.items[b][this.containers[c].floating ? "left"
																		: "top"];
																if (Math.abs(f
																		- e) < h) {
																	h = Math
																			.abs(f
																					- e);
																	g = this.items[b]
																}
															}
															if (!g
																	&& !this.options.dropOnEmpty) {
																continue
															}
															this.currentContainer = this.containers[c];
															g ? this
																	._rearrange(
																			d,
																			g,
																			null,
																			true)
																	: this
																			._rearrange(
																					d,
																					null,
																					this.containers[c].element,
																					true);
															this
																	._trigger(
																			"change",
																			d,
																			this
																					._uiHash());
															this.containers[c]
																	._trigger(
																			"change",
																			d,
																			this
																					._uiHash(this));
															this.options.placeholder
																	.update(
																			this.currentContainer,
																			this.placeholder)
														}
														this.containers[c]
																._trigger(
																		"over",
																		d,
																		this
																				._uiHash(this));
														this.containers[c].containerCache.over = 1
													}
												} else {
													if (this.containers[c].containerCache.over) {
														this.containers[c]
																._trigger(
																		"out",
																		d,
																		this
																				._uiHash(this));
														this.containers[c].containerCache.over = 0
													}
												}
											}
										},
										_createHelper : function(c) {
											var d = this.options;
											var b = a.isFunction(d.helper) ? a(d.helper
													.apply(
															this.element[0],
															[
																	c,
																	this.currentItem ]))
													: (d.helper == "clone" ? this.currentItem
															.clone()
															: this.currentItem);
											if (!b.parents("body").length) {
												a(d.appendTo != "parent" ? d.appendTo
														: this.currentItem[0].parentNode)[0]
														.appendChild(b[0])
											}
											if (b[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 (b[0].style.width == ""
													|| d.forceHelperSize) {
												b.width(this.currentItem
														.width())
											}
											if (b[0].style.height == ""
													|| d.forceHelperSize) {
												b.height(this.currentItem
														.height())
											}
											return b
										},
										_adjustOffsetFromHelper : function(b) {
											if (b.left != undefined) {
												this.offset.click.left = b.left
														+ this.margins.left
											}
											if (b.right != undefined) {
												this.offset.click.left = this.helperProportions.width
														- b.right
														+ this.margins.left
											}
											if (b.top != undefined) {
												this.offset.click.top = b.top
														+ this.margins.top
											}
											if (b.bottom != undefined) {
												this.offset.click.top = this.helperProportions.height
														- b.bottom
														+ this.margins.top
											}
										},
										_getParentOffset : function() {
											this.offsetParent = this.helper
													.offsetParent();
											var b = this.offsetParent.offset();
											if (this.cssPosition == "absolute"
													&& this.scrollParent[0] != document
													&& a.ui
															.contains(
																	this.scrollParent[0],
																	this.offsetParent[0])) {
												b.left += this.scrollParent
														.scrollLeft();
												b.top += this.scrollParent
														.scrollTop()
											}
											if ((this.offsetParent[0] == document.body)
													|| (this.offsetParent[0].tagName
															&& this.offsetParent[0].tagName
																	.toLowerCase() == "html" && a.browser.msie)) {
												b = {
													top : 0,
													left : 0
												}
											}
											return {
												top : b.top
														+ (parseInt(
																this.offsetParent
																		.css("borderTopWidth"),
																10) || 0),
												left : b.left
														+ (parseInt(
																this.offsetParent
																		.css("borderLeftWidth"),
																10) || 0)
											}
										},
										_getRelativeOffset : function() {
											if (this.cssPosition == "relative") {
												var b = this.currentItem
														.position();
												return {
													top : b.top
															- (parseInt(
																	this.helper
																			.css("top"),
																	10) || 0)
															+ this.scrollParent
																	.scrollTop(),
													left : b.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 e = this.options;
											if (e.containment == "parent") {
												e.containment = this.helper[0].parentNode
											}
											if (e.containment == "document"
													|| e.containment == "window") {
												this.containment = [
														0
																- this.offset.relative.left
																- this.offset.parent.left,
														0
																- this.offset.relative.top
																- this.offset.parent.top,
														a(
																e.containment == "document" ? document
																		: window)
																.width()
																- this.helperProportions.width
																- this.margins.left,
														(a(
																e.containment == "document" ? document
																		: window)
																.height() || document.body.parentNode.scrollHeight)
																- this.helperProportions.height
																- this.margins.top ]
											}
											if (!(/^(document|window|parent)$/)
													.test(e.containment)) {
												var c = a(e.containment)[0];
												var d = a(e.containment)
														.offset();
												var b = (a(c).css("overflow") != "hidden");
												this.containment = [
														d.left
																+ (parseInt(
																		a(c)
																				.css(
																						"borderLeftWidth"),
																		10) || 0)
																+ (parseInt(
																		a(c)
																				.css(
																						"paddingLeft"),
																		10) || 0)
																- this.margins.left,
														d.top
																+ (parseInt(
																		a(c)
																				.css(
																						"borderTopWidth"),
																		10) || 0)
																+ (parseInt(
																		a(c)
																				.css(
																						"paddingTop"),
																		10) || 0)
																- this.margins.top,
														d.left
																+ (b ? Math
																		.max(
																				c.scrollWidth,
																				c.offsetWidth)
																		: c.offsetWidth)
																- (parseInt(
																		a(c)
																				.css(
																						"borderLeftWidth"),
																		10) || 0)
																- (parseInt(
																		a(c)
																				.css(
																						"paddingRight"),
																		10) || 0)
																- this.helperProportions.width
																- this.margins.left,
														d.top
																+ (b ? Math
																		.max(
																				c.scrollHeight,
																				c.offsetHeight)
																		: c.offsetHeight)
																- (parseInt(
																		a(c)
																				.css(
																						"borderTopWidth"),
																		10) || 0)
																- (parseInt(
																		a(c)
																				.css(
																						"paddingBottom"),
																		10) || 0)
																- this.helperProportions.height
																- this.margins.top ]
											}
										},
										_convertPositionTo : function(f, h) {
											if (!h) {
												h = this.position
											}
											var c = f == "absolute" ? 1 : -1;
											var e = this.options, b = this.cssPosition == "absolute"
													&& !(this.scrollParent[0] != document && a.ui
															.contains(
																	this.scrollParent[0],
																	this.offsetParent[0])) ? this.offsetParent
													: this.scrollParent, g = (/(html|body)/i)
													.test(b[0].tagName);
											return {
												top : (h.top
														+ this.offset.relative.top
														* c
														+ this.offset.parent.top
														* c - (a.browser.safari
														&& this.cssPosition == "fixed" ? 0
														: (this.cssPosition == "fixed" ? -this.scrollParent
																.scrollTop()
																: (g ? 0
																		: b
																				.scrollTop()))
																* c)),
												left : (h.left
														+ this.offset.relative.left
														* c
														+ this.offset.parent.left
														* c - (a.browser.safari
														&& this.cssPosition == "fixed" ? 0
														: (this.cssPosition == "fixed" ? -this.scrollParent
																.scrollLeft()
																: g ? 0
																		: b
																				.scrollLeft())
																* c))
											}
										},
										_generatePosition : function(e) {
											var h = this.options, b = this.cssPosition == "absolute"
													&& !(this.scrollParent[0] != document && a.ui
															.contains(
																	this.scrollParent[0],
																	this.offsetParent[0])) ? this.offsetParent
													: this.scrollParent, i = (/(html|body)/i)
													.test(b[0].tagName);
											if (this.cssPosition == "relative"
													&& !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) {
												this.offset.relative = this
														._getRelativeOffset()
											}
											var d = e.pageX;
											var c = e.pageY;
											if (this.originalPosition) {
												if (this.containment) {
													if (e.pageX
															- this.offset.click.left < this.containment[0]) {
														d = this.containment[0]
																+ this.offset.click.left
													}
													if (e.pageY
															- this.offset.click.top < this.containment[1]) {
														c = this.containment[1]
																+ this.offset.click.top
													}
													if (e.pageX
															- this.offset.click.left > this.containment[2]) {
														d = this.containment[2]
																+ this.offset.click.left
													}
													if (e.pageY
															- this.offset.click.top > this.containment[3]) {
														c = this.containment[3]
																+ this.offset.click.top
													}
												}
												if (h.grid) {
													var g = this.originalPageY
															+ Math
																	.round((c - this.originalPageY)
																			/ h.grid[1])
															* h.grid[1];
													c = 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
																	- h.grid[1]
																	: g
																			+ h.grid[1]))
															: g;
													var f = this.originalPageX
															+ Math
																	.round((d - this.originalPageX)
																			/ h.grid[0])
															* h.grid[0];
													d = 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
																	- h.grid[0]
																	: f
																			+ h.grid[0]))
															: f
												}
											}
											return {
												top : (c
														- this.offset.click.top
														- this.offset.relative.top
														- this.offset.parent.top + (a.browser.safari
														&& this.cssPosition == "fixed" ? 0
														: (this.cssPosition == "fixed" ? -this.scrollParent
																.scrollTop()
																: (i ? 0
																		: b
																				.scrollTop())))),
												left : (d
														- this.offset.click.left
														- this.offset.relative.left
														- this.offset.parent.left + (a.browser.safari
														&& this.cssPosition == "fixed" ? 0
														: (this.cssPosition == "fixed" ? -this.scrollParent
																.scrollLeft()
																: i ? 0
																		: b
																				.scrollLeft())))
											}
										},
										_rearrange : function(g, f, c, e) {
											c ? c[0]
													.appendChild(this.placeholder[0])
													: f.item[0].parentNode
															.insertBefore(
																	this.placeholder[0],
																	(this.direction == "down" ? f.item[0]
																			: f.item[0].nextSibling));
											this.counter = this.counter ? ++this.counter
													: 1;
											var d = this, b = this.counter;
											window.setTimeout(function() {
												if (b == d.counter) {
													d.refreshPositions(!e)
												}
											}, 0)
										},
										_clear : function(d, e) {
											this.reverting = false;
											var f = [], b = this;
											if (!this._noFinalSort
													&& this.currentItem[0].parentNode) {
												this.placeholder
														.before(this.currentItem)
											}
											this._noFinalSort = null;
											if (this.helper[0] == this.currentItem[0]) {
												for ( var c in this._storedCSS) {
													if (this._storedCSS[c] == "auto"
															|| this._storedCSS[c] == "static") {
														this._storedCSS[c] = ""
													}
												}
												this.currentItem
														.css(this._storedCSS)
														.removeClass(
																"ui-sortable-helper")
											} else {
												this.currentItem.show()
											}
											if (this.fromOutside && !e) {
												f
														.push(function(g) {
															this
																	._trigger(
																			"receive",
																			g,
																			this
																					._uiHash(this.fromOutside))
														})
											}
											if ((this.fromOutside
													|| this.domPosition.prev != this.currentItem
															.prev()
															.not(
																	".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem
													.parent()[0])
													&& !e) {
												f.push(function(g) {
													this._trigger("update", g,
															this._uiHash())
												})
											}
											if (!a.ui.contains(this.element[0],
													this.currentItem[0])) {
												if (!e) {
													f.push(function(g) {
														this._trigger("remove",
																g,
																this._uiHash())
													})
												}
												for ( var c = this.containers.length - 1; c >= 0; c--) {
													if (a.ui
															.contains(
																	this.containers[c].element[0],
																	this.currentItem[0])
															&& !e) {
														f
																.push((function(
																		g) {
																	return function(
																			h) {
																		g
																				._trigger(
																						"receive",
																						h,
																						this
																								._uiHash(this))
																	}
																})
																		.call(
																				this,
																				this.containers[c]));
														f
																.push((function(
																		g) {
																	return function(
																			h) {
																		g
																				._trigger(
																						"update",
																						h,
																						this
																								._uiHash(this))
																	}
																})
																		.call(
																				this,
																				this.containers[c]))
													}
												}
											}
											for ( var c = this.containers.length - 1; c >= 0; c--) {
												if (!e) {
													f
															.push((function(g) {
																return function(
																		h) {
																	g
																			._trigger(
																					"deactivate",
																					h,
																					this
																							._uiHash(this))
																}
															})
																	.call(
																			this,
																			this.containers[c]))
												}
												if (this.containers[c].containerCache.over) {
													f
															.push((function(g) {
																return function(
																		h) {
																	g
																			._trigger(
																					"out",
																					h,
																					this
																							._uiHash(this))
																}
															})
																	.call(
																			this,
																			this.containers[c]));
													this.containers[c].containerCache.over = 0
												}
											}
											if (this._storedCursor) {
												a("body").css("cursor",
														this._storedCursor)
											}
											if (this._storedOpacity) {
												this.helper.css("opacity",
														this._storedOpacity)
											}
											if (this._storedZIndex) {
												this.helper
														.css(
																"zIndex",
																this._storedZIndex == "auto" ? ""
																		: this._storedZIndex)
											}
											this.dragging = false;
											if (this.cancelHelperRemoval) {
												if (!e) {
													this._trigger("beforeStop",
															d, this._uiHash());
													for ( var c = 0; c < f.length; c++) {
														f[c].call(this, d)
													}
													this._trigger("stop", d,
															this._uiHash())
												}
												return false
											}
											if (!e) {
												this._trigger("beforeStop", d,
														this._uiHash())
											}
											this.placeholder[0].parentNode
													.removeChild(this.placeholder[0]);
											if (this.helper[0] != this.currentItem[0]) {
												this.helper.remove()
											}
											this.helper = null;
											if (!e) {
												for ( var c = 0; c < f.length; c++) {
													f[c].call(this, d)
												}
												this._trigger("stop", d, this
														._uiHash())
											}
											this.fromOutside = false;
											return true
										},
										_trigger : function() {
											if (a.widget.prototype._trigger
													.apply(this, arguments) === false) {
												this.cancel()
											}
										},
										_uiHash : function(c) {
											var b = c || this;
											return {
												helper : b.helper,
												placeholder : b.placeholder
														|| a( []),
												position : b.position,
												absolutePosition : b.positionAbs,
												offset : b.positionAbs,
												item : b.currentItem,
												sender : c ? c.element : null
											}
										}
									}));
	a.extend(a.ui.sortable, {
		getter : "serialize toArray",
		version : "1.7.2",
		eventPrefix : "sort",
		defaults : {
			appendTo : "parent",
			axis : false,
			cancel : ":input,option",
			connectWith : false,
			containment : false,
			cursor : "auto",
			cursorAt : false,
			delay : 0,
			distance : 1,
			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 : 1000
		}
	})
})(jQuery);;/*
			 * jQuery UI Accordion 1.7.2
			 * 
			 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) Dual
			 * licensed under the MIT (MIT-LICENSE.txt) and GPL
			 * (GPL-LICENSE.txt) licenses.
			 * 
			 * http://docs.jquery.com/UI/Accordion
			 * 
			 * Depends: ui.core.js
			 */
(function(a) {
	a
			.widget(
					"ui.accordion",
					{
						_init : function() {
							var d = this.options, b = this;
							this.running = 0;
							if (d.collapsible == a.ui.accordion.defaults.collapsible
									&& d.alwaysOpen != a.ui.accordion.defaults.alwaysOpen) {
								d.collapsible = !d.alwaysOpen
							}
							if (d.navigation) {
								var c = this.element.find("a").filter(
										d.navigationFilter);
								if (c.length) {
									if (c.filter(d.header).length) {
										this.active = c
									} else {
										this.active = c.parent().parent()
												.prev();
										c
												.addClass("ui-accordion-content-active")
									}
								}
							}
							this.element
									.addClass("ui-accordion ui-widget ui-helper-reset");
							if (this.element[0].nodeName == "UL") {
								this.element.children("li").addClass(
										"ui-accordion-li-fix")
							}
							this.headers = this.element
									.find(d.header)
									.addClass(
											"ui-accordion-header ui-helper-reset ui-state-default ui-corner-all")
									.bind("mouseenter.accordion", function() {
										a(this).addClass("ui-state-hover")
									}).bind("mouseleave.accordion", function() {
										a(this).removeClass("ui-state-hover")
									}).bind("focus.accordion", function() {
										a(this).addClass("ui-state-focus")
									}).bind("blur.accordion", function() {
										a(this).removeClass("ui-state-focus")
									});
							this.headers
									.next()
									.addClass(
											"ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
							this.active = this._findActive(
									this.active || d.active).toggleClass(
									"ui-state-default").toggleClass(
									"ui-state-active").toggleClass(
									"ui-corner-all").toggleClass(
									"ui-corner-top");
							this.active.next().addClass(
									"ui-accordion-content-active");
							a("<span/>").addClass("ui-icon " + d.icons.header)
									.prependTo(this.headers);
							this.active.find(".ui-icon").toggleClass(
									d.icons.header).toggleClass(
									d.icons.headerSelected);
							if (a.browser.msie) {
								this.element.find("a").css("zoom", "1")
							}
							this.resize();
							this.element.attr("role", "tablist");
							this.headers.attr("role", "tab").bind("keydown",
									function(e) {
										return b._keydown(e)
									}).next().attr("role", "tabpanel");
							this.headers.not(this.active || "").attr(
									"aria-expanded", "false").attr("tabIndex",
									"-1").next().hide();
							if (!this.active.length) {
								this.headers.eq(0).attr("tabIndex", "0")
							} else {
								this.active.attr("aria-expanded", "true").attr(
										"tabIndex", "0")
							}
							if (!a.browser.safari) {
								this.headers.find("a").attr("tabIndex", "-1")
							}
							if (d.event) {
								this.headers.bind((d.event) + ".accordion",
										function(e) {
											return b._clickHandler.call(b, e,
													this)
										})
							}
						},
						destroy : function() {
							var c = this.options;
							this.element.removeClass(
									"ui-accordion ui-widget ui-helper-reset")
									.removeAttr("role").unbind(".accordion")
									.removeData("accordion");
							this.headers
									.unbind(".accordion")
									.removeClass(
											"ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top")
									.removeAttr("role").removeAttr(
											"aria-expanded").removeAttr(
											"tabindex");
							this.headers.find("a").removeAttr("tabindex");
							this.headers.children(".ui-icon").remove();
							var b = this.headers
									.next()
									.css("display", "")
									.removeAttr("role")
									.removeClass(
											"ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");
							if (c.autoHeight || c.fillHeight) {
								b.css("height", "")
							}
						},
						_setData : function(b, c) {
							if (b == "alwaysOpen") {
								b = "collapsible";
								c = !c
							}
							a.widget.prototype._setData.apply(this, arguments)
						},
						_keydown : function(e) {
							var g = this.options, f = a.ui.keyCode;
							if (g.disabled || e.altKey || e.ctrlKey) {
								return
							}
							var d = this.headers.length;
							var b = this.headers.index(e.target);
							var c = false;
							switch (e.keyCode) {
							case f.RIGHT:
							case f.DOWN:
								c = this.headers[(b + 1) % d];
								break;
							case f.LEFT:
							case f.UP:
								c = this.headers[(b - 1 + d) % d];
								break;
							case f.SPACE:
							case f.ENTER:
								return this._clickHandler( {
									target : e.target
								}, e.target)
							}
							if (c) {
								a(e.target).attr("tabIndex", "-1");
								a(c).attr("tabIndex", "0");
								c.focus();
								return false
							}
							return true
						},
						resize : function() {
							var e = this.options, d;
							if (e.fillSpace) {
								if (a.browser.msie) {
									var b = this.element.parent().css(
											"overflow");
									this.element.parent().css("overflow",
											"hidden")
								}
								d = this.element.parent().height();
								if (a.browser.msie) {
									this.element.parent().css("overflow", b)
								}
								this.headers.each(function() {
									d -= a(this).outerHeight()
								});
								var c = 0;
								this.headers.next().each(
										function() {
											c = Math.max(c, a(this)
													.innerHeight()
													- a(this).height())
										}).height(Math.max(0, d - c)).css(
										"overflow", "auto")
							} else {
								if (e.autoHeight) {
									d = 0;
									this.headers.next().each(function() {
										d = Math.max(d, a(this).outerHeight())
									}).height(d)
								}
							}
						},
						activate : function(b) {
							var c = this._findActive(b)[0];
							this._clickHandler( {
								target : c
							}, c)
						},
						_findActive : function(b) {
							return b ? typeof b == "number" ? this.headers
									.filter(":eq(" + b + ")") : this.headers
									.not(this.headers.not(b))
									: b === false ? a( []) : this.headers
											.filter(":eq(0)")
						},
						_clickHandler : function(b, f) {
							var d = this.options;
							if (d.disabled) {
								return false
							}
							if (!b.target && d.collapsible) {
								this.active
										.removeClass(
												"ui-state-active ui-corner-top")
										.addClass(
												"ui-state-default ui-corner-all")
										.find(".ui-icon").removeClass(
												d.icons.headerSelected)
										.addClass(d.icons.header);
								this.active.next().addClass(
										"ui-accordion-content-active");
								var h = this.active.next(), e = {
									options : d,
									newHeader : a( []),
									oldHeader : d.active,
									newContent : a( []),
									oldContent : h
								}, c = (this.active = a( []));
								this._toggle(c, h, e);
								return false
							}
							var g = a(b.currentTarget || f);
							var i = g[0] == this.active[0];
							if (this.running || (!d.collapsible && i)) {
								return false
							}
							this.active.removeClass(
									"ui-state-active ui-corner-top").addClass(
									"ui-state-default ui-corner-all").find(
									".ui-icon").removeClass(
									d.icons.headerSelected).addClass(
									d.icons.header);
							this.active.next().addClass(
									"ui-accordion-content-active");
							if (!i) {
								g
										.removeClass(
												"ui-state-default ui-corner-all")
										.addClass(
												"ui-state-active ui-corner-top")
										.find(".ui-icon").removeClass(
												d.icons.header).addClass(
												d.icons.headerSelected);
								g
										.next()
										.addClass("ui-accordion-content-active")
							}
							var c = g.next(), h = this.active.next(), e = {
								options : d,
								newHeader : i && d.collapsible ? a( []) : g,
								oldHeader : this.active,
								newContent : i && d.collapsible ? a( []) : c
										.find("> *"),
								oldContent : h.find("> *")
							}, j = this.headers.index(this.active[0]) > this.headers
									.index(g[0]);
							this.active = i ? a( []) : g;
							this._toggle(c, h, e, i, j);
							return false
						},
						_toggle : function(b, i, g, j, k) {
							var d = this.options, m = this;
							this.toShow = b;
							this.toHide = i;
							this.data = g;
							var c = function() {
								if (!m) {
									return
								}
								return m._completed.apply(m, arguments)
							};
							this._trigger("changestart", null, this.data);
							this.running = i.size() === 0 ? b.size() : i.size();
							if (d.animated) {
								var f = {};
								if (d.collapsible && j) {
									f = {
										toShow : a( []),
										toHide : i,
										complete : c,
										down : k,
										autoHeight : d.autoHeight
												|| d.fillSpace
									}
								} else {
									f = {
										toShow : b,
										toHide : i,
										complete : c,
										down : k,
										autoHeight : d.autoHeight
												|| d.fillSpace
									}
								}
								if (!d.proxied) {
									d.proxied = d.animated
								}
								if (!d.proxiedDuration) {
									d.proxiedDuration = d.duration
								}
								d.animated = a.isFunction(d.proxied) ? d
										.proxied(f) : d.proxied;
								d.duration = a.isFunction(d.proxiedDuration) ? d
										.proxiedDuration(f)
										: d.proxiedDuration;
								var l = a.ui.accordion.animations, e = d.duration, h = d.animated;
								if (!l[h]) {
									l[h] = function(n) {
										this.slide(n, {
											easing : h,
											duration : e || 700
										})
									}
								}
								l[h](f)
							} else {
								if (d.collapsible && j) {
									b.toggle()
								} else {
									i.hide();
									b.show()
								}
								c(true)
							}
							i.prev().attr("aria-expanded", "false").attr(
									"tabIndex", "-1").blur();
							b.prev().attr("aria-expanded", "true").attr(
									"tabIndex", "0").focus()
						},
						_completed : function(b) {
							var c = this.options;
							this.running = b ? 0 : --this.running;
							if (this.running) {
								return
							}
							if (c.clearStyle) {
								this.toShow.add(this.toHide).css( {
									height : "",
									overflow : ""
								})
							}
							this._trigger("change", null, this.data)
						}
					});
	a
			.extend(
					a.ui.accordion,
					{
						version : "1.7.2",
						defaults : {
							active : null,
							alwaysOpen : true,
							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()
							}
						},
						animations : {
							slide : function(j, h) {
								j = a.extend( {
									easing : "swing",
									duration : 300
								}, j, h);
								if (!j.toHide.size()) {
									j.toShow.animate( {
										height : "show"
									}, j);
									return
								}
								if (!j.toShow.size()) {
									j.toHide.animate( {
										height : "hide"
									}, j);
									return
								}
								var c = j.toShow.css("overflow"), g, d = {}, f = {}, e = [
										"height", "paddingTop", "paddingBottom" ], b;
								var i = j.toShow;
								b = i[0].style.width;
								i.width(parseInt(i.parent().width(), 10)
										- parseInt(i.css("paddingLeft"), 10)
										- parseInt(i.css("paddingRight"), 10)
										- (parseInt(i.css("borderLeftWidth"),
												10) || 0)
										- (parseInt(i.css("borderRightWidth"),
												10) || 0));
								a.each(e, function(k, m) {
									f[m] = "hide";
									var l = ("" + a.css(j.toShow[0], m))
											.match(/^([\d+-.]+)(.*)$/);
									d[m] = {
										value : l[1],
										unit : l[2] || "px"
									}
								});
								j.toShow.css( {
									height : 0,
									overflow : "hidden"
								}).show();
								j.toHide
										.filter(":hidden")
										.each(j.complete)
										.end()
										.filter(":visible")
										.animate(
												f,
												{
													step : function(k, l) {
														if (l.prop == "height") {
															g = (l.now - l.start)
																	/ (l.end - l.start)
														}
														j.toShow[0].style[l.prop] = (g * d[l.prop].value)
																+ d[l.prop].unit
													},
													duration : j.duration,
													easing : j.easing,
													complete : function() {
														if (!j.autoHeight) {
															j.toShow.css(
																	"height",
																	"")
														}
														j.toShow
																.css("width", b);
														j.toShow.css( {
															overflow : c
														});
														j.complete()
													}
												})
							},
							bounceslide : function(b) {
								this.slide(b,
										{
											easing : b.down ? "easeOutBounce"
													: "swing",
											duration : b.down ? 1000 : 200
										})
							},
							easeslide : function(b) {
								this.slide(b, {
									easing : "easeinout",
									duration : 700
								})
							}
						}
					})
})(jQuery);;/*
			 * jQuery UI Dialog 1.7.2
			 * 
			 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) Dual
			 * licensed under the MIT (MIT-LICENSE.txt) and GPL
			 * (GPL-LICENSE.txt) licenses.
			 * 
			 * http://docs.jquery.com/UI/Dialog
			 * 
			 * Depends: ui.core.js ui.draggable.js ui.resizable.js
			 */
(function(c) {
	var b = {
		dragStart : "start.draggable",
		drag : "drag.draggable",
		dragStop : "stop.draggable",
		maxHeight : "maxHeight.resizable",
		minHeight : "minHeight.resizable",
		maxWidth : "maxWidth.resizable",
		minWidth : "minWidth.resizable",
		resizeStart : "start.resizable",
		resize : "drag.resizable",
		resizeStop : "stop.resizable"
	}, a = "ui-dialog ui-widget ui-widget-content ui-corner-all ";
	c
			.widget(
					"ui.dialog",
					{
						_init : function() {
							this.originalTitle = this.element.attr("title");
							var l = this, m = this.options, j = m.title
									|| this.originalTitle || "&nbsp;", e = c.ui.dialog
									.getTitleId(this.element), k = (this.uiDialog = c("<div/>"))
									.appendTo(document.body)
									.hide()
									.addClass(a + m.dialogClass)
									.css( {
										position : "absolute",
										overflow : "hidden",
										zIndex : m.zIndex
									})
									.attr("tabIndex", -1)
									.css("outline", 0)
									.keydown(
											function(n) {
												(m.closeOnEscape
														&& n.keyCode
														&& n.keyCode == c.ui.keyCode.ESCAPE && l
														.close(n))
											}).attr( {
										role : "dialog",
										"aria-labelledby" : e
									}).mousedown(function(n) {
										l.moveToTop(false, n)
									}), g = this.element.show().removeAttr(
									"title").addClass(
									"ui-dialog-content ui-widget-content")
									.appendTo(k), f = (this.uiDialogTitlebar = c("<div></div>"))
									.addClass(
											"ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix")
									.prependTo(k), i = c('<a id="close-dialog" href="#"/>')
									.addClass(
											"ui-dialog-titlebar-close ui-corner-all")
									.attr("role", "button").hover(function() {
										i.addClass("ui-state-hover")
									}, function() {
										i.removeClass("ui-state-hover")
									}).focus(function() {
										i.addClass("ui-state-focus")
									}).blur(function() {
										i.removeClass("ui-state-focus")
									}).mousedown(function(n) {
										n.stopPropagation()
									}).click(function(n) {
										l.close(n);
										return false
									}).appendTo(f), h = (this.uiDialogTitlebarCloseText = c("<span/>"))
									.addClass("ui-icon ui-icon-closethick")
									.text(m.closeText).appendTo(i), d = c(
									"<span/>").addClass("ui-dialog-title")
									.attr("id", e).html(j).prependTo(f);
							f.find("*").add(f).disableSelection();
							(m.draggable && c.fn.draggable && this
									._makeDraggable());
							(m.resizable && c.fn.resizable && this
									._makeResizable());
							this._createButtons(m.buttons);
							this._isOpen = false;
							(m.bgiframe && c.fn.bgiframe && k.bgiframe());
							(m.autoOpen && this.open())
						},
						destroy : function() {
							(this.overlay && this.overlay.destroy());
							this.uiDialog.hide();
							this.element
									.unbind(".dialog")
									.removeData("dialog")
									.removeClass(
											"ui-dialog-content ui-widget-content")
									.hide().appendTo("body");
							this.uiDialog.remove();
							(this.originalTitle && this.element.attr("title",
									this.originalTitle))
						},
						close : function(f) {
							var d = this;
							if (false === d._trigger("beforeclose", f)) {
								return
							}
							(d.overlay && d.overlay.destroy());
							d.uiDialog.unbind("keypress.ui-dialog");
							(d.options.hide ? d.uiDialog.hide(d.options.hide,
									function() {
										d._trigger("close", f)
									}) : d.uiDialog.hide()
									&& d._trigger("close", f));
							c.ui.dialog.overlay.resize();
							d._isOpen = false;
							if (d.options.modal) {
								var e = 0;
								c(".ui-dialog").each(function() {
									if (this != d.uiDialog[0]) {
										e = Math.max(e, c(this).css("z-index"))
									}
								});
								c.ui.dialog.maxZ = e
							}
						},
						isOpen : function() {
							return this._isOpen
						},
						moveToTop : function(f, e) {
							if ((this.options.modal && !f)
									|| (!this.options.stack && !this.options.modal)) {
								return this._trigger("focus", e)
							}
							if (this.options.zIndex > c.ui.dialog.maxZ) {
								c.ui.dialog.maxZ = this.options.zIndex
							}
							(this.overlay && this.overlay.$el
									.css(
											"z-index",
											c.ui.dialog.overlay.maxZ = ++c.ui.dialog.maxZ));
							var d = {
								scrollTop : this.element.attr("scrollTop"),
								scrollLeft : this.element.attr("scrollLeft")
							};
							this.uiDialog.css("z-index", ++c.ui.dialog.maxZ);
							this.element.attr(d);
							this._trigger("focus", e)
						},
						open : function() {
							if (this._isOpen) {
								return
							}
							var e = this.options, d = this.uiDialog;
							this.overlay = e.modal ? new c.ui.dialog.overlay(
									this) : null;
							(d.next().length && d.appendTo("body"));
							this._size();
							this._position(e.position);
							d.show(e.show);
							this.moveToTop(true);
							(e.modal && d.bind("keypress.ui-dialog",
									function(h) {
										if (h.keyCode != c.ui.keyCode.TAB) {
											return
										}
										var g = c(":tabbable", this), i = g
												.filter(":first")[0], f = g
												.filter(":last")[0];
										if (h.target == f && !h.shiftKey) {
											setTimeout(function() {
												i.focus()
											}, 1)
										} else {
											if (h.target == i && h.shiftKey) {
												setTimeout(function() {
													f.focus()
												}, 1)
											}
										}
									}));
							c( [])
									.add(
											d
													.find(".ui-dialog-content :tabbable:first"))
									.add(
											d
													.find(".ui-dialog-buttonpane :tabbable:first"))
									.add(d).filter(":first").focus();
							this._trigger("open");
							this._isOpen = true
						},
						_createButtons : function(g) {
							var f = this, d = false, e = c("<div></div>")
									.addClass(
											"ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");
							this.uiDialog.find(".ui-dialog-buttonpane")
									.remove();
							(typeof g == "object" && g !== null && c.each(g,
									function() {
										return !(d = true)
									}));
							if (d) {
								c
										.each(
												g,
												function(h, i) {
													c(
															'<button id="'+h+'" type="button"></button>')
															.addClass(
																	"ui-state-default ui-corner-all")
															.text(h)
															.click(
																	function() {
																		i
																				.apply(
																						f.element[0],
																						arguments)
																	})
															.hover(
																	function() {
																		c(this)
																				.addClass(
																						"ui-state-hover")
																	},
																	function() {
																		c(this)
																				.removeClass(
																						"ui-state-hover")
																	})
															.focus(
																	function() {
																		c(this)
																				.addClass(
																						"ui-state-focus")
																	})
															.blur(
																	function() {
																		c(this)
																				.removeClass(
																						"ui-state-focus")
																	})
															.appendTo(e)
												});
								e.appendTo(this.uiDialog)
							}
						},
						_makeDraggable : function() {
							var d = this, f = this.options, e;
							this.uiDialog.draggable( {
								cancel : ".ui-dialog-content",
								handle : ".ui-dialog-titlebar",
								containment : "document",
								start : function() {
									e = f.height;
									c(this).height(c(this).height()).addClass(
											"ui-dialog-dragging");
									(f.dragStart && f.dragStart.apply(
											d.element[0], arguments))
								},
								drag : function() {
									(f.drag && f.drag.apply(d.element[0],
											arguments))
								},
								stop : function() {
									c(this).removeClass("ui-dialog-dragging")
											.height(e);
									(f.dragStop && f.dragStop.apply(
											d.element[0], arguments));
									c.ui.dialog.overlay.resize()
								}
							})
						},
						_makeResizable : function(g) {
							g = (g === undefined ? this.options.resizable : g);
							var d = this, f = this.options, e = typeof g == "string" ? g
									: "n,e,s,w,se,sw,ne,nw";
							this.uiDialog.resizable(
									{
										cancel : ".ui-dialog-content",
										alsoResize : this.element,
										maxWidth : f.maxWidth,
										maxHeight : f.maxHeight,
										minWidth : f.minWidth,
										minHeight : f.minHeight,
										start : function() {
											c(this).addClass(
													"ui-dialog-resizing");
											(f.resizeStart && f.resizeStart
													.apply(d.element[0],
															arguments))
										},
										resize : function() {
											(f.resize && f.resize.apply(
													d.element[0], arguments))
										},
										handles : e,
										stop : function() {
											c(this).removeClass(
													"ui-dialog-resizing");
											f.height = c(this).height();
											f.width = c(this).width();
											(f.resizeStop && f.resizeStop
													.apply(d.element[0],
															arguments));
											c.ui.dialog.overlay.resize()
										}
									}).find(".ui-resizable-se").addClass(
									"ui-icon ui-icon-grip-diagonal-se")
						},
						_position : function(i) {
							var e = c(window), f = c(document), g = f
									.scrollTop(), d = f.scrollLeft(), h = g;
							if (c.inArray(i, [ "center", "top", "right",
									"bottom", "left" ]) >= 0) {
								i = [
										i == "right" || i == "left" ? i
												: "center",
										i == "top" || i == "bottom" ? i
												: "middle" ]
							}
							if (i.constructor != Array) {
								i = [ "center", "middle" ]
							}
							if (i[0].constructor == Number) {
								d += i[0]
							} else {
								switch (i[0]) {
								case "left":
									d += 0;
									break;
								case "right":
									d += e.width() - this.uiDialog.outerWidth();
									break;
								default:
								case "center":
									d += (e.width() - this.uiDialog
											.outerWidth()) / 2
								}
							}
							if (i[1].constructor == Number) {
								g += i[1]
							} else {
								switch (i[1]) {
								case "top":
									g += 0;
									break;
								case "bottom":
									g += e.height()
											- this.uiDialog.outerHeight();
									break;
								default:
								case "middle":
									g += (e.height() - this.uiDialog
											.outerHeight()) / 2
								}
							}
							g = Math.max(g, h);
							this.uiDialog.css( {
								top : g,
								left : d
							})
						},
						_setData : function(e, f) {
							(b[e] && this.uiDialog.data(b[e], f));
							switch (e) {
							case "buttons":
								this._createButtons(f);
								break;
							case "closeText":
								this.uiDialogTitlebarCloseText.text(f);
								break;
							case "dialogClass":
								this.uiDialog.removeClass(
										this.options.dialogClass).addClass(
										a + f);
								break;
							case "draggable":
								(f ? this._makeDraggable() : this.uiDialog
										.draggable("destroy"));
								break;
							case "height":
								this.uiDialog.height(f);
								break;
							case "position":
								this._position(f);
								break;
							case "resizable":
								var d = this.uiDialog, g = this.uiDialog
										.is(":data(resizable)");
								(g && !f && d.resizable("destroy"));
								(g && typeof f == "string" && d.resizable(
										"option", "handles", f));
								(g || this._makeResizable(f));
								break;
							case "title":
								c(".ui-dialog-title", this.uiDialogTitlebar)
										.html(f || "&nbsp;");
								break;
							case "width":
								this.uiDialog.width(f);
								break
							}
							c.widget.prototype._setData.apply(this, arguments)
						},
						_size : function() {
							var e = this.options;
							this.element.css( {
								height : 0,
								minHeight : 0,
								width : "100%"
							});
							var d = this.uiDialog.css( {
								height : "auto",
								width : e.width
							}).height();
							this.element.css( {
								minHeight : Math.max(e.minHeight - d, 0),
								height : e.height == "auto" ? "auto" : Math
										.max(e.height - d, 0)
							})
						}
					});
	c.extend(c.ui.dialog, {
		version : "1.7.2",
		defaults : {
			autoOpen : true,
			bgiframe : false,
			buttons : {},
			closeOnEscape : true,
			closeText : "close",
			dialogClass : "",
			draggable : true,
			hide : null,
			height : "auto",
			maxHeight : false,
			maxWidth : false,
			minHeight : 150,
			minWidth : 150,
			modal : false,
			position : "center",
			resizable : true,
			show : null,
			stack : true,
			title : "",
			width : 300,
			zIndex : 1000
		},
		getter : "isOpen",
		uuid : 0,
		maxZ : 0,
		getTitleId : function(d) {
			return "ui-dialog-title-" + (d.attr("id") || ++this.uuid)
		},
		overlay : function(d) {
			this.$el = c.ui.dialog.overlay.create(d)
		}
	});
	c.extend(c.ui.dialog.overlay, {
		instances : [],
		maxZ : 0,
		events : c.map(
				"focus,mousedown,mouseup,keydown,keypress,click".split(","),
				function(d) {
					return d + ".dialog-overlay"
				}).join(" "),
		create : function(e) {
			if (this.instances.length === 0) {
				setTimeout(function() {
					if (c.ui.dialog.overlay.instances.length) {
						c(document).bind(
								c.ui.dialog.overlay.events,
								function(f) {
									var g = c(f.target).parents(".ui-dialog")
											.css("zIndex") || 0;
									return (g > c.ui.dialog.overlay.maxZ)
								})
					}
				}, 1);
				c(document).bind(
						"keydown.dialog-overlay",
						function(f) {
							(e.options.closeOnEscape && f.keyCode
									&& f.keyCode == c.ui.keyCode.ESCAPE && e
									.close(f))
						});
				c(window).bind("resize.dialog-overlay",
						c.ui.dialog.overlay.resize)
			}
			var d = c("<div></div>").appendTo(document.body).addClass(
					"ui-widget-overlay").css( {
				width : this.width(),
				height : this.height()
			});
			(e.options.bgiframe && c.fn.bgiframe && d.bgiframe());
			this.instances.push(d);
			return d
		},
		destroy : function(d) {
			this.instances.splice(c.inArray(this.instances, d), 1);
			if (this.instances.length === 0) {
				c( [ document, window ]).unbind(".dialog-overlay")
			}
			d.remove();
			var e = 0;
			c.each(this.instances, function() {
				e = Math.max(e, this.css("z-index"))
			});
			this.maxZ = e
		},
		height : function() {
			if (c.browser.msie && c.browser.version < 7) {
				var e = Math.max(document.documentElement.scrollHeight,
						document.body.scrollHeight);
				var d = Math.max(document.documentElement.offsetHeight,
						document.body.offsetHeight);
				if (e < d) {
					return c(window).height() + "px"
				} else {
					return e + "px"
				}
			} else {
				return c(document).height() + "px"
			}
		},
		width : function() {
			if (c.browser.msie && c.browser.version < 7) {
				var d = Math.max(document.documentElement.scrollWidth,
						document.body.scrollWidth);
				var e = Math.max(document.documentElement.offsetWidth,
						document.body.offsetWidth);
				if (d < e) {
					return c(window).width() + "px"
				} else {
					return d + "px"
				}
			} else {
				return c(document).width() + "px"
			}
		},
		resize : function() {
			var d = c( []);
			c.each(c.ui.dialog.overlay.instances, function() {
				d = d.add(this)
			});
			d.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.7.2
			 * 
			 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) Dual
			 * licensed under the MIT (MIT-LICENSE.txt) and GPL
			 * (GPL-LICENSE.txt) licenses.
			 * 
			 * http://docs.jquery.com/UI/Slider
			 * 
			 * Depends: ui.core.js
			 */
(function(a) {
	a
			.widget(
					"ui.slider",
					a
							.extend(
									{},
									a.ui.mouse,
									{
										_init : function() {
											var b = this, c = this.options;
											this._keySliding = false;
											this._handleIndex = null;
											this._detectOrientation();
											this._mouseInit();
											this.element
													.addClass("ui-slider ui-slider-"
															+ this.orientation
															+ " ui-widget ui-widget-content ui-corner-all");
											this.range = a( []);
											if (c.range) {
												if (c.range === true) {
													this.range = a("<div></div>");
													if (!c.values) {
														c.values = [
																this
																		._valueMin(),
																this
																		._valueMin() ]
													}
													if (c.values.length
															&& c.values.length != 2) {
														c.values = [
																c.values[0],
																c.values[0] ]
													}
												} else {
													this.range = a("<div></div>")
												}
												this.range.appendTo(
														this.element).addClass(
														"ui-slider-range");
												if (c.range == "min"
														|| c.range == "max") {
													this.range
															.addClass("ui-slider-range-"
																	+ c.range)
												}
												this.range
														.addClass("ui-widget-header")
											}
											if (a(".ui-slider-handle",
													this.element).length == 0) {
												a('<a href="#"></a>').appendTo(
														this.element).addClass(
														"ui-slider-handle")
											}
											if (c.values && c.values.length) {
												while (a(".ui-slider-handle",
														this.element).length < c.values.length) {
													a('<a href="#"></a>')
															.appendTo(
																	this.element)
															.addClass(
																	"ui-slider-handle")
												}
											}
											this.handles = a(
													".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(d) {
														d.preventDefault()
													})
													.hover(
															function() {
																if (!c.disabled) {
																	a(this)
																			.addClass(
																					"ui-state-hover")
																}
															},
															function() {
																a(this)
																		.removeClass(
																				"ui-state-hover")
															})
													.focus(
															function() {
																if (!c.disabled) {
																	a(
																			".ui-slider .ui-state-focus")
																			.removeClass(
																					"ui-state-focus");
																	a(this)
																			.addClass(
																					"ui-state-focus")
																} else {
																	a(this)
																			.blur()
																}
															})
													.blur(
															function() {
																a(this)
																		.removeClass(
																				"ui-state-focus")
															});
											this.handles
													.each(function(d) {
														a(this)
																.data(
																		"index.ui-slider-handle",
																		d)
													});
											this.handles
													.keydown(
															function(i) {
																var f = true;
																var e = a(this)
																		.data(
																				"index.ui-slider-handle");
																if (b.options.disabled) {
																	return
																}
																switch (i.keyCode) {
																case a.ui.keyCode.HOME:
																case a.ui.keyCode.END:
																case a.ui.keyCode.UP:
																case a.ui.keyCode.RIGHT:
																case a.ui.keyCode.DOWN:
																case a.ui.keyCode.LEFT:
																	f = false;
																	if (!b._keySliding) {
																		b._keySliding = true;
																		a(this)
																				.addClass(
																						"ui-state-active");
																		b
																				._start(
																						i,
																						e)
																	}
																	break
																}
																var g, d, h = b
																		._step();
																if (b.options.values
																		&& b.options.values.length) {
																	g = d = b
																			.values(e)
																} else {
																	g = d = b
																			.value()
																}
																switch (i.keyCode) {
																case a.ui.keyCode.HOME:
																	d = b
																			._valueMin();
																	break;
																case a.ui.keyCode.END:
																	d = b
																			._valueMax();
																	break;
																case a.ui.keyCode.UP:
																case a.ui.keyCode.RIGHT:
																	if (g == b
																			._valueMax()) {
																		return
																	}
																	d = g + h;
																	break;
																case a.ui.keyCode.DOWN:
																case a.ui.keyCode.LEFT:
																	if (g == b
																			._valueMin()) {
																		return
																	}
																	d = g - h;
																	break
																}
																b._slide(i, e,
																		d);
																return f
															})
													.keyup(
															function(e) {
																var d = a(this)
																		.data(
																				"index.ui-slider-handle");
																if (b._keySliding) {
																	b._stop(e,
																			d);
																	b._change(
																			e,
																			d);
																	b._keySliding = false;
																	a(this)
																			.removeClass(
																					"ui-state-active")
																}
															});
											this._refreshValue()
										},
										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()
										},
										_mouseCapture : function(d) {
											var e = this.options;
											if (e.disabled) {
												return false
											}
											this.elementSize = {
												width : this.element
														.outerWidth(),
												height : this.element
														.outerHeight()
											};
											this.elementOffset = this.element
													.offset();
											var h = {
												x : d.pageX,
												y : d.pageY
											};
											var j = this._normValueFromMouse(h);
											var c = this._valueMax()
													- this._valueMin() + 1, f;
											var k = this, i;
											this.handles.each(function(l) {
												var m = Math.abs(j
														- k.values(l));
												if (c > m) {
													c = m;
													f = a(this);
													i = l
												}
											});
											if (e.range == true
													&& this.values(1) == e.min) {
												f = a(this.handles[++i])
											}
											this._start(d, i);
											k._handleIndex = i;
											f.addClass("ui-state-active")
													.focus();
											var g = f.offset();
											var b = !a(d.target).parents()
													.andSelf()
													.is(".ui-slider-handle");
											this._clickOffset = b ? {
												left : 0,
												top : 0
											}
													: {
														left : d.pageX
																- g.left
																- (f.width() / 2),
														top : d.pageY
																- g.top
																- (f.height() / 2)
																- (parseInt(
																		f
																				.css("borderTopWidth"),
																		10) || 0)
																- (parseInt(
																		f
																				.css("borderBottomWidth"),
																		10) || 0)
																+ (parseInt(
																		f
																				.css("marginTop"),
																		10) || 0)
													};
											j = this._normValueFromMouse(h);
											this._slide(d, i, j);
											return true
										},
										_mouseStart : function(b) {
											return true
										},
										_mouseDrag : function(d) {
											var b = {
												x : d.pageX,
												y : d.pageY
											};
											var c = this._normValueFromMouse(b);
											this
													._slide(d,
															this._handleIndex,
															c);
											return false
										},
										_mouseStop : function(b) {
											this.handles
													.removeClass("ui-state-active");
											this._stop(b, this._handleIndex);
											this._change(b, this._handleIndex);
											this._handleIndex = null;
											this._clickOffset = null;
											return false
										},
										_detectOrientation : function() {
											this.orientation = this.options.orientation == "vertical" ? "vertical"
													: "horizontal"
										},
										_normValueFromMouse : function(d) {
											var c, h;
											if ("horizontal" == this.orientation) {
												c = this.elementSize.width;
												h = d.x
														- this.elementOffset.left
														- (this._clickOffset ? this._clickOffset.left
																: 0)
											} else {
												c = this.elementSize.height;
												h = d.y
														- this.elementOffset.top
														- (this._clickOffset ? this._clickOffset.top
																: 0)
											}
											var f = (h / c);
											if (f > 1) {
												f = 1
											}
											if (f < 0) {
												f = 0
											}
											if ("vertical" == this.orientation) {
												f = 1 - f
											}
											var e = this._valueMax()
													- this._valueMin(), i = f
													* e, b = i
													% this.options.step, g = this
													._valueMin()
													+ i - b;
											if (b > (this.options.step / 2)) {
												g += this.options.step
											}
											return parseFloat(g.toFixed(5))
										},
										_start : function(d, c) {
											var b = {
												handle : this.handles[c],
												value : this.value()
											};
											if (this.options.values
													&& this.options.values.length) {
												b.value = this.values(c);
												b.values = this.values()
											}
											this._trigger("start", d, b)
										},
										_slide : function(f, e, d) {
											var g = this.handles[e];
											if (this.options.values
													&& this.options.values.length) {
												var b = this.values(e ? 0 : 1);
												if ((this.options.values.length == 2 && this.options.range === true)
														&& ((e == 0 && d > b) || (e == 1 && d < b))) {
													d = b
												}
												if (d != this.values(e)) {
													var c = this.values();
													c[e] = d;
													var h = this
															._trigger(
																	"slide",
																	f,
																	{
																		handle : this.handles[e],
																		value : d,
																		values : c
																	});
													var b = this.values(e ? 0
															: 1);
													if (h !== false) {
														this
																.values(
																		e,
																		d,
																		(f.type == "mousedown" && this.options.animate),
																		true)
													}
												}
											} else {
												if (d != this.value()) {
													var h = this
															._trigger(
																	"slide",
																	f,
																	{
																		handle : this.handles[e],
																		value : d
																	});
													if (h !== false) {
														this
																._setData(
																		"value",
																		d,
																		(f.type == "mousedown" && this.options.animate))
													}
												}
											}
										},
										_stop : function(d, c) {
											var b = {
												handle : this.handles[c],
												value : this.value()
											};
											if (this.options.values
													&& this.options.values.length) {
												b.value = this.values(c);
												b.values = this.values()
											}
											this._trigger("stop", d, b)
										},
										_change : function(d, c) {
											var b = {
												handle : this.handles[c],
												value : this.value()
											};
											if (this.options.values
													&& this.options.values.length) {
												b.value = this.values(c);
												b.values = this.values()
											}
											this._trigger("change", d, b)
										},
										value : function(b) {
											if (arguments.length) {
												this._setData("value", b);
												this._change(null, 0)
											}
											return this._value()
										},
										values : function(b, e, c, d) {
											if (arguments.length > 1) {
												this.options.values[b] = e;
												this._refreshValue(c);
												if (!d) {
													this._change(null, b)
												}
											}
											if (arguments.length) {
												if (this.options.values
														&& this.options.values.length) {
													return this._values(b)
												} else {
													return this.value()
												}
											} else {
												return this._values()
											}
										},
										_setData : function(b, d, c) {
											a.widget.prototype._setData.apply(
													this, arguments);
											switch (b) {
											case "disabled":
												if (d) {
													this.handles.filter(
															".ui-state-focus")
															.blur();
													this.handles
															.removeClass("ui-state-hover");
													this.handles.attr(
															"disabled",
															"disabled")
												} else {
													this.handles
															.removeAttr("disabled")
												}
											case "orientation":
												this._detectOrientation();
												this.element
														.removeClass(
																"ui-slider-horizontal ui-slider-vertical")
														.addClass(
																"ui-slider-"
																		+ this.orientation);
												this._refreshValue(c);
												break;
											case "value":
												this._refreshValue(c);
												break
											}
										},
										_step : function() {
											var b = this.options.step;
											return b
										},
										_value : function() {
											var b = this.options.value;
											if (b < this._valueMin()) {
												b = this._valueMin()
											}
											if (b > this._valueMax()) {
												b = this._valueMax()
											}
											return b
										},
										_values : function(b) {
											if (arguments.length) {
												var c = this.options.values[b];
												if (c < this._valueMin()) {
													c = this._valueMin()
												}
												if (c > this._valueMax()) {
													c = this._valueMax()
												}
												return c
											} else {
												return this.options.values
											}
										},
										_valueMin : function() {
											var b = this.options.min;
											return b
										},
										_valueMax : function() {
											var b = this.options.max;
											return b
										},
										_refreshValue : function(c) {
											var f = this.options.range, d = this.options, l = this;
											if (this.options.values
													&& this.options.values.length) {
												var i, h;
												this.handles
														.each(function(p, n) {
															var o = (l
																	.values(p) - l
																	._valueMin())
																	/ (l
																			._valueMax() - l
																			._valueMin())
																	* 100;
															var m = {};
															m[l.orientation == "horizontal" ? "left"
																	: "bottom"] = o
																	+ "%";
															a(this).stop(1, 1)[c ? "animate"
																	: "css"](m,
																	d.animate);
															if (l.options.range === true) {
																if (l.orientation == "horizontal") {
																	(p == 0)
																			&& l.range
																					.stop(
																							1,
																							1)[c ? "animate"
																					: "css"]
																					(
																							{
																								left : o
																										+ "%"
																							},
																							d.animate);
																	(p == 1)
																			&& l.range[c ? "animate"
																					: "css"]
																					(
																							{
																								width : (o - lastValPercent)
																										+ "%"
																							},
																							{
																								queue : false,
																								duration : d.animate
																							})
																} else {
																	(p == 0)
																			&& l.range
																					.stop(
																							1,
																							1)[c ? "animate"
																					: "css"]
																					(
																							{
																								bottom : (o)
																										+ "%"
																							},
																							d.animate);
																	(p == 1)
																			&& l.range[c ? "animate"
																					: "css"]
																					(
																							{
																								height : (o - lastValPercent)
																										+ "%"
																							},
																							{
																								queue : false,
																								duration : d.animate
																							})
																}
															}
															lastValPercent = o
														})
											} else {
												var j = this.value(), g = this
														._valueMin(), k = this
														._valueMax(), e = k != g ? (j - g)
														/ (k - g) * 100
														: 0;
												var b = {};
												b[l.orientation == "horizontal" ? "left"
														: "bottom"] = e + "%";
												this.handle.stop(1, 1)[c ? "animate"
														: "css"](b, d.animate);
												(f == "min")
														&& (this.orientation == "horizontal")
														&& this.range
																.stop(1, 1)[c ? "animate"
																: "css"]( {
															width : e + "%"
														}, d.animate);
												(f == "max")
														&& (this.orientation == "horizontal")
														&& this.range[c ? "animate"
																: "css"]
																(
																		{
																			width : (100 - e)
																					+ "%"
																		},
																		{
																			queue : false,
																			duration : d.animate
																		});
												(f == "min")
														&& (this.orientation == "vertical")
														&& this.range
																.stop(1, 1)[c ? "animate"
																: "css"]( {
															height : e + "%"
														}, d.animate);
												(f == "max")
														&& (this.orientation == "vertical")
														&& this.range[c ? "animate"
																: "css"]
																(
																		{
																			height : (100 - e)
																					+ "%"
																		},
																		{
																			queue : false,
																			duration : d.animate
																		})
											}
										}
									}));
	a.extend(a.ui.slider, {
		getter : "value values",
		version : "1.7.2",
		eventPrefix : "slide",
		defaults : {
			animate : false,
			delay : 0,
			distance : 0,
			max : 100,
			min : 0,
			orientation : "horizontal",
			range : false,
			step : 1,
			value : 0,
			values : null
		}
	})
})(jQuery);;/*
 * jQuery UI Tabs 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Tabs
 *
 * Depends:
 *	ui.core.js
 */
(function(a) {
	a
			.widget(
					"ui.tabs",
					{
						_init : function() {
							if (this.options.deselectable !== undefined) {
								this.options.collapsible = this.options.deselectable
							}
							this._tabify(true)
						},
						_setData : function(b, c) {
							if (b == "selected") {
								if (this.options.collapsible
										&& c == this.options.selected) {
									return
								}
								this.select(c)
							} else {
								this.options[b] = c;
								if (b == "deselectable") {
									this.options.collapsible = c
								}
								this._tabify()
							}
						},
						_tabId : function(b) {
							return b.title
									&& b.title.replace(/\s/g, "_").replace(
											/[^A-Za-z0-9\-_:\.]/g, "")
									|| this.options.idPrefix + a.data(b)
						},
						_sanitizeSelector : function(b) {
							return b.replace(/:/g, "\\:")
						},
						_cookie : function() {
							var b = this.cookie
									|| (this.cookie = this.options.cookie.name
											|| "ui-tabs-"
											+ a.data(this.list[0]));
							return a.cookie.apply(null, [ b ].concat(a
									.makeArray(arguments)))
						},
						_ui : function(c, b) {
							return {
								tab : c,
								panel : b,
								index : this.anchors.index(c)
							}
						},
						_cleanup : function() {
							this.lis.filter(".ui-state-processing")
									.removeClass("ui-state-processing").find(
											"span:data(label.tabs)").each(
											function() {
												var b = a(this);
												b.html(b.data("label.tabs"))
														.removeData(
																"label.tabs")
											})
						},
						_tabify : function(n) {
							this.list = this.element.children("ul:first");
							this.lis = a("li:has(a[href])", this.list);
							this.anchors = this.lis.map(function() {
								return a("a", this)[0]
							});
							this.panels = a( []);
							var p = this, d = this.options;
							var c = /^#.+/;
							this.anchors
									.each(function(r, o) {
										var q = a(o).attr("href");
										var s = q.split("#")[0], u;
										if (s
												&& (s === location.toString()
														.split("#")[0] || (u = a("base")[0])
														&& s === u.href)) {
											q = o.hash;
											o.href = q
										}
										if (c.test(q)) {
											p.panels = p.panels.add(p
													._sanitizeSelector(q))
										} else {
											if (q != "#") {
												a.data(o, "href.tabs", q);
												a.data(o, "load.tabs", q
														.replace(/#.*$/, ""));
												var w = p._tabId(o);
												o.href = "#" + w;
												var v = a("#" + w);
												if (!v.length) {
													v = a(d.panelTemplate)
															.attr("id", w)
															.addClass(
																	"ui-tabs-panel ui-widget-content ui-corner-bottom")
															.insertAfter(
																	p.panels[r - 1]
																			|| p.list);
													v
															.data(
																	"destroy.tabs",
																	true)
												}
												p.panels = p.panels.add(v)
											} else {
												d.disabled.push(r)
											}
										}
									});
							if (n) {
								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 (d.selected === undefined) {
									if (location.hash) {
										this.anchors.each(function(q, o) {
											if (o.hash == location.hash) {
												d.selected = q;
												return false
											}
										})
									}
									if (typeof d.selected != "number"
											&& d.cookie) {
										d.selected = parseInt(p._cookie(), 10)
									}
									if (typeof d.selected != "number"
											&& this.lis
													.filter(".ui-tabs-selected").length) {
										d.selected = this.lis.index(this.lis
												.filter(".ui-tabs-selected"))
									}
									d.selected = d.selected || 0
								} else {
									if (d.selected === null) {
										d.selected = -1
									}
								}
								d.selected = ((d.selected >= 0 && this.anchors[d.selected]) || d.selected < 0) ? d.selected
										: 0;
								d.disabled = a.unique(
										d.disabled.concat(a.map(this.lis
												.filter(".ui-state-disabled"),
												function(q, o) {
													return p.lis.index(q)
												}))).sort();
								if (a.inArray(d.selected, d.disabled) != -1) {
									d.disabled.splice(a.inArray(d.selected,
											d.disabled), 1)
								}
								this.panels.addClass("ui-tabs-hide");
								this.lis
										.removeClass("ui-tabs-selected ui-state-active");
								if (d.selected >= 0 && this.anchors.length) {
									this.panels.eq(d.selected).removeClass(
											"ui-tabs-hide");
									this.lis.eq(d.selected).addClass(
											"ui-tabs-selected ui-state-active");
									p.element.queue("tabs", function() {
										p._trigger("show", null, p._ui(
												p.anchors[d.selected],
												p.panels[d.selected]))
									});
									this.load(d.selected)
								}
								a(window).bind("unload", function() {
									p.lis.add(p.anchors).unbind(".tabs");
									p.lis = p.anchors = p.panels = null
								})
							} else {
								d.selected = this.lis.index(this.lis
										.filter(".ui-tabs-selected"))
							}
							this.element[d.collapsible ? "addClass"
									: "removeClass"]("ui-tabs-collapsible");
							if (d.cookie) {
								this._cookie(d.selected, d.cookie)
							}
							for ( var g = 0, m; (m = this.lis[g]); g++) {
								a(m)[a.inArray(g, d.disabled) != -1
										&& !a(m).hasClass("ui-tabs-selected") ? "addClass"
										: "removeClass"]("ui-state-disabled")
							}
							if (d.cache === false) {
								this.anchors.removeData("cache.tabs")
							}
							this.lis.add(this.anchors).unbind(".tabs");
							if (d.event != "mouseover") {
								var f = function(o, i) {
									if (i.is(":not(.ui-state-disabled)")) {
										i.addClass("ui-state-" + o)
									}
								};
								var j = function(o, i) {
									i.removeClass("ui-state-" + o)
								};
								this.lis.bind("mouseover.tabs", function() {
									f("hover", a(this))
								});
								this.lis.bind("mouseout.tabs", function() {
									j("hover", a(this))
								});
								this.anchors.bind("focus.tabs", function() {
									f("focus", a(this).closest("li"))
								});
								this.anchors.bind("blur.tabs", function() {
									j("focus", a(this).closest("li"))
								})
							}
							var b, h;
							if (d.fx) {
								if (a.isArray(d.fx)) {
									b = d.fx[0];
									h = d.fx[1]
								} else {
									b = h = d.fx
								}
							}
							function e(i, o) {
								i.css( {
									display : ""
								});
								if (a.browser.msie && o.opacity) {
									i[0].style.removeAttribute("filter")
								}
							}
							var k = h ? function(i, o) {
								a(i).closest("li").removeClass(
										"ui-state-default").addClass(
										"ui-tabs-selected ui-state-active");
								o.hide().removeClass("ui-tabs-hide").animate(
										h,
										h.duration || "normal",
										function() {
											e(o, h);
											p._trigger("show", null, p._ui(i,
													o[0]))
										})
							} : function(i, o) {
								a(i).closest("li").removeClass(
										"ui-state-default").addClass(
										"ui-tabs-selected ui-state-active");
								o.removeClass("ui-tabs-hide");
								p._trigger("show", null, p._ui(i, o[0]))
							};
							var l = b ? function(o, i) {
								i
										.animate(
												b,
												b.duration || "normal",
												function() {
													p.lis
															.removeClass(
																	"ui-tabs-selected ui-state-active")
															.addClass(
																	"ui-state-default");
													i.addClass("ui-tabs-hide");
													e(i, b);
													p.element.dequeue("tabs")
												})
							}
									: function(o, i, q) {
										p.lis
												.removeClass(
														"ui-tabs-selected ui-state-active")
												.addClass("ui-state-default");
										i.addClass("ui-tabs-hide");
										p.element.dequeue("tabs")
									};
							this.anchors
									.bind(
											d.event + ".tabs",
											function() {
												var o = this, r = a(this)
														.closest("li"), i = p.panels
														.filter(":not(.ui-tabs-hide)"), q = a(p
														._sanitizeSelector(this.hash));
												if ((r
														.hasClass("ui-tabs-selected") && !d.collapsible)
														|| r
																.hasClass("ui-state-disabled")
														|| r
																.hasClass("ui-state-processing")
														|| p._trigger("select",
																null, p._ui(
																		this,
																		q[0])) === false) {
													this.blur();
													return false
												}
												d.selected = p.anchors
														.index(this);
												p.abort();
												if (d.collapsible) {
													if (r
															.hasClass("ui-tabs-selected")) {
														d.selected = -1;
														if (d.cookie) {
															p._cookie(
																	d.selected,
																	d.cookie)
														}
														p.element.queue("tabs",
																function() {
																	l(o, i)
																}).dequeue(
																"tabs");
														this.blur();
														return false
													} else {
														if (!i.length) {
															if (d.cookie) {
																p
																		._cookie(
																				d.selected,
																				d.cookie)
															}
															p.element.queue(
																	"tabs",
																	function() {
																		k(o, q)
																	});
															p
																	.load(p.anchors
																			.index(this));
															this.blur();
															return false
														}
													}
												}
												if (d.cookie) {
													p._cookie(d.selected,
															d.cookie)
												}
												if (q.length) {
													if (i.length) {
														p.element.queue("tabs",
																function() {
																	l(o, i)
																})
													}
													p.element.queue("tabs",
															function() {
																k(o, q)
															});
													p.load(p.anchors
															.index(this))
												} else {
													throw "jQuery UI Tabs: Mismatching fragment identifier."
												}
												if (a.browser.msie) {
													this.blur()
												}
											});
							this.anchors.bind("click.tabs", function() {
								return false
							})
						},
						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 c = a.data(this, "href.tabs");
								if (c) {
									this.href = c
								}
								var d = a(this).unbind(".tabs");
								a.each( [ "href", "load", "cache" ], function(
										e, f) {
									d.removeData(f + ".tabs")
								})
							});
							this.lis
									.unbind(".tabs")
									.add(this.panels)
									.each(
											function() {
												if (a
														.data(this,
																"destroy.tabs")) {
													a(this).remove()
												} else {
													a(this)
															.removeClass(
																	[
																			"ui-state-default",
																			"ui-corner-top",
																			"ui-tabs-selected",
																			"ui-state-active",
																			"ui-state-hover",
																			"ui-state-focus",
																			"ui-state-disabled",
																			"ui-tabs-panel",
																			"ui-widget-content",
																			"ui-corner-bottom",
																			"ui-tabs-hide" ]
																			.join(" "))
												}
											});
							if (b.cookie) {
								this._cookie(null, b.cookie)
							}
						},
						add : function(e, d, c) {
							if (c === undefined) {
								c = this.anchors.length
							}
							var b = this, g = this.options, i = a(g.tabTemplate
									.replace(/#\{href\}/g, e).replace(
											/#\{label\}/g, d)), h = !e
									.indexOf("#") ? e.replace("#", "") : this
									._tabId(a("a", i)[0]);
							i.addClass("ui-state-default ui-corner-top").data(
									"destroy.tabs", true);
							var f = a("#" + h);
							if (!f.length) {
								f = a(g.panelTemplate).attr("id", h).data(
										"destroy.tabs", true)
							}
							f
									.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");
							if (c >= this.lis.length) {
								i.appendTo(this.list);
								f.appendTo(this.list[0].parentNode)
							} else {
								i.insertBefore(this.lis[c]);
								f.insertBefore(this.panels[c])
							}
							g.disabled = a.map(g.disabled, function(k, j) {
								return k >= c ? ++k : k
							});
							this._tabify();
							if (this.anchors.length == 1) {
								i.addClass("ui-tabs-selected ui-state-active");
								f.removeClass("ui-tabs-hide");
								this.element.queue("tabs", function() {
									b._trigger("show", null, b._ui(
											b.anchors[0], b.panels[0]))
								});
								this.load(0)
							}
							this._trigger("add", null, this._ui(
									this.anchors[c], this.panels[c]))
						},
						remove : function(b) {
							var d = this.options, e = this.lis.eq(b).remove(), c = this.panels
									.eq(b).remove();
							if (e.hasClass("ui-tabs-selected")
									&& this.anchors.length > 1) {
								this
										.select(b
												+ (b + 1 < this.anchors.length ? 1
														: -1))
							}
							d.disabled = a.map(a.grep(d.disabled,
									function(g, f) {
										return g != b
									}), function(g, f) {
								return g >= b ? --g : g
							});
							this._tabify();
							this._trigger("remove", null, this._ui(
									e.find("a")[0], c[0]))
						},
						enable : function(b) {
							var c = this.options;
							if (a.inArray(b, c.disabled) == -1) {
								return
							}
							this.lis.eq(b).removeClass("ui-state-disabled");
							c.disabled = a.grep(c.disabled, function(e, d) {
								return e != b
							});
							this._trigger("enable", null, this._ui(
									this.anchors[b], this.panels[b]))
						},
						disable : function(c) {
							var b = this, d = this.options;
							if (c != d.selected) {
								this.lis.eq(c).addClass("ui-state-disabled");
								d.disabled.push(c);
								d.disabled.sort();
								this._trigger("disable", null, this._ui(
										this.anchors[c], this.panels[c]))
							}
						},
						select : function(b) {
							if (typeof b == "string") {
								b = this.anchors.index(this.anchors
										.filter("[href$=" + b + "]"))
							} else {
								if (b === null) {
									b = -1
								}
							}
							if (b == -1 && this.options.collapsible) {
								b = this.options.selected
							}
							this.anchors.eq(b).trigger(
									this.options.event + ".tabs")
						},
						load : function(e) {
							var c = this, g = this.options, b = this.anchors
									.eq(e)[0], d = a.data(b, "load.tabs");
							this.abort();
							if (!d || this.element.queue("tabs").length !== 0
									&& a.data(b, "cache.tabs")) {
								this.element.dequeue("tabs");
								return
							}
							this.lis.eq(e).addClass("ui-state-processing");
							if (g.spinner) {
								var f = a("span", b);
								f.data("label.tabs", f.html()).html(g.spinner)
							}
							this.xhr = a.ajax(a.extend( {}, g.ajaxOptions, {
								url : d,
								success : function(i, h) {
									a(c._sanitizeSelector(b.hash)).html(i);
									c._cleanup();
									if (g.cache) {
										a.data(b, "cache.tabs", true)
									}
									c._trigger("load", null, c._ui(
											c.anchors[e], c.panels[e]));
									try {
										g.ajaxOptions.success(i, h)
									} catch (j) {
									}
									c.element.dequeue("tabs")
								}
							}))
						},
						abort : function() {
							this.element.queue( []);
							this.panels.stop(false, true);
							if (this.xhr) {
								this.xhr.abort();
								delete this.xhr
							}
							this._cleanup()
						},
						url : function(c, b) {
							this.anchors.eq(c).removeData("cache.tabs").data(
									"load.tabs", b)
						},
						length : function() {
							return this.anchors.length
						}
					});
	a
			.extend(
					a.ui.tabs,
					{
						version : "1.7.2",
						getter : "length",
						defaults : {
							ajaxOptions : null,
							cache : false,
							cookie : null,
							collapsible : false,
							disabled : [],
							event : "click",
							fx : null,
							idPrefix : "ui-tabs-",
							panelTemplate : "<div></div>",
							spinner : "<em>Loading&#8230;</em>",
							tabTemplate : '<li><a href="#{href}"><span>#{label}</span></a></li>'
						}
					});
	a.extend(a.ui.tabs.prototype, {
		rotation : null,
		rotate : function(d, f) {
			var b = this, g = this.options;
			var c = b._rotate || (b._rotate = function(h) {
				clearTimeout(b.rotation);
				b.rotation = setTimeout(function() {
					var i = g.selected;
					b.select(++i < b.anchors.length ? i : 0)
				}, d);
				if (h) {
					h.stopPropagation()
				}
			});
			var e = b._unrotate || (b._unrotate = !f ? function(h) {
				if (h.clientX) {
					b.rotate(null)
				}
			} : function(h) {
				t = g.selected;
				c()
			});
			if (d) {
				this.element.bind("tabsshow", c);
				this.anchors.bind(g.event + ".tabs", e);
				c()
			} else {
				clearTimeout(b.rotation);
				this.element.unbind("tabsshow", c);
				this.anchors.unbind(g.event + ".tabs", e);
				delete this._rotate;
				delete this._unrotate
			}
		}
	})
})(jQuery);;/*
 * jQuery UI Datepicker 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Datepicker
 *
 * Depends:
 *	ui.core.js
 */
(function($) {
	$.extend($.ui, {
		datepicker : {
			version : "1.7.2"
		}
	});
	var PROP_NAME = "datepicker";
	function Datepicker() {
		this.debug = false;
		this._curInst = null;
		this._keyEvent = false;
		this._disabledInputs = [];
		this._datepickerShowing = false;
		this._inDialog = 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" ],
			dateFormat : "mm/dd/yy",
			firstDay : 0,
			isRTL : false
		};
		this._defaults = {
			showOn : "focus",
			showAnim : "show",
			showOptions : {},
			defaultDate : null,
			appendText : "",
			buttonText : "...",
			buttonImage : "",
			buttonImageOnly : false,
			hideIfNoPrevNext : false,
			navigationAsDateFormat : false,
			gotoCurrent : false,
			changeMonth : false,
			changeYear : false,
			showMonthAfterYear : false,
			yearRange : "-10:+10",
			showOtherMonths : false,
			calculateWeek : this.iso8601Week,
			shortYearCutoff : "+10",
			minDate : null,
			maxDate : null,
			duration : "normal",
			beforeShowDay : null,
			beforeShow : null,
			onSelect : null,
			onChangeMonthYear : null,
			onClose : null,
			numberOfMonths : 1,
			showCurrentAtPos : 0,
			stepMonths : 1,
			stepBigMonths : 12,
			altField : "",
			altFormat : "",
			constrainInput : true,
			showButtonPanel : false
		};
		$.extend(this._defaults, this.regional[""]);
		this.dpDiv = $('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>')
	}
	$
			.extend(
					Datepicker.prototype,
					{
						markerClassName : "hasDatepicker",
						log : function() {
							if (this.debug) {
								console.log.apply("", arguments)
							}
						},
						setDefaults : function(settings) {
							extendRemove(this._defaults, settings || {});
							return this
						},
						_attachDatepicker : function(target, settings) {
							var inlineSettings = null;
							for ( var attrName in this._defaults) {
								var attrValue = target.getAttribute("date:"
										+ attrName);
								if (attrValue) {
									inlineSettings = inlineSettings || {};
									try {
										inlineSettings[attrName] = eval(attrValue)
									} catch (err) {
										inlineSettings[attrName] = attrValue
									}
								}
							}
							var nodeName = target.nodeName.toLowerCase();
							var inline = (nodeName == "div" || nodeName == "span");
							if (!target.id) {
								target.id = "dp" + (++this.uuid)
							}
							var inst = this._newInst($(target), inline);
							inst.settings = $.extend( {}, settings || {},
									inlineSettings || {});
							if (nodeName == "input") {
								this._connectDatepicker(target, inst)
							} else {
								if (inline) {
									this._inlineDatepicker(target, inst)
								}
							}
						},
						_newInst : function(target, inline) {
							var id = target[0].id.replace(/([:\[\]\.])/g,
									"\\\\$1");
							return {
								id : id,
								input : target,
								selectedDay : 0,
								selectedMonth : 0,
								selectedYear : 0,
								drawMonth : 0,
								drawYear : 0,
								inline : inline,
								dpDiv : (!inline ? this.dpDiv
										: $('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))
							}
						},
						_connectDatepicker : function(target, inst) {
							var input = $(target);
							inst.append = $( []);
							inst.trigger = $( []);
							if (input.hasClass(this.markerClassName)) {
								return
							}
							var appendText = this._get(inst, "appendText");
							var isRTL = this._get(inst, "isRTL");
							if (appendText) {
								inst.append = $('<span class="'
										+ this._appendClass + '">' + appendText
										+ "</span>");
								input[isRTL ? "before" : "after"](inst.append)
							}
							var showOn = this._get(inst, "showOn");
							if (showOn == "focus" || showOn == "both") {
								input.focus(this._showDatepicker)
							}
							if (showOn == "button" || showOn == "both") {
								var buttonText = this._get(inst, "buttonText");
								var buttonImage = this
										._get(inst, "buttonImage");
								inst.trigger = $(this._get(inst,
										"buttonImageOnly") ? $("<img/>")
										.addClass(this._triggerClass).attr( {
											src : buttonImage,
											alt : buttonText,
											title : buttonText
										}) : $(
										'<button type="button"></button>')
										.addClass(this._triggerClass).html(
												buttonImage == "" ? buttonText
														: $("<img/>").attr( {
															src : buttonImage,
															alt : buttonText,
															title : buttonText
														})));
								input[isRTL ? "before" : "after"](inst.trigger);
								inst.trigger
										.click(function() {
											if ($.datepicker._datepickerShowing
													&& $.datepicker._lastInput == target) {
												$.datepicker._hideDatepicker()
											} else {
												$.datepicker
														._showDatepicker(target)
											}
											return false
										})
							}
							input.addClass(this.markerClassName).keydown(
									this._doKeyDown).keypress(this._doKeyPress)
									.bind("setData.datepicker",
											function(event, key, value) {
												inst.settings[key] = value
											}).bind("getData.datepicker",
											function(event, key) {
												return this._get(inst, key)
											});
							$.data(target, PROP_NAME, inst)
						},
						_inlineDatepicker : function(target, inst) {
							var divSpan = $(target);
							if (divSpan.hasClass(this.markerClassName)) {
								return
							}
							divSpan.addClass(this.markerClassName).append(
									inst.dpDiv).bind("setData.datepicker",
									function(event, key, value) {
										inst.settings[key] = value
									}).bind("getData.datepicker",
									function(event, key) {
										return this._get(inst, key)
									});
							$.data(target, PROP_NAME, inst);
							this._setDate(inst, this._getDefaultDate(inst));
							this._updateDatepicker(inst);
							this._updateAlternate(inst)
						},
						_dialogDatepicker : function(input, dateText, onSelect,
								settings, pos) {
							var inst = this._dialogInst;
							if (!inst) {
								var id = "dp" + (++this.uuid);
								this._dialogInput = $('<input type="text" id="' + id + '" size="1" style="position: absolute; top: -100px;"/>');
								this._dialogInput.keydown(this._doKeyDown);
								$("body").append(this._dialogInput);
								inst = this._dialogInst = this._newInst(
										this._dialogInput, false);
								inst.settings = {};
								$.data(this._dialogInput[0], PROP_NAME, inst)
							}
							extendRemove(inst.settings, settings || {});
							this._dialogInput.val(dateText);
							this._pos = (pos ? (pos.length ? pos : [ pos.pageX,
									pos.pageY ]) : null);
							if (!this._pos) {
								var browserWidth = window.innerWidth
										|| document.documentElement.clientWidth
										|| document.body.clientWidth;
								var browserHeight = window.innerHeight
										|| document.documentElement.clientHeight
										|| document.body.clientHeight;
								var scrollX = document.documentElement.scrollLeft
										|| document.body.scrollLeft;
								var scrollY = document.documentElement.scrollTop
										|| document.body.scrollTop;
								this._pos = [
										(browserWidth / 2) - 100 + scrollX,
										(browserHeight / 2) - 150 + scrollY ]
							}
							this._dialogInput.css("left", this._pos[0] + "px")
									.css("top", this._pos[1] + "px");
							inst.settings.onSelect = onSelect;
							this._inDialog = true;
							this.dpDiv.addClass(this._dialogClass);
							this._showDatepicker(this._dialogInput[0]);
							if ($.blockUI) {
								$.blockUI(this.dpDiv)
							}
							$.data(this._dialogInput[0], PROP_NAME, inst);
							return this
						},
						_destroyDatepicker : function(target) {
							var $target = $(target);
							var inst = $.data(target, PROP_NAME);
							if (!$target.hasClass(this.markerClassName)) {
								return
							}
							var nodeName = target.nodeName.toLowerCase();
							$.removeData(target, PROP_NAME);
							if (nodeName == "input") {
								inst.append.remove();
								inst.trigger.remove();
								$target.removeClass(this.markerClassName)
										.unbind("focus", this._showDatepicker)
										.unbind("keydown", this._doKeyDown)
										.unbind("keypress", this._doKeyPress)
							} else {
								if (nodeName == "div" || nodeName == "span") {
									$target.removeClass(this.markerClassName)
											.empty()
								}
							}
						},
						_enableDatepicker : function(target) {
							var $target = $(target);
							var inst = $.data(target, PROP_NAME);
							if (!$target.hasClass(this.markerClassName)) {
								return
							}
							var nodeName = target.nodeName.toLowerCase();
							if (nodeName == "input") {
								target.disabled = false;
								inst.trigger.filter("button").each(function() {
									this.disabled = false
								}).end().filter("img").css( {
									opacity : "1.0",
									cursor : ""
								})
							} else {
								if (nodeName == "div" || nodeName == "span") {
									var inline = $target.children("."
											+ this._inlineClass);
									inline.children().removeClass(
											"ui-state-disabled")
								}
							}
							this._disabledInputs = $.map(this._disabledInputs,
									function(value) {
										return (value == target ? null : value)
									})
						},
						_disableDatepicker : function(target) {
							var $target = $(target);
							var inst = $.data(target, PROP_NAME);
							if (!$target.hasClass(this.markerClassName)) {
								return
							}
							var nodeName = target.nodeName.toLowerCase();
							if (nodeName == "input") {
								target.disabled = true;
								inst.trigger.filter("button").each(function() {
									this.disabled = true
								}).end().filter("img").css( {
									opacity : "0.5",
									cursor : "default"
								})
							} else {
								if (nodeName == "div" || nodeName == "span") {
									var inline = $target.children("."
											+ this._inlineClass);
									inline.children().addClass(
											"ui-state-disabled")
								}
							}
							this._disabledInputs = $.map(this._disabledInputs,
									function(value) {
										return (value == target ? null : value)
									});
							this._disabledInputs[this._disabledInputs.length] = target
						},
						_isDisabledDatepicker : function(target) {
							if (!target) {
								return false
							}
							for ( var i = 0; i < this._disabledInputs.length; i++) {
								if (this._disabledInputs[i] == target) {
									return true
								}
							}
							return false
						},
						_getInst : function(target) {
							try {
								return $.data(target, PROP_NAME)
							} catch (err) {
								throw "Missing instance data for this datepicker"
							}
						},
						_optionDatepicker : function(target, name, value) {
							var inst = this._getInst(target);
							if (arguments.length == 2
									&& typeof name == "string") {
								return (name == "defaults" ? $.extend( {},
										$.datepicker._defaults)
										: (inst ? (name == "all" ? $.extend(
												{}, inst.settings) : this._get(
												inst, name)) : null))
							}
							var settings = name || {};
							if (typeof name == "string") {
								settings = {};
								settings[name] = value
							}
							if (inst) {
								if (this._curInst == inst) {
									this._hideDatepicker(null)
								}
								var date = this._getDateDatepicker(target);
								extendRemove(inst.settings, settings);
								this._setDateDatepicker(target, date);
								this._updateDatepicker(inst)
							}
						},
						_changeDatepicker : function(target, name, value) {
							this._optionDatepicker(target, name, value)
						},
						_refreshDatepicker : function(target) {
							var inst = this._getInst(target);
							if (inst) {
								this._updateDatepicker(inst)
							}
						},
						_setDateDatepicker : function(target, date, endDate) {
							var inst = this._getInst(target);
							if (inst) {
								this._setDate(inst, date, endDate);
								this._updateDatepicker(inst);
								this._updateAlternate(inst)
							}
						},
						_getDateDatepicker : function(target) {
							var inst = this._getInst(target);
							if (inst && !inst.inline) {
								this._setDateFromField(inst)
							}
							return (inst ? this._getDate(inst) : null)
						},
						_doKeyDown : function(event) {
							var inst = $.datepicker._getInst(event.target);
							var handled = true;
							var isRTL = inst.dpDiv.is(".ui-datepicker-rtl");
							inst._keyEvent = true;
							if ($.datepicker._datepickerShowing) {
								switch (event.keyCode) {
								case 9:
									$.datepicker._hideDatepicker(null, "");
									break;
								case 13:
									var sel = $("td."
											+ $.datepicker._dayOverClass
											+ ", td."
											+ $.datepicker._currentClass,
											inst.dpDiv);
									if (sel[0]) {
										$.datepicker._selectDay(event.target,
												inst.selectedMonth,
												inst.selectedYear, sel[0])
									} else {
										$.datepicker._hideDatepicker(null,
												$.datepicker._get(inst,
														"duration"))
									}
									return false;
									break;
								case 27:
									$.datepicker
											._hideDatepicker(null, $.datepicker
													._get(inst, "duration"));
									break;
								case 33:
									$.datepicker
											._adjustDate(
													event.target,
													(event.ctrlKey ? -$.datepicker
															._get(inst,
																	"stepBigMonths")
															: -$.datepicker
																	._get(inst,
																			"stepMonths")),
													"M");
									break;
								case 34:
									$.datepicker
											._adjustDate(
													event.target,
													(event.ctrlKey ? +$.datepicker
															._get(inst,
																	"stepBigMonths")
															: +$.datepicker
																	._get(inst,
																			"stepMonths")),
													"M");
									break;
								case 35:
									if (event.ctrlKey || event.metaKey) {
										$.datepicker._clearDate(event.target)
									}
									handled = event.ctrlKey || event.metaKey;
									break;
								case 36:
									if (event.ctrlKey || event.metaKey) {
										$.datepicker._gotoToday(event.target)
									}
									handled = event.ctrlKey || event.metaKey;
									break;
								case 37:
									if (event.ctrlKey || event.metaKey) {
										$.datepicker._adjustDate(event.target,
												(isRTL ? +1 : -1), "D")
									}
									handled = event.ctrlKey || event.metaKey;
									if (event.originalEvent.altKey) {
										$.datepicker
												._adjustDate(
														event.target,
														(event.ctrlKey ? -$.datepicker
																._get(inst,
																		"stepBigMonths")
																: -$.datepicker
																		._get(
																				inst,
																				"stepMonths")),
														"M")
									}
									break;
								case 38:
									if (event.ctrlKey || event.metaKey) {
										$.datepicker._adjustDate(event.target,
												-7, "D")
									}
									handled = event.ctrlKey || event.metaKey;
									break;
								case 39:
									if (event.ctrlKey || event.metaKey) {
										$.datepicker._adjustDate(event.target,
												(isRTL ? -1 : +1), "D")
									}
									handled = event.ctrlKey || event.metaKey;
									if (event.originalEvent.altKey) {
										$.datepicker
												._adjustDate(
														event.target,
														(event.ctrlKey ? +$.datepicker
																._get(inst,
																		"stepBigMonths")
																: +$.datepicker
																		._get(
																				inst,
																				"stepMonths")),
														"M")
									}
									break;
								case 40:
									if (event.ctrlKey || event.metaKey) {
										$.datepicker._adjustDate(event.target,
												+7, "D")
									}
									handled = event.ctrlKey || event.metaKey;
									break;
								default:
									handled = false
								}
							} else {
								if (event.keyCode == 36 && event.ctrlKey) {
									$.datepicker._showDatepicker(this)
								} else {
									handled = false
								}
							}
							if (handled) {
								event.preventDefault();
								event.stopPropagation()
							}
						},
						_doKeyPress : function(event) {
							var inst = $.datepicker._getInst(event.target);
							if ($.datepicker._get(inst, "constrainInput")) {
								var chars = $.datepicker
										._possibleChars($.datepicker._get(inst,
												"dateFormat"));
								var chr = String
										.fromCharCode(event.charCode == undefined ? event.keyCode
												: event.charCode);
								return event.ctrlKey
										|| (chr < " " || !chars || chars
												.indexOf(chr) > -1)
							}
						},
						_showDatepicker : function(input) {
							input = input.target || input;
							if (input.nodeName.toLowerCase() != "input") {
								input = $("input", input.parentNode)[0]
							}
							if ($.datepicker._isDisabledDatepicker(input)
									|| $.datepicker._lastInput == input) {
								return
							}
							var inst = $.datepicker._getInst(input);
							var beforeShow = $.datepicker._get(inst,
									"beforeShow");
							extendRemove(inst.settings,
									(beforeShow ? beforeShow.apply(input, [
											input, inst ]) : {}));
							$.datepicker._hideDatepicker(null, "");
							$.datepicker._lastInput = input;
							$.datepicker._setDateFromField(inst);
							if ($.datepicker._inDialog) {
								input.value = ""
							}
							if (!$.datepicker._pos) {
								$.datepicker._pos = $.datepicker
										._findPos(input);
								$.datepicker._pos[1] += input.offsetHeight
							}
							var isFixed = false;
							$(input).parents().each(function() {
								isFixed |= $(this).css("position") == "fixed";
								return !isFixed
							});
							if (isFixed && $.browser.opera) {
								$.datepicker._pos[0] -= document.documentElement.scrollLeft;
								$.datepicker._pos[1] -= document.documentElement.scrollTop
							}
							var offset = {
								left : $.datepicker._pos[0],
								top : $.datepicker._pos[1]
							};
							$.datepicker._pos = null;
							inst.rangeStart = null;
							inst.dpDiv.css( {
								position : "absolute",
								display : "block",
								top : "-1000px"
							});
							$.datepicker._updateDatepicker(inst);
							offset = $.datepicker._checkOffset(inst, offset,
									isFixed);
							inst.dpDiv
									.css( {
										position : ($.datepicker._inDialog
												&& $.blockUI ? "static"
												: (isFixed ? "fixed"
														: "absolute")),
										display : "none",
										left : offset.left + "px",
										top : offset.top + "px"
									});
							if (!inst.inline) {
								var showAnim = $.datepicker._get(inst,
										"showAnim")
										|| "show";
								var duration = $.datepicker._get(inst,
										"duration");
								var postProcess = function() {
									$.datepicker._datepickerShowing = true;
									if ($.browser.msie
											&& parseInt($.browser.version, 10) < 7) {
										$("iframe.ui-datepicker-cover").css( {
											width : inst.dpDiv.width() + 4,
											height : inst.dpDiv.height() + 4
										})
									}
								};
								if ($.effects && $.effects[showAnim]) {
									inst.dpDiv.show(showAnim, $.datepicker
											._get(inst, "showOptions"),
											duration, postProcess)
								} else {
									inst.dpDiv[showAnim](duration, postProcess)
								}
								if (duration == "") {
									postProcess()
								}
								if (inst.input[0].type != "hidden") {
									inst.input[0].focus()
								}
								$.datepicker._curInst = inst
							}
						},
						_updateDatepicker : function(inst) {
							var dims = {
								width : inst.dpDiv.width() + 4,
								height : inst.dpDiv.height() + 4
							};
							var self = this;
							inst.dpDiv
									.empty()
									.append(this._generateHTML(inst))
									.find("iframe.ui-datepicker-cover")
									.css( {
										width : dims.width,
										height : dims.height
									})
									.end()
									.find(
											"button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a")
									.bind(
											"mouseout",
											function() {
												$(this).removeClass(
														"ui-state-hover");
												if (this.className
														.indexOf("ui-datepicker-prev") != -1) {
													$(this)
															.removeClass(
																	"ui-datepicker-prev-hover")
												}
												if (this.className
														.indexOf("ui-datepicker-next") != -1) {
													$(this)
															.removeClass(
																	"ui-datepicker-next-hover")
												}
											})
									.bind(
											"mouseover",
											function() {
												if (!self
														._isDisabledDatepicker(inst.inline ? inst.dpDiv
																.parent()[0]
																: inst.input[0])) {
													$(this)
															.parents(
																	".ui-datepicker-calendar")
															.find("a")
															.removeClass(
																	"ui-state-hover");
													$(this).addClass(
															"ui-state-hover");
													if (this.className
															.indexOf("ui-datepicker-prev") != -1) {
														$(this)
																.addClass(
																		"ui-datepicker-prev-hover")
													}
													if (this.className
															.indexOf("ui-datepicker-next") != -1) {
														$(this)
																.addClass(
																		"ui-datepicker-next-hover")
													}
												}
											}).end().find(
											"." + this._dayOverClass + " a")
									.trigger("mouseover").end();
							var numMonths = this._getNumberOfMonths(inst);
							var cols = numMonths[1];
							var width = 17;
							if (cols > 1) {
								inst.dpDiv.addClass(
										"ui-datepicker-multi-" + cols).css(
										"width", (width * cols) + "em")
							} else {
								inst.dpDiv
										.removeClass(
												"ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4")
										.width("")
							}
							inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? "add"
									: "remove")
									+ "Class"]("ui-datepicker-multi");
							inst.dpDiv[(this._get(inst, "isRTL") ? "add"
									: "remove")
									+ "Class"]("ui-datepicker-rtl");
							if (inst.input && inst.input[0].type != "hidden"
									&& inst == $.datepicker._curInst) {
								$(inst.input[0]).focus()
							}
						},
						_checkOffset : function(inst, offset, isFixed) {
							var dpWidth = inst.dpDiv.outerWidth();
							var dpHeight = inst.dpDiv.outerHeight();
							var inputWidth = inst.input ? inst.input
									.outerWidth() : 0;
							var inputHeight = inst.input ? inst.input
									.outerHeight() : 0;
							var viewWidth = (window.innerWidth
									|| document.documentElement.clientWidth || document.body.clientWidth)
									+ $(document).scrollLeft();
							var viewHeight = (window.innerHeight
									|| document.documentElement.clientHeight || document.body.clientHeight)
									+ $(document).scrollTop();
							offset.left -= (this._get(inst, "isRTL") ? (dpWidth - inputWidth)
									: 0);
							offset.left -= (isFixed && offset.left == inst.input
									.offset().left) ? $(document).scrollLeft()
									: 0;
							offset.top -= (isFixed && offset.top == (inst.input
									.offset().top + inputHeight)) ? $(document)
									.scrollTop() : 0;
							offset.left -= (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ? Math
									.abs(offset.left + dpWidth - viewWidth)
									: 0;
							offset.top -= (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ? Math
									.abs(offset.top + dpHeight + inputHeight
											* 2 - viewHeight)
									: 0;
							return offset
						},
						_findPos : function(obj) {
							while (obj
									&& (obj.type == "hidden" || obj.nodeType != 1)) {
								obj = obj.nextSibling
							}
							var position = $(obj).offset();
							return [ position.left, position.top ]
						},
						_hideDatepicker : function(input, duration) {
							var inst = this._curInst;
							if (!inst
									|| (input && inst != $.data(input,
											PROP_NAME))) {
								return
							}
							if (inst.stayOpen) {
								this._selectDate("#" + inst.id, this
										._formatDate(inst, inst.currentDay,
												inst.currentMonth,
												inst.currentYear))
							}
							inst.stayOpen = false;
							if (this._datepickerShowing) {
								duration = (duration != null ? duration : this
										._get(inst, "duration"));
								var showAnim = this._get(inst, "showAnim");
								var postProcess = function() {
									$.datepicker._tidyDialog(inst)
								};
								if (duration != "" && $.effects
										&& $.effects[showAnim]) {
									inst.dpDiv.hide(showAnim, $.datepicker
											._get(inst, "showOptions"),
											duration, postProcess)
								} else {
									inst.dpDiv[(duration == "" ? "hide"
											: (showAnim == "slideDown" ? "slideUp"
													: (showAnim == "fadeIn" ? "fadeOut"
															: "hide")))](
											duration, postProcess)
								}
								if (duration == "") {
									this._tidyDialog(inst)
								}
								var onClose = this._get(inst, "onClose");
								if (onClose) {
									onClose
											.apply(
													(inst.input ? inst.input[0]
															: null),
													[
															(inst.input ? inst.input
																	.val()
																	: ""), inst ])
								}
								this._datepickerShowing = false;
								this._lastInput = null;
								if (this._inDialog) {
									this._dialogInput.css( {
										position : "absolute",
										left : "0",
										top : "-100px"
									});
									if ($.blockUI) {
										$.unblockUI();
										$("body").append(this.dpDiv)
									}
								}
								this._inDialog = false
							}
							this._curInst = null
						},
						_tidyDialog : function(inst) {
							inst.dpDiv.removeClass(this._dialogClass).unbind(
									".ui-datepicker-calendar")
						},
						_checkExternalClick : function(event) {
							if (!$.datepicker._curInst) {
								return
							}
							var $target = $(event.target);
							if (($target.parents("#" + $.datepicker._mainDivId).length == 0)
									&& !$target
											.hasClass($.datepicker.markerClassName)
									&& !$target
											.hasClass($.datepicker._triggerClass)
									&& $.datepicker._datepickerShowing
									&& !($.datepicker._inDialog && $.blockUI)) {
								$.datepicker._hideDatepicker(null, "")
							}
						},
						_adjustDate : function(id, offset, period) {
							var target = $(id);
							var inst = this._getInst(target[0]);
							if (this._isDisabledDatepicker(target[0])) {
								return
							}
							this._adjustInstDate(inst, offset
									+ (period == "M" ? this._get(inst,
											"showCurrentAtPos") : 0), period);
							this._updateDatepicker(inst)
						},
						_gotoToday : function(id) {
							var target = $(id);
							var inst = this._getInst(target[0]);
							if (this._get(inst, "gotoCurrent")
									&& inst.currentDay) {
								inst.selectedDay = inst.currentDay;
								inst.drawMonth = inst.selectedMonth = inst.currentMonth;
								inst.drawYear = inst.selectedYear = inst.currentYear
							} else {
								var date = new Date();
								inst.selectedDay = date.getDate();
								inst.drawMonth = inst.selectedMonth = date
										.getMonth();
								inst.drawYear = inst.selectedYear = date
										.getFullYear()
							}
							this._notifyChange(inst);
							this._adjustDate(target)
						},
						_selectMonthYear : function(id, select, period) {
							var target = $(id);
							var inst = this._getInst(target[0]);
							inst._selectingMonthYear = false;
							inst["selected"
									+ (period == "M" ? "Month" : "Year")] = inst["draw"
									+ (period == "M" ? "Month" : "Year")] = parseInt(
									select.options[select.selectedIndex].value,
									10);
							this._notifyChange(inst);
							this._adjustDate(target)
						},
						_clickMonthYear : function(id) {
							var target = $(id);
							var inst = this._getInst(target[0]);
							if (inst.input && inst._selectingMonthYear
									&& !$.browser.msie) {
								inst.input[0].focus()
							}
							inst._selectingMonthYear = !inst._selectingMonthYear
						},
						_selectDay : function(id, month, year, td) {
							var target = $(id);
							if ($(td).hasClass(this._unselectableClass)
									|| this._isDisabledDatepicker(target[0])) {
								return
							}
							var inst = this._getInst(target[0]);
							inst.selectedDay = inst.currentDay = $("a", td)
									.html();
							inst.selectedMonth = inst.currentMonth = month;
							inst.selectedYear = inst.currentYear = year;
							if (inst.stayOpen) {
								inst.endDay = inst.endMonth = inst.endYear = null
							}
							this._selectDate(id, this._formatDate(inst,
									inst.currentDay, inst.currentMonth,
									inst.currentYear));
							if (inst.stayOpen) {
								inst.rangeStart = this
										._daylightSavingAdjust(new Date(
												inst.currentYear,
												inst.currentMonth,
												inst.currentDay));
								this._updateDatepicker(inst)
							}
						},
						_clearDate : function(id) {
							var target = $(id);
							var inst = this._getInst(target[0]);
							inst.stayOpen = false;
							inst.endDay = inst.endMonth = inst.endYear = inst.rangeStart = null;
							this._selectDate(target, "")
						},
						_selectDate : function(id, dateStr) {
							var target = $(id);
							var inst = this._getInst(target[0]);
							dateStr = (dateStr != null ? dateStr : this
									._formatDate(inst));
							if (inst.input) {
								inst.input.val(dateStr)
							}
							this._updateAlternate(inst);
							var onSelect = this._get(inst, "onSelect");
							if (onSelect) {
								onSelect.apply((inst.input ? inst.input[0]
										: null), [ dateStr, inst ])
							} else {
								if (inst.input) {
									inst.input.trigger("change")
								}
							}
							if (inst.inline) {
								this._updateDatepicker(inst)
							} else {
								if (!inst.stayOpen) {
									this._hideDatepicker(null, this._get(inst,
											"duration"));
									this._lastInput = inst.input[0];
									if (typeof (inst.input[0]) != "object") {
										inst.input[0].focus()
									}
									this._lastInput = null
								}
							}
						},
						_updateAlternate : function(inst) {
							var altField = this._get(inst, "altField");
							if (altField) {
								var altFormat = this._get(inst, "altFormat")
										|| this._get(inst, "dateFormat");
								var date = this._getDate(inst);
								dateStr = this.formatDate(altFormat, date, this
										._getFormatConfig(inst));
								$(altField).each(function() {
									$(this).val(dateStr)
								})
							}
						},
						noWeekends : function(date) {
							var day = date.getDay();
							return [ (day > 0 && day < 6), "" ]
						},
						iso8601Week : function(date) {
							var checkDate = new Date(date.getFullYear(), date
									.getMonth(), date.getDate());
							var firstMon = new Date(checkDate.getFullYear(),
									1 - 1, 4);
							var firstDay = firstMon.getDay() || 7;
							firstMon.setDate(firstMon.getDate() + 1 - firstDay);
							if (firstDay < 4 && checkDate < firstMon) {
								checkDate.setDate(checkDate.getDate() - 3);
								return $.datepicker.iso8601Week(checkDate)
							} else {
								if (checkDate > new Date(checkDate
										.getFullYear(), 12 - 1, 28)) {
									firstDay = new Date(
											checkDate.getFullYear() + 1, 1 - 1,
											4).getDay() || 7;
									if (firstDay > 4
											&& (checkDate.getDay() || 7) < firstDay - 3) {
										return 1
									}
								}
							}
							return Math
									.floor(((checkDate - firstMon) / 86400000) / 7) + 1
						},
						parseDate : function(format, value, settings) {
							if (format == null || value == null) {
								throw "Invalid arguments"
							}
							value = (typeof value == "object" ? value
									.toString() : value + "");
							if (value == "") {
								return null
							}
							var shortYearCutoff = (settings ? settings.shortYearCutoff
									: null)
									|| this._defaults.shortYearCutoff;
							var dayNamesShort = (settings ? settings.dayNamesShort
									: null)
									|| this._defaults.dayNamesShort;
							var dayNames = (settings ? settings.dayNames : null)
									|| this._defaults.dayNames;
							var monthNamesShort = (settings ? settings.monthNamesShort
									: null)
									|| this._defaults.monthNamesShort;
							var monthNames = (settings ? settings.monthNames
									: null)
									|| this._defaults.monthNames;
							var year = -1;
							var month = -1;
							var day = -1;
							var doy = -1;
							var literal = false;
							var lookAhead = function(match) {
								var matches = (iFormat + 1 < format.length && format
										.charAt(iFormat + 1) == match);
								if (matches) {
									iFormat++
								}
								return matches
							};
							var getNumber = function(match) {
								lookAhead(match);
								var origSize = (match == "@" ? 14
										: (match == "y" ? 4 : (match == "o" ? 3
												: 2)));
								var size = origSize;
								var num = 0;
								while (size > 0 && iValue < value.length
										&& value.charAt(iValue) >= "0"
										&& value.charAt(iValue) <= "9") {
									num = num
											* 10
											+ parseInt(value.charAt(iValue++),
													10);
									size--
								}
								if (size == origSize) {
									throw "Missing number at position "
											+ iValue
								}
								return num
							};
							var getName = function(match, shortNames, longNames) {
								var names = (lookAhead(match) ? longNames
										: shortNames);
								var size = 0;
								for ( var j = 0; j < names.length; j++) {
									size = Math.max(size, names[j].length)
								}
								var name = "";
								var iInit = iValue;
								while (size > 0 && iValue < value.length) {
									name += value.charAt(iValue++);
									for ( var i = 0; i < names.length; i++) {
										if (name == names[i]) {
											return i + 1
										}
									}
									size--
								}
								throw "Unknown name at position " + iInit
							};
							var checkLiteral = function() {
								if (value.charAt(iValue) != format
										.charAt(iFormat)) {
									throw "Unexpected literal at position "
											+ iValue
								}
								iValue++
							};
							var iValue = 0;
							for ( var iFormat = 0; iFormat < format.length; iFormat++) {
								if (literal) {
									if (format.charAt(iFormat) == "'"
											&& !lookAhead("'")) {
										literal = false
									} else {
										checkLiteral()
									}
								} else {
									switch (format.charAt(iFormat)) {
									case "d":
										day = getNumber("d");
										break;
									case "D":
										getName("D", dayNamesShort, dayNames);
										break;
									case "o":
										doy = getNumber("o");
										break;
									case "m":
										month = getNumber("m");
										break;
									case "M":
										month = getName("M", monthNamesShort,
												monthNames);
										break;
									case "y":
										year = getNumber("y");
										break;
									case "@":
										var date = new Date(getNumber("@"));
										year = date.getFullYear();
										month = date.getMonth() + 1;
										day = date.getDate();
										break;
									case "'":
										if (lookAhead("'")) {
											checkLiteral()
										} else {
											literal = true
										}
										break;
									default:
										checkLiteral()
									}
								}
							}
							if (year == -1) {
								year = new Date().getFullYear()
							} else {
								if (year < 100) {
									year += new Date().getFullYear()
											- new Date().getFullYear()
											% 100
											+ (year <= shortYearCutoff ? 0
													: -100)
								}
							}
							if (doy > -1) {
								month = 1;
								day = doy;
								do {
									var dim = this._getDaysInMonth(year,
											month - 1);
									if (day <= dim) {
										break
									}
									month++;
									day -= dim
								} while (true)
							}
							var date = this._daylightSavingAdjust(new Date(
									year, month - 1, day));
							if (date.getFullYear() != year
									|| date.getMonth() + 1 != month
									|| date.getDate() != day) {
								throw "Invalid date"
							}
							return date
						},
						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",
						TIMESTAMP : "@",
						W3C : "yy-mm-dd",
						formatDate : function(format, date, settings) {
							if (!date) {
								return ""
							}
							var dayNamesShort = (settings ? settings.dayNamesShort
									: null)
									|| this._defaults.dayNamesShort;
							var dayNames = (settings ? settings.dayNames : null)
									|| this._defaults.dayNames;
							var monthNamesShort = (settings ? settings.monthNamesShort
									: null)
									|| this._defaults.monthNamesShort;
							var monthNames = (settings ? settings.monthNames
									: null)
									|| this._defaults.monthNames;
							var lookAhead = function(match) {
								var matches = (iFormat + 1 < format.length && format
										.charAt(iFormat + 1) == match);
								if (matches) {
									iFormat++
								}
								return matches
							};
							var formatNumber = function(match, value, len) {
								var num = "" + value;
								if (lookAhead(match)) {
									while (num.length < len) {
										num = "0" + num
									}
								}
								return num
							};
							var formatName = function(match, value, shortNames,
									longNames) {
								return (lookAhead(match) ? longNames[value]
										: shortNames[value])
							};
							var output = "";
							var literal = false;
							if (date) {
								for ( var iFormat = 0; iFormat < format.length; iFormat++) {
									if (literal) {
										if (format.charAt(iFormat) == "'"
												&& !lookAhead("'")) {
											literal = false
										} else {
											output += format.charAt(iFormat)
										}
									} else {
										switch (format.charAt(iFormat)) {
										case "d":
											output += formatNumber("d", date
													.getDate(), 2);
											break;
										case "D":
											output += formatName("D", date
													.getDay(), dayNamesShort,
													dayNames);
											break;
										case "o":
											var doy = date.getDate();
											for ( var m = date.getMonth() - 1; m >= 0; m--) {
												doy += this._getDaysInMonth(
														date.getFullYear(), m)
											}
											output += formatNumber("o", doy, 3);
											break;
										case "m":
											output += formatNumber("m", date
													.getMonth() + 1, 2);
											break;
										case "M":
											output += formatName("M", date
													.getMonth(),
													monthNamesShort, monthNames);
											break;
										case "y":
											output += (lookAhead("y") ? date
													.getFullYear() : (date
													.getYear() % 100 < 10 ? "0"
													: "")
													+ date.getYear() % 100);
											break;
										case "@":
											output += date.getTime();
											break;
										case "'":
											if (lookAhead("'")) {
												output += "'"
											} else {
												literal = true
											}
											break;
										default:
											output += format.charAt(iFormat)
										}
									}
								}
							}
							return output
						},
						_possibleChars : function(format) {
							var chars = "";
							var literal = false;
							for ( var iFormat = 0; iFormat < format.length; iFormat++) {
								if (literal) {
									if (format.charAt(iFormat) == "'"
											&& !lookAhead("'")) {
										literal = false
									} else {
										chars += format.charAt(iFormat)
									}
								} else {
									switch (format.charAt(iFormat)) {
									case "d":
									case "m":
									case "y":
									case "@":
										chars += "0123456789";
										break;
									case "D":
									case "M":
										return null;
									case "'":
										if (lookAhead("'")) {
											chars += "'"
										} else {
											literal = true
										}
										break;
									default:
										chars += format.charAt(iFormat)
									}
								}
							}
							return chars
						},
						_get : function(inst, name) {
							return inst.settings[name] !== undefined ? inst.settings[name]
									: this._defaults[name]
						},
						_setDateFromField : function(inst) {
							var dateFormat = this._get(inst, "dateFormat");
							var dates = inst.input ? inst.input.val() : null;
							inst.endDay = inst.endMonth = inst.endYear = null;
							var date = defaultDate = this._getDefaultDate(inst);
							var settings = this._getFormatConfig(inst);
							try {
								date = this.parseDate(dateFormat, dates,
										settings)
										|| defaultDate
							} catch (event) {
								this.log(event);
								date = defaultDate
							}
							inst.selectedDay = date.getDate();
							inst.drawMonth = inst.selectedMonth = date
									.getMonth();
							inst.drawYear = inst.selectedYear = date
									.getFullYear();
							inst.currentDay = (dates ? date.getDate() : 0);
							inst.currentMonth = (dates ? date.getMonth() : 0);
							inst.currentYear = (dates ? date.getFullYear() : 0);
							this._adjustInstDate(inst)
						},
						_getDefaultDate : function(inst) {
							var date = this._determineDate(this._get(inst,
									"defaultDate"), new Date());
							var minDate = this
									._getMinMaxDate(inst, "min", true);
							var maxDate = this._getMinMaxDate(inst, "max");
							date = (minDate && date < minDate ? minDate : date);
							date = (maxDate && date > maxDate ? maxDate : date);
							return date
						},
						_determineDate : function(date, defaultDate) {
							var offsetNumeric = function(offset) {
								var date = new Date();
								date.setDate(date.getDate() + offset);
								return date
							};
							var offsetString = function(offset, getDaysInMonth) {
								var date = new Date();
								var year = date.getFullYear();
								var month = date.getMonth();
								var day = date.getDate();
								var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;
								var matches = pattern.exec(offset);
								while (matches) {
									switch (matches[2] || "d") {
									case "d":
									case "D":
										day += parseInt(matches[1], 10);
										break;
									case "w":
									case "W":
										day += parseInt(matches[1], 10) * 7;
										break;
									case "m":
									case "M":
										month += parseInt(matches[1], 10);
										day = Math.min(day, getDaysInMonth(
												year, month));
										break;
									case "y":
									case "Y":
										year += parseInt(matches[1], 10);
										day = Math.min(day, getDaysInMonth(
												year, month));
										break
									}
									matches = pattern.exec(offset)
								}
								return new Date(year, month, day)
							};
							date = (date == null ? defaultDate
									: (typeof date == "string" ? offsetString(
											date, this._getDaysInMonth)
											: (typeof date == "number" ? (isNaN(date) ? defaultDate
													: offsetNumeric(date))
													: date)));
							date = (date && date.toString() == "Invalid Date" ? defaultDate
									: date);
							if (date) {
								date.setHours(0);
								date.setMinutes(0);
								date.setSeconds(0);
								date.setMilliseconds(0)
							}
							return this._daylightSavingAdjust(date)
						},
						_daylightSavingAdjust : function(date) {
							if (!date) {
								return null
							}
							date.setHours(date.getHours() > 12 ? date
									.getHours() + 2 : 0);
							return date
						},
						_setDate : function(inst, date, endDate) {
							var clear = !(date);
							var origMonth = inst.selectedMonth;
							var origYear = inst.selectedYear;
							date = this._determineDate(date, new Date());
							inst.selectedDay = inst.currentDay = date.getDate();
							inst.drawMonth = inst.selectedMonth = inst.currentMonth = date
									.getMonth();
							inst.drawYear = inst.selectedYear = inst.currentYear = date
									.getFullYear();
							if (origMonth != inst.selectedMonth
									|| origYear != inst.selectedYear) {
								this._notifyChange(inst)
							}
							this._adjustInstDate(inst);
							if (inst.input) {
								inst.input.val(clear ? "" : this
										._formatDate(inst))
							}
						},
						_getDate : function(inst) {
							var startDate = (!inst.currentYear
									|| (inst.input && inst.input.val() == "") ? null
									: this
											._daylightSavingAdjust(new Date(
													inst.currentYear,
													inst.currentMonth,
													inst.currentDay)));
							return startDate
						},
						_generateHTML : function(inst) {
							var today = new Date();
							today = this._daylightSavingAdjust(new Date(today
									.getFullYear(), today.getMonth(), today
									.getDate()));
							var isRTL = this._get(inst, "isRTL");
							var showButtonPanel = this._get(inst,
									"showButtonPanel");
							var hideIfNoPrevNext = this._get(inst,
									"hideIfNoPrevNext");
							var navigationAsDateFormat = this._get(inst,
									"navigationAsDateFormat");
							var numMonths = this._getNumberOfMonths(inst);
							var showCurrentAtPos = this._get(inst,
									"showCurrentAtPos");
							var stepMonths = this._get(inst, "stepMonths");
							var stepBigMonths = this
									._get(inst, "stepBigMonths");
							var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1);
							var currentDate = this
									._daylightSavingAdjust((!inst.currentDay ? new Date(
											9999, 9, 9)
											: new Date(inst.currentYear,
													inst.currentMonth,
													inst.currentDay)));
							var minDate = this
									._getMinMaxDate(inst, "min", true);
							var maxDate = this._getMinMaxDate(inst, "max");
							var drawMonth = inst.drawMonth - showCurrentAtPos;
							var drawYear = inst.drawYear;
							if (drawMonth < 0) {
								drawMonth += 12;
								drawYear--
							}
							if (maxDate) {
								var maxDraw = this
										._daylightSavingAdjust(new Date(maxDate
												.getFullYear(), maxDate
												.getMonth()
												- numMonths[1] + 1, maxDate
												.getDate()));
								maxDraw = (minDate && maxDraw < minDate ? minDate
										: maxDraw);
								while (this._daylightSavingAdjust(new Date(
										drawYear, drawMonth, 1)) > maxDraw) {
									drawMonth--;
									if (drawMonth < 0) {
										drawMonth = 11;
										drawYear--
									}
								}
							}
							inst.drawMonth = drawMonth;
							inst.drawYear = drawYear;
							var prevText = this._get(inst, "prevText");
							prevText = (!navigationAsDateFormat ? prevText
									: this.formatDate(prevText, this
											._daylightSavingAdjust(new Date(
													drawYear, drawMonth
															- stepMonths, 1)),
											this._getFormatConfig(inst)));
							var prev = (this._canAdjustMonth(inst, -1,
									drawYear, drawMonth) ? '<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#'
									+ inst.id
									+ "', -"
									+ stepMonths
									+ ", 'M');\" title=\""
									+ prevText
									+ '"><span class="ui-icon ui-icon-circle-triangle-'
									+ (isRTL ? "e" : "w")
									+ '">'
									+ prevText
									+ "</span></a>"
									: (hideIfNoPrevNext ? ""
											: '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'
													+ prevText
													+ '"><span class="ui-icon ui-icon-circle-triangle-'
													+ (isRTL ? "e" : "w")
													+ '">'
													+ prevText
													+ "</span></a>"));
							var nextText = this._get(inst, "nextText");
							nextText = (!navigationAsDateFormat ? nextText
									: this.formatDate(nextText, this
											._daylightSavingAdjust(new Date(
													drawYear, drawMonth
															+ stepMonths, 1)),
											this._getFormatConfig(inst)));
							var next = (this._canAdjustMonth(inst, +1,
									drawYear, drawMonth) ? '<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#'
									+ inst.id
									+ "', +"
									+ stepMonths
									+ ", 'M');\" title=\""
									+ nextText
									+ '"><span class="ui-icon ui-icon-circle-triangle-'
									+ (isRTL ? "w" : "e")
									+ '">'
									+ nextText
									+ "</span></a>"
									: (hideIfNoPrevNext ? ""
											: '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'
													+ nextText
													+ '"><span class="ui-icon ui-icon-circle-triangle-'
													+ (isRTL ? "w" : "e")
													+ '">'
													+ nextText
													+ "</span></a>"));
							var currentText = this._get(inst, "currentText");
							var gotoDate = (this._get(inst, "gotoCurrent")
									&& inst.currentDay ? currentDate : today);
							currentText = (!navigationAsDateFormat ? currentText
									: this.formatDate(currentText, gotoDate,
											this._getFormatConfig(inst)));
							var controls = (!inst.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery.datepicker._hideDatepicker();">'
									+ this._get(inst, "closeText")
									+ "</button>"
									: "");
							var buttonPanel = (showButtonPanel) ? '<div class="ui-datepicker-buttonpane ui-widget-content">'
									+ (isRTL ? controls : "")
									+ (this._isInRange(inst, gotoDate) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery.datepicker._gotoToday(\'#'
											+ inst.id
											+ "');\">"
											+ currentText
											+ "</button>"
											: "")
									+ (isRTL ? "" : controls)
									+ "</div>"
									: "";
							var firstDay = parseInt(
									this._get(inst, "firstDay"), 10);
							firstDay = (isNaN(firstDay) ? 0 : firstDay);
							var dayNames = this._get(inst, "dayNames");
							var dayNamesShort = this
									._get(inst, "dayNamesShort");
							var dayNamesMin = this._get(inst, "dayNamesMin");
							var monthNames = this._get(inst, "monthNames");
							var monthNamesShort = this._get(inst,
									"monthNamesShort");
							var beforeShowDay = this
									._get(inst, "beforeShowDay");
							var showOtherMonths = this._get(inst,
									"showOtherMonths");
							var calculateWeek = this
									._get(inst, "calculateWeek")
									|| this.iso8601Week;
							var endDate = inst.endDay ? this
									._daylightSavingAdjust(new Date(
											inst.endYear, inst.endMonth,
											inst.endDay)) : currentDate;
							var defaultDate = this._getDefaultDate(inst);
							var html = "";
							for ( var row = 0; row < numMonths[0]; row++) {
								var group = "";
								for ( var col = 0; col < numMonths[1]; col++) {
									var selectedDate = this
											._daylightSavingAdjust(new Date(
													drawYear, drawMonth,
													inst.selectedDay));
									var cornerClass = " ui-corner-all";
									var calender = "";
									if (isMultiMonth) {
										calender += '<div class="ui-datepicker-group ui-datepicker-group-';
										switch (col) {
										case 0:
											calender += "first";
											cornerClass = " ui-corner-"
													+ (isRTL ? "right" : "left");
											break;
										case numMonths[1] - 1:
											calender += "last";
											cornerClass = " ui-corner-"
													+ (isRTL ? "left" : "right");
											break;
										default:
											calender += "middle";
											cornerClass = "";
											break
										}
										calender += '">'
									}
									calender += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'
											+ cornerClass
											+ '">'
											+ (/all|left/.test(cornerClass)
													&& row == 0 ? (isRTL ? next
													: prev) : "")
											+ (/all|right/.test(cornerClass)
													&& row == 0 ? (isRTL ? prev
													: next) : "")
											+ this
													._generateMonthYearHeader(
															inst, drawMonth,
															drawYear, minDate,
															maxDate,
															selectedDate,
															row > 0 || col > 0,
															monthNames,
															monthNamesShort)
											+ '</div><table class="ui-datepicker-calendar"><thead><tr>';
									var thead = "";
									for ( var dow = 0; dow < 7; dow++) {
										var day = (dow + firstDay) % 7;
										thead += "<th"
												+ ((dow + firstDay + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"'
														: "")
												+ '><span title="'
												+ dayNames[day] + '">'
												+ dayNamesMin[day]
												+ "</span></th>"
									}
									calender += thead + "</tr></thead><tbody>";
									var daysInMonth = this._getDaysInMonth(
											drawYear, drawMonth);
									if (drawYear == inst.selectedYear
											&& drawMonth == inst.selectedMonth) {
										inst.selectedDay = Math.min(
												inst.selectedDay, daysInMonth)
									}
									var leadDays = (this._getFirstDayOfMonth(
											drawYear, drawMonth)
											- firstDay + 7) % 7;
									var numRows = (isMultiMonth ? 6 : Math
											.ceil((leadDays + daysInMonth) / 7));
									var printDate = this
											._daylightSavingAdjust(new Date(
													drawYear, drawMonth,
													1 - leadDays));
									for ( var dRow = 0; dRow < numRows; dRow++) {
										calender += "<tr>";
										var tbody = "";
										for ( var dow = 0; dow < 7; dow++) {
											var daySettings = (beforeShowDay ? beforeShowDay
													.apply(
															(inst.input ? inst.input[0]
																	: null),
															[ printDate ])
													: [ true, "" ]);
											var otherMonth = (printDate
													.getMonth() != drawMonth);
											var unselectable = otherMonth
													|| !daySettings[0]
													|| (minDate && printDate < minDate)
													|| (maxDate && printDate > maxDate);
											tbody += '<td class="'
													+ ((dow + firstDay + 6) % 7 >= 5 ? " ui-datepicker-week-end"
															: "")
													+ (otherMonth ? " ui-datepicker-other-month"
															: "")
													+ ((printDate.getTime() == selectedDate
															.getTime()
															&& drawMonth == inst.selectedMonth && inst._keyEvent)
															|| (defaultDate
																	.getTime() == printDate
																	.getTime() && defaultDate
																	.getTime() == selectedDate
																	.getTime()) ? " "
															+ this._dayOverClass
															: "")
													+ (unselectable ? " "
															+ this._unselectableClass
															+ " ui-state-disabled"
															: "")
													+ (otherMonth
															&& !showOtherMonths ? ""
															: " "
																	+ daySettings[1]
																	+ (printDate
																			.getTime() >= currentDate
																			.getTime()
																			&& printDate
																					.getTime() <= endDate
																					.getTime() ? " "
																			+ this._currentClass
																			: "")
																	+ (printDate
																			.getTime() == today
																			.getTime() ? " ui-datepicker-today"
																			: ""))
													+ '"'
													+ ((!otherMonth || showOtherMonths)
															&& daySettings[2] ? ' title="' + daySettings[2] + '"'
															: "")
													+ (unselectable ? ""
															: " onclick=\"DP_jQuery.datepicker._selectDay('#"
																	+ inst.id
																	+ "',"
																	+ drawMonth
																	+ ","
																	+ drawYear
																	+ ', this);return false;"')
													+ ">"
													+ (otherMonth ? (showOtherMonths ? printDate
															.getDate()
															: "&#xa0;")
															: (unselectable ? '<span class="ui-state-default">'
																	+ printDate
																			.getDate()
																	+ "</span>"
																	: '<a class="ui-state-default'
																			+ (printDate
																					.getTime() == today
																					.getTime() ? " ui-state-highlight"
																					: "")
																			+ (printDate
																					.getTime() >= currentDate
																					.getTime()
																					&& printDate
																							.getTime() <= endDate
																							.getTime() ? " ui-state-active"
																					: "")
																			+ '" href="#">'
																			+ printDate
																					.getDate()
																			+ "</a>"))
													+ "</td>";
											printDate.setDate(printDate
													.getDate() + 1);
											printDate = this
													._daylightSavingAdjust(printDate)
										}
										calender += tbody + "</tr>"
									}
									drawMonth++;
									if (drawMonth > 11) {
										drawMonth = 0;
										drawYear++
									}
									calender += "</tbody></table>"
											+ (isMultiMonth ? "</div>"
													+ ((numMonths[0] > 0 && col == numMonths[1] - 1) ? '<div class="ui-datepicker-row-break"></div>'
															: "")
													: "");
									group += calender
								}
								html += group
							}
							html += buttonPanel
									+ ($.browser.msie
											&& parseInt($.browser.version, 10) < 7
											&& !inst.inline ? '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>'
											: "");
							inst._keyEvent = false;
							return html
						},
						_generateMonthYearHeader : function(inst, drawMonth,
								drawYear, minDate, maxDate, selectedDate,
								secondary, monthNames, monthNamesShort) {
							minDate = (inst.rangeStart && minDate
									&& selectedDate < minDate ? selectedDate
									: minDate);
							var changeMonth = this._get(inst, "changeMonth");
							var changeYear = this._get(inst, "changeYear");
							var showMonthAfterYear = this._get(inst,
									"showMonthAfterYear");
							var html = '<div class="ui-datepicker-title">';
							var monthHtml = "";
							if (secondary || !changeMonth) {
								monthHtml += '<span class="ui-datepicker-month">'
										+ monthNames[drawMonth] + "</span> "
							} else {
								var inMinYear = (minDate && minDate
										.getFullYear() == drawYear);
								var inMaxYear = (maxDate && maxDate
										.getFullYear() == drawYear);
								monthHtml += '<select class="ui-datepicker-month" onchange="DP_jQuery.datepicker._selectMonthYear(\'#'
										+ inst.id
										+ "', this, 'M');\" onclick=\"DP_jQuery.datepicker._clickMonthYear('#"
										+ inst.id + "');\">";
								for ( var month = 0; month < 12; month++) {
									if ((!inMinYear || month >= minDate
											.getMonth())
											&& (!inMaxYear || month <= maxDate
													.getMonth())) {
										monthHtml += '<option value="'
												+ month
												+ '"'
												+ (month == drawMonth ? ' selected="selected"'
														: "") + ">"
												+ monthNamesShort[month]
												+ "</option>"
									}
								}
								monthHtml += "</select>"
							}
							if (!showMonthAfterYear) {
								html += monthHtml
										+ ((secondary || changeMonth || changeYear)
												&& (!(changeMonth && changeYear)) ? "&#xa0;"
												: "")
							}
							if (secondary || !changeYear) {
								html += '<span class="ui-datepicker-year">'
										+ drawYear + "</span>"
							} else {
								var years = this._get(inst, "yearRange").split(
										":");
								var year = 0;
								var endYear = 0;
								if (years.length != 2) {
									year = drawYear - 10;
									endYear = drawYear + 10
								} else {
									if (years[0].charAt(0) == "+"
											|| years[0].charAt(0) == "-") {
										year = drawYear
												+ parseInt(years[0], 10);
										endYear = drawYear
												+ parseInt(years[1], 10)
									} else {
										year = parseInt(years[0], 10);
										endYear = parseInt(years[1], 10)
									}
								}
								year = (minDate ? Math.max(year, minDate
										.getFullYear()) : year);
								endYear = (maxDate ? Math.min(endYear, maxDate
										.getFullYear()) : endYear);
								html += '<select class="ui-datepicker-year" onchange="DP_jQuery.datepicker._selectMonthYear(\'#'
										+ inst.id
										+ "', this, 'Y');\" onclick=\"DP_jQuery.datepicker._clickMonthYear('#"
										+ inst.id + "');\">";
								for (; year <= endYear; year++) {
									html += '<option value="'
											+ year
											+ '"'
											+ (year == drawYear ? ' selected="selected"'
													: "") + ">" + year
											+ "</option>"
								}
								html += "</select>"
							}
							if (showMonthAfterYear) {
								html += (secondary || changeMonth || changeYear ? "&#xa0;"
										: "")
										+ monthHtml
							}
							html += "</div>";
							return html
						},
						_adjustInstDate : function(inst, offset, period) {
							var year = inst.drawYear
									+ (period == "Y" ? offset : 0);
							var month = inst.drawMonth
									+ (period == "M" ? offset : 0);
							var day = Math.min(inst.selectedDay, this
									._getDaysInMonth(year, month))
									+ (period == "D" ? offset : 0);
							var date = this._daylightSavingAdjust(new Date(
									year, month, day));
							var minDate = this
									._getMinMaxDate(inst, "min", true);
							var maxDate = this._getMinMaxDate(inst, "max");
							date = (minDate && date < minDate ? minDate : date);
							date = (maxDate && date > maxDate ? maxDate : date);
							inst.selectedDay = date.getDate();
							inst.drawMonth = inst.selectedMonth = date
									.getMonth();
							inst.drawYear = inst.selectedYear = date
									.getFullYear();
							if (period == "M" || period == "Y") {
								this._notifyChange(inst)
							}
						},
						_notifyChange : function(inst) {
							var onChange = this._get(inst, "onChangeMonthYear");
							if (onChange) {
								onChange.apply((inst.input ? inst.input[0]
										: null), [ inst.selectedYear,
										inst.selectedMonth + 1, inst ])
							}
						},
						_getNumberOfMonths : function(inst) {
							var numMonths = this._get(inst, "numberOfMonths");
							return (numMonths == null ? [ 1, 1 ]
									: (typeof numMonths == "number" ? [ 1,
											numMonths ] : numMonths))
						},
						_getMinMaxDate : function(inst, minMax, checkRange) {
							var date = this._determineDate(this._get(inst,
									minMax + "Date"), null);
							return (!checkRange || !inst.rangeStart ? date
									: (!date || inst.rangeStart > date ? inst.rangeStart
											: date))
						},
						_getDaysInMonth : function(year, month) {
							return 32 - new Date(year, month, 32).getDate()
						},
						_getFirstDayOfMonth : function(year, month) {
							return new Date(year, month, 1).getDay()
						},
						_canAdjustMonth : function(inst, offset, curYear,
								curMonth) {
							var numMonths = this._getNumberOfMonths(inst);
							var date = this._daylightSavingAdjust(new Date(
									curYear, curMonth
											+ (offset < 0 ? offset
													: numMonths[1]), 1));
							if (offset < 0) {
								date.setDate(this._getDaysInMonth(date
										.getFullYear(), date.getMonth()))
							}
							return this._isInRange(inst, date)
						},
						_isInRange : function(inst, date) {
							var newMinDate = (!inst.rangeStart ? null : this
									._daylightSavingAdjust(new Date(
											inst.selectedYear,
											inst.selectedMonth,
											inst.selectedDay)));
							newMinDate = (newMinDate
									&& inst.rangeStart < newMinDate ? inst.rangeStart
									: newMinDate);
							var minDate = newMinDate
									|| this._getMinMaxDate(inst, "min");
							var maxDate = this._getMinMaxDate(inst, "max");
							return ((!minDate || date >= minDate) && (!maxDate || date <= maxDate))
						},
						_getFormatConfig : function(inst) {
							var shortYearCutoff = this._get(inst,
									"shortYearCutoff");
							shortYearCutoff = (typeof shortYearCutoff != "string" ? shortYearCutoff
									: new Date().getFullYear() % 100
											+ parseInt(shortYearCutoff, 10));
							return {
								shortYearCutoff : shortYearCutoff,
								dayNamesShort : this
										._get(inst, "dayNamesShort"),
								dayNames : this._get(inst, "dayNames"),
								monthNamesShort : this._get(inst,
										"monthNamesShort"),
								monthNames : this._get(inst, "monthNames")
							}
						},
						_formatDate : function(inst, day, month, year) {
							if (!day) {
								inst.currentDay = inst.selectedDay;
								inst.currentMonth = inst.selectedMonth;
								inst.currentYear = inst.selectedYear
							}
							var date = (day ? (typeof day == "object" ? day
									: this._daylightSavingAdjust(new Date(year,
											month, day)))
									: this
											._daylightSavingAdjust(new Date(
													inst.currentYear,
													inst.currentMonth,
													inst.currentDay)));
							return this.formatDate(this
									._get(inst, "dateFormat"), date, this
									._getFormatConfig(inst))
						}
					});
	function extendRemove(target, props) {
		$.extend(target, props);
		for ( var name in props) {
			if (props[name] == null || props[name] == undefined) {
				target[name] = props[name]
			}
		}
		return target
	}
	function isArray(a) {
		return (a && (($.browser.safari && typeof a == "object" && a.length) || (a.constructor && a.constructor
				.toString().match(/\Array\(\)/))))
	}
	$.fn.datepicker = function(options) {
		if (!$.datepicker.initialized) {
			$(document).mousedown($.datepicker._checkExternalClick)
					.find("body").append($.datepicker.dpDiv);
			$.datepicker.initialized = true
		}
		var otherArgs = Array.prototype.slice.call(arguments, 1);
		if (typeof options == "string"
				&& (options == "isDisabled" || options == "getDate")) {
			return $.datepicker["_" + options + "Datepicker"].apply(
					$.datepicker, [ this[0] ].concat(otherArgs))
		}
		if (options == "option" && arguments.length == 2
				&& typeof arguments[1] == "string") {
			return $.datepicker["_" + options + "Datepicker"].apply(
					$.datepicker, [ this[0] ].concat(otherArgs))
		}
		return this.each(function() {
			typeof options == "string" ? $.datepicker["_" + options
					+ "Datepicker"].apply($.datepicker, [ this ]
					.concat(otherArgs)) : $.datepicker._attachDatepicker(this,
					options)
		})
	};
	$.datepicker = new Datepicker();
	$.datepicker.initialized = false;
	$.datepicker.uuid = new Date().getTime();
	$.datepicker.version = "1.7.2";
	window.DP_jQuery = $
})(jQuery);;/*
 * jQuery UI Progressbar 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Progressbar
 *
 * Depends:
 *   ui.core.js
 */
(function(a) {
	a
			.widget(
					"ui.progressbar",
					{
						_init : function() {
							this.element
									.addClass(
											"ui-progressbar ui-widget ui-widget-content ui-corner-all")
									.attr( {
										role : "progressbar",
										"aria-valuemin" : this._valueMin(),
										"aria-valuemax" : this._valueMax(),
										"aria-valuenow" : this._value()
									});
							this.valueDiv = a(
									'<div class="ui-progressbar-value ui-widget-header ui-corner-left"></div>')
									.appendTo(this.element);
							this._refreshValue()
						},
						destroy : function() {
							this.element
									.removeClass(
											"ui-progressbar ui-widget ui-widget-content ui-corner-all")
									.removeAttr("role").removeAttr(
											"aria-valuemin").removeAttr(
											"aria-valuemax").removeAttr(
											"aria-valuenow").removeData(
											"progressbar").unbind(
											".progressbar");
							this.valueDiv.remove();
							a.widget.prototype.destroy.apply(this, arguments)
						},
						value : function(b) {
							if (b === undefined) {
								return this._value()
							}
							this._setData("value", b);
							return this
						},
						_setData : function(b, c) {
							switch (b) {
							case "value":
								this.options.value = c;
								this._refreshValue();
								this._trigger("change", null, {});
								break
							}
							a.widget.prototype._setData.apply(this, arguments)
						},
						_value : function() {
							var b = this.options.value;
							if (b < this._valueMin()) {
								b = this._valueMin()
							}
							if (b > this._valueMax()) {
								b = this._valueMax()
							}
							return b
						},
						_valueMin : function() {
							var b = 0;
							return b
						},
						_valueMax : function() {
							var b = 100;
							return b
						},
						_refreshValue : function() {
							var b = this.value();
							this.valueDiv[b == this._valueMax() ? "addClass"
									: "removeClass"]("ui-corner-right");
							this.valueDiv.width(b + "%");
							this.element.attr("aria-valuenow", b)
						}
					});
	a.extend(a.ui.progressbar, {
		version : "1.7.2",
		defaults : {
			value : 0
		}
	})
})(jQuery);;/*
 * jQuery UI Effects 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/
 */
jQuery.effects
		|| (function(d) {
			d.effects = {
				version : "1.7.2",
				save : function(g, h) {
					for ( var f = 0; f < h.length; f++) {
						if (h[f] !== null) {
							g.data("ec.storage." + h[f], g[0].style[h[f]])
						}
					}
				},
				restore : function(g, h) {
					for ( var f = 0; f < h.length; f++) {
						if (h[f] !== null) {
							g.css(h[f], g.data("ec.storage." + h[f]))
						}
					}
				},
				setMode : function(f, g) {
					if (g == "toggle") {
						g = f.is(":hidden") ? "show" : "hide"
					}
					return g
				},
				getBaseline : function(g, h) {
					var i, f;
					switch (g[0]) {
					case "top":
						i = 0;
						break;
					case "middle":
						i = 0.5;
						break;
					case "bottom":
						i = 1;
						break;
					default:
						i = g[0] / h.height
					}
					switch (g[1]) {
					case "left":
						f = 0;
						break;
					case "center":
						f = 0.5;
						break;
					case "right":
						f = 1;
						break;
					default:
						f = g[1] / h.width
					}
					return {
						x : f,
						y : i
					}
				},
				createWrapper : function(f) {
					if (f.parent().is(".ui-effects-wrapper")) {
						return f.parent()
					}
					var g = {
						width : f.outerWidth(true),
						height : f.outerHeight(true),
						"float" : f.css("float")
					};
					f
							.wrap('<div class="ui-effects-wrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>');
					var j = f.parent();
					if (f.css("position") == "static") {
						j.css( {
							position : "relative"
						});
						f.css( {
							position : "relative"
						})
					} else {
						var i = f.css("top");
						if (isNaN(parseInt(i, 10))) {
							i = "auto"
						}
						var h = f.css("left");
						if (isNaN(parseInt(h, 10))) {
							h = "auto"
						}
						j.css( {
							position : f.css("position"),
							top : i,
							left : h,
							zIndex : f.css("z-index")
						}).show();
						f.css( {
							position : "relative",
							top : 0,
							left : 0
						})
					}
					j.css(g);
					return j
				},
				removeWrapper : function(f) {
					if (f.parent().is(".ui-effects-wrapper")) {
						return f.parent().replaceWith(f)
					}
					return f
				},
				setTransition : function(g, i, f, h) {
					h = h || {};
					d.each(i, function(k, j) {
						unit = g.cssUnit(j);
						if (unit[0] > 0) {
							h[j] = unit[0] * f + unit[1]
						}
					});
					return h
				},
				animateClass : function(h, i, k, j) {
					var f = (typeof k == "function" ? k : (j ? j : null));
					var g = (typeof k == "string" ? k : null);
					return this
							.each(function() {
								var q = {};
								var o = d(this);
								var p = o.attr("style") || "";
								if (typeof p == "object") {
									p = p.cssText
								}
								if (h.toggle) {
									o.hasClass(h.toggle) ? h.remove = h.toggle
											: h.add = h.toggle
								}
								var l = d
										.extend(
												{},
												(document.defaultView ? document.defaultView
														.getComputedStyle(this,
																null)
														: this.currentStyle));
								if (h.add) {
									o.addClass(h.add)
								}
								if (h.remove) {
									o.removeClass(h.remove)
								}
								var m = d
										.extend(
												{},
												(document.defaultView ? document.defaultView
														.getComputedStyle(this,
																null)
														: this.currentStyle));
								if (h.add) {
									o.removeClass(h.add)
								}
								if (h.remove) {
									o.addClass(h.remove)
								}
								for ( var r in m) {
									if (typeof m[r] != "function"
											&& m[r]
											&& r.indexOf("Moz") == -1
											&& r.indexOf("length") == -1
											&& m[r] != l[r]
											&& (r.match(/color/i) || (!r
													.match(/color/i) && !isNaN(parseInt(
													m[r], 10))))
											&& (l.position != "static" || (l.position == "static" && !r
													.match(/left|top|bottom|right/)))) {
										q[r] = m[r]
									}
								}
								o
										.animate(
												q,
												i,
												g,
												function() {
													if (typeof d(this).attr(
															"style") == "object") {
														d(this).attr("style")["cssText"] = "";
														d(this).attr("style")["cssText"] = p
													} else {
														d(this)
																.attr("style",
																		p)
													}
													if (h.add) {
														d(this).addClass(h.add)
													}
													if (h.remove) {
														d(this).removeClass(
																h.remove)
													}
													if (f) {
														f
																.apply(this,
																		arguments)
													}
												})
							})
				}
			};
			function c(g, f) {
				var i = g[1] && g[1].constructor == Object ? g[1] : {};
				if (f) {
					i.mode = f
				}
				var h = g[1] && g[1].constructor != Object ? g[1]
						: (i.duration ? i.duration : g[2]);
				h = d.fx.off ? 0 : typeof h === "number" ? h : d.fx.speeds[h]
						|| d.fx.speeds._default;
				var j = i.callback || (d.isFunction(g[1]) && g[1])
						|| (d.isFunction(g[2]) && g[2])
						|| (d.isFunction(g[3]) && g[3]);
				return [ g[0], i, h, j ]
			}
			d.fn
					.extend( {
						_show : d.fn.show,
						_hide : d.fn.hide,
						__toggle : d.fn.toggle,
						_addClass : d.fn.addClass,
						_removeClass : d.fn.removeClass,
						_toggleClass : d.fn.toggleClass,
						effect : function(g, f, h, i) {
							return d.effects[g] ? d.effects[g].call(this, {
								method : g,
								options : f || {},
								duration : h,
								callback : i
							}) : null
						},
						show : function() {
							if (!arguments[0]
									|| (arguments[0].constructor == Number || (/(slow|normal|fast)/)
											.test(arguments[0]))) {
								return this._show.apply(this, arguments)
							} else {
								return this.effect.apply(this, c(arguments,
										"show"))
							}
						},
						hide : function() {
							if (!arguments[0]
									|| (arguments[0].constructor == Number || (/(slow|normal|fast)/)
											.test(arguments[0]))) {
								return this._hide.apply(this, arguments)
							} else {
								return this.effect.apply(this, c(arguments,
										"hide"))
							}
						},
						toggle : function() {
							if (!arguments[0]
									|| (arguments[0].constructor == Number || (/(slow|normal|fast)/)
											.test(arguments[0]))
									|| (d.isFunction(arguments[0]) || typeof arguments[0] == "boolean")) {
								return this.__toggle.apply(this, arguments)
							} else {
								return this.effect.apply(this, c(arguments,
										"toggle"))
							}
						},
						addClass : function(g, f, i, h) {
							return f ? d.effects.animateClass.apply(this, [ {
								add : g
							}, f, i, h ]) : this._addClass(g)
						},
						removeClass : function(g, f, i, h) {
							return f ? d.effects.animateClass.apply(this, [ {
								remove : g
							}, f, i, h ]) : this._removeClass(g)
						},
						toggleClass : function(g, f, i, h) {
							return ((typeof f !== "boolean") && f) ? d.effects.animateClass
									.apply(this, [ {
										toggle : g
									}, f, i, h ])
									: this._toggleClass(g, f)
						},
						morph : function(f, h, g, j, i) {
							return d.effects.animateClass.apply(this, [ {
								add : h,
								remove : f
							}, g, j, i ])
						},
						switchClass : function() {
							return this.morph.apply(this, arguments)
						},
						cssUnit : function(f) {
							var g = this.css(f), h = [];
							d.each( [ "em", "px", "%", "pt" ], function(j, k) {
								if (g.indexOf(k) > 0) {
									h = [ parseFloat(g), k ]
								}
							});
							return h
						}
					});
			d
					.each(
							[ "backgroundColor", "borderBottomColor",
									"borderLeftColor", "borderRightColor",
									"borderTopColor", "color", "outlineColor" ],
							function(g, f) {
								d.fx.step[f] = function(h) {
									if (h.state == 0) {
										h.start = e(h.elem, f);
										h.end = b(h.end)
									}
									h.elem.style[f] = "rgb("
											+ [
													Math
															.max(
																	Math
																			.min(
																					parseInt(
																							(h.pos * (h.end[0] - h.start[0]))
																									+ h.start[0],
																							10),
																					255),
																	0),
													Math
															.max(
																	Math
																			.min(
																					parseInt(
																							(h.pos * (h.end[1] - h.start[1]))
																									+ h.start[1],
																							10),
																					255),
																	0),
													Math
															.max(
																	Math
																			.min(
																					parseInt(
																							(h.pos * (h.end[2] - h.start[2]))
																									+ h.start[2],
																							10),
																					255),
																	0) ]
													.join(",") + ")"
								}
							});
			function b(g) {
				var f;
				if (g && g.constructor == Array && g.length == 3) {
					return g
				}
				if (f = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/
						.exec(g)) {
					return [ parseInt(f[1], 10), parseInt(f[2], 10),
							parseInt(f[3], 10) ]
				}
				if (f = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/
						.exec(g)) {
					return [ parseFloat(f[1]) * 2.55, parseFloat(f[2]) * 2.55,
							parseFloat(f[3]) * 2.55 ]
				}
				if (f = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/
						.exec(g)) {
					return [ parseInt(f[1], 16), parseInt(f[2], 16),
							parseInt(f[3], 16) ]
				}
				if (f = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(g)) {
					return [ parseInt(f[1] + f[1], 16),
							parseInt(f[2] + f[2], 16),
							parseInt(f[3] + f[3], 16) ]
				}
				if (f = /rgba\(0, 0, 0, 0\)/.exec(g)) {
					return a.transparent
				}
				return a[d.trim(g).toLowerCase()]
			}
			function e(h, f) {
				var g;
				do {
					g = d.curCSS(h, f);
					if (g != "" && g != "transparent" || d.nodeName(h, "body")) {
						break
					}
					f = "backgroundColor"
				} while (h = h.parentNode);
				return b(g)
			}
			var a = {
				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 ]
			};
			d.easing.jswing = d.easing.swing;
			d
					.extend(
							d.easing,
							{
								def : "easeOutQuad",
								swing : function(g, h, f, j, i) {
									return d.easing[d.easing.def]
											(g, h, f, j, i)
								},
								easeInQuad : function(g, h, f, j, i) {
									return j * (h /= i) * h + f
								},
								easeOutQuad : function(g, h, f, j, i) {
									return -j * (h /= i) * (h - 2) + f
								},
								easeInOutQuad : function(g, h, f, j, i) {
									if ((h /= i / 2) < 1) {
										return j / 2 * h * h + f
									}
									return -j / 2 * ((--h) * (h - 2) - 1) + f
								},
								easeInCubic : function(g, h, f, j, i) {
									return j * (h /= i) * h * h + f
								},
								easeOutCubic : function(g, h, f, j, i) {
									return j * ((h = h / i - 1) * h * h + 1)
											+ f
								},
								easeInOutCubic : function(g, h, f, j, i) {
									if ((h /= i / 2) < 1) {
										return j / 2 * h * h * h + f
									}
									return j / 2 * ((h -= 2) * h * h + 2) + f
								},
								easeInQuart : function(g, h, f, j, i) {
									return j * (h /= i) * h * h * h + f
								},
								easeOutQuart : function(g, h, f, j, i) {
									return -j
											* ((h = h / i - 1) * h * h * h - 1)
											+ f
								},
								easeInOutQuart : function(g, h, f, j, i) {
									if ((h /= i / 2) < 1) {
										return j / 2 * h * h * h * h + f
									}
									return -j / 2 * ((h -= 2) * h * h * h - 2)
											+ f
								},
								easeInQuint : function(g, h, f, j, i) {
									return j * (h /= i) * h * h * h * h + f
								},
								easeOutQuint : function(g, h, f, j, i) {
									return j
											* ((h = h / i - 1) * h * h * h * h + 1)
											+ f
								},
								easeInOutQuint : function(g, h, f, j, i) {
									if ((h /= i / 2) < 1) {
										return j / 2 * h * h * h * h * h + f
									}
									return j / 2
											* ((h -= 2) * h * h * h * h + 2)
											+ f
								},
								easeInSine : function(g, h, f, j, i) {
									return -j * Math.cos(h / i * (Math.PI / 2))
											+ j + f
								},
								easeOutSine : function(g, h, f, j, i) {
									return j * Math.sin(h / i * (Math.PI / 2))
											+ f
								},
								easeInOutSine : function(g, h, f, j, i) {
									return -j / 2
											* (Math.cos(Math.PI * h / i) - 1)
											+ f
								},
								easeInExpo : function(g, h, f, j, i) {
									return (h == 0) ? f : j
											* Math.pow(2, 10 * (h / i - 1)) + f
								},
								easeOutExpo : function(g, h, f, j, i) {
									return (h == i) ? f + j : j
											* (-Math.pow(2, -10 * h / i) + 1)
											+ f
								},
								easeInOutExpo : function(g, h, f, j, i) {
									if (h == 0) {
										return f
									}
									if (h == i) {
										return f + j
									}
									if ((h /= i / 2) < 1) {
										return j / 2
												* Math.pow(2, 10 * (h - 1)) + f
									}
									return j / 2
											* (-Math.pow(2, -10 * --h) + 2) + f
								},
								easeInCirc : function(g, h, f, j, i) {
									return -j
											* (Math.sqrt(1 - (h /= i) * h) - 1)
											+ f
								},
								easeOutCirc : function(g, h, f, j, i) {
									return j
											* Math
													.sqrt(1 - (h = h / i - 1)
															* h) + f
								},
								easeInOutCirc : function(g, h, f, j, i) {
									if ((h /= i / 2) < 1) {
										return -j / 2
												* (Math.sqrt(1 - h * h) - 1)
												+ f
									}
									return j / 2
											* (Math.sqrt(1 - (h -= 2) * h) + 1)
											+ f
								},
								easeInElastic : function(g, i, f, m, l) {
									var j = 1.70158;
									var k = 0;
									var h = m;
									if (i == 0) {
										return f
									}
									if ((i /= l) == 1) {
										return f + m
									}
									if (!k) {
										k = l * 0.3
									}
									if (h < Math.abs(m)) {
										h = m;
										var j = k / 4
									} else {
										var j = k / (2 * Math.PI)
												* Math.asin(m / h)
									}
									return -(h * Math.pow(2, 10 * (i -= 1)) * Math
											.sin((i * l - j) * (2 * Math.PI)
													/ k))
											+ f
								},
								easeOutElastic : function(g, i, f, m, l) {
									var j = 1.70158;
									var k = 0;
									var h = m;
									if (i == 0) {
										return f
									}
									if ((i /= l) == 1) {
										return f + m
									}
									if (!k) {
										k = l * 0.3
									}
									if (h < Math.abs(m)) {
										h = m;
										var j = k / 4
									} else {
										var j = k / (2 * Math.PI)
												* Math.asin(m / h)
									}
									return h
											* Math.pow(2, -10 * i)
											* Math.sin((i * l - j)
													* (2 * Math.PI) / k) + m
											+ f
								},
								easeInOutElastic : function(g, i, f, m, l) {
									var j = 1.70158;
									var k = 0;
									var h = m;
									if (i == 0) {
										return f
									}
									if ((i /= l / 2) == 2) {
										return f + m
									}
									if (!k) {
										k = l * (0.3 * 1.5)
									}
									if (h < Math.abs(m)) {
										h = m;
										var j = k / 4
									} else {
										var j = k / (2 * Math.PI)
												* Math.asin(m / h)
									}
									if (i < 1) {
										return -0.5
												* (h
														* Math.pow(2,
																10 * (i -= 1)) * Math
														.sin((i * l - j)
																* (2 * Math.PI)
																/ k)) + f
									}
									return h
											* Math.pow(2, -10 * (i -= 1))
											* Math.sin((i * l - j)
													* (2 * Math.PI) / k) * 0.5
											+ m + f
								},
								easeInBack : function(g, h, f, k, j, i) {
									if (i == undefined) {
										i = 1.70158
									}
									return k * (h /= j) * h * ((i + 1) * h - i)
											+ f
								},
								easeOutBack : function(g, h, f, k, j, i) {
									if (i == undefined) {
										i = 1.70158
									}
									return k
											* ((h = h / j - 1) * h
													* ((i + 1) * h + i) + 1)
											+ f
								},
								easeInOutBack : function(g, h, f, k, j, i) {
									if (i == undefined) {
										i = 1.70158
									}
									if ((h /= j / 2) < 1) {
										return k
												/ 2
												* (h * h * (((i *= (1.525)) + 1)
														* h - i)) + f
									}
									return k
											/ 2
											* ((h -= 2)
													* h
													* (((i *= (1.525)) + 1) * h + i) + 2)
											+ f
								},
								easeInBounce : function(g, h, f, j, i) {
									return j
											- d.easing.easeOutBounce(g, i - h,
													0, j, i) + f
								},
								easeOutBounce : function(g, h, f, j, i) {
									if ((h /= i) < (1 / 2.75)) {
										return j * (7.5625 * h * h) + f
									} else {
										if (h < (2 / 2.75)) {
											return j
													* (7.5625
															* (h -= (1.5 / 2.75))
															* h + 0.75) + f
										} else {
											if (h < (2.5 / 2.75)) {
												return j
														* (7.5625
																* (h -= (2.25 / 2.75))
																* h + 0.9375)
														+ f
											} else {
												return j
														* (7.5625
																* (h -= (2.625 / 2.75))
																* h + 0.984375)
														+ f
											}
										}
									}
								},
								easeInOutBounce : function(g, h, f, j, i) {
									if (h < i / 2) {
										return d.easing.easeInBounce(g, h * 2,
												0, j, i)
												* 0.5 + f
									}
									return d.easing.easeOutBounce(g, h * 2 - i,
											0, j, i)
											* 0.5 + j * 0.5 + f
								}
							})
		})(jQuery);;/*
 * jQuery UI Effects Blind 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Blind
 *
 * Depends:
 *	effects.core.js
 */
(function(a) {
	a.effects.blind = function(b) {
		return this.queue(function() {
			var d = a(this), c = [ "position", "top", "left" ];
			var h = a.effects.setMode(d, b.options.mode || "hide");
			var g = b.options.direction || "vertical";
			a.effects.save(d, c);
			d.show();
			var j = a.effects.createWrapper(d).css( {
				overflow : "hidden"
			});
			var e = (g == "vertical") ? "height" : "width";
			var i = (g == "vertical") ? j.height() : j.width();
			if (h == "show") {
				j.css(e, 0)
			}
			var f = {};
			f[e] = h == "show" ? i : 0;
			j.animate(f, b.duration, b.options.easing, function() {
				if (h == "hide") {
					d.hide()
				}
				a.effects.restore(d, c);
				a.effects.removeWrapper(d);
				if (b.callback) {
					b.callback.apply(d[0], arguments)
				}
				d.dequeue()
			})
		})
	}
})(jQuery);;/*
 * jQuery UI Effects Bounce 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Bounce
 *
 * Depends:
 *	effects.core.js
 */
(function(a) {
	a.effects.bounce = function(b) {
		return this.queue(function() {
			var e = a(this), l = [ "position", "top", "left" ];
			var k = a.effects.setMode(e, b.options.mode || "effect");
			var n = b.options.direction || "up";
			var c = b.options.distance || 20;
			var d = b.options.times || 5;
			var g = b.duration || 250;
			if (/show|hide/.test(k)) {
				l.push("opacity")
			}
			a.effects.save(e, l);
			e.show();
			a.effects.createWrapper(e);
			var f = (n == "up" || n == "down") ? "top" : "left";
			var p = (n == "up" || n == "left") ? "pos" : "neg";
			var c = b.options.distance || (f == "top" ? e.outerHeight( {
				margin : true
			}) / 3 : e.outerWidth( {
				margin : true
			}) / 3);
			if (k == "show") {
				e.css("opacity", 0).css(f, p == "pos" ? -c : c)
			}
			if (k == "hide") {
				c = c / (d * 2)
			}
			if (k != "hide") {
				d--
			}
			if (k == "show") {
				var h = {
					opacity : 1
				};
				h[f] = (p == "pos" ? "+=" : "-=") + c;
				e.animate(h, g / 2, b.options.easing);
				c = c / 2;
				d--
			}
			for ( var j = 0; j < d; j++) {
				var o = {}, m = {};
				o[f] = (p == "pos" ? "-=" : "+=") + c;
				m[f] = (p == "pos" ? "+=" : "-=") + c;
				e.animate(o, g / 2, b.options.easing).animate(m, g / 2,
						b.options.easing);
				c = (k == "hide") ? c * 2 : c / 2
			}
			if (k == "hide") {
				var h = {
					opacity : 0
				};
				h[f] = (p == "pos" ? "-=" : "+=") + c;
				e.animate(h, g / 2, b.options.easing, function() {
					e.hide();
					a.effects.restore(e, l);
					a.effects.removeWrapper(e);
					if (b.callback) {
						b.callback.apply(this, arguments)
					}
				})
			} else {
				var o = {}, m = {};
				o[f] = (p == "pos" ? "-=" : "+=") + c;
				m[f] = (p == "pos" ? "+=" : "-=") + c;
				e.animate(o, g / 2, b.options.easing).animate(m, g / 2,
						b.options.easing, function() {
							a.effects.restore(e, l);
							a.effects.removeWrapper(e);
							if (b.callback) {
								b.callback.apply(this, arguments)
							}
						})
			}
			e.queue("fx", function() {
				e.dequeue()
			});
			e.dequeue()
		})
	}
})(jQuery);;/*
 * jQuery UI Effects Clip 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Clip
 *
 * Depends:
 *	effects.core.js
 */
(function(a) {
	a.effects.clip = function(b) {
		return this
				.queue(function() {
					var f = a(this), j = [ "position", "top", "left", "height",
							"width" ];
					var i = a.effects.setMode(f, b.options.mode || "hide");
					var k = b.options.direction || "vertical";
					a.effects.save(f, j);
					f.show();
					var c = a.effects.createWrapper(f).css( {
						overflow : "hidden"
					});
					var e = f[0].tagName == "IMG" ? c : f;
					var g = {
						size : (k == "vertical") ? "height" : "width",
						position : (k == "vertical") ? "top" : "left"
					};
					var d = (k == "vertical") ? e.height() : e.width();
					if (i == "show") {
						e.css(g.size, 0);
						e.css(g.position, d / 2)
					}
					var h = {};
					h[g.size] = i == "show" ? d : 0;
					h[g.position] = i == "show" ? 0 : d / 2;
					e.animate(h, {
						queue : false,
						duration : b.duration,
						easing : b.options.easing,
						complete : function() {
							if (i == "hide") {
								f.hide()
							}
							a.effects.restore(f, j);
							a.effects.removeWrapper(f);
							if (b.callback) {
								b.callback.apply(f[0], arguments)
							}
							f.dequeue()
						}
					})
				})
	}
})(jQuery);;/*
 * jQuery UI Effects Drop 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Drop
 *
 * Depends:
 *	effects.core.js
 */
(function(a) {
	a.effects.drop = function(b) {
		return this.queue(function() {
			var e = a(this), d = [ "position", "top", "left", "opacity" ];
			var i = a.effects.setMode(e, b.options.mode || "hide");
			var h = b.options.direction || "left";
			a.effects.save(e, d);
			e.show();
			a.effects.createWrapper(e);
			var f = (h == "up" || h == "down") ? "top" : "left";
			var c = (h == "up" || h == "left") ? "pos" : "neg";
			var j = b.options.distance || (f == "top" ? e.outerHeight( {
				margin : true
			}) / 2 : e.outerWidth( {
				margin : true
			}) / 2);
			if (i == "show") {
				e.css("opacity", 0).css(f, c == "pos" ? -j : j)
			}
			var g = {
				opacity : i == "show" ? 1 : 0
			};
			g[f] = (i == "show" ? (c == "pos" ? "+=" : "-=")
					: (c == "pos" ? "-=" : "+="))
					+ j;
			e.animate(g, {
				queue : false,
				duration : b.duration,
				easing : b.options.easing,
				complete : function() {
					if (i == "hide") {
						e.hide()
					}
					a.effects.restore(e, d);
					a.effects.removeWrapper(e);
					if (b.callback) {
						b.callback.apply(this, arguments)
					}
					e.dequeue()
				}
			})
		})
	}
})(jQuery);;/*
 * jQuery UI Effects Explode 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Explode
 *
 * Depends:
 *	effects.core.js
 */
(function(a) {
	a.effects.explode = function(b) {
		return this.queue(function() {
			var k = b.options.pieces ? Math.round(Math.sqrt(b.options.pieces))
					: 3;
			var e = b.options.pieces ? Math.round(Math.sqrt(b.options.pieces))
					: 3;
			b.options.mode = b.options.mode == "toggle" ? (a(this).is(
					":visible") ? "hide" : "show") : b.options.mode;
			var h = a(this).show().css("visibility", "hidden");
			var l = h.offset();
			l.top -= parseInt(h.css("marginTop"), 10) || 0;
			l.left -= parseInt(h.css("marginLeft"), 10) || 0;
			var g = h.outerWidth(true);
			var c = h.outerHeight(true);
			for ( var f = 0; f < k; f++) {
				for ( var d = 0; d < e; d++) {
					h.clone().appendTo("body").wrap("<div></div>").css( {
						position : "absolute",
						visibility : "visible",
						left : -d * (g / e),
						top : -f * (c / k)
					}).parent().addClass("ui-effects-explode").css(
							{
								position : "absolute",
								overflow : "hidden",
								width : g / e,
								height : c / k,
								left : l.left
										+ d
										* (g / e)
										+ (b.options.mode == "show" ? (d - Math
												.floor(e / 2))
												* (g / e) : 0),
								top : l.top
										+ f
										* (c / k)
										+ (b.options.mode == "show" ? (f - Math
												.floor(k / 2))
												* (c / k) : 0),
								opacity : b.options.mode == "show" ? 0 : 1
							}).animate(
							{
								left : l.left
										+ d
										* (g / e)
										+ (b.options.mode == "show" ? 0
												: (d - Math.floor(e / 2))
														* (g / e)),
								top : l.top
										+ f
										* (c / k)
										+ (b.options.mode == "show" ? 0
												: (f - Math.floor(k / 2))
														* (c / k)),
								opacity : b.options.mode == "show" ? 1 : 0
							}, b.duration || 500)
				}
			}
			setTimeout(function() {
				b.options.mode == "show" ? h.css( {
					visibility : "visible"
				}) : h.css( {
					visibility : "visible"
				}).hide();
				if (b.callback) {
					b.callback.apply(h[0])
				}
				h.dequeue();
				a("div.ui-effects-explode").remove()
			}, b.duration || 500)
		})
	}
})(jQuery);;/*
 * jQuery UI Effects Fold 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Fold
 *
 * Depends:
 *	effects.core.js
 */
(function(a) {
	a.effects.fold = function(b) {
		return this.queue(function() {
			var e = a(this), k = [ "position", "top", "left" ];
			var h = a.effects.setMode(e, b.options.mode || "hide");
			var o = b.options.size || 15;
			var n = !(!b.options.horizFirst);
			var g = b.duration ? b.duration / 2 : a.fx.speeds._default / 2;
			a.effects.save(e, k);
			e.show();
			var d = a.effects.createWrapper(e).css( {
				overflow : "hidden"
			});
			var i = ((h == "show") != n);
			var f = i ? [ "width", "height" ] : [ "height", "width" ];
			var c = i ? [ d.width(), d.height() ] : [ d.height(), d.width() ];
			var j = /([0-9]+)%/.exec(o);
			if (j) {
				o = parseInt(j[1], 10) / 100 * c[h == "hide" ? 0 : 1]
			}
			if (h == "show") {
				d.css(n ? {
					height : 0,
					width : o
				} : {
					height : o,
					width : 0
				})
			}
			var m = {}, l = {};
			m[f[0]] = h == "show" ? c[0] : o;
			l[f[1]] = h == "show" ? c[1] : 0;
			d.animate(m, g, b.options.easing).animate(l, g, b.options.easing,
					function() {
						if (h == "hide") {
							e.hide()
						}
						a.effects.restore(e, k);
						a.effects.removeWrapper(e);
						if (b.callback) {
							b.callback.apply(e[0], arguments)
						}
						e.dequeue()
					})
		})
	}
})(jQuery);;/*
 * jQuery UI Effects Highlight 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Highlight
 *
 * Depends:
 *	effects.core.js
 */
(function(a) {
	a.effects.highlight = function(b) {
		return this.queue(function() {
			var e = a(this), d = [ "backgroundImage", "backgroundColor",
					"opacity" ];
			var h = a.effects.setMode(e, b.options.mode || "show");
			var c = b.options.color || "#ffff99";
			var g = e.css("backgroundColor");
			a.effects.save(e, d);
			e.show();
			e.css( {
				backgroundImage : "none",
				backgroundColor : c
			});
			var f = {
				backgroundColor : g
			};
			if (h == "hide") {
				f.opacity = 0
			}
			e.animate(f, {
				queue : false,
				duration : b.duration,
				easing : b.options.easing,
				complete : function() {
					if (h == "hide") {
						e.hide()
					}
					a.effects.restore(e, d);
					if (h == "show" && a.browser.msie) {
						this.style.removeAttribute("filter")
					}
					if (b.callback) {
						b.callback.apply(this, arguments)
					}
					e.dequeue()
				}
			})
		})
	}
})(jQuery);;/*
 * jQuery UI Effects Pulsate 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Pulsate
 *
 * Depends:
 *	effects.core.js
 */
(function(a) {
	a.effects.pulsate = function(b) {
		return this.queue(function() {
			var d = a(this);
			var g = a.effects.setMode(d, b.options.mode || "show");
			var f = b.options.times || 5;
			var e = b.duration ? b.duration / 2 : a.fx.speeds._default / 2;
			if (g == "hide") {
				f--
			}
			if (d.is(":hidden")) {
				d.css("opacity", 0);
				d.show();
				d.animate( {
					opacity : 1
				}, e, b.options.easing);
				f = f - 2
			}
			for ( var c = 0; c < f; c++) {
				d.animate( {
					opacity : 0
				}, e, b.options.easing).animate( {
					opacity : 1
				}, e, b.options.easing)
			}
			if (g == "hide") {
				d.animate( {
					opacity : 0
				}, e, b.options.easing, function() {
					d.hide();
					if (b.callback) {
						b.callback.apply(this, arguments)
					}
				})
			} else {
				d.animate( {
					opacity : 0
				}, e, b.options.easing).animate( {
					opacity : 1
				}, e, b.options.easing, function() {
					if (b.callback) {
						b.callback.apply(this, arguments)
					}
				})
			}
			d.queue("fx", function() {
				d.dequeue()
			});
			d.dequeue()
		})
	}
})(jQuery);;/*
 * jQuery UI Effects Scale 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Scale
 *
 * Depends:
 *	effects.core.js
 */
(function(a) {
	a.effects.puff = function(b) {
		return this.queue(function() {
			var f = a(this);
			var c = a.extend(true, {}, b.options);
			var h = a.effects.setMode(f, b.options.mode || "hide");
			var g = parseInt(b.options.percent, 10) || 150;
			c.fade = true;
			var e = {
				height : f.height(),
				width : f.width()
			};
			var d = g / 100;
			f.from = (h == "hide") ? e : {
				height : e.height * d,
				width : e.width * d
			};
			c.from = f.from;
			c.percent = (h == "hide") ? g : 100;
			c.mode = h;
			f.effect("scale", c, b.duration, b.callback);
			f.dequeue()
		})
	};
	a.effects.scale = function(b) {
		return this.queue(function() {
			var g = a(this);
			var d = a.extend(true, {}, b.options);
			var j = a.effects.setMode(g, b.options.mode || "effect");
			var h = parseInt(b.options.percent, 10)
					|| (parseInt(b.options.percent, 10) == 0 ? 0
							: (j == "hide" ? 0 : 100));
			var i = b.options.direction || "both";
			var c = b.options.origin;
			if (j != "effect") {
				d.origin = c || [ "middle", "center" ];
				d.restore = true
			}
			var f = {
				height : g.height(),
				width : g.width()
			};
			g.from = b.options.from || (j == "show" ? {
				height : 0,
				width : 0
			} : f);
			var e = {
				y : i != "horizontal" ? (h / 100) : 1,
				x : i != "vertical" ? (h / 100) : 1
			};
			g.to = {
				height : f.height * e.y,
				width : f.width * e.x
			};
			if (b.options.fade) {
				if (j == "show") {
					g.from.opacity = 0;
					g.to.opacity = 1
				}
				if (j == "hide") {
					g.from.opacity = 1;
					g.to.opacity = 0
				}
			}
			d.from = g.from;
			d.to = g.to;
			d.mode = j;
			g.effect("size", d, b.duration, b.callback);
			g.dequeue()
		})
	};
	a.effects.size = function(b) {
		return this.queue(function() {
			var c = a(this), n = [ "position", "top", "left", "width",
					"height", "overflow", "opacity" ];
			var m = [ "position", "top", "left", "overflow", "opacity" ];
			var j = [ "width", "height", "overflow" ];
			var p = [ "fontSize" ];
			var k = [ "borderTopWidth", "borderBottomWidth", "paddingTop",
					"paddingBottom" ];
			var f = [ "borderLeftWidth", "borderRightWidth", "paddingLeft",
					"paddingRight" ];
			var g = a.effects.setMode(c, b.options.mode || "effect");
			var i = b.options.restore || false;
			var e = b.options.scale || "both";
			var o = b.options.origin;
			var d = {
				height : c.height(),
				width : c.width()
			};
			c.from = b.options.from || d;
			c.to = b.options.to || d;
			if (o) {
				var h = a.effects.getBaseline(o, d);
				c.from.top = (d.height - c.from.height) * h.y;
				c.from.left = (d.width - c.from.width) * h.x;
				c.to.top = (d.height - c.to.height) * h.y;
				c.to.left = (d.width - c.to.width) * h.x
			}
			var l = {
				from : {
					y : c.from.height / d.height,
					x : c.from.width / d.width
				},
				to : {
					y : c.to.height / d.height,
					x : c.to.width / d.width
				}
			};
			if (e == "box" || e == "both") {
				if (l.from.y != l.to.y) {
					n = n.concat(k);
					c.from = a.effects.setTransition(c, k, l.from.y, c.from);
					c.to = a.effects.setTransition(c, k, l.to.y, c.to)
				}
				if (l.from.x != l.to.x) {
					n = n.concat(f);
					c.from = a.effects.setTransition(c, f, l.from.x, c.from);
					c.to = a.effects.setTransition(c, f, l.to.x, c.to)
				}
			}
			if (e == "content" || e == "both") {
				if (l.from.y != l.to.y) {
					n = n.concat(p);
					c.from = a.effects.setTransition(c, p, l.from.y, c.from);
					c.to = a.effects.setTransition(c, p, l.to.y, c.to)
				}
			}
			a.effects.save(c, i ? n : m);
			c.show();
			a.effects.createWrapper(c);
			c.css("overflow", "hidden").css(c.from);
			if (e == "content" || e == "both") {
				k = k.concat( [ "marginTop", "marginBottom" ]).concat(p);
				f = f.concat( [ "marginLeft", "marginRight" ]);
				j = n.concat(k).concat(f);
				c.find("*[width]").each(
						function() {
							child = a(this);
							if (i) {
								a.effects.save(child, j)
							}
							var q = {
								height : child.height(),
								width : child.width()
							};
							child.from = {
								height : q.height * l.from.y,
								width : q.width * l.from.x
							};
							child.to = {
								height : q.height * l.to.y,
								width : q.width * l.to.x
							};
							if (l.from.y != l.to.y) {
								child.from = a.effects.setTransition(child, k,
										l.from.y, child.from);
								child.to = a.effects.setTransition(child, k,
										l.to.y, child.to)
							}
							if (l.from.x != l.to.x) {
								child.from = a.effects.setTransition(child, f,
										l.from.x, child.from);
								child.to = a.effects.setTransition(child, f,
										l.to.x, child.to)
							}
							child.css(child.from);
							child.animate(child.to, b.duration,
									b.options.easing, function() {
										if (i) {
											a.effects.restore(child, j)
										}
									})
						})
			}
			c.animate(c.to, {
				queue : false,
				duration : b.duration,
				easing : b.options.easing,
				complete : function() {
					if (g == "hide") {
						c.hide()
					}
					a.effects.restore(c, i ? n : m);
					a.effects.removeWrapper(c);
					if (b.callback) {
						b.callback.apply(this, arguments)
					}
					c.dequeue()
				}
			})
		})
	}
})(jQuery);;/*
 * jQuery UI Effects Shake 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Shake
 *
 * Depends:
 *	effects.core.js
 */
(function(a) {
	a.effects.shake = function(b) {
		return this.queue(function() {
			var e = a(this), l = [ "position", "top", "left" ];
			var k = a.effects.setMode(e, b.options.mode || "effect");
			var n = b.options.direction || "left";
			var c = b.options.distance || 20;
			var d = b.options.times || 3;
			var g = b.duration || b.options.duration || 140;
			a.effects.save(e, l);
			e.show();
			a.effects.createWrapper(e);
			var f = (n == "up" || n == "down") ? "top" : "left";
			var p = (n == "up" || n == "left") ? "pos" : "neg";
			var h = {}, o = {}, m = {};
			h[f] = (p == "pos" ? "-=" : "+=") + c;
			o[f] = (p == "pos" ? "+=" : "-=") + c * 2;
			m[f] = (p == "pos" ? "-=" : "+=") + c * 2;
			e.animate(h, g, b.options.easing);
			for ( var j = 1; j < d; j++) {
				e.animate(o, g, b.options.easing).animate(m, g,
						b.options.easing)
			}
			e.animate(o, g, b.options.easing).animate(h, g / 2,
					b.options.easing, function() {
						a.effects.restore(e, l);
						a.effects.removeWrapper(e);
						if (b.callback) {
							b.callback.apply(this, arguments)
						}
					});
			e.queue("fx", function() {
				e.dequeue()
			});
			e.dequeue()
		})
	}
})(jQuery);;/*
 * jQuery UI Effects Slide 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Slide
 *
 * Depends:
 *	effects.core.js
 */
(function(a) {
	a.effects.slide = function(b) {
		return this.queue(function() {
			var e = a(this), d = [ "position", "top", "left" ];
			var i = a.effects.setMode(e, b.options.mode || "show");
			var h = b.options.direction || "left";
			a.effects.save(e, d);
			e.show();
			a.effects.createWrapper(e).css( {
				overflow : "hidden"
			});
			var f = (h == "up" || h == "down") ? "top" : "left";
			var c = (h == "up" || h == "left") ? "pos" : "neg";
			var j = b.options.distance || (f == "top" ? e.outerHeight( {
				margin : true
			}) : e.outerWidth( {
				margin : true
			}));
			if (i == "show") {
				e.css(f, c == "pos" ? -j : j)
			}
			var g = {};
			g[f] = (i == "show" ? (c == "pos" ? "+=" : "-=")
					: (c == "pos" ? "-=" : "+="))
					+ j;
			e.animate(g, {
				queue : false,
				duration : b.duration,
				easing : b.options.easing,
				complete : function() {
					if (i == "hide") {
						e.hide()
					}
					a.effects.restore(e, d);
					a.effects.removeWrapper(e);
					if (b.callback) {
						b.callback.apply(this, arguments)
					}
					e.dequeue()
				}
			})
		})
	}
})(jQuery);;/*
 * jQuery UI Effects Transfer 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Transfer
 *
 * Depends:
 *	effects.core.js
 */
(function(a) {
	a.effects.transfer = function(b) {
		return this.queue(function() {
			var f = a(this), h = a(b.options.to), e = h.offset(), g = {
				top : e.top,
				left : e.left,
				height : h.innerHeight(),
				width : h.innerWidth()
			}, d = f.offset(), c = a('<div class="ui-effects-transfer"></div>')
					.appendTo(document.body).addClass(b.options.className).css(
							{
								top : d.top,
								left : d.left,
								height : f.innerHeight(),
								width : f.innerWidth(),
								position : "absolute"
							}).animate(
							g,
							b.duration,
							b.options.easing,
							function() {
								c.remove();
								(b.callback && b.callback
										.apply(f[0], arguments));
								f.dequeue()
							})
		})
	}
})(jQuery);;