/*!
 * jQuery UI 1.8
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI
 */
/*
 * jQuery UI 1.8
 *
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI
 */
jQuery.ui
		|| (function(a) {
			a.ui = {
				version : "1.8",
				plugin : {
					add : function(c, d, f) {
						var e = a.ui[c].prototype;
						for ( var b in f) {
							e.plugins[b] = e.plugins[b] || [];
							e.plugins[b].push( [ d, f[b] ])
						}
					},
					call : function(b, d, c) {
						var f = b.plugins[d];
						if (!f || !b.element[0].parentNode) {
							return
						}
						for ( var e = 0; e < f.length; e++) {
							if (b.options[f[e][0]]) {
								f[e][1].apply(b.element, c)
							}
						}
					}
				},
				contains : function(d, c) {
					return document.compareDocumentPosition ? d
							.compareDocumentPosition(c) & 16 : d !== c
							&& d.contains(c)
				},
				hasScroll : function(e, c) {
					if (a(e).css("overflow") == "hidden") {
						return false
					}
					var b = (c && c == "left") ? "scrollLeft" : "scrollTop", d = false;
					if (e[b] > 0) {
						return true
					}
					e[b] = 1;
					d = (e[b] > 0);
					e[b] = 0;
					return d
				},
				isOverAxis : function(c, b, d) {
					return (c > b) && (c < (b + d))
				},
				isOver : function(g, c, f, e, b, d) {
					return a.ui.isOverAxis(g, f, b) && a.ui.isOverAxis(c, e, d)
				},
				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
				}
			};
			a.fn
					.extend( {
						_focus : a.fn.focus,
						focus : function(b, c) {
							return typeof b === "number" ? this
									.each(function() {
										var d = this;
										setTimeout(function() {
											a(d).focus();
											(c && c.call(d))
										}, b)
									}) : this._focus.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 b;
							if ((a.browser.msie && (/(static|relative)/)
									.test(this.css("position")))
									|| (/absolute/).test(this.css("position"))) {
								b = this
										.parents()
										.filter(
												function() {
													return (/(relative|absolute|fixed)/)
															.test(a.curCSS(
																	this,
																	"position",
																	1))
															&& (/(auto|scroll)/)
																	.test(a
																			.curCSS(
																					this,
																					"overflow",
																					1)
																			+ a
																					.curCSS(
																							this,
																							"overflow-y",
																							1)
																			+ a
																					.curCSS(
																							this,
																							"overflow-x",
																							1))
												}).eq(0)
							} else {
								b = this
										.parents()
										.filter(
												function() {
													return (/(auto|scroll)/)
															.test(a.curCSS(
																	this,
																	"overflow",
																	1)
																	+ a
																			.curCSS(
																					this,
																					"overflow-y",
																					1)
																	+ a
																			.curCSS(
																					this,
																					"overflow-x",
																					1))
												}).eq(0)
							}
							return (/fixed/).test(this.css("position"))
									|| !b.length ? a(document) : b
						},
						zIndex : function(e) {
							if (e !== undefined) {
								return this.css("zIndex", e)
							}
							if (this.length) {
								var c = a(this[0]), b, d;
								while (c.length && c[0] !== document) {
									b = c.css("position");
									if (b == "absolute" || b == "relative"
											|| b == "fixed") {
										d = parseInt(c.css("zIndex"));
										if (!isNaN(d) && d != 0) {
											return d
										}
									}
									c = c.parent()
								}
							}
							return 0
						}
					});
			a.extend(a.expr[":"],
					{
						data : function(d, c, b) {
							return !!a.data(d, b[3])
						},
						focusable : function(c) {
							var d = c.nodeName.toLowerCase(), b = a.attr(c,
									"tabindex");
							return (/input|select|textarea|button|object/
									.test(d) ? !c.disabled : "a" == d
									|| "area" == d ? c.href || !isNaN(b)
									: !isNaN(b))
									&& !a(c)["area" == d ? "parents"
											: "closest"](":hidden").length
						},
						tabbable : function(c) {
							var b = a.attr(c, "tabindex");
							return (isNaN(b) || b >= 0)
									&& a(c).is(":focusable")
						}
					})
		})(jQuery);;/*
					 * ! jQuery UI Widget 1.8
					 * 
					 * Copyright (c) 2010 AUTHORS.txt
					 * (http://jqueryui.com/about) Dual licensed under the MIT
					 * (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
					 * 
					 * http://docs.jquery.com/UI/Widget
					 */
/*
 * jQuery UI Widget 1.8
 * 
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) Dual licensed
 * under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
 * 
 * http://docs.jquery.com/UI/Widget
 */
(function(b) {
	var a = b.fn.remove;
	b.fn.remove = function(c, d) {
		return this.each(function() {
			if (!d) {
				if (!c || b.filter(c, [ this ]).length) {
					b("*", this).add(this).each(function() {
						b(this).triggerHandler("remove")
					})
				}
			}
			return a.call(b(this), c, d)
		})
	};
	b.widget = function(d, f, c) {
		var e = d.split(".")[0], h;
		d = d.split(".")[1];
		h = e + "-" + d;
		if (!c) {
			c = f;
			f = b.Widget
		}
		b.expr[":"][h] = function(i) {
			return !!b.data(i, d)
		};
		b[e] = b[e] || {};
		b[e][d] = function(i, j) {
			if (arguments.length) {
				this._createWidget(i, j)
			}
		};
		var g = new f();
		g.options = b.extend( {}, g.options);
		b[e][d].prototype = b.extend(true, g, {
			namespace : e,
			widgetName : d,
			widgetEventPrefix : b[e][d].prototype.widgetEventPrefix || d,
			widgetBaseClass : h
		}, c);
		b.widget.bridge(d, b[e][d])
	};
	b.widget.bridge = function(d, c) {
		b.fn[d] = function(g) {
			var e = typeof g === "string", f = Array.prototype.slice.call(
					arguments, 1), h = this;
			g = !e && f.length ? b.extend.apply(null, [ true, g ].concat(f))
					: g;
			if (e && g.substring(0, 1) === "_") {
				return h
			}
			if (e) {
				this.each(function() {
					var i = b.data(this, d), j = i && b.isFunction(i[g]) ? i[g]
							.apply(i, f) : i;
					if (j !== i && j !== undefined) {
						h = j;
						return false
					}
				})
			} else {
				this.each(function() {
					var i = b.data(this, d);
					if (i) {
						if (g) {
							i.option(g)
						}
						i._init()
					} else {
						b.data(this, d, new c(g, this))
					}
				})
			}
			return h
		}
	};
	b.Widget = function(c, d) {
		if (arguments.length) {
			this._createWidget(c, d)
		}
	};
	b.Widget.prototype = {
		widgetName : "widget",
		widgetEventPrefix : "",
		options : {
			disabled : false
		},
		_createWidget : function(d, e) {
			this.element = b(e).data(this.widgetName, this);
			this.options = b.extend(true, {}, this.options, b.metadata
					&& b.metadata.get(e)[this.widgetName], d);
			var c = this;
			this.element.bind("remove." + this.widgetName, function() {
				c.destroy()
			});
			this._create();
			this._init()
		},
		_create : function() {
		},
		_init : function() {
		},
		destroy : function() {
			this.element.unbind("." + this.widgetName).removeData(
					this.widgetName);
			this.widget().unbind("." + this.widgetName).removeAttr(
					"aria-disabled").removeClass(
					this.widgetBaseClass + "-disabled " + this.namespace
							+ "-state-disabled")
		},
		widget : function() {
			return this.element
		},
		option : function(e, f) {
			var d = e, c = this;
			if (arguments.length === 0) {
				return b.extend( {}, c.options)
			}
			if (typeof e === "string") {
				if (f === undefined) {
					return this.options[e]
				}
				d = {};
				d[e] = f
			}
			b.each(d, function(g, h) {
				c._setOption(g, h)
			});
			return c
		},
		_setOption : function(c, d) {
			this.options[c] = d;
			if (c === "disabled") {
				this.widget()[d ? "addClass" : "removeClass"](
						this.widgetBaseClass + "-disabled " + this.namespace
								+ "-state-disabled").attr("aria-disabled", d)
			}
			return this
		},
		enable : function() {
			return this._setOption("disabled", false)
		},
		disable : function() {
			return this._setOption("disabled", true)
		},
		_trigger : function(d, e, f) {
			var h = this.options[d];
			e = b.Event(e);
			e.type = (d === this.widgetEventPrefix ? d : this.widgetEventPrefix
					+ d).toLowerCase();
			f = f || {};
			if (e.originalEvent) {
				for ( var c = b.event.props.length, g; c;) {
					g = b.event.props[--c];
					e[g] = e.originalEvent[g]
				}
			}
			this.element.trigger(e, f);
			return !(b.isFunction(h) && h.call(this.element[0], e, f) === false || e
					.isDefaultPrevented())
		}
	}
})(jQuery);;/*
			 * ! jQuery UI Mouse 1.8
			 * 
			 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) Dual
			 * licensed under the MIT (MIT-LICENSE.txt) and GPL
			 * (GPL-LICENSE.txt) licenses.
			 * 
			 * http://docs.jquery.com/UI/Mouse
			 * 
			 * Depends: jquery.ui.widget.js
			 */
/*
 * jQuery UI Mouse 1.8
 * 
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) Dual licensed
 * under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
 * 
 * http://docs.jquery.com/UI/Mouse
 * 
 * Depends: jquery.ui.widget.js
 */
(function(a) {
	a
			.widget(
					"ui.mouse",
					{
						options : {
							cancel : ":input,option",
							distance : 1,
							delay : 0
						},
						_mouseInit : function() {
							var b = this;
							this.element.bind("mousedown." + this.widgetName,
									function(c) {
										return b._mouseDown(c)
									}).bind("click." + this.widgetName,
									function(c) {
										if (b._preventClickEvent) {
											b._preventClickEvent = false;
											c.stopImmediatePropagation();
											return false
										}
									});
							this.started = false
						},
						_mouseDestroy : function() {
							this.element.unbind("." + this.widgetName)
						},
						_mouseDown : function(d) {
							d.originalEvent = d.originalEvent || {};
							if (d.originalEvent.mouseHandled) {
								return
							}
							(this._mouseStarted && this._mouseUp(d));
							this._mouseDownEvent = d;
							var c = this, e = (d.which == 1), b = (typeof this.options.cancel == "string" ? a(
									d.target).parents().add(d.target).filter(
									this.options.cancel).length
									: false);
							if (!e || b || !this._mouseCapture(d)) {
								return true
							}
							this.mouseDelayMet = !this.options.delay;
							if (!this.mouseDelayMet) {
								this._mouseDelayTimer = setTimeout(function() {
									c.mouseDelayMet = true
								}, this.options.delay)
							}
							if (this._mouseDistanceMet(d)
									&& this._mouseDelayMet(d)) {
								this._mouseStarted = (this._mouseStart(d) !== false);
								if (!this._mouseStarted) {
									d.preventDefault();
									return true
								}
							}
							this._mouseMoveDelegate = function(f) {
								return c._mouseMove(f)
							};
							this._mouseUpDelegate = function(f) {
								return c._mouseUp(f)
							};
							a(document).bind("mousemove." + this.widgetName,
									this._mouseMoveDelegate).bind(
									"mouseup." + this.widgetName,
									this._mouseUpDelegate);
							(a.browser.safari || d.preventDefault());
							d.originalEvent.mouseHandled = true;
							return true
						},
						_mouseMove : function(b) {
							if (a.browser.msie && !b.button) {
								return this._mouseUp(b)
							}
							if (this._mouseStarted) {
								this._mouseDrag(b);
								return b.preventDefault()
							}
							if (this._mouseDistanceMet(b)
									&& this._mouseDelayMet(b)) {
								this._mouseStarted = (this._mouseStart(
										this._mouseDownEvent, b) !== false);
								(this._mouseStarted ? this._mouseDrag(b) : this
										._mouseUp(b))
							}
							return !this._mouseStarted
						},
						_mouseUp : function(b) {
							a(document).unbind("mousemove." + this.widgetName,
									this._mouseMoveDelegate).unbind(
									"mouseup." + this.widgetName,
									this._mouseUpDelegate);
							if (this._mouseStarted) {
								this._mouseStarted = false;
								this._preventClickEvent = (b.target == this._mouseDownEvent.target);
								this._mouseStop(b)
							}
							return false
						},
						_mouseDistanceMet : function(b) {
							return (Math.max(Math
									.abs(this._mouseDownEvent.pageX - b.pageX),
									Math.abs(this._mouseDownEvent.pageY
											- b.pageY)) >= this.options.distance)
						},
						_mouseDelayMet : function(b) {
							return this.mouseDelayMet
						},
						_mouseStart : function(b) {
						},
						_mouseDrag : function(b) {
						},
						_mouseStop : function(b) {
						},
						_mouseCapture : function(b) {
							return true
						}
					})
})(jQuery);;/*
			 * jQuery UI Position 1.8
			 * 
			 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) Dual
			 * licensed under the MIT (MIT-LICENSE.txt) and GPL
			 * (GPL-LICENSE.txt) licenses.
			 * 
			 * http://docs.jquery.com/UI/Position
			 */
(function(f) {
	f.ui = f.ui || {};
	var c = /left|center|right/, e = "center", d = /top|center|bottom/, g = "center", a = f.fn.position, b = f.fn.offset;
	f.fn.position = function(i) {
		if (!i || !i.of) {
			return a.apply(this, arguments)
		}
		i = f.extend( {}, i);
		var l = f(i.of), n = (i.collision || "flip").split(" "), m = i.offset ? i.offset
				.split(" ")
				: [ 0, 0 ], k, h, j;
		if (i.of.nodeType === 9) {
			k = l.width();
			h = l.height();
			j = {
				top : 0,
				left : 0
			}
		} else {
			if (i.of.scrollTo && i.of.document) {
				k = l.width();
				h = l.height();
				j = {
					top : l.scrollTop(),
					left : l.scrollLeft()
				}
			} else {
				if (i.of.preventDefault) {
					i.at = "left top";
					k = h = 0;
					j = {
						top : i.of.pageY,
						left : i.of.pageX
					}
				} else {
					k = l.outerWidth();
					h = l.outerHeight();
					j = l.offset()
				}
			}
		}
		f.each( [ "my", "at" ], function() {
			var o = (i[this] || "").split(" ");
			if (o.length === 1) {
				o = c.test(o[0]) ? o.concat( [ g ]) : d.test(o[0]) ? [ e ]
						.concat(o) : [ e, g ]
			}
			o[0] = c.test(o[0]) ? o[0] : e;
			o[1] = d.test(o[1]) ? o[1] : g;
			i[this] = o
		});
		if (n.length === 1) {
			n[1] = n[0]
		}
		m[0] = parseInt(m[0], 10) || 0;
		if (m.length === 1) {
			m[1] = m[0]
		}
		m[1] = parseInt(m[1], 10) || 0;
		if (i.at[0] === "right") {
			j.left += k
		} else {
			if (i.at[0] === e) {
				j.left += k / 2
			}
		}
		if (i.at[1] === "bottom") {
			j.top += h
		} else {
			if (i.at[1] === g) {
				j.top += h / 2
			}
		}
		j.left += m[0];
		j.top += m[1];
		return this.each(function() {
			var r = f(this), q = r.outerWidth(), p = r.outerHeight(), o = f
					.extend( {}, j);
			if (i.my[0] === "right") {
				o.left -= q
			} else {
				if (i.my[0] === e) {
					o.left -= q / 2
				}
			}
			if (i.my[1] === "bottom") {
				o.top -= p
			} else {
				if (i.my[1] === g) {
					o.top -= p / 2
				}
			}
			f.each( [ "left", "top" ], function(t, s) {
				if (f.ui.position[n[t]]) {
					f.ui.position[n[t]][s](o, {
						targetWidth : k,
						targetHeight : h,
						elemWidth : q,
						elemHeight : p,
						offset : m,
						my : i.my,
						at : i.at
					})
				}
			});
			if (f.fn.bgiframe) {
				r.bgiframe()
			}
			r.offset(f.extend(o, {
				using : i.using
			}))
		})
	};
	f.ui.position = {
		fit : {
			left : function(h, i) {
				var k = f(window), j = h.left + i.elemWidth - k.width()
						- k.scrollLeft();
				h.left = j > 0 ? h.left - j : Math.max(0, h.left)
			},
			top : function(h, i) {
				var k = f(window), j = h.top + i.elemHeight - k.height()
						- k.scrollTop();
				h.top = j > 0 ? h.top - j : Math.max(0, h.top)
			}
		},
		flip : {
			left : function(i, j) {
				if (j.at[0] === "center") {
					return
				}
				var l = f(window), k = i.left + j.elemWidth - l.width()
						- l.scrollLeft(), h = j.my[0] === "left" ? -j.elemWidth
						: j.my[0] === "right" ? j.elemWidth : 0, m = -2
						* j.offset[0];
				i.left += i.left < 0 ? h + j.targetWidth + m : k > 0 ? h
						- j.targetWidth + m : 0
			},
			top : function(i, k) {
				if (k.at[1] === "center") {
					return
				}
				var m = f(window), l = i.top + k.elemHeight - m.height()
						- m.scrollTop(), h = k.my[1] === "top" ? -k.elemHeight
						: k.my[1] === "bottom" ? k.elemHeight : 0, j = k.at[1] === "top" ? k.targetHeight
						: -k.targetHeight, n = -2 * k.offset[1];
				i.top += i.top < 0 ? h + k.targetHeight + n : l > 0 ? h + j + n
						: 0
			}
		}
	};
	if (!f.offset.setOffset) {
		f.offset.setOffset = function(l, i) {
			if (/static/.test(f.curCSS(l, "position"))) {
				l.style.position = "relative"
			}
			var k = f(l), n = k.offset(), h = parseInt(
					f.curCSS(l, "top", true), 10) || 0, m = parseInt(f.curCSS(
					l, "left", true), 10) || 0, j = {
				top : (i.top - n.top) + h,
				left : (i.left - n.left) + m
			};
			if ("using" in i) {
				i.using.call(l, j)
			} else {
				k.css(j)
			}
		};
		f.fn.offset = function(h) {
			var i = this[0];
			if (!i || !i.ownerDocument) {
				return null
			}
			if (h) {
				return this.each(function() {
					f.offset.setOffset(this, h)
				})
			}
			return b.call(this)
		}
	}
}(jQuery));;/*
			 * jQuery UI Slider 1.8
			 * 
			 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) Dual
			 * licensed under the MIT (MIT-LICENSE.txt) and GPL
			 * (GPL-LICENSE.txt) licenses.
			 * 
			 * http://docs.jquery.com/UI/Slider
			 * 
			 * Depends: jquery.ui.core.js jquery.ui.mouse.js jquery.ui.widget.js
			 */
(function(b) {
	var a = 5;
	b
			.widget(
					"ui.slider",
					b.ui.mouse,
					{
						widgetEventPrefix : "slide",
						options : {
							animate : false,
							distance : 0,
							max : 100,
							min : 0,
							orientation : "horizontal",
							range : false,
							step : 1,
							value : 0,
							values : null
						},
						_create : function() {
							var c = this, d = this.options;
							this._keySliding = false;
							this._mouseSliding = false;
							this._animateOff = true;
							this._handleIndex = null;
							this._detectOrientation();
							this._mouseInit();
							this.element
									.addClass("ui-slider ui-slider-"
											+ this.orientation
											+ " ui-widget ui-widget-content ui-corner-all");
							if (d.disabled) {
								this.element
										.addClass("ui-slider-disabled ui-disabled")
							}
							this.range = b( []);
							if (d.range) {
								if (d.range === true) {
									this.range = b("<div></div>");
									if (!d.values) {
										d.values = [ this._valueMin(),
												this._valueMin() ]
									}
									if (d.values.length && d.values.length != 2) {
										d.values = [ d.values[0], d.values[0] ]
									}
								} else {
									this.range = b("<div></div>")
								}
								this.range.appendTo(this.element).addClass(
										"ui-slider-range");
								if (d.range == "min" || d.range == "max") {
									this.range.addClass("ui-slider-range-"
											+ d.range)
								}
								this.range.addClass("ui-widget-header")
							}
							if (b(".ui-slider-handle", this.element).length == 0) {
								b('<a href="#"></a>').appendTo(this.element)
										.addClass("ui-slider-handle")
							}
							if (d.values && d.values.length) {
								while (b(".ui-slider-handle", this.element).length < d.values.length) {
									b('<a href="#"></a>')
											.appendTo(this.element).addClass(
													"ui-slider-handle")
								}
							}
							this.handles = b(".ui-slider-handle", this.element)
									.addClass("ui-state-default ui-corner-all");
							this.handle = this.handles.eq(0);
							this.handles.add(this.range).filter("a").click(
									function(e) {
										e.preventDefault()
									}).hover(function() {
								if (!d.disabled) {
									b(this).addClass("ui-state-hover")
								}
							}, function() {
								b(this).removeClass("ui-state-hover")
							}).focus(
									function() {
										if (!d.disabled) {
											b(".ui-slider .ui-state-focus")
													.removeClass(
															"ui-state-focus");
											b(this).addClass("ui-state-focus")
										} else {
											b(this).blur()
										}
									}).blur(function() {
								b(this).removeClass("ui-state-focus")
							});
							this.handles.each(function(e) {
								b(this).data("index.ui-slider-handle", e)
							});
							this.handles.keydown(
									function(j) {
										var g = true;
										var f = b(this).data(
												"index.ui-slider-handle");
										if (c.options.disabled) {
											return
										}
										switch (j.keyCode) {
										case b.ui.keyCode.HOME:
										case b.ui.keyCode.END:
										case b.ui.keyCode.PAGE_UP:
										case b.ui.keyCode.PAGE_DOWN:
										case b.ui.keyCode.UP:
										case b.ui.keyCode.RIGHT:
										case b.ui.keyCode.DOWN:
										case b.ui.keyCode.LEFT:
											g = false;
											if (!c._keySliding) {
												c._keySliding = true;
												b(this).addClass(
														"ui-state-active");
												c._start(j, f)
											}
											break
										}
										var h, e, i = c._step();
										if (c.options.values
												&& c.options.values.length) {
											h = e = c.values(f)
										} else {
											h = e = c.value()
										}
										switch (j.keyCode) {
										case b.ui.keyCode.HOME:
											e = c._valueMin();
											break;
										case b.ui.keyCode.END:
											e = c._valueMax();
											break;
										case b.ui.keyCode.PAGE_UP:
											e = h
													+ ((c._valueMax() - c
															._valueMin()) / a);
											break;
										case b.ui.keyCode.PAGE_DOWN:
											e = h
													- ((c._valueMax() - c
															._valueMin()) / a);
											break;
										case b.ui.keyCode.UP:
										case b.ui.keyCode.RIGHT:
											if (h == c._valueMax()) {
												return
											}
											e = h + i;
											break;
										case b.ui.keyCode.DOWN:
										case b.ui.keyCode.LEFT:
											if (h == c._valueMin()) {
												return
											}
											e = h - i;
											break
										}
										c._slide(j, f, e);
										return g
									}).keyup(function(f) {
								var e = b(this).data("index.ui-slider-handle");
								if (c._keySliding) {
									c._keySliding = false;
									c._stop(f, e);
									c._change(f, e);
									b(this).removeClass("ui-state-active")
								}
							});
							this._refreshValue();
							this._animateOff = false
						},
						destroy : function() {
							this.handles.remove();
							this.range.remove();
							this.element
									.removeClass(
											"ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all")
									.removeData("slider").unbind(".slider");
							this._mouseDestroy();
							return this
						},
						_mouseCapture : function(e) {
							var f = this.options;
							if (f.disabled) {
								return false
							}
							this.elementSize = {
								width : this.element.outerWidth(),
								height : this.element.outerHeight()
							};
							this.elementOffset = this.element.offset();
							var i = {
								x : e.pageX,
								y : e.pageY
							};
							var k = this._normValueFromMouse(i);
							var d = this._valueMax() - this._valueMin() + 1, g;
							var l = this, j;
							this.handles.each(function(m) {
								var n = Math.abs(k - l.values(m));
								if (d > n) {
									d = n;
									g = b(this);
									j = m
								}
							});
							if (f.range == true && this.values(1) == f.min) {
								g = b(this.handles[++j])
							}
							this._start(e, j);
							this._mouseSliding = true;
							l._handleIndex = j;
							g.addClass("ui-state-active").focus();
							var h = g.offset();
							this._clickOffset = {
								left : 0,
								top : 0
							};
							k = this._normValueFromMouse(i);
							this._slide(e, j, k);
							this._animateOff = true;
							return true
						},
						_mouseStart : function(c) {
							return true
						},
						_mouseDrag : function(e) {
							var c = {
								x : e.pageX,
								y : e.pageY
							};
							var d = this._normValueFromMouse(c);
							this._slide(e, this._handleIndex, d);
							return false;
						},
						_mouseStop : function(c) {
							this.handles.removeClass("ui-state-active");
							this._mouseSliding = false;
							this._stop(c, this._handleIndex);
							this._change(c, this._handleIndex);
							this._handleIndex = null;
							this._clickOffset = null;
							this._animateOff = false;
							return false
						},
						_detectOrientation : function() {
							this.orientation = this.options.orientation == "vertical" ? "vertical"
									: "horizontal"
						},
						_normValueFromMouse : function(e) {
							var d, i;
							if ("horizontal" == this.orientation) {
								d = this.elementSize.width;
								i = e.x
										- this.elementOffset.left
										- (this._clickOffset ? this._clickOffset.left
												: 0)
							} else {
								d = this.elementSize.height;
								i = e.y
										- this.elementOffset.top
										- (this._clickOffset ? this._clickOffset.top
												: 0)
							}
							var g = (i / d);
							if (g > 1) {
								g = 1
							}
							if (g < 0) {
								g = 0
							}
							if ("vertical" == this.orientation) {
								g = 1 - g
							}
							var f = this._valueMax() - this._valueMin(), j = g
									* f, c = j % this.options.step, h = this
									._valueMin()
									+ j - c;
							if (c > (this.options.step / 2)) {
								h += this.options.step
							}
							return parseFloat(h.toFixed(5))
						},
						_start : function(e, d) {
							var c = {
								handle : this.handles[d],
								value : this.value()
							};
							if (this.options.values
									&& this.options.values.length) {
								c.value = this.values(d);
								c.values = this.values()
							}
							this._trigger("start", e, c)
						},
						_slide : function(g, f, e) {
							var h = this.handles[f];
							if (this.options.values
									&& this.options.values.length) {
								var c = this.values(f ? 0 : 1);
								if ((this.options.values.length == 2 && this.options.range === true)
										&& ((f == 0 && e > c) || (f == 1 && e < c))) {
									e = c
								}
								if (e != this.values(f)) {
									var d = this.values();
									d[f] = e;
									var i = this._trigger("slide", g, {
										handle : this.handles[f],
										value : e,
										values : d
									});
									var c = this.values(f ? 0 : 1);
									if (i !== false) {
										this.values(f, e, true)
									}
								}
							} else {
								if (e != this.value()) {
									var i = this._trigger("slide", g, {
										handle : this.handles[f],
										value : e
									});
									if (i !== false) {
										this.value(e)
									}
								}
							}
						},
						_stop : function(e, d) {
							var c = {
								handle : this.handles[d],
								value : this.value()
							};
							if (this.options.values
									&& this.options.values.length) {
								c.value = this.values(d);
								c.values = this.values()
							}
							this._trigger("stop", e, c)
						},
						_change : function(e, d) {
							if (!this._keySliding && !this._mouseSliding) {
								var c = {
									handle : this.handles[d],
									value : this.value()
								};
								if (this.options.values
										&& this.options.values.length) {
									c.value = this.values(d);
									c.values = this.values()
								}
								this._trigger("change", e, c)
							}
						},
						value : function(c) {
							if (arguments.length) {
								this.options.value = this._trimValue(c);
								this._refreshValue();
								this._change(null, 0)
							}
							return this._value()
						},
						values : function(e, h) {
							if (arguments.length > 1) {
								this.options.values[e] = this._trimValue(h);
								this._refreshValue();
								this._change(null, e)
							}
							if (arguments.length) {
								if (b.isArray(arguments[0])) {
									var g = this.options.values, d = arguments[0];
									for ( var f = 0, c = g.length; f < c; f++) {
										g[f] = this._trimValue(d[f]);
										this._change(null, f)
									}
									this._refreshValue()
								} else {
									if (this.options.values
											&& this.options.values.length) {
										return this._values(e)
									} else {
										return this.value()
									}
								}
							} else {
								return this._values()
							}
						},
						_setOption : function(d, e) {
							var c, f = 0;
							if (jQuery.isArray(this.options.values)) {
								f = this.options.values.length
							}
							b.Widget.prototype._setOption
									.apply(this, arguments);
							switch (d) {
							case "disabled":
								if (e) {
									this.handles.filter(".ui-state-focus")
											.blur();
									this.handles.removeClass("ui-state-hover");
									this.handles.attr("disabled", "disabled");
									this.element.addClass("ui-disabled")
								} else {
									this.handles.removeAttr("disabled");
									this.element.removeClass("ui-disabled")
								}
							case "orientation":
								this._detectOrientation();
								this.element
										.removeClass(
												"ui-slider-horizontal ui-slider-vertical")
										.addClass(
												"ui-slider-" + this.orientation);
								this._refreshValue();
								break;
							case "value":
								this._animateOff = true;
								this._refreshValue();
								this._change(null, 0);
								this._animateOff = false;
								break;
							case "values":
								this._animateOff = true;
								this._refreshValue();
								for (c = 0; c < f; c++) {
									this._change(null, c)
								}
								this._animateOff = false;
								break
							}
						},
						_step : function() {
							var c = this.options.step;
							return c
						},
						_value : function() {
							var c = this.options.value;
							c = this._trimValue(c);
							return c
						},
						_values : function(d) {
							if (arguments.length) {
								var g = this.options.values[d];
								g = this._trimValue(g);
								return g
							} else {
								var f = this.options.values.slice();
								for ( var e = 0, c = f.length; e < c; e++) {
									f[e] = this._trimValue(f[e])
								}
								return f
							}
						},
						_trimValue : function(c) {
							if (c < this._valueMin()) {
								c = this._valueMin()
							}
							if (c > this._valueMax()) {
								c = this._valueMax()
							}
							return c
						},
						_valueMin : function() {
							var c = this.options.min;
							return c
						},
						_valueMax : function() {
							var c = this.options.max;
							return c
						},
						_refreshValue : function() {
							var g = this.options.range, e = this.options, m = this;
							var d = (!this._animateOff) ? e.animate : false;
							if (this.options.values
									&& this.options.values.length) {
								var j, i;
								this.handles
										.each(function(q, o) {
											var p = (m.values(q) - m
													._valueMin())
													/ (m._valueMax() - m
															._valueMin()) * 100;
											var n = {};
											n[m.orientation == "horizontal" ? "left"
													: "bottom"] = p + "%";
											b(this).stop(1, 1)[d ? "animate"
													: "css"](n, e.animate);
											if (m.options.range === true) {
												if (m.orientation == "horizontal") {
													(q == 0)
															&& m.range.stop(1,
																	1)[d ? "animate"
																	: "css"]( {
																left : p + "%"
															}, e.animate);
													(q == 1)
															&& m.range[d ? "animate"
																	: "css"]
																	(
																			{
																				width : (p - lastValPercent)
																						+ "%"
																			},
																			{
																				queue : false,
																				duration : e.animate
																			})
												} else {
													(q == 0)
															&& m.range.stop(1,
																	1)[d ? "animate"
																	: "css"]( {
																bottom : (p)
																		+ "%"
															}, e.animate);
													(q == 1)
															&& m.range[d ? "animate"
																	: "css"]
																	(
																			{
																				height : (p - lastValPercent)
																						+ "%"
																			},
																			{
																				queue : false,
																				duration : e.animate
																			})
												}
											}
											lastValPercent = p
										})
							} else {
								var k = this.value(), h = this._valueMin(), l = this
										._valueMax(), f = l != h ? (k - h)
										/ (l - h) * 100 : 0;
								var c = {};
								c[m.orientation == "horizontal" ? "left"
										: "bottom"] = f + "%";
								this.handle.stop(1, 1)[d ? "animate" : "css"](
										c, e.animate);
								(g == "min")
										&& (this.orientation == "horizontal")
										&& this.range.stop(1, 1)[d ? "animate"
												: "css"]( {
											width : f + "%"
										}, e.animate);
								(g == "max")
										&& (this.orientation == "horizontal")
										&& this.range[d ? "animate" : "css"]( {
											width : (100 - f) + "%"
										}, {
											queue : false,
											duration : e.animate
										});
								(g == "min")
										&& (this.orientation == "vertical")
										&& this.range.stop(1, 1)[d ? "animate"
												: "css"]( {
											height : f + "%"
										}, e.animate);
								(g == "max")
										&& (this.orientation == "vertical")
										&& this.range[d ? "animate" : "css"]( {
											height : (100 - f) + "%"
										}, {
											queue : false,
											duration : e.animate
										})
							}
						}
					});
	b.extend(b.ui.slider, {
		version : "1.8"
	})
})(jQuery);;